1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["/_build/assets/serverForms-Dp4wnJPy.js","/_build/assets/web-pV0rwjaF.js","/_build/assets/preload-helper-glQ4n0Rb.js","/_build/assets/web-BDK_TeJ7.js","/_build/assets/index-D5Gq11sO.js","/_build/assets/index-CKsfVd73.css","/_build/assets/web-BiCt8_Ji.js","/_build/assets/definitions-DChO_z78.js","/_build/assets/web-CIn1YpOu.js","/_build/assets/web-BuZ8XxPv.js","/_build/assets/web-Q8k2JASj.js","/_build/assets/AutoFillSeedMoves-D05kBeNX.js","/_build/assets/error_handling-CGkSwltb.js","/_build/assets/Space-BawUPM90.js","/_build/assets/use_responsive-bX-9vVUF.js","/_build/assets/exports-DRxNL0wz.js","/_build/assets/keys-DKVSNwk_.js","/_build/assets/styles-DEsTfKH9.js","/_build/assets/isNil-mPEatfFo.js","/_build/assets/web-C53WsJ7_.js","/_build/assets/web-Yu44MJDM.js","/_build/assets/web-DjzDFcf6.js","/_build/assets/EvalsChart-BV7Fwkhm.js","/_build/assets/web-CIOzn79R.js","/_build/assets/web--v_Zkyju.js","/_build/assets/definitions-CH3qOGwW.js","/_build/assets/web-BdAuxhC4.js","/_build/assets/QRCode-D1W6PRbM.js","/_build/assets/web-yqIM6erI.js","/_build/assets/AccountDeletion-CnOsl4mu.js","/_build/assets/AdminView-DxE_pOEZ.js","/_build/assets/CMText-CbnW-FWU.js","/_build/assets/AdminPageLayout-Iw2AZ1_D.js","/_build/assets/Button-BKMNubLl.js","/_build/assets/EcoCodesDashboard-CouIONJ8.js","/_build/assets/MoveAnnotationsDashboard-DruVRBBb.js","/_build/assets/LazyLoad-CIPrqHMp.js","/_build/assets/ReviewMoveAnnotationsView-05ynShaU.js","/_build/assets/LichessLogoIcon-BI0jpoDH.js","/_build/assets/TestErrorView-DAzD6MEV.js","/_build/assets/AnimatedNumberStorybook-D6YmWlWw.js","/_build/assets/CharacteristicBarsStorybook-BpQ8OrFL.js","/_build/assets/FakeAnalysis-Bj0hbHiN.js","/_build/assets/GameResultsBarStorybook-C6GRfvzs.js","/_build/assets/SidebarTableStressTest-BlCTbI7F.js","/_build/assets/StockfishStressTest-V90Kvdk0.js","/_build/assets/DesignSystem-8yPNPcA9.js","/_build/assets/ColorSamples-B2CRHSnT.js","/_build/assets/SemanticColorsStorybook-DI-BJKo6.js","/_build/assets/LichessOAuthCallback-D9NYkmpj.js"])))=>i.map(i=>d[i]); 2(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`chessbook-web@8cada333a37d47d6202c119e56d2497560f13100`};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`5d29e5ad-f936-499a-ac6f-fe9fc32086bb`,e._sentryDebugIdIdentifier=`sentry-dbid-5d29e5ad-f936-499a-ac6f-fe9fc32086bb`)}catch{}})();import{a as e,i as t,n,r,t as i}from"./error_handling-CGkSwltb.js";import{A as a,B as o,C as s,D as c,E as l,Et as u,F as d,G as f,H as p,I as m,J as h,K as g,L as _,M as v,N as y,O as b,P as x,R as S,S as C,T as w,Tt as T,U as E,V as D,W as ee,X as te,Y as O,Z as k,_ as A,a as ne,b as re,bt as ie,c as ae,fn as oe,i as se,j,k as ce,l as M,m as N,n as le,o as P,q as ue,t as de,ut as fe,v as F,w as pe,x as me,y as I,z as he}from"./web-pV0rwjaF.js";import{n as ge,t as _e}from"./verdict-2eTwgmu_.js";import{t as ve}from"./preload-helper-glQ4n0Rb.js";import{B as ye,D as be,E as xe,G as Se,J as Ce,K as we,M as Te,N as Ee,O as De,T as Oe,U as ke,V as Ae,W as je,X as Me,Y as Ne,_ as Pe,a as Fe,b as Ie,c as Le,f as Re,g as ze,h as Be,i as Ve,k as He,l as Ue,m as We,n as Ge,o as Ke,p as eee,q as qe,r as Je,s as Ye,t as Xe,u as Ze,v as Qe,w as $e,x as et,y as tt,z as L}from"./index-D5Gq11sO.js";import{t as nt}from"./definitions-CH3qOGwW.js";import"./definitions-DChO_z78.js";import{i as rt,n as it,r as at,t as R}from"./Space-BawUPM90.js";import{n as ot,r as st,t as ct}from"./use_responsive-bX-9vVUF.js";import{C as lt,S as ut,T as dt,a as ft,b as pt,c as mt,d as ht,f as gt,g as _t,h as vt,i as yt,l as bt,m as xt,n as St,o as Ct,p as wt,r as Tt,s as Et,t as Dt,u as Ot,v as kt,w as At,x as jt,y as Mt}from"./keys-DKVSNwk_.js";import{n as Nt,t as Pt}from"./_Map-BBzZcz0-.js";import{n as Ft,r as It,t as Lt}from"./toInteger-IZ3oTHXO.js";import{n as Rt,t as zt}from"./_getTag-BNJsMwXY.js";import{a as Bt,c as Vt,i as Ht,n as z,o as Ut,r as Wt,s as Gt,t as B}from"./styles-DEsTfKH9.js";import{t as Kt}from"./isNil-mPEatfFo.js";import{t as V}from"./CMText-CbnW-FWU.js";import{$ as qt,A as Jt,B as Yt,C as Xt,D as Zt,E as Qt,F as $t,G as en,H as tn,I as nn,J as rn,K as an,L as on,M as sn,N as cn,O as ln,P as un,Q as dn,R as fn,S as pn,St as mn,T as hn,U as gn,V as _n,W as vn,X as yn,Y as bn,Z as xn,_ as Sn,_t as Cn,a as wn,at as Tn,b as En,bt as Dn,c as On,ct as kn,d as An,dt as jn,et as Mn,f as Nn,ft as Pn,g as Fn,gt as In,h as Ln,ht as Rn,i as zn,it as Bn,j as Vn,k as Hn,l as Un,lt as Wn,m as Gn,mt as Kn,n as qn,nt as Jn,o as Yn,ot as Xn,p as Zn,pt as Qn,q as $n,r as er,rt as tr,s as nr,st as rr,t as ir,tt as ar,u as or,ut as sr,v as cr,vt as lr,w as ur,x as dr,xt as fr,y as pr,yt as mr,z as hr}from"./exports-DRxNL0wz.js";var gr=/^(?:[a-z0-9]+:)?\/\//i,_r=/^\/+|(\/)\/+$/g,vr=`http://sr`;function yr(e,t=!1){let n=e.replace(_r,`$1`);return n?t||/^[?#]/.test(n)?n:`/`+n:``}var br=e=>yr(e.split(/[?#]/,1)[0]).toLowerCase().replace(/\/$/,``);function xr(e,t,n){if(gr.test(t))return;let r=yr(e),i=n&&yr(n),a=``;return a=!i||t.startsWith(`/`)?r:i.toLowerCase().indexOf(r.toLowerCase())===0?i:r+i,(a||`/`)+yr(t,!a)}function Sr(e,t){if(e==null)throw Error(t);return e}function Cr(e,t){return yr(e).replace(/\/*(\*.*)?$/g,``)+yr(t)}function wr(e,t){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw Error(`Async Standard Schema validation is not supported for search params`);return n}function Tr(e){let t={};
2return e.searchParams.forEach((e,n)=>{n in t?Array.isArray(t[n])?t[n].push(e):t[n]=[t[n],e]:t[n]=e}),t}function Er(e,t,n){let[r,i]=e.split(`/*`,2),a=r.split(`/`).filter(Boolean),o=a.length;return e=>{let r=e.split(`/`);if(r[0]===``&&r.shift(),r.length&&r[r.length-1]===``&&r.pop(),r.includes(``))return null;let s=r.length-o;if(s<0||s>0&&i===void 0&&!t)return null;let c={path:o?``:`/`,params:{}},l=e=>n===void 0?void 0:n[e];for(let e=0;e<o;e++){let t=a[e],n=t[0]===`:`,i=n?r[e]:r[e].toLowerCase(),o=n?t.slice(1):t.toLowerCase();if(n&&Dr(i,l(o)))c.params[o]=i;else if(n||!Dr(i,o))return null;c.path+=`/${i}`}if(i){let e=s?r.slice(-s).join(`/`):``;if(Dr(e,l(i)))c.params[i]=e;else return null}return c}}function Dr(e,t){let n=t=>t===e;return t===void 0?!0:typeof t==`string`?n(t):typeof t==`function`?t(e):Array.isArray(t)?t.some(n):t instanceof RegExp&&t.test(e)}function Or(e){let[t,n]=e.pattern.split(`/*`,2),r=t.split(`/`).filter(Boolean);return r.reduce((e,t)=>e+(t.startsWith(`:`)?2:3),r.length-(n===void 0?0:1))}function kr(e){let t=new Map,n=u();return new Proxy({},{get(r,i){return t.has(i)||fe(n,()=>t.set(i,_(()=>e()[i]))),t.get(i)()},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}},ownKeys(){return Reflect.ownKeys(e())},has(t,n){return n in e()}})}function Ar(e,t){let n=new URLSearchParams(e);Object.entries(t).forEach(([e,t])=>{t==null||t===``||t instanceof Array&&!t.length?n.delete(e):t instanceof Array?(n.delete(e),t.forEach(t=>{n.append(e,String(t))})):n.set(e,String(t))});let r=n.toString();return r?`?${r}`:``}function jr(e){let t=/(\/?\:[^\/]+)\?/.exec(e);if(!t)return[e];let n=e.slice(0,t.index),r=e.slice(t.index+t[0].length),i=[n,n+=t[1]];for(;t=/^(\/\:[^\/]+)\?/.exec(r);)i.push(n+=t[1]),r=r.slice(t[0].length);return jr(r).reduce((e,t)=>[...e,...i.map(e=>e+t)],[])}function Mr(e,t){return Object.defineProperty(e,"name",{value:t,writable:!1,configurable:!1}),e}var Nr=e=>String(e).split(`/`).map(encodeURIComponent).join(`/`),Pr=Symbol.for(`solid.Href`);function Fr(e=e=>e,t=``){let n=(t,n=``)=>e(t||`/`)+n;function r(e){return new Proxy((...t)=>{let i=e;for(let e=0;e<t.length;e++){let r=t[e];if(typeof r==`object`&&r){let a=typeof t[e+1]==`string`?`#${t[e+1]}`:``;return n(i,Ar(``,r)+a)}i+=`/${Nr(r)}`}return t.length?r(i):n(i)},{get(t,i){return i===`toString`?()=>n(e):typeof i==`symbol`?i===Symbol.toPrimitive?()=>n(e):i===Pr?e||`/`:void 0:r(`${e}/${i}`)}})}return r(yr(t))}var Ir=Symbol(`solid-router.serverRoute`);function Lr(e){return e?.[Ir]}function Rr(e,t,n){let r=e.key?.search;if(r){let e={...n},i=wr(r,e);return{params:{...t},search:i.issues?e:i.value}}return{params:{...t}}}var zr=(e,t)=>e===t||!!e&&!!t&&typeof e==`object`&&typeof t==`object`&&Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(n=>e[n]===t[n]);function Br(e,t){return zr(e.params,t.params)&&zr(e.search,t.search)}var Vr=100;function Hr(e,t){let n=typeof t.value==`function`?t.value(e):t.value;if(!(n===void 0||n===e.value&&t.state===e.state))return{...t,value:n}}var Ur=d(),Wr=d();function Gr(e){try{return f(e)}catch{return}}var Kr=()=>Sr(f(Ur),`<A> and 'use' router primitives can be only used inside a Route.`),qr=()=>Gr(Wr)||Kr().base,Jr=()=>Kr().navigatorFactory(),Yr=()=>Kr().location;function Xr(e){return qr().params}function Zr(e){let t=Kr(),n=t.location,r=Jr();return[e?kr(_(()=>{let e={...n.query},r;for(let n of t.matches()){let t=n.route.key.search;if(!t)continue;let i=wr(t,e);i.issues||(r=Object.assign(r||{...e},i.value))}return r||e})):n.query,(e,t)=>{r(t=>{let n=new URL(t.value[0]===`/`?vr+t.value:t.value,vr);return n.pathname+Ar(n.search,e)+n.hash},{scroll:!1,resolve:!1,...t})}]}var Qr=e=>encodeURIComponent(e).replace(/%(2B|40|3A|24|26|2C|3B|3D)/g,e=>decodeURIComponent(e)),$r=new WeakMap,ei=0,[ti,ni]=o(0);function ri(){return ti()}function ii(e){let t=$r.get(e);return t||$r.set(e,t={thunk:e}),t}function ai(e){if(e.resolved)return e.resolved;if(e.error!==void 0)throw e.sweep||(e.sweep=!0,queueMicrotask(()=>e.error=e.sweep=void 0)),e.error;return e.promise||=Promise.resolve(e.thunk()).then(t=>(e.resolved=Array.isArray(t)?t:t.default||t.routes||[],ei++,ni(ei),e.resolved),t=>{throw e.error=t??Error(),e.sweep=!0,queueMicrotask(()=>e.error=e.sweep=void 0),e.promise=void 0,t})}function oi(e){let t=[];for(let n of e)n.route.lazy&&!n.route.lazy.resolved&&t.push(n.route.lazy);return t}function si(e,t){let n=e+`/*`;return{key:t,originalPath:`*`,pattern:n,matcher:Er(n),lazy:t}}function ci(e,t=``){let{component:n,preload:r,children:i,info:a}=e,o=!i||Array.isArray(i)&&!i.length,s={key:e,component:n,preload:r,info:a};return ui(e.path).reduce((n,r)=>{for(let i of jr(r)){let a=Cr(t,i),c=o?a:a.split(`/*`,1)[0];c=c.split(`/`).map(e=>e.startsWith(`:`)||e.startsWith(`*`)?e:Qr(e)).join(`/`),n.push({...s,originalPath:r,pattern:c,matcher:Er(c,!o,e.matchFilters)})}return n},[])}function li(e,t=0){return{routes:e,score:Or(e[e.length-1])*1e4-t,matcher(t){let n=[];for(let r=e.length-1;r>=0;r--){let i=e[r],a=i.matcher(t);if(!a)return null;n.unshift({...a,route:i})}return n}}}function ui(e){return Array.isArray(e)?e:[e]}function di(e,t=``,n=[],r=[]){let i=ui(e);for(let e=0,a=i.length;e<a;e++){let a=i[e];if(a&&typeof a==`object`){a.path===void 0&&(a.path=``);let e=ci(a,t);for(let t of e){n.push(t);let e=a.children;if(typeof e==`function`){let i=ii(e);if(i.resolved)e=i.resolved;else{n.push(si(t.pattern,i)),r.push(li([...n],r.length)),n.pop(),n.pop();continue}}let i=Array.isArray(e)&&e.length===0;if(e&&!i)di(e,t.pattern,n,r);else{let e=li([...n],r.length);
2r.push(e)}n.pop()}}}return n.length?r:r.sort((e,t)=>t.score-e.score)}function fi(e,t){for(let n=0,r=e.length;n<r;n++){let r=e[n].matcher(t);if(r)return r}return[]}function pi(e){let t={};for(let n=0;n<e.length;n++)Object.assign(t,e[n].params);return t}function mi(e,t,n){let r=new URL(vr),i=_((t=r)=>{let n=e();try{return new URL(n[0]===`/`?vr+n:n,r)}catch{return t}},{equals:(e,t)=>e.href===t.href}),a=_(()=>i().pathname),o=_(()=>i().search),s=_(()=>i().hash),c=()=>``,l=_(()=>Tr(i()));return{get pathname(){return a()},get search(){return o()},get hash(){return s()},get state(){return t()},get key(){return c()},query:n?n(l):kr(l)}}var hi,gi=new Map;function _i(e){return gi.set(e,hi&&hi(e)),()=>{let t=gi.get(e);gi.delete(e),t&&t()}}function vi(e){if(!hi){hi=e;for(let[t,n]of gi)n||gi.set(t,e(t))}}var yi;function bi(e){yi||=e}var xi;function Si(){return xi||Gr(Ur)?.intent?.()}var Ci=!1;function wi(){return Ci}function Ti(e){Ci=e}function Ei(e,t,n,r={}){let{signal:[i,a],utils:s={}}=e,c=s.parsePath||(e=>e),l=s.renderPath||(e=>e),d=s.beforeLeave||{},f=xr(``,r.base||``),p=ie(i);if(f===void 0)throw Error(`${f} is not a valid base path`);f&&!p.value&&a({value:f,replace:!0,scroll:!1,_navigation:1});let m=mi(()=>i().value,()=>i().state,s.queryWrapper),h,g=u(),v=new WeakMap,y=e=>{let t=v.get(e);return t||(t=fe(g,()=>_(()=>{let t=ai(e);return t instanceof Promise?t.then(()=>void 0):void 0},{name:`lazyRoutes`})),v.set(e,t)),t()},b=_(()=>{let e=typeof r.transformUrl==`function`?r.transformUrl(m.pathname):m.pathname,n=fi(t(),e),i=oi(n);if(i.length)for(let e of i)y(e);return n},{name:`matches`}),x=_(()=>_e(()=>{try{b()}catch(e){if(e instanceof oe)throw e}m.search,m.hash}),{name:`routingPending`}),S=()=>x()||_e(i),C=()=>{if(!_e(i))return;let e=ge(i)._navigation;return e===-1?`native`:e&&e>0?`navigate`:void 0},w=()=>{if(!S())return;let e=ge(i);return e._navigation&&e._navigation>0?e:void 0},T=()=>pi(b()),E=s.paramsWrapper?e=>s.paramsWrapper(e,t):e=>kr(e),D=E(T),ee={pattern:f,params:D,path:()=>f,outlet:()=>null,resolvePath(e){return xr(f,e)}};return{base:ee,location:m,params:D,wrapParams:E,isRouting:S,intent:C,get pendingTarget(){return w()},renderPath:l,parsePath:c,navigatorFactory:O,matches:b,beforeLeave:d,preloadRoute:k,singleFlight:r.singleFlight===void 0||r.singleFlight,get submissions(){return h||=o([],{ownedWrite:!0})}};function te(t,n,r){ie(()=>{if(typeof n==`number`){n&&s.go&&s.go(n);return}let{replace:o,resolve:l,scroll:u,state:f}={replace:!1,resolve:!0,scroll:!0,...r},p=e=>{if(e[0]===`#`&&(e=c(e)),!l)return xr((!e||e[0]===`?`)&&m.pathname||``,e);if(e[0]===`/`)return t.resolvePath(e);let n=new URL(e,vr+m.pathname+m.search+m.hash);return n.origin===`http://sr`?n.pathname+n.search+n.hash:void 0},h=e=>Error(`Path '${e}' is not a routable path`),g=ge(i),_,v,y=typeof n==`string`?void 0:n[Pr];if(y===void 0&&typeof n==`function`){let e=n;_=t=>{let n=e(t),r=p(n);if(r===void 0)throw h(n);return r},v=_(g)}else if(typeof n!=`string`&&(n=y||n.toString()),v=p(n),v===void 0)throw h(n);let b=g._navigation!==void 0&&g._navigation>0&&(_e(i)||e.inflight?.()===g)?g._navigation:0;if(b>=Vr)throw Error(`Too many redirects`);(!d.current||d.current.confirm(v,r))&&fe(null,()=>a({value:_||v,state:f,replace:b?g.replace:o,scroll:b?g.scroll:u,_navigation:b+1}))})}function O(e){return e=e||Gr(Wr)||ee,((t,n)=>te(e,t,n))}function k(e,r){let i=fi(t(),e.pathname),a=i.find(e=>e.route.lazy&&!e.route.lazy.resolved);if(a)try{ai(a.route.lazy).then(()=>k(e,r),()=>{})}catch{}let o;try{o=ie(b)}catch{}let s=Tr(e),c=(e,t,n,r)=>{let i=Rr(r,e,t);return i.search===void 0&&(i.search=n),i},l=xi;xi=`preload`;for(let t in i){let{route:a,params:l}=i[t];a.component&&a.component.preload&&a.component.preload();let{preload:u,component:d}=a,f=o&&o[t],p=f&&f.route.key===a.key&&Br(c(l,s,e.search,a),c(f.params,m.query,m.search,a));Ci=!0,r&&!p&&fe(n(),()=>{let t=Lr(d);t&&t.call(Rr(a,l,s)),u&&u({params:l,location:{pathname:e.pathname,search:e.search,hash:e.hash,query:s,state:null,key:``},intent:`preload`})}),Ci=!1}xi=l}}function Di(e,t,n,r,i=()=>[r()]){let{base:a,location:o,wrapParams:s}=e,{pattern:c,component:l,preload:u}=r().route,d=_(()=>r().path),f=s(()=>pi(i()));l&&l.preload&&l.preload(),Ci=!0;let p=u?u({params:f,location:o,intent:e.intent?.()||`initial`}):void 0;return Ci=!1,{parent:t,pattern:c,params:f,path:d,outlet:()=>{if(!l)return n();let e={params:f,location:o,data:p,get children(){return n()}},t=Lr(l);
2if(t){let n=_(()=>Rr(r().route,r().params,o.query),{equals:Br});return t.render(n,e)}return x(l,e)},resolvePath(e){return xr(a.path(),e,d())}}}var Oi;function ki(e){Oi=e}function Ai({preload:e=!0,explicitLinks:t=!1,actionBase:n=`/_server`,transformUrl:r}={}){return i=>{let a=i.base.path(),o=i.navigatorFactory(i.base),s,c;function l(e){return e.namespaceURI===`http://www.w3.org/2000/svg`}function u(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let n=e.composedPath().find(e=>e instanceof Node&&e.nodeName.toUpperCase()===`A`);if(!n||t&&!n.hasAttribute(`link`))return;let r=l(n),i=r?n.href.baseVal:n.href;if((r?n.target.baseVal:n.target)||!i&&!n.hasAttribute(`state`))return;let o=(n.getAttribute(`rel`)||``).split(/\s+/);if(n.hasAttribute(`download`)||o&&o.includes(`external`))return;let s=r?new URL(i,document.baseURI):new URL(i);if((s.protocol===`https:`||s.protocol===`http:`)&&!(s.origin!==window.location.origin||a&&s.pathname&&!s.pathname.toLowerCase().startsWith(a.toLowerCase())))return[n,s]}function d(e){let t=u(e);if(!t)return;let[n,r]=t,a=i.parsePath(r.pathname+r.search+r.hash),s=n.getAttribute(`state`);e.preventDefault(),o(a,{resolve:!1,replace:n.hasAttribute(`replace`),scroll:!n.hasAttribute(`noscroll`),state:s?JSON.parse(s):void 0})}function f(e){let t=u(e);if(!t)return;let[n,a]=t;r&&(a.pathname=r(a.pathname)),i.preloadRoute(a,n.getAttribute(`preload`)!==`false`)}function p(e){clearTimeout(s);let t=u(e);if(!t)return c=null;let[n,a]=t;c!==n&&(r&&(a.pathname=r(a.pathname)),s=setTimeout(()=>{i.preloadRoute(a,n.getAttribute(`preload`)!==`false`),c=n},20))}function m(e){if(Oi)return Oi(e,i,n);if(e.defaultPrevented)return;let t=e.target,r=e.submitter&&e.submitter.hasAttribute(`formaction`)?e.submitter.getAttribute(`formaction`):t.getAttribute(`action`);if(!r||r.startsWith(`https://action/`))return;let a=new URL(r,document.baseURI),o=i.parsePath(a.pathname+a.search);if(!o.startsWith(n)||t.method.toUpperCase()!==`POST`)return;e.preventDefault();let s=new FormData(t,e.submitter);ve(()=>import(`./serverForms-Dp4wnJPy.js`).then(e=>e.submitServerForm(i,o,t,s)),__vite__mapDeps([0,1,2]),import.meta.url)}ae([`click`,`submit`]),document.addEventListener(`click`,d),e&&(document.addEventListener(`mousemove`,p,{passive:!0}),document.addEventListener(`focusin`,f,{passive:!0}),document.addEventListener(`touchstart`,f,{passive:!0})),document.addEventListener(`submit`,m),O(()=>{document.removeEventListener(`click`,d),e&&(document.removeEventListener(`mousemove`,p),document.removeEventListener(`focusin`,f),document.removeEventListener(`touchstart`,f)),document.removeEventListener(`submit`,m)})}}var ji=g,Mi=l(`<div><i>`),Ni=e=>{var t=Mi(),n=t.firstChild,r=e.ref;return typeof r==`function`||Array.isArray(r)?I(()=>r,n):e.ref=n,M(()=>({e:F(L(`fa fa-spin fa-spinner-third animate-spin block`,e.class)),t:F(e.color?{color:e.color}:void 0)}),({e,t},r)=>{P(n,e,r?.e),w(n,t,r?.t)}),t},Pi=y;function Fi(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var Ii=1/0,Li=At?At.prototype:void 0,Ri=Li?Li.toString:void 0;function zi(e){if(typeof e==`string`)return e;if(jt(e))return Fi(e,zi)+``;if(Nt(e))return Ri?Ri.call(e):``;var t=e+``;return t==`0`&&1/e==-Ii?`-0`:t}var Bi=Object.create,Vi=function(){function e(){}return function(t){if(!pt(t))return{};if(Bi)return Bi(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Hi(){}function Ui(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}function Wi(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function Gi(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function Ki(e){return e!==e}function qi(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function Ji(e,t,n){return t===t?qi(e,t,n):Gi(e,Ki,n)}function Yi(e,t){return!!(e!=null&&e.length)&&Ji(e,t,0)>-1}function Xi(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Zi=Object.prototype.hasOwnProperty;function Qi(e){if(!pt(e))return Xi(e);var t=ht(e),n=[];for(var r in e)(r!=`constructor`||!t&&Zi.call(e,r))&&n.push(r);return n}function $i(e){return gt(e)?yt(e,!0):Qi(e)}var ea=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ta=/^\w*$/;function na(e,t){if(jt(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||Nt(e)?!0:ta.test(e)||!ea.test(e)||t!=null&&e in Object(t)}var ra=_t(Object,`create`);function ia(){this.__data__=ra?ra(null):{},this.size=0}function aa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}var oa=`__lodash_hash_undefined__`,sa=Object.prototype.hasOwnProperty;function ca(e){var t=this.__data__;if(ra){var n=t[e];return n===oa?void 0:n}return sa.call(t,e)?t[e]:void 0}var la=Object.prototype.hasOwnProperty;function ua(e){var t=this.__data__;return ra?t[e]!==void 0:la.call(t,e)}var da=`__lodash_hash_undefined__`;function fa(e,t){var n=this.__data__;return this.size+=+!this.has(e),n[e]=ra&&t===void 0?da:t,this}function pa(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}pa.prototype.clear=ia,pa.prototype.delete=aa,pa.prototype.get=ca,pa.prototype.has=ua,pa.prototype.set=fa;function ma(){this.__data__=[],this.size=0}function ha(e,t){for(var n=e.length;n--;)if(xt(e[n][0],t))return n;return-1}var ga=Array.prototype.splice;function _a(e){var t=this.__data__,n=ha(t,e);return n<0?!1:(n==t.length-1?t.pop():ga.call(t,n,1),--this.size,!0)}function va(e){var t=this.__data__,n=ha(t,e);return n<0?void 0:t[n][1]}function ya(e){return ha(this.__data__,e)>-1}function ba(e,t){var n=this.__data__,r=ha(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function xa(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xa.prototype.clear=ma,xa.prototype.delete=_a,xa.prototype.get=va,xa.prototype.has=ya,xa.prototype.set=ba;function Sa(){this.size=0,this.__data__={hash:new pa,map:new(Pt||xa),string:new pa}}function Ca(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function wa(e,t){var n=e.__data__;return Ca(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function Ta(e){var t=wa(this,e).delete(e);return this.size-=+!!t,t}function Ea(e){return wa(this,e).get(e)}function Da(e){return wa(this,e).has(e)}function Oa(e,t){var n=wa(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function ka(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ka.prototype.clear=Sa,ka.prototype.delete=Ta,ka.prototype.get=Ea,ka.prototype.has=Da,ka.prototype.set=Oa;var Aa=`Expected a function`;function ja(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(Aa);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(ja.Cache||ka),n}ja.Cache=ka;var Ma=500;function Na(e){var t=ja(e,function(e){return n.size===Ma&&n.clear(),e}),n=t.cache;return t}var Pa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fa=/\\(\\)?/g,Ia=Na(function(e){var t=[];
2return e.charCodeAt(0)===46&&t.push(``),e.replace(Pa,function(e,n,r,i){t.push(r?i.replace(Fa,`$1`):n||e)}),t});function La(e){return e==null?``:zi(e)}function Ra(e,t){return jt(e)?e:na(e,t)?[e]:Ia(La(e))}var za=1/0;function Ba(e){if(typeof e==`string`||Nt(e))return e;var t=e+``;return t==`0`&&1/e==-za?`-0`:t}function Va(e,t){t=Ra(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Ba(t[n++])];return n&&n==r?e:void 0}function Ha(e,t,n){var r=e==null?void 0:Va(e,t);return r===void 0?n:r}function Ua(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var Wa=At?At.isConcatSpreadable:void 0;function Ga(e){return jt(e)||bt(e)||!!(Wa&&e&&e[Wa])}function Ka(e,t,n,r,i){var a=-1,o=e.length;for(n||=Ga,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?Ka(s,t-1,n,r,i):Ua(i,s):r||(i[i.length]=s)}return i}function qa(e){return e!=null&&e.length?Ka(e,1):[]}var Ja=Tt(Object.getPrototypeOf,Object),Ya=`[object Object]`,Xa=Function.prototype,Za=Object.prototype,Qa=Xa.toString,$a=Za.hasOwnProperty,eo=Qa.call(Object);function tee(e){if(!ut(e)||lt(e)!=Ya)return!1;var t=Ja(e);if(t===null)return!0;var n=$a.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&Qa.call(n)==eo}function to(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function nee(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:to(e,t,n)}var ree=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function no(e){return ree.test(e)}function ro(e){return e.split(``)}var io=`\\ud800-\\udfff`,ao=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,oo=`\\ufe0e\\ufe0f`,so=`[`+io+`]`,co=`[`+ao+`]`,lo=`\\ud83c[\\udffb-\\udfff]`,uo=`(?:`+co+`|`+lo+`)`,fo=`[^`+io+`]`,po=`(?:\\ud83c[\\udde6-\\uddff]){2}`,mo=`[\\ud800-\\udbff][\\udc00-\\udfff]`,ho=`\\u200d`,go=uo+`?`,_o=`[`+oo+`]?`,vo=`(?:`+ho+`(?:`+[fo,po,mo].join(`|`)+`)`+_o+go+`)*`,yo=_o+go+vo,bo=`(?:`+[fo+co+`?`,co,po,mo,so].join(`|`)+`)`,xo=RegExp(lo+`(?=`+lo+`)|`+bo+yo,`g`);function So(e){return e.match(xo)||[]}function Co(e){return no(e)?So(e):ro(e)}function wo(e){return function(t){t=La(t);var n=no(t)?Co(t):void 0,r=n?n[0]:t.charAt(0),i=n?nee(n,1).join(``):t.slice(1);return r[e]()+i}}var To=wo(`toUpperCase`);function Eo(e){return To(La(e).toLowerCase())}var Do=Math.ceil,Oo=Math.max;function ko(e,t,n){t=(n?Ht(e,t,n):t===void 0)?1:Oo(Lt(t),0);var r=e==null?0:e.length;if(!r||t<1)return[];for(var i=0,a=0,o=Array(Do(r/t));i<r;)o[a++]=to(e,i,i+=t);return o}function Ao(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function jo(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=It(n),n=n===n?n:0),t!==void 0&&(t=It(t),t=t===t?t:0),Ao(It(e),t,n)}function Mo(){this.__data__=new xa,this.size=0}function No(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Po(e){return this.__data__.get(e)}function Fo(e){return this.__data__.has(e)}var Io=200;function Lo(e,t){var n=this.__data__;if(n instanceof xa){var r=n.__data__;if(!Pt||r.length<Io-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ka(r)}return n.set(e,t),this.size=n.size,this}function Ro(e){var t=this.__data__=new xa(e);this.size=t.size}Ro.prototype.clear=Mo,Ro.prototype.delete=No,Ro.prototype.get=Po,Ro.prototype.has=Fo,Ro.prototype.set=Lo;function zo(e,t){return e&&Ut(t,Dt(t),e)}function Bo(e,t){return e&&Ut(t,$i(t),e)}var Vo=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Ho=Vo&&typeof module==`object`&&module&&!module.nodeType&&module,Uo=Ho&&Ho.exports===Vo?dt.Buffer:void 0,Wo=Uo?Uo.allocUnsafe:void 0;function Go(e,t){if(t)return e.slice();var n=e.length,r=Wo?Wo(n):new e.constructor(n);return e.copy(r),r}function Ko(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function qo(){return[]}var Jo=Object.prototype.propertyIsEnumerable,Yo=Object.getOwnPropertySymbols,Xo=Yo?function(e){return e==null?[]:(e=Object(e),Ko(Yo(e),function(t){return Jo.call(e,t)}))}:qo;function Zo(e,t){return Ut(e,Xo(e),t)}var Qo=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)Ua(t,Xo(e)),e=Ja(e);return t}:qo;function $o(e,t){return Ut(e,Qo(e),t)}
vendor: 4,166 bytes, line 2
2function es(e,t,n){var r=t(e);return jt(e)?r:Ua(r,n(e))}function ts(e){return es(e,Dt,Xo)}function ns(e){return es(e,$i,Qo)}var rs=Object.prototype.hasOwnProperty;function is(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&rs.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}var as=dt.Uint8Array;function os(e){var t=new e.constructor(e.byteLength);return new as(t).set(new as(e)),t}function ss(e,t){var n=t?os(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var cs=/\w*$/;function ls(e){var t=new e.constructor(e.source,cs.exec(e));return t.lastIndex=e.lastIndex,t}var us=At?At.prototype:void 0,ds=us?us.valueOf:void 0;function fs(e){return ds?Object(ds.call(e)):{}}function ps(e,t){var n=t?os(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var ms=`[object Boolean]`,hs=`[object Date]`,gs=`[object Map]`,_s=`[object Number]`,vs=`[object RegExp]`,ys=`[object Set]`,bs=`[object String]`,xs=`[object Symbol]`,Ss=`[object ArrayBuffer]`,Cs=`[object DataView]`,ws=`[object Float32Array]`,Ts=`[object Float64Array]`,Es=`[object Int8Array]`,Ds=`[object Int16Array]`,Os=`[object Int32Array]`,ks=`[object Uint8Array]`,As=`[object Uint8ClampedArray]`,js=`[object Uint16Array]`,Ms=`[object Uint32Array]`;function Ns(e,t,n){var r=e.constructor;switch(t){case Ss:return os(e);case ms:case hs:return new r(+e);case Cs:return ss(e,n);case ws:case Ts:case Es:case Ds:case Os:case ks:case As:case js:case Ms:return ps(e,n);case gs:return new r;case _s:case bs:return new r(e);case vs:return ls(e);case ys:return new r;case xs:return fs(e)}}function Ps(e){return typeof e.constructor==`function`&&!ht(e)?Vi(Ja(e)):{}}var Fs=`[object Map]`;function Is(e){return ut(e)&&zt(e)==Fs}var Ls=Ct&&Ct.isMap,Rs=Ls?Et(Ls):Is,zs=`[object Set]`;function Bs(e){return ut(e)&&zt(e)==zs}var Vs=Ct&&Ct.isSet,Hs=Vs?Et(Vs):Bs,Us=1,Ws=2,Gs=4,Ks=`[object Arguments]`,qs=`[object Array]`,Js=`[object Boolean]`,Ys=`[object Date]`,Xs=`[object Error]`,Zs=`[object Function]`,Qs=`[object GeneratorFunction]`,$s=`[object Map]`,ec=`[object Number]`,tc=`[object Object]`,nc=`[object RegExp]`,rc=`[object Set]`,ic=`[object String]`,ac=`[object Symbol]`,oc=`[object WeakMap]`,sc=`[object ArrayBuffer]`,cc=`[object DataView]`,lc=`[object Float32Array]`,uc=`[object Float64Array]`,dc=`[object Int8Array]`,fc=`[object Int16Array]`,pc=`[object Int32Array]`,mc=`[object Uint8Array]`,hc=`[object Uint8ClampedArray]`,gc=`[object Uint16Array]`,_c=`[object Uint32Array]`,vc={};vc[Ks]=vc[qs]=vc[sc]=vc[cc]=vc[Js]=vc[Ys]=vc[lc]=vc[uc]=vc[dc]=vc[fc]=vc[pc]=vc[$s]=vc[ec]=vc[tc]=vc[nc]=vc[rc]=vc[ic]=vc[ac]=vc[mc]=vc[hc]=vc[gc]=vc[_c]=!0,vc[Xs]=vc[Zs]=vc[oc]=!1;function yc(e,t,n,r,i,a){var o,s=t&Us,c=t&Ws,l=t&Gs;if(n&&(o=i?n(e,r,i,a):n(e)),o!==void 0)return o;if(!pt(e))return e;var u=jt(e);if(u){if(o=is(e),!s)return Ui(e,o)}else{var d=zt(e),f=d==Zs||d==Qs;if(mt(e))return Go(e,s);if(d==tc||d==Ks||f&&!i){if(o=c||f?{}:Ps(e),!s)return c?$o(e,Bo(o,e)):Zo(e,zo(o,e))}else{if(!vc[d])return i?e:{};o=Ns(e,d,s)}}a||=new Ro;var p=a.get(e);if(p)return p;a.set(e,o),Hs(e)?e.forEach(function(r){o.add(yc(r,t,n,r,e,a))}):Rs(e)&&e.forEach(function(r,i){o.set(i,yc(r,t,n,i,e,a))});var m=u?void 0:(l?c?ns:ts:c?$i:Dt)(e);return Wi(m||e,function(r,i){m&&(i=r,r=e[i]),Gt(o,i,yc(r,t,n,i,e,a))}),o}var bc=1,xc=4;function Sc(e){return yc(e,bc|xc)}var Cc=`__lodash_hash_undefined__`;function wc(e){return this.__data__.set(e,Cc),this}function Tc(e){return this.__data__.has(e)}function Ec(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ka;++t<n;)this.add(e[t])}Ec.prototype.add=Ec.prototype.push=wc,Ec.prototype.has=Tc;function Dc(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function Oc(e,t){return e.has(t)}var kc=1,Ac=2;function jc(e,t,n,r,i,a){var o=n&kc,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&Ac?new Ec:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!Dc(t,function(e,t){if(!Oc(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}
vendor: 6,755 bytes, line 2
2else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function Mc(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function Nc(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var Pc=1,Fc=2,Ic=`[object Boolean]`,Lc=`[object Date]`,Rc=`[object Error]`,zc=`[object Map]`,Bc=`[object Number]`,Vc=`[object RegExp]`,Hc=`[object Set]`,Uc=`[object String]`,Wc=`[object Symbol]`,Gc=`[object ArrayBuffer]`,Kc=`[object DataView]`,qc=At?At.prototype:void 0,Jc=qc?qc.valueOf:void 0;function Yc(e,t,n,r,i,a,o){switch(n){case Kc:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Gc:return!(e.byteLength!=t.byteLength||!a(new as(e),new as(t)));case Ic:case Lc:case Bc:return xt(+e,+t);case Rc:return e.name==t.name&&e.message==t.message;case Vc:case Uc:return e==t+``;case zc:var s=Mc;case Hc:var c=r&Pc;if(s||=Nc,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=Fc,o.set(e,t);var u=jc(s(e),s(t),r,i,a,o);return o.delete(e),u;case Wc:if(Jc)return Jc.call(e)==Jc.call(t)}return!1}var Xc=1,Zc=Object.prototype.hasOwnProperty;function Qc(e,t,n,r,i,a){var o=n&Xc,s=ts(e),c=s.length;if(c!=ts(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Zc.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var $c=1,el=`[object Arguments]`,tl=`[object Array]`,nl=`[object Object]`,rl=Object.prototype.hasOwnProperty;function il(e,t,n,r,i,a){var o=jt(e),s=jt(t),c=o?tl:zt(e),l=s?tl:zt(t);c=c==el?nl:c,l=l==el?nl:l;var u=c==nl,d=l==nl,f=c==l;if(f&&mt(e)){if(!mt(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Ro,o||ft(e)?jc(e,t,n,r,i,a):Yc(e,t,c,n,r,i,a);if(!(n&$c)){var p=u&&rl.call(e,`__wrapped__`),m=d&&rl.call(t,`__wrapped__`);if(p||m){var h=p?e.value():e,g=m?t.value():t;return a||=new Ro,i(h,g,n,r,a)}}return f?(a||=new Ro,Qc(e,t,n,r,i,a)):!1}function al(e,t,n,r,i){return e===t?!0:e==null||t==null||!ut(e)&&!ut(t)?e!==e&&t!==t:il(e,t,n,r,al,i)}var ol=1,sl=2;function iee(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new Ro;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?al(u,l,ol|sl,r,d):f))return!1}}return!0}function cl(e){return e===e&&!pt(e)}function aee(e){for(var t=Dt(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,cl(i)]}return t}function ll(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}function oee(e){var t=aee(e);return t.length==1&&t[0][2]?ll(t[0][0],t[0][1]):function(n){return n===e||iee(n,e,t)}}function see(e,t){return e!=null&&t in Object(e)}function cee(e,t,n){t=Ra(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Ba(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&wt(i)&&vt(o,i)&&(jt(e)||bt(e)))}function ul(e,t){return e!=null&&cee(e,t,see)}var dl=1,fl=2;function pl(e,t){return na(e)&&cl(t)?ll(Ba(e),t):function(n){var r=Ha(n,e);return r===void 0&&r===t?ul(n,e):al(t,r,dl|fl)}}function ml(e){return function(t){return t?.[e]}}function hl(e){return function(t){return Va(t,e)}}function gl(e){return na(e)?ml(Ba(e)):hl(e)}function _l(e){return typeof e==`function`?e:e==null?Mt:typeof e==`object`?jt(e)?pl(e[0],e[1]):oee(e):gl(e)}function vl(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}function yl(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var bl=yl();function xl(e,t){return e&&bl(e,t,Dt)}function Sl(e,t){return function(n,r){if(n==null)return n;if(!gt(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var Cl=Sl(xl);function wl(e,t,n,r){return Cl(e,function(e,i,a){t(r,e,n(e),a)}),r}function Tl(e,t){return function(n,r){var i=jt(n)?vl:wl,a=t?t():{};return i(n,e,_l(r,2),a)}}var El=Object.prototype.hasOwnProperty,Dl=Tl(function(e,t,n){El.call(e,n)?++e[n]:Vt(e,n,1)}),Ol=function(){return dt.Date.now()},kl=`Expected a function`,Al=Math.max,jl=Math.min;function Ml(e,t,n){var r,i,a,o,s,c,l=0,u=!1,d=!1,f=!0;if(typeof e!=`function`)throw TypeError(kl);t=It(t)||0,pt(n)&&(u=!!n.leading,d=`maxWait`in n,a=d?Al(It(n.maxWait)||0,t):a,f=`trailing`in n?!!n.trailing:f);function p(t){var n=r,a=i;return r=i=void 0,l=t,o=e.apply(a,n),o}function m(e){return l=e,s=setTimeout(_,t),u?p(e):o}function h(e){var n=e-c,r=e-l,i=t-n;return d?jl(i,a-r):i}function g(e){var n=e-c,r=e-l;return c===void 0||n>=t||n<0||d&&r>=a}function _(){var e=Ol();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(Ol())}function x(){var e=Ol(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function Nl(e,t,n){(n!==void 0&&!xt(e[t],n)||n===void 0&&!(t in e))&&Vt(e,t,n)}function Pl(e){return ut(e)&>(e)}function Fl(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}function Il(e){return Ut(e,$i(e))}function Ll(e,t,n,r,i,a,o){var s=Fl(e,n),c=Fl(t,n),l=o.get(c);if(l){Nl(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=jt(c),p=!f&&mt(c),m=!f&&!p&&ft(c);u=c,f||p||m?jt(s)?u=s:Pl(s)?u=Ui(s):p?(d=!1,u=Go(c,!0)):m?(d=!1,u=ps(c,!0)):u=[]:tee(c)||bt(c)?(u=s,bt(s)?u=Il(s):(!pt(s)||kt(s))&&(u=Ps(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),Nl(e,n,u)}function Rl(e,t,n,r,i){e!==t&&bl(t,function(a,o){if(i||=new Ro,pt(a))Ll(e,t,o,n,Rl,r,i);else{var s=r?r(Fl(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),Nl(e,o,s)}},$i)}function zl(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Bl(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function Vl(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:Lt(t),to(e,t<0?0:t,r)):[]}function Hl(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:Lt(t),t=r-t,to(e,0,t<0?0:t)):[]}function Ul(e,t,n,r){for(var i=e.length,a=r?i:-1;(r?a--:++a<i)&&t(e[a],a,e););return n?to(e,r?0:a,r?a+1:i):to(e,r?a+1:0,r?i:a)}function Wl(e,t){return e&&e.length?Ul(e,_l(t,3),!0):[]}
2function Gl(e){return typeof e==`function`?e:Mt}function Kl(e,t){return(jt(e)?Wi:Cl)(e,Gl(t))}function ql(e,t){return Fi(t,function(t){return[t,e[t]]})}function Jl(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=[e,e]}),n}var Yl=`[object Map]`,Xl=`[object Set]`;function Zl(e){return function(t){var n=zt(t);return n==Yl?Mc(t):n==Xl?Jl(t):ql(t,e(t))}}var Ql=Zl(Dt);function $l(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function eu(e,t){var n=!0;return Cl(e,function(e,r,i){return n=!!t(e,r,i),n}),n}function tu(e,t,n){var r=jt(e)?$l:eu;return n&&Ht(e,t,n)&&(t=void 0),r(e,_l(t,3))}function nu(e,t){var n=[];return Cl(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function ru(e,t){return(jt(e)?Ko:nu)(e,_l(t,3))}function iu(e){return function(t,n,r){var i=Object(t);if(!gt(t)){var a=_l(n,3);t=Dt(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var au=Math.max;function ou(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Lt(n);return i<0&&(i=au(r+i,0)),Gi(e,_l(t,3),i)}var su=iu(ou),cu=Math.max,lu=Math.min;function uu(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=Lt(n),i=n<0?cu(r+i,0):lu(i,r-1)),Gi(e,_l(t,3),i,!0)}var du=iu(uu);function fu(e){return e&&e.length?e[0]:void 0}function pu(e,t){var n=-1,r=gt(e)?Array(e.length):[];return Cl(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function mu(e,t){return(jt(e)?Fi:pu)(e,_l(t,3))}function hu(e,t){return Ka(mu(e,t),1)}var gu=Object.prototype.hasOwnProperty,_u=Tl(function(e,t,n){gu.call(e,n)?e[n].push(t):Vt(e,n,[t])});function vu(e,t){return e>t}var yu=`[object String]`;function bu(e){return typeof e==`string`||!jt(e)&&ut(e)&<(e)==yu}function xu(e,t){return Fi(t,function(t){return e[t]})}function Su(e){return e==null?[]:xu(e,Dt(e))}var Cu=Math.max;function wu(e,t,n,r){e=gt(e)?e:Su(e),n=n&&!r?Lt(n):0;var i=e.length;return n<0&&(n=Cu(i+n,0)),bu(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&Ji(e,t,n)>-1}var Tu=Math.max;function Eu(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Lt(n);return i<0&&(i=Tu(r+i,0)),Ji(e,t,i)}var Du=`[object Map]`,Ou=`[object Set]`,ku=Object.prototype.hasOwnProperty;function H(e){if(e==null)return!0;if(gt(e)&&(jt(e)||typeof e==`string`||typeof e.splice==`function`||mt(e)||ft(e)||bt(e)))return!e.length;var t=zt(e);if(t==Du||t==Ou)return!e.size;if(ht(e))return!St(e).length;for(var n in e)if(ku.call(e,n))return!1;return!0}function Au(e,t){return al(e,t)}var ju=Tl(function(e,t,n){Vt(e,n,t)});function Mu(e,t){return e<t}function Nu(e,t){var n={};return t=_l(t,3),xl(e,function(e,r,i){Vt(n,r,t(e,r,i))}),n}function Pu(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],o=t(a);if(o!=null&&(s===void 0?o===o&&!Nt(o):n(o,s)))var s=o,c=a}return c}function Fu(e){return e&&e.length?Pu(e,Mt,vu):void 0}function Iu(e,t){return e&&e.length?Pu(e,_l(t,2),vu):void 0}function Lu(e,t){for(var n,r=-1,i=e.length;++r<i;){var a=t(e[r]);a!==void 0&&(n=n===void 0?a:n+a)}return n}var Ru=Wt(function(e,t,n){Rl(e,t,n)});function zu(e,t){return e&&e.length?Pu(e,_l(t,2),Mu):void 0}function Bu(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function Vu(e,t){if(e!==t){var n=e!==void 0,r=e===null,i=e===e,a=Nt(e),o=t!==void 0,s=t===null,c=t===t,l=Nt(t);if(!s&&!l&&!a&&e>t||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e<t||l&&n&&i&&!r&&!a||s&&n&&i||!o&&i||!c)return-1}return 0}function Hu(e,t,n){for(var r=-1,i=e.criteria,a=t.criteria,o=i.length,s=n.length;++r<o;){var c=Vu(i[r],a[r]);if(c)return r>=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function Uu(e,t,n){t=t.length?Fi(t,function(e){return jt(e)?function(t){return Va(t,e.length===1?e[0]:e)}:e}):[Mt];var r=-1;return t=Fi(t,Et(_l)),Bu(pu(e,function(e,n,i){return{criteria:Fi(t,function(t){return t(e)}),index:++r,value:e}}),function(e,t){return Hu(e,t,n)})}var Wu=ml(`length`),Gu=`\\ud800-\\udfff`,Ku=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,qu=`\\ufe0e\\ufe0f`,Ju=`[`+Gu+`]`,Yu=`[`+Ku+`]`,Xu=`\\ud83c[\\udffb-\\udfff]`,Zu=`(?:`+Yu+`|`+Xu+`)`,Qu=`[^`+Gu+`]`,$u=`(?:\\ud83c[\\udde6-\\uddff]){2}`,ed=`[\\ud800-\\udbff][\\udc00-\\udfff]`,td=`\\u200d`,nd=Zu+`?`,rd=`[`+qu+`]?`,id=`(?:`+td+`(?:`+[Qu,$u,ed].join(`|`)+`)`+rd+nd+`)*`,ad=rd+nd+id,od=`(?:`+[Qu+Yu+`?`,Yu,$u,ed,Ju].join(`|`)+`)`,sd=RegExp(Xu+`(?=`+Xu+`)|`+od+ad,`g`);function cd(e){for(var t=sd.lastIndex=0;sd.test(e);)++t;return t}function ld(e){return no(e)?cd(e):Wu(e)}var ud=Tl(function(e,t,n){e[+!n].push(t)},function(){return[[],[]]}),dd=Math.floor,fd=Math.random;function pd(e,t){return e+dd(fd()*(t-e+1))}var md=Math.ceil,hd=Math.max;function gd(e,t,n,r){for(var i=-1,a=hd(md((t-e)/(n||1)),0),o=Array(a);a--;)o[r?a:++i]=e,e+=n;return o}function _d(e){return function(t,n,r){return r&&typeof r!=`number`&&Ht(t,n,r)&&(n=r=void 0),t=Ft(t),n===void 0?(n=t,t=0):n=Ft(n),r=r===void 0?t<n?1:-1:Ft(r),gd(t,n,r,e)}}var vd=_d(),yd=Array.prototype.reverse;function bd(e){return e==null?e:yd.call(e)}function xd(e,t){var n=-1,r=e.length,i=r-1;for(t=t===void 0?r:t;++n<t;){var a=pd(n,i),o=e[a];e[a]=e[n],e[n]=o}return e.length=t,e}function Sd(e){return xd(Ui(e))}function Cd(e){return xd(Su(e))}function wd(e){return(jt(e)?Sd:Cd)(e)}var Td=`[object Map]`,Ed=`[object Set]`;function Dd(e){if(e==null)return 0;if(gt(e))return bu(e)?ld(e):e.length;var t=zt(e);return t==Td||t==Ed?e.size:St(e).length}function Od(e,t,n){var r=e==null?0:e.length;return r?(n&&typeof n!=`number`&&Ht(e,t,n)?(t=0,n=r):(t=t==null?0:Lt(t),n=n===void 0?r:Lt(n)),to(e,t,n)):[]}function kd(e,t){var n;return Cl(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}function Ad(e,t,n){var r=jt(e)?Dc:kd;return n&&Ht(e,t,n)&&(t=void 0),r(e,_l(t,3))}var jd=Bt(function(e,t){if(e==null)return[];var n=t.length;return n>1&&Ht(e,t[0],t[1])?t=[]:n>2&&Ht(t[0],t[1],t[2])&&(t=[t[0]]),Uu(e,Ka(t,1),[])});function Md(e){return e&&e.length?Lu(e,Mt):0}function Nd(e,t){return e&&e.length?Lu(e,_l(t,2)):0}function Pd(e,t,n){return e&&e.length?(t=n||t===void 0?1:Lt(t),to(e,0,t<0?0:t)):[]}
2function Fd(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:Lt(t),t=r-t,to(e,t<0?0:t,r)):[]}function Id(e,t){return e&&e.length?Ul(e,_l(t,3)):[]}var Ld=`Expected a function`;function Rd(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(Ld);return pt(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),Ml(e,t,{leading:r,maxWait:t,trailing:i})}var zd=9007199254740991,Bd=4294967295,Vd=Math.min;function Hd(e,t){if(e=Lt(e),e<1||e>zd)return[];var n=Bd,r=Vd(e,Bd);t=Gl(t),e-=Bd;for(var i=Ot(r,t);++n<e;)t(n);return i}var Ud=Rt&&1/Nc(new Rt([,-0]))[1]==1/0?function(e){return new Rt(e)}:Hi,Wd=200;function Gd(e,t,n){var r=-1,i=Yi,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=zl;else if(a>=Wd){var l=t?null:Ud(e);if(l)return Nc(l);o=!1,i=Oc,c=new Ec}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}function Kd(e,t){return e&&e.length?Gd(e,_l(t,2)):[]}var qd=Math.max;function Jd(e){if(!(e&&e.length))return[];var t=0;return e=Ko(e,function(e){if(Pl(e))return t=qd(e.length,t),!0}),Ot(t,function(t){return Fi(e,ml(t))})}var Yd=Bt(Jd),Xd=l(`<div class="row justify-between items-center mt-0 lg:mt-3"><!><!>`),Zd=e=>{var t=Xd(),n=t.firstChild,r=n.nextSibling;return N(t,x(V,{get class(){return L(`font-display text-primary font-medium text-[22px] lg:text-[26px] leading-relaxed glyph-trim-both align-bottom cursor-default`,e.truncate&&`truncate`)},get children(){return e.children}}),n),N(t,()=>e.right,r),t},Qd=`a8.b8.c8.d8.e8.f8.g8.h8.a7.b7.c7.d7.e7.f7.g7.h7.a6.b6.c6.d6.e6.f6.g6.h6.a5.b5.c5.d5.e5.f5.g5.h5.a4.b4.c4.d4.e4.f4.g4.h4.a3.b3.c3.d3.e3.f3.g3.h3.a2.b2.c2.d2.e2.f2.g2.h2.a1.b1.c1.d1.e1.f1.g1.h1`.split(`.`),$d=`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1`,ef=0,tf=1,nf=2,rf=3,af=4,of=5,sf=6,cf=7,lf=8,uf=-1,df=[`p`,`p`,`n`,`b`,`r`,`q`,`k`],ff={p:tf,n:nf,b:rf,r:af,q:of,k:sf},pf=`.PNBRQK..pnbrqk`,mf=1,hf=2,gf=4,_f=8,vf=1,yf=2,bf=4,xf=8,Sf=16,Cf=32,wf=64,Tf=[[vf,`n`],[yf,`c`],[bf,`b`],[xf,`e`],[Sf,`p`],[Cf,`k`],[wf,`q`]],Ef=[];for(let e=0;e<128;e++){let t=``;for(let[n,r]of Tf)e&n&&(t+=r);Ef.push(t)}var Df=[-18,-33,-31,-14,18,33,31,14],Of=[-17,-15,17,15],kf=[-16,1,16,-1],Af=[-17,-16,-15,1,17,16,15,-1],jf=[[],[],Df,Of,kf,Af,Af],Mf=[-16,16],Nf=[of,af,rf,nf],Pf=new Int8Array(240);for(let e of Af)for(let t=1;t<8;t++)Pf[e*t+119]=e;var Ff={},If=Array.from({length:128});for(let e=0;e<64;e++){let t=e>>3<<4|e&7;Ff[Qd[e]]=t,If[t]=Qd[e]}var Lf=new Uint8Array(128);Lf[112]=hf,Lf[119]=mf,Lf[0]=_f,Lf[7]=gf;var Rf=0,zf=7,Bf=112,Vf=119,Hf=116,Uf=4,Wf=Array.from({length:16});for(let e=tf;e<=sf;e++)Wf[e]=Object.freeze({color:`w`,type:df[e]}),Wf[e|lf]=Object.freeze({color:`b`,type:df[e]});var Gf=(e,t,n,r,i,a,o)=>e|t<<7|n<<14|a<<21|i<<24|r<<27|o<<30,Kf=e=>e&127,qf=e=>e>>7&127,Jf=e=>e>>14&127,Yf=e=>e>>21&7,Xf=e=>e>>24&7,Zf=e=>e>>27&7,Qf=e=>e>>30&1,$f=/^([NBRQK])?([a-h])?([1-8])?(x)?([a-h][1-8])(?:=?([NBRQnbrq]))?$/,ep=/^([NBRQKPnbrqkp])?([a-h][1-8])[x-]?([a-h][1-8])(?:=?([NBRQnbrq]))?$/,tp=e=>e.replace(/[+#]?[?!]*$/,``).replace(/\s*e\.p\.$/,``),np=(e,t)=>{let n=tp(e.trim());if(n===`O-O`||n===`0-0`)return{castle:Cf,piece:sf,fromFile:-1,fromRank:-1,capture:!1,to:-1,promotion:0};if(n===`O-O-O`||n===`0-0-0`)return{castle:wf,piece:sf,fromFile:-1,fromRank:-1,capture:!1,to:-1,promotion:0};let r=$f.exec(n);if(r)return{castle:0,piece:r[1]?ff[r[1].toLowerCase()]:0,fromFile:r[2]?r[2].charCodeAt(0)-97:-1,fromRank:r[3]?8-Number(r[3]):-1,capture:r[4]!==void 0,to:Ff[r[5]],promotion:r[6]?ff[r[6].toLowerCase()]:0};if(!t||(r=ep.exec(n),!r))return null;let i=Ff[r[2]];return{castle:0,piece:r[1]?ff[r[1].toLowerCase()]:0,fromFile:i&7,fromRank:i>>4,capture:!1,to:Ff[r[3]],promotion:r[4]?ff[r[4].toLowerCase()]:0}},rp={fields:`FEN must have between 4 and 6 space-separated fields`,halfMove:`half-move clock must be a non-negative integer`,fullMove:`full-move number must be a positive integer`,enPassant:`en passant square must be '-' or a square on rank 3 or 6`,castling:`castling availability must be '-' or a subset of KQkq`,turn:`side to move must be 'w' or 'b'`,ranks:`piece placement must describe eight ranks`,rankLength:`each rank must describe exactly eight squares`,piece:`piece placement contains an invali
2d character`,kings:`each side must have exactly one king`},ip=class e{board=new Uint8Array(128);us=0;castling=0;ep=uf;halfMoves=0;moveNumber=1;kings=[uf,uf];hist=[];legalCache=null;pinDir=new Int8Array(128);_version=0;constructor(e=$d){let t=this.setup(e);if(t)throw Error(`Invalid FEN "${e}": ${t}`)}get version(){return this._version}static validateFen(t){let n=new e().setup(t);return{valid:!n,error:n??``}}clone(){let t=Object.create(e.prototype);return t.board=this.board.slice(),t.pinDir=new Int8Array(128),t.us=this.us,t.castling=this.castling,t.ep=this.ep,t.halfMoves=this.halfMoves,t.moveNumber=this.moveNumber,t.kings=[this.kings[0],this.kings[1]],t.hist=this.hist.slice(),t.legalCache=this.legalCache,t._version=this._version,t}turn(){return this.us===0?`w`:`b`}get(e){let t=Ff[e];if(t===void 0)return null;let n=this.board[t];return n===ef?null:Wf[n]}fen(){return`${this.placement()} ${this.turn()} ${this.castlingString()} ${this.ep===uf?`-`:If[this.ep]} ${this.halfMoves} ${this.moveNumber}`}epd(){return`${this.placement()} ${this.turn()} ${this.castlingString()} ${this.legalEpString(this.legalMoves())}`}inCheck(){let e=this.kings[this.us];return e!==uf&&this.attacked(e,this.us^1)}inCheckmate(){return this.inCheck()&&this.legalMoves().length===0}inStalemate(){return!this.inCheck()&&this.legalMoves().length===0}insufficientMaterial(){let e=0,t=0,n=0;for(let r=Rf;r<=Vf;r++){if(r&136){r+=7;continue}let i=this.board[r]&cf;if(i!==ef){if(e++,i===tf||i===af||i===of)return!1;i===nf&&n++,i===rf&&(t|=1<<((r>>4)+(r&7)&1))}}return e===2||e===3&&(n===1||t!==0)||n===0&&t!==3}inThreefoldRepetition(){let e=new Map,t=this.repetitionKey();e.set(t,1);let n=0,r=!1;for(let i=this.hist.length-1;i>=0;i--){let a=this.hist[i];if(Jf(a.move)&26||Zf(a.move)===tf)break;this.revert(a.move,a.undo),n++;let o=this.repetitionKey(),s=(e.get(o)??0)+1;if(e.set(o,s),o===t&&s>=3){r=!0;break}}for(let e=this.hist.length-n;e<this.hist.length;e++)this.apply(this.hist[e].move);return r}inDraw(){return this.halfMoves>=100||this.inStalemate()||this.insufficientMaterial()||this.inThreefoldRepetition()}gameOver(){return this.inCheckmate()||this.inDraw()}attackers(e){let t=Ff[e],n=[];if(t===void 0)return n;let r=this.board;for(let e of Df){let i=t+e;!(i&136)&&(r[i]&cf)===nf&&n.push(If[i])}for(let e of Af){let i=t+e;!(i&136)&&(r[i]&cf)===sf&&n.push(If[i])}for(let e of[15,17]){let i=t+e;!(i&136)&&r[i]===tf&&n.push(If[i])}for(let e of[-15,-17]){let i=t+e;!(i&136)&&r[i]===9&&n.push(If[i])}for(let e of kf)for(let i=t+e;!(i&136);i+=e){let e=r[i]&cf;if(e!==ef){(e===af||e===of)&&n.push(If[i]);break}}for(let e of Of)for(let i=t+e;!(i&136);i+=e){let e=r[i]&cf;if(e!==ef){(e===rf||e===of)&&n.push(If[i]);break}}return n}moves(e={}){let t=this.legalMoves(),n=e.square===void 0?uf:Ff[e.square]??-2,r=e.verbose===!0,i=[];for(let e of t){if(n!==uf&&Kf(e)!==n)continue;let a=this.sanOf(e,t);i.push(r?this.toMove(e,a):a)}return i}
2move(e,t={}){let n=this.legalMoves(),r=typeof e==`string`?this.findSan(e,n,t.sloppy===!0):this.findPartial(e,n);if(r===null)return null;let i=this.sanOf(r,n);return this.make(r,i),this.toMove(r,i)}validateMoves(e,t={}){let n=[],r=this._version,i=this.legalCache,a=0,o=!0;for(let r of e){let e=this.move(r,t);if(!e){o=!1;break}n.push(e),a++}for(let e=0;e<a;e++)this.undo();return this._version=r,this.legalCache=i,o?n:null}undo(){let e=this.hist.pop();return e?(this.revert(e.move,e.undo),this.legalCache=null,this._version++,this.toMove(e.move,e.san)):null}history(e={}){return e.verbose?this.hist.map(e=>this.toMove(e.move,e.san)):this.hist.map(e=>e.san)}perft(e){if(e===0)return 1;let t=this.generateLegal();if(e===1)return t.length;let n=0;for(let r of t){let t=this.apply(r);n+=this.perft(e-1),this.revert(r,t)}return n}setup(e){let t=e.trim().split(/\s+/);if(t.length<4||t.length>6)return rp.fields;let[n,r,i,a,o=`0`,s=`1`]=t;if(!/^\d+$/.test(o))return rp.halfMove;if(!/^\d+$/.test(s)||Number(s)===0)return rp.fullMove;if(a!==`-`&&!/^[a-h][36]$/.test(a))return rp.enPassant;if(!/^(-|K?Q?k?q?)$/.test(i)||i===``)return rp.castling;if(r!==`w`&&r!==`b`)return rp.turn;let c=n.split(`/`);if(c.length!==8)return rp.ranks;let l=new Uint8Array(128),u=[uf,uf],d=0,f=0;for(let e=0;e<8;e++){let t=0;for(let n of c[e]){if(n>=`1`&&n<=`8`){t+=Number(n);continue}let r=pf.indexOf(n);if(r<=0||(r&cf)===0||(r&cf)===7)return rp.piece;if(t>=8)return rp.rankLength;let i=e<<4|t;l[i]=r,(r&cf)===sf&&(r&lf?(f++,u[1]=i):(d++,u[0]=i)),t++}if(t!==8)return rp.rankLength}if(d!==1||f!==1)return rp.kings;let p=0;if(i.includes(`K`)&&l[Hf]===sf&&l[Vf]===af&&(p|=mf),i.includes(`Q`)&&l[Hf]===sf&&l[Bf]===af&&(p|=hf),i.includes(`k`)&&l[Uf]===14&&l[zf]===12&&(p|=gf),i.includes(`q`)&&l[Uf]===14&&l[Rf]===12&&(p|=_f),this.board=l,this.kings=u,this.us=r===`w`?0:1,this.castling=p,this.ep=a===`-`?uf:Ff[a],this.ep!==uf){let e=this.ep-Mf[this.us],t=tf|(this.us===0?lf:0);(this.board[e]!==t||this.board[this.ep]!==ef)&&(this.ep=uf)}return this.halfMoves=Number(o),this.moveNumber=Number(s),this.hist=[],this.legalCache=null,this._version++,null}placement(){let e=``;for(let t=0;t<8;t++){let n=0;for(let r=0;r<8;r++){let i=this.board[t<<4|r];if(i===ef){n++;continue}n&&=(e+=n,0),e+=pf[i]}n&&(e+=n),t<7&&(e+=`/`)}return e}castlingString(){if(this.castling===0)return`-`;let e=``;return this.castling&mf&&(e+=`K`),this.castling&hf&&(e+=`Q`),this.castling&gf&&(e+=`k`),this.castling&_f&&(e+=`q`),e}legalEpString(e){if(this.ep===uf)return`-`;for(let t of e)if(Jf(t)&xf)return If[this.ep];return`-`}repetitionKey(){let e=this.ep===uf?`-`:this.legalEpString(this.generateLegal());return`${this.placement()} ${this.us} ${this.castling} ${e}`}toMove(e,t){let n=Jf(e),r=Xf(e),i=Yf(e);return{color:Qf(e)===0?`w`:`b`,from:If[Kf(e)],to:If[qf(e)],piece:df[Zf(e)],san:t,flags:Ef[n],captured:r?df[r]:void 0,promotion:i?df[i]:void 0}}disambiguator(e,t){let n=Kf(e),r=qf(e),i=Zf(e),a=0,o=0,s=0;for(let c of t){let t=Kf(c);t!==n&&qf(c)===r&&Zf(c)===i&&Yf(c)===Yf(e)&&(a++,t>>4==n>>4&&o++,(t&7)==(n&7)&&s++)}return a===0?``:o>0&&s>0?If[n]:s>0?If[n][1]:If[n][0]}sanOf(e,t){let n=Jf(e),r;if(n&Cf)r=`O-O`;else if(n&wf)r=`O-O-O`;else{let i=Zf(e);r=``,i!==tf&&(r+=df[i].toUpperCase()+this.disambiguator(e,t)),n&10&&(i===tf&&(r+=If[Kf(e)][0]),r+=`x`),r+=If[qf(e)],n&Sf&&(r+=`=${df[Yf(e)].toUpperCase()}`)}let i=this.apply(e),a=this.kings[this.us];return a!==uf&&this.attacked(a,this.us^1)&&(r+=this.generateLegal().length===0?`#`:`+`),this.revert(e,i),r}findPartial(e,t){let n=Ff[e.from],r=Ff[e.to];if(n===void 0||r===void 0)return null;let i=e.promotion?ff[e.promotion]:0,a=null;for(let e of t){if(Kf(e)!==n||qf(e)!==r)continue;let t=Yf(e);if(t===i)return e;!i&&t===of&&(a=e)}return a}findSan(e,t,n){let r=np(e,n);if(!r)return null;let i=null,a=null;for(let e of t){let o=Jf(e);if(r.castle){if(!(o&r.castle))continue;return e}if(qf(e)!==r.to)continue;let s=Kf(e),c=Zf(e);if(o&96){if(n&&(s&7)===r.fromFile&&s>>4===r.fromRank&&(r.piece===0||r.piece===sf))return e;continue}if(r.piece){if(c!==r.piece)continue}else if(c!==tf&&(!n||r.fromFile<0||r.fromRank<0))continue;if(r.fromFile>=0&&(s&7)!==r.fromFile||r.fromRank>=0&&s>>4!==r.fromRank)continue;let l=!!(o&10),u=Yf(e);if(o&Sf){if(r.promotion===0){if(!n)continue;u===of&&(a=e);continue}if(u!==r.promotion)continue}else if(r.promotion!==0)continue;if(n||l===r.capture&&(r.fromFile>=0?If[s][0]:``)+(r.fromRank>=0?If[s][1]:``)===(c===tf?l?If[s][0]:``:this.disambiguator(e,t))){if(i!==null)return null;i=e}}return i??a}make(e,t){let n=this.apply(e);this.hist.push({move:e,undo:n,san:t}),this.legalCache=null,this._version++}apply(e){let t=this.board,n=Kf(e),r=qf(e),i=Jf(e),a=Zf(e),o=this.us,s=o<<3,c=this.castling|this.ep+1<<4|this.halfMoves<<12;return t[r]=i&Sf?Yf(e)|s:t[n],t[n]=ef,i&xf?t[r-Mf[o]]=ef:i&Cf?(t[r-1]=t[r+1],t[r+1]=ef):i&wf&&(t[r+1]=t[r-2],t[r-2]=ef),a===sf&&(this.kings[o]=r,this.castling&=o===0?-4:-13),this.castling&=~(Lf[n]|Lf[r]),this.ep=i&bf?n+r>>1:uf,this.halfMoves=a===tf||i&10?0:this.halfMoves+1,o===1&&this.moveNumber++,this.us=o^1,c}revert(e,t){let n=this.board,r=Kf(e),i=qf(e),a=Jf(e),o=Zf(e),s=this.us^1,c=s<<3,l=c^lf;this.us=s,s===1&&this.moveNumber--,this.castling=t&15,this.ep=(t>>4&255)-1,this.halfMoves=t>>
212,n[r]=o|c,n[i]=a&yf?Xf(e)|l:ef,a&xf?n[i-Mf[s]]=tf|l:a&Cf?(n[i+1]=n[i-1],n[i-1]=ef):a&wf&&(n[i-2]=n[i+1],n[i+1]=ef),o===sf&&(this.kings[s]=r)}attacked(e,t){let n=this.board,r=t<<3;for(let t=0;t<8;t++){let i=e+Df[t];if(!(i&136)&&n[i]===(nf|r))return!0}for(let t=0;t<8;t++){let i=e+Af[t];if(!(i&136)&&n[i]===(sf|r))return!0}let i=e-Mf[t],a=tf|r;if(!(i-1&136)&&n[i-1]===a||!(i+1&136)&&n[i+1]===a)return!0;let o=af|r,s=of|r;for(let t=0;t<4;t++){let r=kf[t];for(let t=e+r;!(t&136);t+=r){let e=n[t];if(e!==ef){if(e===o||e===s)return!0;break}}}let c=rf|r;for(let t=0;t<4;t++){let r=Of[t];for(let t=e+r;!(t&136);t+=r){let e=n[t];if(e!==ef){if(e===c||e===s)return!0;break}}}return!1}legalMoves(){return this.legalCache===null&&(this.legalCache=this.generateLegal()),this.legalCache}markPins(e,t,n){let r=this.board,i=(t^1)<<3;for(let t=0;t<8;t++){let a=Af[t],o=e+a,s=uf;for(;!(o&136);o+=a){let e=r[o];if(e!==ef){if(s===uf){if((e&lf)===i)break;s=o;continue}if((e&lf)===i){let t=e&cf,r=a===15||a===17||a===-15||a===-17;(t===of||r&&t===rf||!r&&t===af)&&(this.pinDir[s]=a,n.push(s))}break}}}}legalSlow(e,t,n,r,i){let a=this.board,o=a[e],s=a[t];a[t]=o,a[e]=ef;let c=uf,l=ef;n&xf&&(c=t-Mf[r],l=a[c],a[c]=ef);let u=(o&cf)===sf?t:i,d=!this.attacked(u,r^1);return a[e]=o,a[t]=s,c!==uf&&(a[c]=l),d}generateLegal(){let e=[],t=this.board,n=this.us,r=n^1,i=n<<3,a=r<<3,o=this.kings[n],s=o!==uf&&this.attacked(o,r),c=[];o!==uf&&this.markPins(o,n,c);let l=this.pinDir,u=(e,t,r)=>{if(o===uf)return!0;if(s||r&xf)return this.legalSlow(e,t,r,n,o);let i=l[e];return i===0||Pf[t-o+119]===i},d=(t,r,i,a,o)=>{if(a===tf&&(!(r>>4)||r>>4==7)){if(!u(t,r,i))return;for(let s of Nf)e.push(Gf(t,r,i|Sf,a,o,s,n));return}u(t,r,i)&&e.push(Gf(t,r,i,a,o,0,n))},f=Mf[n],p=n===0?6:1;for(let o=Rf;o<=Vf;o++){if(o&136){o+=7;continue}let c=t[o];if(c===ef||(c&lf)!==i)continue;let l=c&cf;if(l===tf){let e=o+f;if(t[e]===ef){d(o,e,vf,tf,ef);let n=e+f;o>>4===p&&t[n]===ef&&d(o,n,bf,tf,ef)}for(let n=-1;n<=1;n+=2){let r=e+n;if(r&136)continue;let i=t[r];i!==ef&&(i&lf)===a?d(o,r,yf,tf,i&cf):r===this.ep&&d(o,r,xf,tf,tf)}continue}if(l===sf){for(let a=0;a<8;a++){let s=o+Af[a];if(s&136)continue;let l=t[s];if(l!==ef&&(l&lf)===i)continue;t[o]=ef;let u=!this.attacked(s,r);t[o]=c,u&&e.push(Gf(o,s,l===ef?vf:yf,sf,l&cf,0,n))}if(!s){let i=n===0?mf:gf,a=n===0?hf:_f;this.castling&i&&t[o+1]===ef&&t[o+2]===ef&&!this.attacked(o+1,r)&&!this.attacked(o+2,r)&&e.push(Gf(o,o+2,Cf,sf,ef,0,n)),this.castling&a&&t[o-1]===ef&&t[o-2]===ef&&t[o-3]===ef&&!this.attacked(o-1,r)&&!this.attacked(o-2,r)&&e.push(Gf(o,o-2,wf,sf,ef,0,n))}continue}let u=jf[l],m=l!==nf;for(let e=0;e<u.length;e++){let n=u[e];for(let e=o+n;!(e&136);e+=n){let n=t[e];if(n===ef)d(o,e,vf,l,ef);else{(n&lf)===a&&d(o,e,yf,l,n&cf);break}if(!m)break}}}for(let e of c)l[e]=0;return e}},ap=[`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`],op=[1,2,3,4,5,6,7,8],sp=(e,t)=>{let[n,r]=e.split(``),i=Eu(ap,n),a=7-Eu(op,Number.parseInt(r,10));return t&&(i=7-i,a=7-a),{x:i/8,y:a/8}},cp=e=>{let t=new ip,n=[fp];return Kl(e,e=>{t.move(e,{sloppy:!0}),n.push(dp(t))}),n},lp=e=>e.split(` `)[1]===`w`?`white`:`black`,up=(e,t)=>{t.move(e);let n=t.inCheckmate();return t.undo(),n};function dp(e){return e.epd()}var fp=`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,pp=e=>e.from+e.to+(e.promotion??``),mp;(function(e){function t(e){let t=e;return typeof e==`string`&&(t=e.split(` `)),t.length%2==1?`white`:`black`}e.sideOfLastMove=t;function n(e){let t=``;return Kl(e,(e,n)=>{let r=n/2+1;t=n%2==1?`${t} ${e}`:`${t} ${r}.${e}`}),t.trim()}e.toPgn=n;function r(e,t,n){if(n%2==0){let r=n/2+1;return`${e?`${e} `:``}${r}.${t}`}return`${e} ${t}`}e.appendPgnMove=r;function i(e){return e.replaceAll(/\d+\./g,``).split(` `).filter(e=>e!==``)}e.fromPgn=i;function a(e){return Math.floor(e.length/2+1)}e.getMoveNumber=a;let o=new Map;function s(e){if(o.has(e))return o.get(e);let t=new ip,n=[],r=mp.fromPgn(e);for(let e of r)t.move(e),n.push(dp(t));return o.set(e,n),n}e.toPositions=s})(mp||={});var hp=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,gp=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=hp[n[e]&63];return t};function _p(e,t){return function(){return e.apply(t,arguments)}}var{toString:vp}=Object.prototype,{getPrototypeOf:yp}=Object,{iterator:bp,toStringTag:xp}=Symbol,Sp=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Cp=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),Sp(n,t))return!0;n=yp(n)}return!1},wp=(e,t)=>
2e!=null&&Cp(e,t)?e[t]:void 0,Tp=(e=>t=>{let n=vp.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ep=e=>(e=e.toLowerCase(),t=>Tp(t)===e),Dp=e=>t=>typeof t===e,{isArray:Op}=Array,kp=Dp(`undefined`);function Ap(e){return e!==null&&!kp(e)&&e.constructor!==null&&!kp(e.constructor)&&Pp(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var jp=Ep(`ArrayBuffer`);function Mp(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&jp(e.buffer),t}var Np=Dp(`string`),Pp=Dp(`function`),Fp=Dp(`number`),Ip=e=>typeof e==`object`&&!!e,Lp=e=>e===!0||e===!1,Rp=e=>{if(!Ip(e))return!1;let t=yp(e);return(t===null||t===Object.prototype||yp(t)===null)&&!Cp(e,xp)&&!Cp(e,bp)},zp=e=>{if(!Ip(e)||Ap(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Bp=Ep(`Date`),Vp=Ep(`File`),Hp=e=>!!(e&&e.uri!==void 0),Up=e=>e&&e.getParts!==void 0,Wp=Ep(`Blob`),Gp=Ep(`FileList`),Kp=Ep(`Set`),qp=e=>Ip(e)&&Pp(e.pipe);function Jp(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var Yp=Jp(),Xp=Yp.FormData===void 0?void 0:Yp.FormData,Zp=e=>{if(!e)return!1;if(Xp&&e instanceof Xp)return!0;let t=yp(e);if(!t||t===Object.prototype||!Pp(e.append))return!1;let n=Tp(e);return n===`formdata`||n===`object`&&Pp(e.toString)&&e.toString()===`[object FormData]`},Qp=Ep(`URLSearchParams`),[$p,em,tm,nm]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Ep),rm=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function im(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Op(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(Ap(e))return;let i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length,o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function am(e,t){if(Ap(e))return null;t=t.toLowerCase();let n=Object.keys(e),r=n.length,i;for(;r-->0;)if(i=n[r],t===i.toLowerCase())return i;return null}var om=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,sm=e=>!kp(e)&&e!==om;function cm(...e){let{caseless:t,skipUndefined:n}=sm(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&am(r,i)||i,o=Sp(r,a)?r[a]:void 0;Rp(o)&&Rp(e)?r[a]=cm(o,e):Rp(e)?r[a]=cm({},e):Op(e)?r[a]=e.slice():(!n||!kp(e))&&(r[a]=e)};for(let t=0,n=e.length;t<n;t++){let n=e[t];if(!n||Ap(n)||(im(n,i),typeof n!=`object`||Op(n)))continue;let r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){let t=r[e];bm.call(n,t)&&i(n[t],t)}}return r}var lm=(e,t,n,{allOwnKeys:r}={})=>(im(t,(t,r)=>{n&&Pp(t)?Object.defineProperty(e,r,{__proto__:null,value:_p(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),um=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),dm=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},fm=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&yp(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},pm=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},mm=e=>{if(!e)return null;if(Op(e))return e;let t=e.length;if(!Fp(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},hm=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&yp(Uint8Array)),gm=(e,t)=>{let n=(e&&e[bp]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},_m=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},vm=Ep(`HTMLFormElement`),ym=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:bm}=Object.prototype,xm=Ep(`RegExp`),Sm=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};im(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Cm=e=>{Sm(e,(t,n)=>{if(Pp(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Pp(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},wm=(e,t)=>{let n={},r=e=>
2{e.forEach(e=>{n[e]=!0})};return Op(e)?r(e):r(String(e).split(t)),n},Tm=()=>{},Em=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Dm(e){return!!(e&&Pp(e.append)&&e[xp]===`FormData`&&e[bp])}var Om=e=>{let t=new WeakSet,n=e=>{if(Ip(e)){if(t.has(e))return;if(Ap(e))return e;if(!(`toJSON`in e)){t.add(e);let r;if(Kp(e)){r=[];for(let t of e){let e=n(t);!kp(e)&&r.push(e)}}else r=Op(e)?[]:{},im(e,(e,t)=>{let i=n(e);!kp(i)&&(r[t]=i)});return t.delete(e),r}}return e};return n(e)},km=Ep(`AsyncFunction`),Am=e=>e&&(Ip(e)||Pp(e))&&Pp(e.then)&&Pp(e.catch),jm=((e,t)=>e?setImmediate:t?((e,t)=>(om.addEventListener(`message`,({source:n,data:r})=>{n===om&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),om.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Pp(om.postMessage)),Mm=typeof queueMicrotask<`u`?queueMicrotask.bind(om):typeof process<`u`&&process.nextTick||jm,Nm=e=>e!=null&&Pp(e[bp]),U={isArray:Op,isArrayBuffer:jp,isBuffer:Ap,isFormData:Zp,isArrayBufferView:Mp,isString:Np,isNumber:Fp,isBoolean:Lp,isObject:Ip,isPlainObject:Rp,isEmptyObject:zp,isReadableStream:$p,isRequest:em,isResponse:tm,isHeaders:nm,isUndefined:kp,isDate:Bp,isFile:Vp,isReactNativeBlob:Hp,isReactNative:Up,isBlob:Wp,isRegExp:xm,isFunction:Pp,isStream:qp,isURLSearchParams:Qp,isTypedArray:hm,isFileList:Gp,forEach:im,merge:cm,extend:lm,trim:rm,stripBOM:um,inherits:dm,toFlatObject:fm,kindOf:Tp,kindOfTest:Ep,endsWith:pm,toArray:mm,forEachEntry:gm,matchAll:_m,isHTMLForm:vm,hasOwnProperty:Sp,hasOwnProp:Sp,hasOwnInPrototypeChain:Cp,getSafeProp:wp,reduceDescriptors:Sm,freezeMethods:Cm,toObjectSet:wm,toCamelCase:ym,noop:Tm,toFiniteNumber:Em,findKey:am,global:om,isContextDefined:sm,isSpecCompliantForm:Dm,toJSONObject:Om,isAsyncFn:km,isThenable:Am,setImmediate:jm,asap:Mm,isIterable:Nm,isSafeIterable:e=>e!=null&&Cp(e,bp)&&Nm(e)},Pm=U.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Fm=e=>{let t={},n,r,i;return e&&e.split(` 3`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim();let a=U.hasOwnProp(t,n);!n||a&&U.hasOwnProp(Pm,n)||(n===`set-cookie`?a?t[n].push(r):t[n]=[r]:t[n]=a?t[n]+`, `+r:r)}),t};function Im(e){let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Lm=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),Rm=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function zm(e,t){return U.isArray(e)?e.map(e=>zm(e,t)):Im(String(e).replace(t,``))}var Bm=e=>zm(e,Lm),Vm=e=>zm(e,Rm);function Hm(e){let t=Object.create(null);return U.forEach(e.toJSON(),(e,n)=>{t[n]=Vm(e)}),t}var Um=Symbol(`internals`);function Wm(e){return e&&String(e).trim().toLowerCase()}function Gm(e){return e===!1||e==null?e:U.isArray(e)?e.map(Gm):Bm(String(e))}function Km(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var qm=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function Jm(e){let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}function Ym(e){let t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let n=``;for(let r=1;r<t;r++){let i=e.charCodeAt(r);if(i===34||i===92&&(r+=1,r>=t))return e;n+=e[r]}return n}function Xm(e){let t=Object.create(null),n=String(e),r=0,i=!1,a=!1;function o(e){let i=Jm(n.slice(r,e)),a=i.indexOf(`=`);if(a<1)return;let o=Jm(i.slice(0,a));if(!qm.test(o))return;let s=o.toLowerCase();if(s===`__proto__`||s===`constructor`||s===`prototype`)return;let c=Jm(i.slice(a+1));t[s]=Ym(c)}for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);i?a?a=!1:t===92?a=!0:t===34&&(i=!1):t===34?i=!0:(t===44||t===59)&&(o(e),r=e+1)}return o(n.length),t}var Zm=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Qm(e,t,n,r,i){if(U.isFunction(r))return r.call(this,t,n);if(i&&(t=n),U.isString(t)){if(U.isString(r))return t.indexOf(r)!==-1;if(U.isRegExp(r))return r.test(t)}}function $m(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function eh(e,t){let n=U.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var th=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=Wm(t);if(!i)return;let a=U.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=Gm(e))}let a=(e,t)=>U.forEach(e,(e,n)=>i(e,n,t));if(U.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(U.isString(e)&&(e=e.trim())&&!Zm(e))a(Fm(e),t);else if(U.isObject(e)&&U.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!U.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],U.hasOwnProp(n,i)?(r=n[i],n[i]=U.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=Wm(e),e){let n=U.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return Km(e);if(U.isFunction(t))return t.call(this,e,n);if(U.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=Wm(e),e){let n=U.findKey(this,e);return!(!n||this[n]===void 0||t&&!Qm(this,this[n],n,t))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=Wm(e),e){let i=U.findKey(n,e);i&&(!t||Qm(n,n[i],i,t))&&(delete n[i],r=!0)}}return U.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||Qm(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};
3return U.forEach(this,(r,i)=>{let a=U.findKey(n,i);if(a){t[a]=Gm(r),delete t[i];return}let o=e?$m(i):String(i).trim();o!==i&&delete t[i],t[o]=Gm(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return U.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&U.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` 4`)}getSetCookie(){let e=this.get(`set-cookie`);return U.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return Xm(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[Um]=this[Um]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=Wm(e);t[r]||(eh(n,e),t[r]=!0)}return U.isArray(e)?e.forEach(r):r(e),this}};th.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),U.reduceDescriptors(th.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),U.freezeMethods(th);var nh=`[REDACTED ****]`;function rh(e){if(U.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(U.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function ih(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||U.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof th&&(e=e.toJSON()),r.push(e);let t;if(U.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);U.isUndefined(r)||(t[n]=r)});else{if(!U.isPlainObject(e)&&rh(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?nh:i(a);U.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}function ah(e){try{return String(e)}catch{return``}}function oh(e){return e.errors.map(e=>{try{return e&&e.message?ah(e.message):ah(e)}catch{return``}}).filter(Boolean).join(`; `)||e.name||`AggregateError`}var W=class e extends Error{static from(t,n,r,i,a,o){let s=t.message;!s&&U.isArray(t.errors)&&t.errors.length&&(s=oh(t));let c=new e(s,n||t.code,r,i,a);return Object.defineProperty(c,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),c.name=t.name,t.status!=null&&c.status==null&&(c.status=t.status),o&&Object.assign(c,o),c}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&U.hasOwnProp(e,`redact`)?e.redact:void 0,n=U.isArray(t)&&t.length>0?ih(e,t):U.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};W.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,W.ERR_BAD_OPTION=`ERR_BAD_OPTION`,W.ECONNABORTED=`ECONNABORTED`,W.ETIMEDOUT=`ETIMEDOUT`,W.ECONNREFUSED=`ECONNREFUSED`,W.ERR_NETWORK=`ERR_NETWORK`,W.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,W.ERR_DEPRECATED=`ERR_DEPRECATED`,W.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,W.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,W.ERR_CANCELED=`ERR_CANCELED`,W.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,W.ERR_INVALID_URL=`ERR_INVALID_URL`,W.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function sh(e){return U.isPlainObject(e)||U.isArray(e)}function ch(e){return U.endsWith(e,`[]`)?e.slice(0,-2):e}function lh(e,t,n){return e?e.concat(t).map(function(e,t){return e=ch(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function uh(e){return U.isArray(e)&&!e.some(sh)}var dh=U.toFlatObject(U,{},null,function(e){return/^is[A-Z]/.test(e)});function fh(e,t,n){if(!U.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=U.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!U.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&U.isSpecCompliantForm(t),u=[];
vendor: 1,059 bytes, line 4
4if(!U.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(U.isDate(e))return e.toISOString();if(U.isBoolean(e))return e.toString();if(!l&&U.isBlob(e))throw new W(`Blob is not supported. Use a Buffer instead.`);if(U.isArrayBuffer(e)||U.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);throw new W(`Blob is not supported. Use a Buffer instead.`,W.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new W(`Object is too deeply nested (`+e+` levels). Max depth: `+c,W.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!U.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(U.isReactNative(t)&&U.isReactNativeBlob(e))return t.append(lh(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(U.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(U.isArray(e)&&uh(e)||(U.isFileList(e)||U.endsWith(n,`[]`))&&(s=U.toArray(e)))return n=ch(n),s.forEac
4h(function(e,r){!(U.isUndefined(e)||e===null)&&t.append(o===!0?lh([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return sh(e)?!0:(t.append(lh(i,n,a),d(e)),!1)}let h=Object.assign(dh,{defaultVisitor:m,convertValue:d,isVisitable:sh});function g(e,n,r=0){if(!U.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),U.forEach(e,function(e,a){(!(U.isUndefined(e)||e===null)&&i.call(t,e,U.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!U.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function ph(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function mh(e,t){this._pairs=[],e&&fh(e,this,t)}var hh=mh.prototype;hh.append=function(e,t){this._pairs.push([e,t])},hh.toString=function(e){let t=e?t=>e.call(this,t,ph):ph;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function gh(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function _h(e,t,n){if(!t)return e;e||=``;let r=U.isFunction(n)?{serialize:n}:n,i=U.getSafeProp(r,`encode`)||gh,a=U.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):U.isURLSearchParams(t)?t.toString():new mh(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var vh=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){U.forEach(this.handlers,function(t){t!==null&&e(t)})}},yh={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},bh={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:mh,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},xh=t({hasBrowserEnv:()=>Sh,hasStandardBrowserEnv:()=>wh,hasStandardBrowserWebWorkerEnv:()=>Th,navigator:()=>Ch,origin:()=>Eh}),Sh=typeof window<`u`&&typeof document<`u`,Ch=typeof navigator==`object`&&navigator||void 0,wh=Sh&&(!Ch||[`ReactNative`,`NativeScript`,`NS`].indexOf(Ch.product)<0),Th=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,Eh=Sh&&window.location.href||`http://localhost`,Dh={...xh,...bh};function Oh(e,t){return fh(e,new Dh.classes.URLSearchParams,{visitor:function(e,t,n,r){return Dh.isNode&&U.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var kh=100;function Ah(e){if(e>kh)throw new W(`FormData field is too deeply nested (`+e+` levels). Max depth: `+kh,W.ERR_FORM_DATA_DEPTH_EXCEEDED)}function jh(e){let t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g,r;for(;(r=n.exec(e))!==null;)Ah(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Mh(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}function Nh(e){function t(e,n,r,i){Ah(i);let a=e[i++];if(a===`__proto__`)return!0;let o=Number.isFinite(+a),s=i>=e.length;return a=!a&&U.isArray(r)?r.length:a,s?(U.hasOwnProp(r,a)?r[a]=U.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!U.hasOwnProp(r,a)||!U.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&U.isArray(r[a])&&(r[a]=Mh(r[a])),!o)}if(U.isFormData(e)&&U.isFunction(e.entries)){let n={};return U.forEachEntry(e,(e,r)=>{t(jh(e),r,n,0)}),n}return null}var Ph=(e,t)=>e!=null&&U.hasOwnProp(e,t)?e[t]:void 0;function Fh(e,t,n){if(U.isString(e))try{return(t||JSON.parse)(e),U.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var Ih={transitional:yh,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=U.isObject(e);if(i&&U.isHTMLForm(e)&&(e=new FormData(e)),U.isFormData(e))return r?JSON.stringify(Nh(e)):e;if(U.isArrayBuffer(e)||U.isBuffer(e)||U.isStream(e)||U.isFile(e)||U.isBlob(e)||U.isReadableStream(e))return e;if(U.isArrayBufferView(e))return e.buffer;if(U.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;
4if(i){let t=Ph(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Oh(e,t).toString();if((a=U.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=Ph(this,`env`),r=n&&n.FormData;return fh(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Fh(e)):e}],transformResponse:[function(e){let t=Ph(this,`transitional`)||Ih.transitional,n=t&&t.forcedJSONParsing,r=Ph(this,`responseType`),i=r===`json`;if(U.isResponse(e)||U.isReadableStream(e))return e;if(e&&U.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Ph(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?W.from(e,W.ERR_BAD_RESPONSE,this,null,Ph(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Dh.classes.FormData,Blob:Dh.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};U.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{Ih.headers[e]={}});function Lh(e,t){let n=this||Ih,r=t||n,i=th.from(r.headers),a=r.data;return U.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Rh(e){return!!(e&&e.__CANCEL__)}var zh=class extends W{constructor(e,t,n){super(e??`canceled`,W.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Bh(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new W(`Request failed with status code `+n.status,n.status>=400&&n.status<500?W.ERR_BAD_REQUEST:W.ERR_BAD_RESPONSE,n.config,n.request,n))}function Vh(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function Hh(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o<t)return;let f=l&&c-l;return f?Math.round(d*1e3/f):void 0}}function Uh(e,t){let n=0,r=1e3/t,i,a,o=(t,r=Date.now())=>{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var Wh=(e,t,n=3)=>{let r=0,i=Hh(50,250);return Uh(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=Math.max(0,o==null?a:Math.min(a,o)),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Gh=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Kh=(e,t=U.asap)=>(...n)=>t(()=>e(...n)),qh=Dh.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Dh.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Dh.origin),Dh.navigator&&/(msie|trident)/i.test(Dh.navigator.userAgent)):()=>!0,Jh=Dh.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];U.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),U.isString(r)&&s.push(`path=${r}`),U.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),U.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n<t.length;n++){let r=t[n].replace(/^\s+/,``),i=r.indexOf(`=`);if(i!==-1&&r.slice(0,i)===e)try{return decodeURIComponent(r.slice(i+1))}catch{return r.slice(i+1)}}return null},remove(e){this.write(e,``,Date.now()-864e5,`/`)}}:{write(){},read(){return null},remove(){}};function Yh(e){return typeof e==`string`&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Xh(e,t){if(!t)return e;let n=e.length;for(;n>0&&e.charCodeAt(n-1)===47;)n--;return e.slice(0,n)+`/`+t.replace(/^\/+/,``)}var Zh=/^https?:(?!\/\/)/i,Qh=/[\t\n\r]/g;function $h(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}function eg(e){return $h(e).replace(Qh,``)}function tg(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,t,n=``)=>`${t}${n}${nh}`)}function ng(e){let t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${nh}@`),n=t.indexOf(`#`),r=(n===-1?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${nh}`);return n===-1?r:`${r}#${tg(t.slice(n+1))}`}function rg(e,t){if(typeof e==`string`){let n=eg(e);if(Zh.test(n))throw new W(`Invalid URL ${JSON.stringify(ng(n))}: missing "//" after protocol`,W.ERR_INVALID_URL,t)}}function ig(e,t,n,r){rg(t,r);let i=!Yh(t);return e&&(i||n===!1)?(rg(e,r),Xh(e,t)):t}var ag=e=>e instanceof th?{...e}:e,og=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function sg(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return U.isPlainObject(e)&&U.isPlainObject(t)?U.merge.call({caseless:r},e,t):U.isPlainObject(t)?U.merge({},t):U.isArray(t)?t.slice():t}function i(e,t,n,i){if(!U.isUndefined(t))return r(e,t,n,i);if(!U.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!U.isUndefined(t))return r(void 0,t)}function o(e,t){if(!U.isUndefined(t))return r(void 0,t);
4if(!U.isUndefined(e))return r(void 0,e)}function s(n){let r=U.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!U.isUndefined(r)){if(U.isPlainObject(r)){if(U.hasOwnProp(r,n))return r[n]}else return}let i=U.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(U.isPlainObject(i)&&U.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(U.hasOwnProp(t,a))return r(n,i);if(U.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(ag(e),ag(t),n,!0)};return U.forEach(og({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=U.hasOwnProp(l,r)?l[r]:i,o=a(U.hasOwnProp(e,r)?e[r]:void 0,U.hasOwnProp(t,r)?t[r]:void 0,r);U.isUndefined(o)&&a!==c||(n[r]=o)}),U.hasOwnProp(t,`validateStatus`)&&U.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(U.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.val
4idateStatus),n}var cg=[`content-type`,`content-length`];function lg(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{cg.includes(t.toLowerCase())&&e.set(t,n)})}var ug=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function dg(e){let t=sg({},e),n=e=>U.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=th.from(s),t.url=_h(ig(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=U.getSafeProp(c,`username`)||``,n=U.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?ug(n):``)))}catch(t){throw W.from(t,W.ERR_BAD_OPTION_VALUE,e)}}if(U.isFormData(r)&&(Dh.hasStandardBrowserEnv||Dh.hasStandardBrowserWebWorkerEnv||U.isReactNative(r)?s.setContentType(void 0):U.isFunction(r.getHeaders)&&lg(s,r.getHeaders(),n(`formDataHeaderPolicy`))),Dh.hasStandardBrowserEnv&&(U.isFunction(i)&&(i=i(t)),i===!0||i==null&&qh(t.url))){let e=a&&o&&Jh.read(o);e&&s.set(a,e)}return t}var fg=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=dg(e),i=r.data,a=th.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=th.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Bh(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){h&&h.readyState===4&&(h.status!==0||h.responseURL&&h.responseURL.startsWith(`file:`))&&setTimeout(g)},h.onabort=function(){h&&=(n(new W(`Request aborted`,W.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new W(t&&t.message?t.message:`Network Error`,W.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||yh;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new W(t,i.clarifyTimeoutError?W.ETIMEDOUT:W.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&U.forEach(Hm(a),function(e,t){h.setRequestHeader(t,e)}),U.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=Wh(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=Wh(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new zh(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=Vh(r.url);if(_&&!Dh.protocols.includes(_)){n(new W(`Unsupported protocol `+_+`:`,W.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},pg=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof W?t:new zh(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new W(`timeout of ${t}ms exceeded`,W.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>{if(!r){if(e.aborted){i.call(e);return}e.addEventListener(`abort`,i,{once:!0})}});let{signal:s}=n;return s.unsubscribe=()=>U.asap(o),s},mg=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,i;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},hg=async function*(e,t){for await(let n of gg(e))yield*mg(n,t)},gg=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},_g=(e,t,n,r)=>{let i=hg(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},vg=e=>e>=48&&e<=57||e>=65&&e<=70||e>
4=97&&e<=102,yg=(e,t,n)=>t+2<n&&vg(e.charCodeAt(t+1))&&vg(e.charCodeAt(t+2)),bg=e=>e<=57?e-48:(e&223)-55,xg=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,Sg=e=>e===9||e===10||e===12||e===13||e===32,Cg=e=>{let t=Math.floor(e/4),n=e%4;return t*3+(n===2?1:n===3?2:0)},wg=e=>{let t=e.length,n=0;return t>0&&e.charCodeAt(t-1)===61&&(n++,t>1&&e.charCodeAt(t-2)===61&&n++),Math.floor((t-n)*3/4)},Tg=e=>{let t=e.length,n=0,r=0,i=!1;for(let a=0;a<t;a++){let o=e.charCodeAt(a);if(o===37&&yg(e,a,t)&&(o=bg(e.charCodeAt(a+1))*16+bg(e.charCodeAt(a+2)),a+=2),!Sg(o)){if(o===61){r++;continue}if(!xg(o)||r>0){i=!0;continue}n++}}return i||r>2||r>0&&(n+r)%4!=0||n%4==1?wg(e):Cg(n)},Eg=(e,t)=>{if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let n=e.indexOf(`,`);if(n<0)return 0;let r=e.slice(5,n),i=e.slice(n+1);if(/;base64/i.test(r))return t(i);let a=0;for(let e=0,t=i.length;e<t;e++){let n=i.charCodeAt(e);if(n===37&&yg(i,e,t))a+=1,e+=2;else if(n<128)a+=1;else if(n<2048)a+=2;else if(n>=55296&&n<=56319&&e+1<t){let t=i.charCodeAt(e+1);t>=56320&&t<=57343?(a+=4,e++):a+=3}else a+=3}return a};function Dg(e){let t=typeof e==`string`?e.indexOf(`#`):-1;return Eg(t===-1?e:e.slice(0,t),Tg)}var Og=`1.19.0`,kg=65536,{isFunction:Ag}=U,jg=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),Mg=e=>{if(!U.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},Ng=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Pg=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},Fg=e=>{let t=U.global!==void 0&&U.global!==null?U.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=U.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Ag(i):typeof fetch==`function`,c=Ag(a),l=Ag(o);if(!s)return!1;let u=s&&Ag(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&Ng(()=>{let e=!1,t=new a(Dh.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&Ng(()=>U.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new W(`Response type '${e}' is not supported`,W.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(U.isBlob(e))return e.size;if(U.isSpecCompliantForm(e))return(await new a(Dh.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(U.isArrayBufferView(e)||U.isArrayBuffer(e))return e.byteLength;if(U.isURLSearchParams(e)&&(e+=``),U.isString(e))return(await d(e)).byteLength},g=async(e,t)=>U.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=dg(e),E=U.isNumber(w)&&w>-1,D=U.isNumber(T)&&T>-1,ee=t=>U.hasOwnProp(e,t)?e[t]:void 0,te=i||fetch;b=b?(b+``).toLowerCase():`text`;let O=pg([l,d&&d.toAbortSignal()],_),k=null,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),ne,re=null,ie=()=>new W(`Request body larger than maxBodyLength limit`,W.ERR_BAD_REQUEST,e,k);try{let i,l=ee(`auth`);if(l&&(i={username:U.getSafeProp(l,`username`)||``,password:U.getSafeProp(l,`password`)||``}),Pg(t)){let e=new URL(t,Dh.origin);!i&&(e.username||e.password)&&(i={username:Mg(e.username),password:Mg(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(jg((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&Dg(t)>w)throw new W(`maxContentLength size of `+w+` exceeded`,W.ERR_BAD_RESPONSE,e,k);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(ne=e,e>T))throw ie()}let d=D&&(U.isReadableStream(s)||U.isStream(s)),_=(e,t,n)=>_g(e,kg,e=>{if(D&&e>T)throw re=ie();t&&t(e)},n);
4if(f&&n!==`get`&&n!==`head`&&(y||d)){if(ne??=await g(x,s),ne!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(U.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Gh(ne,Wh(Kh(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new W(`Stream request bodies are not supported by the current fetch implementation`,W.ERR_NOT_SUPPORT,e,k);U.isString(S)||(S=S?`include`:`omit`);let ae=c&&`credentials`in a.prototype;if(U.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+Og,!1);let oe={...C,signal:O,method:n.toUpperCase(),headers:Hm(x.normalize()),body:s,duplex:`half`,credentials:ae?S:void 0};k=c&&new a(t,oe);let se=await(c?te(k,C):te(t,oe)),j=th.from(se.headers);if(E){let t=U.toFiniteNumber(j.getContentLength());if(t!=null&&t>w)throw new W(`maxContentLength size of `+w+` exceeded`,W.ERR_BAD_RESPONSE,e,k)}let ce=p&&(b===`stream`||b===`response`);if(p&&se.body&&(v||E||ce&&A)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=se[e]});let n=U.toFiniteNumber(j.getContentLength()),[r,i]=v&&Gh(n,Wh(Kh(v),!0))||[],a=0;se=new o(_g(se.body,kg,t=>{if(E&&(a=t,a>w))throw new W(`maxContentLength size of `+w+` exceeded`,W.ERR_BAD_RESPONSE,e,k);r&&r(t)},()=>{i&&i(),A&&A()}),t)}b||=`text`;let M=await m[U.findKey(m,b)||`text`](se,e);if(E&&!p&&!ce){let t;if(M!=null&&(typeof M.byteLength==`number`?t=M.byteLength:typeof M.size==`number`?t=M.size:typeof M==`string`&&(t=typeof r==`function`?new r().encode(M).byteLength:M.length)),typeof t==`number`&&t>w)throw new W(`maxContentLength size of `+w+` exceeded`,W.ERR_BAD_RESPONSE,e,k)}return!ce&&A&&A(),await new Promise((t,n)=>{Bh(t,n,{data:M,headers:th.from(se.headers),status:se.status,statusText:se.statusText,config:e,request:k})})}catch(t){if(A&&A(),O&&O.aborted&&O.reason instanceof W){let n=O.reason;throw n.config=e,k&&(n.request=k),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(re)throw k&&!re.request&&(re.request=k),re;if(t instanceof W)throw k&&!t.request&&(t.request=k),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new W(`Network Error`,W.ERR_NETWORK,e,k,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw W.from(t,t&&t.code,e,k,t&&t.response)}}},Ig=new Map,Lg=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=Ig;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:Fg(t)),l=c;return c};Lg();var Rg={http:null,xhr:fg,fetch:{get:Lg}};U.forEach(Rg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var zg=e=>`- ${e}`,Bg=e=>U.isFunction(e)||e===null||e===!1;function Vg(e,t){e=U.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o<n;o++){r=e[o];let n;if(i=r,!Bg(r)&&(i=Rg[(n=String(r)).toLowerCase()],i===void 0))throw new W(`Unknown adapter '${n}'`);if(i&&(U.isFunction(i)||(i=i.get(t))))break;a[n||`#`+o]=i}if(!i){let e=Object.entries(a).map(([e,t])=>`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new W(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : 5`+e.map(zg).join(` 6`):` `+zg(e[0]):`as no adapter specified`),W.ERR_NOT_SUPPORT)}return i}var Hg={getAdapter:Vg,adapters:Rg};function Ug(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new zh(null,e)}function Wg(e){return Ug(e),e.headers=th.from(e.headers),e.data=Lh.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),Hg.getAdapter(e.adapter||Ih.adapter,e)(e).then(function(t){Ug(e),e.response=t;try{t.data=Lh.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=th.from(t.headers),t},function(t){if(!Rh(t)&&(Ug(e),t&&t.response)){e.response=t.response;try{t.response.data=Lh.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=th.from(t.response.headers)}return Promise.reject(t)})}var Gg={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Gg[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Kg={};Gg.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Og+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>
6{if(e===!1)throw new W(r(i,` has been removed`+(t?` in `+t:``)),W.ERR_DEPRECATED);return t&&!Kg[i]&&(Kg[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},Gg.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function qg(e,t,n){if(typeof e!=`object`||!e)throw new W(`options must be an object`,W.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new W(`option `+a+` must be `+n,W.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new W(`Unknown option `+a,W.ERR_BAD_OPTION)}}var Jg={assertOptions:qg,validators:Gg},Yg=Jg.validators,Xg=class{constructor(e){this.defaults=e||{},this.interceptors={request:new vh,response:new vh}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(` 7`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(` 8`),r=t===-1?-1:n.indexOf(` 9`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=` 10`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=sg(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Jg.assertOptions(n,{silentJSONParsing:Yg.transitional(Yg.boolean),forcedJSONParsing:Yg.transitional(Yg.boolean),clarifyTimeoutError:Yg.transitional(Yg.boolean),legacyInterceptorReqResOrdering:Yg.transitional(Yg.boolean),advertiseZstdAcceptEncoding:Yg.transitional(Yg.boolean),validateStatusUndefinedResolves:Yg.transitional(Yg.boolean)},!1),r!=null&&(U.isFunction(r)?t.paramsSerializer={serialize:r}:Jg.assertOptions(r,{encode:Yg.function,serialize:Yg.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Jg.assertOptions(t,{baseUrl:Yg.spelling(`baseURL`),withXsrfToken:Yg.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&U.merge(i.common,i[t.method]);i&&U.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=th.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||yh;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Wg.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e?e(f):f}catch(e){if(!t){l=Promise.reject(e);break}try{let n=t.call(this,e);U.isThenable(n)&&(l=Promise.resolve(n).then(()=>Wg.call(this,f)))}catch(e){l=Promise.reject(e)}break}}if(!l)try{l=Wg.call(this,f)}catch(e){l=Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=sg(this.defaults,e),_h(ig(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};U.forEach([`delete`,`get`,`head`,`options`],function(e){Xg.prototype[e]=function(t,n){return this.request(sg(n||{},{method:e,url:t,data:n&&U.hasOwnProp(n,`data`)?n.data:void 0}))}}),U.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(sg(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Xg.prototype[e]=t(),e!==`query`&&(Xg.prototype[e+`Form`]=t(!0))});var Zg=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new zh(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}
10subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Qg(e){return function(t){return e.apply(null,t)}}function $g(e){return U.isObject(e)&&e.isAxiosError===!0}var e_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(e_).forEach(([e,t])=>{e_[t]=e});function t_(e){let t=new Xg(e),n=_p(Xg.prototype.request,t);return U.extend(n,Xg.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return t_(sg(e,t))},n}var n_=t_(Ih);n_.Axios=Xg,n_.CanceledError=zh,n_.CancelToken=Zg,n_.isCancel=Rh,n_.VERSION=Og,n_.toFormData=fh,n_.AxiosError=W,n_.Cancel=n_.CanceledError,n_.all=function(e){return Promise.all(e)},n_.spread=Qg,n_.isAxiosError=$g,n_.mergeConfig=sg,n_.AxiosHeaders=th,n_.formToJSON=e=>Nh(U.isHTMLForm(e)?new FormData(e):e),n_.getAdapter=Hg.getAdapter,n_.HttpStatusCode=e_,n_.default=n_;var{Axios:lee,AxiosError:uee,CanceledError:dee,isCancel:fee,CancelToken:pee,VERSION:mee,all:hee,Cancel:gee,isAxiosError:_ee,spread:vee,toFormData:yee,AxiosHeaders:r_,HttpStatusCode:bee,formToJSON:xee,getAdapter:See,mergeConfig:Cee,create:wee}=n_,i_=function(){return i_=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i_.apply(this,arguments)};function a_(e){return e.toLowerCase()}var o_=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],s_=/[^A-Z0-9]+/gi;function c_(e,t){t===void 0&&(t={});for(var n=t.splitRegexp,r=n===void 0?o_:n,i=t.stripRegexp,a=i===void 0?s_:i,o=t.transform,s=o===void 0?a_:o,c=t.delimiter,l=c===void 0?` `:c,u=l_(l_(e,r,`$1\0$2`),a,`\0`),d=0,f=u.length;u.charAt(d)===`\0`;)d++;for(;u.charAt(f-1)===`\0`;)f--;return u.slice(d,f).split(`\0`).map(s).join(l)}function l_(e,t,n){return t instanceof RegExp?e.replace(t,n):t.reduce(function(e,t){return e.replace(t,n)},e)}function u_(e,t){var n=e.charAt(0),r=e.substr(1).toLowerCase();return t>0&&n>=`0`&&n<=`9`?`_`+n+r:``+n.toUpperCase()+r}function d_(e,t){return t===void 0&&(t={}),c_(e,i_({delimiter:``,transform:u_},t))}function f_(e,t){return t===0?e.toLowerCase():u_(e,t)}function p_(e,t){return t===void 0&&(t={}),d_(e,i_({transform:f_},t))}function m_(e,t){return t===void 0&&(t={}),c_(e,i_({delimiter:`.`},t))}function h_(e,t){return t===void 0&&(t={}),m_(e,i_({delimiter:`_`},t))}function g_(e){return e.charAt(0).toUpperCase()+e.substr(1)}function __(e){return g_(e.toLowerCase())}function v_(e,t){return t===void 0&&(t={}),c_(e,i_({delimiter:` `,transform:__},t))}function y_(e,t){return t===void 0&&(t={}),v_(e,i_({delimiter:`-`},t))}var b_=(e,t)=>
10(n,r)=>e(n,{...t,...r}),x_=(e,t)=>{let n=typeof t==`function`?t:e=>t.includes(e);return(t,r)=>n(t,r)?t:e(t,r)},S_=e=>typeof URLSearchParams<`u`&&e instanceof URLSearchParams,C_=e=>typeof FormData<`u`&&e instanceof FormData,w_=e=>{if(e==null)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype},T_=e=>Array.isArray(e)||w_(e)||C_(e)||S_(e),E_=e=>e!=null&&e instanceof r_,D_={snake:h_,camel:p_,header:y_},O_=(e,t,n)=>{if(!T_(e))return e;if((C_(e)||S_(e))&&(!e.entries||n&&!e.delete)){let t=C_(e)?`FormData`:`URLSearchParams`,r=C_(e)?`https://github.com/jimmywarting/FormData`:`https://github.com/jerrybendy/url-search-params-polyfill`;return typeof navigator<`u`&&navigator.product===`ReactNative`?console.warn(`Be careful that ${t} cannot be transformed on React Native. If you intentionally implemented, ignore this kind of warning: https://facebook.github.io/react-native/docs/debugging.html`):(e.entries||console.warn(`You must use polyfill of ${t}.prototype.entries() on Internet Explorer or Safari: ${r}`),n&&!e.delete&&console.warn(`You must use polyfill of ${t}.prototype.delete() on Internet Explorer or Safari: ${r}`)),e}let r=Object.getPrototypeOf(e),i=n?e:r?new r.constructor:Object.create(null),a;if(C_(e)||S_(e)){if(a=e.entries(),n){a=[...a];for(let[t]of a)e.delete(t)}}else if(a=Object.entries(e),n&&!Array.isArray(e))for(let[t]of a)delete e[t];for(let[r,o]of a)C_(i)||S_(i)?i.append(t(r),o):r!==`__proto__`&&(i[Array.isArray(e)?Number(r):t(`${r}`)]=O_(o,t,n));return i},k_=(e,t,n)=>(t=b_(t,{stripRegexp:/[^A-Z0-9[\]]+/gi,...n?.caseOptions}),n?.preservedKeys&&(t=x_(t,n.preservedKeys)),O_(e,t,n?.overwrite||!1)),A_=e=>(t,n)=>k_(t,e,n),j_=(e,t)=>A_(t?.[e]||D_[e]),M_=e=>{let t=Object.keys(D_),n={};for(let r of t)n[r]=j_(r,e);return n},N_=e=>{let{snake:t}=M_(e?.caseFunctions);return n=>(!e?.ignoreParams&&n.params&&(n.params=t(n.params,e)),n)},P_=e=>{let{snake:t,header:n}=M_(e?.caseFunctions);return(r,i)=>(I_(i,n,e,[`common`,`delete`,`get`,`head`,`post`,`put`,`patch`]),t(r,e))},F_=e=>{let{camel:t}=M_(e?.caseFunctions);return(n,r)=>(I_(r,t,e),t(n,e))},I_=(e,t,n,r)=>{if(!(n?.ignoreHeaders||!w_(e)&&!E_(e)))for(let[i,a]of Object.entries(e))t(a,{overwrite:!0,...n}),!(r||[]).includes(i)&&(E_(e)?(e.delete(i),e.set(Object.keys(t({[i]:null},n))[0],a,!0)):(delete e[i],e[Object.keys(t({[i]:null},n))[0]]=a))},L_=(e,t)=>(e.defaults.transformRequest=[t?.caseMiddleware?.requestTransformer||P_(t),...Array.isArray(e.defaults.transformRequest)?e.defaults.transformRequest:e.defaults.transformRequest===void 0?[]:[e.defaults.transformRequest]],e.defaults.transformResponse=[...Array.isArray(e.defaults.transformResponse)?e.defaults.transformResponse:e.defaults.transformResponse===void 0?[]:[e.defaults.transformResponse],t?.caseMiddleware?.responseTransformer||F_(t)],e.interceptors.request.use(t?.caseMiddleware?.requestInterceptor||N_(t)),e),R_={},z_={};function B_(e,t){return R_[e]=R_[e]||[],R_[e].push(t),()=>{let n=R_[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}function V_(e,t){if(!z_[e]){z_[e]=!0;try{t()}catch(t){Dn&&Kn.error(`Error while instrumenting ${e}`,t)}}}function H_(e,t){let n=e&&R_[e];if(n)for(let r of n)try{r(t)}catch(t){Dn&&Kn.error(`Error while triggering instrumentation handler. 11Type: ${e} 12Name: ${sr(r)} 13Error:`,t)}}var U_=null;function W_(e){let t=`error`;B_(t,e),V_(t,G_)}function G_(){U_=mr.onerror,mr.onerror=function(e,t,n,r,i){return H_(`error`,{column:r,error:i,line:n,msg:e,url:t}),U_?U_.apply(this,arguments):!1},mr.onerror.__SENTRY_INSTRUMENTED__=!0}var K_=null;function Tee(e){let t=`unhandledrejection`;B_(t,e),V_(t,Eee)}function Eee(){K_=mr.onunhandledrejection,mr.onunhandledrejection=function(e){return H_(`unhandledrejection`,e),!K_||K_.apply(this,arguments)},mr.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Dee(e){if(typeof e==`boolean`)return Number(e);let t=typeof e==`string`?parseFloat(e):e;if(!(typeof t!=`number`||isNaN(t)||t<0||t>1))return t}function q_(e){Kn.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function J_(e,t){if(!t?.length)return!1;
13for(let n of t){if(Aee(n)){if(e.description&&on(e.description,n))return Dn&&q_(e),!0;continue}let t=!!n.attributes&&Object.keys(n.attributes).length>0;if(!n.name&&!n.op&&!t)continue;let r=!n.name||e.description&&on(e.description,n.name),i=!n.op||e.op&&on(e.op,n.op),a=!n.attributes||Object.entries(n.attributes).every(([t,n])=>Oee(e.attributes?.[t],n));if(r&&i&&a)return Dn&&q_(e),!0}return!1}function Oee(e,t){return typeof e==`string`&&(typeof t==`string`||t instanceof RegExp)?on(e,t):Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e===t}function kee(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let t of e)t.parent_span_id===r&&(t.parent_span_id=n)}function Aee(e){return typeof e==`string`||e instanceof RegExp}function jee(e){return!!e&&typeof e==`function`&&`_streamed`in e&&!!e._streamed}function Y_(e,t=[]){return[e,t]}function X_(e,t){let[n,r]=e;return[n,[...r,t]]}function Z_(e,t){let n=e[1];for(let e of n){let n=e[0].type;if(t(e,n))return!0}return!1}function Mee(e,t){return Z_(e,(e,n)=>t.includes(n))}function Q_(e){let t=Cn(mr);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function $_(e){let[t,n]=e,r=JSON.stringify(t);function i(e){typeof r==`string`?r=typeof e==`string`?r+e:[Q_(r),e]:r.push(typeof e==`string`?Q_(e):e)}for(let e of n){let[t,n]=e;if(i(` 14${JSON.stringify(t)} 15`),typeof n==`string`||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(Yt(n))}i(e)}}return typeof r==`string`?r:ev(r)}function ev(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function tv(e){let t=typeof e.data==`string`?Q_(e.data):e.data;return[{type:`attachment`,length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}var nv={sessions:`session`,event:`error`,client_report:`internal`,user_report:`default`,profile_chunk:`profile`,replay_event:`replay`,replay_recording:`replay`,check_in:`monitor`,raw_security:`security`,log:`log_item`,trace_metric:`metric`};function rv(e){return e in nv}function iv(e){return rv(e)?nv[e]:e}function av(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function ov(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date(gn()).toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Sn(r)},...i&&{trace:i}}}function sv(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function cv(e,t,n,r){let i=av(n);return Y_({sent_at:new Date(gn()).toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:Sn(t)}},[`aggregates`in e?[{type:`sessions`},e]:[{type:`session`},e.toJSON()]])}function lv(e,t,n,r){let i=av(n),a=e.type&&e.type!==`replay_event`?e.type:`event`;sv(e,n?.sdk);let o=ov(e,i,r,t);return delete e.sdkProcessingMetadata,Y_(o,[[{type:a},e]])}function uv(e){return e.getOptions().traceLifecycle===`stream`}var dv=`url.full`;function fv(e,t){let n=e.attributes??={};Object.entries(t).forEach(([e,t])=>{t!=null&&!(e in n)&&(n[e]=t)})}function pv(e){return typeof e==`object`&&typeof e.unref==`function`&&e.unref(),e}function mv(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function hv(e){return`${mv(e)}${e.projectId}/envelope/`}function gv(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function _v(e,t,n){return t||`${hv(e)}?${gv(e,n)}`}var vv=[];function yv(e){let t={};return e.forEach(e=>{let{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)}),Object.values(t)}function bv(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(e=>{e.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n==`function`){let e=n(t);r=Array.isArray(e)?e:[e]}else r=t;return yv(r)}function xv(e,t){let n={};return t.forEach(t=>{t?.beforeSetup&&t.beforeSetup(e)}),t.forEach(t=>{t&&Cv(e,t,n)}),n}function Sv(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function Cv(e,t,n){if(n[t.name]){Dn&&Kn.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!vv.includes(t.name)&&typeof t.setupOnce==`function`&&(t.setupOnce(),vv.push(t.name)),t.setup&&typeof t.setup==`function`&&t.setup(e),typeof t.preprocessEvent==`function`){let n=t.preprocessEvent.bind(t);e.on(`preprocessEvent`,(t,r)=>n(t,r,e))}if(typeof t.processEvent==`function`){let n=t.processEvent.bind(t),r=Object.assign((t,r)=>n(t,r,e),{id:t.name});e.addEventProcessor(r)}[`processSpan`,`processSegmentSpan`].forEach(n=>{let r=t[n];typeof r==`function`&&e.on(n,n=>r.call(t,n,e))}),Dn&&Kn.log(`Integration installed: ${t.name}`)}function wv(e){return e}function Tv(){return typeof __SENTRY_BROWSER_BUNDLE__<`u`&&!!__SENTRY_BROWSER_BUNDLE__}function Ev(){return`npm`}function Dv(){return!Tv()&&Object.prototype.toString.call(typeof process<`u`?process:0)===`[object process]`}function Ov(){return typeof window<`u`&&(!Dv()||kv())}function kv(){return mr.process?.type===`renderer`}function Av(e,t){let n=t?`auto`:`never`;return[{type:`log`,item_count:e.length,content_type:`application/vnd.sentry.items.log+json`},{version:2,...Ov()&&{ingest_settings:{infer_ip:n,infer_user_agent:n}},items:e}]}function jv(e,t,n,r,i){let a={};return t?.sdk&&(a.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(a.dsn=Sn(r)),Y_(a,[Av(e,i)])}function Mv(e,t){let n=t??Nv(e)??[];if(n.length===0)return;let r=e.getOptions(),i=jv(n,r._metadata,r.tunnel,e.getDsn(),e.getDataCollectionOptions().userInfo);Pv().set(e,[]),e.emit(`flushLogs`),e.sendEnvelope(i)}function Nv(e){return Pv().get(e)}function Pv(){return In(`clientToLogBufferMap`,()=>new WeakMap)}function Fv(e,t){let n=t?`auto`:`never`;return[{type:`trace_metric`,item_count:e.length,content_type:`application/vnd.sentry.items.trace-metric+json`},{version:2,...Ov()&&{ingest_settings:{infer_ip:n,infer_user_agent:n}},items:e}]}function Iv(e,t,n,r,i){let a={};return t?.sdk&&(a.sdk={name:t.sdk.name,version:t.sdk.version}
15),n&&r&&(a.dsn=Sn(r)),Y_(a,[Fv(e,i)])}function Lv(e,t){let n=t??Rv(e)??[];if(n.length===0)return;let r=e.getOptions(),i=Iv(n,r._metadata,r.tunnel,e.getDsn(),e.getDataCollectionOptions().userInfo);zv().set(e,[]),e.emit(`flushMetrics`),e.sendEnvelope(i)}function Rv(e){return zv().get(e)}function zv(){return In(`clientToMetricBufferMap`,()=>new WeakMap)}function Bv(e){let t={trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,name:e.description||``,start_timestamp:e.start_timestamp,end_timestamp:e.timestamp||e.start_timestamp,status:!e.status||e.status===`ok`||e.status===`cancelled`?`ok`:`error`,is_segment:!1,attributes:{...e.data},links:e.links};return Fn(t)}function Vv(e,t){if(e.type!==`transaction`||!e.spans?.length||!e.sdkProcessingMetadata?.hasGenAiSpans||t.getOptions().streamGenAiSpans===!1||uv(t))return;let n=[],r=[];for(let t of e.spans)t.op?.startsWith(`gen_ai.`)?n.push(Bv(t)):r.push(t);if(n.length===0)return;e.spans=r;let i=t.getDataCollectionOptions().userInfo?`auto`:`never`;return[{type:`span`,item_count:n.length,content_type:`application/vnd.sentry.items.span.v2+json`},{version:2,...Ov()&&{ingest_settings:{infer_ip:i,infer_user_agent:i}},items:n}]}var Hv=Symbol.for(`SentryBufferFullError`);function Uv(e=100){let t=new Set;function n(){return t.size<e}function r(e){t.delete(e)}function i(e){if(!n())return or(Hv);let i=e();return t.add(i),i.then(()=>r(i),()=>r(i)),i}function a(e){if(!t.size)return An(!0);let n=Promise.allSettled(Array.from(t)).then(()=>!0);if(!e)return n;let r=[n,new Promise(t=>pv(setTimeout(()=>t(!1),e)))];return Promise.race(r)}return{get $(){return Array.from(t)},add:i,drain:a}}var Wv=6e4;function Gv(e,t=gn()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?Wv:r-t}function Kv(e,t){return e[t]||e.all||0}function qv(e,t,n=gn()){return Kv(e,t)>n}function Jv(e,{statusCode:t,headers:n},r=gn()){let i={...e},a=n?.[`x-sentry-rate-limits`],o=n?.[`retry-after`];if(a)for(let e of a.trim().split(`,`)){let[t,n,,,a]=e.split(`:`,5),o=parseInt(t,10),s=(isNaN(o)?60:o)*1e3;if(!n)i.all=r+s;else for(let e of n.split(`;`))e===`metric_bucket`?(!a||a.split(`;`).includes(`custom`))&&(i[e]=r+s):i[e]=r+s}else o?i.all=r+Gv(o,r):t===429&&(i.all=r+6e4);return i}function Nee(e,t,n=Uv(e.bufferSize||64)){let r={},i=e=>n.drain(e);function a(i){let a=[];if(Z_(i,(t,n)=>{let i=iv(n);qv(r,i)?e.recordDroppedEvent(`ratelimit_backoff`,i):a.push(t)}),a.length===0)return Promise.resolve({});let o=Y_(i[0],a),s=t=>{if(Mee(o,[`client_report`])){Dn&&Kn.warn(`Dropping client report. Will not send outcomes (reason: ${t}).`);return}Z_(o,(n,r)=>{e.recordDroppedEvent(t,iv(r))})};return n.add(()=>t({body:$_(o)}).then(e=>e.statusCode===413?(Dn&&Kn.error(`Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.`),s(`send_error`),e):(Dn&&e.statusCode!==void 0&&(e.statusCode<200||e.statusCode>=300)&&Kn.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=Jv(r,e),e),e=>{throw s(`network_error`),Dn&&Kn.error(`Encountered error running transport request:`,e),e})).then(e=>e,e=>{if(e===Hv)return Dn&&Kn.error(`Skipped sending event because buffer is full.`),s(`queue_overflow`),Promise.resolve({});throw e})}return{send:a,flush:i}}function Pee(e,t,n){let r=[{type:`client_report`},{timestamp:n||Jt(),discarded_events:e}];return Y_(t?{dsn:t}:{},[r])}function Yv(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}function Xv(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:a,data:o,op:s}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:s,parent_span_id:n,span_id:r??``,start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??``,origin:a,profile_id:o?.[dr],exclusive_time:o?.[En],measurements:e.measurements,is_segment:!0}}function Zv(e){return{type:`transaction`,timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{"sentry.profile_id":e.profile_id},...e.exclusive_time&&{"sentry.exclusive_time":e.exclusive_time}}}},measurements:e.measurements}}var Qv=[`forwarded`,`-ip`,`remote-`,`via`,`-user`];function $v(e){return e===!0?{userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:[`incomingRequest`,`outgoingRequest`,`incomingResponse`,`outgoingResponse`],urlQueryParams:!0,graphQL:{document:!0,variables:!0},genAI:{inputs:!0,outputs:!0}
15,databaseQueryData:!0,stackFrameVariables:!0,frameContextLines:7}:{userInfo:!1,cookies:{deny:Qv},httpHeaders:{request:{deny:Qv},response:{deny:Qv}},httpBodies:[],urlQueryParams:{deny:Qv},graphQL:{document:!0,variables:!0},genAI:{inputs:!1,outputs:!1},databaseQueryData:!1,stackFrameVariables:!0,frameContextLines:7}}var ey={userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:[`incomingRequest`,`outgoingRequest`,`incomingResponse`,`outgoingResponse`],urlQueryParams:!0,graphQL:{document:!0,variables:!0},genAI:{inputs:!0,outputs:!0},databaseQueryData:!0,stackFrameVariables:!0,frameContextLines:5};function ty(e){let t=e.dataCollection==null?$v(e.sendDefaultPii):ey,n=e.dataCollection??{};return{userInfo:n.userInfo??t.userInfo,cookies:n.cookies??t.cookies,httpHeaders:{request:n.httpHeaders?.request??t.httpHeaders.request,response:n.httpHeaders?.response??t.httpHeaders.response},httpBodies:n.httpBodies??t.httpBodies,urlQueryParams:n.urlQueryParams??n.queryParams??t.urlQueryParams,graphQL:{document:n.graphQL?.document??t.graphQL.document,variables:n.graphQL?.variables??t.graphQL.variables},genAI:{inputs:n.genAI?.inputs??t.genAI.inputs,outputs:n.genAI?.outputs??t.genAI.outputs},databaseQueryData:n.databaseQueryData??t.databaseQueryData,stackFrameVariables:n.stackFrameVariables??t.stackFrameVariables,frameContextLines:n.frameContextLines??t.frameContextLines}}var ny=`Not capturing exception because it's already been captured.`,ry=`Discarded session because of missing or non-string release`,iy=Symbol.for(`SentryInternalError`),ay=Symbol.for(`SentryDoNotSendEventError`),oy=5e3;function sy(e){return{message:e,[iy]:!0}}function cy(e){return{message:e,[ay]:!0}}function ly(e){return ar(e)&&iy in e}function uy(e){return ar(e)&&ay in e}function dy(e,t,n,r,i){let a=0,o,s=!1;e.on(n,()=>{a=0,clearTimeout(o),s=!1}),e.on(t,t=>{if(a+=r(t),a>=8e5)i(e);else if(!s){let t=e.getOptions()._flushInterval??oy;t>0&&(s=!0,o=pv(setTimeout(()=>{i(e)},t)))}}),e.on(`flush`,()=>{i(e)})}var fy=class{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=Uv(e.transportOptions?.bufferSize??64),this._dataCollection=ty(e),e.dsn?this._dsn=cr(e.dsn):Dn&&Kn.warn(`No DSN provided, client will not send events.`),this._dsn){let t=_v(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&dy(this,`afterCaptureLog`,`flushLogs`,yy,Mv),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&dy(this,`afterCaptureMetric`,`flushMetrics`,vy,Lv)}captureException(e,t,n){let r=nn();if(un(e))return Dn&&Kn.log(ny),r;let i={event_id:r,...t};return this._process(()=>this.eventFromException(e,i).then(e=>this._captureEvent(e,i,n)).then(e=>e),`error`),i.event_id}captureMessage(e,t,n,r){let i={event_id:nn(),...n},a=Jn(e)?e:String(e),o=Bn(e),s=o?this.eventFromMessage(a,t,i):this.eventFromException(e,i);return this._process(()=>s.then(e=>this._captureEvent(e,i,r)),o?`unknown`:`error`),i.event_id}captureEvent(e,t,n){let r=nn();if(t?.originalException&&un(t.originalException))return Dn&&Kn.log(ny),r;let i={event_id:r,...t},a=e.sdkProcessingMetadata||{},o=a.capturedSpanScope,s=a.capturedSpanIsolationScope,c=py(e.type);return this._process(()=>this._captureEvent(e,i,o||n,s),c),i.event_id}captureSession(e){this.sendSession(e),Hn(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getDataCollectionOptions(){return this._dataCollection}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(e){let t=this._transport;if(this.emit(`flush`),!t)return!0;let n=await this._isClientDoneProcessing(e),r=await t.flush(e);return n&&r}async close(e){let t=await this.flush(e);return this.getOptions().enabled=!1,this.emit(`close`),t}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith(`Spotlight`)))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}getIntegrationNames(){return Object.keys(this._integrations)}addIntegration(e){let t=this._integrations[e.name];!t&&e.beforeSetup&&e.beforeSetup(this),Cv(this,e,this._integrations),t||Sv(this,[e])}sendEvent(e,t={}
15){this.emit(`beforeSendEvent`,e,t);let n=Vv(e,this),r=lv(e,this._dsn,this._options._metadata,this._options.tunnel);for(let e of t.attachments||[])r=X_(r,tv(e));n&&(r=X_(r,n)),this.sendEnvelope(r).then(t=>this.emit(`afterSendEvent`,e,t))}sendSession(e){let{release:t,environment:n=Zn}=this._options;if(`aggregates`in e){let r=e.attrs||{};if(!r.release&&!t){Dn&&Kn.warn(ry);return}r.release=r.release||t,r.environment=r.environment||n,e.attrs=r}else{if(!e.release&&!t){Dn&&Kn.warn(ry);return}e.release=e.release||t,e.environment=e.environment||n}this.emit(`beforeSendSession`,e);let r=cv(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,n=1){if(this._options.sendClientReports){let r=`${e}:${t}`;Dn&&Kn.log(`Recording outcome: "${r}"${n>1?` (${n} times)`:``}`),this._outcomes[r]=(this._outcomes[r]||0)+n}}on(e,t){let n=this._hooks[e]=this._hooks[e]||new Set,r=(...e)=>t(...e);return n.add(r),()=>{n.delete(r)}}emit(e,...t){let n=this._hooks[e];n&&n.forEach(e=>e(...t))}async sendEnvelope(e){if(this.emit(`beforeEnvelope`,e),this._isEnabled()&&this._transport)try{return await this._transport.send(e)}catch(e){return Dn&&Kn.error(`Error while sending envelope:`,e),{}}return Dn&&Kn.error(`Transport disabled`),{}}registerCleanup(e){}dispose(){}_setupIntegrations(){let{integrations:e}=this._options;this._integrations=xv(this,e),Sv(this,e)}_updateSessionFromEvent(e,t){let n=t.level===`fatal`,r=!1,i=t.exception?.values;if(i){r=!0,n=!1;for(let e of i)if(e.mechanism?.handled===!1){n=!0;break}}let a=e.status===`ok`;(a&&e.errors===0||a&&n)&&(Hn(e,{...n&&{status:`crashed`},errors:e.errors||Number(r||n)}),this.captureSession(e))}async _isClientDoneProcessing(e){let t=0;for(;!e||t<e;){if(await new Promise(e=>setTimeout(e,1)),!this._numProcessing)return!0;t++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,n,r){let i=this.getOptions(),a=this.getIntegrationNames();return!t.integrations&&a.length&&(t.integrations=a),this.emit(`preprocessEvent`,e,t),e.type||r.setLastEventId(e.event_id||t.event_id),Un(i,e,t,n,this,r).then(e=>e===null?e:(this.emit(`postprocessEvent`,e,t),e.contexts={trace:{...e.contexts?.trace,...Qt(n)},...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Nn(this,n),...e.sdkProcessingMetadata},e))}_captureEvent(e,t={},n=ur(),r=hn()){return Dn&&gy(e)&&Kn.log(`Captured error event \`${Yv(e)[0]||`<unknown>`}\``),this._processEvent(e,t,n,r).then(e=>e.event_id,e=>{Dn&&(uy(e)?Kn.log(e.message):ly(e)?Kn.warn(e.message):Kn.warn(e))})}_processEvent(e,t,n,r){let i=this.getOptions(),{sampleRate:a}=i,o=_y(e),s=gy(e),c=`before send for type \`${e.type||`error`}\``,l=a===void 0?void 0:Dee(a),u=py(e.type);return this._prepareEvent(e,t,n,r).then(e=>{if(e===null)throw this.recordDroppedEvent(`event_processor`,u),cy("An event processor returned `null`, will not send event.");return t.data?.__sentry__===!0?e:my(hy(this,i,e,t),c)}).then(i=>{if(i===null){if(this.recordDroppedEvent(`before_send`,u),o){let t=1+(e.spans||[]).length;this.recordDroppedEvent(`before_send`,`span`,t)}throw cy(`${c} returned \`null\`, will not send event.`)}let d=n.getSession()||r.getSession();if(s&&d&&this._updateSessionFromEvent(d,i),s&&typeof l==`number`&&vn()>
15l)throw this.recordDroppedEvent(`sample_rate`,`error`),cy(`Discarding event because it's not included in the random sample (sampling rate = ${a})`);if(o){let e=(i.sdkProcessingMetadata?.spanCountBeforeProcessing||0)-(i.spans?i.spans.length:0);e>0&&this.recordDroppedEvent(`before_send`,`span`,e)}let f=i.transaction_info;return o&&f&&i.transaction!==e.transaction&&(i.transaction_info={...f,source:`custom`}),this.sendEvent(i,t),i}).then(null,e=>{throw uy(e)||ly(e)?e:(this.captureException(e,{mechanism:{handled:!1,type:`internal`},data:{__sentry__:!0},originalException:e}),sy(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. 16Reason: ${e}`))})}_process(e,t){this._numProcessing++,this._promiseBuffer.add(e).then(e=>(this._numProcessing--,e),e=>(this._numProcessing--,e===Hv&&this.recordDroppedEvent(`queue_overflow`,t),e))}_clearOutcomes(){let e=this._outcomes;return this._outcomes={},Object.entries(e).map(([e,t])=>{let[n,r]=e.split(`:`);return{reason:n,category:r,quantity:t}})}_flushOutcomes(){Dn&&Kn.log(`Flushing outcomes...`);let e=this._clearOutcomes();if(e.length===0){Dn&&Kn.log(`No outcomes to send`);return}if(!this._dsn){Dn&&Kn.log(`No dsn provided, will not send outcomes`);return}Dn&&Kn.log(`Sending outcomes:`,e);let t=Pee(e,this._options.tunnel&&Sn(this._dsn));this.sendEnvelope(t)}};function py(e){return e===`replay_event`?`replay`:e||`error`}function my(e,t){let n=`${t} must return \`null\` or a valid event.`;if(rr(e))return e.then(e=>{if(!tr(e)&&e!==null)throw sy(n);return e},e=>{throw sy(`${t} rejected with ${e}`)});if(!tr(e)&&e!==null)throw sy(n);return e}function hy(e,t,n,r){let{beforeSend:i,beforeSendTransaction:a,ignoreSpans:o}=t,s=!jee(t.beforeSendSpan)&&t.beforeSendSpan,c=n;if(gy(c)&&i)return i(c,r);if(_y(c)){if(s||o){let t=Xv(c);if(o?.length&&J_({description:t.description,op:t.op,attributes:t.data},o))return null;if(s){let e=s(t);e?c=ln(n,Zv(e)):Gn()}if(c.spans){let t=[],n=c.spans;for(let e of n){if(o?.length&&J_({description:e.description,op:e.op,attributes:e.data},o)){kee(n,e);continue}if(s){let n=s(e);n?t.push(n):(Gn(),t.push(e))}else t.push(e)}let r=c.spans.length-t.length;r&&e.recordDroppedEvent(`before_send`,`span`,r),c.spans=t}}if(a){if(c.spans){let e=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return a(c,r)}}return c}function gy(e){return e.type===void 0}function _y(e){return e.type===`transaction`}function vy(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+by(e.attributes)}function yy(e){let t=0;return e.message&&(t+=e.message.length*2),t+by(e.attributes)}function by(e){if(!e)return 0;let t=0;return Object.values(e).forEach(e=>{Array.isArray(e)?t+=e.length*xy(e[0]):Bn(e)?t+=xy(e):t+=100}),t}function xy(e){return typeof e==`string`?e.length*2:typeof e==`number`?8:typeof e==`boolean`?4:0}function Sy(e,t){t.debug===!0&&(Dn?Kn.enable():Qn(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),ur().update(t.initialScope);let n=new e(t);return Cy(n),n.init(),n}function Cy(e){ur().setClient(e)}function wy(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||``,r=t[8]||``;return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Ty(e,t=!0){if(e.startsWith(`data:`)){let n=e.match(/^data:([^;,]+)/),r=n?n[1]:`text/plain`,i=e.includes(`;base64,`),a=e.indexOf(`,`),o=``;if(t&&a!==-1){let t=e.slice(a+1);o=t.length>10?`${t.slice(0,10)}... [truncated]`:t}return`data:${r}${i?`,base64`:``}${o?`,${o}`:``}`}return e}function Ey(e){`aggregates`in e?e.attrs?.ip_address===void 0&&(e.attrs={...e.attrs,ip_address:`{{auto}}`}):e.ipAddress===void 0&&(e.ipAddress=`{{auto}}`)}function Dy(e,t,n=[t],r=`npm`){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(e=>({name:`${r}:@sentry/${e}`,version:lr})),i.version=lr)}var Oy=100;function ky(e,t){let n=Xt(),r=hn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:a=Oy}=n.getOptions();if(a<=0)return;let o={timestamp:Jt(),...e},s=i?Qn(()=>i(o,t)):o;s!==null&&(n.emit&&n.emit(`beforeAddBreadcrumb`,s,t),r.addBreadcrumb(s,a))}var Ay=`FunctionToString`,jy=new WeakMap,My=wv((()=>({name:Ay,setupOnce(){let e=Function.prototype.toString;try{Function.prototype.toString=function(...t){let n=rn(this),r;try{jy.has(Xt())&&n!==void 0&&(r=n)}catch{}return e.apply(r??this,t)}}catch{}},setup(e){jy.set(e,!0)}}))),Ny=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],Py=`EventFilters`,Fy=wv((e={})=>{let t;return{name:Py,setup(n){t=Ly(e,n.getOptions())},processEvent(n,r,i){return t||=Ly(e,i.getOptions()),Ry(n,t)?null:n}}}),Iy=wv(((e={})=>({...Fy(e),name:`InboundFilters`})));function Ly(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:Ny],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function Ry(e,t){if(!e.type){if(zy(e,t.ignoreErrors))return Dn&&Kn.warn(`Event dropped due to being matched by \`ignoreErrors\` option. 17Event: ${$t(e)}`),!0;if(Gy(e))return Dn&&Kn.warn(`Event dropped due to not having an error message, error type or stacktrace. 18Event: ${$t(e)}`),!0;if(Vy(e,t.denyUrls))return Dn&&Kn.warn(`Event dropped due to being matched by \`denyUrls\` option. 19Event: ${$t(e)}. 20Url: ${Wy(e)}`),!0;if(!Hy(e,t.allowUrls))return Dn&&Kn.warn(`Event dropped due to not being matched by \`allowUrls\` option. 21Event: ${$t(e)}. 22Url: ${Wy(e)}`),!0}else if(e.type===`transaction`&&By(e,t.ignoreTransactions))return Dn&&Kn.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. 23Event: ${$t(e)}`),!0;return!1}function zy(e,t){return t?.length?Yv(e).some(e=>hr(e,t)):!1}function By(e,t){if(!t?.length)return!1;let n=e.transaction;return n?hr(n,t):!1}function Vy(e,t){if(!t?.length)return!1;let n=Wy(e);return n?hr(n,t):!1}function Hy(e,t){if(!t?.length)return!0;let n=Wy(e);return!n||hr(n,t)}function Uy(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==`<anonymous>`&&n.filename!==`[native code]`)return n.filename||null}return null}function Wy(e){try{let t=[...e.exception?.values??[]].reverse().find(e=>e.mechanism?.parent_id===void 0&&e.stacktrace?.frames?.length)?.stacktrace?.frames;return t?Uy(t):null}catch{return Dn&&Kn.error(`Cannot extract url for event ${$t(e)}`),null}}function Gy(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(e=>e.stacktrace||e.type&&e.type!==`Error`||e.value):!1}function Ky(e,t,n,r,i,a){if(!i.exception?.values||!a||!dn(a.originalException))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=qy(e,t,r,a.originalException,n,i.exception.values,o,0))}
23function qy(e,t,n,r,i,a,o,s){if(a.length>=n+1)return a;let c=[...a];if(dn(r[i])){Yy(o,s,r);let a=e(t,r[i]),l=c.length;Xy(a,i,l,s),c=qy(e,t,n,r[i],i,[a,...c],a,l)}return Jy(r)&&r.errors.forEach((a,l)=>{if(dn(a)){Yy(o,s,r);let u=e(t,a),d=c.length;Xy(u,`errors[${l}]`,d,s),c=qy(e,t,n,a,i,[u,...c],u,d)}}),c}function Jy(e){return Array.isArray(e.errors)}function Yy(e,t,n){e.mechanism={handled:!0,type:`auto.core.linked_errors`,...Jy(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function Xy(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:`chained`,source:t,exception_id:n,parent_id:r}}function Zy(e){return dn(e)&&`__sentry_fetch_url_host__`in e&&typeof e.__sentry_fetch_url_host__==`string`}function Qy(e){return Zy(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}var $y=new Set([]);function eb(e){let t=`console`,n=B_(t,e);return V_(t,nb),n}var tb=new Set;function nb(){`console`in mr&&Pn.forEach(function(e){!tb.has(e)&&e in mr.console&&(tb.add(e),$n(mr.console,e,function(t){return Rn[e]=t,function(...t){let n=t[0],r=Rn[e],i=$y.size&&typeof n==`string`&&hr(n,$y);i||H_(`console`,{args:t,level:e}),(!i||Dn&&Kn.isEnabled())&&r?.apply(mr.console,t)}}))})}function rb(e){return e===`warn`?`warning`:[`fatal`,`error`,`warning`,`log`,`info`,`debug`].includes(e)?e:`log`}var ib=`Dedupe`,ab=wv((()=>{let e;return{name:ib,processEvent(t){if(t.type)return t;try{if(ob(t,e))return Dn&&Kn.warn(`Event dropped due to being a duplicate of previously captured event.`),null}catch{}return e=t}}}));function ob(e,t){return t?!!(sb(e,t)||cb(e,t)):!1}function sb(e,t){let n=e.message,r=t.message;return!(!n&&!r||n&&!r||!n&&r||n!==r||!ub(e,t)||!lb(e,t))}function cb(e,t){let n=db(t),r=db(e);return!(!n||!r||n.type!==r.type||n.value!==r.value||!ub(e,t)||!lb(e,t))}function lb(e,t){let n=Wn(e),r=Wn(t);if(!n&&!r)return!0;if(n&&!r||!n&&r||(n=n,r=r,r.length!==n.length))return!1;for(let e=0;e<r.length;e++){let t=r[e],i=n[e];if(t.filename!==i.filename||t.lineno!==i.lineno||t.colno!==i.colno||t.function!==i.function)return!1}return!0}function ub(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;n=n,r=r;try{return n.join(``)===r.join(``)}catch{return!1}}function db(e){return e.exception?.values?.[0]}var fb=`ConversationId`,pb=wv((()=>({name:fb,setup(e){e.on(`spanStart`,e=>{let t=ur().getScopeData(),n=hn().getScopeData(),r=t.conversationId||n.conversationId;if(r){let{op:t,data:n,description:i}=Ln(e);if(!t?.startsWith(`gen_ai.`)&&!n[`ai.operationId`]&&!i?.startsWith(`ai.`))return;e.setAttribute(pr,r)}})}})));function mb(e){if(e!==void 0){if(e>=400&&e<500)return`warning`;if(e>=500)return`error`}}var hb=mr;function gb(){return`history`in hb&&!!hb.history}function _b(){if(!(`fetch`in hb))return!1;try{return new Headers,new Request(`data:,`),new Response,!0}catch{return!1}}function vb(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function yb(){if(typeof EdgeRuntime==`string`)return!0;if(!_b())return!1;if(vb(hb.fetch))return!0;let e=!1,t=hb.document;if(t&&typeof t.createElement==`function`)try{let n=t.createElement(`iframe`);n.hidden=!0,t.head.appendChild(n),n.contentWindow?.fetch&&(e=vb(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){Dn&&Kn.warn(`Could not create sandbox iframe for pure fetch check, bailing to window.fetch: `,e)}return e}function bb(e,t){let n=`fetch`,r=B_(n,e);return V_(n,()=>xb(void 0,t)),r}function xb(e,t=!1){(!t||yb())&&$n(mr,`fetch`,function(t){return function(...n){let r=Error(),{method:i,url:a}=wb(n),o={args:n,fetchData:{method:i,url:a},startTimestamp:Vn()*1e3,virtualError:r,headers:Tb(n)};return e||H_(`fetch`,{...o}),t.apply(mr,n).then(async t=>(e?e(t):H_(`fetch`,{...o,endTimestamp:Vn()*1e3,response:t}),t),e=>{H_(`fetch`,{...o,endTimestamp:Vn()*1e3,error:e}),dn(e)&&e.stack===void 0&&(e.stack=r.stack,en(e,`framesToPop`,1));let t=Xt()?.getOptions().enhanceFetchErrorMessages??`always`;if(t!==!1&&dn(e)&&e.name===`TypeError`&&(e.message===`Failed to fetch`||e.message===`Load failed`||e.message===`NetworkError when attempting to fetch resource.`))try{let n=new URL(o.fetchData.url).host;t===`always`?e.message=`${e.message} (${n})`:en(e,`__sentry_fetch_url_host__`,n)}catch{}throw e})}})}function Sb(e,t){return ar(e)&&!!e[t]}function Cb(e){return typeof e==`string`?e:e?Sb(e,`url`)?e.url:e.toString?e.toString():``:``}function wb(e){if(e.length===0)return{method:`GET`,url:``};if(e.length===2){let[t,n]=e;return{url:Cb(t),method:Sb(n,`method`)?String(n.method).toUpperCase():Tn(t)&&Sb(t,`method`)?String(t.method).toUpperCase():`GET`}}let t=e[0];return{url:Cb(t),method:Sb(t,`method`)?String(t.method).toUpperCase():`GET`}}function Tb(e){let[t,n]=e;try{if(typeof n==`object`&&n&&`headers`in n&&n.headers)return new Headers(n.headers);if(Tn(t))return new Headers(t.headers)}catch{}}var Eb=mr;function Db(){try{return Eb.document.location.href}catch{return``}}function Ob(e,t=5){if(!Eb.HTMLElement)return null;let n=e;for(let e=0;e<t;e++){if(!n)return null;if(n instanceof HTMLElement){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}n=n.parentNode}return null}var kb=mr,Ab=0;function jb(){return Ab>0}function Mb(){Ab++,setTimeout(()=>{Ab--})}function Nb(e,t={}){function n(e){return typeof e==`function`}if(!n(e))return e;try{if(Object.prototype.hasOwnProperty.call(e,`__sentry_wrapped__`)){let t=e.__sentry_wrapped__;return typeof t==`function`?t:e}if(rn(e))return e}catch{return e}let r=function(...n){mr._sentryWrappedDepth=(mr._sentryWrappedDepth||0)+1;try{let r=n.map(e=>Nb(e,t));return e.apply(this,r)}catch(e){throw Mb(),Zt(r=>{r.addEventProcessor(e=>(t.mechanism&&(cn(e,void 0,void 0),sn(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),qn(e)}),e}finally{mr._sentryWrappedDepth=(mr._sentryWrappedDepth||0)-1}};try{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch{}bn(r,e),en(e,`__sentry_wrapped__`,r);try{Object.getOwnPropertyDescriptor(r,`name`).configurable&&Object.defineProperty(r,"name",{get(){return e.name}})}catch{}return r}function Pb(){let e=Db(),{referrer:t}=kb.document||{},{userAgent:n}=kb.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}function Fb(e,t){let n=Rb(e,t),r={type:Ub(t),value:Wb(t)};return n.length&&(r.stacktrace={frames:n}),r.type===void 0&&r.value===``&&(r.value=`Unrecoverable error caught`),r}function Ib(e,t,n,r){let i=Xt()?.getOptions().normalizeDepth,a=Zb
23(t),o={__serialized__:_n(t,i)};if(a)return{exception:{values:[Fb(e,a)]},extra:o};let s={exception:{values:[{type:Mn(t)?t.constructor.name:r?`UnhandledRejection`:`Error`,value:Yb(t,{isUnhandledRejection:r})}]},extra:o};if(n){let t=Rb(e,n);t.length&&(s.exception.values[0].stacktrace={frames:t})}return s}function Lb(e,t){return{exception:{values:[Fb(e,t)]}}}function Rb(e,t){let n=t.stacktrace||t.stack||``,r=Bb(t),i=Vb(t);try{return e(n,r,i)}catch{}return[]}var zb=/Minified React error #\d+;/i;function Bb(e){return e&&zb.test(e.message)?1:0}function Vb(e){return typeof e.framesToPop==`number`?e.framesToPop:0}function Hb(e){return typeof WebAssembly<`u`&&WebAssembly.Exception!==void 0&&e instanceof WebAssembly.Exception}function Ub(e){let t=e?.name;return!t&&Hb(e)?e.message&&Array.isArray(e.message)&&e.message.length==2?e.message[0]:`WebAssembly.Exception`:t}function Wb(e){let t=e?.message;return Hb(e)?Array.isArray(e.message)&&e.message.length==2?e.message[1]:`wasm exception`:t?t.error&&typeof t.error.message==`string`?Qy(t.error):Qy(e):`No error message`}function Gb(e,t,n,r){let i=qb(e,t,n?.syntheticException||void 0,r);return sn(i),i.level=`error`,n?.event_id&&(i.event_id=n.event_id),An(i)}function Kb(e,t,n=`info`,r,i){let a=Jb(e,t,r?.syntheticException||void 0,i);return a.level=n,r?.event_id&&(a.event_id=r.event_id),An(a)}function qb(e,t,n,r,i){let a;if(qt(t)&&t.error)return Lb(e,t.error);if(yn(t)||xn(t)){let i=t;if(`stack`in t){a=Lb(e,t);let i=a.exception?.values?.[0];if(r&&n&&i&&!i.stacktrace){let t=Rb(e,n);t.length&&(i.stacktrace={frames:t},sn(a,{synthetic:!0}))}}else{let t=i.name||(yn(i)?`DOMError`:`DOMException`),o=i.message?`${t}: ${i.message}`:t;a=Jb(e,o,n,r),cn(a,o)}return`code`in i&&(a.tags={...a.tags,"DOMException.code":`${i.code}`}),a}return dn(t)?Lb(e,t):tr(t)||Mn(t)?(a=Ib(e,t,n,i),sn(a,{synthetic:!0}),a):(a=Jb(e,t,n,r),cn(a,`${t}`,void 0),sn(a,{synthetic:!0}),a)}function Jb(e,t,n,r){let i={};if(r&&n){let r=Rb(e,n);r.length&&(i.exception={values:[{value:t,stacktrace:{frames:r}}]}),sn(i,{synthetic:!0})}if(Jn(t)){let{__sentry_template_string__:e,__sentry_template_values__:n}=t;return i.logentry={message:e,params:n},i}return i.message=t,i}function Yb(e,{isUnhandledRejection:t}){let n=an(e),r=t?`promise rejection`:`exception`;return qt(e)?`Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``:Mn(e)?`Event \`${Xb(e)}\` (type=${e.type}) captured as ${r}`:`Object captured as ${r} with keys: ${n}`}function Xb(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function Zb(e){return Object.values(e).find(dn)}var Qb=class extends fy{constructor(e){let t=$b(e);Dy(t,`browser`,[`browser`],kb.SENTRY_SDK_SOURCE||Ev()),super(t);let{userInfo:n}=this.getDataCollectionOptions();t._metadata?.sdk&&(t._metadata.sdk.settings={infer_ip:n?`auto`:`never`,...t._metadata.sdk.settings});let{sendClientReports:r}=this._options;kb.document&&kb.document.addEventListener(`visibilitychange`,()=>{kb.document.visibilityState===`hidden`&&(r&&this._flushOutcomes(),queueMicrotask(()=>{this.flush()}))}),n&&this.on(`beforeSendSession`,Ey)}eventFromException(e,t){return Gb(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t=`info`,n){return Kb(this._options.stackParser,e,t,n,this._options.attachStacktrace)}_prepareEvent(e,t,n,r){return e.platform=e.platform||`javascript`,super._prepareEvent(e,t,n,r)}};function $b(e){return{release:`chessbook-web@8cada333a37d47d6202c119e56d2497560f13100`,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...e}}var ex=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,tx=mr;function nx(e,t,n){tx.document&&tx.addEventListener(e,t,n)}function rx(e,t,n){tx.document&&tx.removeEventListener(e,t,n)}var Fee=e=>{let t=!1;return()=>{t||=(e(),!0)}},Iee=e=>{let t=tx.requestIdleCallback||tx.setTimeout;tx.document?.visibilityState===`hidden`?e():(e=Fee(e),nx(`visibilitychange`,e,{once:!0,capture:!0}),nx(`pagehide`,e,{once:!0,capture:!0}),t(()=>{e(),rx(`visibilitychange`,e,{capture:!0}),rx(`pagehide`,e,{capture:!0})}))},ix=80,ax={};
23try{typeof Node<`u`&&(ax.parentNode=Object.getOwnPropertyDescriptor(Node.prototype,`parentNode`).get),typeof Element<`u`&&(ax.tagName=Object.getOwnPropertyDescriptor(Element.prototype,`tagName`).get,ax.id=Object.getOwnPropertyDescriptor(Element.prototype,`id`).get,ax.className=Object.getOwnPropertyDescriptor(Element.prototype,`className`).get,ax.getAttribute=Element.prototype.getAttribute),typeof HTMLElement<`u`&&(ax.dataset=Object.getOwnPropertyDescriptor(HTMLElement.prototype,`dataset`).get)}catch{}function ox(e,t,n){let r=ax[t];if(r)try{return r.call(e,n)}catch{}let i=e[t];return typeof i==`function`?i.call(e,n):i}function sx(e,t={}){if(!e)return`<unknown>`;try{let n=e,r=[],i=0,a=0,o,s=Array.isArray(t)?t:t.keyAttrs,c=!Array.isArray(t)&&t.maxStringLength||ix;for(;n&&i++<5&&(o=cx(n,s),!(o===`html`||i>1&&a+r.length*3+o.length>=c));)r.push(o),a+=o.length,n=ox(n,`parentNode`);return r.reverse().join(` > `)}catch{return`<unknown>`}}function cx(e,t){let n=[],r=ox(e,`tagName`);if(!r)return``;if(typeof HTMLElement<`u`&&e instanceof HTMLElement){let t=ox(e,`dataset`);if(t){if(t.sentryComponent)return t.sentryComponent;if(t.sentryElement)return t.sentryElement}}n.push(r.toLowerCase());let i=t?.length?t.filter(t=>ox(e,`getAttribute`,t)).map(t=>[t,ox(e,`getAttribute`,t)]):null;if(i?.length)i.forEach(e=>{n.push(`[${e[0]}="${e[1]}"]`)});else{let t=ox(e,`id`);t&&n.push(`#${t}`);let r=ox(e,`className`);if(r&&Xn(r)){let e=r.split(/\s+/);for(let t of e)n.push(`.${t}`)}}for(let t of[`aria-label`,`type`,`name`,`title`,`alt`]){let r=ox(e,`getAttribute`,t);r&&n.push(`[${t}="${r}"]`)}return n.join(``)}var lx=1e3,ux,dx,fx;function px(e){B_(`dom`,e),V_(`dom`,mx)}function mx(){if(!tx.document)return;let e=H_.bind(null,`dom`),t=_x(e,!0);tx.document.addEventListener(`click`,t,!1),tx.document.addEventListener(`keypress`,t,!1),[`EventTarget`,`Node`].forEach(t=>{let n=tx[t]?.prototype;n?.hasOwnProperty?.(`addEventListener`)&&($n(n,`addEventListener`,function(t){return function(n,r,i){if(n===`click`||n==`keypress`)try{let r=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},a=r[n]=r[n]||{refCount:0};if(!a.handler){let r=_x(e);a.handler=r,t.call(this,n,r,i)}a.refCount++}catch{}return t.call(this,n,r,i)}}),$n(n,`removeEventListener`,function(e){return function(t,n,r){if(t===`click`||t==`keypress`)try{let n=this.__sentry_instrumentation_handlers__||{},i=n[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete n[t]),Object.keys(n).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return e.call(this,t,n,r)}}))})}function hx(e){if(e.type!==dx)return!1;try{if(!e.target||e.target._sentryId!==fx)return!1}catch{}return!0}function gx(e,t){return e===`keypress`?!t?.tagName||!(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable):!1}function _x(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;let r=vx(n);if(gx(n.type,r))return;en(n,`_sentryCaptured`,!0),r&&!r._sentryId&&en(r,`_sentryId`,nn());let i=n.type===`keypress`?`input`:n.type;hx(n)||(e({event:n,name:i,global:t}),dx=n.type,fx=r?r._sentryId:void 0),clearTimeout(ux),ux=tx.setTimeout(()=>{fx=void 0,dx=void 0},lx)}}function vx(e){try{return e.target}catch{return null}}var yx;function bx(e){let t=`history`;B_(t,e),V_(t,xx)}function xx(){if(tx.addEventListener(`popstate`,()=>{let e=tx.location.href,t=yx;yx=e,t!==e&&H_(`history`,{from:t,to:e})}),!gb())return;function e(e){return function(...t){let n=t.length>2?t[2]:void 0;if(n){let r=yx,i=Sx(String(n));if(yx=i,r===i)return e.apply(this,t);H_(`history`,{from:r,to:i})}return e.apply(this,t)}}$n(tx.history,`pushState`,e),$n(tx.history,`replaceState`,e)}function Sx(e){try{return new URL(e,tx.location.origin).toString()}catch{return e}}var Cx={};function wx(e){let t=Cx[e];if(t)return t;let n=tx[e];if(vb(n))return Cx[e]=n.bind(tx);let r=tx.document;if(r&&typeof r.createElement==`function`)try{let t=r.createElement(`iframe`);t.hidden=!0,r.head.appendChild(t);let i=t.contentWindow;i?.[e]&&(n=i[e]),r.head.removeChild(t)}catch(t){ex&&Kn.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n&&(Cx[e]=n.bind(tx))}function Tx(e){Cx[e]=void 0}var Ex=`__sentry_xhr_v3__`;function Dx(e){B_(`xhr`,e),V_(`xhr`,Ox)}function Ox(){if(!tx.XMLHttpRequest)return;let e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){let r=Error(),i=Vn()*1e3,a=Xn(n[0])?n[0].toUpperCase():void 0,o=kx(n[1]);if(!a||!o)return e.apply(t,n);t[Ex]={method:a,url:o,request_headers:{}}
23,a===`POST`&&o.match(/sentry_key/)&&(t.__sentry_own_request__=!0);let s=()=>{let e=t[Ex];if(e&&t.readyState===4){try{e.status_code=t.status}catch{}H_(`xhr`,{endTimestamp:Vn()*1e3,startTimestamp:i,xhr:t,virtualError:r}),t.removeEventListener(`readystatechange`,s)}};return`onreadystatechange`in t&&typeof t.onreadystatechange==`function`?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(e,t,n){return s(),e.apply(t,n)}}):t.addEventListener(`readystatechange`,s),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){let[r,i]=n,a=t[Ex];return a&&Xn(r)&&Xn(i)&&(a.request_headers[r.toLowerCase()]=i),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){let r=t[Ex];return r?(n[0]!==void 0&&(r.body=n[0]),H_(`xhr`,{startTimestamp:Vn()*1e3,xhr:t}),e.apply(t,n)):e.apply(t,n)}})}function kx(e){if(Xn(e))return e;try{return e.toString()}catch{}}function Ax(e){if(typeof Element>`u`)return!1;try{return e instanceof Element}catch{return!1}}var jx=40;function Mx(e,t=wx(`fetch`)){let n=0,r=0;async function i(i){let a=i.body.length;n+=a,r++;let o={body:i.body,method:`POST`,referrerPolicy:`strict-origin`,headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};try{let n=await t(e.url,o);return{statusCode:n.status,headers:{"x-sentry-rate-limits":n.headers.get(`X-Sentry-Rate-Limits`),"retry-after":n.headers.get(`Retry-After`)}}}catch(e){throw Tx(`fetch`),e}finally{n-=a,r--}}return Nee(e,i,Uv(e.bufferSize||jx))}var Nx=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,Px=30,Fx=50;function Ix(e,t,n,r){let i={filename:e,function:t===`<anonymous>`?`?`:t,in_app:!0};return n!==void 0&&(i.lineno=n),r!==void 0&&(i.colno=r),i}var Lx=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Rx=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,zx=/\((\S*)(?::(\d+))(?::(\d+))\)/,Bx=/at (.+?) ?\(data:(.+?),/,Vx=[Px,e=>{let t=e.match(Bx);if(t)return{filename:`<data:${t[2]}>`,function:t[1]};let n=Lx.exec(e);if(n){let[,e,t,r]=n;return Ix(e,`?`,+t,+r)}let r=Rx.exec(e);if(r){if(r[2]?.indexOf(`eval`)===0){let e=zx.exec(r[2]);e&&(r[2]=e[1],r[3]=e[2],r[4]=e[3])}let[e,t]=Gx(r[1]||`?`,r[2]);return Ix(t,e,r[3]?+r[3]:void 0,r[4]?+r[4]:void 0)}}],Hx=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Ux=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Wx=kn(Vx,[Fx,e=>{let t=Hx.exec(e);if(t){if(t[3]&&t[3].indexOf(` > eval`)>-1){let e=Ux.exec(t[3]);e&&(t[1]=t[1]||`eval`,t[3]=e[1],t[4]=e[2],t[5]=``)}let e=t[3],n=t[1]||`?`;return[n,e]=Gx(n,e),Ix(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}]),Gx=(e,t)=>{let n=e.indexOf(`safari-extension`)!==-1,r=e.indexOf(`safari-web-extension`)!==-1;return n||r?[e.indexOf(`@`)===-1?`?`:e.split(`@`)[0],n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Kx=1024,qx=`Breadcrumbs`,Jx=wv(((e={})=>{let t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:qx,setup(e){t.console&&eb(Zx(e)),t.dom&&px(Xx(e,t.dom)),t.xhr&&Dx(Qx(e)),t.fetch&&bb($x(e)),t.history&&bx(eS(e)),t.sentry&&e.on(`beforeSendEvent`,Yx(e))}}}));function Yx(e){return function(t){Xt()===e&&ky({category:`sentry.${t.type===`transaction`?`transaction`:`event`}`,event_id:t.event_id,level:t.level,message:$t(t)},{event:t})}}function Xx(e,t){return function(n){if(Xt()!==e)return;let r,i,a=typeof t==`object`?t.serializeAttribute:void 0,o=typeof t==`object`&&typeof t.maxStringLength==`number`?t.maxStringLength:void 0;o&&o>Kx&&(Nx&&Kn.warn(`\`dom.maxStringLength\` cannot exceed ${Kx}, but a value of ${o} was configured. Sentry will use ${Kx} instead.`),o=Kx),typeof a==`string`&&(a=[a]);try{let e=n.event,t=tS(e)?e.target:e;r=sx(t,{keyAttrs:a,maxStringLength:o}),i=Ob(t)}catch{r=`<unknown>`}if(r.length===0)return;let s={category:`ui.${n.name}`,message:r};i&&(s.data={"ui.component_name":i}),ky(s,{event:n.event,name:n.name,global:n.global})}}function Zx(e){return function(t){if(Xt()!==e)return;let n={category:`console`,data:{arguments:t.args,logger:`console`},level:rb(t.level),message:fn(t.args,` `)};if(t.level===`assert`){if(t.args[0]===!1)n.message=`Assertion failed: ${fn(t.args.slice(1),` `)||`console.assert`}`,n.data.arguments=t.args.slice(1);else return}ky(n,{input:t.args,level:t.level})}}function Qx(e){return function(t){if(Xt()!==e)return;let{startTimestamp:n,endTimestamp:r}=t,i=t.xhr[Ex];if(!n||!r||!i)return;let{method:a,url:o,status_code:s,body:c}=i,l={method:a,url:o,status_code:s},u={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:r},d={category:`xhr`,data:l,type:`http`,level:mb(s)};e.emit(`beforeOutgoingRequestBreadcrumb`,d,u),ky(d,u)}}function $x(e){return function(t){if(Xt()!==e)return;let{startTimestamp:n,endTimestamp:r}=t;
23if(r&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method===`POST`)){if(t.error){let i={data:t.error,input:t.args,startTimestamp:n,endTimestamp:r},a={category:`fetch`,data:t.fetchData,level:`error`,type:`http`};e.emit(`beforeOutgoingRequestBreadcrumb`,a,i),ky(a,i)}else{let i=t.response,a={...t.fetchData,status_code:i?.status},o={input:t.args,response:i,startTimestamp:n,endTimestamp:r},s={category:`fetch`,data:a,type:`http`,level:mb(a.status_code)};e.emit(`beforeOutgoingRequestBreadcrumb`,s,o),ky(s,o)}}}}function eS(e){return function(t){if(Xt()!==e)return;let n=t.from,r=t.to,i=wy(kb.location.href),a=n?wy(n):void 0,o=wy(r);a?.path||(a=i),i.protocol===o.protocol&&i.host===o.host&&(r=o.relative),i.protocol===a.protocol&&i.host===a.host&&(n=a.relative),ky({category:`navigation`,data:{from:n,to:r}})}}function tS(e){return!!e&&!!e.target}var nS=`EventTarget,Window,Node,ApplicationCache,AudioTrackList,BroadcastChannel,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload`.split(`,`),rS=`BrowserApiErrors`,iS=wv(((e={})=>{let t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:rS,setupOnce(){t.setTimeout&&$n(kb,`setTimeout`,aS),t.setInterval&&$n(kb,`setInterval`,aS),t.requestAnimationFrame&&$n(kb,`requestAnimationFrame`,oS),t.XMLHttpRequest&&`XMLHttpRequest`in kb&&$n(XMLHttpRequest.prototype,`send`,sS);let e=t.eventTarget;e&&(Array.isArray(e)?e:nS).forEach(e=>cS(e,t))}}}));function aS(e){return function(...t){let n=t[0];return t[0]=Nb(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${sr(e)}`}}),e.apply(this,t)}}function oS(e){return function(t){return e.apply(this,[Nb(t,{mechanism:{data:{handler:sr(e)},handled:!1,type:`auto.browser.browserapierrors.requestAnimationFrame`}})])}}function sS(e){return function(...t){let n=this;return[`onload`,`onerror`,`onprogress`,`onreadystatechange`].forEach(e=>{e in n&&typeof n[e]==`function`&&$n(n,e,function(t){let n={mechanism:{data:{handler:sr(t)},handled:!1,type:`auto.browser.browserapierrors.xhr.${e}`}},r=rn(t);return r&&(n.mechanism.data.handler=sr(r)),Nb(t,n)})}),e.apply(this,t)}}function cS(e,t){let n=kb[e]?.prototype;n?.hasOwnProperty?.(`addEventListener`)&&($n(n,`addEventListener`,function(n){return function(r,i,a){try{lS(i)&&(i.handleEvent=Nb(i.handleEvent,{mechanism:{data:{handler:sr(i),target:e},handled:!1,type:`auto.browser.browserapierrors.handleEvent`}}))}catch{}return t.unregisterOriginalCallbacks&&uS(this,r,i),n.apply(this,[r,Nb(i,{mechanism:{data:{handler:sr(i),target:e},handled:!1,type:`auto.browser.browserapierrors.addEventListener`}}),a])}}),$n(n,`removeEventListener`,function(e){return function(t,n,r){try{if(Object.prototype.hasOwnProperty.call(n,`__sentry_wrapped__`)){let i=n.__sentry_wrapped__;i&&e.call(this,t,i,r)}}catch{}return e.call(this,t,n,r)}}))}function lS(e){return typeof e.handleEvent==`function`}function uS(e,t,n){e&&typeof e==`object`&&`removeEventListener`in e&&typeof e.removeEventListener==`function`&&e.removeEventListener(t,n)}var dS=wv((e={})=>{let t=e.lifecycle??`route`;return{name:`BrowserSession`,setupOnce(){if(kb.document===void 0){Nx&&Kn.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}On({ignoreDuration:!0});let e=!1;Iee(()=>{e||=(zn(),!0)});let n=hn(),r=n.getUser();n.addScopeListener(t=>{let n=t.getUser();(r?.id!==n?.id||r?.ip_address!==n?.ip_address)&&(r=n,e&&zn())}),t===`route`&&bx(({from:t,to:n})=>{t!==n&&(On({ignoreDuration:!0}),zn(),e=!0)})}}}),fS=`CultureContext`,pS=wv((()=>({name:fS,preprocessEvent(e){let t=mS();t&&(e.contexts={...e.contexts,culture:{...t,...e.contexts?.culture}})},processSegmentSpan(e){let t=mS();t&&fv(e,{"culture.locale":t.locale,"culture.timezone":t.timezone,"culture.calendar":t.calendar})}})));function mS(){try{let e=kb.Intl;if(!e)return;let t=e.DateTimeFormat().resolvedOptions();return{locale:t.locale,timezone:t.timeZone,calendar:t.calendar}}catch{return}}var hS=`GlobalHandlers`,gS=wv(((e={})=>{let t={onerror:!0,onunhandledrejection:!0,...e};return{name:hS,setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(_S(e),SS(`onerror`)),t.onunhandledrejection&&(vS(e),SS(`onunhandledrejection`))}}}));function _S(e){W_(t=>{let{stackParser:n,attachStacktrace:r}=CS();if(Xt()!==e||jb())return;let{msg:i,url:a,line:o,column:s,error:c}=t,l=xS(qb(n,c||i,void 0,r,!1),a,o,s);l.level=`error`,ir(l,{originalException:c,mechanism:{handled:!1,type:`auto.browser.global_handlers.onerror`}})})}function vS(e){Tee(t=>{let{stackParser:n,attachStacktrace:r}=CS();if(Xt()!==e||jb())return;let i=yS(t),a=Bn(i)?bS(i):qb(n,i,void 0,r,!0);
23a.level=`error`,ir(a,{originalException:i,mechanism:{handled:!1,type:`auto.browser.global_handlers.onunhandledrejection`}})})}function yS(e){if(Bn(e))return e;try{if(`reason`in e)return e.reason;if(`detail`in e&&`reason`in e.detail)return e.detail.reason}catch{}return e}function bS(e){return{exception:{values:[{type:`UnhandledRejection`,value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function xS(e,t,n,r){let i=e.exception=e.exception||{},a=i.values=i.values||[],o=a[0]=a[0]||{},s=o.stacktrace=o.stacktrace||{},c=s.frames=s.frames||[];return c.length===0&&c.push({colno:r,lineno:n,filename:wS(t)??Db(),function:`?`,in_app:!0}),e}function SS(e){Nx&&Kn.log(`Global Handler attached: ${e}`)}function CS(){return Xt()?.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}function wS(e){if(Xn(e)&&e.length!==0)return e.startsWith(`data:`)?`<${Ty(e,!1)}>`:e}var TS=wv(()=>({name:`HttpContext`,preprocessEvent(e){if(!kb.navigator&&!kb.location&&!kb.document)return;let t=Pb(),n={...t.headers,...e.request?.headers};e.request={...t,...e.request,headers:n}},processSegmentSpan(e){let t=e.attributes?.[pn];if(!kb.navigator&&!kb.location&&!kb.document)return;let n=Pb();fv(e,{[dv]:t===`http.client`?void 0:n.url,"http.request.header.user_agent":n.headers[`User-Agent`],"http.request.header.referer":n.headers.Referer})}})),ES=`cause`,DS=5,OS=`LinkedErrors`,kS=wv(((e={})=>{let t=e.limit||DS,n=e.key||ES;return{name:OS,preprocessEvent(e,r,i){Ky(Fb,i.getOptions().stackParser,n,t,e,r)}}})),AS=/^HTML(\w*)Element$/;function jS(e){if(typeof window<`u`&&e===window)return`[Window]`;if(typeof document<`u`&&e===document)return`[Document]`;if(Ax(e)){let t=MS(e);if(AS.test(t))return`[HTMLElement: ${sx(e)}]`}}function MS(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:`null prototype`}function NS(){return PS()?(Nx&&Qn(()=>{console.error(`[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/`)}),!0):!1}function PS(){if(kb.window===void 0)return!1;let e=kb;if(e.nw||!(e.chrome||e.browser)?.runtime?.id)return!1;let t=Db();return!(kb===kb.top&&/^(?:chrome-extension|moz-extension|ms-browser-extension|safari-web-extension):\/\//.test(t))}function FS(e){return[Iy(),My(),pb(),iS(),Jx(),gS(),kS(),ab(),TS(),pS(),dS()]}function IS(e={}){let t=!e.skipBrowserExtensionCheck&&NS(),n=e.defaultIntegrations==null?FS():e.defaultIntegrations,r={...e,enabled:!t&&e.enabled,stackParser:jn(e.stackParser||Wx),integrations:bv({integrations:e.integrations,defaultIntegrations:n}),transport:e.transport||Mx};return tn(jS),Sy(Qb,r)}var LS=`02a95c57e91a`,RS=`production`,zS=`8cada333a37d47d6202c119e56d2497560f13100`,BS=`8cada33`,VS=`1.3.49`,HS=`chessbook-web@8cada333a37d47d6202c119e56d2497560f13100`,US=Ze.getPlatform(),WS=US===`web`?`web`:`${US}-native`,GS=US===`web`?null:LS;async function KS(){let{data:e}=await QS.get(`/api/user`);return e}function qS(){return ie(()=>{let e={"x-chessbook-platform":WS,"x-chessbook-app-version":VS,"x-chessbook-release":HS,"x-chessbook-dist":`web`},{token:t,tempUserUuid:n}=q().userState,{spoofedEmail:r}=q().adminState,i=r.value,a=t.value,o=n.value;return i&&(e[`spoof-user-email`]=i,e[`spoof-key`]=void 0),a?e.Authorization=a:o&&(e[`temp-user-uuid`]=o),e})}var JS,YS;if(typeof window<`u`&&Kt(YS)&&(YS=window.location.origin),Ye){let e=`https://chessbook.com`;JS=e,YS=e}JS===void 0&&typeof window<`u`&&(JS=window.location.origin);var XS=JS,ZS=YS,QS=L_(n_.create({baseURL:XS}),{preservedKeys:e=>/^\d/.test(e),caseFunctions:{camel:e=>e},caseMiddleware:{responseTransformer:e=>e}}),$S=e=>{if(!e||!e.startsWith(`http`))return!0;let t=globalThis.location?.origin??`http://localhost`,n=new URL(XS||t,t).origin;return new URL(e).origin===n};QS.interceptors.request.use(e=>($S(e.url)&&Object.assign(e.headers,qS()),e)),QS.interceptors.response.use(e=>e,e=>($S(e?.config?.url)&&(e?.response?.status===401?Z(e=>{e.userState.logout(),window.location.href=`${window.location.origin}/login`}):i(e)),Promise.reject(e)));function eC(e){return{quick:t=>e(e=>t(e))}}var tC=Re(`Preferences`,{web:()=>ve(()=>import(`./web-BDK_TeJ7.js`).then(e=>new e.PreferencesWeb),__vite__mapDeps([3,4,1,2,5]),import.meta.url)}),nC=class{key;#e;#t;#n;#r;#i;#a;constructor(e,t){this.key=e,this.#e=t;let[n,r]=o(t),[i,a]=o(!1);this.#t=n,this.#n=r,this.#r=i,this.#i=a,this.#a=null,Object.freeze(this),this.load()}async load(){return typeof window>`u`?(this.#i(!0),this.#e):(this.#a||=tC.get({key:this.key}).then(({value:e})=>{let t=e?JSON.parse(e):void 0;return t!==void 0&&(this.#e=t,this.#n(()=>t)),this.#i(!0),this.#a=null,this.#e}),this.#a)}save(e){arguments.length===0&&(e=this.#e),e===void 0?tC.remove({key:this.key}):tC.set({key:this.key,value:JSON.stringify(e)})}get value(){if(this.#r())return this.#e}async valueAsync(){return this.#r()?this.#t():this.load()}set value(e){this.#i(!0),this.#e=e,this.#n(()=>e),this.save(e)}},rC=e=>[e.adminState,e],iC=(e,t)=>{let n=(t,n)=>e(e=>t(rC(e))),r=(t,n)=>e(e=>t(e.adminState)),i=(e,n)=>t(t=>e(rC(t)));return{...eC(r),moveAnnotationReviewQueue:null,spoofedEmail:new nC(`spoofed-email`,void 0),fetchMoveAnnotationReviewQueue:()=>n(([e])=>{QS.get(`/api/v1/admin/move-annotation-review-queue`).then(({data:e})=>{n(([t])=>{t.moveAnnotationReviewQueue=qa(e.map(e=>e.annotations.map(t=>({epd:e.epd,san:e.san,userId:t.userId,userEmail:t.userEmail,text:t.text}))))})})}),spoofUser:e=>{n(([t,n])=>{t.spoofedEmail.value=e,e||n.userState.logout()})},editMoveAnnotation:({epd:e,san:t,userId:r,text:a})=>
23i(([i,o])=>{QS.post(`/api/v1/admin/edit-move-annotation`,{text:a,epd:e,userId:r,san:t}).then(({data:i})=>{n(([n,i])=>{n.moveAnnotationReviewQueue.forEach(n=>{n.annotations.forEach(o=>{n.epd===e&&n.san===t&&(o.userId===r||o.userId===i.userState.user?.id)&&(o.text=a,o.userId=i.userState.user?.id)})})})})}),fetchMoveAnnotationDashboard:()=>n(([e])=>{QS.get(`/api/v1/admin/move-annotations`).then(({data:e})=>{n(([t])=>{t.moveAnnotationsDashboard=e})})}),acceptMoveAnnotation:(e,t,r)=>n(([n])=>QS.post(`/api/v1/admin/accept-move-annotation`,{epd:e,san:t,text:r}).then(()=>{})),becomeAdmin:e=>i(([t,r])=>{r.userState.tempUserUuid.load().then(()=>{r.userState.tempUserUuid.value||(r.userState.tempUserUuid.value=gp()),QS.post(`/api/v1/admin/submit-password`,{password:e}).then(()=>{n(([e,t])=>{t.userState.user.isAdmin=!0})})})}),rejectMoveAnnotations:(e,t)=>n(([n])=>{QS.post(`/api/v1/admin/reject-move-annotations`,{epd:e,san:t}).then(()=>{})})}},aC=[`white`,`black`],oC;(function(e){e.toColor=e=>e===`white`?`w`:`b`,e.flip=e=>e===`white`?`black`:`white`,e.fromColor=e=>e===`w`?`white`:`black`})(oC||={});var sC;(function(e){let t=new WeakMap,n=e=>{if(!e.dueAt)return null;let n=t.get(e);if(n?.dueAt===e.dueAt)return n.date;let r=new Date(e.dueAt);return t.set(e,{dueAt:e.dueAt,date:r}),r};e.isReviewDue=(e,t)=>{if(!e)return!1;let r=t??new Date,i=n(e),a=!1;return(i&&lC(i,r)||e.firstReview||!e.dueAt)&&(a=!0),a},e.isDifficult=e=>e?.difficulty?e.difficulty>.6:!1,e.isVeryDifficult=e=>e?.difficulty?e.difficulty>.9:!1,e.toMasteryPercentage=e=>{if(!e)return null;let t=e.interval;return jo(Math.log(jo(t,0,100)+1)*(1/Math.log(101)),0,1)}})(sC||={});var cC;(function(e){e.fromInterval=e=>e<=1?`new`:e<=15?`learning`:e<100?`solid`:`mastered`})(cC||={});function lC(e,t){return t.getFullYear()===e.getFullYear()?t.getMonth()===e.getMonth()?t.getDate()>=e.getDate():t.getMonth()>e.getMonth():t.getFullYear()>e.getFullYear()}var uC;(function(e){function t(e){return e?e.draw+e.black+e.white:null}e.getTotalGames=t;function n(e,t){return e[t]/uC.getTotalGames(e)}e.getWinRate=n;function r(e,t){return(e[t]+e.draw/2)/uC.getTotalGames(e)}e.getDrawAdjustedWinRate=r;function i(e,t){let n=e[t],r=uC.getTotalGames(e),{left:i,right:o}=a(n,r);return[i,o,Math.abs(i-o)]}e.getWinRateRange=i;let a=e.wilson=(e,t)=>{if(t===0)return{left:0,right:0};let n=e/t,r=1.96,i=n+r*r/(2*t),a=r*Math.sqrt((n*(1-n)+r*r/(4*t))/t),o=1+r*r/t;return{left:(i-a)/o,right:(i+a)/o}};e.getPlayRate=(e,t)=>{let n=uC.getTotalGames(e),r=uC.getTotalGames(t);return Kt(n)||Kt(r)||n===0?null:r/n}})(uC||={});var dC=function(e){return e.Good=`good`,e.Inaccuracy=`inaccuracy`,e.Mistake=`mistake`,e.Blunder=`blunder`,e}({});(function(e){e.toFeedback=e=>{switch(e){case`good`:return`correct`;case`inaccuracy`:return`inaccuracy`;case`mistake`:return`mistake`;case`blunder`:return`blunder`}}})(dC||={});var fC=function(e){return e[e.RareDangerous=0]=`RareDangerous`,e[e.CommonMistake=1]=`CommonMistake`,e[e.BestMove=3]=`BestMove`,e[e.Transposes=4]=`Transposes`,e[e.Disabled=5]=`Disabled`,e[e.Sharpest=6]=`Sharpest`,e[e.HiddenGem=7]=`HiddenGem`,e}({}),pC;(function(e){e.getPlayRate=(e,t,n)=>{let r=n?`masterResults`:`results`,i=uC.getTotalGames(t[r]),a=uC.getTotalGames(e[r]);return Kt(i)||Kt(a)||i===0?null:a/i},e.getGameResultsPlayRate=(e,t,n)=>{let r=n?`masterResults`:`results`,i=uC.getTotalGames(t[r]),a=uC.getTotalGames(e[r]);return Kt(i)||Kt(a)||i===0?null:a/i}})(pC||={});var mC=.05,hC=.01,gC=200,_C=(e,t,n)=>{let r=[];e.forEach((i,a)=>{if(!i.suggestedMove)return;let o={tr:i,sanPlus:i.suggestedMove.sanPlus,peerPlayRate:null,gamesPlayed:null,winRate:null,winRateLower:null,winRateBestFrequentAlternativeLower:null,moveRatingAllowed:i.moveRating===void 0||i.moveRating===dC.Good,rareEnough:!1,enoughGames:!1,betterThanFrequentMoves:!1,highEnoughWinRate:!1,qualifies:!1,selected:!1};if(!t){r.push(o);return}if(!o.moveRatingAllowed){r.push(o);return}let s=pC.getPlayRate(i.suggestedMove,t,!1),c=uC.getTotalGames(i.suggestedMove.results);if(s==null||c==null){r.push({...o,gamesPlayed:c,peerPlayRate:s});return}let l=uC.getWinRateRange(i.suggestedMove.results,n)[0],u=uC.getWinRate(i.suggestedMove.results,n),d=Fu(mu(e,(e,r)=>{if(a===r||!e.suggestedMove)return null;let i=pC.getPlayRate(e.suggestedMove,t,!1);return i==null||i<=hC?null:uC.getWinRateRange(e.suggestedMove.results,n)[0]}))??null,f={...o,gamesPlayed:c,peerPlayRate:s,winRate:u,winRateBestFrequentAlternativeLower:d,winRateLower:l,rareEnough:s<mC,enoughGames:c>gC,betterThanFrequentMoves:d!=null&&l>d,highEnoughWinRate:u>(n===`white`?.48:.45)};
23r.push({...f,qualifies:f.rareEnough&&f.enoughGames&&f.betterThanFrequentMoves&&f.highEnoughWinRate})});let i=Iu(r.filter(e=>e.qualifies),e=>e.winRateLower??-1/0);return i&&(i.selected=!0),r},vC=`bottom`,yC=`right`,bC=`left`,xC=`auto`,SC=[`top`,vC,yC,bC],CC=`start`,wC=`clippingParents`,TC=`viewport`,EC=`popper`,DC=`reference`,OC=SC.reduce(function(e,t){return e.concat([t+`-`+CC,t+`-end`])},[]),kC=[].concat(SC,[xC]).reduce(function(e,t){return e.concat([t,t+`-`+CC,t+`-end`])},[]),AC=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function jC(e){return e?(e.nodeName||``).toLowerCase():null}function MC(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function NC(e){return e instanceof MC(e).Element||e instanceof Element}function PC(e){return e instanceof MC(e).HTMLElement||e instanceof HTMLElement}function FC(e){return typeof ShadowRoot>`u`?!1:e instanceof MC(e).ShadowRoot||e instanceof ShadowRoot}function IC(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];PC(i)&&jC(i)&&(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function LC(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});
vendor: 9,295 bytes, line 23
23PC(r)&&jC(r)&&(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var RC={name:`applyStyles`,enabled:!0,phase:`write`,fn:IC,effect:LC,requires:[`computeStyles`]};function zC(e){return e.split(`-`)[0]}var BC=Math.max,VC=Math.min,HC=Math.round;function UC(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function WC(){return!/^((?!chrome|android).)*safari/i.test(UC())}function GC(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&PC(e)&&(i=e.offsetWidth>0&&HC(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&HC(r.height)/e.offsetHeight||1);var o=(NC(e)?MC(e):window).visualViewport,s=!WC()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function KC(e){var t=GC(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function qC(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&FC(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function JC(e){return MC(e).getComputedStyle(e)}function YC(e){return[`table`,`td`,`th`].indexOf(jC(e))>=0}function XC(e){return((NC(e)?e.ownerDocument:e.document)||window.document).documentElement}function ZC(e){return jC(e)===`html`?e:e.assignedSlot||e.parentNode||(FC(e)?e.host:null)||XC(e)}function QC(e){return!PC(e)||JC(e).position===`fixed`?null:e.offsetParent}function $C(e){var t=/firefox/i.test(UC());if(/Trident/i.test(UC())&&PC(e)&&JC(e).position===`fixed`)return null;var n=ZC(e);for(FC(n)&&(n=n.host);PC(n)&&[`html`,`body`].indexOf(jC(n))<0;){var r=JC(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function ew(e){for(var t=MC(e),n=QC(e);n&&YC(n)&&JC(n).position===`static`;)n=QC(n);return n&&(jC(n)===`html`||jC(n)===`body`&&JC(n).position===`static`)?t:n||$C(e)||t}function tw(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function nw(e,t,n){return BC(e,VC(t,n))}function rw(e,t,n){var r=nw(e,t,n);return r>n?n:r}function iw(){return{top:0,right:0,bottom:0,left:0}}function aw(e){return Object.assign({},iw(),e)}function ow(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var sw=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,aw(typeof e==`number`?ow(e,SC):e)};function cw(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=zC(n.placement),c=tw(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(a&&o){var u=sw(i.padding,n),d=KC(a),f=c===`y`?`top`:bC,p=c===`y`?vC:yC,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=ew(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=nw(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function lw(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||qC(t.elements.popper,r)&&(t.elements.arrow=r))}var uw={name:`arrow`,enabled:!0,phase:`main`,fn:cw,effect:lw,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function dw(e){return e.split(`-`)[1]}var fw={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function pw(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:HC(n*i)/i||0,y:HC(r*i)/i||0}}function mw(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=bC,b=`top`,x=window;if(l){var S=ew(n),C=`clientHeight`,w=`clientWidth`;if(S===MC(n)&&(S=XC(n),JC(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=vC;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=yC;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&fw),ee=u===!0?pw({x:p,y:h},MC(n)):{x:p,y:h};if(p=ee.x,h=ee.y,c){var te;return Object.assign({},D,(te={},te[b]=v?`0`:``,te[y]=_?`0`:``,te.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,te))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function hw(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:zC(t.placement),variation:dw(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,mw(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,mw(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var gw={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:hw,data:{}},_w={passive:!0};function vw(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=MC(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,_w)}),s&&c.addEventListener(`resize`,n.update,_w),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,_w)}),s&&c.removeEventListener(`resize`,n.update,_w)}}var yw={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:vw,data:{}},bw={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function xw(e){return e.replace(/left|right|bottom|top/g,function(e){return bw[e]})}var Sw={start:`end`,end:`start`};function Cw(e){return e.replace(/start|end/g,function(e){return Sw[e]})}function ww(e){var t=MC(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Tw(e){return GC(XC(e)).left+ww(e).scrollLeft}function Ew(e,t){var n=MC(e),r=XC(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=WC();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+Tw(e),y:c}}function Dw(e){var t=XC(e),n=ww(e),r=e.ownerDocument?.body,i=BC(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=BC(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+Tw(e),s=-n.scrollTop;return JC(r||t).direction===`rtl`&&(o+=BC(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function Ow(e){var t=JC(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function kw(e){return[`html`,`body`,`#document`].indexOf(jC(e))>=0?e.ownerDocument.body:PC(e)&&Ow(e)?e:kw(ZC(e))}function Aw(e,t){t===void 0&&(t=[]);var n=kw(e),r=n===e.ownerDocument?.body,i=MC(n),a=r?[i].concat(i.visualViewport||[],Ow(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Aw(ZC(a)))}function jw(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Mw(e,t){var n=GC(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Nw(e,t,n){return t===`viewport`?jw(Ew(e,n)):NC(t)?Mw(t,n):jw(Dw(XC(e)))}function Pw(e){var t=Aw(ZC(e)),n=[`absolute`,`fixed`].indexOf(JC(e).position)>=0&&PC(e)?ew(e):e;return NC(n)?t.filter(function(e){return NC(e)&&qC(e,n)&&jC(e)!==`body`}):[]}function Fw(e,t,n,r){var i=t===`clippingParents`?Pw(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=Nw(e,n,r);return t.top=BC(i.top,t.top),t.right=VC(i.right,t.right),t.bottom=VC(i.bottom,t.bottom),t.left=BC(i.left,t.left),t},Nw(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Iw(e){var t=e.reference,n=e.element,r=e.placement,i=r?zC(r):null,a=r?dw(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case vC:c={x:o,y:t.y+t.height};break;case yC:c={x:t.x+t.width,y:s};break;case bC:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?tw(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case CC:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2)}}return c}function Lw(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?wC:s,l=n.rootBoundary,u=l===void 0?TC:l,d=n.elementContext,f
vendor: 4,298 bytes, line 23
23=d===void 0?EC:d,p=n.altBoundary,m=p!==void 0&&p,h=n.padding,g=h===void 0?0:h,_=aw(typeof g==`number`?ow(g,SC):g),v=f===`popper`?DC:EC,y=e.rects.popper,b=e.elements[m?v:f],x=Fw(NC(b)?b:b.contextElement||XC(e.elements.popper),c,u,o),S=GC(e.elements.reference),C=Iw({reference:S,element:y,strategy:`absolute`,placement:i}),w=jw(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var ee=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=ee[n]*t})}return E}function Rw(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?kC:c,u=dw(r),d=u?s?OC:OC.filter(function(e){return dw(e)===u}):SC,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=Lw(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[zC(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function zw(e){if(zC(e)===`auto`)return[];var t=xw(e);return[Cw(e),t,Cw(t)]}function Bw(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o===void 0||o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0||p,h=n.allowedAutoPlacements,g=t.options.placement,_=zC(g)===g,v=c||(_||!m?[xw(g)]:zw(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(zC(n)===`auto`?Rw(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=zC(E),ee=dw(E)===CC,te=[`top`,vC].indexOf(D)>=0,O=te?`width`:`height`,k=Lw(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),A=te?ee?yC:bC:ee?vC:`top`;b[O]>x[O]&&(A=xw(A));var ne=xw(A),re=[];if(a&&re.push(k[D]<=0),s&&re.push(k[A]<=0,k[ne]<=0),re.every(function(e){return e})){w=E,C=!1;break}S.set(E,re)}if(C)for(var ie=m?3:1,ae=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},oe=ie;oe>0&&ae(oe)!==`break`;oe--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var Vw={name:`flip`,enabled:!0,phase:`main`,fn:Bw,requiresIfExists:[`offset`],data:{_skip:!1}};function Hw(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Uw(e){return[`top`,yC,vC,bC].some(function(t){return e[t]>=0})}function Ww(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Lw(t,{elementContext:`reference`}),s=Lw(t,{altBoundary:!0}),c=Hw(o,r),l=Hw(s,i,a),u=Uw(c),d=Uw(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var Gw={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:Ww};function Kw(e,t,n){var r=zC(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function qw(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=kC.reduce(function(e,n){return e[n]=Kw(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var Jw={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:qw};function Yw(e){var t=e.state,n=e.name;t.modifiersData[n]=Iw({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var Xw={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Yw,data:{}};function Zw(e){return e===`x`?`y`:`x`}function Qw(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o!==void 0&&o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f
vendor: 4,462 bytes, line 23
23=n.tether,p=f===void 0||f,m=n.tetherOffset,h=m===void 0?0:m,g=Lw(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=zC(t.placement),v=dw(t.placement),y=!v,b=tw(_),x=Zw(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,ee={x:0,y:0};if(S){if(a){var te=b===`y`?`top`:bC,O=b===`y`?vC:yC,k=b===`y`?`height`:`width`,A=S[b],ne=A+g[te],re=A-g[O],ie=p?-w[k]/2:0,ae=v===`start`?C[k]:w[k],oe=v===`start`?-w[k]:-C[k],se=t.elements.arrow,j=p&&se?KC(se):{width:0,height:0},ce=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:iw(),M=ce[te],N=ce[O],le=nw(0,C[k],j[k]),P=y?C[k]/2-ie-le-M-E.mainAxis:ae-le-M-E.mainAxis,ue=y?-C[k]/2+ie+le+N+E.mainAxis:oe+le+N+E.mainAxis,de=t.elements.arrow&&ew(t.elements.arrow),fe=de?b===`y`?de.clientTop||0:de.clientLeft||0:0,F=D?.[b]??0,pe=A+P-F-fe,me=A+ue-F,I=nw(p?VC(ne,pe):ne,A,p?BC(re,me):re);S[b]=I,ee[b]=I-A}if(s){var he=b===`x`?`top`:bC,ge=b===`x`?vC:yC,_e=S[x],ve=x===`y`?`height`:`width`,ye=_e+g[he],be=_e-g[ge],xe=[`top`,bC].indexOf(_)!==-1,Se=D?.[x]??0,Ce=xe?ye:_e-C[ve]-w[ve]-Se+E.altAxis,we=xe?_e+C[ve]+w[ve]-Se-E.altAxis:be,Te=p&&xe?rw(Ce,_e,we):nw(p?Ce:ye,_e,p?we:be);S[x]=Te,ee[x]=Te-_e}t.modifiersData[r]=ee}}var $w={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Qw,requiresIfExists:[`offset`]};function eT(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function tT(e){return e===MC(e)||!PC(e)?ww(e):eT(e)}function nT(e){var t=e.getBoundingClientRect(),n=HC(t.width)/e.offsetWidth||1,r=HC(t.height)/e.offsetHeight||1;return n!==1||r!==1}function rT(e,t,n){n===void 0&&(n=!1);var r=PC(t),i=PC(t)&&nT(t),a=XC(t),o=GC(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((jC(t)!==`body`||Ow(a))&&(s=tT(t)),PC(t)?(c=GC(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=Tw(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function iT(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function aT(e){var t=iT(e);return AC.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function oT(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function sT(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var cT={placement:`bottom`,modifiers:[],strategy:`absolute`};function lT(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function uT(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?cT:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},cT,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:NC(e)?Aw(e):e.contextElement?Aw(e.contextElement):[],popper:Aw(t)};var s=aT(sT([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(lT(t,n)){i.rects={reference:rT(t,ew(n),i.options.strategy===`fixed`),popper:KC(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:oT(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!lT(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});
vendor: 12,194 bytes, line 23
23function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var dT=uT({defaultModifiers:[yw,Xw,gw,RC,Jw,Vw,$w,uw,Gw]}),fT=`tippy-box`,pT=`tippy-content`,mT=`tippy-backdrop`,hT=`tippy-arrow`,gT=`tippy-svg-arrow`,_T={passive:!0,capture:!0},vT=function(){return document.body};function yT(e,t,n){return Array.isArray(e)?e[t]??(Array.isArray(n)?n[t]:n):e}function bT(e,t){var n={}.toString.call(e);return n.indexOf(`[object`)===0&&n.indexOf(t+`]`)>-1}function xT(e,t){return typeof e==`function`?e.apply(void 0,t):e}function ST(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function CT(e){return e.split(/\s+/).filter(Boolean)}function wT(e){return[].concat(e)}function TT(e,t){e.indexOf(t)===-1&&e.push(t)}function ET(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function DT(e){return e.split(`-`)[0]}function OT(e){return[].slice.call(e)}function kT(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function AT(){return document.createElement(`div`)}function jT(e){return[`Element`,`Fragment`].some(function(t){return bT(e,t)})}function MT(e){return bT(e,`NodeList`)}function NT(e){return bT(e,`MouseEvent`)}function PT(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function FT(e){return jT(e)?[e]:MT(e)?OT(e):Array.isArray(e)?e:OT(document.querySelectorAll(e))}function IT(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+`ms`)})}function LT(e,t){e.forEach(function(e){e&&e.setAttribute(`data-state`,t)})}function RT(e){var t,n=wT(e)[0];return n!=null&&(t=n.ownerDocument)!=null&&t.body?n.ownerDocument:document}function zT(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,o=DT(i.placement),s=i.modifiersData.offset;if(!s)return!0;var c=o===`bottom`?s.top.y:0,l=o===`top`?s.bottom.y:0,u=o===`right`?s.left.x:0,d=o===`left`?s.right.x:0,f=t.top-r+c>a,p=r-t.bottom-l>a,m=t.left-n+u>a,h=n-t.right-d>a;return f||p||m||h})}function BT(e,t,n){var r=t+`EventListener`;[`transitionend`,`webkitTransitionEnd`].forEach(function(t){e[r](t,n)})}function VT(e,t){for(var n=t;n;){if(e.contains(n))return!0;n=n.getRootNode==null?void 0:n.getRootNode()?.host}return!1}var HT={isTouch:!1},UT=0;function WT(){HT.isTouch||(HT.isTouch=!0,window.performance&&document.addEventListener(`mousemove`,GT))}function GT(){var e=performance.now();e-UT<20&&(HT.isTouch=!1,document.removeEventListener(`mousemove`,GT)),UT=e}function KT(){var e=document.activeElement;if(PT(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function qT(){document.addEventListener(`touchstart`,WT,_T),window.addEventListener(`blur`,KT)}var JT=typeof window<`u`&&typeof document<`u`&&!!window.msCrypto,YT=Object.assign({appendTo:vT,aria:{content:`auto`,expanded:`auto`},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:``,offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:`top`,plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:`mouseenter focus`,triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:`fade`,arrow:!0,content:``,inertia:!1,maxWidth:350,role:`tooltip`,theme:``,zIndex:9999}),XT=Object.keys(YT),ZT=function(e){Object.keys(e).forEach(function(t){YT[t]=e[t]})};function QT(e){var t=(e.plugins||[]).reduce(function(t,n){var r=n.name,i=n.defaultValue;return r&&(t[r]=e[r]===void 0?YT[r]??i:e[r]),t},{});return Object.assign({},e,t)}function $T(e,t){return(t?Object.keys(QT(Object.assign({},YT,{plugins:t}))):XT).reduce(function(t,n){var r=(e.getAttribute(`data-tippy-`+n)||``).trim();if(!r)return t;if(n===`content`)t[n]=r;else try{t[n]=JSON.parse(r)}catch{t[n]=r}return t},{})}function eE(e,t){var n=Object.assign({},t,{content:xT(t.content,[e])},t.ignoreAttributes?{}:$T(e,t.plugins));return n.aria=Object.assign({},YT.aria,n.aria),n.aria={expanded:n.aria.expanded===`auto`?t.interactive:n.aria.expanded,content:n.aria.content===`auto`?t.interactive?null:`describedby`:n.aria.content},n}var tE=function(){return`innerHTML`};function nE(e,t){e[tE()]=t}function rE(e){var t=AT();return e===!0?t.className=hT:(t.className=gT,jT(e)?t.appendChild(e):nE(t,e)),t}function iE(e,t){jT(t.content)?(nE(e,``),e.appendChild(t.content)):typeof t.content!=`function`&&(t.allowHTML?nE(e,t.content):e.textContent=t.content)}function aE(e){var t=e.firstElementChild,n=OT(t.children);return{box:t,content:n.find(function(e){return e.classList.contains(pT)}),arrow:n.find(function(e){return e.classList.contains(hT)||e.classList.contains(gT)}),backdrop:n.find(function(e){return e.classList.contains(mT)})}}function oE(e){var t=AT(),n=AT();n.className=fT,n.setAttribute(`data-state`,`hidden`),n.setAttribute(`tabindex`,`-1`);var r=AT();r.className=pT,r.setAttribute(`data-state`,`hidden`),iE(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(n,r){var i=aE(t),a=i.box,o=i.content,s=i.arrow;r.theme?a.setAttribute(`data-theme`,r.theme):a.removeAttribute(`data-theme`),typeof r.animation==`string`?a.setAttribute(`data-animation`,r.animation):a.removeAttribute(`data-animation`),r.inertia?a.setAttribute(`data-inertia`,``):a.removeAttribute(`data-inertia`),a.style.maxWidth=typeof r.maxWidth==`number`?r.maxWidth+`px`:r.maxWidth,r.role?a.setAttribute(`role`,r.role):a.removeAttribute(`role`),(n.content!==r.content||n.allowHTML!==r.allowHTML)&&iE(o,e.props),r.arrow?s?n.arrow!==r.arrow&&(a.removeChild(s),a.appendChild(rE(r.arrow))):a.appendChild(rE(r.arrow)):s&&a.removeChild(s)}return{popper:t,onUpdate:i}}oE.$$tippy=!0;var sE=1,cE=[],lE=[];function uE(e,t){var n=eE(e,Object.assign({},YT,QT(kT(t)))),r,i,a,o=!1,s=!1,c=!1,l=!1,u,d,f,p=[],m=ST(pe,n.interactiveDebounce),h,g=sE++,_=null,v=ET(n.plugins),y={id:g,reference:e,popper:AT(),popperInstance:_,props:n,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:v,clearDelayTimeouts:we,setProps:Te,setContent:Ee,show:De,hide:Oe,hideWithInteractivity:ke,enable:Se,disable:Ce,unmount:Ae,destroy:je};if(!n.render)return y;var b=n.render(y),x=b.popper,S=b.onUpdate;x.setAttribute(`data-tippy-root`,``),x.id=`tippy-`+y.id,y.popper=x,e._tippy=y,x._tippy=y;var C=v.map(function(e){return e.fn(y)}),w=e.hasAttribute(`aria-expanded`);return de(),ie(),A(),ne(`onCreate`,[y]),n.showOnCreate&&be(),x.addEventListener(`mouseenter`,function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()}),x.addEventListener(`mouseleave`,function(){y.props.interactive&&y.props.trigger.indexOf(`mouseenter`)>=0&&te().addEventListener(`mousemove`,m)}),y;function T(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function E(){return T()[0]===`hold`}function D(){var e;return!!((e=y.props.render)!=null&&e.$$tippy)}function ee(){return h||e}function te(){var e=ee().parentNode;return e?RT(e):document}function O(){return aE(x)}function k(e){return y.state.isMounted&&!y.state.isVisible||HT.isTouch||u&&u.type===`focus`?0:yT(y.props.delay,+!e,YT.delay)}function A(e){e===void 0&&(e=!1),x.style.pointerEvents=y.props.interactive&&!e?``:`none`,x.style.zIndex=``+y.props.zIndex}function ne(e,t,n){if(n===void 0&&(n=!0),C.forEach(function(n){n[e]&&n[e].apply(n,t)}),n){var r;(r=y.props)[e].apply(r,t)}}function re(){var t=y.props.aria;if(t.content){var n=`aria-`+t.content,r=x.id;wT(y.props.triggerTarget||e).forEach(function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+` `+r:r);else{var i=t&&t.replace(r,``).trim();i?e.setAttribute(n,i):e.removeAttribute(n)}})}}function ie(){!w&&y.props.aria.expanded&&wT(y.props.triggerTarget||e).forEach(function(e){y.props.interactive?e.setAttribute(`aria-expanded`,y.state.isVisible&&e===ee()?`true`:`false`):e.removeAttribute(`aria-expanded`)})}function ae(){te().removeEventListener(`mousemove`,m),cE=cE.filter(function(e){return e!==m})}function oe(t){if(!HT.isTouch||!c&&t.type!==`mousedown`){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!(y.props.interactive&&VT(x,n))){if(wT(y.props.triggerTarget||e).some(function(e){return VT(e,n)})){if(HT.isTouch||y.state.isVisible&&y.props.trigger.indexOf(`click`)>=0)return}else ne(`onClickOutside`,[y,t]);y.props.hideOnClick===!0&&(y.clearDelayTimeouts(),y.hide(),s=!0,setTimeout(function(){s=!1}),y.state.isMounted||M())}}}function se(){c=!0}function j(){c=!1}function ce(){var e=te();e.addEventListener(`mousedown`,oe,!0),e.addEventListener(`touchend`,oe,_T),e.addEventListener(`touchstart`,j,_T),e.addEventListener(`touchmove`,se,_T)}function M(){var e=te();e.removeEventListener(`mousedown`,oe,!0),e.removeEventListener(`touchend`,oe,_T),e.removeEventListener(`touchstart`,j,_T),e.removeEventListener(`touchmove`,se,_T)}function N(e,t){P(e,function(){!y.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&t()})}function le(e,t){P(e,t)}function P(e,t){var n=O().box;function r(e){e.target===n&&(BT(n,`remove`,r),t())}if(e===0)return t();BT(n,`remove`,d),BT(n,`add`,r),d=r}function ue(t,n,r){r===void 0&&(r=!1),wT(y.props.triggerTarget||e).forEach(function(e){e.addEventListener(t,n,r),p.push({node:e,eventType:t,handler:n,options:r})})}function de(){E()&&(ue(`touchstart`,F,{passive:!0}),ue(`touchend`,me,{passive:!0})),CT(y.props.trigger).forEach(function(e){if(e!==`manual`)switch(ue(e,F),e){case`mouseenter`:ue(`mouseleave`,me);break;case`focus`:ue(JT?`focusout`:`blur`,I);break;case`focusin`:ue(`focusout`,I)}})}function fe(){p.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),p=[]}function F(e){var t=!1;if(!(!y.state.isEnabled||he(e)||s)){var n=u?.type===`focus`;u=e,h=e.currentTarget,ie(),!y.state.isVisible&&NT(e)&&cE.forEach(function(t){return t(e)}),e.type===`click`&&(y.props.trigger.indexOf(`mouseenter`)<0||o)&&y.props.hideOnClick!==!1&&y.state.isVisible?t=!0:be(e),e.type===`click`&&(o=!t),t&&!n&&xe(e)}}function pe(e){var t=e.target,r=ee().contains(t)||x.contains(t);e.type===`mousemove`&&r||zT(ye().concat(x).map(function(e){var t=e._tippy.popperInstance?.state;return t?{popperRect:e.getBoundingClientRect(),popperState:t,props:n}:null}).filter(Boolean),e)&&(ae(),xe(e))}function me(e){if(!(he(e)||y.props.trigger.indexOf(`click`)>=0&&o)){if(y.props.interactive){y.hideWithInteractivity(e);return}xe(e)}}function I(e){y.props.trigger.indexOf(`focusin`)<0&&e.target!==ee()||y.props.interactive&&e.relatedTarget&&x.contains(e.relatedTarget)||xe(e)}function he(e){return HT.isTouch?E()!==e.type.indexOf(`touch`)>=0:!1}function ge(){_e();var t=y.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,o=t.moveTransition,s=D()?aE(x).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||ee()}:e,l=[{name:`offset`,options:{offset:i}},{name:`preventOverflow`,options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:`flip`,options:{padding:5}},{name:`computeStyles`,options:{adaptive:!o}},{name:`$$tippy`,enabled:!0,phase:`beforeWrite`,requires:[`computeStyles`],fn:function(e){var t=e.state;if(D()){var n=O().box;[`placement`,`reference-hidden`,`escaped`].forEach(function(e){e===`placement`?n.setAttribute(`data-placement`,t.placement):t.attributes.popper[`data-popper-`+e]?n.setAttribute(`data-`+e,``):n.removeAttribute(`data-`+e)}),t.attributes.popper={}}}}];D()&&s&&l.push({name:`arrow`,options:{element:s,padding:3}}),l.push.apply(l,n?.modifiers||[]),y.popperInstance=dT(c,x,Object.assign({},n,{placement:r,onFirstUpdate:f,modifiers:l}))}function _e(){y.popperInstance&&=(y.popperInstance.destroy(),null)}function ve(){var e=y.props.appendTo,t,n=ee();t=y.props.interactive&&e===vT||e===`parent`?n.parentNode:xT(e,[n]),t.contains(x)||t.appendChild(x),y.state.isMounted=!0,ge()}
23function ye(){return OT(x.querySelectorAll(`[data-tippy-root]`))}function be(e){y.clearDelayTimeouts(),e&&ne(`onTrigger`,[y,e]),ce();var t=k(!0),n=T(),i=n[0],a=n[1];HT.isTouch&&i===`hold`&&a&&(t=a),t?r=setTimeout(function(){y.show()},t):y.show()}function xe(e){if(y.clearDelayTimeouts(),ne(`onUntrigger`,[y,e]),!y.state.isVisible){M();return}if(!(y.props.trigger.indexOf(`mouseenter`)>=0&&y.props.trigger.indexOf(`click`)>=0&&[`mouseleave`,`mousemove`].indexOf(e.type)>=0&&o)){var t=k(!1);t?i=setTimeout(function(){y.state.isVisible&&y.hide()},t):a=requestAnimationFrame(function(){y.hide()})}}function Se(){y.state.isEnabled=!0}function Ce(){y.hide(),y.state.isEnabled=!1}function we(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(a)}function Te(t){if(!y.state.isDestroyed){ne(`onBeforeUpdate`,[y,t]),fe();var n=y.props,r=eE(e,Object.assign({},n,kT(t),{ignoreAttributes:!0}));y.props=r,de(),n.interactiveDebounce!==r.interactiveDebounce&&(ae(),m=ST(pe,r.interactiveDebounce)),n.triggerTarget&&!r.triggerTarget?wT(n.triggerTarget).forEach(function(e){e.removeAttribute(`aria-expanded`)}):r.triggerTarget&&e.removeAttribute(`aria-expanded`),ie(),A(),S&&S(n,r),y.popperInstance&&(ge(),ye().forEach(function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})),ne(`onAfterUpdate`,[y,t])}}function Ee(e){y.setProps({content:e})}function De(){var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=HT.isTouch&&!y.props.touch,i=yT(y.props.duration,0,YT.duration);if(!(e||t||n||r)&&!ee().hasAttribute(`disabled`)&&(ne(`onShow`,[y],!1),y.props.onShow(y)!==!1)){if(y.state.isVisible=!0,D()&&(x.style.visibility=`visible`),A(),ce(),y.state.isMounted||(x.style.transition=`none`),D()){var a=O(),o=a.box,s=a.content;IT([o,s],0)}f=function(){var e;if(y.state.isVisible&&!l){if(l=!0,x.offsetHeight,x.style.transition=y.props.moveTransition,D()&&y.props.animation){var t=O(),n=t.box,r=t.content;IT([n,r],i),LT([n,r],`visible`)}re(),ie(),TT(lE,y),(e=y.popperInstance)==null||e.forceUpdate(),ne(`onMount`,[y]),y.props.animation&&D()&&le(i,function(){y.state.isShown=!0,ne(`onShown`,[y])})}},ve()}}function Oe(){var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=yT(y.props.duration,1,YT.duration);if(!(e||t||n)&&(ne(`onHide`,[y],!1),y.props.onHide(y)!==!1)){if(y.state.isVisible=!1,y.state.isShown=!1,l=!1,o=!1,D()&&(x.style.visibility=`hidden`),ae(),M(),A(!0),D()){var i=O(),a=i.box,s=i.content;y.props.animation&&(IT([a,s],r),LT([a,s],`hidden`))}re(),ie(),y.props.animation?D()&&N(r,y.unmount):y.unmount()}}function ke(e){te().addEventListener(`mousemove`,m),TT(cE,m),m(e)}function Ae(){y.state.isVisible&&y.hide(),y.state.isMounted&&(_e(),ye().forEach(function(e){e._tippy.unmount()}),x.parentNode&&x.parentNode.removeChild(x),lE=lE.filter(function(e){return e!==y}),y.state.isMounted=!1,ne(`onHidden`,[y]))}function je(){y.state.isDestroyed||(y.clearDelayTimeouts(),y.unmount(),fe(),delete e._tippy,y.state.isDestroyed=!0,ne(`onDestroy`,[y]))}}function dE(e,t){t===void 0&&(t={});var n=YT.plugins.concat(t.plugins||[]);qT();var r=Object.assign({},t,{plugins:n}),i=FT(e).reduce(function(e,t){var n=t&&uE(t,r);return n&&e.push(n),e},[]);return jT(e)?i[0]:i}dE.defaultProps=YT,dE.setDefaultProps=ZT,dE.currentInput=HT;var fE=function(e){var t=e===void 0?{}:e,n=t.exclude,r=t.duration;lE.forEach(function(e){var t=!1;if(n&&(t=PT(n)?e.reference===n:e.popper===n.popper),!t){var i=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:i})}})};Object.assign({},RC,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),dE.setDefaultProps({render:oE});var pE=new WeakSet,mE=null,hE=!1,gE=()=>{if(hE||typeof document>`u`)return;hE=!0;let e=e=>{mE={x:e.clientX,y:e.clientY}};document.addEventListener(`pointermove`,e,{capture:!0,passive:!0}),document.addEventListener(`pointerdown`,e,{capture:!0,passive:!0}),document.documentElement.addEventListener(`pointerleave`,()=>{mE=null},{passive:!0})},_E=e=>{if(!mE)return e.matches(`:hover`);let t=document.elementFromPoint(mE.x,mE.y);return t!==null&&e.contains(t)},vE=({content:e,ref:t,maxWidth:n})=>{if(!window.matchMedia(`(hover: hover)`).matches||pE.has(t))return()=>{};pE.add(t),gE();let r=null,i=null,a=null,o=null,s=null,c=!1,l=()=>{c||(c=!0,f(),o?.(),o=null,i?.(),i=null,r&&=(r.destroy(),null),a?.(),a=null,pE.delete(t))},d=()=>
23{if(typeof MutationObserver>`u`)return;let e=t.ownerDocument?.documentElement;if(!e)return;let n=new MutationObserver(()=>{t.isConnected||l()});n.observe(e,{childList:!0,subtree:!0}),o=()=>n.disconnect()},f=()=>{s!==null&&(window.cancelAnimationFrame(s),s=null)},p=()=>{if(s=null,r?.state.isVisible){if(!t.isConnected){l();return}if(!t.matches(`:hover`)||!_E(t)){r.hide();return}s=window.requestAnimationFrame(p)}},m=()=>{f(),s=window.requestAnimationFrame(p)};return u()?O(l):d(),a=he(a=>{let o=document.createElement(`div`);return i=me(()=>A(()=>e()??``),o),r=dE(t,{content:o,placement:`bottom`,animation:`shift-away`,ignoreAttributes:!0,touch:!1,theme:`tooltip`,maxWidth:n?`${n}px`:void 0,onShow:e=>{if(o.childElementCount===0&&!o.textContent?.trim())return!1;fE({exclude:e}),m()},onHide:f,onDestroy:f}),a}),l},yE=l(`<div>`),bE=l(`<p>This move is `),xE=l(`<b>inaccuracy`),SE=l(`<b>`),CE=({before:e,after:t,positionReport:n,suggestedMove:r,side:i})=>n?.epd===`rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq -`&&r?.sanPlus===`g6`||n?.epd===`rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq -`&&r?.sanPlus===`d5`||n?.epd===`rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq -`&&r?.sanPlus===`d6`||Kt(e)||Kt(t)?null:wE(e.getPovWinPercentage(i),t.getPovWinPercentage(i)),wE=(e,t)=>{let n=t-e;if(n<-.2)return dC.Blunder;if(n<-.09)return dC.Mistake;if(n<-.06)return dC.Inaccuracy},TE=e=>{let t=z(B.weightBold,B.fontSize(14));var n=yE();return I(()=>t=>{vE({ref:t,content:()=>(()=>{var t=bE();return t.firstChild,N(t,(()=>{var t=A(()=>e===dC.Inaccuracy);return()=>t()?[`an `,xE()]:[`a `,(()=>{var t=SE();return N(t,()=>e===dC.Mistake?`mistake`:`blunder`),t})()]})(),null),t})(),maxWidth:200})},n),N(n,x(v,{get children(){return[x(a,{get when(){return e===dC.Inaccuracy},get children(){return x(V,{get style(){return z(B.fg(B.caution),t)},children:`?!`})}}),x(a,{get when(){return e===dC.Mistake},get children(){return x(V,{get style(){return z(B.fg(B.warning),t)},children:`?`})}}),x(a,{get when(){return e===dC.Blunder},get children(){return x(V,{get style(){return z(B.fg(B.danger),t)},children:`??`})}})]}})),n},EE;(function(e){e.toFen=e=>{let[t,n,r,i]=e.split(` `);return`${t} ${n} ${r} ${i} 0 1`}})(EE||={});function DE(e){let t=``;if(Kt(e?.eval))e?.mate&&(t=`#${e.mate[1]===`white`?``:`-`}${e.mate[0]}`);else{let n=(e.eval/100).toFixed(1);t=n===`0.0`||n===`-0.0`?`=`:e.eval>0?`+${n}`:`${n}`}return t}var OE=class e{eval;mate;pv;thinking=!1;constructor(e){if(typeof e==`string`){if(e.includes(`M`)){if(e===`M-w`)this.mate=[0,`white`];else if(e===`M-b`)this.mate=[0,`black`];else{let t=e.includes(`-`)?`black`:`white`;this.mate=[Number.parseInt(e.split(`M`)[1],10),t]}}else this.eval=It(e)}else{this.eval=e[0].eval;let t=e[0].mate;Kt(t)||(this.mate=[Math.abs(t),t===0?e[1]:t>0?`white`:`black`])}}toCp(){return Kt(this.eval)?Kt(this.mate)?0:kE(this.mate[0])*(this.mate[1]===`black`?-1:1):this.eval}getPovCp(e){let t=this.toCp();return e===`black`?-t:t}getPovWinPercentage(t){let n=this.getPovCp(t);return e.toWinPercentage(n)}static toWinPercentage(e){return .5+.5*(2/(1+Math.exp(-.00368208*e))-1)}};function kE(e){return(21-Math.min(e,10))*100}var AE=class{callbacks=[];constructor(){Object.freeze(this)}add(e){this.callbacks.push(e)}callAndClear(...e){this.call(...e),this.clear()}call(...e){for(let t of this.callbacks)t(...e??[])}clear(){this.callbacks.length=0}remove(e){let t=this.callbacks.indexOf(e);t!==-1&&this.callbacks.splice(t,1)}hasListeners(){return this.callbacks.length>0}},jE=(e,t,n)=>new Promise((r,i)=>{var a=e=>{try{s(n.next(e))}catch(e){i(e)}},o=e=>{try{s(n.throw(e))}catch(e){i(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(a,o);s((n=n.apply(e,t)).next())}),ME=e=>jE(void 0,null,function*(){try{return[yield e,null]}catch(e){if(e instanceof Error)return[null,e];throw e}}),NE=Re(`Stockfish`);function PE(){if(typeof Atomics!=`object`||typeof SharedArrayBuffer!=`function`)return!1;let e;try{if(e=new WebAssembly.Memory({shared:!0,initial:1,maximum:2}),!(e.buffer instanceof SharedArrayBuffer))return!1;window.postMessage(e.buffer,`*`)}catch{return!1}return e.buffer instanceof SharedArrayBuffer}var FE=ja(()=>{let e=[];
23if(typeof WebAssembly==`object`&&typeof WebAssembly.validate==`function`&&WebAssembly.validate(Uint8Array.from([0,97,115,109,1,0,0,0]))){e.push(`wasm`);let t=Uint8Array.from([0,97,115,109,1,0,0,0,1,12,2,96,2,123,123,1,123,96,1,123,1,123,3,3,2,0,1,7,9,2,1,97,0,0,1,98,0,1,10,19,2,9,0,32,0,32,1,253,186,1,11,7,0,32,0,253,253,1,11]);WebAssembly.validate(t)&&e.push(`simd`),PE()&&e.push(`sharedMem`)}try{new Worker(URL.createObjectURL(new Blob([`import('data:text/javascript,export default {}')`],{type:`application/javascript`}))).terminate(),e.push(`dynamicImportFromWorker`)}catch{}return Object.freeze(e)});function IE(e){return new Promise((t,n)=>{let r=e();r.onsuccess=e=>t(e.target.result),r.onerror=e=>n(e.target.result)})}async function LE(e){let t=await RE(e);return{list:()=>IE(()=>n(`readonly`).getAllKeys()),get:e=>IE(()=>n(`readonly`).get(e)),getMany:e=>IE(()=>n(`readonly`).getAll(e)),put:(e,t)=>IE(()=>n(`readwrite`).put(t,e)),count:e=>IE(()=>n(`readonly`).count(e)),remove:e=>IE(()=>n(`readwrite`).delete(e)),clear:()=>IE(()=>n(`readwrite`).clear()),txn:n=>t.transaction(e.store,n),cursor:r,readCursor:async(e,t)=>{for await(let n of r(e,`readonly`))await t(n.value)},writeCursor:async(e,t)=>{for await(let n of r(e,`readwrite`))await t({value:n.value,update:e=>IE(()=>n.update(e)),delete:()=>IE(()=>n.delete())})}};function n(n){return t.transaction(e.store,n).objectStore(e.store)}function r(e,t){let r=n(t),i=e.index?r.index(e.index).openCursor(e.query,e.dir):r.openCursor(e.query,e.dir);return(async function*(){for(;;){let e=await IE(()=>i);if(!e)break;yield e,e.continue()}})()}}async function RE(e){let t=e.db??e.store;return new Promise((n,r)=>{let i=window.indexedDB.open(t,e?.version??1);i.onsuccess=e=>n(e.target.result),i.onerror=e=>r(e.target.error??`IndexedDB Unavailable`),i.onupgradeneeded=t=>{let n=t.target.result,r=t.target.transaction,i=n.objectStoreNames.contains(e.store)?r.objectStore(e.store):n.createObjectStore(e.store),a=new Set(i.indexNames);e.indices?.forEach(({name:e,keyPath:t,options:n})=>{if(!a.has(e))i.createIndex(e,t,n);else{let r=i.index(e);(r.keyPath!==t||r.unique!==!!n?.unique||r.multiEntry!==!!n?.multiEntry)&&(i.deleteIndex(e),i.createIndex(e,t,n))}a.delete(e)}),a.forEach(e=>{i.deleteIndex(e)}),e.upgrade?.(t,i)}})}var zE=Function(`url`,`return import(url)`),BE=e=>new URL(`/js/sf_dev_20260819.js`,e).href,VE=()=>zE(BE(globalThis.location.origin)),HE=function(e){return e.Disabled=`disabled`,e.Enabled=`enabled`,e}({}),UE=`admin-stockfish-enabled`,WE=(()=>{if(typeof window>`u`)return!0;try{return window.localStorage.getItem(UE)!==`disabled`}catch{return!0}})(),GE=()=>WE,KE=e=>{if(WE=e,typeof window<`u`)try{window.localStorage.setItem(UE,e?`enabled`:`disabled`)}catch{}},qE=e=>e,JE=qE(!1),YE=qE(!1),XE=qE(!1),ZE,QE=async()=>{if(ZE)return ZE;let e=await LE({store:`nnuev2`,db:`nnuev2--db`});return ZE=e,e},$E=!1,eD=new AE,tD=null,nD=()=>tD,rD=()=>Ye?`native`:jD,iD=(e,t=32767)=>{let n=4;for(;;)try{return new WebAssembly.Memory({shared:!0,initial:e,maximum:t})}catch(r){if(t<=e||!(r instanceof RangeError))throw r;t=Math.max(e,Math.ceil(t-t/n)),n=n===4?3:4}},aD=`nn-1a298aa575a0.nnue`,oD=98511183,sD=[`nn-c288c895ea92.nnue`,`nn-37f18f62d772.nnue`,`nn-4ca89e4b3abf.nnue`],cD=3,lD=2,uD=e=>Math.max(Math.min(e-1,lD),1),dD=6,fD=e=>Math.max(Math.min(e-2,dD),1),pD=class extends Error{status;name=`NnueFetchError`;constructor(e,t){super(`fetch '${e}' failed: ${t}`),this.status=t}},mD=e=>e instanceof pD&&(e.status===0||typeof navigator<`u`&&navigator.onLine===!1),hD=(e,t)=>{let n=new XMLHttpRequest;return n.open(`get`,e,!0),n.responseType=`arraybuffer`,new Promise((e,r)=>{n.onerror=()=>r(new pD(t,n.status)),n.onload=()=>{n.status/100==2?e(new Uint8Array(n.response)):r(new pD(t,n.status))},n.send()})},gD=async(e,t)=>{let n;for(let r=0;r<cD;r++){r>0&&await new Promise(e=>setTimeout(e,1e3*2**(r-1)));try{return await hD(e,t)}catch(e){n=e}}throw n},_D=(e,t,n)=>{if(e.byteLength!==n)throw Error(`fetch '${t}' decoded to ${e.byteLength} bytes; expected ${n}`);return e},vD=async(e,t,n,r)=>{if(t)try{return _D(await hD(t,n),n,r)}catch{}return _D(await gD(e,n),n,r)}
23,yD=(e,t)=>{let n=`https://nnue.chessbook.com/nnue`,r=n.endsWith(`/`)?n.slice(0,-1):n;return Promise.all(e.map(async e=>{let n=await t?.get(e).catch(()=>void 0);if(n&&n.byteLength>131072)return n;let i=`${r}/${e}`,a=e===aD?await vD(i,`${i}.br`,e,oD):await gD(i,e);return t.put(e,a).catch(e=>{qn(Error(`IDB store failed`,{cause:e}))}),a}))},bD=null,xD=null,SD=null,CD=null,wD=0,TD=0,ED=null,DD=null,OD=!1,kD=null,AD=null,jD=null,MD=new Map,ND=new Set,PD=1,FD=(e,t,n,r)=>{if(ND.has(e))return;ND.add(e);let i=performance.now();qn(Error(t),{tags:{"stockfish.lifecycle_reason":n,"stockfish.web_flavor":jD??`none`},extra:{active_web_module_count:MD.size,engine_load_generation:TD,hardware_concurrency:navigator.hardwareConcurrency,termination_error:r??null,web_modules:Array.from(MD.values()).map(e=>({id:e.id,generation:e.generation,flavor:e.flavor,age_ms:Math.round(i-e.createdAt),status:e.status}))}})},ID=(e,t,n)=>{MD.set(e,{id:PD++,generation:t,flavor:n,createdAt:performance.now(),status:`active`}),MD.size>1&&FD(`multiple-live-modules`,`Multiple live Stockfish worker pools detected`,`module-created`)},LD=(e,t)=>{try{e.uci(`quit`),MD.delete(e)}catch(n){let r=MD.get(e);r&&(r.status=`quit-failed`),FD(`worker-pool-quit-failed`,`Failed to terminate a Stockfish worker pool`,t,n instanceof Error?n.message:String(n))}},RD=e=>{for(let t of Array.from(MD.keys()))LD(t,e)},zD=e=>typeof e.output==`string`?e.output:typeof e.detail==`string`?e.detail:e.detail&&typeof e.detail==`object`&&`output`in e.detail&&typeof e.detail.output==`string`?e.detail.output:null,BD=()=>{CD||(CD=e=>{let t=zD(e);t&&bD?.handleUciMessage(t)},window.addEventListener(`stockfish`,CD))},VD=e=>{ED&&e.loadedCallback.remove(ED),ED=()=>{ED&&(e.loadedCallback.remove(ED),ED=null,$E=!0,e.setMemory(16),e.setThreads(1))},e.loadedCallback.add(ED)},HD=(e,t,n=1)=>{bD===e&&t===wD&&NE.cmd({cmd:`uci`}).catch(r=>{if(n>=30){OD=!1,qn(Error(`Native Stockfish failed to accept UCI handshake`,{cause:r}));return}setTimeout(()=>HD(e,t,n+1),100)})},UD=()=>{if(TD+=1,wD+=1,DD&&=(clearTimeout(DD),null),bD?.beginReload?.(),OD=!0,Ye)try{bD?.uciCmd(`quit`)}catch{}else kD&&LD(kD,`reload`);SD?.(e=>e=>{}),$E=!1,bD&&(bD.loaded=!1,bD.isReady=!1),DD=setTimeout(()=>{DD=null,kD=null,AD=null,OD=!1,xD?.()},50)},WD=async()=>{TD+=1,wD+=1,DD&&=(clearTimeout(DD),null),ED&&bD&&bD.loadedCallback.remove(ED),ED=null,OD=!1,$E=!1,tD=`disabled-by-admin`,SD?.(e=>e=>{}),bD&&(bD.loaded=!1,bD.isReady=!1),Ye?await NE.exit().catch(()=>{}):RD(`shutdown`),kD=null,AD=null,jD=null},GD=async()=>{try{return(await NE.getMaxMemory()).value*.25}catch(e){if(!Xe)throw e;return 16}},KD=(e,t,n)=>{if(!GE()){tD=`disabled-by-admin`,t.loaded=!1,t.isReady=!1;return}if(bD=t,xD=n,SD=e,t.onReady().then(()=>{eD.callAndClear(),XE&&JD()}),OD)return;let r=++TD;if(OD=!0,t.loaded=!1,t.isReady=!1,kD&&(FD(`module-replaced-without-cleanup`,`Stockfish worker pool reached replacement without prior cleanup`,`load-start`),LD(kD,`load-start`),kD=null,AD=null),Ye){tD=null,BD();let n=++wD;e(()=>e=>{NE.cmd({cmd:e})}),VD(t),NE.start().then(()=>{GE()&&r===TD&&HD(t,n)}).catch(e=>{OD=!1;let t=e?.code,n=e?.message;if(t===`NATIVE_LIBRARY_UNAVAILABLE`){tD=`native-library-unavailable`,ky({category:`stockfish`,level:`info`,message:`native engine unavailable on this device`,data:{message:typeof n==`string`?n.slice(0,300):null}});return}qn(Error(`Native Stockfish failed to start`,{cause:e}),{fingerprint:[`stockfish`,`native-start`,typeof t==`string`?t:`unknown`],tags:{"stockfish.cause":`native-start`},extra:{code:t,message:n}})}),t.onReady().finally(()=>{OD=!1}),t.onReady().then(()=>{Promise.all([GD(),NE.getProcessorCount()]).then(([e,n])=>{bD!==t||t.running||(t.setMemory(e),t.setThreads(uD(n.value)),t.uciCmd(`isready`))}).catch(()=>{bD!==t||t.running||(t.setMemory(16),t.setThreads(1),t.uciCmd(`isready`))})});return}let i=FE(),a=[`sharedMem`,`wasm`,`simd`].filter(e=>!i.includes(e));if(a.length===0){tD=null,(async()=>{let n=await QE();if(!GE()||r!==TD||(await Promise.all(sD.map(e=>n.remove(e).catch(()=>{}))),!GE()||r!==TD))return;jD=`dev`,console.debug(`[stockfish] loading web engine (${jD})`);let i=await VE();if(!GE()||r!==TD)return;AD=iD(2560);let a=await i.default({wasmMemory:AD,onError:e=>(qn(Error(e)),Promise.reject(Error(e))),locateFile:e=>`/js/${e}`});if(ID(a,r,jD),!GE()||r!==TD){LD(a,`stale-after-module-create`);return}kD=a,a.onError=e=>{if(e.startsWith(`BAD_NNUE`)){let t=Math.max(0,Number(e.slice(9))),r=a.getRecommendedNnue(t);if(!r)return;setTimeout(()=>{n.remove(r),UD()},2e3)}};let o=[];for(let e=0;;e++){let t=a.getRecommendedNnue(e);
23if(!t||o.includes(t))break;o.push(t)}if(o.length!==1||o[0]!==aD){qn(Error(`Stockfish engine/NNUE mismatch: expected ${aD}, got ${o.join(`,`)}`)),LD(a,`engine-nnue-mismatch`),kD===a&&(kD=null,AD=null),OD=!1;return}let[s,c]=await ME((async()=>{(await yD(o,n)).forEach((e,t)=>{a.setNnueBuffer(e,t)})})());if(c){mD(c)?ky({category:`stockfish`,level:`info`,message:`nnue download failed (network)`,data:{online:navigator.onLine}}):qn(Error(`Error loading stockfish nnue files`,{cause:c}),{fingerprint:[`stockfish`,`nnue-load`,jD??`unknown`],tags:{"stockfish.cause":`nnue-load`},extra:{status:c instanceof pD?c.status:null,online:navigator.onLine}}),mn.error(`Error loading stockfish NNUE files`),LD(a,`nnue-load-failed`),kD===a&&(kD=null,AD=null),OD=!1;return}if(!GE()||r!==TD){LD(a,`stale-after-nnue-load`),kD===a&&(kD=null,AD=null),OD=!1;return}console.debug(`[stockfish] nnue ready, starting UCI handshake (${jD})`),a.listen=e=>t.handleUciMessage(e),$E=!0,e(()=>e=>{a.uci(e)});let l=navigator.hardwareConcurrency;t.uciCmd(`uci`),t.setMemory(16),t.setThreads(fD(l)),t.uciCmd(`isready`),OD=!1})();return}tD=`missing-features:${a.join(`,`)}`,console.warn(`[stockfish] engine unavailable in this environment: ${tD}`),OD=!1},qD=!1;function JD(){qD||(qD=!0,setInterval(()=>{$E&&bD?.uciCmd(`quit`)},5e3))}var YD={SHALLOW:1e5,STANDARD:25e4,GAME:5e5,DEEP:2e6},XD=e=>{},ZD=e=>(XD=e(XD),XD),QD=e=>{XD(e)},$D=()=>(GE()&&KD(ZD,G,$D),G),eO=new Map,tO=1e3,nO=(e,t)=>`${e}|${t}`,rO=(e,t)=>{eO.size>=tO&&eO.delete(eO.keys().next().value),eO.set(e,t)},iO=new Map,aO=200,oO=new Map,sO=(e,t,n)=>`${e}|${t}|${n}`,cO=(e,t)=>
23{iO.size>=aO&&iO.delete(iO.keys().next().value),iO.set(e,t)},lO=45e3,uO=8e3,dO=1e4,fO=18e4,pO=2e4,mO=50,hO=64,gO=10,_O=1e8,vO=500,yO=e=>Math.min(fO,dO+Math.ceil(e/pO)*1e3),bO=class extends Error{name=`StockfishUnavailableError`},xO=class extends Error{name=`StockfishQueueOverflowError`},SO=class extends Error{name=`StockfishStoppedEarlyError`},CO=class extends Error{name=`StockfishWatchdogError`},wO=e=>{ky({category:`stockfish`,level:`debug`,message:e.slice(0,vO)})},TO=()=>({flavor:rD(),unavailableReason:nD(),loaded:G.loaded,isReady:G.isReady,running:G.running,isProcessing:G.isProcessing,queueLength:G.taskQueue.length,pendingBarriers:G.pendingBarrierResolvers.length,nodeGoal:G.nodeGoal,epd:G.epd,multiPvSetting:G.multiPvSetting,lastNps:G.lastNps,resurrectionsInWindow:G.resurrectionTimestamps.length,resurrectionsThisSession:G.resurrectionCount,online:typeof navigator>`u`?null:navigator.onLine,visibility:typeof document>`u`?null:document.visibilityState,hardwareConcurrency:typeof navigator>`u`?null:navigator.hardwareConcurrency}),EO=e=>[`stockfish`,e,rD()??`unknown`],DO=(e,t,n)=>{Zt(r=>{r.setContext(`stockfish`,{...TO(),...n}),r.setFingerprint(EO(t)),r.setTag(`stockfish.cause`,t),qn(e)})},OO=(e,t,n)=>{Zt(r=>{r.setContext(`stockfish`,{...TO(),...n}),r.setFingerprint(EO(t)),r.setTag(`stockfish.cause`,t),r.setLevel(`warning`),er(e)})},kO=e=>{if(!Number.isInteger(e)||e<1||e>_O)throw Error(`Invalid Stockfish node count: ${e}`)},AO=e=>{if(!Number.isInteger(e)||e<1||e>gO)throw Error(`Invalid Stockfish MultiPV value: ${e}`)},jO=e=>{let t={};for(let n of e)/[a-zA-Z]/.test(n)&&(t[n]=(t[n]??0)+1);return t},MO=e=>{let t=e.split(`/`);if(t.length!==8)throw Error(`Invalid EPD: piece placement must contain 8 ranks`);for(let[e,n]of t.entries()){let t=0,r=!1;for(let i of n)if(/^[1-8]$/.test(i)){if(r)throw Error(`Invalid EPD: piece placement contains adjacent digits`);t+=Number.parseInt(i,10),r=!0}else if(/^[prnbqkPRNBQK]$/.test(i)){if(t+=1,r=!1,(i===`p`||i===`P`)&&(e===0||e===7))throw Error(`Invalid EPD: pawns cannot be on the first or eighth rank`)}else throw Error(`Invalid EPD: unexpected piece placement character '${i}'`);if(t!==8)throw Error(`Invalid EPD: each rank must contain exactly 8 files`)}let n=jO(e);if(n.K!==1||n.k!==1)throw Error(`Invalid EPD: position must contain exactly one king for each side`)},NO=e=>{if(e!==`-`&&!/^(?!.*(.).*\1)[KQkq]+$/.test(e))throw Error(`Invalid EPD: castling rights must be '-', or a unique subset of KQkq`)},PO=e=>{if(e!==`-`&&!/^[a-h][36]$/.test(e))throw Error(`Invalid EPD: en passant square must be '-' or a square on rank 3 or 6`)},FO=e=>{if(e.moves().length>0)return null;let t=new OE(`0`);return e.inCheckmate()&&(t.eval=void 0,t.mate=[0,oC.flip(oC.fromColor(e.turn()))]),t},IO=e=>{let t=e.split(/\s+/);if(t[1]=t[1]===`w`?`b`:`w`,t[3]=`-`,new ip(t.join(` `)).inCheck())throw Error(`Invalid EPD: side not to move is in check`)},LO=e=>{let t=e.trim().split(/\s+/);if(t.length!==4)throw Error(`Invalid EPD: expected piece placement, side, castling, and en passant fields`);let[n,r,i,a]=t;if(MO(n),r!==`w`&&r!==`b`)throw Error(`Invalid EPD: side to move must be 'w' or 'b'`);NO(i),PO(a);let o=t.join(` `),s=EE.toFen(o),c=ip.validateFen(s);if(!c.valid)throw Error(`Invalid EPD: ${c.error}`);let l=new ip(s);return IO(s),{epd:o,fen:s,position:l,terminalEval:FO(l),terminalMoves:[]}},RO=(e,t)=>{if(!e.startsWith(`info `))return null;let n=e.trim().split(/\s+/),r=n.indexOf(`multipv`),i=n.indexOf(`score`),a=n.indexOf(`nodes`),o=n.indexOf(`pv`);if(i===-1||a===-1||o===-1)return null;let s=n[i+1],c=Number.parseInt(n[i+2],10),l=Number.parseInt(n[a+1],10),u=n[o+1];if(s!==`cp`&&s!==`mate`||!Number.isFinite(c)||!Number.isFinite(l)||!u)return null;let d=r===-1?1:Number.parseInt(n[r+1]??``,10);if(!Number.isInteger(d)||d<1)return null;let f=t===`b`?-c:c,p=new OE(`0`);return p.thinking=!0,s===`cp`?p.eval=f:(p.eval=void 0,p.mate=[Math.abs(f),f===0?oC.flip(oC.fromColor(t)):f<0?`black`:`white`]),p.pv=u,{stockfishEval:p,nodes:l,multipv:d,pvLan:u,pv:u}},zO=class{timeoutId=null;lastTimeoutStart;failCallback;probeCallback;probeOutstanding=!1;constructor(e,t){this.failCallback=e,this.probeCallback=t,this.lastTimeoutStart=performance.now(),this.arm()}arm(){this.timeoutId=setTimeout(()=>{this.onSilence()},uO),this.lastTimeoutStart=performance.now()}delayFail(){this.timeoutId&&clearTimeout(this.timeoutId),this.probeOutstanding=!1,this.arm()}destroy(){this.timeoutId&&clearTimeout(this.timeoutId)}onSilence(){if(this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=null,!this.probeOutstanding){this.probeOutstanding=!0,this.probeCallback(),this.arm();return}this.failCallback()}},BO=5,VO=6e5,G={position:new ip,loaded:!1,nodeGoal:YD.STANDARD,isReady:!1,running:!1,readyCallback:new AE,loadedCallback:new AE,evalUpdatedCallback:new AE,topMovesUpdatedCallback:new AE,topMovesFinalCallback:new AE,finalEvalCallback:new AE,okCallback:new AE,taskQueue:[],isProcessing:!1,inlineTaskDepth:0,failureDetector:null,abortActiveTask:null,resurrectionTimestamps:[],resurrectionCount:0,illegalPvCount:0,reportedDead:!1,reloadPromise:null,resolveReloadPromise:null,idleCallback:new AE,pendingBarrierResolvers:[],lastNps:null,legalMoves:{}
23,uciCmd:e=>{QD(e)},getOption:e=>G.uciCmd(`option name ${e} value`),isResurrectionBudgetExhausted:()=>{let e=Date.now();return G.resurrectionTimestamps=G.resurrectionTimestamps.filter(t=>e-t<VO),G.resurrectionTimestamps.length>=BO},assertAvailable:()=>{if(!GE())throw new bO(`Stockfish is unavailable: disabled-by-admin`);let e=nD();if(e)throw new bO(`Stockfish is unavailable: ${e}`);if(G.isResurrectionBudgetExhausted())throw new bO(`Stockfish is unavailable: engine repeatedly crashed, cooling down`)},ensureLoaded:async()=>{if(G.loaded&&G.isReady)return;G.assertAvailable(),$D();let e=performance.now(),t=()=>{if(G.loaded&&G.isReady)return;let t=Error(`Stockfish failed to load`),n=typeof navigator<`u`&&navigator.onLine===!1,r=typeof document<`u`&&document.visibilityState===`hidden`;throw n||r?wO(`load timeout suppressed (${n?`offline`:`hidden`}) after ${Math.round(performance.now()-e)}ms`):DO(t,`load-timeout`,{elapsedMs:performance.now()-e}),t};for(;!G.loaded;)G.assertAvailable(),performance.now()-e>lO&&t(),await new Promise(e=>setTimeout(e,mO));if(!G.isReady){let n=Math.max(0,lO-(performance.now()-e));await Promise.race([G.checkReady(),new Promise((e,r)=>{setTimeout(()=>{try{t(),e()}catch(e){r(e)}},n)})])}},setOption:(e,t)=>{G.uciCmd(`setoption name ${e} value ${t}`)},setMemory:e=>{G.setOption(`Hash`,`${Math.max(1,Math.floor(e))}`)},setThreads:e=>{G.setOption(`Threads`,`${Math.max(1,Math.floor(e))}`)},multiPvSetting:1,setMultiPv:e=>{AO(e),G.setOption(`MultiPV`,`${e}`),G.multiPvSetting=e},activeTopMovesRequest:null,getCachedTopMoves:(e,{pv:t,nodes:n})=>iO.get(sO(e,t,n))??null,getTopMoves:(e,{pv:t,nodes:n,source:r},i)=>{AO(t),kO(n);let a=LO(e);if(a.terminalEval)return Promise.resolve({evaluation:a.terminalEval,moves:a.terminalMoves});let o=sO(e,t,n),s=iO.get(o);if(s)return Promise.resolve(s);let c=oO.get(o);if(c)return c;let l=G.enqueueTask(async()=>{G.setMultiPv(t),i&&G.topMovesUpdatedCallback.add(i);let s=new Promise(e=>{G.topMovesFinalCallback.add(t=>{e(t)})}),c=new Promise(e=>{G.finalEvalCallback.add(t=>{e(t)})});G.activeTopMovesRequest={epd:e,key:o,source:r},G.startAnalysis(a,n);let[l,u]=await Promise.all([c,s]);return(G.lastInfo?.nodes??0)>=n*.9&&cO(o,{evaluation:l,moves:u}),{evaluation:l,moves:u}},{nodes:n});return oO.set(o,l),l.catch(()=>{}).finally(()=>{oO.delete(o)}),l},stopAnalysisFrom:e=>{G.running&&G.activeTopMovesRequest?.source===e&&G.uciCmd(`stop`)},checkReady:()=>G.loaded&&G.isReady?Promise.resolve(!0):new Promise(e=>{G.readyCallback.add(()=>{e(!0)}),G.uciCmd(`isready`)}),setPosition:e=>{G.uciCmd(`position fen ${LO(e).fen}`)},epd:null,startAnalysis:(e,t)=>{kO(t),G.running=!0;let n=new Promise(e=>{G.finalEvalCallback.add(t=>{G.running=!1,e(t)})}),r=e.position.moves({verbose:!0});return G.legalMoves={},r.forEach(e=>{G.legalMoves[pp(e)]=e.san}),G.position=e.position,G.epd=e.epd,G.uciCmd(`position fen ${e.fen}`),G.uciCmd(`go nodes ${t}`),G.nodeGoal=t,n},go:async(e,t)=>{let n=t.nodes??YD.STANDARD;kO(n);let r=LO(e);return r.terminalEval?Promise.resolve(r.terminalEval):G.enqueueTask(()=>G.startAnalysis(r,n),{nodes:n})},evalPos:async({epd:e,nodes:t,cb:n})=>{let r=t??YD.STANDARD;kO(r);let i=LO(e);return i.terminalEval?Promise.resolve(i.terminalEval):G.enqueueTask(async()=>{if(!G.loaded)return null;let e=nO(i.epd,r);return eO.get(e)||(G.setMultiPv(1),n&&G.evalUpdatedCallback.add(n),await G.startAnalysis(i,r).then(t=>(rO(e,t),t)))},{nodes:r})},ready:()=>{G.isReady=!0,G.reportedDead=!1,G.resolveReloadPromise?.(),G.reloadPromise=null,G.resolveReloadPromise=null,G.readyCallback.callAndClear(),G.notifyIdle()},onBestMove:e=>{if(G.lastInfo){G.onInfo(G.lastInfo,!0);return}G.abortActiveTask?.(new SO(`Search stopped before any engine output`))},onReady:()=>G.loaded&&G.isReady?Promise.resolve():new Promise(e=>{G.readyCallback.add(()=>{e()})}),lastInfo:null,pendingMoves:[],setupForNewTask:e=>{(e?.sendCommands??!0)&&(G.uciCmd(`stop`),G.setMultiPv(1)),G.finalEvalCallback.clear(),G.evalUpdatedCallback.clear(),G.topMovesFinalCallback.clear(),G.topMovesUpdatedCallback.clear(),G.failureDetector?.destroy(),G.failureDetector=null,G.pendingMoves=[],G.lastInfo=null,G.running=!1,G.epd=null,G.activeTopMovesRequest=null},syncEngine:()=>new Promise(e=>{G.pendingBarrierResolvers.push(e),G.uciCmd(`isready`)}),handleUciMessage:e=>{let t=String(e);
23if(wO(t),G.failureDetector?.delayFail(),t===`uciok`){G.loaded=!0;let e=G.pendingBarrierResolvers;G.pendingBarrierResolvers=[],e.forEach(e=>e()),G.loadedCallback.call(),G.uciCmd(`isready`);return}if(t===`readyok`){G.isReady=!0;let e=G.pendingBarrierResolvers.shift();if(e){e();return}G.ready();return}if(G.pendingBarrierResolvers.length>0)return;let n=t.match(/^info .*\bnps (\d+)/);n&&(G.lastNps=Number.parseInt(n[1],10));let r=t.match(/^bestmove ([a-h][1-8][a-h][1-8][qrbn]?|\(none\))/);r&&(G.running=!1,G.onBestMove(r[1]));let i=RO(t,G.position?.turn()||`w`);i&&G.onInfo(i)},onInfo:(e,t=!1)=>{let{stockfishEval:n,multipv:r,pvLan:i}=e;if(t&&(n.thinking=!1),r===1&&(G.lastInfo=e),G.evalUpdatedCallback.call(n),t&&G.finalEvalCallback.call(n),t){G.pendingMoves=G.pendingMoves.map(e=>(e.stockfishEval.thinking=!1,{...e,final:!0})),G.topMovesUpdatedCallback.call(G.pendingMoves),G.topMovesFinalCallback.call(G.pendingMoves);return}if(!G.running||!G.epd)return;let a=G.legalMoves[i];if(!a){G.illegalPvCount+=1,wO(`illegal pv dropped: ${i} (multipv ${r})`),G.illegalPvCount===1&&DO(Error(`Stockfish returned a PV that was not legal in the current position`),`illegal-pv`,{pvLan:i,multipv:r,pv:e.pv?.slice(0,400)});return}let o={stockfishEval:n,san:a,multipv:r};r===1&&(G.pendingMoves=[]);let s=G.pendingMoves.findIndex(e=>e.multipv===r);s===-1?G.pendingMoves.push(o):G.pendingMoves[s]=o,G.pendingMoves.sort((e,t)=>e.multipv-t.multipv),G.topMovesUpdatedCallback.call(G.pendingMoves)},async enqueueTask(e,t){if(G.loaded||await G.ensureLoaded(),G.inlineTaskDepth>0)return e();let n=yO(t?.nodes??YD.STANDARD);return new Promise((t,r)=>{let i=async a=>{let o=null,s=!1,c=null,l=e=>(o||(o=new CO(e),wO(`watchdog: ${e} (attempt ${a+1})`),G.reloadStockfish(e)),o);try{await G.ensureLoaded(),G.setupForNewTask(),s=!0;let r=new Promise((e,t)=>{G.failureDetector=new zO(()=>{t(l(`Stockfish failed to respond`))},()=>{wO(`watchdog: engine quiet, probing with isready`),G.uciCmd(`isready`)})}),i=new Promise((e,t)=>{c=setTimeout(()=>{t(l(`Stockfish failed to return a final result`))},n)}),a=new Promise((e,t)=>{G.abortActiveTask=t});r.catch(()=>{}),i.catch(()=>{}),a.catch(()=>{}),await Promise.race([G.syncEngine(),r,i]);let o=(()=>{G.inlineTaskDepth+=1;try{return e()}finally{--G.inlineTaskDepth}})();t(await Promise.race([o,r,i,a]))}catch(e){e instanceof CO&&a===0?G.taskQueue.unshift({run:()=>i(1),abandon:r}):(e instanceof CO&&DO(e,`watchdog-retry-failed`,{attempt:a+1,resultTimeoutMs:n}),r(e))}finally{c&&clearTimeout(c),G.setupForNewTask({sendCommands:s&&!o}),G.isProcessing=!1,G.failureDetector=null,G.abortActiveTask=null,G.processNextTask(),G.notifyIdle()}},a=()=>i(0);G.isProcessing?(G.taskQueue.unshift({run:a,abandon:r}),G.enforceQueueCap()):(G.isProcessing=!0,a())})},enforceQueueCap:()=>{for(;G.taskQueue.length>hO;){let e=G.taskQueue.pop();wO(`dropped oldest queued task (queue length ${G.taskQueue.length+1})`),G.reportedQueueOverflow||(G.reportedQueueOverflow=!0,OO(`Stockfish task queue overflowed, dropping oldest tasks`,`queue-overflow`)),e.abandon(new xO(`Stockfish task dropped: too many queued requests`))}},reportedQueueOverflow:!1,processNextTask:()=>{if(G.taskQueue.length>0&&!G.isProcessing){let e=G.taskQueue.shift();G.isProcessing=!0,e.run()}},isStockfishIdle:()=>G.loaded&&G.isReady&&!G.running&&!G.isProcessing&&G.taskQueue.length===0,onStockfishIdle:e=>{G.isStockfishIdle()?queueMicrotask(e):G.idleCallback.add(e)},notifyIdle:()=>{G.isStockfishIdle()&&G.idleCallback.callAndClear()},beginReload:()=>(G.reloadPromise||=new Promise(e=>{G.resolveReloadPromise=e}),G.loaded=!1,G.isReady=!1,G.reloadPromise),reloadStockfish:(e=`unknown`)=>{if(G.isResurrectionBudgetExhausted()){G.reportedDead||(G.reportedDead=!0,DO(Error(`Guardian angel: Stockfish is dead, giving up`),`dead`,{reason:e}));return}G.resurrectionTimestamps.push(Date.now()),G.resurrectionCount+=1,wO(`guardian angel: resurrecting (${e}), #${G.resurrectionCount} this session`),G.resurrectionCount===1&&OO(`Guardian angel: resurrecting Stockfish: ${e}`,`resurrection`,{reason:e}),G.beginReload(),UD()}},HO=e=>{if(e===GE())return;if(KE(e),e){$D();return}let t=new bO(`Stockfish is unavailable: disabled-by-admin`);
23G.taskQueue.splice(0).forEach(e=>e.abandon(t)),G.abortActiveTask?.(t),G.failureDetector?.destroy(),G.failureDetector=null,G.running=!1,WD()};typeof window<`u`&&(window.StockfishInterface=G);var UO;(function(e){e.getSan=e=>e.suggestedMove?.sanPlus??e.repertoireMove?.sanPlus??e.courseMove?.sanPlus??e.stockfishMove?.san,e.getEpdAfter=e=>e.suggestedMove?.epdAfter??e.repertoireMove?.epdAfter??e.courseMove?.epdAfter,e.getStockfishEval=e=>e.suggestedMove?.stockfish??e.stockfishMove?.stockfishEval,e.getStockfishEvalSource=e=>{if(e.suggestedMove?.stockfish)return`database`;if(e.stockfishMove?.stockfishEval)return`local`},e.getPlayRate=(e,t,n)=>e.suggestedMove?pC.getPlayRate(e.suggestedMove,t,!n.usePeerRates):null})(UO||={});var WO=e=>`${(e*100).toFixed(0)}%`,GO=e=>`${Math.round(e*100)}`,KO=e=>!e||Number.isNaN(e)||WO(e)===`0%`,qO=(e,t,n,r,i,a,o)=>{let s=t?uC.getWinRateRange(t.results,r)[0]:NaN;if(i===`browse`)return jd(e,[e=>e.reviewStatus?-e.reviewStatus.due:0,e=>e.reviewStatus?e.reviewStatus.earliestDue:1/0]);let c=[];return a?(o&&c.push(e=>{if(!e.suggestedMove)return;let n=pC.getPlayRate(e.suggestedMove,t,!0);return n&&!KO(n)?(e.score=n,-n):0}),c.push(e=>-JO(e,t,s,n,r,{mutate:!o}))):c.push(e=>{if(e.suggestedMove)return-(e.suggestedMove.incidence??0)}),jd(e,c)},JO=(e,t,n,r,i,a={mutate:!0})=>{let o=YO,s={factors:[],notes:[]};if(Kt(t))return o.startScore;let c=e.suggestedMove,l=UO.getStockfishEval(e);if(l){let e=l?.mate;if(e)e[1]===i?s.factors.push({source:`eval`,value:1e4}):s.factors.push({source:`eval`,value:-1e4});else{let e=r?.getPovWinPercentage(i),t=l.getPovWinPercentage(i);if(!Kt(e)&&!Kt(t)){let n=t-e;s.factors.push({source:`eval`,value:n})}}}if(c){let r=Math.min(uC.getTotalGames(e?.suggestedMove?.results)/100,1),a=pC.getPlayRate(e.suggestedMove,t);if(KO(a))o.playrate!==0&&(s.notes.push(`Insufficient games for playrate`),s.factors.push({source:`oneOff`,value:-o.startScore}));else{let e=a*r;s.factors.push({source:`playrate`,value:e})}o.needed>0&&e.suggestedMove?.needed&&s.factors.push({source:`needed`,value:1e4});let[c,l]=uC.getWinRateRange(e.suggestedMove?.results,i),u=c-n;if(!Number.isNaN(u)&&!Kt(u)){s.notes.push(`Winrate change: ${u}, winrateLowerBound: ${c}, winrateUpperBound: ${l}`);let e=u;s.factors.push({source:`winrate`,value:e,max:.5,min:-.5})}}s.factors.forEach(e=>{e.weight=o[e.source]??1,e.total=e.weight*e.value,e.max&&(e.total=Math.min(e.total,e.max)),e.min&&(e.total=Math.max(e.total,e.min))}),e.tags.includes(fC.BestMove)&&s.factors.push({source:`bestMove`,value:0,total:1e4}),o.startScore&&s.factors.push({source:`start`,weight:1,value:o.startScore,total:o.startScore});let u=Nd(s.factors,e=>e.total||0);return a.mutate&&(e.scoreTable=s,e.score=u),u},YO={startScore:2,eval:15,winrate:10,playrate:1,masterPlayrate:0},XO=e=>{let t=uC.getTotalGames(e?.masterResults);return!t||t<10};function ZO(e){return!e.isExcluded&&!e.isDisabled}function QO(e){return!!(e.mine&&ZO(e))}function $O(e){return e.isSavedUserMove?e.mode===`review`||e.mode===`build`&&e.moveNumber!==1&&!e.isOnboarding:!1}function ek(e){let t=e.positionResponses[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??[];if(e.side===`white`){let e=ru(t,e=>e.mine&&!e.isExcluded);return e.length===1?e[0].sanPlus:null}let n=ru(t,e=>!e.isExcluded);return n.length===1?n[0].sanPlus:null}function tk(e,t){if(H(t))return!0;let n=e?ek(e):null;return n!==null&&t.length===1&&t[0]===n}function nk(e,t,n,r,i){return H(t)?!1:H(r)||!!e&&!!n&&dk(e,t,n,i)}var rk=24,ik=400;function ak(e,t,n){let r=new Set;for(let t of e.positionResponses[n]??[])t.isExcluded||r.add(t.epdAfter);for(let e of t[n]?.suggestedMoves??[])e.epdAfter&&r.add(e.epdAfter);return[...r]}function ok(e,t,n){let r=e.side,i=[{epd:t,depth:0}],a=new Set;for(;i.length>0;){let{epd:o,depth:s}=i.shift();if(!(a.has(o)||s>rk||a.size>ik)){if(a.add(o),o!==t&&lp(o)===r&&(e.positionResponses[o]??[]).filter(e=>QO(e)).length>0)return!0;for(let t of ak(e,n,o))a.has(t)||i.push({epd:t,depth:s+1})}}return!1}function sk(e,t,n){return!H(t)&&ok(e,Bl(cp(t)),n)}function ck(e){let t=e.repertoireMove;return t?QO(t):!1}function lk(e){let t=e.repertoireMove;return t?ZO(t)&&e.reviewStatus!==void 0:!1}function uk(e,t,n){let r=e.suggestedMove?.epdAfter??e.repertoireMove?.epdAfter;if(!r)return!1;let i=e.repertoireMove;return i&&ZO(i)?!0:ok(t,r,n)}function dk(e,t,n,r){if(n===e.side||H(t)||mp.sideOfLastMove(t)!==e.side)return!1;let i=cp(t),a=i[i.length-2],o=Bl(t);return(e.positionResponses[a]??[]).some(e=>QO(e)&&e.sanPlus===o)?!sk(e,t,r):!1}function fk(e,t,n,r){let i=cp(t),a=Bl(i);return dk(e,t,n,r)&&i.length>=2?{startPosition:i[i.length-2],startLine:t.slice(0,-1)}:{startPosition:a,startLine:t}}var pk=new Set,mk=({repertoireId:e,currentEpd:t,currentSide:n,currentLine:r,onStockfishUpdate:i})=>{let a=Y().repertoires;if(!a)return[];let o=Y().getRepertoireThreshold(e),s=a[e];if(!s)return[];let c=s?.side,l=Q().mode,u=Y().positionReports[e]?.[t],d={};u?.suggestedMoves.filter(e=>(uC.getTotalGames(e.results)??0)>
230||(uC.getTotalGames(e.masterResults)??0)>0).forEach(e=>{d[e.sanPlus]={suggestedMove:e,tags:[],side:c}});let f=c===n,p=Md(mu(d,e=>{let t=e.suggestedMove?.results;return t?uC.getTotalGames(t):0})),m=Md(mu(d,e=>{let t=e.suggestedMove?.masterResults;return t?uC.getTotalGames(t):0})),h={pv:3,nodes:YD.DEEP,source:`table`};u&&(f&&Object.keys(d).length<4&&m<30&&p<50||!f&&Object.keys(d).length===0)?G.getTopMoves(t,h,e=>{i()}).catch(()=>{}):G.stopAnalysisFrom(`table`),s.positionResponses[t]?.forEach(e=>{d[e.sanPlus]?d[e.sanPlus].repertoireMove=e:d[e.sanPlus]={repertoireMove:e,tags:[],side:c}}),(G.getCachedTopMoves(t,h)?.moves??(G.epd===t?G.pendingMoves:[])).forEach(e=>{let t=e.san;d[t]?d[t].stockfishMove=e:d[t]={stockfishMove:e,tags:[],side:c}});let g=n===c,_=XO(u),v=Su(d);if(l===`browse`){let t=Y().positionReports[e]??{};v=v.filter(e=>g?ck(e):uk(e,s,t))}let y=Y().repertoireGrades[e]?.biggestMisses??{};v.forEach(e=>{let t=e.suggestedMove?.epdAfter||e.repertoireMove?.epdAfter;y[t]&&(e.biggestMiss=y[t])}),v.forEach(e=>{if(g&&e.suggestedMove&&u){let t=uC.getWinRate(u?.results,c),[,,n]=uC.getWinRateRange(e.suggestedMove.results,c),r=uC.getWinRate(e.suggestedMove.results,c);n>.12&&Math.abs(t-r)>.02&&(e.lowConfidence=!0)}}),v.forEach(e=>{!g&&l===`build`&&e.suggestedMove?.incidence<o&&e.suggestedMove?.needed&&e.tags.push(fC.RareDangerous)});let b=new Date,x=Y().numMovesDueFromEpd[e],S=Y().earliestReviewDueFromEpd[e];v.forEach(e=>{if(l===`browse`&&e.repertoireMove){let t=e.suggestedMove?.epdAfter||e.repertoireMove.epdAfter,n=x?.[t],r=S?.[t],i=e.repertoireMove.srs?.dueAt;i&&(i<r||!r)&&(r=i);let a=e.repertoireMove.srs&&sC.isReviewDue(e.repertoireMove.srs,b);n+=+!!a,e.reviewStatus={earliestDue:r,due:n}}});let C=Iu(ru(mu(v,e=>e.suggestedMove?.stockfish),e=>!Kt(e)),e=>e.getPovWinPercentage(n));v.forEach(e=>{!g&&l===`build`&&vk(e,u,C)&&!e.tags.includes(fC.RareDangerous)&&e.tags.push(fC.CommonMistake)}),v.forEach(e=>{e.repertoireMove?.isDisabled&&e.tags.push(fC.Disabled)});let w=l===`build`?Y().epdNodes[e]:void 0;v.forEach(e=>{if(l!==`build`||e.repertoireMove||!e.suggestedMove)return;let t=e.suggestedMove.epdAfter;!e.repertoireMove&&w?.[t]&&(e.transposes=!0,e.tags.push(fC.Transposes))}),v.forEach(e=>{e.moveRating=CE({positionReport:u,after:e.suggestedMove?.stockfish,before:C,suggestedMove:e.suggestedMove,side:n})});let T=v.filter(e=>e.suggestedMove);if(g&&l===`build`&&u&&T.length>=2){if(T.forEach((e,t)=>{tu(T,(e,n)=>!Kt(e.moveRating)||n===t)&&Kt(e.moveRating)&&e.tags.push(fC.BestMove)}),!T.some(e=>e.tags.includes(fC.BestMove))){let e=T.filter(e=>Kt(e.moveRating)&&yk(e,n)&&bk(e,T,u));e.length===1&&e[0].tags.push(fC.BestMove)}if(!T.some(e=>e.tags.includes(fC.BestMove))){let[e,t]=jd(T.filter(e=>Kt(e.moveRating)).map(e=>({tr:e,score:JO(e,u,uC.getWinRateRange(u.results,n)[0],C,n,{mutate:!1})})),e=>-e.score);e&&e.score-(t?.score??-1/0)>=.35&&bk(e.tr,T,u)&&e.tr.tags.push(fC.BestMove)}}if(v=qO(v,u,C,n,l,g,!_),g&&v.length>=3&&l===`build`&&r.length>4){let i=_C(v,u,n),a=i.find(e=>e.selected);a&&(a.tr.tags.push(fC.HiddenGem),_k({currentEpd:t,currentLine:r,currentSide:n,diagnostics:i,repertoireId:e,selectedSanPlus:a.sanPlus}))}return v},hk=()=>{if(typeof window>`u`)return!1;try{return window.localStorage.getItem(`debugHiddenGem`)===`1`}catch{return!1}},gk=e=>e==null?null:Math.round(e*1e4)/1e4,_k=({currentEpd:e,currentLine:t,currentSide:n,diagnostics:r,repertoireId:i,selectedSanPlus:a})=>{if(!hk())return;let o=`${i}:${e}:${a}`;pk.has(o)||(pk.add(o),console.groupCollapsed(`[hidden gem] selected ${a}`),console.log({currentEpd:e,currentLine:t,currentSide:n,repertoireId:i,selectedSanPlus:a}),console.table(r.map(e=>({sanPlus:e.sanPlus,selected:e.selected,qualifies:e.qualifies,peerPlayRate:gk(e.peerPlayRate),gamesPlayed:e.gamesPlayed,winRate:gk(e.winRate),winRateLower:gk(e.winRateLower),winRateBestFrequentAlternativeLower:gk(e.winRateBestFrequentAlternativeLower),moveRatingAllowed:e.moveRatingAllowed,rareEnough:e.rareEnough,enoughGames:e.enoughGames,betterThanFrequentMoves:e.betterThanFrequentMoves,highEnoughWinRate:e.highEnoughWinRate,moveRating:e.tr.moveRating,score:gk(e.tr.score??null)}))),console.groupEnd())},vk=(e,t,n)=>{if(!e.suggestedMove||!t||uC.getTotalGames(e.suggestedMove?.results)<100||!e.suggestedMove?.needed||uC.getWinRate(e.suggestedMove.results,oC.flip(e.side))>uC.getWinRate(t.results,oC.flip(e.side))+.02)return!1;let r=CE({positionReport:t,after:e.suggestedMove?.stockfish,before:n,suggestedMove:e.suggestedMove,side:oC.flip(e.side)});return!(Kt(r)||r<dC.Mistake)},yk=(e,t)=>(e.suggestedMove?.stockfish?.getPovCp(t)??0)>0,bk=(e,t,n,r={})=>
23{if(!e.suggestedMove)return!1;let i=uC.getTotalGames(n.masterResults);if(!i||i<10)return!0;let a=pC.getPlayRate(e.suggestedMove,n,!0)??0;if(a<(r.allowNearConsensusWhenAlternativesAreInaccurate?.9:.95))return!1;let o=Fu(mu(t,t=>t===e||!t.suggestedMove?0:pC.getPlayRate(t.suggestedMove,n,!0)??0))??0;return a-o>=.2&&o<=a*.5},xk=typeof window<`u`,Sk=xk?window:null,Ck=xk?document:null,wk={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},Tk={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},Ek={NONE:0,AUTO:1,FORCE:2},Dk={replace:0,none:1,blend:2},Ok=Symbol(),kk=Symbol(),Ak=Symbol(),jk=Symbol(),Lee=Symbol(),Mk=1e-11,Nk=0xe8d4a51000,Pk=1e3,Fk=[],Ik=(()=>{let e=new Map;return e.set(`x`,`translateX`),e.set(`y`,`translateY`),e.set(`z`,`translateZ`),e})(),Lk=[`perspective`,`translateX`,`translateY`,`translateZ`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`scale`,`scaleX`,`scaleY`,`scaleZ`,`skew`,`skewX`,`skewY`],Ree=Lk.reduce((e,t)=>({...e,[t]:t+`(`}),{}),Rk=()=>{},zee=e=>e,Bee=/\)\s*[-.\d]/,Vee=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,Hee=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,Uee=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,zk=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,Bk=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,Vk=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,Hk=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,Uk=/([a-z])([A-Z])/g,Wk=/(\*=|\+=|-=)/,Gk=/var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/,Kk={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:240,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:Pk,delay:0,loopDelay:0,ease:`out(2)`,composition:Dk.replace,modifier:zee,onBegin:Rk,onBeforeUpdate:Rk,onUpdate:Rk,onLoop:Rk,onPause:Rk,onComplete:Rk,onRender:Rk},qk={current:null,root:Ck},Jk={defaults:Kk,precision:4,timeScale:1,tickThreshold:200,editor:null},Yk={version:`4.5.0`,engine:null};xk&&(Sk.AnimeJS||=[],Sk.AnimeJS.push(Yk));var Xk=e=>e.replace(Uk,`$1-$2`).toLowerCase(),Zk=(e,t)=>e.indexOf(t)===0,Qk=Date.now,$k=Array.isArray,eA=e=>e&&e.constructor===Object,tA=e=>typeof e==`number`&&!isNaN(e),nA=e=>typeof e==`string`,rA=e=>typeof e==`function`,iA=e=>e===void 0,aA=e=>iA(e)||e===null,oA=e=>xk&&e instanceof SVGElement,sA=e=>Vee.test(e),cA=e=>Zk(e,`rgb`),lA=e=>Zk(e,`hsl`),uA=e=>sA(e)||(cA(e)||lA(e))&&(e[e.length-1]===`)`||!Bee.test(e)),dA=e=>!Jk.defaults.hasOwnProperty(e),fA=[`opacity`,`rotate`,`overflow`,`color`],pA=(e,t)=>{if(fA.includes(t))return!1;if(e.getAttribute(t)||t in e){if(t===`scale`){let t=e.parentNode;return t&&t.tagName===`filter`}return!0}},mA=Math.pow,hA=Math.sqrt,gA=Math.sin,_A=Math.cos,vA=Math.floor,yA=Math.asin,bA=Math.PI,xA=Math.round,SA=(e,t,n)=>e<t?t:e>n?n:e,CA=(e,t)=>{if(t<0)return e;if(!t)return xA(e);let n=10**t;return xA(e*n)/n},wA=(e,t,n)=>n===1?t:n===0?e:e+(t-e)*n,TA=e=>e===1/0?Nk:e===-1/0?-Nk:e,EA=e=>e<=1e-11?Mk:TA(CA(e,11)),DA=e=>$k(e)?[...e]:e,OA=(e,t)=>{let n={...e};for(let r in t){let i=e[r];n[r]=iA(i)?t[r]:i}return n},kA=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._head,o=i;for(n&&(a=e._tail,o=r);a;){let e=a[o];t(a),a=e}},AA=(e,t,n=`_prev`,r=`_next`)=>{let i=t[n],a=t[r];i?i[r]=a:e._head=a,a?a[n]=i:e._tail=i,t[n]=null,t[r]=null},jA=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._tail;for(;a&&n&&n(a,t);)a=a[r];let o=a?a[i]:e._head;a?a[i]=t:e._head=t,o?o[r]=t:e._tail=t,t[r]=a,t[i]=o},MA=(e,t,n)=>{let r=e.style.transform;if(r){let i=e[jk],a=0,o=r.length,s;for(;a<o;){for(;a<o&&r.charCodeAt(a)===32;)a++;if(a>=o)break;let e=a;for(;a<o&&r.charCodeAt(a)!==40;)a++;if(a>=o)break;let t=r.substring(e,a),n=1,c=a+1,l=-1,u=-1;for(a++;a<o&&n>0;){let e=r.charCodeAt(a);e===40?n++:e===41?n--:e===44&&n===1&&(l===-1?l=a:u===-1&&(u=a)),a++}let d=a-1;t===`translate`||t===`translate3d`?(l===-1?i.translateX=r.substring(c,d).trim():(i.translateX=r.substring(c,l).trim(),u===-1?i.translateY=r.substring(l+1,d).trim():(i.translateY=r.substring(l+1,u).trim(),i.translateZ=r.substring(u+1,d).trim())),s=r.substring(c,d)):t===`scale`||t===`scale3d`?l===-1?i.scale=r.substring(c,d).trim():(i.scaleX=r.substring(c,l).trim(),u===-1?i.scaleY=r.substring(l+1,d).trim():(i.scaleY=r.substring(l+1,u).trim(),i.scaleZ=r.substring(u+1,d).trim())):i[t]=r.substring(c,d)}if(t===`translate3d`&&s)return n&&(n[t]=s),s;let c=i[t];if(!iA(c))return n&&(n[t]=c),c}return t===`translate3d`?`0px, 0px, 0px`:t===`rotate3d`?`0, 0, 0, 0deg`:Zk(t,`scale`)?`1`:Zk(t,`rotate`)||Zk(t,`skew`)?`0deg`:`0px`},NA=e=>{let t=``;for(let n=0,r=Lk.length;n<r;n++){let r=Lk[n],i=e[r];if(i!==void 0){if(r===`translateX`){let r=e.translateY;if(r!==void 0){let a=e.translateZ;a===void 0?(t+=`translate(${i},${r}) `,n+=1):(t+=`translate3d(${i},${r},${a}) `,n+=2);continue}}if(r===`scaleX`&&e.scale===void 0){let r=e.scaleY;if(r!==void 0){let a=e.scaleZ;a===void 0?(t+=`scale(${i},${r}) `,n+=1):(t+=`scale3d(${i},${r},${a}) `,n+=2);continue}}t+=`${Ree[r]}${i}) `}r===`rotateZ`&&e.rotate3d!==void 0&&(t+=`rotate3d(${e.rotate3d}) `)}return e.matrix!==void 0&&(t+=`matrix(${e.matrix}) `),e.matrix3d!==void 0&&(t+=`matrix3d(${e.matrix3d}) `),t},PA=[];function FA(e,t){if(!e)return null;let n=PA.length;outer:for(let r=0;r<n;r++){let n=PA[r];if(n.detect&&!n.detect(e))continue;let i=n.targetAdapters;for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r.detect(e)){let n=r.props[t];if(n&&(!n.gate||n.gate(e)))return n;break outer}}}for(let r=0;r<n;r++){let n=PA[r];if(n.detect&&!n.detect(e))continue;let i=n.propertyResolvers;for(let n=0,r=i.length;n<r;n++){let r=i[n](e,t);if(r)return r}}return null}var IA=e=>{let t=Hee.exec(e)||Uee.exec(e),n=iA(t[4])?1:+t[4];return[+t[1],+t[2],+t[3],n]},LA=e=>{let t=e.length,n=t===4||t===5;return[+(`0x`+e[1]+e[n?1:2]),+(`0x`+e[n?2:3]+e[n?2:4]),+(`0x`+e[n?3:5]+e[n?3:6]),t===5||t===9?+((`0x`+e[n?4:7]+e[n?4:8])/255).toFixed(3):1]},RA=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),zA=e=>{let t=zk.exec(e)||Bk.exec(e),n=t[1]/360,r=t[2]/100,i=t[3]/100,a=iA(t[4])?1:+t[4],o,s,c;if(r===0)o=s=c=i;else{let e=i<.5?i*(1+r):i+r-i*r,t=2*i-e;o=CA(RA(t,e,n+1/3)*255,0),s=CA(RA(t,e,n)*255,0),c=CA(RA(t,e,n-1/3)*255,0)}return[o,s,c,a]},BA=e=>cA(e)?IA(e):sA(e)?LA(e):lA(e)?zA(e):[0,0,0,1],VA=(e,t)=>iA(e)?t:e,HA=(e,t)=>{let n=e.match(Gk),r=t[kk]?t:document.documentElement,i=getComputedStyle(r)?.getPropertyValue(n[1]);return(!i||i.trim()===``)&&n[2]&&(i=n[2].trim()),i||0},UA=(e,t,n,r,i,a)=>
23{if(rA(e)){if(!i){let i=e(t,n,r,a);return isNaN(+i)?i||0:+i}let o=()=>{let i=e(t,n,r,a);return isNaN(+i)?i||0:+i};return i.func=o,o()}if(nA(e)&&Zk(e,`var(`)){if(!i)return HA(e,t);let n=()=>HA(e,t);return i.func=n,n()}return e},WA=(e,t)=>e[kk]?e[Ak]&&pA(e,t)?wk.ATTRIBUTE:Lk.includes(t)||Ik.get(t)?wk.TRANSFORM:Zk(t,`--`)?wk.CSS_VAR:t in e.style?wk.CSS:t in e?wk.OBJECT:wk.ATTRIBUTE:wk.OBJECT,GA=(e,t,n)=>{let r=e.style[t];r&&n&&(n[t]=r);let i=r||getComputedStyle(e[Lee]||e).getPropertyValue(t);return i===`auto`?`0`:i},KA=(e,t,n,r)=>{let i=iA(n)?WA(e,t):n,a=FA(e,t);if(a){let n=a.get(e);return n&&r&&(r[t]=n),n??0}if(i===wk.OBJECT){let n=e[t];return n&&r&&(r[t]=n),n||0}if(i===wk.ATTRIBUTE){let n=e.getAttribute(t);return n&&r&&(r[t]=n),n}return i===wk.TRANSFORM?MA(e,t,r):i===wk.CSS_VAR?GA(e,t,r).trimStart():GA(e,t,r)},qA=(e,t,n)=>n===`-`?e-t:n===`+`?e+t:e*t,JA=()=>({t:Tk.NUMBER,n:0,u:null,o:null,d:null,s:null}),YA=(e,t)=>{if(t.t=Tk.NUMBER,t.n=0,t.u=null,t.o=null,t.d=null,t.s=null,!e)return t;let n=+e;if(!isNaN(n))return t.n=n,t;let r=e;r[1]===`=`&&(t.o=r[0],r=r.slice(2));let i=!r.includes(` `)&&Hk.exec(r);if(i)return t.t=Tk.UNIT,t.n=+i[1],t.u=i[2],t;if(t.o)return t.n=+r,t;if(uA(r))return t.t=Tk.COLOR,t.d=BA(r),t;{let e=r.match(Vk);return t.t=Tk.COMPLEX,t.d=e?e.map(Number):[],t.s=r.split(Vk)||[],t}},XA=(e,t)=>(t.t=e._valueType,t.n=e._toNumber,t.u=e._unit,t.o=null,t.d=DA(e._toNumbers),t.s=DA(e._strings),t),ZA=JA(),QA=(e,t,n)=>{let r=e._modifier,i=e._fromNumbers,a=e._toNumbers,o=e._strings,s=o[0];for(let c=0,l=a.length;c<l;c++){let l=r(CA(wA(i[c],a[c],t),n)),u=o[c+1];s+=`${u?l+u:l}`,e._numbers[c]=l}return s},$A=(e,t,n,r,i)=>{let a=e.parent,o=e.duration,s=e.completed,c=e.iterationDuration,l=e.iterationCount,u=e._currentIteration,d=e._loopDelay,f=e._reversed,p=e._alternate,m=e._hasChildren,h=e._delay,g=e._currentTime,_=h+c,v=t-h,y=SA(g,-h,o),b=SA(v,-h,o),x=v-g,S=b>0,C=b>=o,w=o<=Mk,T=i===Ek.FORCE,E=0,D=v,ee=0;if(l>1){let t=c+(C?0:d),n=~~(b/t);e._currentIteration=SA(n,0,l),C&&e._currentIteration--,E=e._currentIteration%2,D=b-n*t||0}let te=f^(p&&E),O=e._ease,k=C?te?0:o:te?c-D:D;O&&(k=c*O(k/c)||0);let A=(a?a.backwards:v<g)?!te:!!te;if(e._currentTime=v,e._iterationTime=k,e.backwards=A,S&&!e.began?(e.began=!0,!n&&(!a||!A&&a.began)&&e.onBegin(e)):v<=0&&(e.began=!1),!n&&!m&&S&&e._currentIteration!==u&&e.onLoop(e),T||i===Ek.AUTO&&(t>=(a&&h>0?0:h)&&t<=_||t<=h&&y>h||t>=_&&y!==o)||k>=_&&y!==o||k<=h&&y>0&&!C||t<=y&&y===o&&s||C&&!s&&w){if(S&&(e.computeDeltaTime(y),n||e.onBeforeUpdate(e)),!m){let t=T||(A?x*-1:x)>=Jk.tickThreshold,i=CA(e._offset+(a?a._offset:0)+h+k,12),o=e._head,s,c,l,u,d=0;for(;o;){let e=o._composition,n=o._currentTime,a=o._changeDuration,f=o._absoluteStartTime+o._changeDuration,p=o._nextRep,m=o._prevRep,h=e!==Dk.none,g=m?m._absoluteStartTime+m._changeDuration:0,_=m&&m.parent!==o.parent,v=!p||p._isOverridden?f:p.parent===o.parent?f+p._delay:p._absoluteStartTime<p._absoluteUpdateStartTime?p._absoluteStartTime:p._absoluteUpdateStartTime;if((t||(n!==a||i<=v||m&&!_&&(!p||p.parent!==o.parent))&&(n!==0||i>=o._absoluteStartTime||_&&!o._hasFromValue&&!m._isOverridden&&i>=g||p&&!p._isOverridden&&p.parent===o.parent&&p._currentTime!==0&&k<p._startTime))&&(!m||_||k>=o._startTime)&&(!h||!o._isOverridden&&(!o._isOverlapped||i<=f)&&(!p||p._isOverridden||i<=v)&&(!m||m._isOverridden||(_?i>=o._absoluteStartTime||!o._hasFromValue&&i>=g:i>=g+o._delay)))){let t=o._currentTime=SA(k-o._startTime,0,a),n=o._ease(t/o._updateDuration),i=o._modifier,f=o._valueType,p=o._tweenType,m=p===wk.OBJECT,g=f===Tk.NUMBER,_=g&&m||n===0||n===1?-1:Jk.precision,v,y;if(g)v=y=i(CA(wA(o._fromNumber,o._toNumber,n),_));else if(f===Tk.UNIT)y=i(CA(wA(o._fromNumber,o._toNumber,n),_)),v=`${y}${o._unit}`;else if(f===Tk.COLOR){let e=o._numbers,t=o._fromNumbers,a=o._toNumbers,s=1-n,c=t[0],l=t[1],u=t[2],d=a[0],f=a[1],p=a[2];e[0]=i(Math.sqrt(c*c*s+d*d*n)),e[1]=i(Math.sqrt(l*l*s+f*f*n)),e[2]=i(Math.sqrt(u*u*s+p*p*n)),e[3]=i(wA(t[3],a[3],n)),(!o._setter||r)&&(v=`rgba(${CA(e[0],0)},${CA(e[1],0)},${CA(e[2],0)},${e[3]})`)}else f===Tk.COMPLEX&&(v=QA(o,n,_));if(h&&(o._number=y),!r&&e!==Dk.blend){let e=o.property;s=o.target,o._setter?o._setter(s,y,o):m?s[e]=v:p===wk.ATTRIBUTE?s.setAttribute(e,v):(c=s.style,p===wk.TRANSFORM?(s!==l&&(l=s,u=s[jk]),u[e]=v,d=1):p===wk.CSS?c[e]=v:p===wk.CSS_VAR&&c.setProperty(e,v)),S&&(ee=1)}else o._value=v}else n&&m&&!_&&k<o._startTime&&(o._currentTime=0);d&&o._renderTransforms&&(c.transform=NA(u),d=0),o=o._next}!n&&ee&&e.onRender(e)}!n&&S&&e.onUpdate(e)}return a&&w?!n&&(a.began&&!A&&v>0&&!s||A&&v<=1e-11&&s)&&(e.onComplete(e),e.completed=!A):S&&C?l===1/0?e._startTime+=e.duration:e._currentIteration>=l-1&&(e.paused=!0,!s&&!m&&(e.completed=!0,!n&&(!a||!A&&a.began)&&(e.onComplete(e),e._resolve(e)))
23):e.completed=!1,ee},ej=(e,t,n,r,i)=>{let a=e._currentIteration;if($A(e,t,n,r,i),e._hasChildren){let o=e,s=o.backwards,c=r?t:o._iterationTime,l=Qk(),u=0,d=!0;if(!r&&o._currentIteration!==a){let e=o.iterationDuration;kA(o,t=>{if(!s)!t.completed&&!t.backwards&&t._currentTime<t.iterationDuration&&$A(t,e,n,1,Ek.FORCE),t.began=!1,t.completed=!1;else{let r=t.duration,i=t._offset+t._delay,a=i+r;!n&&r<=1e-11&&(!i||a===e)&&t.onComplete(t)}}),n||o.onLoop(o)}kA(o,e=>{let t=CA((c-e._offset)*e._speed,12);if(s&&t>e._delay+e.duration)return;let a=e._fps<o._fps?e.requestTick(l):i;u+=$A(e,t,n,r,a),!e.completed&&d&&(d=!1)},s),!n&&u&&o.onRender(o),(d||s)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},tj={},nj=(e,t,n)=>{if(n===wk.TRANSFORM)return Ik.get(e)||e;if(n===wk.CSS||n===wk.ATTRIBUTE&&oA(t)&&e in t.style){let t=tj[e];if(t)return t;{let t=e&&Xk(e);return tj[e]=t,t}}return e},rj=(e,t=!1)=>{if(e._hasChildren)kA(e,e=>rj(e,t),!0);else{let n=e;n.pause(),kA(n,e=>{let r=e.property,i=e.target,a=e._tweenType,o=e._inlineValue,s=aA(o)||o===``;if(e._setter){if(!t&&!s){if(YA(o,ZA),ZA.d){let t=ZA.d,n=e._numbers;for(let e=0,r=t.length;e<r;e++)n[e]=t[e]}else e._number=ZA.n;e._setter(e.target,e._number,e)}}else if(a===wk.OBJECT)!t&&!s&&(i[r]=o);else if(i[kk]){if(a===wk.ATTRIBUTE)t||(s?i.removeAttribute(r):i.setAttribute(r,o));else{let t=i.style;if(a===wk.TRANSFORM){let n=i[jk];s?delete n[r]:n[r]=o,e._renderTransforms&&(Object.keys(n).length?t.transform=NA(n):t.removeProperty(`transform`))}else s?t.removeProperty(Xk(r)):t[r]=o}}i[kk]&&n._tail===e&&n.targets.forEach(e=>{e.getAttribute&&e.getAttribute(`style`)===``&&e.removeAttribute(`style`)})})}return e},ij=class{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=Pk/240,this._fps=240,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(e){let t=+e,n=t<1e-11?Mk:t,r=Pk/n;n>Kk.frameRate&&(Kk.frameRate=n),this._fps=n,this._frameDuration=r}get speed(){return this._speed}set speed(e){let t=+e;this._speed=t<1e-11?Mk:t}requestTick(e){let t=this._frameDuration,n=e-this._lastTickTime,r=t*.25;return n+(r<4?r:4)<t?Ek.NONE:(this._lastTickTime=n>=t?e-n%t:e,Ek.AUTO)}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t}},aj={animation:null,update:Rk},oj=e=>{let t=aj.animation;return t||(t={duration:Mk,computeDeltaTime:Rk,_offset:0,_delay:0,_head:null,_tail:null},aj.animation=t,aj.update=()=>{e.forEach(e=>{for(let t in e){let n=e[t],r=n._head;if(r){let e=r._valueType,t=e===Tk.COMPLEX||e===Tk.COLOR?DA(r._fromNumbers):null,i=r._fromNumber,a=n._tail;for(;a&&a!==r;){if(t)for(let e=0,n=a._numbers.length;e<n;e++)t[e]+=a._numbers[e];else i+=a._number;a=a._prevAdd}r._toNumber=i,r._toNumbers=t}}}),$A(t,1,1,0,Ek.FORCE)}),t},sj=xk?requestAnimationFrame:setImmediate,cj=xk?cancelAnimationFrame:clearImmediate,lj=class extends ij{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=Kk,this.paused=!0,this.reqId=0}update(){let e=this._currentTime=Qk();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,n=this._fps,r=this._head;for(;r;){let i=r._next;r.paused?(AA(this,r),this._hasChildren=!!this._tail,r._running=!1,r.completed&&!r._cancelled&&r.cancel()):ej(r,(e-r._startTime)*r._speed*t,0,0,r._fps<n?r.requestTick(e):Ek.AUTO),r=i}aj.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(Qk()),this.reqId=sj(dj)),this}pause(){if(this.reqId)return this.paused=!0,fj()}resume(){if(this.paused)return this.paused=!1,kA(this,e=>e.resetTime()),this.wake()}get speed(){return this._speed*(Jk.timeScale===1?1:Pk)}set speed(e){let t=e*Jk.timeScale;this._speed!==t&&(this._speed=t,kA(this,e=>e.speed=e._speed))}get timeUnit(){return Jk.timeScale===1?`ms`:`s`}set timeUnit(e){let t=.001,n=e===`s`,r=n?t:1;if(Jk.timeScale!==r){Jk.timeScale=r,Jk.tickThreshold=200*r;let e=n?t:Pk;this.defaults.duration*=e,this._speed*=e}}get precision(){return Jk.precision}set precision(e){Jk.precision=e}},uj=(()=>{let e=new lj(Qk());return xk&&(Yk.engine=e,Ck.addEventListener(`visibilitychange`,()=>{e.pauseOnDocumentHidden&&(Ck.hidden?e.pause():e.resume())})),e})(),dj=()=>{uj._head?(uj.reqId=sj(dj),uj.update()):uj.reqId=0},fj=()=>(cj(uj.reqId),uj.reqId=0,uj),pj={_rep:new WeakMap,_add:new Map},mj=(e,t,n=`_rep`)=>{let r=pj[n],i=r.get(e);
23return i||(i={},r.set(e,i)),i[t]?i[t]:i[t]={_head:null,_tail:null}},hj=(e,t)=>e._isOverridden||e._absoluteStartTime>t._absoluteStartTime,gj=e=>{e._isOverlapped=1,e._isOverridden=1,e._changeDuration=Mk,e._currentTime=Mk},_j=(e,t)=>{let n=e._composition;if(n===Dk.replace){let n=e._absoluteStartTime;jA(t,e,hj,`_prevRep`,`_nextRep`);let r=e._prevRep;if(r){let t=r.parent,i=r._absoluteEndTime;if(e.parent.id!==t.id&&t.iterationCount>1&&i+(t.duration-t.iterationDuration)>n){gj(r);let e=r._prevRep;for(;e&&e.parent.id===t.id;)gj(e),e=e._prevRep}let a=e._absoluteUpdateStartTime;if(i>a){let e=r._startTime,t=CA(a-(i-(e+r._updateDuration))-e,12);r._changeDuration=t,r._currentTime=t,r._isOverlapped=1,t<1e-11&&gj(r)}let o=e.parent.parent;if(!o||o!==t.parent){let e=!0;if(kA(t,t=>{t._isOverlapped||(e=!1)}),e){let e=t.parent;if(e){let n=!0;kA(e,e=>{e!==t&&kA(e,e=>{e._isOverlapped||(n=!1)})}),n&&e.cancel()}else t.cancel()}}}}else if(n===Dk.blend){let t=mj(e.target,e.property,`_add`),n=oj(pj._add),r=t._head;r||(r={...e},r._composition=Dk.replace,r._updateDuration=Mk,r._startTime=0,r._numbers=DA(e._fromNumbers),r._number=0,r._next=null,r._prev=null,jA(t,r),jA(n,r));let i=e._toNumber;if(e._fromNumber=r._fromNumber-i,e._toNumber=0,e._numbers=DA(e._fromNumbers),e._number=0,r._fromNumber=i,e._toNumbers.length){let t=DA(e._toNumbers);t.forEach((t,n)=>{e._fromNumbers[n]=r._fromNumbers[n]-t,e._toNumbers[n]=0}),r._fromNumbers=t}jA(t,e,null,`_prevAdd`,`_nextAdd`)}return e},vj=e=>{let t=e._composition;if(t!==Dk.none){let n=e.target,r=e.property,i=pj._rep.get(n)[r];if(AA(i,e,`_prevRep`,`_nextRep`),t===Dk.blend){let t=pj._add,i=t.get(n);if(!i)return;let a=i[r],o=aj.animation;AA(a,e,`_prevAdd`,`_nextAdd`);let s=a._head;if(s&&s===a._tail){AA(a,s,`_prevAdd`,`_nextAdd`),AA(o,s);let e=!0;for(let t in i)if(i[t]._head){e=!1;break}e&&t.delete(n)}}}return e},yj=(e,t,n)=>{let r=!1;return kA(t,i=>{let a=i.target;if(e.includes(a)){let e=i.property,o=i._tweenType,s=nj(n,a,o);(!s||s&&s===e)&&(i.parent._tail===i&&i._tweenType===wk.TRANSFORM&&i._prev&&i._prev._tweenType===wk.TRANSFORM&&(i._prev._renderTransforms=1),AA(t,i),vj(i),r=!0)}},!0),r},bj=(e,t,n)=>{let r=t||uj,i;if(r._hasChildren){let t=0;kA(r,a=>{if(!a._hasChildren){if(i=yj(e,a,n),i&&!a._head)a.cancel(),AA(r,a);else{let e=a._offset+a._delay+a.duration;e>t&&(t=e)}}a._head?bj(e,a,n):a._hasChildren=!1},!0),iA(r.iterationDuration)||(r.iterationDuration=t)}else i=yj(e,r,n);i&&!r._head&&(r._hasChildren=!1,r.cancel&&r.cancel())},xj=e=>(e.paused=!0,e.began=!1,e.completed=!1,e),Sj=e=>e._cancelled?(e._hasChildren?kA(e,Sj):kA(e,e=>{e._composition!==Dk.none&&_j(e,mj(e.target,e.property))}),e._cancelled=0,e):e,Cj=0,wj=(e,t)=>e._priority>t._priority,Tj=class extends ij{constructor(e={},t=null,n=0){super(0),++Cj;let{id:r,delay:i,duration:a,reversed:o,alternate:s,loop:c,loopDelay:l,autoplay:u,frameRate:d,playbackRate:f,priority:p,onComplete:m,onLoop:h,onPause:g,onBegin:_,onBeforeUpdate:v,onUpdate:y}=e;qk.current&&qk.current.register(this);let b=t?0:uj._lastTickTime,x=t?t.defaults:Jk.defaults,S=rA(i)||iA(i)?x.delay:+i,C=rA(a)||iA(a)?1/0:+a,w=VA(c,x.loop),T=VA(l,x.loopDelay),E=w===!0||w===1/0||w<0?1/0:w+1,D=0;t?D=n:(uj.reqId||uj.requestTick(Qk()),D=(uj._lastTickTime-uj._startTime)*Jk.timeScale),this.id=iA(r)?Cj:r,this.parent=t,this.duration=TA((C+T)*E-T)||1e-11,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=_||x.onBegin,this.onBeforeUpdate=v||x.onBeforeUpdate,this.onUpdate=y||x.onUpdate,this.onLoop=h||x.onLoop,this.onPause=g||x.onPause,this.onComplete=m||x.onComplete,this.iterationDuration=C,this.iterationCount=E,this._autoplay=!t&&VA(u,x.autoplay),this._offset=D,this._delay=S,this._loopDelay=T,this._iterationTime=0,this._currentIteration=0,this._resolve=Rk,this._running=!1,this._reversed=+VA(o,x.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=VA(s,x.alternate),this._prev=null,this._next=null,this._lastTickTime=b,this._startTime=b,this._lastTime=b,this._fps=VA(d,x.frameRate),this._speed=VA(f,x.playbackRate),this._priority=+VA(p,1)}get cancelled(){return!!this._cancelled}set cancelled(e){e?this.cancel():this.reset(!0).play()}get currentTime(){return SA(CA(this._currentTime,Jk.precision),-this._delay,this.duration)}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume()}get iterationCurrentTime(){return SA(CA(this._iterationTime,Jk.precision),0,this.iterationDuration)}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e}get progress(){return SA(CA(this._currentTime/this.duration,10),0,1)}set progress(e){this.currentTime=this.duration*e}get iterationProgress(){return SA(CA(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e}get currentIteration(){return this._currentIteration}set currentIteration(e){this.currentTime=this.iterationDuration*SA(+e,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(e){e?this.reverse():this.play()}get speed(){return super.speed}set speed(e){super.speed=e,this.resetTime()}reset(e=!1){return Sj(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,ej(this,0,1,~~e,Ek.FORCE),xj(this),this._hasChildren&&kA(this,xj),this}init(e=!1){this.fps=this._fps,this.speed=this._speed,!e&&this._hasChildren&&ej(this,this.duration,1,~~e,Ek.FORCE),this.reset(e);let t=this._autoplay;return t===!0?this.resume():t&&!iA(t.linked)&&t.link(this),this}resetTime(){let e=1/(this._speed*uj._speed);return this._startTime=Qk()-(this._currentTime+this._delay)*e,this}pause(){return this.paused?this:(this.paused=!0,this.onPause(this),this)}resume(){return this.paused?(this.paused=!1,this.duration<=1e-11&&!this._hasChildren?ej(this,Mk,0,0,Ek.FORCE):(this._running||=(jA(uj,this,wj),uj._hasChildren=!0,!0),this.resetTime(),this._startTime-=12,uj.wake()),this):this}restart(){return this.reset().resume()}seek(e,t=0,n=0){Sj(this),this.completed=!1;let r=this.paused;return this.paused=!0,ej(this,e+this._delay,~~t,~~n,Ek.AUTO),r?this:this.resume()}alternate(){let e=this._reversed,t=this.iterationCount,n=this.iterationDuration,r=t===1/0?vA(Nk/n):t;return this._reversed=+(this._alternate&&!(r%2)?e:!e),t===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*r-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?kA(this,e=>e.cancel(),!0):kA(this,vj),this._cancelled=1,this.pause()}stretch(e){let t=this.duration,n=EA(e);if(t===n)return this;let r=e/t,i=e<=Mk;return this.duration=i?Mk:n,this.iterationDuration=i?Mk:EA(this.iterationDuration*r),this._offset*=r,this._delay*=r,this._loopDelay*=r,this}revert(){ej(this,0,1,0,Ek.AUTO);let e=this._autoplay;return e&&e.linked&&e.linked===this&&e.revert(),this.cancel()}complete(e=0){return this.seek(this.duration,e).cancel()}then(e=Rk){let t=this.then,n=()=>{this.then=null,e(this),this.then=t,this._resolve=Rk};return new Promise(e=>(this._resolve=()=>e(n()),this.completed&&this._resolve(),this))}};function Ej(e){let t=nA(e)?qk.root.querySelectorAll(e):e;if(t instanceof NodeList||t instanceof HTMLCollection)return t}function Dj(e){if(aA(e))return[];if(!xk)return $k(e)&&e.flat(1/0)||[e];if($k(e)){let t=e.flat(1/0),n=[];for(let e=0,r=t.length;e<r;e++){let r=t[e];if(!aA(r)){let e=Ej(r);if(e)for(let t=0,r=e.length;t<r;t++){let r=e[t];if(!aA(r)){let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}else{let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}}return n}let t=Ej(e);return t?Array.from(t):[e]}function Oj(e){let t=Dj(e),n=t.length;for(let e=0;e<n;e++){let n=t[e];if(!n[Ok]){n[Ok]=!0;let e=oA(n);(n.nodeType||e)&&(n[kk]=!0,n[Ak]=e,n[jk]={})}}return t}var kj={deg:1,rad:180/bA,turn:360},Aj={},jj=(e,t,n,r=!1)=>{let i=t.u,a=t.n;if(t.t===Tk.UNIT&&i===n)return t;let o=a+i+n,s=Aj[o];if(!iA(s)&&!r)t.n=s;else{let r;if(i in kj)r=a*kj[i]/kj[n];else{let t=e.cloneNode(),o=e.parentNode,s=o&&o!==Ck?o:Ck.body;s.appendChild(t);let c=t.style;c.width=100+i;let l=t.offsetWidth||100;c.width=100+n;let u=l/(t.offsetWidth||100);s.removeChild(t),r=u*a}t.n=r,Aj[o]=r}return t.t,Tk.UNIT,t.u=n,t},Mj=e=>e,Nj=(e=1.68)=>t=>mA(t,+e),Pj={in:e=>t=>e(t),out:e=>t=>1-e(1-t),inOut:e=>t=>t<.5?e(t*2)/2:1-e(t*-2+2)/2,outIn:e=>t=>t<.5?(1-e(1-t*2))/2:(e(t*2-1)+1)/2},Fj=bA/2,Ij=bA*2,Lj={"":Nj,Quad:Nj(2),Cubic:Nj(3),Quart:Nj(4),Quint:Nj(5),Sine:e=>1-_A(e*Fj),Circ:e=>1-hA(1-e*e),Expo:e=>e?mA(2,10*e-10):0,Bounce:e=>{let t,n=4;for(;e<((t=mA(2,--n))-1)/11;);return 1/mA(4,3-n)-7.5625*mA((t*3-2)/22-e,2)},Back:(e=1.7)=>t=>(+e+1)*t*t*t-+e*t*t,Elastic:(e=1,t=.3)=>{let n=SA(+e,1,10),r=SA(+t,Mk,2),i=r/Ij*yA(1/n),a=Ij/r;return e=>e===0||e===1?e:-n*mA(2,-10*(1-e))*gA((1-e-i)*a)}},Rj=(()=>{let e={linear:Mj,none:Mj};for(let t in Pj)for(let n in Lj){let r=Lj[n],i=Pj[t];e[t+n]=n===``||n===`Back`||n===`Elastic`?(e,t)=>i(r(e,t)):i(r)}return e})(),zj={linear:Mj,none:Mj},Bj=e=>{if(zj[e])return zj[e];if(e.indexOf(`(`)<=-1){let t=Pj[e]||e.includes(`Back`)||e.includes(`Elastic`)?Rj[e]():Rj[e];return t?zj[e]=t:Mj}{let t=e.slice(0,-1).split(`(`),n=Rj[t[0]];return n?zj[e]=n(...t[1].split(`,`)):Mj}}
23,Vj=[`steps(`,`irregular(`,`linear(`,`cubicBezier(`],Hj=e=>{if(nA(e)){for(let t=0,n=Vj.length;t<n;t++)if(Zk(e,Vj[t]))return console.warn(`String syntax for \`ease: "${e}"\` has been removed from the core and replaced by importing and passing the easing function directly: \`ease: ${e}\``),Mj}return rA(e)?e:nA(e)?Bj(e):Mj},Uj=JA(),Wj=JA(),Gj={},Kj={func:null},qj={func:null},Jj=[null],Yj=[null,null],Xj={to:null},Zj=0,Qj=0,$j,eM,tM=(e,t)=>{let n={};if($k(e)){let t=[].concat(...e.map(e=>Object.keys(e))).filter(dA);for(let r=0,i=t.length;r<i;r++){let i=t[r];n[i]=e.map(e=>{let t={};for(let n in e){let r=e[n];dA(n)?n===i&&(t.to=r):t[n]=r}return t})}}else{let r=VA(t.duration,Jk.defaults.duration);Object.keys(e).map(t=>({o:parseFloat(t)/100,p:e[t]})).sort((e,t)=>e.o-t.o).forEach(e=>{let t=e.o,i=e.p;for(let e in i)if(dA(e)){let a=n[e];a||=n[e]=[];let o=t*r,s=a.length,c=a[s-1],l={to:i[e]},u=0;for(let e=0;e<s;e++)u+=a[e].duration;s===1&&(l.from=c.to),i.ease&&(l.ease=i.ease),l.duration=o-(s?u:0),a.push(l)}return e});for(let e in n){let t=n[e],r;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.ease;n.ease=r||void 0,r=i}t[0].duration||t.shift()}}return n},nM=class extends Tj{constructor(e,t,n,r,i=!1,a=0,o){super(t,n,r),this._head,this._tail,++Qj;let s=Oj(e),c=s.length,l=t.keyframes,u=l?OA(tM(l,t),t):t,{id:d,delay:f,duration:p,ease:m,playbackEase:h,modifier:g,composition:_,onRender:v}=u,y=n?n.defaults:Jk.defaults,b=VA(m,y.ease),x=VA(h,y.playbackEase),S=x?Hj(x):null,C=!iA(b.ease),w=C?b.ease:VA(m,S?`linear`:y.ease),T=C?b.settlingDuration:VA(p,y.duration),E=VA(f,y.delay),D=g||y.modifier,ee=iA(_)&&c>=1e3?Dk.none:iA(_)?y.composition:_,te=this._offset+(n?n._offset:0);C&&(b.parent=this);let O=NaN,k=NaN,A=0,ne=0;for(let e=0;e<c;e++){let t=s[e],r=a||e,c=o||s,l=NaN,d=NaN;for(let e in u)if(dA(e)){let a=WA(t,e),o=FA(t,e),s=nj(e,t,a),f=u[e],p=$k(f);if(i&&!p&&(Yj[0]=f,Yj[1]=f,f=Yj),p){let e=f.length,t=!eA(f[0]);e===2&&t?(Xj.to=f,Jj[0]=Xj,$j=Jj):e>2&&t?($j=[],f.forEach((e,t)=>{t?t===1?(Yj[1]=e,$j.push(Yj)):$j.push(e):Yj[0]=e})):$j=f}else Jj[0]=f,$j=Jj;let m=null,h=null,g=NaN,_=0,v=0;for(let e=$j.length;v<e;v++){let i=$j[v];eA(i)?eM=i:(Xj.to=i,eM=Xj),Kj.func=null,qj.func=null;let l=UA(VA(eM.composition,ee),t,r,c,null,null),u=tA(l)?l:Dk[l];!m&&u!==Dk.none&&(m=mj(t,s));let d=m?m._tail:null,f=n&&d&&d.parent.parent===n?d:h,p=UA(eM.to,t,r,c,Kj,f),y;eA(p)&&!iA(p.to)?(eM=p,y=p.to):y=p;let b=UA(eM.from,t,r,c,qj,f),x=eM.ease||w,S=UA(x,t,r,c,null,f),C=rA(S)||nA(S)?S:x,O=!iA(C)&&!iA(C.ease),k=O?C.ease:C,re=O?C.settlingDuration:UA(VA(eM.duration,e>1?UA(T,t,r,c,null,f)/e:T),t,r,c,null,f),ie=UA(VA(eM.delay,v?0:E),t,r,c,null,f),ae=eM.modifier||D,oe=!iA(b),se=!iA(y),j=$k(y),ce=j||oe&&se,M=h?_:0,N=h?_+ie:ie,le=CA(te+N,12),P=CA(te+M,12);!ne&&(oe||j)&&(ne=1);let ue=h;if(u!==Dk.none){let e=m._head;for(;e&&e._absoluteStartTime<=le;)if(e._isOverridden||(ue=e),e=e._nextRep,e&&e._absoluteStartTime>=le)for(;e;)gj(e),e=e._nextRep}if(ce){YA(j?UA(y[0],t,r,c,qj,f):b,Uj),YA(j?UA(y[1],t,r,c,Kj,f):y,Wj);let e=KA(t,s,a,Gj);Uj.t===Tk.NUMBER&&(ue?ue._valueType===Tk.UNIT&&(Uj.t=Tk.UNIT,Uj.u=ue._unit):(YA(e,ZA),ZA.t===Tk.UNIT&&(Uj.t=Tk.UNIT,Uj.u=ZA.u)))}else se?YA(y,Wj):h?XA(h,Wj):YA(n&&ue&&ue.parent.parent===n?ue._value:KA(t,s,a,Gj),Wj),oe?YA(b,Uj):h?XA(h,Uj):YA(n&&ue&&ue.parent.parent===n?ue._value:KA(t,s,a,Gj),Uj);if(Uj.o&&(Uj.n=qA(ue?ue._toNumber:YA(KA(t,s,a,Gj),ZA).n,Uj.n,Uj.o)),Wj.o&&(Wj.n=qA(Uj.n,Wj.n,Wj.o)),Uj.t!==Wj.t){if(Uj.t===Tk.COMPLEX||Wj.t===Tk.COMPLEX){let e=Uj.t===Tk.COMPLEX?Uj:Wj,t=Uj.t===Tk.COMPLEX?Wj:Uj;t.t=Tk.COMPLEX,t.s=DA(e.s),t.d=e.d.map(()=>t.n)}else if(Uj.t===Tk.UNIT||Wj.t===Tk.UNIT){let e=Uj.t===Tk.UNIT?Uj:Wj,t=Uj.t===Tk.UNIT?Wj:Uj;t.t=Tk.UNIT,t.u=e.u}else if(Uj.t===Tk.COLOR||Wj.t===Tk.COLOR){let e=Uj.t===Tk.COLOR?Uj:Wj,t=Uj.t===Tk.COLOR?Wj:Uj;t.t=Tk.COLOR,t.d=e.d.map(()=>0)}}if(Uj.u!==Wj.u){let e=Wj.u?Uj:Wj;e=jj(t,e,Wj.u?Wj.u:Uj.u,!1)}if(Wj.d&&Uj.d&&Wj.d.length!==Uj.d.length){let e=Uj.d.length>Wj.d.length?Uj:Wj,t=e===Uj?Wj:Uj;t.d=e.d.map((e,n)=>iA(t.d[n])?0:t.d[n]),t.s=DA(e.s)}let de=CA(+re||1e-11,12),fe=Gj[s];aA(fe)||(Gj[s]=null);let F=o?o.set:null;_=CA(N+de,12);let pe=Uj.d,me=Wj.d,I=Wj.s,he={parent:this,id:Zj++,property:s,target:t,_value:null,_toFunc:Kj.func,_fromFunc:qj.func,_ease:Hj(k),_fromNumbers:pe?DA(pe):Fk,_toNumbers:me?DA(me):Fk,_strings:I?DA(I):Fk,_fromNumber:Uj.n,_toNumber:Wj.n,_numbers:pe?DA(pe):Fk,_number:Uj.n,_unit:Wj.u,_modifier:ae,_currentTime:0,_startTime:N,_delay:+ie,_updateDuration:de,_changeDuration:de,_absoluteStartTime:le,_absoluteUpdateStartTime:P,_absoluteEndTime:CA(te+_,12),_hasFromValue:oe||j?1:0,_tweenType:a,_setter:F,_valueType:Wj.t,_composition:u,_isOverlapped:0,_isOverrid
23den:0,_renderTransforms:0,_inlineValue:fe,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};u!==Dk.none&&_j(he,m);let ge=he._valueType;if(ge===Tk.COMPLEX)he._value=QA(he,1,-1);else if(ge===Tk.UNIT)he._value=`${ae(he._toNumber)}${he._unit}`;else if(ge===Tk.COLOR){let e=Wj.d;he._value=`rgba(${CA(e[0],0)},${CA(e[1],0)},${CA(e[2],0)},${e[3]})`}else he._value=ae(he._toNumber);isNaN(g)&&(g=he._startTime),h=he,A++,jA(this,he)}(isNaN(k)||g<k)&&(k=g),(isNaN(O)||_>O)&&(O=_),a===wk.TRANSFORM&&(l=A-v,d=A)}if(!isNaN(l)){let e=0;kA(this,t=>{e>=l&&e<d&&(t._renderTransforms=1,t._composition===Dk.blend&&kA(aj.animation,e=>{e.id===t.id&&(e._renderTransforms=1)})),e++})}}c||console.warn(`No target found. Make sure the element you're trying to animate is accessible before creating your animation.`),k?(kA(this,e=>{e._startTime-e._delay||(e._delay-=k),e._startTime-=k}),O-=k):k=0,O||(O=Mk,this.iterationCount=0),this.targets=s,this.id=iA(d)?Qj:d,this.duration=O===1e-11?Mk:TA((O+this._loopDelay)*this.iterationCount-this._loopDelay)||1e-11,this.onRender=v||y.onRender,this._ease=S,this._delay=k,this.iterationDuration=O,!this._autoplay&&ne&&this.onRender(this)}stretch(e){let t=this.duration;if(t===EA(e))return this;let n=e/t;return kA(this,e=>{e._updateDuration=EA(e._updateDuration*n),e._changeDuration=EA(e._changeDuration*n),e._currentTime*=n,e._delay*=n,e._startTime*=n,e._absoluteStartTime*=n,e._absoluteUpdateStartTime*=n,e._absoluteEndTime*=n}),super.stretch(e)}refresh(){return kA(this,e=>{let t=e._toFunc,n=e._fromFunc;(t||n)&&(n?(YA(n(),Uj),Uj.u!==e._unit&&e.target[kk]&&jj(e.target,Uj,e._unit,!0),e._fromNumbers=DA(Uj.d),e._fromNumber=Uj.n):t&&(YA(KA(e.target,e.property,e._tweenType),ZA),e._fromNumbers=DA(ZA.d),e._fromNumber=ZA.n),t&&(YA(t(),Wj),e._toNumbers=DA(Wj.d),e._strings=DA(Wj.s),e._toNumber=Wj.o?qA(e._fromNumber,Wj.n,Wj.o):Wj.n))}),this.duration===1e-11&&this.restart(),this}revert(){return super.revert(),rj(this)}then(e){return super.then(e)}},rM=(e,t)=>Jk.editor?Jk.editor.addAnimation(e,t):new nM(e,t,null,0,!1).init(),iM=(e,t)=>{if(Zk(t,`<`)){let n=t[1]===`<`,r=e._tail,i=r?r._offset+r._delay:0;return n?i:i+r.duration}},aM=(e,t)=>{let n=e.iterationDuration;if(n===1e-11&&(n=0),iA(t))return n;if(tA(+t))return+t;let r=t,i=e?e.labels:null,a=!aA(i),o=iM(e,r),s=!iA(o),c=Wk.exec(r);if(c){let e=c[0],t=r.split(e),l=a&&t[0]?i[t[0]]:n;return qA(s?o:a?l:n,+t[1],e[0])}return s?o:a?iA(i[r])?n:i[r]:n};function oM(e){return TA((e.iterationDuration+e._loopDelay)*e.iterationCount-e._loopDelay)||1e-11}function sM(e,t,n,r,i,a){let o=tA(e.duration)&&e.duration<=1e-11?n-Mk:n;t.composition&&ej(t,o,1,1,Ek.AUTO);let s=r?new nM(r,e,t,o,!1,i,a):new Tj(e,t,o);return t.composition&&s.init(!0),jA(t,s),kA(t,e=>{let n=e._offset+e._delay+e.duration;n>t.iterationDuration&&(t.iterationDuration=n)}),t.duration=oM(t),t}var cM=0,lM=class extends Tj{constructor(e={}){super(e,null,0),++cM,this.id=iA(e.id)?cM:e.id,this.duration=0,this.labels={};let t=e.defaults,n=Jk.defaults;this.defaults=t?OA(t,n):n,this.composition=VA(e.composition,!0),this.onRender=e.onRender||n.onRender;let r=VA(e.playbackEase,n.playbackEase);this._ease=r?Hj(r):null,this.iterationDuration=0}add(e,t,n){let r=eA(t),i=eA(e);if(r||i){if(this._hasChildren=!0,r){let r=t,i=Jk.editor&&Jk.editor.addTimelineChild,a=n&&n.type===`Stagger`&&Jk.editor,o=rA(n)?n:null;if(o||a){let t=Dj(e),a=this.duration,s=this.iterationDuration,c=r.id,l=0,u=t.length,d=i?i(e,r,this.id,n,u):null,f=o||Jk.editor.resolveStagger(n.defaultValue);t.forEach(e=>{let n={...d||r};this.duration=a,this.iterationDuration=s,iA(c)||(n.id=c+`-`+l);let i=aM(this,f(e,l,t,null,this));sM(n,this,i,e,l,t),l++})}else{let t=i?i(e,r,this.id,n):r,a=n&&n.type?n.defaultValue:n;sM(t,this,aM(this,a),e)}}else sM(e,this,aM(this,t));return this.composition&&this.init(!0),this}}sync(e,t){if(iA(e)||e&&iA(e.pause))return this;e.pause();let n=+(e.effect?e.effect.getTiming().duration:e.duration);!iA(e)&&!iA(e.persist)&&(e.persist=!0);let r=Jk.editor,i=r&&r.addTimelineChild;r&&r.addTimelineSync&&(t=r.addTimelineSync(e,t,this.id),r.addTimelineChild=null);let a=this.add(e,{currentTime:[0,n],duration:n,delay:0,ease:`linear`,playbackEase:`linear`},t);return r&&(r.addTimelineChild=i),a}set(e,t,n){return iA(t)?this:(t.duration=Mk,t.composition=Dk.replace,this.add(e,t,n))}call(e,t){return iA(e)||e&&!rA(e)?this:(Jk.editor&&Jk.editor.addTimelineCall&&(t=Jk.editor.addTimelineCall(e,t,this.id)),this.add({duration:0,delay:0,onComplete:()=>e(this)},t))}label(e,t){return iA(e)||e&&!nA(e)?this:(Jk.editor&&Jk.editor.addTimelineLabel&&(t=Jk.editor.addTimelineLabel(e,t,this.id)),this.labels[e]=aM(this,t),this)}remove(e,t){return bj(Dj(e),this,t),this}stretch(e){let t=this.duration;if(t===EA(e))return this;let n=e/t,r=this.labels;kA(this,e=>e.stretch(e.duration*n));for(let e in r)r[e]*=n;return super.stretch(e)}refresh(){return kA(this,e=>{e.refresh&&e.refresh()}),this}revert(){return super.revert(),kA(this,e=>e.revert,!0),rj(this)}then(e){return super.then(e)}},uM=e=>Jk.editor?Jk.editor.addTimeline(e):new lM(e).init(),dM=function(e){return e.DebugSlow=`debug-slow`,e.Slow=`slow`,e.Normal=`normal`,e.Fast=`fast`,e.Ludicrous=`ludicrous`,e}({}),fM=e=>{switch(e){case dM.DebugSlow:return{moveDuration:1e3,fadeDuration:1e3,stayDuration:1e3};case dM.Slow:return{moveDuration:250,fadeDuration:200,stayDuration:600};case dM.Normal:return{moveDuration:200,fadeDuration:150,stayDuration:150};case dM.Fast:return{moveDuration:180,fadeDuration:100,stayDuration:50};case dM.Ludicrous:return{moveDuration:120,fadeDuration:50,stayDuration:25}}},pM=e=>fM(e).moveDuration/fM(dM.Normal).moveDuration,mM=e=>500*pM(e),hM=e=>200*pM(e),gM=[{name:`Basic`,value:1/75,legacy:!0},{name:`Starter`,value:1/100,legacy:!0},{name:`Standard`,value:1/150},{name:`Advanced`,value:1/200},{name:`Tournament ready`,value:1/300},{name:`Bulletproof`,value:1/400},{name:`Overkill`,value:1/600,hidden:!0},{name:`Extreme overkill`,value:1/800,hidden:!0}],_M={white:{900:.904595770219748,1100:.926906594980799,1300:.94870009731246,1500:.957122253788326,1700:.978972623335415,1900:.994605739431931,2100:.99229529080723,2350:1.04361983342534,2500:1.07734097268626},black:{900:.987651185910299,1100:1.02380205579267,1300:1.02380205579267,1500:1.05338232568022,1700:1.06038569306811,1900:1.07824199223558,2100:1.12169426346782,2350:1.13035158193851,2500:1.16738186609566}},vM=(e,t,n,r)=>{let i=_M[n][r];if(!i)return 0;let a=1/t;return a=a**i*e,a=Math.max(0,a),a};function yM(e){let t=.9;if(e<=t)return e;let n=e-t;return t+(1-Math.exp(-20*n))*.09999999999999998}var bM=`__capgo_keep_url_path_after_reload`,xM=`__capgo_history_stack__`,SM=100;if(typeof window<`u`&&typeof document<`u`&&typeof history<`u`){let e=window;if(!e.__capgoHistoryPatched){e.__capgoHistoryPatched=!0;let t=()=>{try{if(e.__capgoKeepUrlPathAfterReload)return!0}catch{}try{return window.localStorage.getItem(bM)===`1`}catch{return!1}},n=()=>{try{let e=window.sessionStorage.getItem(xM);if(!e)return{stack:[],index:-1};let t=JSON.parse(e);return!t||!Array.isArray(t.stack)||typeof t.index!=`number`?{stack:[],index:-1}:t}catch{return{stack:[],index:-1}}},r=(e,t)=>{try{window.sessionStorage.setItem(xM,JSON.stringify({stack:e,index:t}))}catch{}},i=()=>{try{window.sessionStorage.removeItem(xM)}catch{}},a=e=>{try{let t=e??window.location.href,n=new URL(t instanceof URL?t.toString():t,window.location.href);return`${n.pathname}${n.search}${n.hash}`}catch{return null}},o=(e,t)=>{if(e.length<=SM)return{stack:e,index:t};let n=e.length-SM;return{stack:e.slice(n),index:Math.max(0,t-n)}},s=e=>{document.readyState===`complete`||document.readyState===`interactive`?e():window.addEventListener(`DOMContentLoaded`,e,{once:!0})},c=!1,l=!1,u=!1,d=()=>
23{if(!c)return;let e=n(),t=a();if(t){if(e.stack.length===0){e.stack.push(t),e.index=0,r(e.stack,e.index);return}(e.index<0||e.index>=e.stack.length)&&(e.index=e.stack.length-1),e.stack[e.index]!==t&&(e.stack[e.index]=t,r(e.stack,e.index))}},f=(e,t)=>{if(!c||l)return;let i=a(e);if(!i)return;let{stack:s,index:u}=n();s.length===0?(s.push(i),u=s.length-1):t?((u<0||u>=s.length)&&(u=s.length-1),s[u]=i):u>=s.length-1?(s.push(i),u=s.length-1):(s=s.slice(0,u+1),s.push(i),u=s.length-1),{stack:s,index:u}=o(s,u),r(s,u)},p=()=>{if(!c||l)return;let e=n();if(e.stack.length===0){d();return}let t=e.index>=0&&e.index<e.stack.length?e.index:e.stack.length-1,r=a();if(e.stack.length===1&&r===e.stack[0])return;let i=e.stack[0];if(!i)return;l=!0;try{history.replaceState(history.state,document.title,i);for(let t=1;t<e.stack.length;t+=1)history.pushState(history.state,document.title,e.stack[t])}catch{l=!1;return}l=!1;let o=t-(e.stack.length-1);o===0?(history.replaceState(history.state,document.title,e.stack[t]),window.dispatchEvent(new PopStateEvent(`popstate`))):history.go(o)},m=()=>{c&&!u&&(u=!0,s(()=>{u=!1,p()}))},h=null,g=null,_=()=>{if(!c||l)return;let e=a();if(!e)return;let t=n(),i=t.stack.lastIndexOf(e);i>=0?t.index=i:(t.stack.push(e),t.index=t.stack.length-1);let s=o(t.stack,t.index);r(s.stack,s.index)},v=()=>{h&&g||(h=history.pushState,g=history.replaceState,history.pushState=function(e,t,n){let r=h?.call(history,e,t,n);return f(n,!1),r},history.replaceState=function(e,t,n){let r=g?.call(history,e,t,n);return f(n,!0),r},window.addEventListener(`popstate`,_))},y=()=>{h&&=(history.pushState=h,null),g&&=(history.replaceState=g,null),window.removeEventListener(`popstate`,_)},b=e=>{if(c===e){c&&(d(),m());return}c=e,c?(v(),d(),m()):(y(),i())};window.addEventListener(`CapacitorUpdaterKeepUrlPathAfterReload`,t=>{let n=t?.detail?.enabled;typeof n==`boolean`?(e.__capgoKeepUrlPathAfterReload=n,b(n)):(e.__capgoKeepUrlPathAfterReload=!0,b(!0))}),b(t())}}var CM=Re(`CapacitorUpdater`,{web:()=>ve(()=>import(`./web-BiCt8_Ji.js`).then(e=>new e.CapacitorUpdaterWeb),__vite__mapDeps([6,4,1,2,5,7]),import.meta.url)}),wM=e=>e.sawUncaughtError||e.stage===`rejected_startup_error`?{cause:`startup_error`,sentry:!0}:e.appReadyNotified?{cause:`confirmed_too_late`,sentry:!1}:e.visibilityState===`visible`?{cause:`stalled_visible`,sentry:!0}:{cause:`background_timeout`,sentry:!1},TM=e=>e!==`visible`,EM=e=>!e.appReadyNotified&&e.visibilityState===`visible`,DM=class{seen=new Set;firstFailure(e){return!this.seen.has(e)&&(this.seen.add(e),!0)}},OM=e=>`1 in ${Math.round(1/e)}`,kM=e=>{Ne.setPersonProperties(e)},[AM,jM]=o(null),MM=e=>{Ne.setPersonProperties({},e)},NM=()=>ie(()=>{let e=q().userState.user;e&&AM()!==e.id&&(jM(e.id),Ne.identify(e.id))}),K=(e,t)=>{ie(()=>{NM(),console.debug(`[EVENT] %c${e} %c ${Object.entries(t??{}).map(([e,t])=>`${e}=${t}`).join(` | `)}`,`color: salmon; font-weight: bold;`,`color: hsl(217, 92%, 76%); font-weight: bold;`);let n=q().userState.user,r={};n&&(r={...r,email:n.email,subscribed:n.subscribed,admin:n.isAdmin,rating_range:n.ratingRange,rating_system:n.ratingSystem,computed_rating:n.eloRange,theme:n.theme,piece_set:n.pieceSet,current_streak:n.currentStreak,highest_streak:n.highestStreak,...n.missThreshold?{coverage_target:`${OM(n.missThreshold/100)}`}:{}});let i={};n?.subscribed&&(i.ever_subscribed=!0),i.initial_platform=Ze.getPlatform(),Ne.capture(e,{...t,$set:{platform:Ze.getPlatform(),...r},$set_once:{...i}})})},PM=`production`;function FM(e){let t=e.trim().toLowerCase();return/^[a-z0-9_-]{1,32}$/.test(t)?t:null}var IM=`otaChannel`,LM=3e3,RM=12e3,zM=null,BM=!1,VM=!1,HM=`not_armed`,UM=0,WM=null,GM=0,KM=null,qM=null,JM=new DM;function YM(e){HM=e,console.log(`[Capgo] health gate: ${e}`),ky({category:`capgo.health`,message:e,level:`info`,data:{msSinceArmed:UM?Date.now()-UM:null}})}function XM(){return{fingerprint:LS,healthGateStage:HM,msSinceArmed:UM?Date.now()-UM:null,appReadyNotified:VM,sawUncaughtError:BM,firstStartupError:WM,unhandledRejections:GM,firstUnhandledRejection:KM,visibilityState:document.visibilityState,lastUpdateCheck:qM}}async function ZM(){try{let{value:e}=await tC.get({key:IM});return e?FM(e)??`production`:PM}catch{return PM}}async function QM(e){let t=FM(e);if(!t)throw Error(`Invalid channel "${e}": use lowercase letters, digits, - or _ (max 32 chars)`);await tC.set({key:IM,value:t}),await $M()}async function $M(){let e=await ZM(),t=e===`production`?LS:`${LS}:${e}`;if(zM!==t){zM=t;try{await CM.setCustomId({customId:t})}catch(e){console.error(`[Capgo] Failed to set customId:`,e),qn(e,{tags:{component:`capgo`,operation:`setCustomId`},extra:{fingerprint:LS,customId:t}})}}}async function eN(){if(!VM){VM=!0;try{await CM.notifyAppReady()}catch(e){console.error(`[Capgo] Failed to notify app ready:`,e),qn(e,{tags:{component:`capgo`,operation:`notifyAppReady`},extra:{fingerprint:LS}})}}}function tN(e){if(!VM){if(BM){console.error(`[Capgo] Uncaught error during startup; not confirming bundle (will roll back if this is an OTA bundle)`),YM(`rejected_startup_error`),er(`Capgo: bundle not confirmed due to startup error`,{tags:{component:`capgo`,operation:`healthGate`},fingerprint:[`capgo`,`startup-error`],extra:XM()});return}YM(e),eN()}}function nN(){if(UM=Date.now(),YM(`armed`),window.addEventListener(`error`,e=>{BM=!0,WM??=e.message||String(e.error??`unknown`)}),window.addEventListener(`unhandledrejection`,e=>{GM+=1,KM??=String(e.reason??`unknown`).slice(0,300)}),setTimeout(()=>{EM({appReadyNotified:VM,visibilityState:document.visibilityState})&&(async()=>{let e=null,t=null;try{let n=await CM.current();e=n.bundle?.version??null,t=n.native??null}catch(t){e=`current() threw: ${String(t).slice(0,120)}`}console.error(`[Capgo] bundle still unconfirmed after ${RM}ms at stage ${HM}`),er(`Capgo: bundle unconfirmed while visible`,{level:`warning`,tags:{component:`capgo`,operation:`healthWatchdog`,stage:HM},fingerprint:[`capgo`,`unconfirmed-visible`,HM],extra:{...XM(),readyState:document.readyState,hasFocus:typeof document.hasFocus==`function`?document.hasFocus():null,currentBundle:e,nativeVersion:t}})})()},RM),document.addEventListener(`visibilitychange`,()=>{document.visibilityState!==`visible`||VM||tN(`confirmed_on_resume`)}),TM(document.visibilityState)){setTimeout(()=>tN(`confirmed_hidden`),LM);return}requestAnimationFrame(()=>{YM(`frame_1`),requestAnimationFrame(()=>{YM(`frame_2`),setTimeout(()=>{YM(`delay_elapsed`),tN(`confirmed`)},LM)})})}function rN(){let e=(e,t)=>
23{console.log(`[Capgo] ${e}`,t??{}),ky({category:`capgo.lifecycle`,message:e,level:`info`,data:t})};CM.addListener(`updateAvailable`,t=>{e(`updateAvailable`,{version:t.bundle?.version})}),CM.addListener(`download`,t=>{(t.percent===0||t.percent===100)&&e(`download`,{percent:t.percent,version:t.bundle?.version})}),CM.addListener(`downloadComplete`,t=>{e(`downloadComplete`,{version:t.bundle?.version})}),CM.addListener(`appReloaded`,()=>{e(`appReloaded`)}),CM.addListener(`noNeedUpdate`,t=>{e(`noNeedUpdate`,{version:t.bundle?.version})}),CM.addListener(`updateCheckResult`,t=>{qM=t,t.kind!==`up_to_date`&&e(`updateCheckResult`,{...t})}),CM.addListener(`downloadFailed`,t=>{let n=t.version??``;if(!n){e(`downloadFailed (no version â treated as up-to-date)`);return}e(`downloadFailed`,{version:n,online:navigator.onLine}),JM.firstFailure(n)&&K(`ota_download_failed`,{version:n,online:navigator.onLine,fingerprint:LS,check_kind:qM?.kind??null,check_error:qM?.error??null,check_status:qM?.statusCode??null})}),CM.addListener(`updateFailed`,e=>{let t=wM({stage:HM,sawUncaughtError:BM,appReadyNotified:VM,visibilityState:document.visibilityState}),n={...XM(),bundle:e.bundle?.version,cause:t.cause};if(console.error(`[Capgo] Bundle rolled back (${t.cause}):`,n),K(`ota_rollback`,{cause:t.cause,stage:HM,bundle:e.bundle?.version??null,ms_since_armed:UM?Date.now()-UM:null,visibility:document.visibilityState,fingerprint:LS}),!t.sentry){ky({category:`capgo.lifecycle`,message:`rollback: ${t.cause}`,level:`warning`,data:n});return}er(`Capgo: bundle rolled back (${t.cause})`,{level:`error`,tags:{component:`capgo`,operation:`update`,stage:HM,cause:t.cause},fingerprint:[`capgo`,`rollback`,t.cause],extra:n})})}async function iN(){nN(),rN(),await $M()}async function aN(){try{let e=await CM.current(),t=await ZM();return{fingerprint:LS,currentBundle:e.bundle?.version??null,nativeVersion:e.native??null,channel:t}}catch(e){return qn(e,{tags:{component:`capgo`,operation:`getInfo`},extra:{fingerprint:LS}}),null}}async function oN(){try{let e=await CM.getLatest();if(e.breaking)throw Error(`Breaking update available (${e.version}); update the native app first.`);if(!e.url)throw Error(`Missing download URL for latest version ${e.version}`);let t=await CM.download({url:e.url,version:e.version,checksum:e.checksum,sessionKey:e.sessionKey,manifest:e.manifest});await CM.next({id:t.id}),CM.reload();return}catch(e){let t=e?.message??String(e);if(t===`No new version available`||t===`no_new_version_available`)return;throw console.error(`[Capgo] Failed to check for updates:`,e),qn(e,{tags:{component:`capgo`,operation:`checkForUpdates`},extra:{fingerprint:LS,message:t}}),e}}var sN=[`repertoire_auto_fill`,`autofill_advanced_controls`,`training_games`,`precise_characteristics`],cN=[`courses`,`repertoire_auto_fill`,`precise_characteristics`],lN=[`quiz_plans`],uN=[`multiple_repertoires`,`courses`,`characteristics`,`move_exclusion`,`amateur_games`,`bookmarks`,`bonus_moves`,`courses_v2`,`learnability`,`repertoire_auto_fill`],dN=[],fN=class extends Error{status;code;constructor(e,t,n){super(n),this.name=`RpcError`,this.status=e,this.code=t}},pN=()=>{typeof window<`u`&&Z(e=>{e.userState.logout(),window.location.assign(`${window.location.origin}/login`)})},mN=async e=>{let t={};try{t=await e.json()}catch{}return new fN(e.status,t.error?.code??e.status,t.error?.message??`RPC request failed with HTTP ${e.status}`)},hN={async call(e,t={}){let[n]=e,r=e.length===2?e[1]:null,i=await fetch(`${XS??``}/api/rpc/${n}`,{method:`POST`,headers:{"content-type":`application/json`,...qS()},body:JSON.stringify(r),signal:t.signal});if(!i.ok){let e=await mN(i);throw i.status===401&&pN(),e}return await i.json()}},gN=`chessbook_pro.monthly`,_N=`chessbook_pro.annual`,vN=e=>!!e&&e.code===CdvPurchase.ErrorCode.PAYMENT_CANCELLED,yN=e=>Ad(e.pricingPhases,e=>e.billingPeriod===`P1Y`),bN=new AE,xN=`chessbook_pro`,SN=e=>Ke?e===`monthly`?gN:_N:xN,CN=SN(`monthly`),wN=SN(`annual`),TN=Xe?[xN]:[SN(`monthly`),SN(`annual`)],EN;(function(e){async function t(){await ve(()=>import(`./store-BjMOI2DU.js`),[],import.meta.url);let{store:e}=CdvPurchase,t=Ke?CdvPurchase.Platform.APPLE_APPSTORE:CdvPurchase.Platform.GOOGLE_PLAY;e.register(Xe?[{type:CdvPurchase.ProductType.PAID_SUBSCRIPTION,id:`chessbook_pro`,platform:t}]:[{type:CdvPurchase.ProductType.PAID_SUBSCRIPTION,id:CN,platform:t},{type:CdvPurchase.ProductType.PAID_SUBSCRIPTION,id:wN,platform:t}]),e.when().pending(e=>{}).unverified(e=>{}).productUpdated(e=>{Z(t=>{t.inAppPurchaseState.products[e.id]=e})}).approved(e=>{let t=e.products[0].id;TN.includes(t)&&e.verify()}).verified(e=>{e.finish()}).finished(e=>{if(bN.hasListeners()){bN.call(e.parentReceipt);return}let t=e.products[0].id;if(!TN.includes(t))return;let{transactionId:n,products:r,platform:i,currency:a,purchaseId:o,amountMicros:s,parentReceipt:c}=e;if(Ke){let e=DN([c]);QS.post(`/api/apple/purchase`,{transactionId:n,originalTransactionId:e,products:r,platform:i,currency:a,purchaseId:o,amountMicros:s,receipt:c}).then(({data:e})=>{e?.user&&Z(t=>{t.userState.handleAuthResponse(e),t.userState.user.subscribed=!0})})}else QS.post(`/api/play-store/purchased`,{purchaseToken:o,transactionId:n,purchaseId:o}).then(({data:e})=>{e?.user&&Z(t=>{t.userState.handleAuthResponse(e),t.userState.user.subscribed=!0})})}),e.initialize([Ke?CdvPurchase.Platform.APPLE_APPSTORE:CdvPurchase.Platform.GOOGLE_PLAY])}e.loadProducts=t})(EN||={});var DN=e=>{let t=e[e.length-1].transactions;return su(t,e=>e.originalTransactionId)?.originalTransactionId},ON=()=>st()().isMobile,kN=(e=window.innerWidth)=>
vendor: 6,582 bytes, lines 23-32
23ot(e)<=ct.sm,AN=`hsla(73, 100%, 39%, 0.41)`,jN=ju([{id:`default`,name:`Default`,highlightLastMove:Te.lastMove,highlightNextMove:Te.nextMove,light:{color:`hsl(118, 24%, 50%)`},dark:{color:`hsl(146, 35%, 38%)`}},{id:`lichess-brown`,name:`Lichess brown`,highlightLastMove:AN,highlightNextMove:`hsla(129, 62%, 21%, 0.5)`,light:{color:`hsl(37, 67%, 83%)`},dark:{color:`hsl(27, 36%, 55%)`}},{id:`chess.com`,name:`chess.com`,highlightLastMove:AN,highlightNextMove:AN,light:{color:`hsl(60, 44%, 88%)`},dark:{color:`hsl(90, 27%, 46%)`}},{id:`stripey`,name:`Stripey`,highlightLastMove:`hsla(73, 100%, 39%, 0.41)`,highlightNextMove:`hsla(73, 100%, 39%, 0.41)`,light:{color:B.hsl(0,0,86),styles:B.keyedProp(`box-shadow`)(`inset 0px 0px 0px 0.5px black`)},dark:{color:B.hsl(0,0,79),styles:z(B.keyedProp(`background`)(` 24 repeating-linear-gradient( 25 135deg, 26 ${B.gray[68]}, 27 ${B.gray[68]} 1px, 28 hsla(0, 0%, 79%, 100%) 1px, 29 hsla(0, 0%, 79%, 100%) 6px 30 ) 31 32 `),B.keyedProp(`box-shadow`)(` inset 0px 0px 0px 0.5px black `))}}],`id`),MN=[{name:`Chessbook`,id:`default`,boardTheme:`default`,pieceSet:`chessbook_monochrome`},{name:`Lichess`,id:`lichess`,boardTheme:`lichess-brown`,pieceSet:`cburnett`},{name:`Chess.com`,id:`chess.com`,boardTheme:`chess.com`,pieceSet:`staunty`},{name:`Anarchy`,id:`anarchy`,boardTheme:`stripey`,pieceSet:`anarcandy`}],NN=ju(MN,`id`),PN=(e,t)=>e.filter(e=>!t.includes(e)),FN=(...e)=>[...new Set(e.flat())],IN=Re(`AppLauncher`,{web:()=>ve(()=>import(`./web-CIn1YpOu.js`).then(e=>new e.AppLauncherWeb),__vite__mapDeps([8,4,1,2,5]),import.meta.url)}),LN=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),a=n-i<0,o=t.clone().add(r+(a?-1:1),l);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:s,D:f,h:o,m:a,s:i,ms:r,Q:u}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},y=`en`,b={};b[y]=g;var x=`$isDayjsObject`,S=function(e){return e instanceof E||!(!e||!e[x])},C=function e(t,n,r){var i;if(!t)return y;if(typeof t==`string`){var a=t.toLowerCase();b[a]&&(i=a),n&&(b[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)<this.startOf(t)},_.isBefore=function(e,t){return this.endOf(t)<w(e)},_.$g=function(e,t,n){return T.u(e)?this[t]:this.set(n,e)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function(e,t){var n=this,r=!!T.u(t)||t,u=T.p(e),p=function(e,t){var i=T.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},m=function(e,t){return T.w(n.toDate()[e].apply(n.toDate(`s`),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(u){case d:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(r?_-b:_+(6-b),g);case s:case f:return m(v+`Hours`,0);case o:return m(v+`Minutes`,1);case a:return m(v+`Seconds`,2);case i:return m(v+`Milliseconds`,3);default:return this.clone()}},_.endOf=function(e){return this.startOf(e,!1)},_.$set=function(e,t){var n,c=T.p(e),u=`set`+(this.$u?`UTC`:``),p=(n={},n[s]=u+`Date`,n[f]=u+`Date`,n[l]=u+`Month`,n[d]=u+`FullYear`,n[o]=u+`Hours`,n[a]=u+`Minutes`,n[i]=u+`Seconds`,n[r]=u+`Milliseconds`,n)[c],m=c===s?this.$D+(t-this.$W):t;if(c===l||c===d){var h=this.clone().set(f,1);h.$d[p](m),h.init(),this.$d=h.set(f,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},_.set=function(e,t){return this.clone().$set(e,t)},_.get=function(e){return this[T.p(e)]()},_.add=function(r,u){var f,p=this;r=Number(r);var m=T.p(u),h=function(e){var t=w(p);return T.w(t.date(t.date()+Math.round(e*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===d)return this.set(d,this.$y+r);if(m===s)return h(1);if(m===c)return h(7);var g=(f={},f[a]=t,f[o]=n,f[i]=e,f)[m]||1,_=this.$d.getTime()+r*g;return T.w(_,this)},_.subtract=function(e,t){return this.add(-1*e,t)},_.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=T.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[
32n]||e(t,r))||i[n].slice(0,a)},f=function(e){return T.s(a%12||12,e,`0`)},m=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(h,(function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return T.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return T.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return T.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return T.s(a,2,`0`);case`h`:return f(1);case`hh`:return f(2);case`a`:return m(a,o,!0);case`A`:return m(a,o,!1);case`m`:return String(o);case`mm`:return T.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return T.s(t.$s,2,`0`);case`SSS`:return T.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)}))},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function(r,f,p){var m,h=this,g=T.p(f),_=w(r),v=(_.utcOffset()-this.utcOffset())*t,y=this-_,b=function(){return T.m(h,_)};switch(g){case d:m=b()/12;break;case l:m=b();break;case u:m=b()/3;break;case c:m=(y-v)/6048e5;break;case s:m=(y-v)/864e5;break;case o:m=y/n;break;case a:m=y/t;break;case i:m=y/e;break;default:m=y}return p?m:T.a(m)},_.daysInMonth=function(){return this.endOf(l).$D},_.$locale=function(){return b[this.$L]},_.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=C(e,t,!0);return r&&(n.$L=r),n},_.clone=function(){return T.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},g}(),D=E.prototype;return w.prototype=D,[[`$ms`,r],[`$s`,i],[`$m`,a],[`$H`,o],[`$W`,s],[`$M`,l],[`$y`,d],[`$D`,f]].forEach((function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),w.extend=function(e,t){return e.$i||=(e(t,E,w),!0),w},w.locale=C,w.isDayjs=S,w.unix=function(e){return w(1e3*e)},w.en=b[y],w.Ls=b,w.p={},w}))})),RN=e(LN(),1),zN=`jwt-token`,BN=`temp-user-uuid`,VN=new Map,HN=(e,t)=>{let n=(VN.get(e)??0)+1;return VN.set(e,n),new UN(t(),()=>VN.get(e)===n)},UN=class e{promise;isLatest;constructor(e,t){this.promise=e,this.isLatest=t}onLatest(e){return this.chain(this.promise.then(t=>(this.isLatest()&&e(t),t)))}onLatestSettled(e){return this.chain(this.promise.finally(()=>{this.isLatest()&&e()}))}onLatestError(e){return this.chain(this.promise.catch(t=>{throw this.isLatest()&&e(t),t}))}settled(){return this.promise.then(()=>void 0)}chain(t){return new e(t,this.isLatest)}},WN=`chessbook.com`,GN=Xe?`https://chessbook.com/oauth/lichess`:`${ZS}/oauth/lichess`,KN=Re(`Badge`,{web:()=>ve(()=>import(`./web-BuZ8XxPv.js`).then(e=>new e.BadgeWeb),__vite__mapDeps([9,4,1,2,5]),import.meta.url)}),qN=null,JN=e=>{qN=e.length?e.map(e=>({component:e.component,props:{...e.props}})):null},YN=()=>qN,XN=()=>qN!==null,ZN=()=>{qN=null},QN=Re(`Share`,{web:()=>ve(()=>import(`./web-Q8k2JASj.js`).then(e=>new e.ShareWeb),__vite__mapDeps([10,4,1,2,5]),import.meta.url)}),$N=r(((e,t)=>{t.exports=function(e){var t=[...arguments].slice(1),n=[],r=typeof e==`string`?[e]:e.slice();r[r.length-1]=r[r.length-1].replace(/\r?\n([\t ]*)$/,``);for(var i=0;i<r.length;i++){var a=void 0;(a=r[i].match(/\n[\t ]+/g))&&n.push.apply(n,a)}if(n.length)for(var o=Math.min.apply(Math,n.map(function(e){return e.length-1})),s=RegExp(` 33[ ]{`+o+`}`,`g`),i=0;i<r.length;i++)r[i]=r[i].replace(s,` 34`);r[0]=r[0].replace(/^\r?\n/,``);for(var c=r[0],i=0;i<t.length;i++)c+=t[i]+r[i+1];return c}})),eP=r(((e,t)=>{function n(e){this._maxSize=e,this.clear()}n.prototype.clear=function(){this._size=0,this._values=Object.create(null)},n.prototype.get=function(e){return this._values[e]},n.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),e in this._values||this._size++,this._values[e]=t};var r=/[^.^\]^[]+|(?=\[\]|\.\.)/g,i=/^\d+$/,a=/^\d/,o=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,s=/^\s*(['"]?)(.*?)(\1)\s*$/,c=512,l=new n(c),u=new n(c),d=new n(c);t.exports={Cache:n,split:p,normalizePath:f,setter:function(e){var t=f(e);return u.get(e)||u.set(e,function(e,n){for(var r=0,i=t.length,a=e;r<i-1;){var o=t[r];if(o===`__proto__`||o===`constructor`||o===`prototype`)return e;a=a[t[r++]]}a[t[r]]=n})},getter:function(e,t){var n=f(e);return d.get(e)||d.set(e,function(e){for(var r=0,i=n.length;r<i;)if(e!=null||!t)e=e[n[r++]];else return;return e})},join:function(e){return e.reduce(function(e,t){return e+(h(t)||i.test(t)?`[`+t+`]`:(e?`.`:``)+t)},``)}
34,forEach:function(e,t,n){m(Array.isArray(e)?e:p(e),t,n)}};function f(e){return l.get(e)||l.set(e,p(e).map(function(e){return e.replace(s,`$2`)}))}function p(e){return e.match(r)||[``]}function m(e,t,n){for(var r=e.length,i,a=0,o,s;a<r;a++)i=e[a],i&&(v(i)&&(i=`"`+i+`"`),s=h(i),o=!s&&/^\d+$/.test(i),t.call(n,i,s,o,a,e))}function h(e){return typeof e==`string`&&e&&[`'`,`"`].indexOf(e.charAt(0))!==-1}function g(e){return e.match(a)&&!e.match(i)}function _(e){return o.test(e)}function v(e){return!h(e)&&(g(e)||_(e))}})),tP=r(((e,t)=>{var n=/[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['â](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['â](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['â](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['â](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g,r=e=>e.match(n)||[],i=e=>e[0].toUpperCase()+e.slice(1),a=(e,t)=>r(e).join(t).toLowerCase(),o=e=>r(e).reduce((e,t)=>`${e}${e?t[0].toUpperCase()+t.slice(1).toLowerCase():t.toLowerCase()}`,``);t.exports={words:r,upperFirst:i,camelCase:o,pascalCase:e=>i(o(e)),snakeCase:e=>a(e,`_`),kebabCase:e=>a(e,`-`),sentenceCase:e=>i(a(e,` `)),titleCase:e=>r(e).map(i).join(` `)}})),nP=r(((e,t)=>{t.exports=function(e){return n(r(e),e)},t.exports.array=n;function n(e,t){var n=e.length,r=Array(n),o={},s=n,c=i(t),l=a(e);for(t.forEach(function(e){if(!l.has(e[0])||!l.has(e[1]))throw Error(`Unknown node. There is an unknown node in the supplied edges.`)});s--;)o[s]||u(e[s],s,new Set);return r;function u(e,t,i){if(i.has(e)){var a;try{a=`, node was:`+JSON.stringify(e)}catch{a=``}throw Error(`Cyclic dependency`+a)}if(!l.has(e))throw Error(`Found unknown node. Make sure to provided all involved nodes. Unknown node: `+JSON.stringify(e));if(!o[t]){o[t]=!0;var s=c.get(e)||new Set;if(s=Array.from(s),t=s.length){i.add(e);do{var d=s[--t];u(d,l.get(d),i)}while(t);i.delete(e)}r[--n]=e}}}function r(e){for(var t=new Set,n=0,r=e.length;n<r;n++){var i=e[n];t.add(i[0]),t.add(i[1])}return Array.from(t)}function i(e){for(var t=new Map,n=0,r=e.length;n<r;n++){var i=e[n];t.has(i[0])||t.set(i[0],new Set),t.has(i[1])||t.set(i[1],new Set),t.get(i[0]).add(i[1])}return t}function a(e){for(var t=new Map,n=0,r=e.length;n<r;n++)t.set(e[n],n);return t}})),rP=e($N(),1),iP=eP(),aP=tP(),oP=e(nP()),sP=Object.prototype.toString,cP=Error.prototype.toString,lP=RegExp.prototype.toString,uP=typeof Symbol<`u`?Symbol.prototype.toString:()=>``,dP=/^Symbol\((.*)\)(.*)$/;function fP(e){return e==+e?e===0&&1/e<0?`-0`:``+e:`NaN`}function pP(e,t=!1){if(e==null||e===!0||e===!1)return``+e;let n=typeof e;if(n===`number`)return fP(e);if(n===`string`)return t?`"${e}"`:e;if(n===`function`)return`[Function `+(e.name||`anonymous`)+`]`;if(n===`symbol`)return uP.call(e).replace(dP,`Symbol($1)`);let r=sP.call(e).slice(8,-1);return r===`Date`?isNaN(e.getTime())?``+e:e.toISOString(e):r===`Error`||e instanceof Error?`[`+cP.call(e)+`]`:r===`RegExp`?lP.call(e):null}function mP(e,t){let n=pP(e,t);return n===null?JSON.stringify(e,function(e,n){let r=pP(this[e],t);return r===null?n:r},2):n}function hP(e){return e==null?[]:[].concat(e)}var gP,_P,vP,yP=/\$\{\s*(\w+)\s*\}/g;gP=Symbol.toStringTag;var bP=class{constructor(e,t,n,r){this.name=void 0,this.message=void 0,this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=void 0,this.inner=void 0,this[gP]=`Error`,this.name=`ValidationError`,this.value=t,this.path=n,this.type=r,this.errors=[],this.inner=[],hP(e).forEach(e
34=>{if(xP.isError(e)){this.errors.push(...e.errors);let t=e.inner.length?e.inner:[e];this.inner.push(...t)}else this.errors.push(e)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0]}};_P=Symbol.hasInstance,vP=Symbol.toStringTag;var xP=class e extends Error{static formatError(e,t){let n=t.label||t.path||`this`;return t=Object.assign({},t,{path:n,originalPath:t.path}),typeof e==`string`?e.replace(yP,(e,n)=>mP(t[n])):typeof e==`function`?e(t):e}static isError(e){return e&&e.name===`ValidationError`}constructor(t,n,r,i,a){let o=new bP(t,n,r,i);if(a)return o;super(),this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=[],this.inner=[],this[vP]=`Error`,this.name=o.name,this.message=o.message,this.type=o.type,this.value=o.value,this.path=o.path,this.errors=o.errors,this.inner=o.inner,Error.captureStackTrace&&Error.captureStackTrace(this,e)}static[_P](e){return bP[Symbol.hasInstance](e)||super[Symbol.hasInstance](e)}},SP={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:n,originalValue:r})=>{let i=r!=null&&r!==n?` (cast from the value \`${mP(r,!0)}\`).`:`.`;return t===`mixed`?`${e} must match the configured type. The validated value was: \`${mP(n,!0)}\``+i:`${e} must be a \`${t}\` type, but the final value was: \`${mP(n,!0)}\``+i}},CP={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",datetime:"${path} must be a valid ISO date-time",datetime_precision:"${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",datetime_offset:'${path} must be a valid ISO date-time with UTC "Z" timezone',trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},wP={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},TP={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},EP={isValue:"${path} field must be ${value}"},DP={noUnknown:"${path} field has unspecified keys: ${unknown}",exact:"${path} object contains unknown properties: ${properties}"},OP={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},kP={notType:e=>{let{path:t,value:n,spec:r}=e,i=r.types.length;if(Array.isArray(n)){if(n.length<i)return`${t} tuple value has too few items, expected a length of ${i} but got ${n.length} for value: \`${mP(n,!0)}\``;if(n.length>i)return`${t} tuple value has too many items, expected a length of ${i} but got ${n.length} for value: \`${mP(n,!0)}\``}return xP.formatError(SP.notType,e)}};Object.assign(Object.create(null),{mixed:SP,string:CP,number:wP,date:TP,object:DP,array:OP,boolean:EP,tuple:kP});var AP=e=>e&&e.__isYupSchema__,jP=class e{static fromOptions(t,n){if(!n.then&&!n.otherwise)throw TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:r,then:i,otherwise:a}=n,o=typeof r==`function`?r:(...e)=>e.every(e=>e===r);return new e(t,(e,t)=>(o(...e)?i:a)?.(t)??t)}constructor(e,t){this.fn=void 0,this.refs=e,this.refs=e,this.fn=t}resolve(e,t){let n=this.refs.map(e=>e.getValue(t?.value,t?.parent,t?.context)),r=this.fn(n,e,t);if(r===void 0||r===e)return e;if(!AP(r))throw TypeError(`conditions must return a schema object`);return r.resolve(t)}},MP={context:`$`,value:`.`},NP=class{constructor(e,t={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof e!=`string`)throw TypeError(`ref must be a string, got: `+e);if(this.key=e.trim(),e===``)throw TypeError(`ref must be a non-empty string`);this.isContext=this.key[0]===MP.context,this.isValue=this.key[0]===MP.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?MP.context:this.isValue?MP.value:``;this.path=this.key.slice(n.length),this.getter=this.path&&(0,iP.getter)(this.path,!0),this.map=t.map}getValue(e,t,n){let r=this.isContext?n:this.isValue?e:t;return this.getter&&(r=this.getter(r||{})),this.map&&(r=this.map(r)),r}cast(e,t){return this.getValue(e,t?.parent,t?.context)}resolve(){return this}describe(){return{type:`ref`,key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};NP.prototype.__isYupRef=!0;var PP=e=>e==null;function FP(e){function t({value:t,path:n=``,options:r,originalValue:i,schema:a},o,s){let{name:c,test:l,params:u,message:d,skipAbsent:f}
34=e,{parent:p,context:m,abortEarly:h=a.spec.abortEarly,disableStackTrace:g=a.spec.disableStackTrace}=r,_={value:t,parent:p,context:m};function v(e={}){let r=IP(Object.assign({value:t,originalValue:i,label:a.spec.label,path:e.path||n,spec:a.spec,disableStackTrace:e.disableStackTrace||g},u,e.params),_),o=new xP(xP.formatError(e.message||d,r),t,r.path,e.type||c,r.disableStackTrace);return o.params=r,o}let y=h?o:s,b={path:n,parent:p,type:c,from:r.from,createError:v,resolve(e){return LP(e,_)},options:r,originalValue:i,schema:a},x=e=>{xP.isError(e)?y(e):e?s(null):y(v())},S=e=>{xP.isError(e)?y(e):o(e)};if(f&&PP(t))return x(!0);let C;try{if(C=l.call(b,t,b),typeof C?.then==`function`){if(r.sync)throw Error(`Validation test of type: "${b.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(C).then(x,S)}}catch(e){S(e);return}x(C)}return t.OPTIONS=e,t}function IP(e,t){if(!e)return e;for(let n of Object.keys(e))e[n]=LP(e[n],t);return e}function LP(e,t){return NP.isRef(e)?e.getValue(t.value,t.parent,t.context):e}function RP(e,t,n,r=n){let i,a,o;return t?((0,iP.forEach)(t,(s,c,l)=>{let u=c?s.slice(1,s.length-1):s;e=e.resolve({context:r,parent:i,value:n});let d=e.type===`tuple`,f=l?parseInt(u,10):0;if(e.innerType||d){if(d&&!l)throw Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(n&&f>=n.length)throw Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n&&=n[f],e=d?e.spec.types[f]:e.innerType}if(!l){if(!e.fields||!e.fields[u])throw Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e.type}")`);i=n,n&&=n[u],e=e.fields[u]}a=u,o=c?`[`+s+`]`:`.`+s}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}var zP=class e extends Set{describe(){let e=[];for(let t of this.values())e.push(NP.isRef(t)?t.describe():t);return e}resolveAll(e){let t=[];for(let n of this.values())t.push(e(n));return t}clone(){return new e(this.values())}merge(e,t){let n=this.clone();return e.forEach(e=>n.add(e)),t.forEach(e=>n.delete(e)),n}};function BP(e,t=new Map){if(AP(e)||!e||typeof e!=`object`)return e;if(t.has(e))return t.get(e);let n;if(e instanceof Date)n=new Date(e.getTime()),t.set(e,n);else if(e instanceof RegExp)n=new RegExp(e),t.set(e,n);else if(Array.isArray(e)){n=Array(e.length),t.set(e,n);for(let r=0;r<e.length;r++)n[r]=BP(e[r],t)}else if(e instanceof Map){n=new Map,t.set(e,n);for(let[r,i]of e.entries())n.set(r,BP(i,t))}else if(e instanceof Set){n=new Set,t.set(e,n);for(let r of e)n.add(BP(r,t))}else if(e instanceof Object){n={},t.set(e,n);for(let[r,i]of Object.entries(e))n[r]=BP(i,t)}else throw Error(`Unable to clone ${e}`);return n}function VP(e){if(!(e!=null&&e.length))return;let t=[],n=``,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o===`[`&&!i){n&&=(t.push(...n.split(`.`).filter(Boolean)),``),r=!0;continue}if(o===`]`&&!i){n&&=(/^\d+$/.test(n)?t.push(n):t.push(n.replace(/^"|"$/g,``)),``),r=!1;continue}if(o===`"`){i=!i;continue}if(o===`.`&&!r&&!i){n&&=(t.push(n),``);continue}n+=o}return n&&t.push(...n.split(`.`).filter(Boolean)),t}function HP(e,t){let n=t?`${t}.${e.path}`:e.path;return e.errors.map(e=>({message:e,path:VP(n)}))}function UP(e,t){var n;if(!((n=e.inner)!=null&&n.length)&&e.errors.length)return HP(e,t);let r=t?`${t}.${e.path}`:e.path;return e.inner.flatMap(e=>UP(e,r))}var WP=class{constructor(e){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new zP,this._blacklist=new zP,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(SP.notType)}),this.type=e.type,this._typeCheck=e.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},e?.spec),this.withMutation(e=>{e.nonNullable()})}get _type(){return this.type}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));
34return t.type=this.type,t._typeCheck=this._typeCheck,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.internalTests=Object.assign({},this.internalTests),t.exclusiveTests=Object.assign({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=BP(Object.assign({},this.spec,e)),t}label(e){let t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=t,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!==`mixed`)throw TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,n=e.clone();return n.spec=Object.assign({},t.spec,n.spec),n.internalTests=Object.assign({},t.internalTests,n.internalTests),n._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),n.tests=t.tests,n.exclusiveTests=t.exclusiveTests,n.withMutation(t=>{e.tests.forEach(e=>{t.test(e.OPTIONS)})}),n.transforms=[...t.transforms,...n.transforms],n}isType(e){return e==null?!!(this.spec.nullable&&e===null||this.spec.optional&&e===void 0):this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let n=t.conditions;t=t.clone(),t.conditions=[],t=n.reduce((t,n)=>n.resolve(t,e),t),t=t.resolve(e)}return t}resolveOptions(e){return Object.assign({},e,{from:e.from||[],strict:e.strict??this.spec.strict,abortEarly:e.abortEarly??this.spec.abortEarly,recursive:e.recursive??this.spec.recursive,disableStackTrace:e.disableStackTrace??this.spec.disableStackTrace})}cast(e,t={}){let n=this.resolve(Object.assign({},t,{value:e})),r=t.assert===`ignore-optionality`,i=n._cast(e,t);if(t.assert!==!1&&!n.isType(i)){if(r&&PP(i))return i;let a=mP(e),o=mP(i);throw TypeError(`The value of ${t.path||`field`} could not be cast to a value that satisfies the schema type: "${n.type}". \n\nattempted value: ${a} \n`+(o===a?``:`result of cast: ${o}`))}return i}_cast(e,t){let n=e===void 0?e:this.transforms.reduce((n,r)=>r.call(this,n,e,this,t),e);return n===void 0&&(n=this.getDefault(t)),n}_validate(e,t={},n,r){let{path:i,originalValue:a=e,strict:o=this.spec.strict}=t,s=e;o||(s=this._cast(s,Object.assign({assert:!1},t)));let c=[];for(let e of Object.values(this.internalTests))e&&c.push(e);this.runTests({path:i,value:s,originalValue:a,options:t,tests:c},n,e=>{if(e.length)return r(e,s);this.runTests({path:i,value:s,originalValue:a,options:t,tests:this.tests},n,r)})}runTests(e,t,n){let r=!1,{tests:i,value:a,originalValue:o,path:s,options:c}=e,l=e=>{r||(r=!0,t(e,a))},u=e=>{r||(r=!0,n(e,a))},d=i.length,f=[];if(!d)return u([]);let p={value:a,originalValue:o,path:s,options:c,schema:this};for(let e=0;e<i.length;e++){let t=i[e];t(p,l,function(e){e&&(Array.isArray(e)?f.push(...e):f.push(e)),--d<=0&&u(f)})}}asNestedTest({key:e,index:t,parent:n,parentPath:r,originalParent:i,options:a}){let o=e??t;if(o==null)throw TypeError("Must include `key` or `index` for nested validations");let s=typeof o==`number`,c=n[o],l=Object.assign({},a,{strict:!0,parent:n,value:c,originalValue:i[o],key:void 0,[s?`index`:`key`]:o,path:s||o.includes(`.`)?`${r||``}[${s?o:`"${o}"`}]`:(r?`${r}.`:``)+e});return(e,t,n)=>this.resolve(l)._validate(c,l,t,n)}validate(e,t){let n=this.resolve(Object.assign({},t,{value:e})),r=t?.disableStackTrace??n.spec.disableStackTrace;return new Promise((i,a)=>n._validate(e,t,(e,t)=>{xP.isError(e)&&(e.value=t),a(e)},(e,t)=>{e.length?a(new xP(e,t,void 0,void 0,r)):i(t)}))}validateSync(e,t){let n=this.resolve(Object.assign({},t,{value:e})),r,i=t?.disableStackTrace??n.spec.disableStackTrace;return n._validate(e,Object.assign({},t,{sync:!0}),(e,t)=>{throw xP.isError(e)&&(e.value=t),e},(t,n)=>{if(t.length)throw new xP(t,e,void 0,void 0,i);r=n}),r}isValid(e,t){return this.validate(e,t).then(()=>!0,e=>{if(xP.isError(e))return!1;throw e})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(e){if(xP.isError(e))return!1;throw e}}_getDefault(e){let t=this.spec.default;return t==null?t:typeof t==`function`?t.call(this,e):BP(t)}getDefault(e){return this.resolve(e||{})._getDefault(e)}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){let n=this.clone({nullable:e});return n.internalTests.nullable=FP({message:t,name:`nullable`,test(e){return e!==null||this.schema.spec.nullable}}),n}optionality(e,t){let n=this.clone({optional:e});return n.internalTests.optionality=FP({message:t,name:`optionality`,test(e){return e!==void 0||this.schema.spec.optional}}),n}optional(){return this.optionality(!0)}defined(e=SP.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=SP.notNull){return this.nullability(!1,e)}required(e=SP.required){return this.clone().withMutation(t=>t.nonNullable(e).defined(e))}notRequired(){return this.clone().withMutation(e=>e.nullable().optional())}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(t=e.length===1?typeof e[0]==`function`?{test:e[0]}:e[0]:e.length===2?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=SP.default),typeof t.test!=`function`)throw TypeError("`test` is a required parameters");let n=this.clone(),r=FP(t),i=t.exclusive||t.name&&n.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(n.exclusiveTests[t.name]=!!t.exclusive),n.tests=n.tests.filter(e=>e.OPTIONS.name!==t.name||!i&&e.OPTIONS.test!==r.OPTIONS.test),n.tests.push(r),n}when(e,t){!Array.isArray(e)&&typeof e!=`string`&&(t=e,e=`.`);let n=this.clone(),r=hP(e).map(e=>new NP(e));
34return r.forEach(e=>{e.isSibling&&n.deps.push(e.key)}),n.conditions.push(typeof t==`function`?new jP(r,t):jP.fromOptions(r,t)),n}typeError(e){let t=this.clone();return t.internalTests.typeError=FP({message:e,name:`typeError`,skipAbsent:!0,test(e){return this.schema._typeCheck(e)?!0:this.createError({params:{type:this.schema.type}})}}),t}oneOf(e,t=SP.oneOf){let n=this.clone();return e.forEach(e=>{n._whitelist.add(e),n._blacklist.delete(e)}),n.internalTests.whiteList=FP({message:t,name:`oneOf`,skipAbsent:!0,test(e){let t=this.schema._whitelist,n=t.resolveAll(this.resolve);return n.includes(e)?!0:this.createError({params:{values:Array.from(t).join(`, `),resolved:n}})}}),n}notOneOf(e,t=SP.notOneOf){let n=this.clone();return e.forEach(e=>{n._blacklist.add(e),n._whitelist.delete(e)}),n.internalTests.blacklist=FP({message:t,name:`notOneOf`,test(e){let t=this.schema._blacklist,n=t.resolveAll(this.resolve);return!n.includes(e)||this.createError({params:{values:Array.from(t).join(`, `),resolved:n}})}}),n}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){let t=(e?this.resolve(e):this).clone(),{label:n,meta:r,optional:i,nullable:a}=t.spec;return{meta:r,label:n,optional:i,nullable:a,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.filter((e,t,n)=>n.findIndex(t=>t.OPTIONS.name===e.OPTIONS.name)===t).map(t=>{let n=t.OPTIONS.params&&e?IP(Object.assign({},t.OPTIONS.params),e):t.OPTIONS.params;return{name:t.OPTIONS.name,params:n}})}}get"~standard"(){let e=this;return{version:1,vendor:`yup`,async validate(t){try{return{value:await e.validate(t,{abortEarly:!1})}}catch(e){if(e instanceof xP)return{issues:UP(e)};throw e}}}}};WP.prototype.__isYupSchema__=!0;for(let e of[`validate`,`validateSync`])WP.prototype[`${e}At`]=function(t,n,r={}){let{parent:i,parentPath:a,schema:o}=RP(this,t,n,r.context);return o[e](i&&i[a],Object.assign({},r,{parent:i,path:t}))};for(let e of[`equals`,`is`])WP.prototype[e]=WP.prototype.oneOf;for(let e of[`not`,`nope`])WP.prototype[e]=WP.prototype.notOneOf;var GP=()=>!0;function KP(e){return new qP(e)}var qP=class extends WP{constructor(e){super(typeof e==`function`?{type:`mixed`,check:e}:Object.assign({type:`mixed`,check:GP},e))}};KP.prototype=qP.prototype,class extends WP{constructor(){super({type:`boolean`,check(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e==`boolean`}}),this.withMutation(()=>{this.transform((e,t)=>{if(this.spec.coerce&&!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}isTrue(e=EP.isValue){return this.test({message:e,name:`is-value`,exclusive:!0,params:{value:`true`},test(e){return PP(e)||e===!0}})}isFalse(e=EP.isValue){return this.test({message:e,name:`is-value`,exclusive:!0,params:{value:`false`},test(e){return PP(e)||e===!1}})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}.prototype;var JP=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function YP(e){let t=XP(e);if(!t)return Date.parse?Date.parse(e):NaN;if(t.z===void 0&&t.plusMinus===void 0)return new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond).valueOf();let n=0;return t.z!==`Z`&&t.plusMinus!==void 0&&(n=t.hourOffset*60+t.minuteOffset,t.plusMinus===`+`&&(n=0-n)),Date.UTC(t.year,t.month,t.day,t.hour,t.minute+n,t.second,t.millisecond)}function XP(e){let t=JP.exec(e);return t?{year:ZP(t[1]),month:ZP(t[2],1)-1,day:ZP(t[3],1),hour:ZP(t[4]),minute:ZP(t[5]),second:ZP(t[6]),millisecond:t[7]?ZP(t[7].substring(0,3)):0,precision:t[7]?.length??void 0,z:t[8]||void 0,plusMinus:t[9]||void 0,hourOffset:ZP(t[10]),minuteOffset:ZP(t[11])}:null}function ZP(e,t=0){return Number(e)||t}var QP=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,$P=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,eF=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,tF=RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$`),nF=e=>PP(e)||e===e.trim(),rF={}.toString();function iF(){return new aF}var aF=class extends WP{constructor(){super({type:`string`,check(e){return e instanceof String&&(e=e.valueOf()),typeof e==`string`}}),this.withMutation(()=>{this.transform((e,t)=>{if(!this.spec.coerce||this.isType(e)||Array.isArray(e))return e;let n=e!=null&&e.toString?e.toString():e;return n===rF?e:n})})}required(e){return super.required(e).withMutation(t=>t.test({message:e||SP.required,name:`required`,skipAbsent:!0,test:e=>!!e.length}))}notRequired(){return super.notRequired().withMutation(e=>(e.tests=e.tests.filter(e=>e.OPTIONS.name!==`required`),e))}length(e,t=CP.length){return this.test({message:t,name:`length`,exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t=CP.min){return this.test({message:t,name:`min`,exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t=CP.max){return this.test({name:`max`,exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}matches(e,t){let n=!1,r,i;return t&&(typeof t==`object`?{excludeEmptyString:n=!1,message:r,name:i}=t:r=t),this.test({name:i||`matches`,message:r||CP.matches,params:{regex:e},skipAbsent:!0,test:t=>t===``&&n||t.search(e)!==-1})}email(e=CP.email){return this.matches(QP,{name:`email`,message:e,excludeEmptyString:!0})}url(e=CP.url){return this.matches($P,{name:`url`,message:e,excludeEmptyString:!0})}uuid(e=CP.uuid){return this.matches(eF,{name:`uuid`,message:e,excludeEmptyString:!1})}datetime(e){let t=``,n,r;return e&&(typeof e==`object`?{message:t=``,allowOffset:n=!1,precision:r=void 0}=e:t=e),this.matches(tF,{name:`datetime`,message:t||CP.datetime,excludeEmptyString:!0}).test({name:`datetime_offset`,message:t||CP.datetime_offset,params:{allowOffset:n},skipAbsent:!0,test:e=>{if(!e||n)return!0;let t=XP(e);return t?!!t.z:!1}}).test({name:`datetime_precision`,message:t||CP.datetime_precision,params:{precision:r},skipAbsent:!0,test:e=>{if(!e||r==null)return!0;let t=XP(e);return t?t.precision===r:!1}})}ensure(){return this.default(``).transform(e=>e===null?``:e)}trim(e=CP.trim){return this.transform(e=>e==null?e:e.trim()).test({message:e,name:`trim`,test:nF})}lowercase(e=CP.lowercase){return this.transform(e=>PP(e)?e:e.toLowerCase()).test({message:e,name:`string_case`,exclusive:!0,skipAbsent:!0,test:e=>PP(e)||e===e.toLowerCase()})}uppercase(e=CP.uppercase){return this.transform(e=>PP(e)?e:e.toUpperCase()).test({message:e,name:`string_case`,exclusive:!0,skipAbsent:!0,test:e=>PP(e)||e===e.toUpperCase()})}};iF.prototype=aF.prototype;var oF=e=>e!=+e;function sF(){return new cF}var cF=class extends WP{constructor(){super({type:`number`,check(e){return e instanceof Number&&(e=e.valueOf()),typeof e==`number`&&!oF(e)}}),this.withMutation(()=>{this.transform((e,t)=>{if(!this.spec.coerce)return e;let n=e;if(typeof n==`string`){if(n=n.replace(/\s/g,``),n===``)return NaN;n=+n}return this.isType(n)||n===null?n:parseFloat(n)})})}min(e,t=wP.min){return this.test({message:t,name:`min`,exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t>=this.resolve(e)}})}max(e,t=wP.max){return this.test({message:t,name:`max`,exclusive:!0,params:{max:e},skipAbsent:!0,test(t){return t<=this.resolve(e)}})}lessThan(e,t=wP.lessThan){return this.test({message:t,name:`max`,exclusive:!0,params:{less:e},skipAbsent:!0,test(t){return t<this.resolve(e)}})}moreThan(e,t=wP.moreThan){return this.test({message:t,name:`min`,exclusive:!0,params:{more:e},skipAbsent:!0,test(t){return t>this.resolve(e)}})}positive(e=wP.positive){return this.moreThan(0,e)}negative(e=wP.negative){return this.lessThan(0,e)}integer(e=wP.integer){return this.test({name:`integer`,message:e,ski
34pAbsent:!0,test:e=>Number.isInteger(e)})}truncate(){return this.transform(e=>PP(e)?e:e|0)}round(e){let t=[`ceil`,`floor`,`round`,`trunc`];if(e=e?.toLowerCase()||`round`,e===`trunc`)return this.truncate();if(t.indexOf(e.toLowerCase())===-1)throw TypeError(`Only valid options for round() are: `+t.join(`, `));return this.transform(t=>PP(t)?t:Math[e](t))}};sF.prototype=cF.prototype;var lF=new Date(``),uF=e=>Object.prototype.toString.call(e)===`[object Date]`,dF=class e extends WP{constructor(){super({type:`date`,check(e){return uF(e)&&!isNaN(e.getTime())}}),this.withMutation(()=>{this.transform((t,n)=>!this.spec.coerce||this.isType(t)||t===null?t:(t=YP(t),isNaN(t)?e.INVALID_DATE:new Date(t)))})}prepareParam(e,t){let n;if(NP.isRef(e))n=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);n=r}return n}min(e,t=TP.min){let n=this.prepareParam(e,`min`);return this.test({message:t,name:`min`,exclusive:!0,params:{min:e},skipAbsent:!0,test(e){return e>=this.resolve(n)}})}max(e,t=TP.max){let n=this.prepareParam(e,`max`);return this.test({message:t,name:`max`,exclusive:!0,params:{max:e},skipAbsent:!0,test(e){return e<=this.resolve(n)}})}};dF.INVALID_DATE=lF,dF.prototype;function fF(e,t=[]){let n=[],r=new Set,i=new Set(t.map(([e,t])=>`${e}-${t}`));function a(e,t){let a=(0,iP.split)(e)[0];r.add(a),i.has(`${t}-${a}`)||n.push([t,a])}for(let t of Object.keys(e)){let n=e[t];r.add(t),NP.isRef(n)&&n.isSibling?a(n.path,t):AP(n)&&`deps`in n&&n.deps.forEach(e=>a(e,t))}return oP.default.array(Array.from(r),n).reverse()}function pF(e,t){let n=1/0;return e.some((e,r)=>{var i;if((i=t.path)!=null&&i.includes(e))return n=r,!0}),n}function mF(e){return(t,n)=>pF(e,t)-pF(e,n)}var hF=(e,t,n)=>{if(typeof e!=`string`)return e;let r=e;try{r=JSON.parse(e)}catch{}return n.isType(r)?r:e};function gF(e){if(`fields`in e){let t={};for(let[n,r]of Object.entries(e.fields))t[n]=gF(r);return e.setFields(t)}if(e.type===`array`){let t=e.optional();return t.innerType&&=gF(t.innerType),t}return e.type===`tuple`?e.optional().clone({types:e.spec.types.map(gF)}):`optional`in e?e.optional():e}var _F=(e,t)=>{let n=[...(0,iP.normalizePath)(t)];if(n.length===1)return n[0]in e;let r=n.pop(),i=(0,iP.getter)((0,iP.join)(n),!0)(e);return!!(i&&r in i)},vF=e=>Object.prototype.toString.call(e)===`[object Object]`;function yF(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(e=>n.indexOf(e)===-1)}var bF=mF([]);function xF(e){return new SF(e)}var SF=class extends WP{constructor(e){super({type:`object`,check(e){return vF(e)||typeof e==`function`}}),this.fields=Object.create(null),this._sortErrors=bF,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{e&&this.shape(e)})}_cast(e,t={}){let n=super._cast(e,t);if(n===void 0)return this.getDefault(t);if(!this._typeCheck(n))return n;let r=this.fields,i=t.stripUnknown??this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(n).filter(e=>!this._nodes.includes(e))),o={},s=Object.assign({},t,{parent:o,__validating:t.__validating||!1}),c=!1;for(let e of a){let a=r[e],l=e in n,u=n[e];if(a){let r;s.path=(t.path?`${t.path}.`:``)+e,a=a.resolve({value:u,context:t.context,parent:o});let i=a instanceof WP?a.spec:void 0,l=i?.strict;if(i!=null&&i.strip){c||=e in n;continue}r=!t.__validating||!l?a.cast(u,s):u,r!==void 0&&(o[e]=r)}else l&&!i&&(o[e]=u);(l!==e in o||o[e]!==u)&&(c=!0)}return c?o:n}_validate(e,t={},n,r){let{from:i=[],originalValue:a=e,recursive:o=this.spec.recursive}=t;t.from=[{schema:this,value:a},...i],t.__validating=!0,t.originalValue=a,super._validate(e,t,n,(e,i)=>{if(!o||!vF(i)){r(e,i);return}a||=i;let s=[];for(let e of this._nodes){let n=this.fields[e];n&&!NP.isRef(n)&&s.push(n.asNestedTest({options:t,key:e,parent:i,parentPath:t.path,originalParent:a}))}this.runTests({tests:s,value:i,originalValue:a,options:t},n,t=>{r(t.sort(this._sortErrors).concat(e),i)})})}clone(e){let t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),n=t.fields;for(let[e,t]of Object.entries(this.fields)){let r=n[e];n[e]=r===void 0?t:r}return t.withMutation(t=>t.setFields(n,[...this._excludedEdges,...e._excludedEdges]))}_getDefault(e){if(`default`in this.spec)return super._getDefault(e);if(!this._nodes.length)return;let t={};
34return this._nodes.forEach(n=>{var r;let i=this.fields[n],a=e;(r=a)!=null&&r.value&&(a=Object.assign({},a,{parent:a.value,value:a.value[n]})),t[n]=i&&`getDefault`in i?i.getDefault(a):void 0}),t}setFields(e,t){let n=this.clone();return n.fields=e,n._nodes=fF(e,t),n._sortErrors=mF(Object.keys(e)),t&&(n._excludedEdges=t),n}shape(e,t=[]){return this.clone().withMutation(n=>{let r=n._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),r=[...n._excludedEdges,...t]),n.setFields(Object.assign(n.fields,e),r)})}partial(){let e={};for(let[t,n]of Object.entries(this.fields))e[t]=`optional`in n&&n.optional instanceof Function?n.optional():n;return this.setFields(e)}deepPartial(){return gF(this)}pick(e){let t={};for(let n of e)this.fields[n]&&(t[n]=this.fields[n]);return this.setFields(t,this._excludedEdges.filter(([t,n])=>e.includes(t)&&e.includes(n)))}omit(e){let t=[];for(let n of Object.keys(this.fields))e.includes(n)||t.push(n);return this.pick(t)}from(e,t,n){let r=(0,iP.getter)(e,!0);return this.transform(i=>{if(!i)return i;let a=i;return _F(i,e)&&(a=Object.assign({},i),n||delete a[e],a[t]=r(i)),a})}json(){return this.transform(hF)}exact(e){return this.test({name:`exact`,exclusive:!0,message:e||DP.exact,test(e){if(e==null)return!0;let t=yF(this.schema,e);return t.length===0||this.createError({params:{properties:t.join(`, `)}})}})}stripUnknown(){return this.clone({noUnknown:!0})}noUnknown(e=!0,t=DP.noUnknown){typeof e!=`boolean`&&(t=e,e=!0);let n=this.test({name:`noUnknown`,exclusive:!0,message:t,test(t){if(t==null)return!0;let n=yF(this.schema,t);return!e||n.length===0||this.createError({params:{unknown:n.join(`, `)}})}});return n.spec.noUnknown=e,n}unknown(e=!0,t=DP.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>{if(!t)return t;let n={};for(let r of Object.keys(t))n[e(r)]=t[r];return n})}camelCase(){return this.transformKeys(aP.camelCase)}snakeCase(){return this.transformKeys(aP.snakeCase)}constantCase(){return this.transformKeys(e=>(0,aP.snakeCase)(e).toUpperCase())}describe(e){let t=(e?this.resolve(e):this).clone(),n=super.describe(e);n.fields={};for(let[i,a]of Object.entries(t.fields)){var r;let t=e;(r=t)!=null&&r.value&&(t=Object.assign({},t,{parent:t.value,value:t.value[i]})),n.fields[i]=a.describe(t)}return n}};xF.prototype=SF.prototype;function CF(e){return new wF(e)}var wF=class extends WP{constructor(e){super({type:`array`,spec:{types:e},check(e){return Array.isArray(e)}}),this.innerType=void 0,this.innerType=e}_cast(e,t){let n=super._cast(e,t);if(!this._typeCheck(n)||!this.innerType)return n;let r=!1,i=n.map((e,i)=>{let a=this.innerType.cast(e,Object.assign({},t,{path:`${t.path||``}[${i}]`,parent:n,originalValue:e,value:e,index:i}));return a!==e&&(r=!0),a});return r?i:n}_validate(e,t={},n,r){let i=this.innerType,a=t.recursive??this.spec.recursive;t.originalValue!=null&&t.originalValue,super._validate(e,t,n,(o,s)=>{if(!a||!i||!this._typeCheck(s)){r(o,s);return}let c=Array(s.length);for(let n=0;n<s.length;n++)c[n]=i.asNestedTest({options:t,index:n,parent:s,parentPath:t.path,originalParent:t.originalValue??e});this.runTests({value:s,tests:c,originalValue:t.originalValue??e,options:t},n,e=>r(e.concat(o),s))})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(hF)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!AP(e))throw TypeError("`array.of()` sub-schema must be a valid yup schema not: "+mP(e));return t.innerType=e,t.spec=Object.assign({},t.spec,{types:e}),t}length(e,t=OP.length){return this.test({message:t,name:`length`,exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t){return t||=OP.min,this.test({message:t,name:`min`,exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t){return t||=OP.max,this.test({message:t,name:`max`,exclusive:!0,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(t,n,r)=>!e(t,n,r):e=>!!e;return this.transform(e=>e==null?e:e.filter(t))}describe(e){let t=(e?this.resolve(e):this).clone(),n=super.describe(e);if(t.innerType){var r;let i=e;(r=i)!=null&&r.value&&(i=Object.assign({},i,{parent:i.value,value:i.value[0]})),n.innerType=t.innerType.describe(i)}return n}};CF.prototype=wF.prototype,class extends WP{constructor(e){super({type:`tuple`,spec:{types:e},check(e){let t=this.spec.types;return Array.isArray(e)&&e.length===t.length}}),this.withMutation(()=>{this.typeError(kP.notType)})}_cast(e,t){let{types:n}=this.spec,r=super._cast(e,t);if(!this._typeCheck(r))return r;let i=!1,a=n.map((e,n)=>{let a=e.cast(r[n],Object.assign({},t,{path:`${t.path||``}[${n}]`,parent:r,originalValue:r[n],value:r[n],index:n}));return a!==r[n]&&(i=!0),a});return i?a:r}_validate(e,t={},n,r){let i=this.spec.types;super._validate(e,t,n,(a,o)=>
34{if(!this._typeCheck(o)){r(a,o);return}let s=[];for(let[n,r]of i.entries())s[n]=r.asNestedTest({options:t,index:n,parent:o,parentPath:t.path,originalParent:t.originalValue??e});this.runTests({value:o,tests:s,originalValue:t.originalValue??e,options:t},n,e=>r(e.concat(a),o))})}describe(e){let t=(e?this.resolve(e):this).clone(),n=super.describe(e);return n.innerType=t.spec.types.map((t,n)=>{var r;let i=e;return(r=i)!=null&&r.value&&(i=Object.assign({},i,{parent:i.value,value:i.value[n]})),t.describe(i)}),n}}.prototype;var TF=e=>e?Array.isArray(e)?e:[e]:[],EF=e=>{let t={},n=e.inner.length>0?e.inner:[e];for(let e of n){let n=e.path;n&&!t[n]&&(t[n]=[e.message])}return t},DF=e=>({validate:async t=>{try{return await e.schema.validate(t,{abortEarly:!1}),{}}catch(e){if(e instanceof xP)return EF(e);throw e}}}),OF=e=>{let t={...e.initialValues},n={},r=0,i=0,[a,s]=o(0),[c,l]=o(0),[u,d]=o(!1),f=(e=>(a(),typeof e==`function`?e(t):e?t[e]:t)),p=(e,a)=>{t={...t,[e]:a},s(++r);let o=e;n[o]&&(n={...n,[o]:null},l(++i))},m=()=>(c(),n),h=async()=>{let r=TF(e.extend),a={};for(let e of r)a={...a,...await e.validate(t)};return n=a,l(++i),Object.values(a).every(e=>!e?.length)},g=(n={})=>{let r=n.onSubmit??e.onSubmit;return async e=>{if(e?.preventDefault(),r&&!u()&&await h()){d(!0);try{await r(t)}finally{d(!1)}}}},_=g({onSubmit:e.onSubmit});return{form:e=>(e.addEventListener(`submit`,_),{destroy:()=>e.removeEventListener(`submit`,_)}),data:f,setFields:p,errors:m,isSubmitting:u,createSubmitHandler:g,handleSubmit:_}},kF;(function(e){let t=e.getAppropriateEcoName=e=>{let t=e.fullName;if(!t)return null;if(e.friendlyName)return[e.friendlyName,[]];let[n,r]=t.split(`:`,2);return[n,r?r.split(`,`).map(e=>e.trim()):[]]};e.getNameEcoCodeIdentifier=e=>t(e)[0],e.getVariationEcoCodeIdentifier=e=>t(e)[1]?.[1],e.toEcoNames=e=>{let n=t(e);return{ecoCode:e,lastVariation:Bl(n[1])??null,fullVariation:n[1]?.join(`, `)??null,fullName:e.fullName,name:e?.friendlyName??n[0]}}})(kF||={});var AF=e=>{let t=Y().ecoCodeLookup,n=du(mp.toPositions(mp.toPgn(e)),e=>!!t[e]);if(n){let e=t[n],r=kF.getAppropriateEcoName(e);return{ecoCode:e,lastVariation:Bl(r[1])??null,fullVariation:r[1]?.join(`, `)??null,fullName:e.fullName,name:r[0]}}return null},jF=e=>{let t=()=>Y().ecoCodeLookup;return _(()=>{let n=du(mp.toPositions(mp.toPgn(e)),e=>!!t()[e]);if(n){let e=t()[n],r=kF.getAppropriateEcoName(e);return{ecoCode:e,lastVariation:Bl(r[1])??null,fullVariation:r[1]?.join(`, `)??null,fullName:e.fullName,name:r[0]}}return null})},[MF,NF]=o(!1,{ownedWrite:!0}),PF=e=>{m(()=>Q().currentView()?.component===e,e=>{NF(e)}),O(()=>{NF(!1)})},FF=()=>[100,`my-moves`],IF=new Map,LF=(e,t)=>{IF.set(e,t)},RF=new Set,zF=e=>{RF.add(e)},BF=He,VF=e=>Object.freeze(BF(e)),HF=0,UF=0,WF=()=>UF,GF=0,KF=new Map,qF=new Map,JF=new Set,YF=new Set,XF=new Map,ZF=new WeakMap,QF=new Set,$F=new Map,eI=new Set,tI=e=>e!==null&&(typeof e==`object`||typeof e==`function`),nI=e=>{if(!tI(e)||De(e)||ZF.has(e))return!1;if(Array.isArray(e))return!0;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},rI=e=>{let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},iI=e=>tI(e)&&!Array.isArray(e)&&rI(e)&&Reflect.ownKeys(e).length===0,aI=(e,t)=>Object.is(e,t)?!0:Array.isArray(e)&&e.length===0?Array.isArray(t)&&t.length===0:iI(e)&&iI(t),oI=e=>{if(typeof e==`symbol`){let t=XF.get(e);return t===void 0&&(t=GF++,XF.set(e,t)),`y${t}`}let t=String(e);return`s${t.length}:${t}`},sI=(e,t)=>`${e}|${t.map(oI).join(`|`)}`,cI=(e,t)=>e.charCodeAt(e.length-1)===124?`${e}${oI(t)}`:`${e}|${oI(t)}`,lI=e=>`${e}|ownKeys`,uI=(e,t)=>{for(let n of t){let t=qF.get(n);t||(t=new Set,qF.set(n,t)),t.add(e)}},dI=(e,t)=>{for(let n of t){let t=qF.get(n);t&&(t.delete(e),t.size===0&&qF.delete(n))}},fI=(e,t)=>{if(!tI(e))return e;let n=ZF.get(e);return!n||t.has(e)?e:(t.add(e),pI(n.record.current,n.path,t))},pI=(e,t,n=new WeakSet)=>{let r=fI(e,n);for(let e=0;e<t.length;e++){let i=t[e];if(r=fI(r,n),!tI(r))return;r=r[i]}return fI(r,n)},mI={equals:!1,ownedWrite:!0},hI=(e,t)=>{let n=KF.get(e);return n||(n={alien:void 0,solid:void 0,setSolid:void 0,version:0,ancestors:t},KF.set(e,n),uI(e,t)),n},gI=()=>Oe()?1:T()?2:0,_I=(e,t)=>{if(t&1&&(e.alien??=xe(e.version))(),t&2){if(e.solid===void 0){let[t,n]=o(e.version,mI);e.solid=t,e.setSolid=n}e.solid()}},vI=(e,t,n=!1)=>
34{if(JF.add(t),eI.add(e),n&&YF.add(t),UF===0){be();try{yI()}finally{$e()}}},yI=()=>{if(JF.size===0)return;let e=new Set(JF),t=new Set(YF),n=[...eI];if(JF.clear(),YF.clear(),eI.clear(),t.size>0)for(let n of t)for(let t of qF.get(n)??[])e.add(t);for(let e of n)e.version++;for(let t of e){let e=KF.get(t);if(!e)continue;let n=e.version+1;e.version=n,e.alien?.(n),e.setSolid?.(n)}},bI=e=>{let t=`${e}|`;for(let[e,n]of KF)e.startsWith(t)&&(KF.delete(e),dI(e,n.ancestors))},xI=()=>{for(let e of QF)e.draftProxyCache.clear()},SI=e=>{if(!Array.isArray(e))return{};let t=[];return t.length=e.length,t},CI=()=>Error(`Feature store public state is read-only. Mutate inside featureStore.set().`),wI=(e,t)=>t.length===0?e.current:pI(e.current,t),TI=(e,t)=>{let n=e;for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}},EI=(e,t)=>{let n=TI(e,t);return!!n&&`get`in n&&typeof n.get==`function`},DI=(e,t,n)=>{if(!tI(t))return t;let r=ZF.get(t);if(r?.record===e)return r.kind===`draft`?r.snapshot:pI(r.record.current,r.path);if(r?.kind===`draft`){let i=r.snapshot;return Object.is(i,t)?t:DI(e,i,n)}if(r||De(t))return t;n??=new WeakMap;let i=n.get(t);if(i!==void 0)return i;if(n.set(t,t),Array.isArray(t)){let r;return t.forEach((i,a)=>{let o=DI(e,i,n);r?r[a]=o:Object.is(o,i)||(r=t.slice(0,a),r[a]=o)}),r?(r.length=t.length,n.set(t,r),r):t}if(!rI(t))return t;let a;for(let r of Reflect.ownKeys(t)){let i=Object.getOwnPropertyDescriptor(t,r);if(!i||!(`value`in i))continue;let o=i.value,s=DI(e,o,n);a?Object.defineProperty(a,r,{...i,value:s}):Object.is(s,o)||(a=Object.create(Object.getPrototypeOf(t)),Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)),Object.defineProperty(a,r,{...i,value:s}))}return a?(n.set(t,a),a):t},OI=e=>{if(!tI(e))return e;let t=ZF.get(e);return t?t.kind===`draft`?t.snapshot??e:pI(t.record.current,t.path):e},kI=(e,t)=>{let n=OI(e);if(!tI(n))return n;let r=t.get(n);if(r!==void 0)return r;if(Array.isArray(n)){let e=[];t.set(n,e);for(let r=0;r<n.length;r++)e[r]=kI(n[r],t);return e}if(n instanceof Date)return new Date(n.getTime());if(!rI(n))return n;let i=Object.create(Object.getPrototypeOf(n));t.set(n,i);for(let e of Reflect.ownKeys(n)){let r=Object.getOwnPropertyDescriptor(n,e);r&&(`value`in r?Object.defineProperty(i,e,{...r,value:kI(r.value,t)}):Object.defineProperty(i,e,r))}return i},AI=e=>kI(e,new WeakMap),jI=[],MI=Symbol(`featureStoreProxyState`),NI=(e,t)=>{let n=e.childPathKeyCache?.get(t);if(n!==void 0)return n;let r=cI(e.baseKey,t);return(e.childPathKeyCache??=new Map).set(t,r),r},PI=(e,t,n)=>{let r=e.childCellCache?.get(t);if(r===void 0){let n=NI(e,t);r={key:n,cell:hI(n,e.cellAncestors)},(e.childCellCache??=new Map).set(t,r)}return _I(r.cell,n),r.key},FI=(e,t)=>{e.ownKeysKey??=lI(e.baseKey),e.ownKeysCell??=hI(e.ownKeysKey,e.cellAncestors),_I(e.ownKeysCell,t)},II=e=>{if(UF===0&&e.cachedSourceVersion===e.record.version)return e.cachedSource;let t=wI(e.record,e.path);return UF===0&&(e.cachedSourceVersion=e.record.version,e.cachedSource=t),t},LI=(e,t,n)=>{if(Array.isArray(t))return!1;t!==e.accessorCheckSource&&(e.accessorCheckSource=t,e.accessorProps?.clear());let r=e.accessorProps?.get(n);return r===void 0&&(r=EI(t,n),(e.accessorProps??=new Map).set(n,r)),r},RI={get(e,t){let n=e[MI],r=II(n),i=tI(r)?r[t]:void 0;if(t===Symbol.toStringTag)return i;let a,o=nI(i),s=UF===0&&o&&LI(n,r,t),c=!o||s?gI():0;if(c!==0&&(a=PI(n,t,c)),!o||s)return i;if(UF===0){let e=n.childPublicProxyCache?.get(t);if(e)return e}let l=[...n.path,t];if(a??=NI(n,t),UF>0)return UI(n.record,l,a,i,[...n.cellAncestors,a]);let u=zI(n.record,l,a,i,[...n.cellAncestors,a]);return(n.childPublicProxyCache??=new Map).set(t,u),u},has(e,t){let n=e[MI],r=gI();r!==0&&PI(n,t,r);let i=II(n);return tI(i)&&t in i},ownKeys(e){let t=e[MI],n=gI();n!==0&&FI(t,n);let r=II(t);return tI(r)?Reflect.ownKeys(r):[]},getOwnPropertyDescriptor(e,t){let n=e[MI],r=gI();r!==0&&PI(n,t,r);let i=II(n);if(!tI(i))return;let a=Reflect.getOwnPropertyDescriptor(i,t);return Array.isArray(i)&&t===`length`?a:a?{...a,configurable:!0}:void 0},set(){throw CI()},deleteProperty(){throw CI()},defineProperty(){throw CI()}},zI=(e,t=[],n=sI(e.scope,t),r,i=jI)=>{let a=e.publicProxyCache.get(n);if(a)return a;let o=r===void 0?wI(e,t):r,s={record:e,path:t,baseKey:n,cellAncestors:i,cachedSourceVersion:UF===0?e.version:-1,cachedSource:UF===0?o:void 0},c=SI(o);c[MI]=s;let l=new Proxy(c,RI);return ZF.set(l,{record:e,path:t,kind:`public`}),e.publicProxyCache.set(n,l),l},BI=(e,t)=>{let n=e.childPathKeyCache?.get(t);if(n!==void 0)return n;let r=cI(e.baseKey,t);return(e.childPathKeyCache??=new Map).set(t,r),r},VI=e=>(e.ownKeysKey??=lI(e.baseKey),e.ownKeysKey),HI={get(e,t){let n=e[MI],r=n.snapshot,i=tI(r)?r[t]:void 0;if(!nI(i)){let e=gI();return e!==0&&_I(hI(BI(n,t),n.cellAncestors),e),i}let a=n.childDraftProxyCache?.get(t);if(a?.snapshot===i)return a.proxy;let o=BI(n,t),s=UI(n.record,[...n.path,t],o,i,[...n.cellAncestors,o]);return(n.childDraftProxyCache??=new Map).set(t,{proxy:s,snapshot:i}),s},has(e,t){let n=e[MI],r=gI();r!==0&&_I(hI(BI(n,t),n.cellAncestors),r);let i=n.snapshot;return tI(i)&&t in i},ownKeys(e){let t=e[MI],n=gI();n!==0&&_I(hI(VI(t),t.cellAncestors),n);let r=t.snapshot;return tI(r)?Reflect.ownKeys(r):[]},getOwnPropertyDescriptor(e,t){let n=e[MI],r=gI();r!==0&&_I(hI(BI(n,t),n.cellAncestors),r);let i=n.snapshot;if(!tI(i))return;let a=Reflect.getOwnPropertyDescriptor(i,t);return Array.isArray(i)&&t===`length`?a:a?{...a,configurable:!0}:void 0},set(e,t,n){let r=e[MI],i=r.snapshot;if(!tI(i))return!1;let a=r.record,o=t in i,s=i[t],c=Array.isArray(i)?i.length:void 0,l=tI(n)?DI(a,n):n;return Reflect.set(i,t,l)?aI(s,l)?!0:(vI(a,BI(r,t),tI(s)||tI(l)),o||vI(a,VI(r)),Array.isArray(i)&&(t===`length`?c!==i.length&&vI(a,VI(r)):vI(a,BI(r,`length`))),!0):!1},defineProperty(e,t,n){let r=e[MI],i=r.snapshot;if(!tI(i))return!1;let a=r.record,o=t in i,s=i[t],c=Array.isArray(i)?i.length:void 0,l=`value`in n,u=l?{...n,value:tI(n.value)?DI(a,n.value):n.value}:n;if(!Reflect.defineProperty(i,t,u))return!1;let d=l?u.value:i[t];return l&&aI(s,d)?!0:(vI(a,BI(r,t),tI(s)||tI(d)),o||vI(a,VI(r)),Array.isArray(i)&&(t===`length`?c!==i.length&&vI(a,VI(r)):vI(a,BI(r,`length`))),!0)},deleteProperty(e,t){let n=e[MI],r=n.snapshot;if(!tI(r))return!1;let i=n.record,a=t in r,o=a?r[t]:void 0,s=Reflect.deleteProperty(r,t);
34return s&&a&&(vI(i,BI(n,t),tI(o)),vI(i,VI(n)),Array.isArray(r)&&vI(i,BI(n,`length`))),s}},UI=(e,t=[],n=sI(e.scope,t),r,i=jI)=>{let a=r===void 0?wI(e,t):r,o=e.draftProxyCache.get(n);if(o&&tI(a)&&o.snapshot===a)return o.proxy;let s={record:e,path:t,baseKey:n,cellAncestors:i,snapshot:a},c=SI(a);c[MI]=s;let l=new Proxy(c,HI);return ZF.set(l,{record:e,path:t,kind:`draft`,snapshot:tI(a)?a:void 0}),tI(a)&&t.length>0&&e.draftProxyCache.set(n,{proxy:l,snapshot:a}),l},WI=(e,t={})=>{let n={scope:`store:${HF++}`,current:e,disposed:!1,version:0,draftProxyCache:new Map,publicProxyCache:new Map},r=zI(n),i=UI(n);QF.add(n),$F.set(n.scope,n);let a=()=>{n.disposed||(n.disposed=!0,QF.delete(n),$F.delete(n.scope),bI(n.scope))};return t.autoCleanup!==!1&&u()&&O(a),{state:r,set:e=>{if(n.disposed)throw Error(`Cannot mutate a disposed feature store.`);if(UF>0)return e(i);be(),UF++;try{return e(i)}finally{if(UF--,UF===0)try{yI()}finally{xI(),$e()}}},read:e=>e(r),current:()=>r,dispose:a}},GI=l(`<div class=h-full>`),KI=d(),qI=e=>{let t=()=>e.stack.length-1,n=()=>e.stack[t()];return x(j,{get when(){return n()?.id},keyed:!0,children:e=>{let r=ie(n),i=ie(()=>r.component),a=ie(()=>AI(r.props??{}));var o=GI();return C(o,`data-sidebar-view-id`,e),N(o,x(KI,{get value(){return ie(t)},get children(){return x(de,g({component:i},a))}})),M(()=>({e:`sidebar-stack-${t()}`,t:i.getSidebarPreviewState?.(),a:i.getSidebarPreviewState?`data`:void 0}),({e,t,a:n},r)=>{e!==r?.e&&C(o,`id`,e),t!==r?.t&&C(o,`data-sidebar-preview-state`,t),n!==r?.a&&C(o,`data-sidebar-preview-scope`,n)}),o}})},[JI,YI]=o([],{ownedWrite:!0}),XI=(e,t)=>{YI(n=>{let r=[...n],i=n.length;for(t&&i<e+1&&(r=r.concat(Array.from({length:e+1-i},()=>null))),r[e]=t;r.length>0&&r[r.length-1]===null;)r.pop();return r})},ZI=(e,t)=>{let n=f(KI);n!==void 0&&ze(()=>(XI(n,{fn:e,behavior:t??`animate`}),()=>{XI(n,null)}))},QI=(e,t,n)=>{let r=f(KI);r!==void 0&&ze(()=>(XI(r,{fn:t,behavior:n??`animate`,enabled:e}),()=>{XI(r,null)}))},$I=JI,eL=e=>{let t=f(KI);t!==void 0&&ze(()=>(XI(t,{behavior:`step`,resolveStep:e}),()=>XI(t,null)))},tL=`upgrade-presentation-v1`,nL={variant:`new`,source:`default`},rL=e=>{let t=new URLSearchParams(window.location.search).get(`upgrade-treatment`);if(!Ye&&Le&&(t===`old`||t===`new`)){e({variant:t===`old`?`control`:`new`,source:`preview`});return}let n=q().userState.user;if(Ye||![`chessbook.com`,`www.chessbook.com`].includes(window.location.hostname)||!n||n.isAdmin||q().userState.isSubscribed()){e(nL);return}let r=n.id,i=!1,a,o=t=>{i||(i=!0,clearTimeout(s),a?.(),e(t))},s=setTimeout(()=>o(nL),2500);return NM(),Me().then(e=>{if(i)return;if(q().userState.user?.id!==r||e.get_distinct_id()!==r){o(nL);return}e.set_config({advanced_disable_flags:!1});let t=!1;a=e.onFeatureFlags((n,a,s)=>{if(!t||i)return;let c=a[tL];if(s?.errorsLoading||q().userState.user?.id!==r||e.get_distinct_id()!==r||c!==`control`&&c!==`new`){o(nL);return}o({variant:c,source:`experiment`})}),t=!0,e.reloadFeatureFlags()}).catch(()=>o(nL)),()=>{i=!0,clearTimeout(s),a?.()}},iL=e=>({upgrade_treatment:e.variant===`control`?`old`:`new`,upgrade_assignment:e.source,...e.source===`experiment`?{upgrade_experiment:tL,[`$feature/${tL}`]:e.variant}:{}}),aL=l(`<div class="row items-start"><span class="w-4 shrink-0 flex items-center justify-center"style=height:0.73em><i></i></span><!><!>`),oL=l(`<p class="text-secondary leading-5">Free users can add and review <!> moves per color. Upgrade to unlock unlimited moves!`),sL=l(`<p class="text-secondary leading-5 text-xs pt-4 padding-sidebar">If you ever cancel, you'll still have full access to your saved moves in your repertoire. You'll be able to review online mistakes, view model games, export your moves, and practice the most common <!> moves per side.`),cL=l(`<span class="row items-center gap-3">Annual<span class="rounded-sm text-[10px] font-bold uppercase tracking-wide leading-none px-1.5 py-1">Save <!>%`),lL=l(`<div class="h-3.5 lg:h-2">`),uL=l(`<div class=padding-sidebar><p class="text-primary font-semibold text-sm glyph-trim-both">Get Chessbook Pro to</p><div class=col><!><!><!>`),dL=jN.default.light.color,fL=8+2*it,pL=e=>{var t=aL(),n=t.firstChild,r=n.firstChild,i=n.nextSibling,a=i.nextSibling;return s(n,`margin-top`,`${at}px`),N(t,x(R,{width:8}),i),N(t,x(V,{class:`body-text`,get children(){return e.children}}),a),M(()=>({e:F(L(`leading-none`,e.icon??`fa-solid fa-check text-xs`,e.icon&&`text-primary`)),t:F(e.icon?void 0:{color:dL})}),({e,t},n)=>{P(r,e,n?.e),w(r,t,n?.t)}),t},mL=e=>{let t=st(),n=e.onBack;n&&ZI(n);let r=()=>t().isMobile?32:36,[i,a]=o(!1),[c,l]=o(null),u=()=>c()?.variant===`control`,d=()=>e.repertoireId===void 0?X().state.activeRepertoireId:e.repertoireId,f=()=>{let e=d();if(e)return Y().homeProgressStates[e]?.numLocked??0;let t=Y().lockedMoves.numLocked;return t.white+t.black},p=()=>d()?100:200,h=()=>{let e=Y().numMyEnabledMoves,t=d();return t?e[t]??0:e.white+e.black},g=()=>q().inAppPurchaseState.products,v=()=>Ye&&H(g()),y=e=>{let t=c();if(!t)return;let n=`annual`in e?e.annual:yN(e.offer);a(!0),K(`upgrade.subscribe`,{type:n?`annual`:`monthly`,...iL(t)}),Z(t=>{`offer`in e?e.offer.order().then(e=>{Z(e=>{e.userState.user.subscribed=!0,Q().backOne()})},e=>{a(!1),e&&!vN(e)&&qn(e,{extra:{code:e.code,message:e.message}})}):t.userState.createCheckoutLink(e.annual).then(e=>{window.location.href=e})})};ze(()=>rL(l)),m(c,t=>{t&&K(`upgrade.shown`,{...iL(t),past_limit:e.pastLimit,num_locked:f(),num_moves:h(),move_limit:p(),repertoire_scope:d()?`single`:`all`})});let b=e=>{let t=g()[Xe?xN:e?wN:CN];return t?t.offers.length===1?t.offers[0]:su(t.offers,t=>e?yN(t):!yN(t))??null:null},S=_(()=>b(!1)),C=_(()=>b(!0)),w=()=>{let e=hL()[0];return Math.round(e)===e?`${e}`:`${e.toFixed(2)}`},T=()=>Ye?`${S().pricingPhases[0].price} / month`:`$${w()} / month`,E=()=>Ye?`${C().pricingPhases[0].price} / year`:`$${hL()[1]} / year`,D=()=>Math.round((1-(Ye?C().pricingPhases[0].priceMicros/(S().pricingPhases[0].priceMicros*12):hL()[1]/(hL()[0]*12)))*100);return[x($,{get actions(){return A(()=>!!(i()||v()||!c()))()?[]:A(()=>!!u())()?[{onPress:()=>y({annual:!1}),text:`Upgrade to Chessbook Pro - monthly`,subtext:`$${w()}/month`,style:`primary`},{onPress:()=>y({annual:!0}),text:`Upgrade to Chessbook Pro - annual`,subtext:`$${hL()[1]}/year (save ${D()}%)`,style:`primary`}]:[{onPress:()=>{y(Ye?{offer:S()}:{annual:!1})},text:`Monthly`,right:T(),style:`primary`},{onPress:()=>{y(Ye?{offer:C()}:{annual:!0})},text:(()=>{var e=cL(),t=e.firstChild.nextSibling,n=t.firstChild.nextSibling;return n.nextSibling,s(t,`background-color`,dL),N(t,D,n),M(()=>B.colors.text.primary,e=>{s(t,`color`,e)}),e})(),right:E(),style:`primary`}]},get header(){return A(()=>!!e.pastLimit)()?t().isMobile&&!u()?`Youâve reached the free plan limit`:`Youâve reached the limit on the free plan`:`Upgrade your account`},get bodyPadding(){return u()},get actionsPadding(){return u()},get loading(){return i()||!c()},get children(){return x(j,{get when(){return u()},get fallback(){return[x(j,{get when(){return f()===0},get children(){return lL()}}),(()=>{var e=uL(),t=e.firstChild,n=t.nextSibling,i=n.firstChild,a=i.nextSibling,o=a.nextSibling;return N(e,x(j,{get when(){return f()>0},get children(){return[x(pL,{icon:`fa-solid fa-lock text-xs`,get children(){return`${f().toLocaleStr
34ing()} of your ${h().toLocaleString()} saved moves ${f()===1?`is`:`are`} locked`}}),x(R,{get height(){return r()}})]}}),t),N(e,x(R,{height:fL}),n),s(n,`gap`,`${fL}px`),N(n,x(pL,{get children(){return`Unlock everything past the ${p()} move limit`}}),i),N(n,x(pL,{children:`Add unlimited moves`}),a),N(n,x(pL,{children:`Export all your saved moves`}),o),e})(),x(R,{get height(){return r()}}),x(W6,{text:`Choose your plan`,class:`text-primary!`})]},get children(){var e=oL(),t=e.firstChild.nextSibling;return t.nextSibling,N(e,100,t),e}})}}),x(j,{get when(){return A(()=>!!u())()?!i():u()},get children(){var e=sL(),t=e.firstChild.nextSibling;return t.nextSibling,N(e,100,t),e}})]};zF(mL);var hL=()=>Ue?[8,80]:[5,4],gL=e=>{let t=q().userState.isSubscribed(),n=Y().pastFreeTier(e);return!t&&n?(Q().pushView(mL,{props:{pastLimit:!0}}),!0):!1};function _L(e,t,n){let r=n??`${t}s`,i=e===1?t:r;return`${e.toLocaleString()} ${i}`}function vL(e,t,n){let r=n??`${t}s`;return`${e===1?t:r}`}var yL=function(){return yL=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},yL.apply(this,arguments)},bL=function(){function e(e,t,n){var r=this;this.endVal=t,this.options=n,this.version=`2.10.1`,this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,useIndianSeparators:!1,smartEasingThreshold:999,smartEasingAmount:333,separator:`,`,decimal:`.`,prefix:``,suffix:``,autoAnimate:!1,autoAnimateDelay:200,autoAnimateOnce:!1},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error=``,this.startVal=0,this.paused=!0,this.once=!1,this.count=function(e){r.startTime||=e;var t=e-r.startTime;r.remaining=r.duration-t,r.frameVal=r.useEasing?r.countDown?r.startVal-r.easingFn(t,0,r.startVal-r.endVal,r.duration):r.easingFn(t,r.startVal,r.endVal-r.startVal,r.duration):r.startVal+(r.endVal-r.startVal)*(t/r.duration),r.frameVal=(r.countDown?r.frameVal<r.endVal:r.frameVal>r.endVal)?r.endVal:r.frameVal,r.frameVal=Number(r.frameVal.toFixed(r.options.decimalPlaces)),r.printValue(r.frameVal),t<r.duration?r.rAF=requestAnimationFrame(r.count):r.finalEndVal===null?r.options.onCompleteCallback&&r.options.onCompleteCallback():r.update(r.finalEndVal)},this.formatNumber=function(e){var t,n,i,a,o=e<0?`-`:``;t=Math.abs(e).toFixed(r.options.decimalPlaces);var s=(t+=``).split(`.`);if(n=s[0],i=s.length>1?r.options.decimal+s[1]:``,r.options.useGrouping){a=``;for(var c=3,l=0,u=0,d=n.length;u<d;++u)r.options.useIndianSeparators&&u===4&&(c=2,l=1),u!==0&&l%c==0&&(a=r.options.separator+a),l++,a=n[d-u-1]+a;n=a}return r.options.numerals&&r.options.numerals.length&&(n=n.replace(/[0-9]/g,(function(e){return r.options.numerals[+e]})),i=i.replace(/[0-9]/g,(function(e){return r.options.numerals[+e]}))),o+r.options.prefix+n+i+r.options.suffix},this.easeOutExpo=function(e,t,n,r){return n*(1-2**(-10*e/r))*1024/1023+t},this.options=yL(yL({},this.defaults),n),this.options.enableScrollSpy&&(this.options.autoAnimate=!0),this.options.scrollSpyDelay!==void 0&&(this.options.autoAnimateDelay=this.options.scrollSpyDelay),this.options.scrollSpyOnce&&(this.options.autoAnimateOnce=!0),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.el=typeof e==`string`?document.getElementById(e):e,t??=this.parse(this.el.innerHTML),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(t),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,this.options.separator===``&&(this.options.useGrouping=!1),this.el?this.printValue(this.startVal):this.error=`[CountUp] target is null or undefined`,typeof window<`u`&&this.options.autoAnimate&&(this.error||typeof IntersectionObserver>`u`?this.error?console.error(this.error,e):console.error(`IntersectionObserver is not supported by this browser`):this.setupObserver())}return e.prototype.setupObserver=function(){var t=this,n=e.observedElements.get(this.el);n&&n.unobserve(),e.observedElements.set(this.el,this),this.observer=new IntersectionObserver((function(e){for(var n=0,r=e;n<r.length;n++){var i=r[n];i.isIntersecting&&t.paused&&!t.once?(t.paused=!1,t.autoAnimateTimeout=setTimeout((function(){return t.start()}),t.options.autoAnimateDelay),t.options.autoAnimateOnce&&(t.once=!0,t.observer.disconnect())):i.isIntersecting||t.paused||(clearTimeout(t.autoAnimateTimeout),t.reset())}}),{threshold:0}),this.observer.observe(this.el)},e.prototype.unobserve=function(){var t;clearTimeout(this.autoAnimateTimeout),(t=this.observer)==null||t.disconnect(),e.observedElements.delete(this.el)},e.prototype.onDestroy=function(){clearTimeout(this.autoAnimateTimeout),cancelAnimationFrame(this.rAF),this.paused=!0,this.unobserve(),this.options.onCompleteCallback=null,this.options.onStartCallback=null},e.prototype.determineDirectionAndSmartEasing=function(){var e=this.finalEndVal===null?this.endVal:this.finalEndVal;this.countDown=this.startVal>e;var t=e-this.startVal;if(Math.abs(t)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=e;var n=this.countDown?1:-1;
34this.endVal=e+n*this.options.smartEasingAmount,this.duration/=2}else this.endVal=e,this.finalEndVal=null;this.useEasing=this.finalEndVal===null&&this.options.useEasing},e.prototype.start=function(e){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),e&&(this.options.onCompleteCallback=e),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},e.prototype.pauseResume=function(){if(this.paused)this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count);else{cancelAnimationFrame(this.rAF);var e=this.finalEndVal===null?this.remaining:this.duration+this.remaining;this.remaining=e}this.paused=!this.paused},e.prototype.reset=function(){clearTimeout(this.autoAnimateTimeout),cancelAnimationFrame(this.rAF),this.paused=!0,this.once=!1,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},e.prototype.update=function(e){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(e),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal??this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},e.prototype.printValue=function(e){if(this.el){var t=this.formattingFn(e);this.options.plugin?.render?this.options.plugin.render(this.el,t):this.el.tagName===`INPUT`?this.el.value=t:this.el.tagName===`text`||this.el.tagName===`tspan`?this.el.textContent=t:this.el.innerHTML=t}},e.prototype.ensureNumber=function(e){return typeof e==`number`&&!isNaN(e)},e.prototype.validateValue=function(e){var t=Number(e);return this.ensureNumber(t)?t:(this.error=`[CountUp] invalid start or end value: ${e}`,null)},e.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},e.prototype.parse=function(e){var t=function(e){return e.replace(/([.,'Â ])/g,`\\$1`)},n=t(this.options.separator),r=t(this.options.decimal),i=e.replace(new RegExp(n,`g`),``).replace(new RegExp(r,`g`),`.`);return parseFloat(i)},e.observedElements=new WeakMap,e}(),xL=l(`<div>`),SL={},CL=(e,t)=>{let[n,r]=o(ie(()=>{let n=e();return(n==null?void 0:SL[n])??t()}));return h(()=>{let n=e(),i=t();if(n==null){r(i);return}let a=SL[n];if(i===a||a===void 0){SL[n]=i,r(i);return}r(a);let o=setTimeout(()=>{SL[n]=i,r(i)},500);return()=>clearTimeout(o)}),n},wL=e=>{let t=CL(()=>e.key,()=>e.value),n=`transition-all duration-1000`;return[(()=>{var r=xL();return M(()=>({e:F(L(`w-full overflow-hidden h-full select-none relative`,e.classBar,n)),t:F(z(B.width(`${t()*100}%`)))}),({e,t},n)=>{P(r,e,n?.e),w(r,t,n?.t)}),r})(),A(()=>A(()=>!!e.showFloatingValue)()?(()=>{var r=xL();return N(r,x(TL,{get decimalPlaces(){return e.decimalPlaces},get key(){return e.key},get value(){return e.textValue??e.value*100},get class(){return L(`text-inverse text-xs`)},formatValue:e=>e.toFixed(0)})),M(()=>({e:F(L(`absolute top-0 flex center -translate-x-1/2 -translate-y-1/2 bg-gray-88 py-1.5 w-9 rounded-sm leading-none shadow-lg`,n)),t:F(z(B.left(`clamp(10px, ${t()*100}%, 100% - 10px)`)))}),({e,t},n)=>{P(r,e,n?.e),w(r,t,n?.t)}),r})():e.showFloatingValue),A(()=>A(()=>!e.hideValue)()&&(()=>{var t=xL();return N(t,x(TL,{get decimalPlaces(){return e.decimalPlaces},get key(){return e.key},get value(){return e.textValue??e.value*100},get class(){return e.classText},get formatValue(){return e.formatValue}})),M(()=>F(L(`absolute top-0 bottom-0 flex center left-1.5`)),(e,n)=>{P(t,e,n)}),t})())]},TL=e=>{let t=()=>`${e.key}-label`,[n,r]=o(null);h(()=>{let r=e.decimalPlaces,i=e.formatValue,a=t(),o=n(),s=e.value;if(!o)return;let c=e=>i?.(e)??`${e.toFixed(r??0)}%`,l=SL[a];if(s===l||l===void 0){SL[a]=s,o.innerHTML=c(s);return}o.innerHTML=c(l);let u=setTimeout(()=>{SL[a]=s,new bL(o,s,{startVal:l,decimalPlaces:r??1,formattingFn:e=>c(e)}).start()},500);return()=>clearTimeout(u)});var i=xL();return I(()=>e=>{r(e)},i),M(()=>F(L(`inline tabular-nums`,e.class)),(e,t)=>{P(i,e,t)}),i},EL=(e,t,n)=>`${e}-${t}-${n??``}`,DL=l(`<i class="fa fa-spinner-third animate-spin text-primary">`),OL=l(`<i class="fa fa-wand-magic-sparkles text-primary">`),kL=l(`<span> <i class="fa fa-wand-magic-sparkles text-primary ml-1">
34`),AL={repertoire:`Autofill remaining gaps`,gap:`Autofill this gap`},jL=async(e,t)=>{let{AutoFillProgressView:n}=await ve(async()=>{let{AutoFillProgressView:e}=await import(`./AutoFillRepertoire-CwmUWXTw.js`);return{AutoFillProgressView:e}},[],import.meta.url);Q().pushView(n,{props:{buildId:e,repertoireId:t}})},ML=async(e,t,n,r)=>{let{AutoFillRepertoireView:i}=await ve(async()=>{let{AutoFillRepertoireView:e}=await import(`./AutoFillRepertoire-CwmUWXTw.js`);return{AutoFillRepertoireView:e}},[],import.meta.url);Q().pushView(i,{props:{repertoireId:e,source:t,startEpd:n,startLine:r}})},NL=async e=>{let{AutoFillSeedIntroView:t}=await ve(async()=>{let{AutoFillSeedIntroView:e}=await import(`./AutoFillSeedMoves-D05kBeNX.js`);return{AutoFillSeedIntroView:e}},__vite__mapDeps([11,12,1,13,14,4,2,5,15,16,17,18]),import.meta.url);Q().pushView(t,{props:{repertoireId:e}})},PL=e=>(Y().numMyMoves[e]??0)===0&&!Y().onboarding.isOnboarding,FL=e=>Object.values(Y().autoFillBuilds).find(t=>t.repertoireId===e&&!t.isComplete&&!t.error),IL=e=>{let t=Y().repertoires?.[e];return!(!J().flagEnabled(`repertoire_auto_fill`)||t?.course)},LL=e=>{if(!IL(e))return null;let t=FL(e);return t?{onPress:()=>{Z(n=>{jL(t.buildId,e),K(`side_overview.auto_fill_reattached`)})},right:DL(),text:`Autofilling moves...`,style:`primary`,testId:`auto-fill-repertoire`}:{onPress:()=>{Z(t=>{PL(e)?(NL(e),K(`side_overview.auto_fill_seed_opened`)):(ML(e,`repertoire`),K(`side_overview.auto_fill_opened`))})},right:OL(),text:`Auto fill all moves from here`,style:`primary`,testId:`auto-fill-repertoire`}},RL=()=>{if(X().state.repertoireSide!==X().state.currentSide)return!1;let e=Q().getActiveChessboard().getCurrentEpd();return!X().state.pendingResponses?.[e]?.mine&&!Ad(X().state.tableResponses,e=>e.repertoireMove?.mine)},zL=()=>X().state.hasPendingLineToAdd||H(Q().getActiveChessboard().getMoveLog())||!RL()?!1:X().derived.lastMoveNeededStatus()===`needed`,BL=e=>{if(!IL(e)||!zL())return null;let t=FL(e);return t?{onPress:()=>{Z(n=>{jL(t.buildId,e),K(`build.auto_fill_gap_reattached`)})},right:DL(),text:`Autofilling moves...`,style:`primary`,testId:`auto-fill-gap`}:{onPress:()=>{Z(t=>{ML(e,`gap`,Q().getActiveChessboard().getCurrentEpd(),[...Q().getActiveChessboard().getMoveLog()]),K(`build.auto_fill_gap_opened`)})},text:(()=>{var e=kL(),t=e.firstChild;return N(e,()=>AL.gap,t),e})(),right:`Pick a style, undo anytime`,style:`primary`,testId:`auto-fill-gap`}},VL=(e,t)=>Math.abs(e-t)<2**-52,HL=e=>e.length===0?``:e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(`, `)}, and ${e[e.length-1]}`,UL=l(`<p class=body-text>Your current coverage goal is <b> games</b>. You can increase this to have an even better chance of out-prepping your opponents.`),WL=e=>{let t=()=>X().derived.activeRepertoire()?.coverageTarget?`repertoire`:`user`,n=()=>{let e=Y().getRepertoireThreshold(X().state.activeRepertoireId??null);return gM[gM.findIndex(t=>VL(t.value,e))+1].value};return ze(()=>{K(`increase_coverage_goal.shown`,{source:e.source})}),x($,{header:`Increase your coverage goal?`,bodyPadding:!0,get actions(){return[{text:`Increase to ${OM(n())} games`,onPress:()=>{K(`increase_coverage_goal.increase`,{source:e.source});let r=t()===`user`?()=>J().setTargetDepth(n()):()=>Y().setRepertoireThreshold(X().state.activeRepertoireId,n());Q().loadUntil(r()).then(()=>{Q().backOne()})},style:`primary`}]},get children(){var e=UL(),t=e.firstChild.nextSibling,n=t.firstChild;return N(t,()=>OM(Y().getRepertoireThreshold(X().state.activeRepertoireId??null)),n),e}})},GL=l(`<div><p class=glyph-trim-both></p><i>`),KL=l(`<div class="absolute right-0 top-0 h-full text-tertiary bg-current transition-colors [@media(hover:hover)_and_(pointer:fine)]:group-has-[[data-locked-label]:hover]/bigbar:text-gray-78 group-has-[[data-locked-label]:active]/bigbar:text-gray-78">`),qL=l(`<div><div><h2 class="glyph-trim-both font-semibold cursor-default"> <!></h2></div><div class="bg-gray-34 h-2 rounded-sm overflow-hidden"><div class=h-full>`),JL=e=>{let t=()=>e.repertoireId?Y().homeProgressStates[e.repertoireId]:null,n=()=>e.repertoireId?Y().masteryFromEpd[e.repertoireId]?.[e.epd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0:Y().masteryOverall,r=()=>e.type===`completion`?t()?.percentComplete??0:n(),i=()=>{let e=r();return Math.min(e>0?Math.max(.02,e):0,1-a())},a=()=>
34{if(e.type!==`mastery`)return 0;let t=Y().numMyEnabledMoves,n=e.repertoireId?t[e.repertoireId]??0:t.white+t.black;return n>0?o()/n:0},o=()=>{if(e.repertoireId)return t()?.numLocked??0;let n=Y().lockedMoves.numLocked;return n.white+n.black},c=()=>EL(e.type,e.repertoireId,e.epd),l=()=>({text:`${_L(o(),`move`)} locked`,icon:`fa-lock`,onPress:()=>{K(`bar.locked_moves.upgrade`,{type:e.type,locked:o()}),Q().pushView(mL,{props:{pastLimit:!0,repertoireId:e.repertoireId??null}})}}),u=()=>{if(e.type===`mastery`)return o()>0?l():null;if(e.repertoireId&&(t()?.percentComplete??0)<1){let n=LL(e.repertoireId);if(n)return{text:(t()?.percentComplete??0)===0?`Autofill all moves`:AL.repertoire,icon:`fa-wand-magic-sparkles`,onPress:n.onPress}}return o()>0?l():!e.hideIncreaseCoverageGoal&&X().derived.shouldPromptToGoDeeper(e.repertoireId)?{text:`Increase your coverage goal`,icon:`fa-arrow-up-right`,onPress:()=>{Q().pushView(WL,{props:{source:`bar`}})}}:null};return x(j,{get when(){return t()||e.type===`mastery`},get children(){var t=qL(),n=t.firstChild,l=n.firstChild,d=l.firstChild,f=d.nextSibling,p=n.nextSibling,m=p.firstChild;return N(l,x(TL,{get decimalPlaces(){return e.decimalPlaces||0},get key(){return c()},get value(){return r()*100}}),d),N(l,()=>e.type===`completion`?`complete`:`mastered`,f),N(n,x(j,{get when(){return u()},get children(){var e=GL(),t=e.firstChild,n=t.nextSibling;return se(e,`click`,u().onPress,!0),N(t,()=>u().text),M(()=>({e:F(L(`flex gap-2 flex-row items-center justify-between text-xs text-tertiary font-semibold hover-fine:text-primary transition-colors cursor-pointer`,!rt&&`relative top-px`)),t:u().icon===`fa-lock`?``:void 0,a:F(L(`fa-solid icon-box`,rt&&`h-0 items-center`,u().icon,u().icon===`fa-lock`&&`relative -top-px`))}),({e:t,t:r,a:i},a)=>{P(e,t,a?.e),r!==a?.t&&C(e,`data-locked-label`,r),P(n,i,a?.a)}),e}}),null),N(m,x(wL,{hideValue:!0,get classBar(){return L(e.type===`completion`?`bg-success`:`bg-learning`)},get key(){return c()},get value(){return i()}})),N(p,x(j,{get when(){return a()>0},get children(){var e=KL();return M(()=>({e:`${a()*100}%`,t:`${o()} locked moves`}),({e:t,t:n},r)=>{t!==r?.e&&s(e,`width`,t),n!==r?.t&&C(e,`aria-label`,n)}),e}}),null),M(()=>({e:F(L(`group/bigbar flex`,rt?`gap-3`:`gap-2`)),t:F(L(`flex gap-3 flex-row justify-between`,rt?`items-end`:`items-center`)),a:F(z(B.relative,B.fullWidth,B.relative)),o:`inset(0 ${a()*100}% 0 0)`}),({e,t:r,a:i,o:a},o)=>{P(t,e,o?.e),P(n,r,o?.t),w(p,i,o?.a),a!==o?.o&&s(m,`clip-path`,a)}),t}})};ae([`click`]);var YL=l(`<div class="row items-start pl-2"><i class="fas fa-circle text-secondary mt-1.5 text-[5px]"></i><!><!>`),XL=e=>{var t=YL(),n=t.firstChild.nextSibling,r=n.nextSibling;return N(t,x(R,{width:8}),n),N(t,x(V,{class:`body-text glyph-trim-none`,get children(){return e.children}}),r),t},ZL=e=>x($,{get header(){return e.header},loading:!0,bodyPadding:!0,actions:[]}),QL=(e,t)=>{let n={},r={},i=new Set(t);for(let t in e)i.has(t)?n[t]=e[t]:r[t]=e[t];return[n,r]},$L=l(`<div>`),eR=e=>{var t=$L();return N(t,()=>e.children),M(()=>({e:e.id,t:F(z(!e.open&&B.noPointerEvents,e.style)),a:F(L(`transition-opacity duration-300`,e.open?`opacity-100`:`opacity-0`,!e.open&&`pointer-events-none`,e.className,e.class))}),({e,t:n,a:r},i)=>{e!==i?.e&&C(t,`id`,e),w(t,n,i?.t),P(t,r,i?.a)}),t},tR=l(`<div>`);function nR(e){return x(j,{get when(){return!!e.error},get children(){var t=tR();return N(t,()=>e.error),M(()=>({e:`text-danger pt-2 text-sm ${e.class}`,t:`${e.name}-error`}),({e,t:n},r)=>{P(t,e,r?.e),n!==r?.t&&C(t,`id`,n)}),t}})}var rR=l(`<label> <!>`),iR=l(`<span class="ml-1 text-danger">*`);function aR(e){return x(j,{get when(){return e.label},get children(){var t=rR(),n=t.firstChild,r=n.nextSibling;return N(t,()=>e.label,n),N(t,(()=>{var t=A(()=>!!e.required);return()=>t()?iR():e.required})(),r),M(()=>({e:F(L(`text-sm block glyph-trim-both font-medium text-secondary cursor-default`,!e.margin&&`mb-[13px] md:mb-4`)),t:e.name}),({e,t:n},r)=>
34{P(t,e,r?.e),n!==r?.t&&C(t,`for`,n)}),t}})}var oR=l(`<div><input><!>`),sR=l(`<div><p>/<!>`),cR=l(`<div><div class=relative><textarea></textarea></div><!>`);function lR(e){let t=()=>e.error??e.errors?.[e.name]?.[0],[,n]=QL(e,[`class`,`inputClass`,`label`,`padding`,`data`,`errors`,`setFields`,`error`]);var r=oR(),i=r.firstChild,a=i.nextSibling;return N(r,x(aR,{get name(){return e.name},get label(){return e.label},get required(){return e.required}}),i),pe(i,[{onInput:t=>{e.setFields(e.name,t.target.value)},onChange:t=>{e.setFields(e.name,t.target.value)},get class(){return L(`field-surface md:text-md w-full rounded h-sidebar-button px-4 py-0 placeholder:text-gray-60 outline-none`,t()&&`field-surface-error`,e.inputClass)},get"aria-invalid"(){return t()?`true`:void 0},get"aria-errormessage"(){return`${e.name}-error`}},n],!1),N(r,x(nR,{get name(){return e.name},get error(){return t()},class:`inline-block`}),a),M(()=>F(L(!e.padding&&``,e.class)),(e,t)=>{P(r,e,t)}),r}function uR(e){let t=()=>e.name?e.errors?.[e.name]?.[0]:null,[,n]=QL(e,[`class`,`inputClass`,`label`,`padding`,`data`,`errors`,`setFields`,`onInput`,`onFocus`,`onBlur`]),[r,i]=o(!1),a=()=>e.name?e.data?.(t=>t[e.name]):void 0;var s=cR(),c=s.firstChild,l=c.firstChild,u=c.nextSibling;return N(s,x(aR,{get name(){return e.name??``},get label(){return e.label},get required(){return e.required}}),c),pe(l,[n,{get name(){return e.name},get value(){return e.value??a()??``},get class(){return L(`field-surface md:text-md w-full rounded p-4 placeholder:text-gray-60 outline-none`,t()&&`field-surface-error`,e.inputClass)},get id(){return e.name},get"aria-invalid"(){return t()?`true`:void 0},get"aria-errormessage"(){return`${e.name}-error`},onFocus:t=>{i(!0),e.onFocus?.(t)},onInput:t=>{e.name&&e.setFields?.(e.name,t.currentTarget.value),e.onInput?.(t)},onBlur:t=>{i(!1),e.onBlur?.(t)}}],!1),N(c,x(eR,{get open(){return!!(e.maxLength&&(a()?.length??0)>0)},get children(){var t=sR(),n=t.firstChild,i=n.firstChild,o=i.nextSibling;return N(n,()=>a()?.length??0,i),N(n,()=>e.maxLength,o),M(()=>({e:F(z(B.absolute,B.bottom(12),B.zIndex(100),B.right(12),B.row,B.justifyBetween,B.opacity(r()?100:0))),t:F(z((a()?.length??0)>e.maxLength&&B.weightBold,B.fg((a()?.length??0)>e.maxLength?B.danger:B.gray[60])))}),({e,t:r},i)=>{w(t,e,i?.e),w(n,r,i?.t)}),t}}),null),N(s,x(nR,{get name(){return e.name},get error(){return t()},class:`inline-block`}),u),M(()=>F(L(!e.padding&&``,e.class)),(e,t)=>{P(s,e,t)}),s}var dR=l(`<div><div class="col items-center"><div class="min-w-80 padding-sidebar w-full self-stretch"><div><form class="col gap-8"><!><input type=submit hidden>`),fR=l(`<div class="row w-full justify-center">`);function pR(){let e=async e=>(l(``),QS.post(`/api/forgot_password`,{email:e.email}).then(()=>{K(`auth.forgot_password.success`),alert(`Email sent!`)}).catch(e=>{K(`auth.forgot_password.error`),l(e?.response?.data?.error??`Something went wrong`)})),{form:t,setFields:n,isSubmitting:r,errors:i,createSubmitHandler:a}=OF({initialValues:{email:``},onSubmit:e,extend:[DF({schema:xF({email:iF().email().required().label(`Email`)})})]}),s=a({onSubmit:e}),[c,l]=o(``);return x($,{actions:[{onPress:s,text:`Submit`,style:`focus`}],header:`Forgot your password?`,get children(){return x(j,{get when(){return!r()},get fallback(){var e=fR();return N(e,x(Ni,{})),e},get children(){var e=dR(),a=e.firstChild.firstChild.firstChild,o=a.firstChild,s=o.firstChild,l=s.nextSibling;return I(()=>t,o),N(o,x(lR,{setFields:n,placeholder:`[email protected]`,type:`email`,name:`email`,label:`Email`,get errors(){return i()}}),s),N(o,x(nR,{name:`Server error`,get error(){return c()},class:`inline-block`}),l),M(()=>({e:F(L(r()&&`opacity-0`)),t:F(z(B.br(4),B.px(0),B.py(0)))}),({e:t,t:n},r)=>{P(e,t,r?.e),w(a,n,r?.t)}),e}})}})}var mR=e=>{let t=[];for(let n=0;n<e.length;n++){let r=e[n];t.push({type:`crumb`,key:r.id,breadcrumb:r}),n<e.length-1&&t.push({type:`separator`,key:`sep-after-${r.id}`})}return t},hR=(e,t)=>{if(t.length>e.length){for(let n=0;n<t.length;n++)if(e[n]!==t[n])return n>=e.length?`right`:`left`;return`right`}return t.length<e.length?`left`:`right`},gR=e=>{for(let t=e.length-1;t>=0;t--)if(e[t].type===`crumb`)return e[t].key;return null},_R=(e,t)=>e.type===`crumb`&&e.key===t,vR=(e,t,n,r)=>{let i=e.length;for(let n=r+1;n<t.length;n++){let r=t[n].key,a=e.findIndex(e=>e.key===r);if(a>=0){i=a;break}}e.splice(i,0,n)},yR=(e,t)=>
34{for(let n=t+1;n<e.length;n++)if(e[n].type===`crumb`)return e[n].key;return null},bR=(e,t)=>{let n=e.findIndex(e=>e.key===t);return n===-1?null:yR(e,n)},xR=e=>e===`entering`||e===`exiting`?e:`active`,SR=(e,t,n,r)=>r||!t.has(e.key)||!_R(e,n)?`active`:`entering`,CR=(e,t)=>{for(let n of e){if(n.type!==`separator`)continue;let r=bR(t,n.key);n.phase=xR((r?e.find(e=>e.key===r):void 0)?.phase)}},wR=(e,t,n,r,i,a)=>{let o=gR(t),s=gR(e.filter(e=>e.phase!==`exiting`)),c=new Map(t.map(e=>[e.key,e])),l=t.map(e=>({...e,slideDirection:i,phase:e.type===`crumb`?SR(e,n,o,a):`active`}));CR(l,t);for(let t=0;t<e.length;t++){let n=e[t];if(c.has(n.key))continue;if(n.phase===`exiting`){vR(l,e,n,t);continue}if(n.type===`crumb`){if(a||!r.has(n.key)||n.key!==s)continue;vR(l,e,{...n,slideDirection:i,phase:`exiting`},t);continue}if(a||!r.has(n.key))continue;let o=bR(e,n.key);o!==null&&r.has(o)&&o===s&&vR(l,e,{...n,slideDirection:i,phase:`exiting`},t)}return l},TR=(e,t)=>e.map(e=>({...e,phase:`active`,slideDirection:t})),ER=2e3,DR=null,OR=e=>{DR=e},kR=()=>{let e=DR;return DR=null,e},AR=l(`<div class=shrink-0 style="will-change:transform, opacity">`),jR=e=>{let[t,n]=o(),r=null;m(()=>{let n=t();return n?{el:n,phase:e.phase,direction:e.direction}:null},t=>{if(!t)return;let{el:n,phase:i,direction:a}=t;if(i===`active`){n.style.transition=``,n.style.transform=``,n.style.opacity=``,r=`active`;return}if(i===r)return;r=i;let o,s=()=>{e.onExitComplete()};if(i===`entering`){n.style.transition=`none`,n.style.transform=`translateX(${a===`right`?20:-20}px)`,n.style.opacity=`0`,n.offsetHeight,requestAnimationFrame(()=>{n.style.transition=`opacity 160ms 160ms, transform 160ms 160ms`,n.style.transform=`translateX(0px)`,n.style.opacity=`1`});return}if(i===`exiting`){n.style.transition=`opacity 160ms, transform 160ms`,n.style.transform=`translateX(20px)`,n.style.opacity=`0`;let e=()=>{s()};return n.addEventListener(`transitionend`,e,{once:!0}),o=window.setTimeout(e,200),()=>{n.removeEventListener(`transitionend`,e),o!==void 0&&window.clearTimeout(o)}}});var i=AR();return I(()=>n,i),N(i,()=>e.children),i},MR=e=>{let[t,n]=o([]),r=!1,i=[];m(()=>({nextSegments:e.segments(),skipAnimations:Q().skipAnimations}),({nextSegments:e,skipAnimations:a})=>{let o=e.map(e=>e.key);if(!r){r=!0,i=o,n(TR(e,`right`));return}let s=new Set(o.filter(e=>!i.includes(e))),c=new Set(i.filter(e=>!o.includes(e))),l=ie(t).some(e=>e.phase===`exiting`),u=(s.size>0||c.size>0?kR():null)??hR(i,o);if(i=o,s.size===0&&c.size===0&&!l){n(TR(e,u));return}n(t=>{let n=wR(t,e,s,c,u,a);return a?TR(e,u):n})});let a=e=>{n(t=>t.filter(t=>t.key!==e))};return x(b,{get each(){return t()},keyed:e=>e.key,children:t=>x(jR,{get phase(){return t().phase},get direction(){return t().slideDirection},onExitComplete:()=>{a(t().key)},get children(){return e.children(t())}})})},NR=e=>{let t=t=>{let n=t.key,r=t.target?.tagName?.toLowerCase();r!==`input`&&r!==`textarea`&&e(n,t)};ze(()=>(document?.addEventListener(`keydown`,t),()=>document?.removeEventListener(`keydown`,t)))},PR=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_advancedFormat=r()})(e,(function(){return function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var i=this.$utils(),a=(e||`YYYY-MM-DDTHH:mm:ssZ`).replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case`Q`:return Math.ceil((t.$M+1)/3);case`Do`:return n.ordinal(t.$D);case`gggg`:return t.weekYear();case`GGGG`:return t.isoWeekYear();case`wo`:return n.ordinal(t.week(),`W`);case`w`:case`ww`:return i.s(t.week(),e===`w`?1:2,`0`);case`W`:case`WW`:return i.s(t.isoWeek(),e===`W`?1:2,`0`);case`k`:case`kk`:return i.s(String(t.$H===0?24:t.$H),e===`k`?1:2,`0`);case`X`:return Math.floor(t.$d.getTime()/1e3);case`x`:return t.$d.getTime();case`z`:return`[`+t.offsetName()+`]`;case`zzz`:return`[`+t.offsetName(`long`)+`]`;default:return e}}));return r.bind(this)(a)}}}))})),FR=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_duration=r()})(e,(function(){var e,t,n=1e3,r=6e4,i=36e5,a=864e5,o=31536e6,s=2628e6,c=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,l=/\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,u={years:o,months:s,days:a,hours:i,minutes:r,seconds:n,milliseconds:1,weeks:6048e5},d=function(e){return e instanceof v},f=function(e,t,n){return new v(e,n,t.$l)},p=function(e){return t.p(e)+`s`},m=function(e){return e<0},h=function(e){return m(e)?Math.ceil(e):Math.floor(e)},g=function(e){return Math.abs(e)},_=function(e,t){return e?m(e)?{negative:!0,format:``+g(e)+t}:{negative:!1,format:``+e+t}:{negative:!1,format:``}},v=function(){function m(e,t,n){var r=this;if(this.$d={},this.$l=n,e===void 0&&(this.$ms=0,this.parseFromMilliseconds()),t)return f(e*u[p(t)],this);if(typeof e==`number`)return this.$ms=e,this.parseFromMilliseconds(),this;if(typeof e==`object`)return Object.keys(e).forEach((function(t){r.$d[p(t)]=e[t]})),this.calMilliseconds(),this;if(typeof e==`string`){var i=e.match(c);if(i){var a=i.slice(2).map((function(e){return e==null?0:Number(e)}));return this.$d.years=a[0],this.$d.months=a[1],this.$d.weeks=a[2],this.$d.days=a[3],this.$d.hours=a[4],this.$d.minutes=a[5],this.$d.seconds=a[6],this.calMilliseconds(),this}}return this}var g=m.prototype;return g.calMilliseconds=function(){var e=this;this.$ms=Object.keys(this.$d).reduce((function(t,n){return t+(e.$d[n]||0)*u[n]}),0)},g.parseFromMilliseconds=function(){var e=this.$ms;this.$d.years=h(e/o),e%=o,this.$d.months=h(e/s),e%=s,this.$d.days=h(e/a),e%=a,this.$d.hours=h(e/i),e%=i,this.$d.minutes=h(e/r),e%=r,this.$d.seconds=h(e/n),e%=n,this.$d.milliseconds=e},g.toISOString=function(){var e=_(this.$d.years,`Y`),t=_(this.$d.months,`M`),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var r=_(n,`D`),i=_(this.$d.hours,`H`),a=_(this.$d.minutes,`M`),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var s=_(o,`S`),c=e.negative||t.negative||r.negative||i.negative||a.negative||s.negative,l=i.format||a.format||s.format?`T`:``,u=(c?`-`:``)+`P`+e.format+t.format+r.format+l+i.format+a.format
vendor: 2,720 bytes, line 34
34+s.format;return u===`P`||u===`-P`?`P0D`:u},g.toJSON=function(){return this.toISOString()},g.format=function(e){var n=e||`YYYY-MM-DDTHH:mm:ss`,r={Y:this.$d.years,YY:t.s(this.$d.years,2,`0`),YYYY:t.s(this.$d.years,4,`0`),M:this.$d.months,MM:t.s(this.$d.months,2,`0`),D:this.$d.days,DD:t.s(this.$d.days,2,`0`),H:this.$d.hours,HH:t.s(this.$d.hours,2,`0`),m:this.$d.minutes,mm:t.s(this.$d.minutes,2,`0`),s:this.$d.seconds,ss:t.s(this.$d.seconds,2,`0`),SSS:t.s(this.$d.milliseconds,3,`0`)};return n.replace(l,(function(e,t){return t||String(r[e])}))},g.as=function(e){return this.$ms/u[p(e)]},g.get=function(e){var t=this.$ms,n=p(e);return n===`milliseconds`?t%=1e3:t=n===`weeks`?h(t/u[n]):this.$d[n],t||0},g.add=function(e,t,n){var r=t?e*u[p(t)]:d(e)?e.$ms:f(e,this).$ms;return f(this.$ms+r*(n?-1:1),this)},g.subtract=function(e,t){return this.add(e,t,!0)},g.locale=function(e){var t=this.clone();return t.$l=e,t},g.clone=function(){return f(this.$ms,this)},g.humanize=function(t){return e().add(this.$ms,`ms`).locale(this.$l).fromNow(!t)},g.valueOf=function(){return this.asMilliseconds()},g.milliseconds=function(){return this.get(`milliseconds`)},g.asMilliseconds=function(){return this.as(`milliseconds`)},g.seconds=function(){return this.get(`seconds`)},g.asSeconds=function(){return this.as(`seconds`)},g.minutes=function(){return this.get(`minutes`)},g.asMinutes=function(){return this.as(`minutes`)},g.hours=function(){return this.get(`hours`)},g.asHours=function(){return this.as(`hours`)},g.days=function(){return this.get(`days`)},g.asDays=function(){return this.as(`days`)},g.weeks=function(){return this.get(`weeks`)},g.asWeeks=function(){return this.as(`weeks`)},g.months=function(){return this.get(`months`)},g.asMonths=function(){return this.as(`months`)},g.years=function(){return this.get(`years`)},g.asYears=function(){return this.as(`years`)},m}(),y=function(e,t,n){return e.add(t.years()*n,`y`).add(t.months()*n,`M`).add(t.days()*n,`d`).add(t.hours()*n,`h`).add(t.minutes()*n,`m`).add(t.seconds()*n,`s`).add(t.milliseconds()*n,`ms`)};return function(n,r,i){e=i,t=i().$utils(),i.duration=function(e,t){return f(e,{$l:i.locale()},t)},i.isDuration=d;var a=r.prototype.add,o=r.prototype.subtract;r.prototype.add=function(e,t){return d(e)?y(this,e,1):a.bind(this)(e,t)},r.prototype.subtract=function(e,t){return d(e)?y(this,e,-1):o.bind(this)(e,t)}}}))})),IR=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_timezone=r()})(e,(function(){var e={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(n,r,i){var a,o=function(e,n,r){r===void 0&&(r={});var i=new Date(e);
34return function(e,n){n===void 0&&(n={});var r=n.timeZoneName||`short`,i=e+`|`+r,a=t[i];return a||(a=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:r}),t[i]=a),a}(n,r).formatToParts(i)},s=function(t,n){for(var r=o(t,n),a=[],s=0;s<r.length;s+=1){var c=r[s],l=c.type,u=c.value,d=e[l];d>=0&&(a[d]=parseInt(u,10))}var f=a[3],p=f===24?0:f,m=a[0]+`-`+a[1]+`-`+a[2]+` `+p+`:`+a[4]+`:`+a[5]+`:000`,h=+t;return(i.utc(m).valueOf()-(h-=h%1e3))/6e4},c=r.prototype;c.tz=function(e,t){e===void 0&&(e=a);var n,r=this.utcOffset(),o=this.toDate(),s=o.toLocaleString(`en-US`,{timeZone:e}),c=Math.round((o-new Date(s))/1e3/60),l=15*-Math.round(o.getTimezoneOffset()/15)-c;if(!Number(l))n=this.utcOffset(0,t);else if(n=i(s,{locale:this.$L}).$set(`millisecond`,this.$ms).utcOffset(l,!0),t){var u=n.utcOffset();n=n.add(r-u,`minute`)}return n.$x.$timezone=e,n},c.offsetName=function(e){var t=this.$x.$timezone||i.tz.guess(),n=o(this.valueOf(),t,{timeZoneName:e}).find((function(e){return e.type.toLowerCase()===`timezonename`}));return n&&n.value};var l=c.startOf;c.startOf=function(e,t){if(!this.$x||!this.$x.$timezone)return l.call(this,e,t);var n=i(this.format(`YYYY-MM-DD HH:mm:ss:SSS`),{locale:this.$L});return l.call(n,e,t).tz(this.$x.$timezone,!0)},i.tz=function(e,t,n){var r=n&&t,o=n||t||a,c=s(+i(),o);if(typeof e!=`string`)return i(e).tz(o);var l=function(e,t,n){var r=e-60*t*1e3,i=s(r,n);if(t===i)return[r,t];var a=s(r-=60*(i-t)*1e3,n);return i===a?[r,i]:[e-60*Math.min(i,a)*1e3,Math.max(i,a)]}(i.utc(e,r).valueOf(),c,o),u=l[0],d=l[1],f=i(u).utcOffset(d);return f.$x.$timezone=o,f},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(e){a=e}}}))})),LR=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_utc=r()})(e,(function(){var e=`minute`,t=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(r,i,a){var o=i.prototype;a.utc=function(e){return new i({date:e,utc:!0,args:arguments})},o.utc=function(t){var n=a(this.toDate(),{locale:this.$L,utc:!0});return t?n.add(this.utcOffset(),e):n},o.local=function(){return a(this.toDate(),{locale:this.$L,utc:!1})};var s=o.parse;o.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),s.call(this,e)};var c=o.init;o.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else c.call(this)};var l=o.utcOffset;o.utcOffset=function(r,i){var a=this.$utils().u;if(a(r))return this.$u?0:a(this.$offset)?l.call(this):this.$offset;if(typeof r==`string`&&(r=function(e){e===void 0&&(e=``);var r=e.match(t);if(!r)return null;var i=(``+r[0]).match(n)||[`-`,0,0],a=i[0],o=60*i[1]+ +i[2];return o===0?0:a===`+`?o:-o}(r),r===null))return this;var o=Math.abs(r)<=16?60*r:r;if(o===0)return this.utc(i);var s=this.clone();if(i)return s.$offset=o,s.$u=!1,s;var c=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(s=this.local().add(o+c,e)).$offset=o,s.$x.$localOffset=c,s};var u=o.format;o.format=function(e){var t=e||(this.$u?`YYYY-MM-DDTHH:mm:ss[Z]`:``);return u.call(this,t)},o.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},o.isUTC=function(){return!!this.$u},o.toISOString=function(){return this.toDate().toISOString()},o.toString=function(){return this.toDate().toUTCString()};var d=o.toDate;o.toDate=function(e){return e===`s`&&this.$offset?a(this.format(`YYYY-MM-DD HH:mm:ss:SSS`)).toDate():d.call(this)};var f=o.diff;o.diff=function(e,t,n){if(e&&this.$u===e.$u)return f.call(this,e,t,n);var r=this.local(),i=a(e).local();return f.call(r,i,t,n)}}}))})),RR=e(PR(),1),zR=e(FR(),1),BR=e(IR(),1),VR=e(LR(),1);RN.default.extend(VR.default),RN.default.extend(BR.default),RN.default.extend(zR.default),RN.default.extend(RR.default);var HR=RN.default,UR=(e,t)=>e?ru(e,e=>e).reduce((n,r,i)=>{let a=i===e.length-1,o=i===e.length-2;return[...n,r,...a?[]:[t(`spacer-${i}`,o)]]},[]):[],WR=l(`<span class="text-highlight font-bold">`),GR;(function(e){e.fromDto=e=>({...e,evals:e?.evals?.map(e=>new OE(e))??[]}),e.formatChessGameTitle=(e,t)=>
34{let n=`${e.players.white.lastName} vs. ${e.players.black.lastName}`;return e.year&&!t&&e.source!==`Lichess`&&(n+=`, ${e.year}`),n},e.formatPlayerPerformanceDescription=(e,t)=>{let n=e.players[t],{inaccuracies:r,mistakes:i,blunders:a}=e.performances[t],o=[`${n.lastName}`],s=[];r&&s.push(`${_L(r,`inaccuracy`,`inaccuracies`)}`),i&&s.push(`${_L(i,`mistake`)}`),a&&s.push(`${_L(a,`blunder`)}`);let c=s.map(e=>(()=>{var t=WR();return N(t,e),t})());return c.length>0?c.length<2?o.push([`: `,(()=>{var e=WR();return N(e,()=>c[0]),e})()]):o.push([`: `,A(()=>UR(Hl(c,1),()=>`, `)),` and `,A(()=>Bl(c))]):o.push(` played a perfect game, with no inaccuracies, mistakes, or blunders`),o},e.formatGameResultTitle=e=>{let t=e.players[e.result],n=e.players[e.result===`white`?`black`:`white`];return Bl(e.sans)?.includes(`#`)?`${t.lastName} won by checkmate`:`In this position, ${n.lastName} resigned`};let t=e=>e.elo?`${e.title?`${e.title} `:``}${e.lastName} (${e.elo})`:e.lastName;e.formatGameDescription=e=>{let n=``;e.source===`Lichess`?n+=`In this online game played on Lichess `:n+=`In this game `,n+=`between ${t(e.players.white)} and ${t(e.players.black)}`,e.year&&e.source!==`Lichess`&&(n+=` in ${e.year}`),e.eventName&&e.source!==`Lichess`&&(n+=` at the "${e.eventName}"`),n+=`, `;let r=e.players[e.result],i=e.players[e.result===`white`?`black`:`white`];return n+=`${r.lastName} defeated ${i.lastName} in ${Math.round(e.sans.length/2)} moves.`,n}})(GR||={});var KR=l(`<div class="square-[12px] rounded-full shrink-0">`),qR=e=>{var t=KR();return M(()=>F(z(e.side===`white`?z(B.bg(`#F2F2F3`)):z(B.bg(`#2B2C2D`),B.border(`1px solid #778288`)),e.size&&B.size(e.size))),(e,n)=>{w(t,e,n)}),t},JR=l(`<div class="row gap-2">`),YR=l(`<div class="flex gap-2 md:gap-3 flex-row items-center"><p class="text-xs md:text-sm gap-3">`),XR=l(`<span class=opacity-80> `),ZR=l(`<div class="flex gap-1 items-end truncate "><p class="truncate font-semibold text-xs md:text-xs max-w-full"><!><!>`),QR=()=>{let e=_(()=>{let e=D6().state.history;if(!e)return[];let t={};Kl(e,e=>{let n=HR(e.createdAt).startOf(`week`).toISOString();t[n]||(t[n]=[]),t[n].push(e)});let n=bd(jd(Ql(t),([e])=>new Date(e))),r=HR().startOf(`week`).toISOString(),i=HR().subtract(1,`week`).startOf(`week`).toISOString();return n.map(([e,t])=>{let n;return n=e===r?`This week`:e===i?`Last week`:`Week of ${HR(e).format(`MMM Do`)}`,{title:n,games:t}})});return x($,{header:`Your model games history`,get headerRight(){return JR()},actions:[],get children(){return[x(H6,{get actions(){return[{text:D6().state.dailyGame?.reviewed===!1?`Play through today's game`:`Play through model game`,style:`primary`,onPress:()=>{Z(e=>{D6().state.dailyGame?.reviewed===!1?e.repertoireState.modelGamesState.actions.reviewGame(D6().state.dailyGame):e.repertoireState.modelGamesState.actions.fetchAndReviewNewGame({})})}}]}}),x(R,{between:[`actions`,`actions`]}),x(b,{get each(){return e()},children:e=>[x(W6,{get text(){return e.title}}),x(H6,{get actions(){return e.games.map(e=>{let t=Y().getLastEcoCode(e.epds),[n,r]=t?kF.getAppropriateEcoName(t):[],i=r?r[0]:null;return{text:(()=>{var t=YR(),n=t.firstChild;return N(t,x(qR,{get side(){return e.result},get size(){return ON()?8:10}}),n),N(n,()=>GR.formatChessGameTitle(e,ON())),t})(),right:t?(()=>{var e=ZR(),t=e.firstChild,r=t.firstChild,a=r.nextSibling;return N(t,n,r),N(t,x(j,{when:i&&!1,get children(){return[`:`,(()=>{var e=XR();return e.firstChild,N(e,i,null),e})()]}}),a),e})():void 0,style:`secondary`,onPress:()=>{Z(t=>{vX(`right`),t.repertoireState.modelGamesState.actions.reviewGame(e)})}}})}}),x(R,{between:[`actions`,`actions`]})]})]}})};LF(QR,`model_games`);var $R;(function(e){e.getAllReports=e=>[...e.bestOpenings,...e.worstOpenings],e.isEmpty=e=>e.bestOpenings.length===0&&e.worstOpenings.length===0,e.countInsights=e=>$R.getAllReports(e).filter(e=>!e.reviewed).length})($R||={});function ez(e){let[t,n]=o(void 0,{equals:!1,ownedWrite:!0});return new Proxy(e,{get(r,i,a){t();let o=Reflect.get(r,i,a);return typeof o==`function`&&i!==`get`?(...t)=>{let i=e.version,a=o.apply(r,t);return e.version!==i&&n(),a}:o}})}var tz=(e,t)=>!e||!Kt(Y().positionReports[e]?.[t]),nz=()=>tz(X().state.activeRepertoireId,Q().getActiveChessboard().getCurrentEpd()),rz={lockedIds:{white:{},black:{}},numLocked:{white:0,black:0}},iz=e=>e.mine&&!e.isDisabled,az=(e,t)=>
34(t.incidence??0)-(e.incidence??0)||(e.id<t.id?-1:+(e.id>t.id)),oz=e=>e===`autofill`,sz=(e,t)=>{let n={white:new Map,black:new Map};for(let t of e){let e=n[t.side];for(let n of Object.values(t.positionResponses))for(let t of n)iz(t)&&!e.has(t.id)&&e.set(t.id,t)}let r={lockedIds:{white:{},black:{}},numLocked:{white:0,black:0}};for(let e of[`white`,`black`]){let i=[...n[e].values()].sort(az);for(let n of i.slice(t))r.lockedIds[e][n.id]=!0,r.numLocked[e]+=1}return r},cz=(e,t,n)=>t?e.lockedIds[t][n.id]===!0:!1,lz=(e,t,n)=>cz(e,t,n)&&oz(n.source),uz=(e,t,n)=>n.repertoireMove?.mine===!0&&lz(e,t,n.repertoireMove),dz=(e,t)=>{let n=new Set;for(let r of Object.values(t.positionResponses))for(let i of r)i.mine&&lz(e,t.side,i)&&n.add(i.id);return n.size},fz=(e,t,n)=>{let r=(n??[]).filter(e=>e.mine&&!e.isDisabled);return r.length>0&&r.every(n=>lz(e,t,n))},pz=(e,t,n)=>{let r=[],i=[];for(let a of n){let n=t?.[a.side]?.positionResponses[a.epd];(fz(e,a.side,n)?i:r).push(a)}return{open:r,locked:i}},mz=(e,t,n)=>{let r=fp;for(let i=0;i<n.length;i++){let a=t.positionResponses[r]?.find(e=>e.sanPlus===n[i]);if(!a)return-1;if(a.mine&&lz(e,t.side,a))return i;r=a.epdAfter}return-1},hz=(e,t,n,r)=>{for(let i=0;i<r.length;i++){let a=n[i]?.epd;if(!a)return-1;let o=t.positionResponses[a]?.find(e=>e.sanPlus===r[i]);if(o?.mine&&lz(e,t.side,o))return i}return-1},gz=(e,t)=>{let n=[];for(let r of e){if(!(`moves`in r)){n.push(r);continue}let e=r.moves.filter(e=>!t(r.side,e));e.length>0&&n.push(e.length===r.moves.length?r:{...r,moves:e})}return n},_z=(e,t)=>gz(t,(t,n)=>cz(e,t,n)),vz=(e,t)=>gz(t,(t,n)=>lz(e,t,n)),yz=()=>{Z(e=>{Q().pushView(mL,{props:{pastLimit:!0}})})},bz=e=>{K(`locked_move.upgrade`,{source:e}),yz()},xz=(e,t)=>{K(`locked_move.shown`,{source:e,lockState:`line`}),Z(e=>{Q().pushView(mL,{props:{pastLimit:!0,onBack:()=>{let e=Q().getActiveChessboard();e.backN(e.getMoveLog().length-t)}}})})},Sz=(e,t)=>({text:t,style:`focus`,onPress:()=>{bz(e)}}),Cz=e=>{let t=0;for(let n of e){let e=wz.getMoves(n);t+=e?e.length:1}return t},wz;(function(e){e.getRemainingPlans=(e,t)=>Vl(wz.getPlans(e),t),e.getCompletedPlans=(e,t)=>Pd(wz.getPlans(e),t),e.getMoves=e=>Kt(e)?null:`moves`in e?e.moves:null,e.getPlans=e=>`plans`in e?e.plans:null,e.isPlansQuiz=e=>`plans`in e,e.appendExpandedQuizGroup=(e,t)=>{let n=J().getFrontendSetting(`reviewStyle`);if(![o0.EntireLineEvery,o0.EntireLineOnce].includes(n.value))return[t];let r=[...t.precedingGroups??[],t];if(!e)return r;let i=wz.getMoves(e)?.[0],a=mp.toPgn([...e.line,...i?[i.sanPlus]:[]]),o=t.precedingGroups??[];if(a===mp.toPgn(Hl(t.line,1)))return[t];if(t.precedingGroups){let e=ou(o,e=>mp.toPgn(Hl(t.line,1))===a);e!==-1&&(r=[...(t.precedingGroups??[]).slice(e),t])}return r}})(wz||={});var Tz=l(`<div>mocked bar loader`),Ez=()=>Tz(),Dz=()=>typeof window<`u`&&window.matchMedia(`(hover: hover) and (pointer: fine)`).matches,Oz=(e,t)=>{let[n,r]=o(!1);return{hovering:n,hoveringRef:e=>{},hoveringProps:{onMouseMove:()=>{Dz()&&!n()&&(e?.(),r(!0))},onMouseLeave:()=>{Dz()&&(t?.(),r(!1))}}}},kz=l(`<div class=transition-all><svg width=100% height=100% viewBox="0 0 1 1"class="absolute inset-0"><defs><clipPath clipPathUnits=userSpaceOnUse><path clip-rule=evenodd></path></clipPath></defs><g><line stroke=currentColor stroke-linecap=round></line><path stroke-linecap=round stroke-linejoin=round fill=currentColor stroke=currentColor>`),Az=l(`<div class="absolute rounded bg-gray-21 px-1 py-0.5 font-semibold text-[11px] text-gray-92 leading-none whitespace-nowrap shadow-md"style="border:1px solid currentColor;transform:translate(-50%, -50%)">`),[jz,Mz]=D({focusedMovesUcis:{}}),Nz=(e,t)=>{Mz(n=>{n.focusedMovesUcis[`${e}${t}`]=!0})},Pz=(e,t)=>{Mz(n=>{n.focusedMovesUcis[`${e}${t}`]=!1})},Fz=[`origin`,`body`],Iz=e=>x(b,{each:Fz,children:t=>x(j,{get when(){return t===`origin`?e.board.handles.arrowOriginsContainerRef:e.priority?e.board.handles.arrowsContainerRef:e.board.handles.arrowsUnderneathContainerRef},children:n=>x(le,{get mount(){return n()},get children(){return e.children(t)}})})}),Lz=e=>{let t=`arrow-clip-${p()}`,n=_(()=>{if(!e.fromSquare||!e.toSquare)return{focused:!1,opacity:0,from:{x:0,y:0},color:e.color||B.arrowColors[75],scale:1,length:0,toSquareCenterX:0,toSquareCenterY:0,angle:0,angleDeg:0};let t=sp(e.fromSquare,e.flipped),n=sp(e.toSquare,e.flipped),r=Math.abs(t.x-n.x),i=Math.abs(t.y-n.y),a=Math.sqrt(r**2+i**2)-.
340125,o=Math.atan2(n.y-t.y,n.x-t.x),s=o*180/Math.PI,c=jz.focusedMovesUcis[`${e.fromSquare}${e.toSquare}`]===!0,l=80,u;c?(l=100,u=B.blue[75]):u=e.color||B.arrowColors[75],e.faded&&!c&&(l=40);let d=1;if(e.weight!==void 0){let t=Math.max(0,Math.min(1,e.weight));d=.45+.75*t,l=Math.round(35+65*t)}e.hidden&&(l=0);let f=n.x+1/8/2,p=n.y+1/8/2;return{focused:c,opacity:l,from:t,color:u,scale:d,length:a,toSquareCenterX:f,toSquareCenterY:p,angle:o,angleDeg:s}});var r=kz(),i=r.firstChild,a=i.firstChild,o=a.firstChild,c=o.firstChild,l=a.nextSibling,u=l.firstChild,d=u.nextSibling;return C(o,`id`,t),C(l,`clip-path`,`url(#${t})`),N(r,x(j,{get when(){return A(()=>e.part===`body`)()&&e.label},children:t=>(()=>{var r=Az();return N(r,t),M(()=>({e:n().focused?103:102,t:e.hidden?0:e.faded&&!n().focused?.4:1,a:`${Math.min(93,Math.max(7,(n().toSquareCenterX+1/16)*100))}%`,o:`${Math.min(96,Math.min(88,Math.max(4,(n().toSquareCenterY-1/16)*100))+(e.labelStack??0)*5.5)}%`}),({e,t,a:n,o:i},a)=>{e!==a?.e&&s(r,`z-index`,e),t!==a?.t&&s(r,`opacity`,t),n!==a?.a&&s(r,`left`,n),i!==a?.o&&s(r,`top`,i)}),r})()}),null),M(()=>({e:F(z(B.absoluteFull,B.noPointerEvents,B.fg(n().color))),t:`${e.transitionDurationMs}ms`,a:n().opacity/100,o:n().focused?101:100,i:e.part===`body`&&n().focused?`M 0 0 H 1 V 1 H 0 Z`:`${e.part===`body`?`M 0 0 H 1 V 1 H 0 Z `:``}M ${n().from.x} ${n().from.y} h ${1/8} v ${1/8} h ${-1/8} Z`,n:1.4/100*n().scale,s:n().from.x+1/8/2,h:n().from.y+1/8/2,r:n().from.x+1/8/2+n().length*Math.cos(n().angle),d:n().from.y+1/8/2+n().length*Math.sin(n().angle),l:.005*n().scale,u:`rotate(${n().angleDeg-90} ${n().toSquareCenterX} ${n().toSquareCenterY})`,c:`M ${n().toSquareCenterX-2/100*n().scale},${n().toSquareCenterY-2.8/100*n().scale} ${n().toSquareCenterX},${n().toSquareCenterY-.004} ${n().toSquareCenterX+2/100*n().scale},${n().toSquareCenterY-2.8/100*n().scale} Z`}),({e,t,a:n,o:a,i:o,n:l,s:f,h:p,r:m,d:h,l:g,u:_,c:v},y)=>{w(r,e,y?.e),t!==y?.t&&C(r,`style:transition-duration`,t),n!==y?.a&&s(i,`opacity`,n),a!==y?.o&&s(i,`z-index`,a),o!==y?.i&&C(c,`d`,o),l!==y?.n&&C(u,`stroke-width`,l),f!==y?.s&&C(u,`x1`,f),p!==y?.h&&C(u,`y1`,p),m!==y?.r&&C(u,`x2`,m),h!==y?.d&&C(u,`y2`,h),g!==y?.l&&C(d,`stroke-width`,g),_!==y?.u&&C(d,`transform`,_),v!==y?.c&&C(d,`d`,v)}),r},Rz=l(`<div>`),zz=()=>20,Bz=(e,t)=>[`white`,`black`].flatMap(n=>{let r=e;r=ru(r,e=>e.side===n);let i={};r.forEach(e=>{i[e.fromSquare]?i[e.fromSquare].push(e):i[e.fromSquare]=[e]});let a=[],o=(e,r)=>{a.push({plan:e,directionChanged:!1,mine:n===t,subsequentMove:!1,piece:Vz(e),id:`${e.fromSquare} ${e.toSquare} ${Vz(e)} ${e.side}`}),i[e.fromSquare].forEach(e=>{r.has(e.fromSquare+e.toSquare)&&(r.add(e.fromSquare+e.toSquare),o(e,Sc(r)))})};return r.forEach(e=>{let r=e.san.at(0);wu([`B`,`N`,`Q`,`R`,`K`],r)||(r=`p`);let a=e.side===t?t:oC.flip(t);r&&a===n&&i[e.fromSquare].forEach(e=>{o(e,new Set)}),r===`k`&&[`d1`,`f1`,`d8`,`f8`].forEach(e=>{i[e]?.forEach(e=>{o(e,new Set)})})}),a=Kd(a,e=>`${e.plan.san.at(0)}-${e.plan.toSquare}-${e.plan.toSquare}`),a=jd(a,e=>-e.plan.occurences),H(a)?[]:a}),Vz=e=>e.san.startsWith(`O-O`)?`k`:e.san.startsWith(`N`)?`n`:e.san.startsWith(`B`)?`b`:e.san.startsWith(`R`)?`r`:e.san.startsWith(`Q`)?`q`:e.san.startsWith(`K`)?`k`:`p`;function Hz(e){switch(e){case`n`:return`knight`;case`b`:return`bishop`;case`r`:return`rook`;case`q`:return`queen`;case`k`:return`king`;case`p`:return`pawn`}}function Uz(e){return`${Hz(e.piece)} on ${e.plan.fromSquare}`}var Wz=class{metaPlans;plans;side;position;consumed;capturePieces;planPrecedingCaptures;planSections;adverbIndex;constructor(e,t,n){this.adverbIndex=0,this.planSections=[],this.metaPlans=Bz(e,t),this.plans=e,this.side=t,this.consumed=new Set,this.position=n,this.planPrecedingCaptures=ju(jd(ru(this.metaPlans,e=>e.plan.side!==t),e=>e.plan.occurences),e=>e.plan.toSquare),this.capturePieces=Nu(ju(jd(ru(e,e=>e.side!==t),e=>e.occurences),e=>e.toSquare),e=>Vz(e)),Kl(Qd,e=>{let r=n.get(e);r&&oC.fromColor(r.color)!==t&&(this.capturePieces[e]=r.type)})}nextAdverb(){let e=[`typically`,`generally`,`usually`,`often`];return e[this.adverbIndex++%e.length]}consume(e){return Array.isArray(e)?e.map(e=>this.consumed.add(e?.id)):this.consumed.add(e.id),e}consumeCastles(){let e=this.remainingPlans(),t=su(e,e=>e.plan.san===`O-O-O`),n=su(e,e=>e.plan.san===`O-O`);if(this.consume([t,n]),!(t||n))return null;if(t&&n){let e=t.plan.occurences>n.plan.occurences;this.addSection(()=>[`You can castle to either side, although`,` `,x(Yz,{plan:e?t:n,get children(){return[`castling `,e?`queenside`:`kingside`]}}),` `,`is most common`])}else n?this.addSection(()=>{let e=this;return[A(()=>Eo(e.side)),` `,A(()=>e.nextAdverb()),` `,x(Yz,{plan:n,children:`castles kingside`})]}):t&&this.addSection(()=>{let e=this;return[A(()=>Eo(e.side)),` `,A(()=>e.nextAdverb()),` `,x(Yz,{plan:t,children:`castles queenside`})]})}
34consumeCaptures(){this.remainingPlans().forEach(e=>{if(!e.plan.san.includes(`x`))return;let t=this.capturePieces[e.plan.toSquare];if(!Uz(e))return;let n=ru(this.remainingPlans(),t=>t.plan.toSquare===e.plan.toSquare&&t.plan.san.includes(`x`));if(!t||H(n))return;let r=this.planPrecedingCaptures[e.plan.toSquare],i=!1;if(r){let t=oC.fromColor(this.position.get(e.plan.toSquare)?.color)===oC.flip(e.plan.side);r.plan.san.includes(`x`)&&!t&&(i=!0),this.consume(r)}this.consume(n),this.addSection(()=>{let r=this;return[`The`,` `,x(Jz,{exclusive:!0,get items(){return n.map(e=>Xz(e)||`${Hz(e.piece)} on ${e.plan.fromSquare}`)}}),` `,A(()=>r.nextAdverb()),` `,x(Yz,{plans:n,get children(){return[i?`recaptures`:`captures`,` the `,A(()=>Hz(t)),` on`,` `,A(()=>e.plan.toSquare)]}})]})})}pawnPlansConsumer(){let e=ru(this.remainingPlans(),e=>Ad([`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`],t=>e.plan.san?.startsWith(t)));if(e=jd(e,e=>e.plan.san),this.side===`black`&&(e=bd(e)),H(e))return null;this.consume(e),this.addSection(()=>[A(()=>e.length>1?`Common pawn moves are`:`A common pawn move is`),` `,x(qz,{metaPlans:e}),` `])}remainingPlans(){let e=0;return this.metaPlans.forEach(t=>{this.consumed.has(t.id)&&t.plan.side===this.side&&e++}),Pd(ru(this.metaPlans,e=>!this.consumed.has(e.id)&&e.plan.side===this.side),7-e)}piecePlansConsumer(){let e=jd(ru(this.remainingPlans(),e=>e.piece!==`p`),e=>-e.plan.occurences);if(H(e))return null;this.consume(e),this.addSection(()=>[`Common piece moves include `,x(qz,{metaPlans:e})])}viaConsumer(){this.remainingPlans().forEach(e=>{if(![`n`,`q`,`r`,`k`].includes(e.piece)||this.position.get(e.plan.fromSquare)?.type!==e.piece||e.plan.san.includes(`x`))return;let t=Xz(e)||Uz(e),n=su(this.remainingPlans(),t=>t.plan.fromSquare===e.plan.toSquare&&t.piece===e.piece);n&&(this.consume([e,n]),this.addSection(()=>[`The `,t,` often`,` `,x(Yz,{plans:[e,n],get children(){return[`goes to `,A(()=>n.plan.toSquare),`, via `,A(()=>e.plan.toSquare)]}})]))})}fianchettoConsumer(){this.remainingPlans().forEach(e=>{if(e.piece!==`b`||e.plan.san.includes(`x`)||!Ad([[`c8`,`b7`],[`f8`,`g7`],[`c1`,`b2`],[`f1`,`g2`]],([t,n])=>e.plan.fromSquare===t&&e.plan.toSquare===n))return;let t=Xz(e);t&&H(ru(this.remainingPlans(),t=>t.plan.fromSquare===e.plan.fromSquare&&t.piece===e.piece&&t.id!==e.id))&&(this.consume(e),this.addSection(()=>{let n=this;return[`The `,t,` is `,A(()=>n.nextAdverb()),` `,x(Yz,{plan:e,get children(){return[`fianchettoed on `,A(()=>e.plan.toSquare)]}})]}))})}addSection(e){this.planSections.push(e)}pieceDevelopmentConsumer(){this.remainingPlans().forEach(e=>{if(e.piece===`p`||e.plan.san.includes(`x`))return;let t=Xz(e)||Uz(e),n=!Kt(Xz(e));if(!t)return;let r=ru(this.remainingPlans(),t=>t.plan.fromSquare===e.plan.fromSquare&&t.piece===e.piece&&!this.consumed.has(t.id));if(H(r))return;let i=null,a=null;r.length>1&&n?(a=`can`,i=`develop to`):r.length>1&&!n?(a=`can`,i=`move to`):n?(a=`${this.nextAdverb()}`,i=`develops to`):(a=`often`,i=`moves to`),this.consume(r),this.addSection(()=>[`The `,t,` `,A(()=>r.length>1?`${a} ${i} `:a?`${a} `:``),x(qz,{exclusive:!0,metaPlans:r,stripPieceSymbol:!0,get customFormatter(){return r.length>1?null:()=>`${i} ${e.plan.toSquare}`}})])})}},Gz=(e,t,n)=>{let r=new Wz(e,t,n);return r.fianchettoConsumer(),r.consumeCastles(),r.consumeCaptures(),r.viaConsumer(),r.pieceDevelopmentConsumer(),r.piecePlansConsumer(),r.pawnPlansConsumer(),r},Kz=(e,t,n)=>{let r=new Zz(e,t,n);return r.pieceDevelopmentConsumer(),r.consumeCastles(),r.quizPlans},qz=e=>{let t=e.exclusive?`or`:`and`;return x(V,{get children(){return UR(e.metaPlans.map(t=>x(Yz,{plan:t,get children(){return A(()=>!!e.customFormatter)()?e.customFormatter(t):A(()=>!!e.stripPieceSymbol)()?t.plan.toSquare:t.plan.san}})),(n,r)=>x(V,{get children(){return r?e.metaPlans.length>2?`, ${t} `:` ${t} `:`, `}}))}})},Jz=e=>{let t=e.exclusive?`or`:`and`;return x(V,{get children(){return UR(e.items,(n,r)=>x(V,{get style(){return z()},get children(){return r?e.items.length>2?`, ${t} `:` ${t} `:`, `}}))}})},Yz=e=>{let t=_(()=>(e.plan||e.plans?.[0])?.plan),{hovering:n,hoveringProps:r}=Oz(()=>{t()&&Nz(t().fromSquare,t().toSquare)},()=>{t()&&Pz(t().fromSquare,t().toSquare)});var i=Rz();return pe(i,[{get style(){return z(B.inlineBlock,B.clickable)}},r],!0),N(i,x(V,{get style(){return z(B.weightSemiBold,B.fg(n()?B.blue[75]:B.arrowColors[75]))},get children(){return e.children}})),i},Xz=e=>{if(!(e.plan.fromSquare.endsWith(`1`)||e.plan.fromSquare.endsWith(`8`)))return null;if(e.piece===`n`){if(e.plan.fromSquare.startsWith(`b`))return`queenside knight`;if(e.plan.fromSquare.startsWith(`g`))return`kingside knight`}if(e.piece===`b`){let t=e.plan.side===`white`,n=e.plan.fromSquare.startsWith(`c`),r=e.plan.fromSquare.startsWith(`f`);if(t&&n||!t&&r)return`dark-squared bishop`;if(t&&r||!t&&n)return`light-squared bishop`}if(e.piece===`r`){if(e.plan.fromSquare.startsWith(`a`)||e.plan.fromSquare.startsWith(`d`))return`queenside rook`;if(e.plan.fromSquare.startsWith(`h`)||e.plan.fromSquare.startsWith(`f`))return`kingside rook`}if(e.piece===`q`&&e.plan.fromSquare.startsWith(`d`))return`queen`},Zz=class{metaPlans;plans;side;position;consumed;capturePieces;quizPlans;adverbIndex;constructor(e,t,n){this.adverbIndex=0,this.metaPlans=Bz(e,t),this.quizPlans=[],this.plans=e,this.side=t,this.consumed=new Set,this.position=n,this.planPrecedingCaptures=ju(jd(ru(this.metaPlans,e=>e.plan.side!==t),e=>e.plan.occurences),e=>e.plan.toSquare),this.capturePieces=Nu(ju(jd(ru(e,e=>e.side!==t),e=>e.occurences),e=>e.toSquare),e=>Vz(e)),Kl(Qd,e=>{let r=n.get(e);r&&oC.fromColor(r.color)!==t&&(this.capturePieces[e]=r.type)})}nextAdverb(){let e=[`typically`,`generally`,`usually`,`often`];return e[this.adverbIndex++%e.length]}consume(e){return Array.isArray(e)?e.map(e=>this.consumed.add(e?.id)):this.consumed.add(e.id),e}remainingPlans(){let e=0;return this.metaPlans.forEach(t=>{this.consumed.has(t.id)&&t.plan.side===this.side&&e++}),Pd(ru(this.metaPlans,e=>!this.consumed.has(e.id)&&e.plan.side===this.side),7-e)}addQuizPlan(e){this.quizPlans.push(e)}
34consumeCastles(){let e=this.remainingPlans(),t=su(e,e=>e.plan.san===`O-O-O`),n=su(e,e=>e.plan.san===`O-O`);if(this.consume([t,n]),!(t||n)||t&&n)return null;let r=Sc(n??t);r.plan.toSquare=r.plan.toSquare.replace(`h`,`g`).replace(`a`,`c`),this.addQuizPlan({type:`castling`,options:this.side===`white`?[`g1`,`c1`]:[`g8`,`c8`],piece:r.piece,metaPlan:r,toSquares:[r.plan.toSquare.replace(`h`,`g`).replace(`a`,`c`)],fromSquare:r.plan.fromSquare})}pieceDevelopmentConsumer(){this.remainingPlans().forEach(e=>{if(e.plan.san.includes(`x`)||!(Xz(e)||Uz(e)))return;let t=this.position.get(e.plan.fromSquare);if(!t||t.type===`k`||t.type!==e.piece||oC.fromColor(t.color)!==this.side)return;let n=ru(this.remainingPlans(),t=>t.plan.fromSquare===e.plan.fromSquare&&t.piece===e.piece&&!this.consumed.has(t.id));H(n)||(this.consume(n),this.addQuizPlan({type:`piece_movement`,piece:e.piece,toSquares:n.map(e=>e.plan.toSquare),metaPlan:e,fromSquare:e.plan.fromSquare}))})}},Qz=l(`<span>Bonus move`),$z=l(`<div><!><p class="body-text padding-sidebar">Time to think for yourself! This is a response outside your saved moves that you might see in a real game.</p><p class="body-text padding-sidebar">Try to find a good move in this position.</p><!><!>`),eB=()=>{var e=$z(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling,i=r.nextSibling,a=i.nextSibling;return N(e,x(Zd,{get children(){var e=Qz();return M(()=>F(L(`text-learning font-bold padding-sidebar bonus-move`)),(t,n)=>{P(e,t,n)}),e}}),t),N(e,x(R,{between:[`header`,`body-text`]}),n),N(e,x(R,{between:[`body-text`,`body-text`]}),r),N(e,x(R,{between:[`body-text`,`actions`]}),i),N(e,x(H6,{actions:[{text:`Skip bonus move`,style:`primary`,onPress:()=>{b6().actions.finishReview()}}]}),a),e};LF(eB,`review`);var tB={};(function e(t,n,r,i){var a=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL),o=typeof Path2D==`function`&&typeof DOMMatrix==`function`,s=(function(){if(!t.OffscreenCanvas)return!1;try{var e=new OffscreenCanvas(1,1),n=e.getContext(`2d`);n.fillRect(0,0,1,1);var r=e.transferToImageBitmap();n.createPattern(r,`no-repeat`)}catch{return!1}return!0})();function c(){}function l(e){var r=n.exports.Promise,i=r===void 0?t.Promise:r;return typeof i==`function`?new i(e):(e(c,c),null)}var u=(function(e,t){return{transform:function(n){if(e)return n;if(t.has(n))return t.get(n);var r=new OffscreenCanvas(n.width,n.height);return r.getContext(`2d`).drawImage(n,0,0),t.set(n,r),r},clear:function(){t.clear()}}})(s,new Map),d=function(){var e,t,n={},r=0;return typeof requestAnimationFrame==`function`&&typeof cancelAnimationFrame==`function`?(e=function(e){var t=Math.random();return n[t]=requestAnimationFrame(function i(a){r===a||r+16-1<a?(r=a,delete n[t],e()):n[t]=requestAnimationFrame(i)}),t},t=function(e){n[e]&&cancelAnimationFrame(n[e])}):(e=function(e){return setTimeout(e,16)},t=function(e){return clearTimeout(e)}),{frame:e,cancel:t}}(),f=(function(){var t,n,i={};function o(e){function t(t,n){e.postMessage({options:t||{},callback:n})}e.init=function(t){var n=t.transferControlToOffscreen();e.postMessage({canvas:n},[n])},e.fire=function(r,a,o){if(n)return t(r,null),n;var s=Math.random().toString(36).slice(2);return n=l(function(a){function c(t){t.data.callback===s&&(delete i[s],e.removeEventListener(`message`,c),n=null,u.clear(),o(),a())}e.addEventListener(`message`,c),t(r,s),i[s]=c.bind(null,{data:{callback:s}})}),n},e.reset=function(){for(var t in e.postMessage({reset:!0}),i)i[t](),delete i[t]}}return function(){if(t)return t;if(!r&&a){var n=[`var CONFETTI, SIZE = {}, module = {};`,`(`+e.toString()+`)(this, module, true, SIZE);`,`onmessage = function(msg) {`,` if (msg.data.options) {`,` CONFETTI(msg.data.options).then(function () {`,` if (msg.data.callback) {`,` postMessage({ callback: msg.data.callback });`,` }`,` });`,` } else if (msg.data.reset) {`,` CONFETTI && CONFETTI.reset();`,` } else if (msg.data.resize) {`,` SIZE.width = msg.data.resize.width;`,` SIZE.height = msg.data.resize.height;`,` } else if (msg.data.canvas) {`,` SIZE.width = msg.data.canvas.width;`,` SIZE.height = msg.data.canvas.height;`,` CONFETTI = module.exports.create(msg.data.canvas);`,` }`,`}`].join(` 35`);try{t=new Worker(URL.createObjectURL(new Blob([n])))}catch(e){return typeof console<`u`&&typeof console.warn==`function`&&console.warn(`ð Could not load worker`,e),null}o(t)}return t}})(),p={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:[`square`,`circle`],zIndex:100,colors:[`#26ccff`,`#a25afd`,`#ff5e7e`,`#88ff5a`,`#fcff42`,`#ffa62d`,`#ff36ff`],disableForReducedMotion:!1,scalar:1};function m(e,t){return t?t(e):e}function h(e){return e!=null}function g(e,t,n){return m(e&&h(e[t])?e[t]:p[t],n)}function _(e){return e<0?0:Math.floor(e)}function v(e,t){return Math.floor(Math.random()*(t-e))+e}function y(e){return parseInt(e,16)}function b(e){return e.map(x)}function x(e){var t=String(e).replace(/[^0-9a-f]/gi,``);return t.length<6&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),{r:y(t.substring(0,2)),g:y(t.substring(2,4)),b:y(t.substring(4,6))}}function S(e){var t=g(e,`origin`,Object);return t.x=g(t,`x`,Number),t.y=g(t,`y`,Number),t}function C(e){e.width=document.documentElement.clientWidth,e.height=document.documentElement.clientHeight}function w(e){var t=e.getBoundingClientRect();e.width=t.width,e.height=t.height}function T(e){var t=document.createElement(`canvas`);return t.style.position=`fixed`,t.style.top=`0px`,t.style.left=`0px`,t.style.pointerEvents=`none`,t.style.zIndex=e,t}function E(e,t,n,r,i,a,o,s,c){e.save(),e.translate(t,n),e.rotate(a),e.scale(r,i),e.arc(0,0,1,o,s,c),e.restore(
vendor: 4,791 bytes, line 35
35)}function D(e){var t=e.angle*(Math.PI/180),n=e.spread*(Math.PI/180);return{x:e.x,y:e.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:e.startVelocity*.5+Math.random()*e.startVelocity,angle2D:-t+(.5*n-Math.random()*n),tiltAngle:(Math.random()*.5+.25)*Math.PI,color:e.color,shape:e.shape,tick:0,totalTicks:e.ticks,decay:e.decay,drift:e.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:e.gravity*3,ovalScalar:.6,scalar:e.scalar,flat:e.flat}}function ee(e,t){t.x+=Math.cos(t.angle2D)*t.velocity+t.drift,t.y+=Math.sin(t.angle2D)*t.velocity+t.gravity,t.velocity*=t.decay,t.flat?(t.wobble=0,t.wobbleX=t.x+10*t.scalar,t.wobbleY=t.y+10*t.scalar,t.tiltSin=0,t.tiltCos=0,t.random=1):(t.wobble+=t.wobbleSpeed,t.wobbleX=t.x+10*t.scalar*Math.cos(t.wobble),t.wobbleY=t.y+10*t.scalar*Math.sin(t.wobble),t.tiltAngle+=.1,t.tiltSin=Math.sin(t.tiltAngle),t.tiltCos=Math.cos(t.tiltAngle),t.random=Math.random()+2);var n=t.tick++/t.totalTicks,r=t.x+t.random*t.tiltCos,i=t.y+t.random*t.tiltSin,a=t.wobbleX+t.random*t.tiltCos,s=t.wobbleY+t.random*t.tiltSin;if(e.fillStyle=`rgba(`+t.color.r+`, `+t.color.g+`, `+t.color.b+`, `+(1-n)+`)`,e.beginPath(),o&&t.shape.type===`path`&&typeof t.shape.path==`string`&&Array.isArray(t.shape.matrix))e.fill(ne(t.shape.path,t.shape.matrix,t.x,t.y,Math.abs(a-r)*.1,Math.abs(s-i)*.1,Math.PI/10*t.wobble));else if(t.shape.type===`bitmap`){var c=Math.PI/10*t.wobble,l=Math.abs(a-r)*.1,d=Math.abs(s-i)*.1,f=t.shape.bitmap.width*t.scalar,p=t.shape.bitmap.height*t.scalar,m=new DOMMatrix([Math.cos(c)*l,Math.sin(c)*l,-Math.sin(c)*d,Math.cos(c)*d,t.x,t.y]);m.multiplySelf(new DOMMatrix(t.shape.matrix));var h=e.createPattern(u.transform(t.shape.bitmap),`no-repeat`);h.setTransform(m),e.globalAlpha=1-n,e.fillStyle=h,e.fillRect(t.x-f/2,t.y-p/2,f,p),e.globalAlpha=1}else if(t.shape===`circle`)e.ellipse?e.ellipse(t.x,t.y,Math.abs(a-r)*t.ovalScalar,Math.abs(s-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI):E(e,t.x,t.y,Math.abs(a-r)*t.ovalScalar,Math.abs(s-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI);else if(t.shape===`star`)for(var g=Math.PI/2*3,_=4*t.scalar,v=8*t.scalar,y=t.x,b=t.y,x=5,S=Math.PI/x;x--;)y=t.x+Math.cos(g)*v,b=t.y+Math.sin(g)*v,e.lineTo(y,b),g+=S,y=t.x+Math.cos(g)*_,b=t.y+Math.sin(g)*_,e.lineTo(y,b),g+=S;else e.moveTo(Math.floor(t.x),Math.floor(t.y)),e.lineTo(Math.floor(t.wobbleX),Math.floor(i)),e.lineTo(Math.floor(a),Math.floor(s)),e.lineTo(Math.floor(r),Math.floor(t.wobbleY));return e.closePath(),e.fill(),t.tick<t.totalTicks}function te(e,t,n,a,o){var s=t.slice(),c=e.getContext(`2d`),f,p,m=l(function(t){function l(){f=p=null,c.clearRect(0,0,a.width,a.height),u.clear(),o(),t()}function m(){r&&(a.width!==i.width||a.height!==i.height)&&(a.width=e.width=i.width,a.height=e.height=i.height),!a.width&&!a.height&&(n(e),a.width=e.width,a.height=e.height),c.clearRect(0,0,a.width,a.height),s=s.filter(function(e){return ee(c,e)}),s.length?f=d.frame(m):l()}f=d.frame(m),p=l});return{addFettis:function(e){return s=s.concat(e),m},canvas:e,promise:m,reset:function(){f&&d.cancel(f),p&&p()}}}function O(e,n){var r=!e,i=!!g(n||{},`resize`),o=!1,s=g(n,`disableForReducedMotion`,Boolean),c=a&&g(n||{},`useWorker`)?f():null,u=r?C:w,d=e&&c?!!e.__confetti_initialized:!1,p=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion)`).matches,m;function h(t,n,r){for(var i=g(t,`particleCount`,_),a=g(t,`angle`,Number),o=g(t,`spread`,Number),s=g(t,`startVelocity`,Number),c=g(t,`decay`,Number),l=g(t,`gravity`,Number),d=g(t,`drift`,Number),f=g(t,`colors`,b),p=g(t,`ticks`,Number),h=g(t,`shapes`),y=g(t,`scalar`),x=!!g(t,`flat`),C=S(t),w=i,T=[],E=e.width*C.x,ee=e.height*C.y;w--;)T.push(D({x:E,y:ee,angle:a,spread:o,startVelocity:s,color:f[w%f.length],shape:h[v(0,h.length)],ticks:p,decay:c,gravity:l,drift:d,scalar:y,flat:x}));return m?m.addFettis(T):(m=te(e,T,u,n,r),m.promise)}function y(n){var a=s||g(n,`disableForReducedMotion`,Boolean),f=g(n,`zIndex`,Number);if(a&&p)return l(function(e){e()});r&&m?e=m.canvas:r&&!e&&(e=T(f),document.body.appendChild(e)),i&&!d&&u(e);var _={width:e.width,height:e.height};c&&!d&&c.init(e),d=!0,c&&(e.__confetti_initialized=!0);function v(){if(c){var t={getBoundingClientRect:function(){if(!r)return e.getBoundingClientRect()}};u(t),c.postMessage({resize:{width:t.width,height:t.height}});return}_.width=_.height=null}function y(){m=null,i&&(o=!1,t.removeEventListener(`resize`,v)),r&&e&&(document.body.contains(e)&&document.body.removeChild(e),e=null,d=!1)}return i&&!o&&(o=!0,t.addEventListener(`resize`,v,!1)),c?c.fire(n,_,y):h(n,_,y)}return y.reset=function(){c&&c.reset(),m&&m.reset()},y}var k;function A(){return k||=O(null,{useWorker:!0,resize:!0}),k}function ne(e,t,n,r,i,a,o){var s=new Path2D(e),c=new Path2D;c.addPath(s,new DOMMatrix(t));var l=new Path2D;
35return l.addPath(c,new DOMMatrix([Math.cos(o)*i,Math.sin(o)*i,-Math.sin(o)*a,Math.cos(o)*a,n,r])),l}function re(e){if(!o)throw Error(`path confetti are not supported in this browser`);var t,n;typeof e==`string`?t=e:(t=e.path,n=e.matrix);var r=new Path2D(t),i=document.createElement(`canvas`).getContext(`2d`);if(!n){for(var a=1e3,s=a,c=a,l=0,u=0,d,f,p=0;p<a;p+=2)for(var m=0;m<a;m+=2)i.isPointInPath(r,p,m,`nonzero`)&&(s=Math.min(s,p),c=Math.min(c,m),l=Math.max(l,p),u=Math.max(u,m));d=l-s,f=u-c;var h=10,g=Math.min(h/d,h/f);n=[g,0,0,g,-Math.round(d/2+s)*g,-Math.round(f/2+c)*g]}return{type:`path`,path:t,matrix:n}}function ie(e){var t,n=1,r=`#000000`,i=`"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif`;typeof e==`string`?t=e:(t=e.text,n=`scalar`in e?e.scalar:n,i=`fontFamily`in e?e.fontFamily:i,r=`color`in e?e.color:r);var a=10*n,o=``+a+`px `+i,s=new OffscreenCanvas(a,a),c=s.getContext(`2d`);c.font=o;var l=c.measureText(t),u=Math.ceil(l.actualBoundingBoxRight+l.actualBoundingBoxLeft),d=Math.ceil(l.actualBoundingBoxAscent+l.actualBoundingBoxDescent),f=2,p=l.actualBoundingBoxLeft+f,m=l.actualBoundingBoxAscent+f;u+=f+f,d+=f+f,s=new OffscreenCanvas(u,d),c=s.getContext(`2d`),c.font=o,c.fillStyle=r,c.fillText(t,p,m);var h=1/n;return{type:`bitmap`,bitmap:s.transferToImageBitmap(),matrix:[h,0,0,h,-u*h/2,-d*h/2]}}n.exports=function(){return A().apply(this,arguments)},n.exports.reset=function(){A().reset()},n.exports.create=O,n.exports.shapeFromPath=re,n.exports.shapeFromText=ie})((function(){return typeof window<`u`?window:typeof self<`u`?self:this||{}})(),tB,!1);var nB=tB.exports;tB.exports.create;var rB=l(`<canvas id=confetti class="z-[9999] fixed inset-0 pointer-events-none w-full h-full">`),[iB,aB]=o(),oB=()=>{let e=[`#ff4f6a`,`#f68820`,`#54cbcb`,`#64b550`,`#ffb316`],t=Date.now()+250,n=iB(),r=window.innerWidth;if(!n)return;let i=Math.min(r/15,50),a=-40;kN(r)&&(a=-70),(function r(){n({particleCount:10,angle:a,spread:75,ticks:150,startVelocity:i,origin:{x:0,y:0},colors:e}),n({particleCount:10,angle:180-a,spread:75,ticks:150,startVelocity:i,origin:{x:1,y:0},colors:e}),Date.now()<t&&requestAnimationFrame(r)})()},sB=({x:e,y:t})=>{let n=[`#ff4f6a`,`#f68820`,`#54cbcb`,`#64b550`,`#ffb316`],r=iB(),i=window.innerWidth;if(!r)return;let a=window.innerHeight,o=e/i,s=t/a;(function(){r({particleCount:30,angle:0,spread:360,decay:.8,scalar:.8,ticks:30,startVelocity:10,origin:{x:o,y:s},colors:n})})()},cB=()=>(()=>{var e=rB();return I(()=>e=>{aB(()=>nB.create(e,{resize:!0,useWorker:!0}))},e),e})(),lB=Re(`RateApp`,{web:()=>ve(()=>import(`./web-C53WsJ7_.js`).then(e=>new e.RateAppWeb),__vite__mapDeps([19,4,1,2,5]),import.meta.url)});function uB(e){return e.startEpd===void 0&&e.repertoireId==null}function dB(){return{repertoireId:null}}function fB(e){return e?e.moves?e.moves.length:1:0}function pB(e,t){return e??t??void 0}function mB(e,t){if(e.cameFrom===`home`||e.lichessMistakes)return e.repertoireId;if(e.startPosition!=null)return pB(e.repertoireId,t);if(e.repertoireId!=null)return e.repertoireId}function hB(e){return e}function gB(e){let t=e.activeOptions;return!t||t.startPosition!=null?!1:t.cameFrom===`home`||t.lichessMistakes?!0:t.repertoireId==null}function _B(e,t){return gB(e)?null:pB(e.activeOptions?.repertoireId,t)??null}function vB(e){return!e||e.cameFrom===`home`||e.repertoireId==null&&e.startPosition==null}function yB(e){let t=0;for(let n of e.activeQueue)t+=fB(n);if(!e.currentQuizGroup)return t;let n=e.currentQuizGroup.moves;if(n){let r=e.completedReviewPositionMoves,i=n.filter(e=>Kt(r[e.sanPlus])).length;t+=i,i===0&&!e.currentQuizGroup.retry&&n.some(e=>e.learning)&&(t+=n.length)}else t+=1;return t}function bB(e){return e.activeOptions==null?!1:e.bonusMove?!0:yB(e)>0}function xB(e){e.activeQueue=[],e.currentQuizGroup=null,e.bonusMove=!1,e.activeOptions=null,e.sessionPaused=!1}function SB(e){return gB(e)&&bB(e)}function CB(e,t){if(!bB(e))return!1;if(gB(e))return t==null;if(!t)return!1;let n=e.activeOptions?.repertoireId;return typeof n==`string`&&n===t}function wB(e){return{repertoireId:e}}var TB=e=>{Z(t=>{Q().getActiveChessboard().resetPosition(),e&&X().actions.setActiveRepertoire(e.id),Q().hasView(kY)?Q().backTo(kY):(Q().clearViews(),Q().pushView(kY))})};function EB(e){if(!Q().hasView(yY))return;Q().backTo(yY);let t=Q().currentView();if(t?.component===yY&&e){let n=t.props;n.repertoireId!==e&&Q().replaceView(yY,{props:{...n,repertoireId:e}})}}var DB=()=>{Z(e=>{X().actions.setActiveRepertoire(void 0),e.repertoireState.reviewState.actions.stopReviewing(),Q().replaceView(yY,{props:dB()})})},OB=(e,t)=>{Z(n=>{t?.pausePractice?n.repertoireState.reviewState.actions.pausePracticeSession():Q().getActiveChessboard().resetPosition();
35let r=q().repertoireState.reviewState.state,i=_B(hB(r),X().state.activeRepertoireId)??pB(e?.id??null,X().state.activeRepertoireId)??null;e&&X().actions.setActiveRepertoire(e.id),Q().clearViews(),Q().pushView(yY,{props:wB(i)}),t?.pausePractice&&n.repertoireState.browsingState.handles.chessboard.resetPosition()})},kB=Re(`PushNotifications`,{}),AB=`notification-measurement-v1`,jB=`notification-attribution-v1`,MB=`notification-installation-id`,NB=36e5,PB=xF({notification_id:iF().uuid().required(),notification_user_id:iF().uuid().required(),notification_type:iF().oneOf([`practice`,`streak`]).required()}).required(),FB=xF({notificationId:iF().uuid().required(),userId:iF().uuid().required(),notificationType:iF().oneOf([`practice`,`streak`]).required(),openedAt:sF().required()}).required(),IB=CF(xF({userId:iF().uuid().required(),request:xF({id:iF().uuid().required(),installationId:iF().uuid().required(),platform:iF().oneOf([`ios`,`android`]).required(),observedAt:iF().required(),event:KP().required()}).required()}).required()).required(),LB=()=>{try{return IB.validateSync(JSON.parse(localStorage.getItem(AB)??`[]`),{strict:!0})}catch{return[]}},RB=e=>{try{localStorage.setItem(AB,JSON.stringify(e))}catch(e){console.warn(`Could not persist notification measurements`,e)}},zB=()=>{let e=localStorage.getItem(MB);if(e&&iF().uuid().isValidSync(e))return e;let t=crypto.randomUUID();return localStorage.setItem(MB,t),t},BB=!1,VB=async()=>{if(Ye&&!BB){BB=!0;try{for(let e of LB())if(J().user?.id===e.userId){try{if(await hN.call([`notifications.recordMeasurement`,e.request]),J().user?.id===e.userId){let t=e.request.event,n={opened:`push_notification_opened`,practiceStarted:`notification_practice_started`,practiceCompleted:`notification_practice_completed`,permissionObserved:`notification_permission_observed`}[t.kind];K(n,{...t,...t.kind===`permissionObserved`?{}:{notification_id:t.notificationId},...t.kind===`opened`?{notification_type:t.notificationType}:{},$insert_id:e.request.id,platform:e.request.platform,installation_id:e.request.installationId,observed_at:e.request.observedAt})}}catch(e){if(!(e instanceof fN&&e.status===400)){console.warn(`Could not upload notification measurement`,e);break}console.warn(`Discarding invalid notification measurement`,e.message)}RB(LB().filter(t=>t.request.id!==e.request.id))}}finally{BB=!1}}},HB=(e,t,n)=>{if(Ye)try{let r=n??crypto.randomUUID(),i={id:r,installationId:zB(),platform:Ke?`ios`:`android`,observedAt:new Date().toISOString(),event:t},a=LB();if(a.some(e=>e.request.id===r))return;a.length>=200&&console.warn(`Notification measurement outbox full; dropping oldest observation`),RB([...a.slice(-199),{userId:e,request:i}]),VB()}catch(e){console.warn(`Could not queue notification measurement`,e)}},UB=new Set,WB=(e,t)=>{try{if(!PB.isValidSync(e,{strict:!0}))return!1;let n=PB.validateSync(e,{strict:!0});return UB.has(n.notification_id)?!0:(UB.add(n.notification_id),localStorage.setItem(jB,JSON.stringify({notificationId:n.notification_id,userId:n.notification_user_id,notificationType:n.notification_type,openedAt:Date.now()})),HB(n.notification_user_id,{kind:`opened`,notificationId:n.notification_id,notificationType:n.notification_type,receiver:t}),!0)}catch(e){return console.warn(`Could not record notification open`,e),!1}},GB=()=>{if(!Ye)return null;try{let e=FB.validateSync(JSON.parse(localStorage.getItem(jB)??`null`),{strict:!0});if(e.userId!==J().user?.id)return null;localStorage.removeItem(jB);let t=Date.now()-e.openedAt;if(t<0||t>NB)return null;let n={...e,practiceSessionId:crypto.randomUUID()};return HB(e.userId,{kind:`practiceStarted`,notificationId:e.notificationId,practiceSessionId:n.practiceSessionId}),n}catch{return null}},KB=e=>e?{notification_id:e.notificationId,notification_type:e.notificationType,notification_practice_session_id:e.practiceSessionId}:{},qB=(e,t)=>{!e||t<=0||J().user?.id!==e.userId||HB(e.userId,{kind:`practiceCompleted`,notificationId:e.notificationId,practiceSessionId:e.practiceSessionId,reviewedMoves:t},e.practiceSessionId)},JB=Re(`NotificationSettings`),YB=async e=>{let t=J().user?.id;if(Ye&&t)try{let{receive:n}=await kB.checkPermissions();HB(t,{kind:`permissionObserved`,permission:n,displayEnabled:Ke?null:Ze.isPluginAvailable(`NotificationSettings`)?(await JB.getState()).displayEnabled:null,channels:(Ke?null:await kB.listChannels().catch(e=>(console.warn(`Could not observe notification channels`,e.message),null)))?.channels.map(({id:e,importance:t})=>({id:e,importance:t??null}))??null,source:e})}catch(e){console.warn(`Could not observe notification permission`,e)}},XB=l(`<div><!><!>`),ZB=l(`<i>`),QB=()=>new Date,$B=e=>{let t=e.descriptor||`due`,n=e.date?new Date(e.date):new Date,r=lC(n,QB()),i=`${t}`;return e.text?e.text:!e.date||r||e.numDue>0?e.moves?`${_L(e.numDue,`move`)}
35`:`${e.numDue.toLocaleString()} ${e.pluralizeDescriptor?vL(e.numDue,t):t}`:`${Eo(i)} ${rV(n)}`},eV=e=>{if(e.numDue>0)return`${e.numDue.toLocaleString()} due`;if(!e.date)return null;let t=nV(QB(),new Date(e.date));return t<=0?`now`:t===1?`1 day`:`${t.toLocaleString()} days`},tV=e=>{let t=_(()=>$B(e)),n=()=>!e.text&&(!e.date||lC(new Date(e.date),QB())||e.numDue>0),r=()=>e.iconColor??(n()?e.inverse?`text-yellow-60`:`text-learning`:`text-tertiary`),i=()=>n()?`text-secondary`:e.textColor??`text-tertiary`;return(()=>{var n=XB(),a=n.firstChild,o=a.nextSibling;return N(n,x(V,{get class(){return L(`text-xs leading-5 tabular-nums`,i(),`font-semibold`)},get children(){return t()}}),a),N(n,(()=>{var t=A(()=>!e.hideIcon);return()=>t()&&(()=>{var t=ZB();return M(()=>({e:F(z(B.fontSize(12))),t:F(L(e.icon?e.icon:`fa fa-clock`,`pl-2`,r()))}),({e,t:n},r)=>{w(t,e,r?.e),P(t,n,r?.t)}),t})()})(),o),M(()=>F(L(`flex flex-row items-center`,e.class)),(e,t)=>{P(n,e,t)}),n})()};function nV(e,t){let n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-n.getTime();return Math.round(r/864e5)}var rV=e=>{let t=nV(new Date,e);return t<=0?`now`:t===1?`in 1 day`:`in ${t} days`},iV=l(`<span>`),aV=l(`<span>100%`),oV=l(`<span>(<!>%)`),sV=l(`<span class="text-highlight font-semibold"> day streak`),cV=l(`<div style=gap:8px>`),lV=8,uV=e=>{let t=st(),n=()=>Y().onboarding,r=()=>Y().reviewState.state.allReviewPositionMoves,i=()=>q().repertoireState.reviewState.state.activeOptions??{},a=()=>i().filter===`daily`||e.daily,o=_(()=>{if(a())return Object.values(j6().getReviews()).map(e=>({epd:e.epd,correct:e.correct,side:e.side}));let e=[];return Kl(r(),(t,n)=>{Kl(t,({failed:t,side:r})=>{e.push({epd:n,correct:!t,side:r})})}),e}),s=()=>o().filter(e=>!e.correct).length,c=()=>o().filter(e=>e.correct).length,l=()=>o().length,u=()=>l()>0?Math.round(100*c()/l()):0,d=()=>i().repertoireId?Y().repertoires?.[i().repertoireId]:null,f=_(()=>Y().getEarliestDue()),p=()=>Y().totalMovesDue??0;ze(()=>{S()&&oB()}),ze(()=>{K(`practice_complete`,{...KB(Y().reviewState.state.notificationAttribution),num_failed:s(),num_correct:c(),filter:i().filter,onboarding:n().isOnboarding,manual:!!e.manual}),Math.random()<.5&&Ye&&!n().isOnboarding&&(K(`prompted_for_app_review`),lB.requestReview())});let m=()=>Nu(Y().getStandardAndSuperRepertoires(),e=>Y().numMovesDueFromEpd[e.id]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0),h=()=>d()?m()[d().id]:p(),g=_(()=>J().getCurrentStreak()),v=_(()=>h()===0&&!n()?q().repertoireState.reviewState.actions.buildQueue({repertoireId:i()?.repertoireId,filter:`early`}):null),y=()=>i()?.lichessMistakes,S=()=>l()>0&&l()===c()&&!y()&&!e.manual,C=uY(),w=_(()=>{let e=[];
35if(n().isOnboarding)return[{onPress:()=>{Z(e=>{K(`onboarding.practice_complete.continue`),e.repertoireState.updateRepertoireStructures(),e.userState.isConnectedToExternal()?Q().pushView(wX,{props:{authType:`register`}}):Q().pushView(PX)})},text:`Continue`,style:e.length>0?`secondary`:`primary`}];C()&&e.push(C());let t=v();t&&e.push({onPress:()=>{Z(e=>{Q().cutView(),e.repertoireState.reviewState.actions.startReview({repertoireId:i()?.repertoireId,filter:`early`}),K(`post_review.next_common_moves`)})},text:`Review your next ${_L(t.length,`move`)} early`,right:null,style:`secondary`});let r=e.length>0?`secondary`:`primary`,[o]=K6({source:`nearest`});return i().cameFrom===`repertoire_builder`&&i().repertoireId&&e.push({onPress:()=>{Z(e=>{Y().updateRepertoireStructures(),Q().replaceView(PY),X().actions.setActiveRepertoire(i().repertoireId);let t=i().startLine;t?.length&&Q().getActiveChessboard().playLine(t)})},style:r,text:`Keep building`}),a()?e.push({onPress:()=>{Z(e=>{vX(`right`);let t=i();if(vB(t)){DB();return}let n=t?.repertoireId;if(n){X().actions.setActiveRepertoire(n),Q().replaceView(yY,{props:wB(n)});return}DB()})},text:`Keep practicing`,style:r}):o&&!n().isOnboarding&&i().cameFrom===`review_specific_line`?e.push({...o,style:r,text:`Keep building`}):e.push({onPress:()=>{Z(e=>{!i()?.repertoireId&&i().filter===`recommended`&&Y().totalMovesDue===0&&X().derived.shouldPromptToGoDeeper(null)?Q().replaceView(WL,{props:{source:`review`}}):(vX(`left`),e.repertoireState.backToOverview())})},text:`Continue`,style:r}),a()&&e.push({onPress:()=>{Z(e=>{vX(`left`),e.repertoireState.backToOverview()})},text:`Exit practice`,style:r}),!y()&&!a()&&e.push({onPress:()=>{Z(e=>{Q().cutView(),vX(`right`);let t=AI(e.repertoireState.reviewState.state.originalQueue);t.forEach(e=>{let t=wz.getMoves(e);t&&t.forEach(e=>{e.learning=!1})}),e.repertoireState.reviewState.actions.startReview({repertoireId:i()?.repertoireId,customQueue:t})})},text:`Practice these moves again`,style:r}),e}),T=()=>{let e=Y().totalMovesDue??0,t=[];return t.push([`You practiced`,` `,(()=>{var e=iV();return N(e,()=>_L(l(),`move`)),M(()=>F(L(`text-highlight font-semibold`)),(t,n)=>{P(e,t,n)}),e})()]),S()?t.push([`You got `,(()=>{var e=aV();return M(()=>F(L(`rainbow-shine font-bold`)),(t,n)=>{P(e,t,n)}),e})(),` of your moves right`]):t.push([`You played the correct move`,` `,(()=>{var e=iV();return N(e,()=>_L(c(),`time`)),M(()=>F(L(`text-highlight font-semibold`)),(t,n)=>{P(e,t,n)}),e})(),` `,(()=>{var e=oV(),t=e.firstChild.nextSibling;return t.nextSibling,N(e,u,t),e})()]),a()?t.push([`You now have a`,` `,(()=>{var e=sV(),t=e.firstChild;return N(e,()=>g().currentStreak,t),e})()]):e>0?t.push([`You have`,` `,(()=>{var t=iV();return N(t,()=>_L(e,`move`)),M(()=>F(L(`text-highlight font-semibold`)),(e,n)=>{P(t,e,n)}),t})(),` `,`due for review now`]):f()&&t.push([`Your next practice will be due`,` `,(()=>{var e=iV();return N(e,()=>rV(new Date(f()))),M(()=>F(L(`text-highlight font-semibold`)),(t,n)=>{P(e,t,n)}),e})()]),t};return x($,{get header(){return A(()=>!!a())()?`Daily practice complete!`:A(()=>!!y())()?`Review complete!`:S()?`Perfect practice!`:`Practice complete!`},bodyPadding:!0,get headerGap(){return t().isMobile?void 0:36},bodyEdge:`bullets`,get actions(){return w()},get children(){return[x(JL,{get repertoireId(){return i().repertoireId},type:`mastery`,decimalPlaces:1}),x(R,{get height(){return(t().isMobile?32:36)-at}}),x(V,{get class(){return L(`text-primary font-bold glyph-trim-both`)},get children(){return[`Your stats from `,A(()=>a()?`today`:`this session`),`:`]}}),x(R,{height:lV+it}),(()=>{var e=cV();return N(e,x(b,{get each(){return T()},children:e=>x(XL,{children:e})})),e})()]}})};LF(uV,`review`);var dV;(function(e){function t({epd:e,san:t}){return`${e}|${t}`}e.toKey=t;function n(e){return{epd:e.epd,san:e.san}}e.fromChessboardMove=n})(dV||={});var fV=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,pV=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let e=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`));return`${t.slice(0,4).join(``)}-${t.slice(4,6).join(``)}-${t.slice(6,8).join(``)}-${t.slice(8,10).join(``)}-${t.slice(10,16).join(``)}`},mV=(e,...t)=>{if(!e){let e=t.filter(e=>typeof e!=`object`),n=t.filter(e=>typeof e==`object`&&!!e);qn(Error(`Assertion failed! ${e.join(`,`)}`),{extra:n.length>0?{assertionContext:n}:void 0})}};function hV(e,t){e??qn(Error(`Non-null assertion failed! ${t}`))}var gV=e=>{let t=e.charCodeAt(0)-97;return 8-Number(e[1])<<4|t},_V;(function(e){function t(e){return e>>4}e.toRank=t;function n(e){return e&15}e.toFile=n})(_V||={});var vV={w:[-16,-32],b:[16,32]},yV={b:1,w:6},bV={n:[-18,-33,-31,-14,18,33,31,14],b:[-17,-15,17,15],r:[-16,1,16,-1],q:[-17,-16,-15,1,17,16,15,-1],k:[-17,-16,-15,1,17,16,15,-1]},xV=({piece:e,square:t,side:n})=>{let r=gV(t.toLowerCase()),i=[],a=n===`white`?`w`:`b`,o=e=>{e&136||i.push(SV(e))};if(e===`p`)return o(r+vV[a][0]),yV[a]===_V.toRank(r)&&o(r+vV[a][1]),i;let s=bV[e],c=e!==`n`&&e!==`k`;for(let e of s){let t=r;for(;t+=e,!(t&136||(o(t),!c)););}return i};function SV(e){let t=_V.toFile(e),n=_V.toRank(e);return`abcdefgh`.substring(t,t+1)+`87654321`.substring(n,n+1)}function CV(e,t){return t.attackers(e).map(e=>t.get(e))}var wV=20,TV=864e5,EV=.9**-2-1;function DV(e,t){return(1+EV*Math.max(0,e)/t)**-.5}
35function OV(e,t){let n=e.incidence??0,r=e.srs;if(!r||!Number.isFinite(n)||n<=0||!Number.isFinite(t))return 0;if(r.dueAt===null)return n*.5;let i=r.interval;if(!Number.isFinite(i)||i<=0)return 0;let a=Date.parse(r.dueAt);return Number.isFinite(a)?n*(1-DV(Math.max(0,(t-a)/TV+i),i)):0}function kV(e,t){return!(`moves`in e)||e.moves.length===0?0:e.moves.reduce((e,n)=>e+OV(n,t),0)/e.moves.length}var AV=e=>`${e.side}:${e.epd}`;function jV(e,t,n){if(!Number.isFinite(t)||t<=0)return[];let r=e.filter(e=>`moves`in e&&e.moves.length>0&&!e.synthetic).map(e=>({group:e,key:AV(e),gain:kV(e,n)})).sort((e,t)=>t.gain-e.gain||e.key.localeCompare(t.key)),i=new Set,a=new Set;for(let e of r){if(i.size>=Math.floor(t))break;i.has(e.key)||(i.add(e.key),a.add(e.group))}return e.filter(e=>{let t=AV(e);return i.has(t)?`moves`in e?a.has(e):!0:!1})}function MV(e){return new Promise(t=>setTimeout(t,e))}var NV=Re(`SoundEffects`,{web:()=>ve(()=>import(`./web-Yu44MJDM.js`).then(e=>new e.SoundEffectsWeb),__vite__mapDeps([20,4,1,2,5]),import.meta.url)}),PV=e=>ZS?`${ZS}${e}`:e,FV=e=>Ye?e:PV(e),IV={move:{sound:`move`,src:FV(`/sounds/move.mp3`),filename:`move.mp3`},capture:{sound:`capture`,src:FV(`/sounds/capture.mp3`),filename:`capture.mp3`},success:{sound:`success`,src:FV(`/sounds/success.mp3`),filename:`success.mp3`},failure:{sound:`failure`,src:FV(`/sounds/failure.mp3`),filename:`failure.mp3`},drop:{sound:`drop`,src:FV(`/sounds/drop.mp3`),filename:`drop.mp3`}},LV=new class{context;buffers;constructor(){this.context=new AudioContext,this.buffers=new Map}async loadSound(e){let t=await(await fetch(e.src)).arrayBuffer(),n=await this.context.decodeAudioData(t);this.buffers.set(e.sound,n)}play(e){let t=this.buffers.get(e);if(!t)return;this.context.state===`suspended`&&this.context.resume(),this.context.state===`suspended`&&(this.context=new AudioContext);let n=this.context.createBufferSource();n.buffer=t,n.connect(this.context.destination);try{n.start()}catch{}}};Object.entries(IV).map(([e,t])=>LV.loadSound(t));var RV=async(e,t)=>{if(J().getFrontendSetting(`sound`).value!==s0.Muted){if(Ke){NV.playSound({filename:e.filename.replace(`.mp3`,`.wav`)});return}LV.play(e.sound)}},zV=15e4,BV=.7,VV=.97,HV=50,UV=100,WV=class{nodeGoal;fallbackNps;startedAt=performance.now();reportedNodes=0;reportedAt=this.startedAt;constructor(e,t){this.nodeGoal=e,this.fallbackNps=t}onNodesReported(e){!Number.isFinite(e)||e<=this.reportedNodes||(this.reportedNodes=e,this.reportedAt=performance.now())}progress(){let e=performance.now(),t=this.reportedNodes+this.nps()*(e-this.reportedAt)/1e3,n=this.reportedNodes>0?VV:BV;return Math.max(0,Math.min(t/this.nodeGoal,n))}nps(){let e=this.reportedAt-this.startedAt;return this.reportedNodes>0&&e>HV?this.reportedNodes/e*1e3:this.fallbackNps||zV}},GV=({chessboard:e,epd:t,nodes:n,square:r,progressBase:i=0,progressScale:a=1})=>{let o=new WV(n,G.lastNps),s=setInterval(()=>{e.set(e=>{e.moveFeedback.square===r&&e.moveFeedback.result===`thinking`&&(e.moveFeedback.progress=Math.max(e.moveFeedback.progress??0,i+o.progress()*a,.05))})},UV);return G.evalPos({epd:t,cb:()=>{let e=G.lastInfo?.nodes;e&&o.onNodesReported(e)},nodes:n}).finally(()=>{clearInterval(s)})},KV=null,qV=()=>{if(KV&&KV===(0,RN.default)().date())return;J().user&&Z(e=>{e.userState.user&&(e.userState.user.currentStreak+=1)}),KV=(0,RN.default)().date();let e=(0,RN.default)(),t=Intl.DateTimeFormat().resolvedOptions().timeZone;hN.call([`streaks.dailyTaskFinished`,{date:e.format(),timezone:t}]).then(e=>{J().setUser(e)})};async function JV(e){try{return[await e(),null]}catch(e){return[null,e]}}var YV=l(`<p class=body-text> in multiple repertoires, which one do you want to view?`),XV=e=>e.currentQuizGroup!==null||e.activeQueue.length>0||e.bonusMove;function ZV(e,t){if(!XV(e)||!e.activeOptions)return!1;if(!gB(hB(e))){let n=pB(e.activeOptions.repertoireId,t);n&&(e.activeOptions={...e.activeOptions,repertoireId:n})}return e.sessionPaused=!0,!0}function QV(e,t){bB(hB(e.state))?e.actions.pausePracticeSession():t===`review`&&e.actions.stopReviewing()}var $V=()=>{Y().reviewState.actions.pausePracticeSession()},eH=e=>{G.loaded&&G.isReady&&G.evalPos({epd:e,nodes:YD.SHALLOW}).catch(()=>{})},tH={correct:0,incorrect:0},nH=function(e){return e[e.Start=0]=`Start`,e[e.Hints=1]=`Hints`,e[e.Arrows=2]=`Arrows`,e[e.Full=3]=`Full`,e}({}),rH=()=>{let e=E2()[1],t=WI({notificationAttribution:null,originalQueue:null,sessionPaused:!1,bonusMove:!1,viewingLastQuizGroup:!1,moveLog:[],failedReviewPositionMoves:{},completedReviewPositionMoves:{},allReviewPositionMoves:{},quizGroupStage:0,reviewStats:Sc(tH),reviewSide:`white`,activeOptions:null,activeQueue:[],planIndex:0,currentQuizGroup:null,incorrectGuessesThisQuizGroup:0,previousQuizGroup:null}),n=t.state,r={chessboard:e,onSessionEnd:new AE,entireLineOnceSessionSeenEpds:new Set},i=(e,n)=>Z(n=>
35t.set(t=>e([t,n.repertoireState,n]))),a=e=>e([t.current(),q().repertoireState,q()]),o=!1,s=e=>{o&&(o=!1,e.touchRepertoires(),e.onMoveReviewed())},c=(e,t)=>{e.notificationAttribution=null,s(t),t.updateRepertoireStructures(),r.chessboard.setTapOptions([]),r.onSessionEnd.callAndClear(),xB(e)},l={isReviewingMistakes:()=>!Kt(n.activeOptions?.lichessMistakes),hasAnnotationsForCurrentQuizGroup:()=>a(([e,t])=>e.currentQuizGroup?!H(ru(wz.getMoves(e.currentQuizGroup)?.map(e=>t.getAnnotation(dV.toKey({epd:e.epd,san:e.sanPlus}))?.text),e=>e)):!1),getNextReviewPositionMove:()=>fu(l.getRemainingReviewPositionMoves()),getRemainingReviewPositionMoves:()=>a(([e])=>e.currentQuizGroup?ru(wz.getMoves(e.currentQuizGroup),t=>Kt(e.completedReviewPositionMoves[t.sanPlus])):[])},u={skipFirstPractice:()=>{i(([e,t])=>{Kl([...e.activeQueue,...e.currentQuizGroup?[e.currentQuizGroup]:[]],e=>{Kl(wz.getMoves(e),e=>{e.learning&&=!1})})})},markMovesReviewed:e=>{let t=Kd(e,e=>`${e.epd}|${e.sanPlus}`),n=pV();i(([e,n])=>{t.forEach((e,t)=>{Kl(n.getRepertoires({side:e.side}),t=>{t.positionResponses[e.epd]?.forEach(t=>{t.sanPlus===e.sanPlus&&t.srs&&e.correct&&(t.srs.dueAt=new Date(Date.now()+432e6).toISOString(),t.srs.firstReview=!1)})})});let r=t.map(e=>({san:e.sanPlus,epd:e.epd,correct:e.correct,side:e.side,date:(0,RN.default)().format(`YYYY-MM-DD`)}));r.length>0&&j6().addReviews(r),t.length>0&&(o=!0)}),QS.post(`/api/v1/openings/moves_reviewed`,{submissionId:n,results:t,date:(0,RN.default)().format(`YYYY-MM-DD`)}).then(({data:e})=>{if(!Array.isArray(e)){console.warn(`[review_state] moves_reviewed returned no SRS rows`,{resultCount:t.length,updatedSrss:e});return}i(([n,r])=>{t.forEach((t,n)=>{let i=e[n];i&&Kl(r.getRepertoires({side:t.side}),e=>{e.positionResponses[t.epd]?.forEach(e=>{e.sanPlus===t.sanPlus&&e.srs&&(e.srs=i)})})}),o=!0,XV(n)||s(r)})})},resumeReview:()=>{i(([e,t,n])=>{if(XV(e)&&!e.notificationAttribution&&(e.notificationAttribution=GB()),e.sessionPaused=!1,Q().mode=`review`,e.currentQuizGroup){if(e.quizGroupStage===0&&H(e.completedReviewPositionMoves)){u.setupCurrentQuizGroup();return}u.restorePausedQuizGroup()}})},onPositionUpdate:Hi,startReview:e=>i(([t,n,i])=>{t.notificationAttribution=null,r.onSessionEnd.callAndClear(),t.sessionPaused=!1,t.reviewStats=Sc(tH),t.currentQuizGroup=null,t.bonusMove=!1,vX(`right`);let a=mB(e,n.browsingState.state.activeRepertoireId),o=a?{...e,repertoireId:a}:e,s=a?n.getStandardAndSuperRepertoires()?.[a]:null;n.browsingState.actions.quick(e=>{e.repertoireSide=s?.side??void 0}),t.activeOptions=o??null,e.lichessMistakes?t.activeQueue=vz(n.lockedMoves,u.buildQueueFromMistakes(e.lichessMistakes)):e.customQueue?t.activeQueue=_z(n.lockedMoves,Sc(e.customQueue)):u.updateQueue(o);let c=null;if(t.activeQueue=hu(t.activeQueue,e=>{let t=wz.appendExpandedQuizGroup(c,e);return c=e,t}),J().getFrontendSetting(`reviewStyle`).value===o0.EntireLineOnce){let n=new Set;if(!e.customQueue&&!e.lichessMistakes)for(let e of r.entireLineOnceSessionSeenEpds)n.add(e);t.activeQueue=t.activeQueue.filter(e=>e.synthetic&&n.has(e.epd)?!1:(n.add(e.epd),!0))}let l={};t.activeQueue.forEach(e=>{wz.getMoves(e)?.forEach(e=>{l[e.epd]||(l[e.epd]={}),l[e.epd][e.sanPlus]={epd:e.epd,sanPlus:e.sanPlus,side:e.side,failed:!1,reviewed:!1}})}),t.allReviewPositionMoves=l,mV(t.activeQueue.length>0,`Empty active queue`),t.originalQueue=AI(t.activeQueue),t.activeQueue.length>0&&(t.notificationAttribution=GB()),u.setupNextQuizGroup(),n.fetchNeededAnnotations(),Q().pushView(ZG)}),setupPlans:()=>i(([e,t])=>{let n=fu(wz.getRemainingPlans(e.currentQuizGroup,e.planIndex));if(r.chessboard.set(e=>{e.hideLastMoveHighlight=!0}),!n){e.quizGroupStage=3,r.chessboard.set(t=>{t.showPlans=!0,t.plans=(wz.getCompletedPlans(e.currentQuizGroup,e.planIndex)??[]).map(e=>e.metaPlan)});return}let i=xV({square:n.fromSquare,side:e.currentQuizGroup.side,piece:n.piece});n.options&&(i=n.options),r.chessboard.setTapOptions(i),r.chessboard.setMode(`tap`),r.chessboard.highlightSquare(n?.fromSquare??null)}),markGameMistakeReviewed:e=>{i(([t,n])=>{n.lichessMistakes=n.lichessMistakes?.filter(t=>t.gameId!==e.gameId||t.epd!==e.epd)??null,QS.post(`/api/v1/game_mistake_reviewed`,{gameId:e.gameId,epd:e.epd,createdAt:e.timestamp})})},backToLastQuizGroup:()=>i(([e])=>{e.viewingLastQuizGroup=!0,e.currentQuizGroup&&e.activeQueue.unshift(e.currentQuizGroup),e.currentQuizGroup=e.previousQuizGroup,e.previousQuizGroup=null,u.setupCurrentQuizGroup(),(wz.getMoves(e.currentQuizGroup)||[]).length<=1&&u.playCorrectMove({markAs:null}),e.quizGroupStage=3}),setupNextQuizGroup:()=>i(([e,t,n])=>{if(e.previousQuizGroup=null,e.viewingLastQuizGroup=!1,r.chessboard.setFrozen(!1),e.planIndex=0,e.currentQuizGroup&&!e.viewingLastQuizGroup){let n=Su(e.failedReviewPositionMoves),r
35=wz.getMoves(e.currentQuizGroup),i=Ad(r,e=>e.learning);if(!H(n)&&!e.activeOptions?.lichessMistakes||i){let t={moves:(r??[]).map(e=>({...e,learning:!e.learning&&void 0})),line:e.currentQuizGroup.line,side:e.currentQuizGroup.side,epd:e.currentQuizGroup.epd,retry:!0};if(i){let n=e.activeQueue.findIndex((t,n)=>{let r=e.activeQueue[n-1];return Ad(wz.getMoves(t),e=>e.learning===!1)||t.synthetic?!1:!!(r&&t.line.length<r.line.length)});if(n===-1)e.activeQueue.push(t);else{for(let t=n;t<e.activeQueue.length;t++)if(!Ad(wz.getMoves(e.activeQueue[t]),e=>e.learning===!1)){n=t;break}e.activeQueue.splice(n,0,t);let r=Od(e.activeQueue,n+1),i=Id(r,e=>e.synthetic).length;if(i>0){let n=r[i+1];r=Vl(r,i),n&&(r=[...wz.appendExpandedQuizGroup(t,n),...r],e.activeQueue=r)}}}else e.activeQueue.push(...wz.appendExpandedQuizGroup(Bl(e.activeQueue)??null,t))}let a=e.currentQuizGroup.lichessMistake;if(e.currentQuizGroup&&!e.previousQuizGroup&&e.activeOptions?.filter!==`daily`&&qV(),a)u.markGameMistakeReviewed(a),t.onGameMistakeReviewed();else if(r&&!e.currentQuizGroup?.retry){let t=r.map(t=>{let n=e.failedReviewPositionMoves[t.sanPlus];return{side:t.side,epd:t.epd,sanPlus:t.sanPlus,correct:!n,daily:e.activeOptions?.filter===`daily`&&!e.currentQuizGroup?.synthetic}});u.markMovesReviewed(t)}}if(e.currentQuizGroup&&!wz.isPlansQuiz(e.currentQuizGroup)&&(e.previousQuizGroup=e.currentQuizGroup),e.currentQuizGroup=e.activeQueue[0]??null,e.activeQueue=e.activeQueue.slice(1),u.setupCurrentQuizGroup(),!e.currentQuizGroup){let n=r.chessboard.get(e=>e.position),i=r.chessboard.getCurrentEpd(),a=(e.activeOptions?.repertoireId?t.getStandardAndSuperRepertoires()?.[e.activeOptions.repertoireId]:t.superRepertoires?.[e.previousQuizGroup.side])?.positionResponses[i]??[],o=H(a);if(J().flagEnabled(`bonus_moves`)&&(o||YE)&&!t.onboarding.isOnboarding&&!l.isReviewingMistakes()&&!n.gameOver()){e.bonusMove=!0,Q().replaceView(eB,{direction:`right`}),r.chessboard.makeStockfishMove({nodes:YD.STANDARD,pv:3,excludedSans:a.map(e=>e.sanPlus)}).then(e=>{e||u.finishReview()}).catch(e=>{qn(e),u.finishReview()});return}u.finishReview();return}}),finishReview:()=>i(([e,t])=>{if(J().getFrontendSetting(`reviewStyle`).value===o0.EntireLineOnce&&e.originalQueue)for(let t of e.originalQueue)t.synthetic&&r.entireLineOnceSessionSeenEpds.add(t.epd);s(t),t.updateRepertoireStructures(),r.onSessionEnd.callAndClear(),Q().cutView(),Q().pushView(uV);let n=Object.values(e.allReviewPositionMoves).flatMap(Object.values).filter(e=>e.reviewed).length;qB(e.notificationAttribution,n),K(`review.review_complete`,{...KB(e.notificationAttribution),onboarding:t.onboarding.isOnboarding,reviewed_moves:n,filter:e.activeOptions?.filter}),qV()}),setupCurrentQuizGroup:()=>i(([e,t])=>{if(e.quizGroupStage=0,e.incorrectGuessesThisQuizGroup=0,e.failedReviewPositionMoves={},e.completedReviewPositionMoves={},!e.currentQuizGroup){r.chessboard.setTapOptions([]),r.chessboard.setMode(`normal`),r.chessboard.highlightSquare(null);return}e.reviewSide=e.currentQuizGroup.side;let n=wz.getPlans(e.currentQuizGroup);r.chessboard.prepareReviewQuizGroup({side:e.currentQuizGroup.side,plansQuiz:!!n}),n?u.setupPlans():(r.chessboard.playLine(e.currentQuizGroup.line,{animated:!e.viewingLastQuizGroup,onFinished:()=>{}}),eH(e.currentQuizGroup.epd))}),restorePausedQuizGroup:()=>i(([e,t])=>{if(!e.currentQuizGroup)return;e.reviewSide=e.currentQuizGroup.side;let n=wz.getPlans(e.currentQuizGroup);if(r.chessboard.prepareReviewQuizGroup({side:e.currentQuizGroup.side,plansQuiz:!!n}),n){e.quizGroupStage===3?(r.chessboard.setFrozen(!0),r.chessboard.set(t=>{t.showPlans=!0,t.plans=(wz.getCompletedPlans(e.currentQuizGroup,e.planIndex)??[]).map(e=>e.metaPlan)})):u.setupPlans();return}let i=e.currentQuizGroup,a=e.quizGroupStage===3,o=a?Bl(Object.values(e.completedReviewPositionMoves)):void 0,s=o?[...i.line,o.sanPlus]:i.line;r.chessboard.playLine(s,{animated:!1}),r.chessboard.setFrozen(a)}),playCorrectMove:({markAs:e})=>{i(([t])=>{let n=l.getNextReviewPositionMove();if(!n)return;let i=r.chessboard.get(e=>e.position).validateMoves([n.sanPlus])?.[0];i&&(u.markRemaining({markAs:e,completed:!0}),t.completedReviewPositionMoves[n.sanPlus]=n,r.chessboard.setFrozen(!0),r.chessboard.makeMove(i,{animate:!0,sound:`move`}))})},markRemaining:({markAs:e,completed:t})=>i(([n])=>
35{l.getRemainingReviewPositionMoves().forEach(r=>{e===`correct`?n.reviewStats.correct++:H(n.failedReviewPositionMoves)&&e===`incorrect`&&n.reviewStats.incorrect++,e===`incorrect`&&(n.failedReviewPositionMoves[r.sanPlus]=r),e&&(n.allReviewPositionMoves[r.epd][r.sanPlus].failed=e===`incorrect`,n.allReviewPositionMoves[r.epd][r.sanPlus].reviewed=!0),t&&(n.completedReviewPositionMoves[r.sanPlus]=r)})}),giveUp:()=>i(([e,t])=>{if(e.currentQuizGroup&&wz.isPlansQuiz(e.currentQuizGroup)){e.planIndex++,u.setupPlans();return}e.quizGroupStage=l.hasAnnotationsForCurrentQuizGroup()&&e.quizGroupStage!==1?1:2,u.markRemaining({markAs:`incorrect`,completed:!1})},`giveUp`),stopReviewing:()=>i(([e,t])=>{c(e,t)}),pausePracticeSession:()=>i(([e,t])=>{ZV(e,t.browsingState.state.activeRepertoireId)&&r.chessboard.setTapOptions([])}),buildQueue:e=>a(([t,n,r])=>{let i=n.onboarding.isOnboarding;if(Kt(n.repertoires))return[];let a=n.lockedMoves,o=[],s=new Date,c=Y().getStandardAndSuperRepertoires(),l=e.repertoireId?[c[e.repertoireId]]:Object.values(n.superRepertoires);l=wd(l);let u=J().getFrontendSetting(`reviewStyle`),d=[o0.EntireLineEvery,o0.EntireLineOnce].includes(u.value),f=wu([`daily`,`recommended`,`due`,`difficult-due`],e.filter)?n.numMovesDueFromEpd:null;Kl(l,t=>{let n=t.side,r=new Set,c=(l,u,p)=>{if(f?.[t.id]?.[l]===0)return;let m=ru(t.positionResponses[l]??[],e=>!cz(a,n,e));m=jd(m,e=>1-Math.random()*(e.incidence??0));let h=ru(m,e=>!e.isDisabled),g=[...p];if(h?.[0]?.mine){let r=Ad(h,e=>sC.isReviewDue(e.srs,s)),a=Ad(h,e=>sC.isDifficult(e.srs)),c=e.filter===`difficult-due`&&a&&r||e.filter===`recommended`&&r||e.filter===`due`&&r||e.filter===`difficult`&&a||e.filter===`daily`&&r||e.filter===`all`||e.filter===`early`;if(c||d){let r={moves:Kd(h,e=>e.sanPlus).map(t=>({...t,learning:e.forceFirstPractice?!0:!i&&t.srs?.firstReview})),epd:l,line:u,side:n};if(c&&(H(p)||(r.precedingGroups=p),o.push(r)),d&&!H(r.line)){let e={...r,synthetic:!0,moves:mu(r.moves,e=>({...e,learning:void 0}))};g.push(e)}e.includePlans&&h.forEach(e=>{let r=t.plans[e.epdAfter];if(!r)return;let i=new ip(`${e.epdAfter} 0 1`),a=Kz(r,n,i);o.push({plans:[...a],remainingPlans:a,completedPlans:[],line:[...u,e.sanPlus],side:n,epd:l})})}}mu(m,e=>{r.has(e.epdAfter)||(r.add(e.epdAfter),c(e.epdAfter,[...u,e.sanPlus],g))})};c(e.startPosition??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,e.startLine??[],[])});let p=e.maxMoves??Number(J().getFrontendSetting(`recommendedMovesSize`).value);if(e.filter===`daily`&&(p=j6().getRemainingToday(Y().totalMovesDue??0)),(e.filter===`recommended`||e.filter===`daily`)&&(o=jV(o,p,s.getTime())),e.filter===`early`){let t=jd(mu(o,e=>wz.getMoves(e)?.[0].srs?.dueAt))[wV]??`0`,n=Pd(ru(o,e=>{let n=wz.getMoves(e);return n?.[0].srs?.dueAt?n[0].srs?.dueAt<=t:!1}),p),r=mu(n,e=>e.epd);o=e.includePlans?ru(o,e=>r.includes(e.epd)):n}let m=Dl(o,e=>wz.isPlansQuiz(e)).true,h=zz();if(m>h){let e=h/m;o=ru(o,t=>!wz.isPlansQuiz(t)||Math.random()<e)}return o}),buildQueueFromMistakes:e=>i(([t,n])=>{let r=[];return Kl(e,e=>{let t=n.superRepertoires[e.side].positionResponses[e.epd];r.push({moves:t,lichessMistake:AI(e),epd:e.epd,line:mp.fromPgn(e.line),side:e.side})}),r}),inspectCurrentLine:()=>i(([e,t])=>{let n=e.currentQuizGroup;if(!n)return;let r=(wz.getMoves(n)?.length??0)>1,i=[...new Set(wz.getMoves(n)?.flatMap(e=>e.repertoireIds||[])??[])].map(e=>Y().repertoires[e]);if(H(i)&&e.activeOptions?.repertoireId&&t.repertoires&&(i=[t.getStandardAndSuperRepertoires()[e.activeOptions.repertoireId]]),H(i)){qn(Error(`No repertoire found for inspecting current line`),{extra:{options:JSON.stringify(e.activeOptions)}});return}let a=e=>{t.backToOverview(),Q().pushView(PY),t.browsingState.actions.setActiveRepertoire(e.id),t.browsingState.handles.chessboard.playLine(n.line,{animated:!1})};i.length===1?a(i[0]):Q().pushView($,{props:{header:`Select a repertoire`,bodyPadding:!0,children:(()=>{var e=YV(),t=e.firstChild;return N(e,r?`These moves are`:`This move is`,t),e})(),actions:i.map(e=>({onPress:()=>{a(e)},text:e.name,style:`primary`}))}})}),dropPausedSession:()=>i(([e,t])=>{Q().mode!==`review`&&c(e,t)}),updateQueue:e=>i(([t])=>{t.activeQueue=u.buildQueue(e)??[],t.reviewStats.correct=0,t.reviewStats.incorrect=0}),reviewLine:(e,t)=>i(([n,r])=>{let i=r.onboarding.isOnboarding,a=t.side;r.backToOverview();let o=[],s=fp,c=[];
35e.forEach(e=>{let n=t.positionResponses[s],r=su(t.positionResponses[s],t=>t.sanPlus===e);r&&(r.mine&&o.push({moves:(n??[]).map(e=>({...e,learning:!i&&e.srs?.firstReview})),line:[...c],epd:s,side:a}),s=r.epdAfter,c.push(e))}),u.startReview({repertoireId:t.id,customQueue:o,cameFrom:`review_specific_line`})},`reviewLine`)};return r.chessboard.set(e=>{e.delegate={askForPromotionPiece:e=>a(([t])=>{if(!e.promotion)return null;let n=t.currentQuizGroup?wz.getMoves(t.currentQuizGroup)?.[0]:null;if(!n)return null;let i=r.chessboard.get(e=>e.position).validateMoves([n?.sanPlus]);if(!i)return null;let a=i[0];return e.promotion?a.promotion??null:null}),onPositionUpdated:()=>{u.onPositionUpdate()},madeMove:Hi,tappedSquare:e=>i(([t])=>{let n=wz.getRemainingPlans(t.currentQuizGroup,t.planIndex);if(!n)return;let a=n[0],o=wu(a.toSquares,e);o&&r.chessboard.setTapOptions([]),r.chessboard.showMoveFeedback({square:e,result:o?`correct`:`incorrect`,size:o?`large`:`small`},()=>{i(([e])=>{o&&(e.planIndex++,u.setupPlans())})})}),shouldMakeMove:e=>i(([t])=>{let n=r.chessboard.getCurrentEpd();if(n!==t.currentQuizGroup?.epd&&!t.bonusMove)return!1;let a=t.currentQuizGroup?wz.getMoves(t.currentQuizGroup):[],o=su(a,t=>e.san===t.sanPlus),s=Y().onboarding.isOnboarding;if(o){o.learning||t.reviewStats.correct++,s&&K(`onboarding.practice.move`,{result:`correct`,prior_wrong_guesses:t.incorrectGuessesThisQuizGroup}),t.completedReviewPositionMoves[o.sanPlus]=o;let n=Ad(a,e=>Kt(t.completedReviewPositionMoves[e.sanPlus])),c=!n,d=J().getFrontendSetting(`reviewPauseBehavior`),f=t.incorrectGuessesThisQuizGroup>0,p=d.value===d0.Always||d.value===d0.WhenAnnotation&&l.hasAnnotationsForCurrentQuizGroup()||d.value===d0.WhenWrong&&f,m=c&&p,h=c&&!p;return wz.getMoves(t.currentQuizGroup)?.forEach(e=>{t.allReviewPositionMoves[e.epd][e.sanPlus].reviewed=!0}),m&&(t.quizGroupStage=3,r.chessboard.setFrozen(!0)),r.chessboard.showMoveFeedback({square:e.to,result:`correct`},()=>{i(([e,t])=>{n&&r.chessboard.backOne({clear:!0}),h&&u.setupNextQuizGroup()})}),!0}
35let c=a2().stayDuration*2,d=r.chessboard.get(e=>e.position).clone();if(!d.move(e))return!1;let f=dp(d),p=!1,m=()=>{i(([t])=>{r.chessboard.dismissMoveFeedback({square:e.to,delay:500},()=>{i(([e])=>{if(e.bonusMove&&p){u.finishReview();return}for(;r.chessboard.getCurrentEpd()!==n;)r.chessboard.backOne({clear:!0})})})})},h=()=>{i(([e])=>{u.markRemaining({markAs:`incorrect`,completed:!1}),e.incorrectGuessesThisQuizGroup++})},g=tu(Y().getRepertoires({side:t.reviewSide}),e=>!Ad(a,t=>!H(e.positionResponses[t.epdAfter]))),_=t.bonusMove,v=t.reviewSide,y=_?YD.STANDARD:YD.SHALLOW,b=performance.now(),x=e=>{s&&K(`onboarding.practice.move`,{result:e,eval_ms:Math.round(performance.now()-b)})};return(async()=>{r.chessboard.showMoveFeedback({square:e.to,result:`thinking`,progress:.05},()=>{});let t=(t,n)=>JV(()=>GV({chessboard:r.chessboard,epd:t,nodes:y,square:e.to,progressBase:n,progressScale:.5})),[a,o]=await t(n,0),[s,l]=await t(f,.5);if(!s||!a){x(`eval_failed`),h(),r.chessboard.set(e=>{e.moveFeedback.progress=void 0,e.moveFeedback.result=`incorrect`}),_?u.finishReview():m();return}let d=CE({before:a,after:s,side:v})??dC.Good;if(p=_?d===dC.Good:d===dC.Good||d===dC.Inaccuracy,x(p?`alternative`:`incorrect`),i(([t])=>{r.chessboard.set(n=>{if(n.moveFeedback.progress=void 0,!p)RV(IV.failure),n.moveFeedback.result=dC.toFeedback(d);else{RV(IV.success),n.moveFeedback.result=t.bonusMove?`bonus`:`alternative`;let i=r.chessboard.handles.feedbackRefs[e.to];if(t.bonusMove&&i){let e=i.getBoundingClientRect();sB({x:e.left+e.width/2,y:e.top})}}})}),p)g||h(),MV(c).then(()=>{m()});else{h();let e=s.pv;if(!e){qn(Error(`Stockfish did not return a refutation for incorrect review move`)),MV(c).then(()=>{m()});return}let[t]=r.chessboard.get(e=>e.position).clone().validateMoves([e],{sloppy:!0})??[];if(!t){qn(Error(`Stockfish refutation was not legal for incorrect review move`,{cause:{pv:e,epd:r.chessboard.getCurrentEpd()}})),MV(c).then(()=>{m()});return}await MV(s2()),i(([e])=>{r.chessboard.makeMove(t,{animate:!0,sound:`move`}).then(async()=>{m()})})}})(),!0})}}),VF({state:n,actions:u,derived:l,handles:r})};function iH(e,t){return e===`lichess`?`https://lichess.org/${t}`:`https://www.chess.com/game/${t.startsWith(`daily/`)?t:`live/${t}`}`}function aH(e){return e.trim().replace(/ (\S+)$/,`\xA0$1`)}function oH(e){let t=aH(e?.trim()??``),n=[`!`,`?`,`.`];if(t)return Ad(n,e=>t.endsWith(e))?t:`${t}.`}var sH=l(`<div class="relative min-w-0 overflow-hidden px-1">`),cH=l(`<span aria-hidden=true>%`),lH=l(`<div class=tabular-nums><div class="relative min-w-0 overflow-hidden px-1"></div><!>`),uH=e=>{let t=1.6,n=(e.white*100)**t,r=(e.black*100)**t,i=n+r;return e.draw*i,{white:n/i-e.draw/2,black:r/i-e.draw/2,draw:e.draw}},dH=`inline whitespace-nowrap text-[10px] font-bold`,fH=dH,pH=4,mH=(e,t)=>{let n=pH;return t.offsetWidth+n+Math.max(n,pH)<=e.clientWidth},hH=e=>{let[t,n]=o(!1),[r,i]=o(),[a,s]=o(),[c,l]=o(0),u,d=_(()=>GO(e.realFraction));O(()=>{u?.disconnect()}),m(()=>({adjustedFraction:e.adjustedFraction,digits:d(),measure:a(),segment:r(),segmentWidth:c(),showThreshold:e.showThreshold}),({adjustedFraction:e,measure:t,segment:r,showThreshold:i})=>{if(e<=i){n(!1);return}if(!r||!t)return;let a=mH(r,t);n(a)});let f=e=>{i(e),u?.disconnect(),typeof ResizeObserver<`u`&&(u=new ResizeObserver(([t])=>{let n=t?.contentRect.width??e.clientWidth;l(Math.ceil(n))}),u.observe(e))};var p=sH();return I(()=>f,p),N(p,(()=>{var n=A(()=>e.adjustedFraction>e.showThreshold&&!e.hideNumbers);return()=>n()?[(()=>{var t=cH(),n=t.firstChild;return I(()=>e=>{s(e)},t),N(t,d,n),M(()=>F(L(`invisible absolute left-0 top-1/2 -translate-y-1/2 pointer-events-none`,fH,e.textClass)),(e,n)=>{P(t,e,n)}),t})(),x(V,{get class(){return L(fH,e.textClass,`relative`)},get children(){return[A(()=>d()),A(()=>t()&&`%`)]}})]:e.adjustedFraction>e.showThreshold&&!e.hideNumbers})()),M(()=>F(z(B.width(`${e.adjustedFraction*100}%`),e.background,B.alignCenter,B.row,e.justifyEnd?B.justifyEnd:B.justifyStart)),(e,t)=>{w(p,e,t)}),p},gH=e=>{let t=.3,n=_(()=>uC.getTotalGames(e.gameResults)??0),r=_(()=>e.activeSide),i=_(()=>e.hideNumbers??!1),a=_(()=>e.lowConfidence),o=_(()=>{let t={white:e.gameResults.white/n(),black:e.gameResults.black/n(),draw:e.gameResults.draw/n()};return{adjustedPercentages:uH(t),realPercentages:t}}),s=()=>o().adjustedPercentages,c=()=>o().realPercentages,l=()=>({showThreshold:t,hideNumbers:i()});var u=lH(),d=u.firstChild,f=d.nextSibling;return N(u,(()=>{var e=A(()=>r()===`white`);return()=>e()?x(hH,g({get adjustedFraction(){return s().white},get realFraction(){return c().white},get background(){return B.bg(B.gray[92])},get justifyEnd(){return r()===`black`},get textClass(){return a()?`text-gray-60`:`text-gray-21`}},l)):x(hH,g({get adjustedFraction(){return s().black},get realFraction(){return c().black},get background(){return B.bg(B.gray[17])},get justifyEnd(){return r()===`white`},get textClass(){return a()?`text-gray-51`:`text-gray-92`}},l))})(),d),N(d,(()=>{var e=A(()=>s().draw>t&&!i()&&!r());return()=>e()?x(V,{get style(){return z(B.fg(B.gray[80]),B.weightBold,B.fontSize(10))},class:`whitespace-nowrap`,get children(){return GO(c().draw)}}):s().draw>t&&!i()&&!r()})()),N(u,(()=>{var e=A(()=>r()===`white`);return()=>e()?x(hH,g({get adjustedFraction(){return s().black},get realFraction(){return c().black},get background(){return B.bg(B.gray[17])},get justifyEnd(){return r()===`white`},get textClass(){return a()?`text-gray-51`:`text-gray-92`}},l)):x(hH,g({get adjustedFraction(){return s().white},get realFraction(){return c().white},get background(){return B.bg(B.gray[92])},get justifyEnd(){return r()===`black`},get textClass(){return a()?`text-gray-60`:`text-gray-21`}},l))})(),f),M(()=>({e:F(z(B.row,B.fullWidth,B.fullHeight,B.height(18),B.br(2),B.overflowHidden
35)),t:F(z(B.width(`${s().draw*100}%`),B.bg(B.gray[51]),B.center))}),({e,t},n)=>{w(u,e,n?.e),w(d,t,n?.t)}),u},_H=l(`<div>`),vH=l(`<div class="absolute right-0 top-0 h-full text-tertiary bg-current">`),yH=l(`<div class=py-1><div class="relative w-full rounded-[1px] overflow-hidden h-1"><!><!>`),bH=e=>{let t=()=>X().state.activeRepertoireId,n=()=>Y().masteryFromEpd[t()]?.[e.epdAfter]??0,r=N6(),i=()=>r()===`browse`?Y().numLockedFromEpd[t()]?.[e.epdAfter]??0:0,a=()=>r()===`browse`?Y().lockedShareFromEpd[t()]?.[e.epdAfter]??0:0,o=B.gray[40],c=B.learning,l=_(()=>{let e=n();return e>=1?100:e<=0?0:jo(e*100,5,90)});var u=yH(),d=u.firstChild,f=d.firstChild,p=f.nextSibling;return I(()=>e=>{vE({ref:e,content:()=>{let e=`Your mastery for this move (and the moves after it) is ${Math.round(n()*100)}%`,t=i();return t>0?`${e}. ${_L(t,`move`)} here ${t===1?`is`:`are`} locked on the free plan.`:e},maxWidth:240})},u),N(d,x(j,{get when(){return l()>0},get children(){var e=_H();return M(()=>F(z(B.width(`${Math.min(l(),(1-a())*100)}%`),B.bg(c),B.fullHeight)),(t,n)=>{w(e,t,n)}),e}}),f),N(d,x(j,{get when(){return a()>0},get children(){var e=vH();return M(()=>`${a()*100}%`,t=>{s(e,`width`,t)}),e}}),p),M(()=>({e:F(z(B.column,B.fullWidth)),t:F(z(B.bg(o)))}),({e,t},n)=>{w(u,e,n?.e),w(d,t,n?.t)}),u},xH=l(`<div>`),SH=l(`<p>After this move, the computer evaluates the position as <b>equal`),CH=l(`<p>The computer evaluates this move as <b>better for </b> by the equivalent of <b> </b>pawns`),wH=e=>{let t=()=>e.stockfish,n=()=>t()?.eval,r=()=>t()?.mate,i=()=>!Kt(n())&&n()>=0||!Kt(r())&&r()[1]===`white`,a=()=>i()?`white`:`black`,o=()=>{let e=t();return e?DE(e):``};var s=xH();return I(()=>e=>{vE({ref:e,content:()=>{let e=t();if(e){if(e.mate?.[0]===0)return`Checkmate.`;if(o()===`=`)return SH();if(e.mate){let t=e.mate[0],n=t>0?`white`:`black`;return`This position is a forced mate in ${_L(t,`move`)} for ${n}`}if(!Kt(e.eval)){var n=CH(),r=n.firstChild.nextSibling;r.firstChild;var a=r.nextSibling.nextSibling,s=a.firstChild;return N(r,()=>i()?`white`:`black`,null),N(a,()=>o().replace(/[-+]/,``),s),n}}},maxWidth:200})},s),N(s,x(V,{get style(){return z(B.weightHeavy,B.fontSize(10))},get class(){return L(`transition-opacity`,a()===`white`?`text-gray-21`:`text-gray-92`,e.faded?`opacity-80`:`opacity-100`)},get children(){return o()}})),M(()=>({e:F(L(`row px-1 min-w-[30px] h-[18px] items-center justify-center rounded-sm transition-opacity tabular-nums`)),t:F(z(B.bg(i()?B.gray[92]:B.gray[15])))}),({e,t},n)=>{P(s,e,n?.e),w(s,t,n?.t)}),s},TH;(function(e){function t(e,t){let n=new Set,r=new Set,i=[t];for(let t of i)if(!n.has(t)){n.add(t);for(let n of e?.positionResponses[t]??[])ZO(n)&&(n.mine&&r.add(n.id),i.push(n.epdAfter))}return r.size}e.countSavedMovesFromEpd=t,e.isEmpty=e=>Object.keys(e.positionResponses).length===0;function n(e){if(!e)return[];let t=[];for(let n of Object.values(e))t.push(...r(n));return t}e.getAllEnabledRepertoiresMoves=n;function r(e){if(!e)return[];let t=[];for(let n of Object.values(e.positionResponses))for(let e of n)e.isDisabled||t.push(e);return t}e.getAllEnabledRepertoireMoves=r})(TH||={});var EH=l(`<p>`),DH=l(`<div class=py-1><div class="relative w-full rounded-[1px] overflow-hidden h-1"><div>`),OH=e=>{let t=()=>X().state.activeRepertoireId,n=e=>{let n=t();return n?e?.[n]:void 0},r=()=>n(Y().numMovesFromEpd)?.[e()],i=()=>n(Y().expectedNumMovesFromEpd)?.[e()],a=()=>(X().derived.activeRepertoire()?.positionResponses[e()]?.length??0)>0,o=()=>n(Y().repertoireGrades)?.biggestMisses?.[e()],s=_(()=>{let e=Kt(o()),t=r()??0,n=i()??0,s=jo((e=>yM(n>0?e/n:0))(t)*100,5,90);return a()||(s=0,e=!1),{completed:e,progress:s}});return{completed:()=>s().completed,progress:()=>s().progress}},kH=e=>{let{completed:t,progress:n}=OH(()=>e.epdAfter),r=N6(),i=()=>X().state.activeRepertoireId,a=_(()=>e.notRequired?TH.countSavedMovesFromEpd(X().derived.activeRepertoire(),e.epdAfter):0),o=()=>{let t=i();return r()===`build`&&t?Y().numLockedFromEpd[t]?.[e.epdAfter]??0:0},s=()=>t()?100:n(),c=B.gray[40];return x(j,{get when(){return e.notRequired},get fallback(){var e=DH(),r=e.firstChild,i=r.firstChild;return I(()=>e=>{vE({ref:e,content:()=>{let e=o(),r=e>0?`. ${_L(e,`move`)} here ${e===1?`is`:`are`} locked on the free plan`:``;return t()?`You've reached your coverage goal for this move${r}`:n()===0?`You haven't added any responses to this move`:`Your coverage of this move is incomplete${r}`},maxWidth:160})},e),M(()=>({e:F(z(B.column,B.fullWidth)),t:F(z(B.bg(c))),a:F(z(B.width(`${s()}%`),B.bg(B.success),B.fullHeight))}),({e:t,t:n,a},o)=>{w(e,t,o?.e),w(r,n,o?.t),w(i,a,o?.a)}),e},get children(){var e=EH();return N(e,(()=>{var e=A(()=>a()>0);return()=>e()?`${a()} saved`:`Not required`})()),M(()=>F(L(`text-xs text-right whitespace-nowrap`,a()>0?`text-gray-84`:`text-gray-60`)),(t,n)=>{P(e,t,n)}),e}})},AH=(e,t)=>!t&&e.mobileAlign?e.mobileAlign:e.align,jH={move:`left`,annotation:`left`,masters:`center`,eval:`center`,"peer-results":`center`,coverage:`center`,mastery:`center`,covered:`center`,action:`center`,"expected-in":`right`,"due-in":`right`},MH=e=>jH[e],NH=e=>e.myTurn===!1?`Opponent's move`:e.showFirstWhiteMoveHeader?`Your first move`:e.showChoosingMoveHeader?`Potential moves`:(e.savedMoveCount??0)>
350?(e.savedMoveCount??0)>1?`Your saved moves`:`Your saved move`:`Move`,PH=`gap-x-1 md:gap-x-4`,FH=`gap-x-2 md:gap-x-4`,IH=`gap-x-3 md:gap-x-4`,LH=l(`<div class="tabular-nums whitespace-nowrap">`),RH=l(`<p>0%`),zH=l(`<p>N/A`),BH=l(`<div><div class="text-xs md:text-sm"><div><!><p class="text-gray-88 font-bold leading-5 tracking-wider"></p><!>`),VH=l(`<div class="flex min-w-0 flex-col text-xs leading-5"><p class="font-semibold text-primary leading-5 break-words">`),HH=l(`<div><p>`),UH=l(`<div class="flex min-w-0 w-full flex-col"><!><!><!>`),WH=l(`<div>`),GH=l(`<p>`),KH=l(`<b>`),qH=l(`<b>1 in `),JH=l(`<b>1`),YH=l(`<div class="text-xs font-medium"><p></p><p>Peers`),XH=l(`<p><b></b> of <!> choose this move`),ZH=l(`<div class="px-1 min-w-[30px] tabular-nums">`),QH=l(`<p class=text-xs>Not required`),$H=l(`<p class="text-gray-60 text-xs text-right whitespace-nowrap">Excluded`),eU=l(`<div class="w-full min-w-0">`),tU=l(`<div><p class=text-left><span class="block pb-2">When this is played at your level:</span>â¢<span class=pr-2></span>White wins <b></b> of games <br>â¢<span class=pr-2></span>Black wins <b></b> of games <br>â¢<span class=pr-2></span><b></b> of games are drawn</p><p class="pt-2 text-left"><!><!> games<!>`),nU=l(`<i class="fa fa-warning pr-1 text-warning">`),rU=l(`<p class="text-gray-60 text-xs whitespace-nowrap">Excluded`),iU=e=>{if(e.hasAnnotation||e.hasOpeningName)return`mt-1.5`},aU=e=>e.hasTags||e.hasAnnotation||e.hasOpeningName?`mt-2`:`mt-3`,oU;(function(e){e.getStockfishEval=e=>{let t=e.tableResponse().courseMove;if(t){let n=e.courseStats();if(!n)return;let r=n[t.epdAfter]?.stockfishEval;return Kt(r)?void 0:new OE(r)}return e.suggestedMove()?.stockfish??e.tableResponse()?.stockfishMove?.stockfishEval},e.getResultsDistribution=e=>{let t=e.tableResponse().courseMove;if(t){let n=e.courseStats();return n?n[t.epdAfter]?.results:void 0}return e.suggestedMove()?.results},e.getGamesBefore=e=>{let t=e.tableResponse().courseMove;if(t){let n=e.courseStats();return n?uC.getTotalGames(n[t.epd]?.results)??null:0}let n=e.positionReport()?.results;return n?uC.getTotalGames(n):null},e.getIncidence=e=>{let t=e.tableResponse().courseMove;if(t){let n=e.courseStats();return n?n[t.epdAfter]?.incidence??0:null}return e.tableResponse().suggestedMove?.incidence??e.tableResponse().repertoireMove?.incidence??null},e.getPlayRate=(e,t)=>{let n=e.tableResponse().courseMove,r=e.courseStats();if(n&&r){let e=t.usePeerRates?`masterResults`:`results`;return uC.getPlayRate(r[n.epd][e],r[n.epdAfter][e])}return e.positionReport()&&UO.getPlayRate(e.tableResponse(),e.positionReport(),{usePeerRates:t.usePeerRates})}})(oU||={});var sU=()=>z(B.fg(B.gray[84]),B.weightSemiBold,B.fontSize(12),B.lineHeight(`1.25rem`),{"font-variant-numeric":`tabular-nums`}),cU=()=>z(sU(),B.fg(B.gray[60])),lU=`text-[10px] md:text-xs`,uU=()=>z(B.fg(B.gray[84]),B.weightSemiBold,B.lineHeight(`1.25rem`),{"font-variant-numeric":`tabular-nums`}),dU=()=>z(uU(),B.fg(B.gray[60])),fU=e=>x(j,{get when(){return ON()},get fallback(){var t=LH();return N(t,x(V,{get class(){return L(dH,`md:text-xs md:font-semibold`,e.muted?`text-gray-60`:`text-gray-84`)},get children(){return e.children}})),M(()=>F(z(B.row,B.alignCenter,B.height(18))),(e,n)=>{w(t,e,n)}),t},get children(){return x(V,{get class(){return L(lU,`whitespace-nowrap break-normal leading-5`)},get style(){return z(uU(),e.muted&&B.fg(B.gray[60]))},get children(){return e.children}})}}),pU=e=>{let t=()=>e.usePeerRates,n=N6(),r=()=>Y().getRepertoireThreshold(e.repertoire?.id??null),i=()=>(()=>{var e=RH();return M(()=>F(cU()),(t,n)=>{w(e,t,n)}),e})(),a=()=>(()=>{var e=zH();return M(()=>F(cU()),(t,n)=>{w(e,t,n)}),e})(),o=[{kind:`move`,label:``,align:MH(`move`),alignVertical:`top`,widthMode:`content`,render:e=>{let t=()=>Math.floor(e.line().length/2)+1;var n=BH(),r=n.firstChild.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling;return N(r,x(V,{class:`text-gray-68 font-semibold leading-5 tracking-wider`,get children(){return[t,A(()=>e.side()===`black`?`â¦`:`.`)]}}),i),N(r,x(R,{width:4}),a),N(a,(()=>{var t=A(()=>!!(e.locked?.()||e.tableResponse().reviewInfo?.hideSan));return()=>t()?`_`:UO.getSan(e.tableResponse())})()),N(r,(()=>{var t=A(()=>
35!(e.locked?.()||Kt(e.tableResponse().moveRating)));return()=>t()?[x(R,{width:4}),A(()=>TE(e.tableResponse().moveRating))]:!e.locked?.()&&!Kt(e.tableResponse().moveRating)})(),o),M(()=>({e:F(z(B.row,B.alignCenter)),t:F(L(`row items-center whitespace-nowrap`))}),({e,t},i)=>{w(n,e,i?.e),P(r,t,i?.t)}),n}},{kind:`annotation`,label:``,align:MH(`annotation`),alignVertical:`top`,widthMode:`flex`,render:e=>{let t=()=>!!e.annotation(),n=_(()=>e.tagsRow()),r=()=>({hasOpeningName:!!e.openingName(),hasAnnotation:t(),hasTags:!!n()});var i=UH(),a=i.firstChild,o=a.nextSibling,s=o.nextSibling;return N(i,x(j,{get when(){return e.openingName()},get children(){var t=VH(),n=t.firstChild;return N(n,()=>e.openingName()),t}}),a),N(i,x(j,{get when(){return t()},get children(){var t=HH(),n=t.firstChild;return N(n,()=>e.annotation()),M(()=>({e:F(L(e.openingName()&&`mt-1`,`flex min-w-0 flex-col text-[11px] md:text-xs leading-5`)),t:F(L(`text-secondary font-normal leading-5 break-words transition-opacity`,e.hideAnnotations()?`opacity-0`:`opacity-100`))}),({e,t:r},i)=>{P(t,e,i?.e),P(n,r,i?.t)}),t}}),o),N(i,x(j,{get when(){return n()},children:e=>(()=>{var t=WH();return N(t,e),M(()=>F(iU(r())),(e,n)=>{P(t,e,n)}),t})()}),s),i}}],s=[];if(n()===`browse`?e.course||(s.push(mU()),s.push(hU())):n()!==`review`&&(!e.myTurn&&!e.allLocalStockfish&&s.push({kind:`expected-in`,label:`Expected in`,mobileLabel:`Seen every`,align:MH(`expected-in`),widthMode:`content`,render:e=>{let t=oU.getIncidence(e),n=Math.round(1/(t??1e-4)),i=(t??0)<r(),a=!1,o=!1;n>=1e3&&(o=!0),n>=1e4&&(a=!0);let s=UO.getSan(e.tableResponse());var c=LH();return I(()=>t=>{vE({ref:t,content:()=>(()=>{var t=GH();return N(t,a?`You should expect to see this move in less than 1 in 10,000 games.`:[`You'll see the position after `,(()=>{var e=KH();return N(e,s),e})(),` in`,` `,(()=>{var e=qH();return e.firstChild,N(e,()=>n.toLocaleString(),null),e})(),` games as `,A(()=>oC.flip(e.side()))]),t})(),maxWidth:200})},c),N(c,x(V,{get class(){return L(lU,`whitespace-nowrap break-normal`)},get style(){return z(uU(),i&&z(B.fg(B.gray[54])))},get children(){return a?`Very rare`:ON()?[(()=>{var e=KH();return N(e,()=>n.toLocaleString()),e})(),o?``:` games`]:[JH(),` in `,(()=>{var e=KH();return N(e,()=>n.toLocaleString()),e})(),` `,o?``:`games`]}})),c}}),e.myTurn&&!e.allLocalStockfish&&s.push({kind:`masters`,label:t?.()?`Peers`:`Masters`,mobileLabel:t?.()?`Peers`:`GMs`,align:MH(`masters`),mobileAlign:`right`,widthMode:`content`,sizer:()=>(()=>{var e=YH(),t=e.firstChild;return N(t,()=>ON()?`GMs`:`Masters`),e})(),render:e=>{let n=oU.getPlayRate(e,{usePeerRates:t?.()??!1});var r=WH();return I(()=>e=>{n&&vE({ref:e,content:()=>(()=>{var e=XH(),r=e.firstChild,i=r.nextSibling.nextSibling;return i.nextSibling,N(r,()=>WO(n)),N(e,()=>t?.()?`players in your rating range`:`masters`,i),e})(),maxWidth:200})},r),N(r,x(j,{when:n,get fallback(){return x(fU,{muted:!0,children:`N/A`})},get children(){return x(j,{get when(){return!KO(n)},get fallback(){return x(fU,{muted:!0,children:`0%`})},get children(){return x(fU,{get children(){return WO(n)}})}})}})),r}}),(e.myTurn||e.allLocalStockfish)&&s.push({kind:`eval`,label:`Eval`,align:MH(`eval`),widthMode:`content`,sizer:()=>(()=>{var e=ZH();return N(e,x(V,{get style(){return z(B.weightHeavy,B.fontSize(10))},children:`+0.3`})),e})(),render:e=>{let t=()=>oU.getStockfishEval(e);return x(j,{get when(){return t()},get children(){return x(wH,{get stockfish(){return t()},get thinking(){return t().thinking},get faded(){return UO.getStockfishEvalSource(e.tableResponse())===`local`}})}})}}),!e.myTurn&&!e.course&&s.push({kind:`coverage`,label:`Completion`,align:`right`,class:`justify-center`,widthMode:`content`,sizer:()=>QH(),render:e=>e.tableResponse().repertoireMove?.isExcluded?$H():x(kH,{get epdAfter(){return UO.getEpdAfter(e.tableResponse())},get notRequired(){return A(()=>n()===`build`)()&&(e.tableResponse().suggestedMove?.needed??e.tableResponse().repertoireMove?.needed)===!1}})}),e.myTurn&&!e.allLocalStockfish&&s.push({kind:`peer-results`,label:`Peer results`,align:MH(`peer-results`),widthMode:`heading`,desktopFixedWidthPx:80,render:e=>{if(!e.suggestedMove()&&!e.tableResponse().courseMove)return a();if(!e.suggestedMove()?.results&&!e.tableResponse().courseMove)return i();let t=oU.getResultsDistribution(e);return x(j,{when:t,get children(){var n=eU();return I(()=>n=>{vE({ref:n,content:()=>(()=>{var n=tU(),r=n.firstChild,i=r.firstChild.nextSibling.nextSibling.nextSibling.nextSibling,a=i.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling,o=a.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling,s=r.nextSibling,c=s.firstChild,l=c.nextSibling,u=l.nextSibling,d=u.nextSibling;return N(i,()=>WO(uC.getWinRate(t,`white`))),N(a,()=>WO(uC.getWinRate(t,`black`))),N(o,()=>WO(1-uC.getWinRate(t,`white`)-uC.getWinRate(t,`black`))),N(s,(()=>{var t=A(()=>!!e.tableResponse().lowConfidence);return()=>t()?nU():e.tableResponse().lowConfidence})(),c),N(s,()=>e.tableResponse().lowConfidence&&`Small sample size (`,l),N(s,()=>
35uC.getTotalGames(t)?.toLocaleString(),u),N(s,()=>e.tableResponse().lowConfidence&&`)`,d),n})(),maxWidth:240})},n),N(n,x(gH,{get lowConfidence(){return!!e.tableResponse().lowConfidence},get activeSide(){return e.side()},gameResults:t})),n}})}})),e.extraStatColumns?.length&&s.push(...e.extraStatColumns),e.lockedOnly)return{primaryColumns:o,statColumns:[]};for(let e of s){let t=e.render;e.render=(e,n)=>e.locked?.()?null:t(e,n)}return{primaryColumns:o,statColumns:s}},mU=()=>({kind:`due-in`,label:`Due in`,align:MH(`due-in`),widthMode:`content`,render:e=>{if(!lk(e.tableResponse()))return null;let t=e.tableResponse().reviewStatus,n=t.due>0,r=eV({date:t.earliestDue,numDue:t.due});return r?x(V,{get style(){return n?uU():dU()},get class(){return L(lU,`leading-5 tabular-nums font-semibold whitespace-nowrap`,n&&`text-secondary`)},children:r}):null}}),hU=()=>({kind:`mastery`,label:`Mastery`,align:MH(`mastery`),widthMode:`heading`,render:e=>{let t=e.tableResponse()?.repertoireMove?.isDisabled,n=UO.getEpdAfter(e.tableResponse());return t||!n?null:e.tableResponse().repertoireMove?.isExcluded?rU():x(bH,{epdAfter:n})}}),gU=e=>{let{matchCount:t,totalCount:n}=e;return t==null||n==null||n<3||t<n-1?null:{matchCount:t,totalCount:n}},_U=({matchCount:e,totalCount:t})=>`You play this move in ${e}/${t} similar positions`,vU=l(`<i class="fas fa-circle-notch fa-spin">`),yU=l(`<div><div><p>/500</p></div><div><textarea placeholder="ex. "Intending Bg5 after d4"">`),bU=e=>{let[t,n]=o(!1),[r,i]=o(!1),[a,s]=o(e.annotation()),c=null,l=Rd(t=>{i(!0),e.onUpdate(t),c&&=(window.clearTimeout(c),null),c=window.setTimeout(()=>{i(!1)},400)},400,{leading:!0});var u=yU(),d=u.firstChild,f=d.firstChild,p=f.firstChild,m=d.nextSibling,h=m.firstChild;return N(d,x(eR,{get open(){return r()},get children(){return x(V,{get style(){return z(B.fg(B.gray[60]))},get children(){return vU()}})}}),f),N(f,()=>a()?.length??0,p),h._$$input=e=>{s(e.target.value),e.target.value.length<500&&l(e.target.value)},h.addEventListener(`blur`,()=>{n(!1)}),h.addEventListener(`focus`,()=>{n(!0)}),M(()=>({e:F(z(B.grow,B.relative,B.fullWidth)),t:F(z(B.absolute,B.bottom(12),B.zIndex(100),B.right(12),B.left(12),B.row,B.justifyBetween,B.opacity(t()?100:0))),a:F(z(a()?.length>500&&B.weightBold,B.fg(a()?.length>500?B.danger:B.gray[60]))),o:F(z(B.bg(B.gray[32]),B.py(12),B.grow)),i:a()??``,n:F(z({fontFamily:`Inter`},B.grow,B.border(`none`),B.br(0),B.px(12),B.pb(24),B.bg(B.gray[32]),B.fg(B.gray[92]),B.lineHeight(1.5),B.keyedProp(`resize`)(`none`))),s:F(L(`placeholder-gray-60`))}),({e,t,a:n,o:r,i,n:a,s:o},s)=>{w(u,e,s?.e),w(d,t,s?.t),w(f,n,s?.a),w(m,r,s?.o),h.value=i??``,w(h,a,s?.n),P(h,o,s?.s)}),u};ae([`input`]);var xU=l(`<div><div class="col items-center"><div class="min-w-80 padding-sidebar w-full self-stretch"><div><form class="col gap-8"><input type=submit hidden>`),SU=xF({annotation:iF().defined().label(`Note`).max(500)}),CU=e=>{let t=()=>Y().getChessboard(),n=()=>Y().getAnnotation(dV.toKey({epd:e.epd,san:e.san}))?.text,r=t=>{let r=t.annotation.trim();if(!r&&!n()){Q().backOne();return}Y().uploadMoveAnnotation({epd:e.epd,san:e.san,text:r}).then(()=>{Q().backOne()})},{form:i,isSubmitting:a,createSubmitHandler:o,data:s,setFields:c,errors:l}=OF({initialValues:{annotation:n()??``},onSubmit:r,extend:DF({schema:SU})});ze(()=>{t().makeMove(e.san,{animate:!0,sound:`move`})}),ZI(()=>{t().backOne()});let u=o({onSubmit:r});return x($,{actions:[{onPress:()=>{u()},text:`Save note`,style:`focus`}],header:`What are the ideas behind this move?`,get loading(){return a()},get children(){var e=xU(),t=e.firstChild.firstChild.firstChild,n=t.firstChild,r=n.firstChild;return I(()=>i,n),N(n,x(uR,{get errors(){return l()},data:s,setFields:c,inputClass:`min-h-[100px]`,maxLength:500,name:`annotation`,placeholder:`e.g. Controlling the center and preparing to develop the queenside bishop`}),r),M(()=>({e:F(L(a()&&`opacity-0`)),t:F(z(B.br(4),B.px(0),B.py(0)))}),({e:n,t:r},i)=>{P(e,n,i?.e),w(t,r,i?.t)}),e}})},wU=l(`<div class=shrink-0><svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 45 49.04"width=100% height=100%>
35<path d=M41.94,38.98l-16.5,9.28c-1.83,1.03-4.06,1.03-5.89,0L3.06,38.98c-1.88-1.07-3.06-3.07-3.06-5.23V15.35c0-2.16,1.16-4.15,3.04-5.22l5.34-3.03,21.58,12.14c.95.53,1.53,1.53,1.53,2.62v7.4c0,1.14,1.24,1.87,2.23,1.3l3.73-2.1c.95-.53,1.53-1.53,1.53-2.62v-8.49c0-1.09-.58-2.08-1.53-2.62L16.11,2.72l3.43-1.94c1.84-1.04,4.09-1.04,5.92,0l16.5,9.35c1.88,1.07,3.05,3.06,3.05,5.22v18.4c0,2.17-1.17,4.16-3.06,5.23Z></path><path d=M31.49,21.86v7.4c0,1.14,1.24,1.87,2.23,1.3l3.73-2.1c.95-.53,1.53-1.53,1.53-2.62v-8.49c0-1.09-.58-2.08-1.53-2.62L16.11,2.72l-7.73,4.38,21.58,12.14c.95.53,1.53,1.53,1.53,2.62Z>`),TU=e=>{let t=()=>e.size||12,n=()=>e.side===`white`?B.gray[92]:B.gray[27],r=B.gray[60],i=()=>e.boxColor??n(),a=()=>e.stripeColor??r;var o=wU(),s=o.firstChild.firstChild,c=s.nextSibling;return M(()=>({e:F(z(B.size(t()),B.flexShrink(0))),t:i(),a:a()}),({e,t,a:n},r)=>{w(o,e,r?.e),t!==r?.t&&C(s,`fill`,t),n!==r?.a&&C(c,`fill`,n)}),o},EU=l(`<p>`),DU=l(`<i>`),OU=l(`<div><!><!><!>`),kU=e=>{var t=OU(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return N(t,x(j,{get when(){return typeof e.text==`string`},get fallback(){return e.text},get children(){var t=EU();return N(t,()=>e.text),M(()=>F(L(e.trim&&`glyph-trim-both`)),(e,n)=>{P(t,e,n)}),t}}),n),N(t,x(R,{width:8}),r),N(t,x(j,{get when(){return typeof e.icon==`string`},get fallback(){return e.icon},get children(){var t=DU();return M(()=>({e:F(L(`icon-box`,e.trim&&`h-0 items-center`,e.icon)),t:F(e.iconStyle)}),({e,t:n},r)=>{P(t,e,r?.e),w(t,n,r?.t)}),t}}),i),M(()=>F(L(`row items-center`,e.class)),(e,n)=>{P(t,e,n)}),t},AU=l(`<p><span class="h-5 flex flex-row items-center justify-center shrink-0"><i></i></span><!><!>`),jU={autofilled:{text:`Autofilled`,icon:`fa fa-wand-magic-sparkles text-primary`,styleIcon:z(B.fontSize(12))},bestMove:{text:`Clear best move`,icon:`fa-solid fa-trophy`,styleIcon:z(B.fg(B.learning),B.fontSize(14))},hiddenGem:{text:`Hidden gem`,icon:`fa-kit fa-hidden-gem rainbow-shine`,styleIcon:z(B.fontSize(14),{"--shine-color":B.blue[75]})},sharpest:{text:`Sharpest line`,icon:`fas fa-swords text-primary`,styleIcon:z(B.duotone(B.colors.gray[76],B.colors.gray[96]),B.fontSize(14))},consistent:{text:`Consistent with your other moves`,icon:`fa-regular fa-diagram-venn text-purple-65`,styleIcon:z(B.fontSize(14))},transposes:{text:`Transposes to your repertoire`,icon:`fa-solid fa-merge`,styleIcon:z(B.fg(B.success),B.fontSize(14),B.rotate(-90))},firstPractice:{text:`First practice`,icon:`fa fa-graduation-cap`,styleIcon:z(B.fg(B.orange[70]),B.fontSize(14))},rareDangerous:{text:`Rare but dangerous`,icon:`fa fa-radiation`,styleIcon:z(B.fg(B.danger),B.fontSize(18))},commonMistake:{text:`Common mistake`,icon:`fa fa-person-falling text-primary`,styleIcon:z(B.fontSize(14))}},MU=e=>{var t=AU(),n=t.firstChild,r=n.firstChild,i=n.nextSibling,a=i.nextSibling;return I(()=>t=>{let n=e.tip;n&&vE({ref:t,content:n,maxWidth:e.tipWidth??200})},t),N(t,x(R,{width:8}),i),N(t,()=>e.text,a),M(()=>({e:F(z(B.fontSize(10),B.weightBold,B.row,B.alignStart,e.style)),t:F(L(`leading-5`,e.class??`text-gray-84`)),a:F(e.icon),o:F(z(e.styleIcon))}),({e,t:n,a:i,o:a},o)=>{w(t,e,o?.e),P(t,n,o?.t),P(r,i,o?.a),w(r,a,o?.o)}),t},NU=l(`<div>`),PU=function(e){let[t,n]=o(!1);return x($,{bodyPadding:!0,header:`Are you sure?`,get loading(){return t()},get actions(){return[{onPress:()=>{t()||(n(!0),Z(t=>{t.repertoireState.deleteMove(e.move,e.repertoireId).then(()=>{Z(e=>{Q().backOne()})})}))},style:`primary`,text:`Yes I'm sure, delete ${e.hideMove?`this move`:e.move.sanPlus}`},{onPress:()=>{Z(e=>{Q().backOne()})},style:`primary`,text:`No, I've changed my mind`}]},get children(){var e=NU();return N(e,x(V,{get style(){return z()},children:`This will also delete any moves past this one. This cannot be undone.`})),e}})},FU=l(`<div><p class=body-text>`),IU=l(`<div>`),LU=e=>{let[t,n]=o(!1),r=()=>Q().getActiveChessboard().get(e=>e).moveLog,i=()=>X().state.activeRepertoireId;return O(()=>{Z(e=>{e.repertoireState.browsingState.handles.chessboard.backOne()})}),x($,{get loading(){return t()},get header(){return A(()=>!!e.disable)()?`Disable ${e.move.sanPlus} and the moves after it?`:`Re-enable ${e.move.sanPlus}?`},bodyPadding:!0,get actions(){return[{text:e.disable?`Yes, disable these moves`:`Yes, re-enable`,style:`primary`,onPress:()=>{n(!0),Z(t=>{t.repertoireState.toggleMove(e.move,e.disable,r(),i()).then(()=>{Z(e=>{Q().backOne()})})})}},{text:`No, I've changed my mind`,style:`primary`,onPress:()=>{Z(e=>{Q().backOne()})}}]},get children(){var t=FU(),n=t.firstChild;return N(n,(()=>{var t=A(()=>!!e.disable);return()=>t()?[`This means that:`,(()=>{var e=IU();return N(e,()=>
35[`These moves won't appear in practice`,`They won't count towards your coverage goal`].map(e=>x(XL,{children:e}))),M(()=>F(z(B.gridColumn({gap:8}),B.pt(12))),(t,n)=>{w(e,t,n)}),e})()]:`This move and the moves after it will start to show up for review again.`})()),t}})},RU=l(`<button>`),zU=e=>{var t=RU();return pe(t,[{type:`button`},e,{get class(){return e.class},get style(){return z(!e.disabled&&B.clickable,e.style??{})},onClick:t=>{e.onPress?.(t)}}],!1),t},BU=e=>{let t=()=>e.each().length;return x(b,{get each(){return e.each()},children:(n,r)=>{let i=()=>n;return[A(()=>e.children(i,r)),A(()=>A(()=>r()!==t()-1)()?e.separator(i,r,()=>e.each()[r()+1]):null)]}})},VU=l(`<div><span>`),HU=l(`<div><!><div class=contents></div><div class="h-px w-full"></div><!>`),UU=l(`<div><!><!><!>`),WU=l(`<div class="h-4 lg:h-6">`),GU=l(`<div>`),KU=l(`<div class="text-primary text-base font-bold min-w-0">`),qU=l(`<div class="absolute right-0 top-1/2 -translate-y-1/2">`),JU=l(`<div><span class="whitespace-nowrap glyph-trim-both">`),YU=l(`<div class="h-px w-full">`),XU=l(`<div><div aria-hidden=true></div><!><!><!><!><!>`),ZU=l(`<i>`),QU=l(`<div class="relative z-1 min-w-0">`),$U=l(`<div class="relative z-1">`),eW=e=>{switch(e){case`left`:return`text-start items-start`;case`center`:return`text-center justify-center items-center`;case`right`:return`text-end items-end`}},tW=e=>{switch(e){case`left`:return`text-start justify-center items-start`;case`center`:return`text-center justify-center items-center`;case`right`:return`text-end justify-center items-end`}},nW=e=>{switch(e){case`top`:return`self-start`;case`center`:return`self-center`;case`bottom`:return`self-end`}},rW=`gap-x-1 xs:gap-x-2 xs:gap-x-4`,iW=()=>z({"grid-column":`1 / -1`,"grid-template-columns":`subgrid`}),aW=()=>z({"grid-column":`1 / -1`,"margin-left":`calc(var(--sidebar-table-padding) * -1)`,width:`calc(100% + (var(--sidebar-table-padding) * 2))`}),oW=()=>z({left:`calc(var(--sidebar-table-padding) * -1)`,right:`calc(var(--sidebar-table-padding) * -1)`}),sW=(...e)=>{let t=e.filter(e=>e!==void 0);if(t.some(e=>e===`auto`))return`minmax(0, 1fr)`;let n=t.filter(e=>typeof e==`number`),r=Math.max(0,...n,...t.filter(e=>Array.isArray(e)).map(e=>e[1]));return t.some(e=>e===`fit-content`||Array.isArray(e))?r>0?`minmax(${r}px, max-content)`:`max-content`:n.length>0?`${Math.max(...n)}px`:`max-content`},cW=e=>e+1,lW=(e,t=1)=>z({"grid-column":`${e} / span ${t}`}),uW=e=>{let[t,n]=o(!1),r=_(()=>e.rows.length),i=_(()=>e.maxRows===null?r():e.maxRows??5),a=_(()=>r()>i()),s=_(()=>t()?e.rows:Pd(e.rows,i())),c=_(()=>t()?`Hide`:`Show more`),l=()=>(e.renderBelowIndentLeftColumns??0)>0,u=()=>e.columnsGapClass??rW,d=()=>e.gridGapClass??`gap-x-2 xs:gap-x-3`,f=t=>e.isClickable?.(t)??!0,p=_(()=>Math.max(e.rightColumns.length,e.overrideRightColumns?.length??0)),m=_(()=>{let t=e.leftColumns.map(e=>sW(e.width)),n=Array.from({length:p()},(t,n)=>sW(e.rightColumns[n]?.width,e.overrideRightColumns?.[n]?.width)),r=e.isSelected?[`max-content`]:[];return[...t,...n,...r].join(` `)}),h=_(()=>z({"grid-template-columns":m()})),g=t=>e.leftColumns.length+t+1,v=()=>e.leftColumns.length+p()+1,y=e=>e.width===`auto`?z(B.minWidth(0)):z({"min-width":`max-content`}),S=(e,t)=>{switch(e){case`hidden`:return``;case`spacer`:return`opacity-0 select-none pointer-events-none`;case`primary`:return`text-primary text-sm font-medium`;case`standard`:return L(`text-xs font-medium`,t?`text-primary`:`text-tertiary`)}},C=_(()=>{let t=e.leftColumns;if(!t?.length)return null;let n=t[0],r=n.labelColSpan??1;return r<=1||n.labelStyle===`hidden`?null:{label:n.label,colSpan:r,column:n}}),T=e=>{let t=_(()=>e.column()),n=_(()=>t().sort!==void 0),r=_(()=>t().onSort!==void 0),i=()=>{let e=t();e.onSort&&!n()&&e.onSort(`desc`)};var a=VU(),o=a.firstChild;return a._$$click=i,N(o,()=>t().label),M(()=>({e:F(L(`shrink-0 flex relative w-full min-w-0`,S(t().labelStyle??`standard`,n()),tW(t().labelAlign??t().align??e.side),r()&&`cursor-pointer select-none`,rt&&`min-h-0!`,t().labelStyle===`hidden`&&`hidden`,e.hidden&&`opacity-0 pointer-events-none`,t().class)),t:F(z(lW(e.columnStart),y(t(
35)))),a:F(L(`glyph-trim-both`,t().width===`fit-content`?`whitespace-nowrap`:`w-full`))}),({e,t,a:n},r)=>{P(a,e,r?.e),w(a,t,r?.t),P(o,n,r?.a)}),a};var E=HU(),D=E.firstChild,ee=D.nextSibling,te=ee.nextSibling,O=te.nextSibling;return N(E,(()=>{var t=A(()=>!e.hideAllLabels);return()=>t()?[(()=>{var t=UU(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return N(t,(()=>{var t=A(()=>!!e.title);return()=>t()?(()=>{var t=KU();return N(t,()=>e.title),M(()=>F(lW(cW(0),e.leftColumns.length)),(e,n)=>{w(t,e,n)}),t})():null})(),n),N(t,(()=>{var t=A(()=>!!e.leftColumns);return()=>t()?x(j,{get when(){return C()},get fallback(){return x(b,{get each(){return e.leftColumns},keyed:!1,children:(e,t)=>x(T,{column:e,index:t,get columnStart(){return cW(t)},side:`left`})})},children:t=>(()=>{var n=JU(),r=n.firstChild;return N(r,()=>t().label),N(n,x(j,{get when(){return A(()=>!!e.headerRight)()?H(e.rightColumns):e.headerRight},get children(){var t=qU();return N(t,()=>e.headerRight),t}}),null),M(()=>({e:F(L(`shrink-0 flex relative w-full min-w-0`,S(t().column.labelStyle??`standard`),tW(t().column.labelAlign??t().column.align??`left`),t().column.class,rt&&`min-h-0!`)),t:F(lW(cW(0),t().colSpan))}),({e,t},r)=>{P(n,e,r?.e),w(n,t,r?.t)}),n})()}):null})(),r),N(t,(()=>{var t=A(()=>!!e.rightColumns);return()=>t()?(()=>{var t=GU();return N(t,x(b,{get each(){return e.rightColumns},keyed:!1,children:(t,n)=>x(T,{column:t,index:n,get columnStart(){return g(n)},side:`right`,get hidden(){return!H(e.overrideRightColumns)}})})),M(()=>F(L(`contents transition-opacity cursor-default`)),(e,n)=>{P(t,e,n)}),t})():null})(),i),M(()=>({e:F(L(`grid w-full`,!e.title&&(rt?`pb-4`:`pb-3`))),t:F(iW())}),({e,t:n},r)=>{P(t,e,r?.e),w(t,n,r?.t)}),t})(),x(j,{get when(){return e.title},get children(){return[(()=>{var e=WU();return M(()=>F(z({"grid-column":`1 / -1`})),(t,n)=>{w(e,t,n)}),e})(),(()=>{var e=GU();return N(e,x(R,{height:12})),M(()=>F(z({"grid-column":`1 / -1`})),(t,n)=>{w(e,t,n)}),e})()]}})]:null})(),D),N(E,(()=>{var t=A(()=>!e.hideTopBorder);return()=>t()?(()=>{var e=YU();return M(()=>F(z(aW(),B.bg(B.colors.sidebarBorder))),(t,n)=>{w(e,t,n)}),e})():null})(),ee),se(ee,`mouseleave`,e.onBlurTable),N(ee,x(BU,{each:s,separator:()=>(()=>{var e=YU();return M(()=>F(z(aW(),B.bg(B.colors.sidebarBorder))),(t,n)=>{w(e,t,n)}),e})(),children:(t,n)=>{let{hoveringProps:r,hoveringRef:i}=Oz(()=>{e.onHover?.(t())},()=>{e.onBlur?.(t())});var a=XU(),o=a.firstChild,s=o.nextSibling,c=s.nextSibling,u=c.nextSibling,d=u.nextSibling,p=d.nextSibling;return I(()=>i,a),pe(a,[{get class(){return L(`relative isolate w-full rounded-sm py-3 transition-colors group`,`grid`,l()&&`items-start`,f(t())&&`cursor-pointer`,e.isFaded?.(t())?`opacity-50`:null,e.class)},get style(){return iW()},onClick:()=>{(!e.isClickable||e.isClickable(t()))&&e.onClick?.(t())},get"data-testid"(){return e.rowTestId?.(t(),n())}},r],!0),N(a,(()=>{var r=A(()=>!!e.leftColumns);return()=>r()?x(dW,{get index(){return n()},side:`left`,columnStart:e=>cW(e),get columns(){return e.leftColumns},get row(){return t()},getWidthStyles:y,get rowAlign(){return e.rowAlign}}):null})(),s),N(a,x(eR,{get open(){return!H(e.overrideRightColumns)},class:`contents`,get children(){return x(dW,{get index(){return n()},side:`right`,columnStart:e=>g(e),get columns(){return e.overrideRightColumns},get row(){return t()},getWidthStyles:y,get rowAlign(){return e.rowAlign}})}}),c),N(a,(()=>{var r=A(()=>!H(e.rightColumns));return()=>r()?x(dW,{get index(){return n()},side:`right`,columnStart:e=>g(e),get columns(){return e.rightColumns},get row(){return t()},getWidthStyles:y,get rowAlign(){return e.rowAlign},get hidden(){return!H(e.overrideRightColumns)}}):null})(),u),N(a,(()=>{var n=A(()=>!!e.isSelected);return()=>n()?(()=>{var n=ZU();return M(()=>({e:F(L(`fa fa-check transition-opacity self-center relative z-1`,!e.isSelected(t())&&`opacity-0`)),t:F(z(lW(v()),B.fg(B.colors.text.primary)))}),({e,t},r)=>{P(n,e,r?.e),w(n,t,r?.t)}),n})():null})(),d),N(a,(()=>{let n=e.renderBelow?.(t());if(!n)return null;if(l()){var r=QU();return N(r,n),M(()=>F(z({"grid-column":`${cW(e.renderBelowIndentLeftColumns??1)} / -1`})),(e,t)=>{w(r,e,t)}),r}var i=$U();return N(i,n),M(()=>F(z({"grid-column":`1 / -1`})),(e,t)=>{w(i,e,t)}),i}),p),M(()=>({e:F(L(`pointer-events-none absolute inset-y-0 z-0 rounded-sm transition-opacity`,e.isSelected?.(t())?`opacity-100 bg-gray-34`:f(t())?`opacity-0 bg-gray-30 group-active:opacity-100 [@media_(hover:hover)_and_(pointer:fine)]:group-hover:opacity-100`:`opacity-0`)),t:F(oW())}),({e,t},n)=>{P(o,e,n?.e),w(o,t,n?.t)}),a}})),N(E,(()=>{var e=A(()=>!!a());return()=>e()?(()=>{var e=GU();return N(e,x(zU,{onPress:e=>{e.stopPropagation(),n(!t())},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`block glyph-trim-both text-tertiary hover-fine:text-primary transition-colors`,get children(){return c()}})}})),M(()=>({e:F(z(B.row,{"grid-column":`1 / -1`})),t:F(L(rt?`pt-4`:`pt-3`,`space-x-4`))}),({e:t,t:n},r)=>{w(e,t,r?.e),P(e,n,r?.t)}),e})():null})(),O),M(()=>({e:F(L(`w-full grid px-[var(--sidebar-table-padding)] [--sidebar-table-padding:0.75rem] lg:[--sidebar-table-padding:18px]`,l()?d():u())),t:F(h()),a:F(z(aW(),B.bg(B.colors.sidebarBorder)))}),({e,t,a:n},r)=>{P(E,e,r?.e),w(E,t,r?.t),w(te,n,r?.a)}),E},dW=e=>x(b,{get each(){return e.columns},keyed:e=>e.key??e,children:(t,n)=>{let r=ie(t).render;var i=GU();return N(i,()=>r(e.row,{index:e.index,callbacks:{onRender:()=>{}}})),M(()=>({e:F(z({"grid-column":`${e.columnStart(n())} / span 1`},e.getWidthStyles(t()))),t:F(L(`relative z-1 text-secondary font-medium text-xs flex min-w-0`,nW(t().alignVertical??e.rowAlign??`center`),eW(t().align??e.side),`w-full`,t().width===`fit-content`&&`w-full min-w-0`,e.hidden&&`opacity-0 pointer-events-none`,t().class))}),({e,t},n)=>{w(i,e,n?.e),P(i,t,n?.t)}),i}});ae([`click`]);var fW=l(`<div class="w-full min-w-0 self-stretch">`),pW=l(`<div><div class="h-0 overflow-hidden invisible"aria-hidden=true>`),mW=l(`<div class="inline-flex whitespace-nowrap">`),hW=l(`<div class="contents select-none">`),gW=e=>{let t=st(),n=()=>t().bp>=ct.md,r=()=>e.columnGapClass?e.columnGapClass:!n()&&e.hasAnyAnnotations===!1?IH:PH,i=()=>e.renderBelow?!e.columnGapClass&&!n()&&e.hasAnyAnnotations===!1?IH:FH:r(),a=e=>e.desktopFixedWidthPx!==void 0&&n(),o=e=>{if(a(e))return e.desktopFixedWidthPx;switch(e.widthMode){case`content`:return[`dynamic`,0];case`heading`:return`fit-content`;case`flex`:return`auto`}},s=(e,t,r)=>({key:`${e.key??e.kind}:${n()?`desktop`:`mobile`}`,label:r?.label??(n()?e.label:e.mobileLabel??e.label),labelColSpan:r?.labelColSpan,labelStyle:r?.labelStyle??(e.kind===`action`?`hidden`:`standard`),width:o(e),align:AH(e,n()),labelAlign:AH(e,n()),alignVertical:e.alignVertical??`top`,class:L(`min-h-[1.25rem]`,e.widthMode===`heading`&&`min-w-0`,e.class),render:(t,{index:r})=>{let i=e.render(t,{index:r});if(e.widthMode===`heading`&&!a(e)){var o=fW();return N(o,i),o}if(e.widthMode===`content`){if(e.sizer){var s=pW(),c=s.firstChild;return N(s,i,c),N(c,()=>e.sizer()),M(()=>
35F(L(`inline-flex flex-col whitespace-nowrap`,{left:`items-start`,center:`items-center`,right:`items-end`}[AH(e,n())])),(e,t)=>{P(s,e,t)}),s}var l=mW();return N(l,i),l}return i}}),c=_(()=>{let[t,n]=e.columns.primaryColumns;return[s(t,`left`,{label:e.headerLabel,labelColSpan:2,labelStyle:`standard`}),s(n,`left`,{label:``,labelStyle:`hidden`})]}),l=_(()=>e.columns.statColumns.map(e=>s(e,`right`))),u=_(()=>(e.actionColumns??[]).map(e=>s(e,`right`))),d=_(()=>H(l())&&!H(u())?u():l()),f=_(()=>H(l())?[]:u());var p=hW();return N(p,x(uW,{get title(){return e.title},get class(){return e.class},get rightColumns(){return d()},get overrideRightColumns(){return f()},get leftColumns(){return c()},get hideAllLabels(){return e.hideAllLabels},get hideTopBorder(){return e.hideTopBorder},get headerRight(){return e.headerRight},get rows(){return e.rows},get onClick(){return e.onClick},get onHover(){return e.onHover},get onBlur(){return e.onBlur},get isFaded(){return e.isFaded},get isClickable(){return e.isClickable},get maxRows(){return e.maxRows},get isSelected(){return e.isSelected},get onBlurTable(){return e.onBlurTable},get renderBelow(){return e.renderBelow},get renderBelowIndentLeftColumns(){return e.renderBelow?1:void 0},get rowTestId(){return e.rowTestId},get columnsGapClass(){return r()},get gridGapClass(){return i()}})),p},_W=l(`<div><i>`),vW=l(`<div><div>`),yW=e=>{let t=st(),[n,r]=o(!0);var i=vW(),a=i.firstChild;return N(i,x(zU,{get style(){return z(B.row,B.justifyBetween,B.py(8),B.alignCenter,B.px(B.getSidebarPadding(t())),B.clickable)},get class(){return L(`hover-fine:bg-gray-30 h-sidebar-button`)},onPress:()=>{r(!n())},get children(){return[x(V,{get style(){return z(B.fontSize(t().switch(14,[ct.lg,14])),B.fg(B.colors.text.primary))},get children(){return e.header}}),(()=>{var e=_W(),t=e.firstChild;return M(()=>({e:F(z()),t:F(L(`fa fa-chevron-right rotate-0 transition-transform`,!n()&&`rotate-90`)),a:F(z(B.fg(B.colors.text.primary),B.fontSize(14)))}),({e:n,t:r,a:i},a)=>{w(e,n,a?.e),P(t,r,a?.t),w(t,i,a?.a)}),e})()]}}),a),N(a,(()=>{var t=A(()=>!!n());return()=>t()?null:e.children})()),M(()=>({e:F(z()),t:F(z())}),({e,t},n)=>{w(i,e,n?.e),w(a,t,n?.t)}),i},bW=l(`<p class="body-text padding-sidebar">Let's save these moves and see how practice works.`),xW=l(`<div class=padding-sidebar>`),SW=l(`<div class=gap-2>`),CW=l(`<div><i class="fa-solid fa-circle"></i><p class="text-secondary text-sm leading-5 cursor-default">`),wW=e=>{let t=()=>Y().onboarding,n=()=>X().state.repertoireSide,r=()=>Sc(X().state.planSections),i=()=>X().state.showPlansState,a=EW(),o=DW(),s=()=>e.fromBoardPlans?a():o();t().isOnboarding&&PF(wW),ZI(()=>{e.auto&&Q().getActiveChessboard().backOne()});let c=()=>!H(r())&&!t().isOnboarding,l=()=>!e.fromBoardPlans&&!c()&&!t().isOnboarding,u=()=>t().isOnboarding?`That's enough for now`:e.fromBoardPlans&&n()?`Plans for ${Eo(n())} in this position`:i().coverageReached?ON()?`Coverage goal reached`:`You've reached your coverage goal`:`How to play from here`;return x($,{get header(){return u()},get actions(){return s()},bodyPadding:!1,get children(){return[x(j,{get when(){return t().isOnboarding},get children(){return bW()}}),x(j,{get when(){return c()},get children(){return x(j,{get when(){return A(()=>!(e.fromBoardPlans||!i().coverageReached))()?ON():!e.fromBoardPlans&&i().coverageReached},get fallback(){var e=xW();return N(e,x(TW,{})),e},get children(){return x(yW,{header:`How to play from here`,get children(){var e=xW();return N(e,x(TW,{})),e}})}})}}),x(j,{get when(){return A(()=>!!c())()?l():c()},get children(){return x(R,{between:[`body-text`,`body-text`]})}}),x(j,{get when(){return l()},get children(){return x(V,{get style(){return z(B.weightRegular,B.fontSize(14),B.fg(B.colors.text.primary))},class:`padding-sidebar`,children:`Do you want to keep adding moves, or save your progress?`})}})]}})},TW=()=>{let e=()=>Sc(X().state.planSections);return(()=>{var t=SW();return N(t,x(b,{get each(){return e()},children:e=>{var t=CW(),n=t.firstChild,r=n.nextSibling;return N(t,x(R,{width:8}),r),N(r,e),M(()=>({e:F(z(B.row,B.alignStart)),t:F(z(B.fontSize(6),B.fg(B.gray[76]),B.mt(6)))}),({e,t:r},i)=>{w(t,e,i?.e),w(n,r,i?.t)}),t}})),t})()},EW=()=>{let e=N6();return()=>[{onPress:()=>{K(`${e()}.plans_view.continue`),Q().backOne()},style:`primary`,text:`Continue`}]},DW=()=>{let e=()=>Y().onboarding,t=N6();return()=>{if(!X().state.hasPendingLineToAdd)return[];let n=[{onPress:()=>{K(`${t()}.save_line`),Z(e=>{e.repertoireState.browsingState.actions.requestToAddCurrentLine()})},style:`focus`,text:e().isOnboarding?`Save and continue`:`Save these moves`}];return e().isOnboarding&&n.push({onPress:()=>{Z(e=>{K(`${t()}.onboarding.start_over`),Q().popView(),e.repertoireState.browsingState.handles.chessboard.resetPosition()})},style:`primary`,text:`I've changed my mind, start over`}),e().isOnboarding||n.push({onPress:()=>{Z(()=>{K(`${t()}
35.plans_view.keep_adding`),vX(`right`),Q().cutView()})},style:`primary`,text:`Keep adding moves`}),n}},OW=l(`<p class="body-text padding-sidebar">You don't need to add anything else. All of your moves from this position will still apply.`),kW=l(`<div class=padding-sidebar>`),AW=()=>{let e=()=>X().state.planSections;return x($,{header:`You've transposed into an existing line`,actions:[{onPress:()=>{Z(e=>{e.repertoireState.browsingState.actions.requestToAddCurrentLine()})},style:`primary`,text:`Save this move order`}],bodyPadding:!1,get children(){return[OW(),x(j,{get when(){return!H(e)},get children(){return[x(R,{between:[`body-text`,`bullets`]}),x(yW,{header:`How to play from here`,get children(){var e=kW();return N(e,x(TW,{})),e}})]}})]}})},jW=l(`<div class="font-medium text-tertiary hover-fine:text-primary transition-colors cursor-pointer text-xs leading-none">`),MW=l(`<p>Show stats`),NW=l(`<div class="flex row space-x-2 text-tertiary text-xs group-hover:text-primary transition-colors whitespace-nowrap"><p>Note</p><i class="fa-solid fa-pen">`),PW=l(`<div class="flex row items-center space-x-2 text-secondary text-xs group-hover:text-primary transition-colors whitespace-nowrap"><p></p><i>`),FW=l(`<p>This is the best move according to masters, the computer, and results at your level`),IW=l(`<p>With great results and a solid eval, your opponents won't expect this rare move.`),LW=l(`<p>`),RW=l(`<p>This move is an alternative way to reach an existing position`),zW=l(`<p>We're showing a reminder arrow since this is your first time practicing this move.`),BW=l(`<p>This move is seen in less than <b> games </b>but the high win-rate for <!> means you should still prepare for it`),VW=l(`<p>This is a bad move that's common at your level, so you should be prepared to punish it`),HW=l(`<span class="font-normal text-secondary">You have a saved move but it's locked on the free plan. Upgrade to unlock it.`),UW=l(`<span class="font-normal text-tertiary opacity-50">No notes added`),WW=l(`<div class="flex row gap-x-4 gap-y-2 flex-wrap leading-5">`),GW=l(`<div class=gap-4>`),KW=l(`<div class="flex row gap-2 items-center"><p class>`),qW=l(`<p>You added this move as part of <b></b> pre-made repertoire`),JW=l(`<i class="ml-2 text-[10px] fa-solid fa-chart-simple">`),YW=l(`<div><!><!>`),XW=l(`<div>`),ZW=l(`<i>`),QW=e=>{let t=st(),n=N6(),[r,i]=o(0),[a,s]=o(!1),[c,l]=o(!1),u=()=>Y().onboarding,d=()=>e.repertoireId,f=_(()=>e.epd?e.epd:Q().getActiveChessboard().getCurrentEpd()),p=()=>Y().positionReports?.[d()]?.[f()],[h,g]=o(!1),v=()=>e.line?e.line():Q().getActiveChessboard().get(e=>e).moveLog,y=()=>Math.floor(v().length/2)+1,S=()=>e.side===e.activeSide,C=()=>Ad(e.responses(),e=>e.repertoireMove?.mine),T=()=>y()===1&&e.side===`white`&&S()&&!C(),E=()=>u().isOnboarding&&y()===1&&e.side===`white`&&S(),D=()=>!!e.hideStatsColumns||E()&&!h(),ee=()=>E()&&!e.hideStatsColumns,te=_(()=>{let t=Ad(e.responses(),e=>e.suggestedMove?.needed),n=p(),i=e=>((e.suggestedMove&&n?pC.getPlayRate(e.suggestedMove,n,!1):null)??0)>=.02,a=Ad(e.responses(),i),o=ru(e.responses(),(n,o)=>{if(e.trimResponse)return o<r()||n.repertoireMove?!0:e.trimResponse(n);if(r()===0&&u().isOnboarding){if(T())return n.repertoireMove?!0:a?i(n):o<7;if(S()&&o>=8||!S()&&o>=3)return!1}return o<r()||n.repertoireMove||n.stockfishMove?!0:t&&!n.suggestedMove?.needed||C()?!1:n.suggestedMove?.needed&&!S()?!0:o<1||S()&&n.score&&n.score>0||eG(n,fC.RareDangerous)||S()&&eG(n,fC.Transposes)});return{trimmedResponses:o,truncated:e.responses().length-o.length>0}}),k=_(()=>ru(te().trimmedResponses,e=>e.repertoireMove?QO(e.repertoireMove):!1).length);m(f,()=>{i(0),g(!1)});let ne=_(()=>bd(mu(bd([...te().trimmedResponses]),e=>X().derived.openingNameForMove(e.suggestedMove?.epdAfter)))),re=()=>S()&&!H(te().trimmedResponses)&&tu(te().trimmedResponses,t=>uz(Y().lockedMoves,e.activeSide,t)),ie=()=>{let t=pU({myTurn:S(),usePeerRates:e.usePeerRates(),allLocalStockfish:e.allLocalStockfish,repertoire:e.repertoire,lockedOnly:re()});return D()?{...t,statColumns:[]}:t},ae=()=>ee()&&h(),oe=()=>{if(!ee()||h())return null;var e=jW();return e._$$click=()=>{K(`${n()}.moves_table.show_stats`),g(!0)},N(e,x(kU,{get text(){return MW()},icon:`fa-solid fa-chart-simple`})),e},se=()=>{let t=n()===`build`&&e.activeSide===`white`&&S()&&v().length===0,r=n()===`build`&&S()&&!t&&!C();return NH({myTurn:S(),showFirstWhiteMoveHeader:t,showChoosingMoveHeader:r,savedMoveCount:S()&&
35!t&&!r?k():0})},ce=()=>a()?[{kind:`action`,key:`annotation-action`,label:``,align:`center`,widthMode:`content`,render:()=>NW()}]:c()?[{kind:`action`,key:`exclude-action`,label:``,align:`center`,widthMode:`content`,render:e=>{let t=e.tableResponse().repertoireMove?.isExcluded;var n=PW(),r=n.firstChild,i=r.nextSibling;return N(r,t?`Include`:`Exclude`),M(()=>F(L(t?`fa-solid fa-check`:`fa-solid fa-ban`)),(e,t)=>{P(i,e,t)}),n}}]:[],le=()=>e.currentSide,de=_(()=>te().trimmedResponses,{equals:(e,t)=>Au(e,t)}),fe=ue(de,(t,r)=>{let i=()=>ne()[r()],o=()=>{let e=t();return n()===`review`&&!!e.reviewInfo?.hideAnnotations},s=_(()=>{let e=t().repertoireMove?.epdAfter;if(n()!==`browse`||!e)return{count:0,date:void 0};let r=d();return r?{count:Y().numMovesDueFromEpd[r]?.[e]??0,date:Y().earliestReviewDueFromEpd[r]?.[e]}:{count:0,date:void 0}}),l=()=>t().repertoireMove?.isDisabled??!1,m=()=>S()&&uz(Y().lockedMoves,e.activeSide,t()),h=()=>!m()&&(t().repertoireMove?.isDisabled&&n()===`browse`||e.unclickable===!0),g=_(()=>{let e=t(),r=[],i=!S()||!e.repertoireMove||!QO(e.repertoireMove),a=gU({matchCount:e.suggestedMove?.similarPositionMatchCount,totalCount:e.suggestedMove?.similarPositionCount});if((n()===`build`||n()===`browse`)&&e.repertoireMove?.mine&&e.repertoireMove.source===`autofill`&&r.push({kind:`move-tag`,...jU.autofilled}),m()||n()===`build`&&y()===1)return r;if(i&&(eG(e,fC.BestMove)&&r.push({kind:`move-tag`,tip:()=>FW(),...jU.bestMove}),eG(e,fC.HiddenGem)&&r.push({kind:`move-tag`,tip:()=>IW(),...jU.hiddenGem}),a&&(e.moveRating===dC.Good||Kt(e.moveRating))&&r.push({kind:`move-tag`,tip:()=>(()=>{var e=LW();return N(e,()=>_U(a)),e})(),...jU.consistent}),eG(e,fC.Transposes)&&r.push({kind:`move-tag`,tip:()=>RW(),...jU.transposes})),e.repertoireMove?.courseId&&e.repertoireMove?.mine){let t=Y().courses[e.repertoireMove.courseId];t&&r.push({kind:`course`,course:t})}if(e.reviewInfo?.learning&&r.push({kind:`move-tag`,tip:()=>zW(),...jU.firstPractice}),i){if(eG(e,fC.RareDangerous)){let e=OM(Y().getRepertoireThreshold(d()??null)),t=le();r.push({kind:`move-tag`,tip:()=>(()=>{var n=BW(),r=n.firstChild.nextSibling,i=r.firstChild,a=r.nextSibling.nextSibling;return a.nextSibling,N(r,e,i),N(n,t,a),n})(),...jU.rareDangerous})}eG(e,fC.CommonMistake)&&r.push({kind:`move-tag`,tip:()=>VW(),...jU.commonMistake})}return r}),C=_(()=>{let e=t();if(n()!==`review`&&y()===1&&!E()||e.repertoireMove?.courseId)return null;let r=UO.getSan(e);return e.suggestedMove?.annotation||Y().getAnnotation(dV.toKey({epd:f(),san:r}),{repertoireId:d()})?.text||null}),T=()=>!t().repertoireMove?.courseId&&$O({mode:n(),isSavedUserMove:!!t().repertoireMove?.mine,moveNumber:y(),isOnboarding:u().isOnboarding}),D=_(()=>{if(m())return HW();let e=C();return e?oH(e):T()&&H(g())?UW():null});return{unclickable:h,isFaded:l,numMovesDueFromHere:()=>s().count,earliestDueDate:()=>s().date,suggestedMove:()=>t().suggestedMove,positionReport:p,tableResponse:t,side:le,line:v,epd:f,courseStats:()=>void 0,annotation:()=>D()??void 0,hasAnnotation:()=>m()||!!C()||T(),hideAnnotations:()=>o(),hasTags:()=>!H(g()),tagsRow:()=>{if(o())return;let e=g();if(!H(e)){var t=GW();return N(t,x(b,{each:e,children:e=>{if(e.kind!==`course`)return x(MU,{get tip(){return e.tip},get text(){return e.text},get icon(){return e.icon},get styleIcon(){return e.styleIcon},get style(){return e.style},get tipWidth(){return e.tipWidth},get class(){return e.class}});let t=e.course;var n=KW(),r=n.firstChild;return I(()=>e=>{vE({ref:e,content:()=>(()=>{var e=qW(),n=e.firstChild.nextSibling;return N(n,()=>t.name),e})(),maxWidth:240})},n),N(n,x(TU,{get side(){return t.side},size:14,get boxColor(){return A(()=>t.side===`black`)()?B.gray[21]:void 0}}),r),N(r,()=>t.name),n}})),M(()=>F(z(B.row,B.flexWrap,B.justifyStart,B.gap(4))),(e,n)=>{w(t,e,n)}),t}},actionsRow:()=>{let r=t(),i=r.repertoireMove;if(!i?.mine||!S()||a()||c())return null;let o=[];if(!m()&&(n()===`build`&&y()!==1&&!u().isOnboarding||e.canAnnotate)){let e=`Add note`;n()===`review`?e=C()?`Edit note`:`Add a note to explain this move`:C()&&(e=`Edit note`),o.push({text:e,onPress:()=>{K(`${n()}.moves_table.edit_annotations`),Q().pushView(CU,{props:{san:UO.getSan(r),epd:f()}})}})}if(n()===`build`&&m()?(o.push({text:`Unlock`,icon:`fa-solid fa-unlock`,onPress:()=>{vX(`right`),bz(`moves_table`)}}
35),o.push({text:`Remove`,icon:`fa-solid fa-trash`,onPress:()=>{K(`${n()}.moves_table.delete_locked_move`),Z(e=>{vX(`right`),Q().pushView(PU,{props:{move:i,repertoireId:d(),hideMove:!0}})})}})):n()===`build`&&(o.push({text:`Remove`,icon:`fa-solid fa-trash`,onPress:()=>{K(`${n()}.moves_table.delete_move`),Z(e=>{vX(`right`),Q().pushView(PU,{props:{move:i,repertoireId:d()}})})}}),o.push({text:i.isDisabled?`Re-enable`:`Disable`,icon:i.isDisabled?`fa-solid fa-play`:`fa-solid fa-pause`,onPress:()=>{K(`${n()}.moves_table.disable_move`),Z(e=>{i.isDisabled?e.repertoireState.toggleMove(i,!1,[...v(),i.sanPlus],d()):(Q().getActiveChessboard().makeMove(i.sanPlus,{animate:!0,sound:`move`}),Q().pushView(LU,{props:{move:i,disable:!i.isDisabled}}))})}})),H(o))return null;var s=WW();return N(s,x(b,{each:o,children:e=>x($W,{get text(){return e.text},get icon(){return e.icon},get onPress(){return e.onPress}})})),s},openingName:()=>m()?void 0:i(),locked:m}},{keyed:e=>`${f()}:${UO.getSan(e)}`}),pe=_(()=>{let t=[];if(re())return t;if(te().truncated&&n()===`build`&&(!u().isOnboarding||S())){let e=C()&&!T()&&r()===0?`Add an alternative move`:T()?`Something else...`:st()().switch(`Show more moves`,[ct.xsm,`Show more`]);t.push({text:e,onPress:e=>{e.preventDefault(),e.stopPropagation(),i(te().trimmedResponses.length+5)}})}if(!e.hideEditingActions&&(a()||(n()===`build`&&y()!==1&&!u().isOnboarding&&!c()||e.canAnnotate)&&(te().trimmedResponses.length>1||k()===0)&&k()<=1)){let e=`Add / edit notes`;a()&&(e=`Stop editing notes`),t.push({text:e,onPress:()=>{a()||K(`${n()}.moves_table.edit_annotations`),s(!a())}})}if(!e.hideEditingActions&&n()===`build`&&!u().isOnboarding&&!a()&&J().flagEnabled(`move_exclusion`)&&!S()){let e=`Exclude specific moves`;c()&&(e=`Stop excluding moves`),t.push({text:e,onPress:()=>{c()||K(`${n()}.moves_table.exclude_moves`),l(!c())}})}return t}),me=()=>Y().getChessboard(),he=()=>{s(!1),l(!1)};ze(()=>{me().set(e=>{e.onPositionUpdate.add(he)})}),O(()=>{me().set(e=>{e.onPositionUpdate.remove(he)})});let ge=null,_e=0,ve=e=>{n()!==`review`&&(_e+=1,ge=e,Q().getActiveChessboard()?.previewMove(e))},ye=e=>{e?.locked?.()?ve(null):ve(e?UO.getSan(e.tableResponse()):null)},be=e=>{let t=UO.getSan(e.tableResponse()),n=_e;setTimeout(()=>{_e===n&&ge===t&&ve(null)},0)},xe=_(()=>Ad(fe(),e=>e.hasAnnotation?.()??!!e.annotation()));var Se=YW(),Ce=Se.firstChild,we=Ce.nextSibling;return N(Se,x(gW,{get title(){return e.header},get headerLabel(){return se()},get headerRight(){return oe()},get columns(){return ie()},get actionColumns(){return ce()},get hideAllLabels(){return e.hideHeaders},isFaded:e=>e.isFaded(),isClickable:e=>!e.unclickable(),get rows(){return fe()},onHover:e=>ye(e),onBlur:e=>be(e),onBlurTable:()=>ye(),get hasAnyAnnotations(){return xe()},renderBelow:e=>{let t=e.actionsRow?.();if(!t)return null;var n=XW();return N(n,t),M(()=>F(aU({hasOpeningName:!!e.openingName(),hasAnnotation:!!e.annotation(),hasTags:e.hasTags?.()??!!e.tagsRow()})),(e,t)=>{P(n,e,t)}),n},rowTestId:(e,t)=>`repertoire-move-row-${t}`,onClick:t=>{Z(r=>{if(t.locked?.()){bz(`moves_table`);return}if(a()){Q().pushView(CU,{props:{san:UO.getSan(t.tableResponse()),epd:f()}});return}if(c()){let n=UO.getSan(t.tableResponse()),r=UO.getEpdAfter(t.tableResponse());if(!r){let e=new ip(EE.toFen(f()));e.move(n,{sloppy:!0}),r=dp(e)}e.setLoading?.(!0),Z(i=>{let a={sanPlus:n,epd:f(),epdAfter:r,isExcluded:!t.tableResponse().repertoireMove?.isExcluded,mine:!1,side:t.tableResponse().side};i.repertoireState.updateMove(a,d()).then(()=>{e.setLoading?.(!1)})});return}n()!==`review`&&(vX(`right`),Q().getActiveChessboard().makeMove(UO.getSan(t.tableResponse()),{animate:!0,sound:`move`}),t.tableResponse().transposes&&Q().pushView(AW,{showPlansOverlay:!0}))})},maxRows:null}),Ce),N(Se,x(j,{get when(){return!H(pe())||ae()},get children(){var e=YW(),n=e.firstChild,r=n.nextSibling;return N(e,x(b,{get each(){return pe()},keyed:e=>e.text,children:e=>x(zU,{onPress:t=>{e().onPress(t)},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`block glyph-trim-both text-tertiary hover-fine:text-primary transition-colors`,get children(){return[A(()=>e().text),x(j,{get when(){return e().icon},get children(){var t=ZW();return M(()=>F(L(`ml-2 text-[10px]`,e().icon)),(e,n)=>{P(t,e,n)}),t}})]}})}})}),n),N(e,x(j,{get when(){return ae()},get children(){return x(zU,{class:`ml-auto!`,onPress:()=>{g(!1)},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`block glyph-trim-both text-tertiary hover-fine:text-primary transition-colors`,get children(){return[`Hide stats`,JW()]}})}})}}),r),M(()=>({e:F(z(B.row,B.px(B.getSidebarPadding(t())))),t:F(L(rt?`pt-4`:`pt-3`,`space-x-4`))}),({e:t,t:n},r)=>{w(e,t,r?.e),P(e,n,r?.t)}),e}}
35),we),M(()=>F(z(B.column)),(e,t)=>{w(Se,e,t)}),Se},$W=e=>x(zU,{onPress:t=>{t.preventDefault(),t.stopPropagation(),e.onPress()},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`whitespace-nowrap text-tertiary hover-fine:text-primary transition-colors`,get children(){return[A(()=>e.text),x(j,{get when(){return e.icon},get children(){var t=ZW();return M(()=>F(L(`ml-2 text-[10px]`,e.icon)),(e,n)=>{P(t,e,n)}),t}})]}})}}),eG=(e,t)=>wu(e.tags,t);ae([`click`]);var tG=null,nG=e=>(tG=e,()=>{tG===e&&(tG=null)}),rG=()=>ie(()=>tG?.()??null),iG=()=>{let e=rG();e&&Q().runBackOperation(e)},aG=e=>e&&`enabled`in e&&e.enabled?.()===!1?void 0:e,oG=e=>JSON.stringify([e.viewKey,e.stateKey??null]),sG=(e,t)=>!t||e.fromViewId!==t.fromViewId||e.kind!==t.kind?!1:e.kind===`pop`?t.kind===`pop`&&e.destination===t.destination&&e.destinationState===t.destinationState:e.kind===`step`?t.kind===`step`&&e.step.key===t.step.key&&JSON.stringify(e.step.destination)===JSON.stringify(t.step.destination):t.kind!==`pop`&&t.kind!==`step`&&e.entry.fn===t.entry.fn&&e.entry.behavior===t.entry.behavior,cG=.35,lG=.5,uG=.015,dG=.2,fG=(e,t)=>{let n=Math.abs(e),r=Math.abs(t);return Math.max(n,r)<8?`pending`:e<=0||r>=n?`reject`:`back`},pG=(e,t)=>e>=t&&e-t<=44,mG=e=>e.widthPx<=0||e.distancePx<=0?!1:e.distancePx/e.widthPx>=.33||e.distancePx>=24&&e.velocityPxPerSecond>=650,hG=(e,t)=>t<=50?e:t>=150?0:e*(1-(t-50)/100),gG=(e,t)=>{if(e.length<2)return 0;let n=e[e.length-1],r=e.filter(e=>e.at>=n.at-100);r.length<2&&(r=e.slice(-2));let i=0,a=0;for(let e of r)i+=e.at,a+=e.x;i/=r.length,a/=r.length;let o=0,s=0;for(let e of r)o+=(e.at-i)*(e.x-a),s+=(e.at-i)**2;return s===0?0:hG(o/s*1e3,t-n.at)},_G=(e,t,n)=>Math.min(n,Math.max(t,e)),vG=e=>{let t=e.fromPx-e.toPx,n=Math.abs(t);if(n===0)return{durationMs:80,stops:[0,1],progressAt:()=>1};let r=2*Math.PI/cG,i=30*n,a=_G(e.velocityPxPerSecond,-i,i)+r*t,o=e=>(t+a*e)*Math.exp(-r*e),s=e=>(a-r*(t+a*e))*Math.exp(-r*e),c=Math.max(lG,n*uG),l=Math.max(20,n*dG),u=0;for(let e=0;e<=700;e+=1){let t=e/1e3;(Math.abs(o(t))>=c||Math.abs(s(t))>=l)&&(u=e)}let d=_G(u+1,80,700),f=e=>t===0||e>=d?1:1-o(Math.max(0,e)/1e3)/t,p=_G(Math.ceil(d/8)+1,2,96),m=[];for(let e=0;e<p;e+=1){let t=d*e/(p-1),n=e===p-1?1:f(t);m.push(Math.round(n*1e4)/1e4)}return{durationMs:d,stops:m,progressAt:f}},yG=(e,t)=>t>0?Math.min(1,Math.max(0,e/t)):0,bG=(e,t)=>{let n=yG(e,t);return(e=>e*e*(3-2*e))(Math.min(1,n*2))},xG=(e,t,n)=>-n*(1-yG(e,t)),SG=l(`<div><div aria-hidden=true inert></div><div></div><div aria-hidden=true inert>`);function CG(e,t=420,n=`transform`){return new Promise(r=>{let i,a=()=>{e.removeEventListener(`transitionend`,o),i&&clearTimeout(i),r()},o=t=>{t.target===e&&t.propertyName===n&&a()};e.addEventListener(`transitionend`,o),i=setTimeout(a,t)})}function wG(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))})}var TG=24,EG=()=>void 0;function DG(e,t,n,r){return e.stops.map(e=>{let i={transform:`translate3d(${(t+(n-t)*e).toFixed(2)}px, 0px, 0px)`};return r&&(i.opacity=Math.min(1,Math.max(0,r[0]+(r[1]-r[0])*e))),i})}var OG=250;function kG(e,t){return new Promise(n=>{let r=!1,i=()=>{r||(r=!0,clearTimeout(a),n())},a=setTimeout(()=>{try{e.finish()}catch{}i()},t);e.finished.then(i,i)})}function AG(e,t,n){return kG(e.animate(t,{duration:n,fill:`forwards`}),n+OG)}function jG(e){return e?Promise.race([e,new Promise(e=>
35setTimeout(e,ER))]).then(EG,EG):Promise.resolve()}function MG(e){for(let t of e.getAnimations())t.cancel()}var NG=new WeakMap;function PG(e){NG.has(e)||(NG.set(e,{height:e.style.height,bottom:e.style.bottom}),e.style.height=`${e.offsetHeight}px`,e.style.bottom=`auto`)}function FG(e){let t=NG.get(e);t&&(NG.delete(e),e.style.height=t.height,e.style.bottom=t.bottom)}var IG=e=>{let t=!1,n=null,r=null,i=!1,a,s=0,c=0,l=new Map,u=()=>oG({viewKey:Q().currentView()?.id??`root`,stateKey:Q().currentView()?.component.getSidebarPreviewState?.()}),d=()=>{let e=ue().querySelector(`[data-sidebar-view-id]`)?.dataset.sidebarViewId;if(e===`root`)return e;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null},f=()=>{let e=ue().cloneNode(!0);e.style.transition=``,e.style.transform=`translateX(0px)`,e.style.opacity=`1`,e.style.minHeight=`100%`,delete e.dataset.swipeBackState,delete e.dataset.swipeBackEdge,e.removeAttribute(`data-testid`);for(let t of e.querySelectorAll(`[id], [data-testid]`))t.removeAttribute(`id`),t.removeAttribute(`data-testid`);return e},p=()=>{if(!e.retainPreviousView)return;let t=d(),n=ue().querySelector(`[data-sidebar-view-id]`)?.dataset.sidebarPreviewScope===`data`?`data`:`position`,r=n===`data`?ue().dataset.sidebarPreviewRevision:ue().dataset.sidebarPositionRevision;if(t===null||r!==Q().getSidebarPreviewRevision(n))return;let i=ue().querySelector(`[data-sidebar-view-id]`)?.dataset.sidebarPreviewState,a=oG({viewKey:t,stateKey:i});l.delete(a),l.set(a,{viewKey:t,stateKey:i,scope:n,revision:r,content:f()}),l.size>32&&l.delete(l.keys().next().value)},h=e=>{if(e.kind!==`pop`&&e.kind!==`step`)return{operation:e,preview:null};let t=e.kind===`pop`?{viewKey:e.destination,stateKey:e.destinationState}:e.step.destination;if(!t)return{operation:e,preview:null};let n=l.get(oG(t));return{operation:e,preview:n&&n.revision===Q().getSidebarPreviewRevision(n.scope)?n:null}},g=()=>{ce().replaceChildren(),ce().style.transition=``,ce().style.transform=`translateX(0px)`,ce().style.opacity=`0`;let e=new Set([`root`,...Q().sidebarStack.map(e=>e.id)]);for(let[t,n]of l)(!e.has(n.viewKey)||n.revision!==Q().getSidebarPreviewRevision(n.scope))&&l.delete(t)},_=()=>e.enableSwipeBack===!0&&rG()!==null,v=e=>sG(e.back.operation,rG())&&sG(e.back.operation,Q().resolveBackOperation()),y=e=>{let t=e.back.preview;t&&t.revision!==Q().getSidebarPreviewRevision(t.scope)&&(e.back.preview=null,MG(ce()),ce().replaceChildren(),ce().style.opacity=`0`)};m(()=>({revision:Q().getSidebarPreviewRevision(`position`),operation:Q().resolveBackOperation()}),({operation:e})=>ie(()=>{let t=r;t&&(y(t),!t.finishing&&!sG(t.back.operation,e)&&(t.rejected=!0,t.dragging&&(t.finishing=!0,E())))}));let b=()=>{let e=fe();e.replaceChildren(),e.style.transition=``,e.style.transform=`translateX(0px)`,e.style.opacity=`1`,FG(e),MG(e)},x=()=>{let e=ue(),t=ce();e.style.transition=``,e.style.transform=`translateX(0px)`,e.style.opacity=`1`,t.style.transition=``,t.style.transform=`translateX(0px)`,t.style.opacity=`1`,delete e.dataset.swipeBackState,delete e.dataset.swipeBackEdge,MG(e),MG(t),FG(t),me().style.minHeight=``,b()},S=e=>e.snapshotted?fe():ue(),T=async e=>{if(await wG(),r!==e||!e.dragging||e.finishing)return;let t=ue(),n=fe(),i=f();i.dataset.swipeBackEdge=``,n.replaceChildren(i),n.style.transition=`none`,n.style.opacity=`1`,n.style.transform=`translate3d(${e.distance}px, 0px, 0px)`,t.style.transform=`translate3d(0px, 0px, 0px)`,t.style.opacity=`0`,delete t.dataset.swipeBackEdge,e.snapshotted=!0},E=async()=>{let e=r;if(!e)return;let n=S(e),i=vG({fromPx:e.distance,toPx:0,velocityPxPerSecond:e.velocityX});ue().dataset.swipeBackState=`settling`;let a=[AG(n,DG(i,e.distance,0),i.durationMs)];e.back.preview!==null&&a.push(AG(ce(),DG(i,xG(e.distance,e.width,40),-40,[bG(e.distance,e.width),0]),i.durationMs)),await Promise.all(a),x(),g(),r=null,t=!1},D=async()=>{let e=r;if(!e)return;if(!v(e)){await E();return}y(e);let n=ue(),o=fe(),c=ce(),l=e.width+16,d=vG({fromPx:e.distance,toPx:l,velocityPxPerSecond:e.velocityX});if(i=!1,a=void 0,s=performance.now()+160+160,n.dataset.swipeBackState=`committing`,!e.snapshotted){let t=f();t.dataset.swipeBackEdge=``,o.replaceChildren(t),o.style.transition=`none`,o.style.transform=`translate3d(${e.distance}px, 0px, 0px)`,o.style.opacity=`1`}PG(o),n.style.transition=`none`,n.style.opacity=`0`,n.style.transform=`translate3d(0px, 0px, 0px)`,delete n.dataset.swipeBackEdge;let p=[AG(o,DG(d,e.distance,l),d.durationMs)];if(e.back.preview!==null){PG(c);let t=xG(e.distance,e.width,40);p.push(AG(c,DG(d,t,0,[bG(e.distance,e.width),1]),d.durationMs),AG(n,DG(d,t,0),d.durationMs))}else c.style.transition=`none`,c.style.transform=`translate3d(0px, 0px, 0px)`,c.style.opacity=`0`;let m=Promise.all(p),h=()=>{x(),g(),r=null,t=!1};await wG();let _=e.back.preview,S=v(e)&&Q().runBackOperation(e.back.operation);y(e);let C=S&&_!==null&&e.back.preview!==null&&i&&u()===oG(_);
35if(_&&!C&&(MG(c),c.style.transform=`translate3d(0px, 0px, 0px)`,c.style.opacity=`0`,MG(n)),C){await ae(a);let e=new Promise(e=>{requestAnimationFrame(()=>{n.dataset.swipeBackState=`entering`,kG(n.animate([{opacity:0},{opacity:1}],{duration:140,easing:`ease-out`,fill:`forwards`}),140+OG).then(e)})});await Promise.all([e,m]),b(),h();return}if(await m,b(),!i){h();return}n.style.transition=`none`,n.style.transform=`translate3d(-40px, 0px, 0px)`,n.style.opacity=`0`,n.offsetHeight,await ae(a),requestAnimationFrame(()=>{n.dataset.swipeBackState=`entering`,n.style.transition=`transform 160ms ease-out, opacity 160ms ease-out`,n.style.transform=`translate3d(0px, 0px, 0px)`,n.style.opacity=`1`,CG(n,260).then(h)})},ee=e=>{if(e.pointerType!==`touch`||!e.isPrimary||e.button!==0||t||r||performance.now()<s||!_())return;let n=ue().getBoundingClientRect();if(!pG(e.clientX,n.left))return;let i=rG();if(!i||d()!==i.fromViewId)return;let a=h(i);r={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,samples:[{x:e.clientX,at:e.timeStamp}],velocityX:0,back:a,distance:0,width:n.width,dragging:!1,rejected:!1,finishing:!1,snapshotted:!1}},te=(e,t)=>{let n=typeof t.getCoalescedEvents==`function`?t.getCoalescedEvents():[];for(let r of n.length>0?n:[t])e.samples.push({x:r.clientX,at:r.timeStamp});e.samples.length>TG&&e.samples.splice(0,e.samples.length-TG)},O=(e,t)=>{if(y(e),e.distance=Math.min(e.width,Math.max(0,t-e.startX)),S(e).style.transform=`translate3d(${e.distance}px, 0px, 0px)`,e.back.preview!==null){let t=ce();t.style.transform=`translate3d(${xG(e.distance,e.width,40)}px, 0px, 0px)`,t.style.opacity=`${bG(e.distance,e.width)}`}},k=e=>{let n=r;if(!n||n.pointerId!==e.pointerId||n.rejected||n.finishing)return;if(!v(n)){n.dragging&&!n.finishing&&(n.finishing=!0,E());return}te(n,e);let i=e.clientX-n.startX,a=e.clientY-n.startY;if(!n.dragging){let r=fG(i,a);if(r===`pending`)return;if(r===`reject`){n.rejected=!0;return}n.dragging=!0,t=!0;let o=ue(),s=ce();s.replaceChildren(...n.back.preview?[n.back.preview.content]:[]),s.style.transition=`none`,s.style.opacity=`0`,s.style.transform=n.back.preview===null?`translate3d(0px, 0px, 0px)`:`translate3d(-40px, 0px, 0px)`;try{o.setPointerCapture(e.pointerId)}catch{}if(o.dataset.swipeBackState=`dragging`,o.dataset.swipeBackEdge=``,o.style.transition=`none`,n.back.preview!==null){let e=ce().firstElementChild,t=e instanceof HTMLElement?e.scrollHeight:0;t>0&&(me().style.minHeight=`${t}px`)}T(n)}O(n,e.clientX),e.preventDefault()},A=(e,t)=>{let n=r;if(n&&n.pointerId===e.pointerId&&!n.finishing){if(n.finishing=!0,!n.dragging){r=null;return}try{ue().releasePointerCapture(e.pointerId)}catch{}e.preventDefault(),c=performance.now()+500,n.velocityX=gG(n.samples,e.timeStamp),t||O(n,e.clientX),!t&&v(n)&&mG({distancePx:n.distance,widthPx:n.width,velocityPxPerSecond:n.velocityX})?D():E()}},ne=()=>Q().currentView()?.component.isSidebarReady?.()??!0,re=[];m(ne,e=>{if(!e)return;let t=re;re=[];for(let e of t)e()});let ae=e=>{let t=new Promise(e=>{setTimeout(()=>ie(ne)?e():re.push(e),0)});return jG(Promise.all([Promise.resolve(e).catch(EG),t]))},oe=async(e,t)=>{let r=Date.now();for(;;){let t=e.hold;if(await ae(t),await new Promise(e=>requestAnimationFrame(e)),n!==e)return;if(Date.now()-r>=2e3||e.hold===t&&ie(ne))break}t()},j=(e,r,i)=>{let a={phase:`exiting`,hold:r};n=a,t=!0,ce().replaceChildren(i?.content??f()),ce().style.transition=``,ue().style.transition=``,ce().style.transform=i?.transform??`translateX(0px)`,ue().style.transform=e===`right`?`translateX(40px)`:`translateX(-40px)`,ce().style.opacity=i?.opacity??`1`,ue().style.opacity=`0`,ce().offsetHeight,requestAnimationFrame(()=>{if(n!==a)return;let r=`160ms`;ce().style.transition=`opacity ${r}, transform ${r}`,ce().style.opacity=`0`,ce().style.transform=e===`left`?`translateX(40px)`:`translateX(-40px)`;let i=Date.now();a.phase=`held`,oe(a,()=>{a.phase=`entering`;let e=`${Math.max(0,160-(Date.now()-i))}ms`;ue().style.transition=`opacity ${r} ${e}, transform ${r} ${e}`,ue().style.opacity=`1`,ue().style.transform=`translateX(0px)`,CG(ue()).then(()=>{n===a&&(g(),n=null,t=!1)})})})};ze(()=>{let o=e=>{performance.now()<c&&(e.preventDefault(),e.stopImmediatePropagation())},s=e=>{let t=e.touches[0],n=e.target;!t||e.touches.length!==1||!Ue||!Fe()||n instanceof Element&&n.closest(`button, a, input, textarea, select, [contenteditable]`)||pG(t.clientX,0)&&e.preventDefault()};return e.enableSwipeBack&&(ue().addEventListener(`click`,o,!0),document.addEventListener(`touchstart`,s,{capture:!0,passive:!1})),e.setAnimateSidebar((e,o)=>{if(ce()&&ue()){if(r?.finishing&&ue().dataset.swipeBackState===`committing`){i=!0,a=o?.holdUntil??a;return}if(n&&n.phase!==`entering`){n.hold=o?.holdUntil??n.hold;return}if(n){let t=n,r=getComputedStyle(ue()),i={content:f(),opacity:r.opacity,transform:r.transform};queueMicrotask(()=>{n!==t||Kt(o?.holdUntil)&&ie(ne)||j(e,o?.holdUntil,i)});return}t||(p(),j(e,o?.holdUntil))}}),()=>{e.enableSwipeBack&&(ue().removeEventListener(`click`,o,!0),document.removeEventListener(`touchstart`,s,!0))}});let[ce,le]=o(null),[ue,de]=o(null),[fe,pe]=o(null),[me,he]=o(null);var ge=SG(),_e=ge.firstChild,ve=_e.nextSibling,ye=ve.nextSibling;return I(()=>he,ge),I(()=>le,_e),se(ve,`pointercancel`,e.enableSwipeBack?e=>A(e,!0):void 0),se(ve,`pointerup`,e.enableSwipeBack?e=>A(e,!1):void 0,!0),se(ve,`pointermove`,e.enableSwipeBack?k:void 0,!0),se(ve,`pointerdown`,e.enableSwipeBack?ee:void 0,!0),I(()=>de,ve),N(ve,()=>e.children),I(()=>pe,ye),M(()=>({e:F(z(B.column,B.fullWidth,B.displayGrid,B.grow,B.right(0),B.relative,B.overflowHidden
35)),t:e.enableSwipeBack?`prev-sidebar`:void 0,a:F(z(B.displayFlex,B.noPointerEvents,{position:`absolute`,inset:`0`,overflow:`hidden`,"z-index":`0`,"will-change":`transform, opacity`})),o:e.enableSwipeBack?`sidebar-swipe-surface`:void 0,i:e.retainPreviousView?Q().getSidebarPreviewRevision(`data`):void 0,n:e.retainPreviousView?Q().getSidebarPreviewRevision(`position`):void 0,s:F(z(B.keyedProp(`grid-area`)(`1/1`),B.displayFlex,B.bg(B.gray[26]),B.relative,{"z-index":`1`,"will-change":`transform, opacity`,"touch-action":e.enableSwipeBack?`pan-y`:void 0})),h:F(e.class),r:F(z(B.displayFlex,B.noPointerEvents,{position:`absolute`,top:`0`,right:`0`,bottom:`0`,left:`-16px`,"padding-left":`16px`,overflow:`hidden`,"z-index":`2`,"will-change":`transform, opacity`}))}),({e,t,a:n,o:r,i,n:a,s:o,h:s,r:c},l)=>{w(ge,e,l?.e),t!==l?.t&&C(_e,`id`,t),w(_e,n,l?.a),r!==l?.o&&C(ve,`data-testid`,r),i!==l?.i&&C(ve,`data-sidebar-preview-revision`,i),a!==l?.n&&C(ve,`data-sidebar-position-revision`,a),w(ve,o,l?.s),P(ve,s,l?.h),w(ye,c,l?.r)}),ge};ae([`pointerdown`,`pointermove`,`pointerup`]);var LG=l(`<div class="row items-center space-x-4 lg:space-x-8">`),RG=l(`<span><i>`),zG=l(`<div class="row items-center cursor-default"><p>`),BG=e=>{var t=LG();return N(t,x(b,{get each(){return e.icons},children:t=>{var n=zG(),r=n.firstChild;return N(r,()=>t.text),N(n,x(j,{get when(){return t.icon},get children(){var n=RG(),r=n.firstChild;return M(()=>({e:F(L(`ml-2`,e.trim&&`row h-0 items-center`)),t:F(L(t.class,t.icon,`text-sm lg:text-base`))}),({e,t},i)=>{P(n,e,i?.e),P(r,t,i?.t)}),n}}),null),M(()=>F(L(`text-sm font-semibold lg:text-base text-secondary tabular-nums`,e.trim&&`block glyph-trim-both`)),(e,t)=>{P(r,e,t)}),n}})),t},VG=l(`<p class=body-text>This will skip the first practice mode for all moves.`),HG=l(`<a target=_blank rel=noreferrer class="font-semibold ">your game`),UG=l(`<span>`),WG=l(`<span class="rounded-sm p-1 py-0.5 font-bold">`),GG=l(`<span class="rounded-sm p-1 py-0.5 font-bold"> on <!>`),KG=l(`<div data-testid=expected-move class=hidden aria-hidden=true>`),qG=l(`<div class="row w-full items-end justify-between padding-sidebar"><!><!>`),JG=l(`<p class="body-text leading-5 padding-sidebar cursor-default">`),YG=l(`<div>`),XG=e=>A(()=>e.children),ZG=()=>{QI(()=>!!b6().state.previousQuizGroup,()=>{Z(e=>{ce()?.(`left`),e.repertoireState.reviewState.actions.backToLastQuizGroup()})},`stay`);let e=()=>b6().state.completedReviewPositionMoves,t=()=>b6().state.currentQuizGroup,n=()=>b6().state.quizGroupStage;NR(e=>{Le&&(e===`d`&&Z(e=>{let t=e.repertoireState.reviewState.derived.getNextReviewPositionMove();if(!t)return;let n=ru(Q().getActiveChessboard().get(e=>e.position).moves({verbose:!0}),e=>e.san!==t.sanPlus),r=n[Math.floor(Math.random()*n.length)];Q().getActiveChessboard().requestToMakeMove(r)}),e===`a`&&Z(e=>{let t=e.repertoireState.reviewState.derived.getNextReviewPositionMove();if(!t)return;let n=Q().getActiveChessboard().get(e=>e.position).validateMoves([t.sanPlus])?.[0];n&&Q().getActiveChessboard().requestToMakeMove(n)}))});let r=()=>b6().state.viewingLastQuizGroup,i=()=>q().repertoireState.reviewState.state.activeOptions,a=()=>i()?.lichessMistakes,c=N6(),l=()=>q().repertoireState.reviewState.state.reviewSide,u=()=>Y().onboarding,d=()=>Y().reviewState.state.reviewStats,f=ZJ(),p=()=>a()?[{icon:null,class:`text-warning`,text:`${f()} Remaining`}]:[{icon:`fa fa-clock`,class:`text-learning`,text:`${f()} Due`},{icon:`fa-kit fa-tick`,class:`text-inverse bg-success rounded-full`,text:d().correct},{icon:`fa-kit fa-cross`,class:`text-inverse bg-danger rounded-full`,text:d().incorrect}],m=()=>{let e=[],r={onPress:()=>{Z(e=>{K(`${c()}.inspect_line`),e.repertoireState.reviewState.actions.inspectCurrentLine()})},style:`secondary`,text:`View in build mode`};if(n()===nH.Full)e.push({onPress:()=>{Z(e=>{ce()?.(`right`),e.repertoireState.reviewState.actions.setupNextQuizGroup()})},style:`primary`,text:`Got it, continue practicing`}),u().isOnboarding||e.push(r);else if(!ee()&&n()!==nH.Arrows){let i=T()?`skip`:te()&&n()<nH.Hints?`hint`:`arrows`;e.push({onPress:()=>{Z(e=>{(i===`skip`||i===`hint`)&&ce()?.(`right`),K(`${c()}.give_up`,{prompt:i,onboarding:u().isOnboarding}),e.repertoireState.reviewState.actions.giveUp()})},style:`primary`,text:i===`skip`?`I don't know, skip this one`:i===`hint`?`I don't know, give me a hint`:`I don't know, show me the answer`}),t()?.lichessMistake&&e.push({onPress:()=>{Z(e=>{ce()?.(`right`),e.repertoireState.reviewState.actions.setupNextQuizGroup()})},style:`primary`,text:`Skip this move, I meant to play it`}),!u().isOnboarding&&t()&&e.push(r)}return ee()&&(e.push({style:`secondary`,text:`Skip first practice`,onPress:()=>{Q().pushView($,{props:{header:`Skip first practice?`,bodyPadding:!0,children:VG(),actions:[{onPress:()=>{Z(e=>{e.repertoireState.reviewState.actions.skipFirstPractice(),e.repertoireState.skipFirstPractice(),Q().backOne()})},style:`primary`,text:`Yes, skip first practice`},{onPress:()=>{Z(e=>{Q().backOne()})},style:`primary`,text:`Cancel`}]}})}}),e.push({...r,style:`secondary`})),u().isOnboarding||e.push({onPress:()=>{Z(e=>{K(`${c()}.exit_practice`),iY()})},style:`secondary`,text:`Exit practice`}),e},h=q().userState,g=()=>h.user,v=_(()=>su(MN,e=>e.boardTheme===g()?.theme)||NN.default),y=()=>jN[v().boardTheme],S=()=>wz.getMoves(t())?.length??0,w=()=>Object.keys(e()).length,T=()=>t()?!!wz.getPlans(t()):!1,E=()=>q().repertoireState.reviewState.state,D=_(()=>wz.getMoves(t())),ee=()=>Ad(wz.getMoves(t())??[],e=>e.learning),te=()=>b6().derived.hasAnnotationsForCurrentQuizGroup(),O=_(()=>{if(!t()||Kt(D()))return null;let r=(D()??[]).filter(t=>e()?.[t.sanPlus]||t.learning||n()>=nH.Arrows);if(r.length<(D()?.length??0)){let e=new Set(r.map(e=>e.sanPlus)),t=D()?.find(t=>!e.has(t.sanPlus));t&&r.push(t)}let i=r.map(t=>{let r=e()?.[t.sanPlus],i=r||n()>=nH.Arrows||t.learning;return{side:l(),tags:[],score:0,repertoireMove:t,reviewInfo:{hideSan:!i,hideAnnotations:!t.learning&&!r&&n()===nH.Start,learning:t.learning}}});return x(QW,{allLocalStockfish:!1,get canAnnotate(){return n()>=nH.Arrows},unclickable:!0,get epd(){return t()?.epd},line:()=>t()?.line??[],usePeerRates:()=>!1,hideHeaders:!0,get currentSide(){return l()},get activeSide(){return l()},get side(){return l()},responses:()=>i})}),k=()=>{let e=t()?.lichessMistake;if(a()&&e)return[`In this position in`,` `,(()=>{var t=HG();return t.firstChild,ne(t),N(t,(()=>{var t=A(()=>!!e.opponentName);return()=>t()?` against ${e.opponentName}`:e.opponentName})(),null),M(()=>iH(e.source,e.gameId),e=>{C(t,`href`,e)}),t})(),`, you played`,` `,(()=>{var t=UG();return pe(t,[{get class(){return L(`text-orange-70 font-semibold cursor-pointer hover:bg-orange-30 p-0.5 -mr-0.5 rounded-sm`)}},ie],!0),N(t,()=>e.playedSan),t})(),`. Play the correct move on the board.`];if(n()===nH.Full&&!T()){if(S()===1)return`This is your saved move.`;if(S()>1&&r())return`You have multiple saved moves for this position.`}let i=t()?wz.getRemainingPlans(t(),E().planIndex):[];if(T()){let e=fu(i);return e?e.type===`castling`?[`Which side does`,` `,(()=>{var e=WG();return N(e,l),M(()=>y().highlightNextMove,t=>{s(e,`background-color`,t)}),e})(),` `,`usually castle to? Tap on the board to indicate the correct square.`]:[`Where does the`,` `,(()=>{var t=GG(),n=t.firstChild,r=n.nextSibling;return N(t,()=>Hz(e.piece),n),N(t,()=>e.fromSquare,r),M(()=>y().highlightNextMove,e=>{s(t,`background-color`,e)}),t})(),` `,`usually belong? Tap on the board to indicate the correct square.`]:`These are your plans from this position, take a second to review them.`}let o=wz.getMoves(t());if(u().isOnboarding||!ON())return ee()&&(o?.length??0)>1?`You have ${o?.length} saved moves for this position. Play them all on the board.`:S()>1&&w()>0?`You have another response. Play it on the board.`:o?.[0]?.epd===`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`?`Play your first move on the board.`:`Play the correct move on the board.`},{hovering:re,hoveringProps:ie}=Oz(),ae=()=>{if(Q().getActiveChessboard().getIsAnimating())return[];let r=wz.getMoves(t())?.filter(e=>!!(n()===nH.Arrows||ee()));if(!r||r.length===0)return[];let i=new ip(`${r[0].epd} 0 1`);return mu(r.map(e=>i.validateMoves([e.sanPlus])[0]),t=>({move:t,played:!!e()[t.san]}))},oe=()=>{let e=t()?.lichessMistake;if(!e)return null;let[n]=new ip(`${e.epd} 0 1`).validateMoves([e.playedSan]);return n??null},se=()=>Q().getActiveChessboard().get(e=>e.flipped),[ce,le]=o(null),P=()=>b6().derived.getNextReviewPositionMove()?.sanPlus;return[(()=>{var e=KG();return M(()=>P(),t=>{C(e,`data-expected-san`,t)}),e})(),x(Iz,{get board(){return Q().getActiveChessboard()},children:e=>x(XG,{onEnter:(e,t)=>{e.animate([{opacity:0}
35,{opacity:1}],{duration:c2()}).finished.then(t)},onExit:(e,t)=>{e.animate([{opacity:1},{opacity:0}],{duration:c2()}).finished.then(t)},get children(){return x(j,{get when(){return Q().currentView()?.component===ZG},get children(){return x(b,{get each(){return ae()},children:t=>(()=>{var n=YG();return N(n,x(Lz,{part:e,get transitionDurationMs(){return c2()},get faded(){return t.played},get flipped(){return se()},get toSquare(){return t.move.to},get fromSquare(){return t.move.from}})),n})()})}})}})}),x(Iz,{get board(){return Q().getActiveChessboard()},priority:!0,children:e=>x(j,{get when(){return oe()},children:t=>x(Lz,{part:e,get transitionDurationMs(){return c2()},faded:!1,get flipped(){return se()},get hidden(){return!re()},get toSquare(){return t().to},get fromSquare(){return t().from}})})}),x($,{header:null,actions:[],get children(){return[(()=>{var e=qG(),t=e.firstChild,n=t.nextSibling;return N(e,x(Zd,{get children(){return A(()=>!!a())()?`Reviewing mistakes`:A(()=>!!ON())()?`Practice`:`Practicing ${T()?`plans`:`moves`}`}}),t),N(e,x(BG,{get icons(){return p()},trim:!0}),n),e})(),x(j,{get when(){return k()},get fallback(){return x(R,{get height(){return ON()?32:36}})},get children(){return x(R,{between:[`header`,`body-text`]})}}),x(IG,{setAnimateSidebar:e=>le(()=>e),get children(){return[x(j,{get when(){return k()},get children(){return[(()=>{var e=JG();return N(e,k),e})(),x(R,{between:[`body-text`,`table`]})]}}),A(()=>O()),x(R,{between:[`table`,`actions`]}),x(H6,{get actions(){return m()}})]}})]}})]};LF(ZG,`review`);var QG=function(){let e=()=>X().derived.activeRepertoire();return x($,{bodyPadding:!0,header:`Are you sure?`,get actions(){return[{text:`Yes, delete "${e().name}"`,style:`primary`,onPress:()=>{Z(t=>{t.repertoireState.deleteRepertoire(e().id),vX(`left`),t.repertoireState.backToOverview(),K(`repertoire.deleted`)})}}]},get children(){return x(V,{get children(){return[`This will permanently delete "`,A(()=>e().name),`" and all of its moves. This cannot be undone.`]}})}})},$G=()=>{let e=()=>X().state.activeRepertoireId,[t,n]=o(!1),[r,i]=o(null),a=()=>{let t=Y().repertoires?.[e()];if(!t)return 0;let n=0;for(let e of Object.values(t.positionResponses))for(let t of e)t.source===`autofill`&&(n+=1);return n},s=()=>r()??a(),c=async()=>{i(a()),n(!0);try{K(`repertoire.autofilled_moves_removed`,{removedMoves:(await hN.call([`openings.removeAutofilledMoves`,{repertoireId:e()}])).removedMoves}),await Y().fetchRepertoire(),Z(()=>Q().popView()),mn.success(`Autofilled moves removed`)}catch{mn.error(`Could not remove autofilled moves`)}finally{n(!1),i(null)}};return x($,{bodyPadding:!0,header:`Remove autofilled moves?`,get loadingOverlay(){return t()},get actions(){return[{text:s()===0?`No autofilled moves to delete`:`Yes, delete ${s().toLocaleString()} ${s()===1?`move`:`moves`}`,style:`primary`,disabled:t()||s()===0,onPress:()=>void c()}]},get children(){return x(V,{class:`body-text`,children:`Moves you added manually, imported, or added from your games will stay.`})}})},eK=l(`<div class="col items-center"><div class=" w-full self-stretch"><div><form class="col gap-8"><div class=padding-sidebar></div><input type=submit hidden>`),tK=()=>{let e=()=>X().derived.activeRepertoire(),t=t=>{l(``),QS.post(`/api/v1/openings/rename`,{name:t.name,repertoireId:e().id}).then(({data:e})=>{Z(n=>{n.repertoireState.repertoireFetched(e),Q().clearViews(),su(e.repertoires,e=>e.name===t.name)&&Q().backOne()})}).catch(e=>{l(e?.response?.data?.error??`Something went wrong`)})},{form:n,setFields:r,errors:i,createSubmitHandler:a}=OF({initialValues:{name:e().name},onSubmit:t,extend:[DF({schema:xF({name:iF().label(`Name`).max(255).min(4).required()})})]}),s=a({onSubmit:t}),[c,l]=o(``);return x($,{actions:[{onPress:()=>{s()},text:`Save`,style:`focus`}],header:`Enter new name`,get children(){var t=eK(),a=t.firstChild.firstChild,o=a.firstChild,s=o.firstChild,l=s.nextSibling;return I(()=>n,o),N(s,x(lR,{get placeholder(){return e().name},setFields:r,type:`text`,name:`name`,get errors(){return i()}})),N(o,x(nR,{name:`Server error`,get error(){return c()},class:`inline-block`}),l),M(()=>F(z(B.br(4),B.px(0),B.py(0))),(e,t)=>{w(a,e,t)}),t}})},nK=l(`<div><!><!>`),rK=e=>x(BU,{each:()=>e.groups,separator:()=>x(R,{between:[`actions`,`actions`]}),children:e=>{var t=nK(),n=t.firstChild,r=n.nextSibling;return N(t,(()=>{var t=A(()=>!!e().title);return()=>t()?x(W6,{get text(){return e().title}}):e().title})(),n),N(t,x(H6,{get actions(){return e().actions}}),r),t}}),iK=l(`<span class="row items-center gap-1.5 font-semibold whitespace-nowrap"> locked<i class="fa-solid fa-lock">
35`),aK=e=>{let t=()=>{let t=Y().repertoires?.[e.repertoireId];return t?dz(Y().lockedMoves,t):0},n=()=>[{text:`Trim sideline transpositions`,style:`primary`,right:`Smallest size`,onPress:()=>{K(`side_overview.export.trim`,{hidden:t()}),Y().exportPgn(e.repertoireId,`trim`)}},{text:`Include all transpositions`,style:`primary`,right:`Most compatible`,onPress:()=>{K(`side_overview.export.full`,{hidden:t()}),Y().exportPgn(e.repertoireId,`full`)}},...t()>0?[{...Sz(`export`,`Upgrade to export all moves`),right:(()=>{var e=iK(),n=e.firstChild;return N(e,()=>t().toLocaleString(),n),e})()}]:[]];return x($,{get actions(){return n()},bodyPadding:!1,header:`Choose export format`})},oK=()=>{let e=()=>X().state.repertoireSide,t=`text-primary font-semibold`,n=()=>X().state.activeRepertoireId,r=()=>X().derived.activeRepertoire(),i=()=>Y().numMyMoves?.[n()]??0,a=()=>i()===0,o=()=>Y().getRepertoireThreshold(n()),s=()=>{let i=[];return(()=>{let n={title:void 0,actions:[]};n.actions.push({onPress:()=>{Z(e=>{K(`side_overview.rename_repertoire`),Q().pushView(tK)})},text:x(V,{get class(){return L(t)}
35,children:`Name`}),right:r().name,style:`secondary`}),n.actions.push({onPress:()=>{Z(t=>{K(`side_overview.import`),Q().pushView(iQ,{props:{side:e()}})})},text:x(V,{get class(){return L(t)},children:`Import`}),right:null,style:`secondary`}),a()||n.actions.push({onPress:()=>{Z(e=>{K(`side_overview.export`),Q().pushView(aK,{props:{repertoireId:r().id}})})},text:x(V,{get class(){return L(t)},children:`Export to PGN`}),right:null,style:`secondary`}),n.actions.length>0&&i.push(n)})(),(()=>{let e={title:`Advanced settings`,actions:[]};e.actions.push({onPress:()=>{Z(e=>{Q().pushView(Z1,{props:{repertoireId:n()}})})},text:x(V,{get class(){return L(t)},children:`Cover positions seen in`}),right:`${OM(o())} games`,style:`secondary`}),e.actions.length>0&&i.push(e)})(),(()=>{let n={title:`Danger zone`,actions:[]};a()||(n.actions.push({onPress:()=>{Z(()=>Q().pushView($G))},text:x(V,{get class(){return L(t)},children:`Remove autofilled moves`}),right:null,style:`secondary`}),n.actions.push({onPress:()=>{K(`side_overview.trim`),Z(e=>{Q().pushView(oQ)})},text:x(V,{get class(){return L(t)},children:`Trim unnecessary moves`}),right:null,style:`secondary`})),(Y().hasMultipleRepertoires(e())||!a())&&n.actions.push({onPress:()=>{Z(e=>{K(`side_overview.delete_repertoire`),Q().replaceView(QG)})},text:x(V,{get class(){return L(t)},children:`Delete`}),right:null,style:`secondary`}),n.actions.length>0&&i.push(n)})(),i};return x($,{header:`Settings`,actions:[],bodyPadding:!1,get children(){return x(rK,{get groups(){return s()}})}})},sK=e=>`https://lichess.org/analysis/${encodeURIComponent(e).replace(/%2F/g,`/`)}`,cK=(e,t)=>{if(H(e))return`https://lichess.org/analysis`;let n=t.side??mp.sideOfLastMove(e),r=`https://lichess.org/analysis/pgn/${e.join(`_`)}?color=${n}`;return t.ply&&(r+=`#${t.ply}`),r},lK=Re(`Browser`,{web:()=>ve(()=>import(`./web-DjzDFcf6.js`).then(e=>new e.BrowserWeb),__vite__mapDeps([21,4,1,2,5]),import.meta.url)}),uK=async e=>{if(Ye){await IN.openUrl({url:e});return}window.open(e,`_blank`,`noreferrer`)},dK=l(`<a rel=noreferrer>`),fK=l(`<div>`),pK=e=>{let t=()=>e.newTab??!0,n=Pi(()=>e.children);if(Ue){var r=dK();return r._$$click=t=>{t.stopPropagation(),e.onClick?.()},ne(r),N(r,n),M(()=>({e:e.href,t:t()?`_blank`:`_self`,a:F(e.style),o:F(e.class)}),({e,t,a:n,o:i},a)=>{e!==a?.e&&C(r,`href`,e),t!==a?.t&&C(r,`target`,t),w(r,n,a?.a),P(r,i,a?.o)}),r}if(Ye){var i=fK();return i._$$click=async t=>{t.stopPropagation(),e.onClick?.(),e.useDefaultBrowser?await uK(e.href):await lK.open({url:e.href})},N(i,n),M(()=>({e:F(e.style),t:F(e.class)}),({e,t},n)=>{w(i,e,n?.e),P(i,t,n?.t)}),i}};ae([`click`]);var mK=.65,hK=.01,gK=.4,_K={total_moves:{label:`Moves scored`,tooltip:`Prepared moves above your coverage target that the model scores. Below-threshold bonus lines are excluded.`},moves_with_actual:{label:`Enough reviews`,tooltip:`Moves with at least 10 reviews after filtering out rapid auto-submits (<5s apart). Only these get an actual wrong count.`},spearman:{label:`Rank correlation`,tooltip:`Spearman r between predicted and actual wrong-in-first-10 across reviewed moves. 1 = perfect ordering, 0 = none.`},pearson:{label:`Linear correlation`,tooltip:`Pearson r between predicted and actual wrong counts on reviewed moves. Measures numeric closeness, not just order.`},avg_predicted:{label:`Mean prediction`,tooltip:`Average predicted wrong answers in the first 10 burst-filtered reviews, across all scored moves (exp of the Tweedie model output).`},expected_wrong:{label:`Expected wrongs`,tooltip:`Sum of each move's predicted wrong count times its repertoire incidence. Lower is easier.`},total_incidence:{label:`Total incidence`,tooltip:`Sum of move incidences, roughly the expected number of scored repertoire decisions in one game.`},learnability_score:{label:`Learnability`,tooltip:`Expected wrongs placed between the constructed floor and ceiling for this rating, side, and coverage cell. Higher is easier.`},predicted_distribution:{label:`Predicted spread`,tooltip:`Five-number summary (min / Q1 / median / Q3 / max) of per-move predicted wrong-in-first-10 across all scored moves.`},actual_distribution:{label:`Actual spread`,tooltip:`Same summary for actual wrong-in-first-10, but only on moves with enough filtered reviews.`},global_feature_importance:{label:`Global feature importance`,tooltip:`Mean absolute SHAP value per model input across all scored moves. Shows which features drive predictions overall, not for one move.`},move:{label:`Move`,tooltip:`Your prepared response in standard algebraic notation.`},predicted:{label:`Pred`,tooltip:`Predicted wrong answers in the first 10 burst-filtered reviews for this move (Tweedie model, exp link).`},actual_wrong_10:{label:`Wrong10`,tooltip:`Actual wrong answers in the first 10 burst-filtered reviews. Blank if fewer than 10 usable reviews.`},prediction_error:{label:`Err`,tooltip:`Absolute difference between predicted and actual wrong-in-first-10 (only when actual is known).`},num_reviews:{label:`Rev`,tooltip:`Total FSRS reviews recorded for this move (before burst filtering).`},incidence:{label:`How often do you see this position in actual games?`,tooltip:`Probability of reaching this prepared move when you play this repertoire (shown as 0â100% in the table).`},bias:{label:`SHAP bias`,tooltip:`Model intercept on the log scale (SHAP bias term). Same for every move in this repertoire; per-move SHAP values add to this baseline.`},filtered_reviews:{label:`How many times have you reviewed this move?`,tooltip:`Reviews kept after remov
35ing rapid-fire bursts (<5s apart). Used for wrong-in-first-10 and training targets.`},predicted_move_prob:{label:`How often do players at your level play this move?`,tooltip:`Opening-book probability that a player at your Elo plays this exact move from this position.`},knn_valid_neighbor_count:{label:`How many similar positions are relevant here?`,tooltip:`Count of similar repertoire positions (cosine >= 0.65, up to 5) that are mutually relevant: your move here is a >=1% book move there, and the move you play there is a >=1% book move here (or is the same move). More relevant neighbors = more transferable context.`},knn_valid_match_ratio:{label:`How often do you play this move in similar positions?`,tooltip:`Of the relevant similar positions, the fraction where you play the SAME move as here. High = consistent choices across the theme (transfer, easier to remember). Low = conflicting choices in similar positions (interference). 0 when there are no relevant neighbors.`},cluster_size_95:{label:`How many near-duplicate positions are in your repertoire?`,tooltip:`Diagnostic count of other repertoire positions whose embedding cosine similarity to this one is at least 0.95. This is not the K=5 neighbor count used by the model.`},position_progression:{label:`How many moves deep is this?`,tooltip:`Half-moves from the starting position along this line (deeper = farther into the opening).`},shap_attributions:{label:`Effect on difficulty score`,tooltip:`How much each model input pushes this move's prediction up (harder, red) or down (easier, green) on the log scale.`},predicted_difficulty:{label:`Total predicted difficulty`,tooltip:`Predicted wrong answers in your first 10 burst-filtered reviews for this move. Red if harder than the median move in this repertoire, green if easier.`},neighbor_p_query_move:{label:`Your move there`,tooltip:`Opening-book probability that a player at your Elo plays the move you're learning from THIS neighbor position. Must be at least 1% for the neighbor to count as relevant.`},neighbor_p_at_query:{label:`Their move here`,tooltip:`Opening-book probability that the move you play at the neighbor position is played from the position you're learning. Must be at least 1% (or be the same move) for the neighbor to count as relevant.`},neighbor_similarity:{label:`Similarity`,tooltip:`Raw cosine similarity between the two position embeddings. Neighbors below 0.65 never count as relevant.`}},vK={incidence:`incidence`,knn_valid_neighbor_count:`knn_valid_neighbor_count`,knn_valid_match_ratio:`knn_valid_match_ratio`,predicted_move_prob:`predicted_move_prob`,position_progression:`position_progression`},yK=new Set([`incidence`,`predicted_move_prob`,`knn_valid_match_ratio`]);function bK(e,t){let n=vK[e]??e;return n===`position_progression`?`${Math.round(t)}ply`:n===`knn_valid_neighbor_count`?String(Math.round(t)):yK.has(n)?`${(t*100).toFixed(1)}%`:t.toFixed(2)}function xK(e){let t=vK[e];if(t)return _K[t];let n=_K[e];if(n)return n;let r=e.replace(/_/g,` `);return{label:r,tooltip:`Model feature: ${r}.`}}var SK=l(`<span>`),CK=l(`<p class="text-xs leading-snug">`),wK=e=>{let t=()=>xK(e.field);var n=SK();return I(()=>e=>{vE({ref:e,content:()=>(()=>{var e=CK();return N(e,()=>t().tooltip),e})(),maxWidth:300})},n),N(n,()=>e.children??t().label),M(()=>`cursor-help ${e.class??``}`,(e,t)=>{P(n,e,t)}),n},TK=l(`<div class="padding-sidebar py-8 text-center"><i class="fa fa-spinner-third animate-spin text-tertiary text-lg"></i><p class="text-tertiary text-sm mt-2">Scoring your moves...`),EK=l(`<div class="padding-sidebar pb-6"><div class="mt-4 mb-1 flex flex-row justify-end"><button type=button>Reviewed only</button></div><div class=-mx-2></div><div class=mt-6>`),DK=l(`<div class="flex flex-col gap-0.5"><span>`),OK=l(`<div class="bg-gray-30 rounded-sm p-4"><p class="mt-3 text-[11px] text-tertiary"> moves scored · <!> with enough review history`),kK=l(`<p class="text-sm text-tertiary">Learnability bounds are unavailable for this rating and coverage cell.`),AK=l(`<div class="mt-1 flex flex-col">`),jK=l(`<div class=mt-3><button type=button class="flex w-full flex-row items-baseline justify-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-gray-32"><i></i><span></span><span class="text-xs text-tertiary">(<!>)`),MK=l(`<span class="shrink-0 rounded-sm bg-warning/15 px-1 text-[10px] text-warning">uncommon`),NK=l(`<span class="shrink-0 rounded-sm bg-danger/15 px-1 text-[10px] text-danger">inconsistent`),PK=l(`<div><div class="flex flex-row items-baseline gap-2"><span class="shrink-0 font-mono text-xs font-medium text-primary"></span><span class="min-w-0 flex-1 truncate text-[11px] text-tertiary"></span><!><span>`),FK=l(`<div class="mx-2 mt-1.5 mb-3 rounded-sm bg-gray-30 p-4">`),IK=l(`<div class="flex flex-col gap-5"><div class="flex flex-row justify-center"></div><!><!>`),LK=l(`<div class="flex flex-col gap-1.5 rounded-sm border border-gray-37 p-3"><p class="text-xs font-semibold text-secondary">Nothing to change here</p><p class="text-xs leading-snug text-secondary"><span class=font-mono></span> is common at your level<!>. You reach this decision in <!> of games with this repertoire. Its remaining difficulty comes from the position and depth of the line, not something a different move would fix.`),RK=l(`<div class="flex flex-col gap-1.5"><p class="text-xs font-semibold text-secondary">How common is your move?</p><p class="text-xs text-secondary">Only <span class="font-mono tabular-nums text-warning"></span> of players at your level play <span class=font-mono></span> here.</p><div class="relative h-[4px] w-full max-w-60 overflow-hidden rounded-full bg-gray-40"><div class="absolute inset-y-0 left-0 bg-warning"></div></div><p class="text-[11px] leading-snug text-tertiary">Rare choices are harder to drill in. If a more popular alternative fits your repertoire, it will likely be easier to remember.`),zK=l(`<div class="mt-1 flex flex-row gap-2 overflow-x-auto pb-1">`),BK=l(`<p class="mb-1.5 text-[11px] leading-snug text-tertiary">Similar-looking positions that don't count toward the score: a red bar means that metric failed its relevance gate (tick mark).`),VK=l(`<div class="flex flex-row gap-2 overflow-x-auto pb-1">`),HK=l(`<div class="flex flex-col gap-1.5"><p class="text-xs leading-snug text-secondary"></p><p class="text-[11px] leading-snug text-tertiary">Different moves in lookalike positions interfere with each other. Playing the same move in both (when it's sound) makes both easier to remember.</p><!><!>`),UK=l(`<div class="flex flex-col gap-1 rounded-sm border border-gray-37 p-2"><p class="text-[11px] font-medium text-tertiary">Also affects the score, but not something a different move would fix</p><!><!>`),WK=l(`<div class="flex flex-col gap-2 text-xs"><div class="grid w-max grid-cols-[auto_auto] items-baseline gap-x-3 gap-y-1"><!><!><!><!><!></div><div class="grid w-max grid-cols-[auto_auto] items-baseline gap-x-3 gap-y-1">`),GK=l(`<span class="text-right font-mono text-secondary whitespace-nowrap tabular-nums">`),KK=l(`<div class=mt-2>`),qK=l(`<div><button type=button><i></i><span>`),JK=l(`<div class="absolute -inset-y-[2px] w-px bg-gray-60">`),YK=l(`<div class="flex flex-col gap-[3px]"><div class="flex flex-row items-baseline justify-between gap-2"><span></span></div><div class="relative h-[3px] w-full rounded-full bg-gray-40"><div>`),XK=l(`<span class="mr-1 inline-block rounded-sm bg-gray-40 px-1 font-semibold text-secondary">#`),ZK=l(`<span>Lichess`),QK=l(`<i class="fa fa-up-right-from-square text-[9px]">`),$K=l(`<div class="mb-1 grid w-full grid-cols-[1fr_auto] items-center gap-2"><p>Here you play <span class=font-semibold>`),eq=l(`<div class="mt-1.5 flex flex-col gap-1"><!><!><!>`),tq=l(`<div><div class="relative w-full aspect-square overflow-hidden rounded-sm pointer-events-none bg-gray-21"></div><!>`),nq=l(`<p class="mb-1 text-[10px] uppercase tracking-wide text-tertiary">`),rq=l(`<span class="flex items-baseline justify-end gap-2 font-mono text-secondary whitespace-nowrap tabular-nums"><span></span><span><!><!>`),iq=l(`<div class="rounded-sm bg-gray-30 p-3"><div class="grid grid-cols-2 gap-x-4 gap-y-1 text-xs"><!><!><!><!><!></div><p class="text-tertiary text-xs mt-3 mb-1 font-medium">Repertoire learnability</p><div class="grid grid-cols-2 gap-x-4 gap-y-1 text-xs"><!><!><!><!></div><p class="text-tertiary text-xs mt-3 mb-1 font-medium">Distributions <span class="text-tertiary font-normal">(min / Q1 / med / Q3 / max)</span></p><div class="grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-xs"><span class="font-mono text-secondary"></span><!></div><p class="text-tertiary text-xs mt-3 mb-1 font-medium"> (mean |SHAP|)`),aq=l(`<span class="font-mono text-secondary">`),oq=l(`<span>`),sq=l(`<div class="flex flex-col gap-0.5">`),cq=l(`<div class="flex flex-row items-center gap-2 text-xs"><span class="text-tertiary w-4 text-right">.</span><span class="text-right font-mono text-secondary whitespace-nowrap tabular-nums w-16"></span><span class="text-right font-mono text-secondary whitespace-nowrap tabular-nums w-12">%`),lq=`text-tertiary whitespace-nowrap`,uq=`text-right font-mono text-secondary whitespace-nowrap tabular-nums`,dq=2,fq=1,pq=.05,mq=[`hard`,`medium`,`noFix`,`easy`],hq={hard:{title:`Hard to learn`,color:`text-danger`,defaultCollapsed:!1},medium:{title:`A bit tricky`,color:`text-warning`,defaultCollapsed:!1},noFix:{title:`Hard to memorize, but nothing to change`,color:`text-secondary`,defaultCollapsed:!0},easy:{title:`Easy`,color:`text-success`,defaultCollapsed:!0}};function gq(e){let t={};for(let n of Object.values(e))for(let e of n)e.epdAfter in t||(t[e.epdAfter]=e.epd);return t}function _q(e,t,n){let r=[],i=new Set,a=e.epd;for(;a&&!i.has(a)&&(r.push(a),i.add(a),a!==`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`);)a=t[a];r.reverse(),r.push(e.epdAfter);for(let e=r.length-1;e>=0;e--){let t=n[r[e]];if(t?.fullName){let e=kF.toEcoNames(t);return e.lastVariation?`${e.name}: ${e.lastVariation}`:e.name}}return null}function vq(e){return{uncommon:e.predictedMoveProb<pq,inconsistent:e.knnValidNeighborCount>0&&e.knnValidMatchRatio<.999}}function yq(e){let t=vq(e);return t.uncommon||t.inconsistent}function bq(e){return e.predictedDifficulty<fq?`easy`:yq(e)?e.predictedDifficulty>=dq?`hard`:`medium`:`noFix`}function xq(e){return e>=dq?`text-danger`:e>=fq?`text-warning`:`text-success`}function Sq(e){return e.split(` `)[1]===`b`?`black`:`white`}function Cq(e){return`${Math.floor(e.positionProgression/2)+1}${Sq(e.epd)===`black`?`â¦`:`. `}${e.san}`}var wq=()=>{let e=()=>X().state.activeRepertoireId,[t,n]=o(!1),[r,i]=o(null),[a,s]=o({}),c=e=>{try{let t=new ip(EE.toFen(e));Q().getActiveChessboard().set(e=>{e.previewPosition=ez(t)})}catch{}},l=()=>{Q().getActiveChessboard().set(e=>{e.previewPosition=null})},u=_(()=>{let t=e();return t?hN.call([`admin.learnabilityDebug`,{repertoireId:t}]):null}),d=_(()=>{let e=u(),n={hard:[],medium:[],noFix:[],easy:[]};if(!e)return n;let r=e.moves;t()&&(r=r.filter(e=>e.actualWrongInFirst10!==null));for(let e of r)n[bq(e)].push(e);for(let e of Object.values(n))e.sort((e,t)=>
35t.predictedDifficulty-e.predictedDifficulty);return n}),f=e=>a()[e]??hq[e].defaultCollapsed,p=_(()=>{let e=X().derived.activeRepertoire(),t=Y().ecoCodeLookup,n=e?gq(e.positionResponses):{};return e=>_q(e,n,t)});return x($,{header:`Learnability`,actions:[],bodyPadding:!1,get children(){return x(ce,{get fallback(){return TK()},get children(){return x(j,{get when(){return u()},children:e=>(()=>{var a=EK(),o=a.firstChild,u=o.firstChild,m=o.nextSibling,h=m.nextSibling;return N(a,x(Tq,{get summary(){return e().summary}}),o),u._$$click=()=>n(e=>!e),m.addEventListener(`mouseleave`,l),N(m,x(b,{each:mq,children:e=>x(Eq,{bucket:e,get moves(){return d()[e]},get nameForMove(){return p()},get collapsed(){return f(e)},onToggleCollapsed:()=>s(t=>({...t,[e]:!f(e)})),get expandedMove(){return r()},onToggleMove:e=>i(t=>t===e?null:e),onHoverMove:c})})),N(h,x(Fq,{label:`Model internals`,get children(){return x(Gq,{get summary(){return e().summary}})}})),M(()=>`shrink-0 rounded-sm px-2 py-1 text-[11px] font-medium transition-colors ${t()?`bg-purple-55 text-white`:`bg-gray-34 text-tertiary hover:text-secondary`}`,(e,t)=>{P(u,e,t)}),a})()})}})}})};function Tq(e){let t=()=>e.summary.learnabilityScore,n=()=>{let e=t();return e===null?`text-secondary`:e>=.66?`text-success`:e>=.33?`text-warning`:`text-danger`};var r=OK(),i=r.firstChild,a=i.firstChild,o=a.nextSibling;return o.nextSibling,N(r,x(j,{get when(){return t()!==null},get fallback(){return kK()},get children(){var e=DK(),r=e.firstChild;return N(r,()=>`${((t()??0)*100).toFixed(0)}%`),N(e,x(wK,{field:`learnability_score`,class:`text-xs font-medium text-tertiary`,children:`Learnability score`}),null),M(()=>`text-3xl font-semibold leading-none tabular-nums ${n()}`,(e,t)=>{P(r,e,t)}),e}}),i),N(i,()=>e.summary.totalMoves,a),N(i,()=>e.summary.movesWithActual,o),r}function Eq(e){let t=hq[e.bucket];return x(j,{get when(){return e.moves.length>0},get children(){var n=jK(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.firstChild.nextSibling;return s.nextSibling,se(r,`click`,e.onToggleCollapsed,!0),N(a,()=>t.title),N(o,()=>e.moves.length,s),N(n,x(j,{get when(){return!e.collapsed},get children(){var t=AK();return N(t,x(b,{get each(){return e.moves},children:t=>x(Dq,{move:t,get openingName(){return e.nameForMove(t)},get expanded(){return e.expandedMove===t.epd+t.san},onToggle:()=>e.onToggleMove(t.epd+t.san),onHover:()=>e.onHoverMove(t.epd)})})),t}}),null),M(()=>({e:`fa fa-chevron-right text-[10px] text-tertiary transition-transform ${e.collapsed?``:`rotate-90`}`,t:`text-sm font-semibold ${t.color}`}),({e,t},n)=>{P(i,e,n?.e),P(a,t,n?.t)}),n}})}function Dq(e){let t=()=>vq(e.move);return[(()=>{var n=PK(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return se(n,`mouseenter`,e.onHover),se(n,`click`,e.onToggle,!0),N(i,()=>Cq(e.move)),N(a,()=>e.openingName??``),N(r,x(j,{get when(){return t().uncommon},get children(){return MK()}}),o),N(r,x(j,{get when(){return t().inconsistent},get children(){return NK()}}),s),N(s,()=>e.move.predictedDifficulty.toFixed(1)),M(()=>({e:`cursor-pointer rounded-sm px-2 py-1.5 hover:bg-gray-32 ${e.expanded?`bg-gray-32`:``}`,t:`shrink-0 font-mono text-xs tabular-nums ${xq(e.move.predictedDifficulty)}`}),({e,t},r)=>{P(n,e,r?.e),P(s,t,r?.t)}),n})(),x(j,{get when(){return e.expanded},get children(){var t=FK();return se(t,`mouseenter`,e.onHover),N(t,x(Oq,{get move(){return e.move}})),t}})]}function Oq(e){let t=()=>vq(e.move),n=()=>yq(e.move);var r=IK(),i=r.firstChild,a=i.nextSibling,o=a.nextSibling;return N(i,x(Vq,{get epd(){return e.move.epd},get san(){return e.move.san},tone:`neutral`,positionHeader:!0})),N(r,x(j,{get when(){return n()},get fallback(){return x(kq,{get move(){return e.move}})},get children(){return[x(j,{get when(){return t().uncommon},get children(){return x(Aq,{get move(){return e.move}})}}),x(j,{get when(){return t().inconsistent},get children(){return x(jq,{get move(){return e.move}})}}),x(Mq,{get move(){return e.move}})]}}),a),N(r,x(Fq,{label:`Model attribution`,small:!0,get children(){return x(Nq,{get move(){return e.move}})}}),o),r}function kq(e){let t=()=>e.move.knnValidNeighborCount>0,n=()=>bK(`incidence`,e.move.incidence);var r=LK(),i=r.firstChild.nextSibling,a=i.firstChild,o=a.nextSibling.nextSibling,s=o.nextSibling.nextSibling;return s.nextSibling,N(a,()=>e.move.san),N(i,()=>
35t()?` and matches what you play in similar positions`:``,o),N(i,n,s),r}function Aq(e){let t=()=>e.move.predictedMoveProb;var n=RK(),r=n.firstChild.nextSibling,i=r.firstChild.nextSibling,a=i.nextSibling.nextSibling,o=r.nextSibling.firstChild;return N(i,()=>bK(`predicted_move_prob`,t())),N(a,()=>e.move.san),M(()=>`${Math.max(Math.sqrt(t())*100,t()>0?2:0)}%`,e=>{s(o,`width`,e)}),n}function jq(e){let t=_(()=>e.move.knnValidNeighbors.filter(e=>e.countedAsValid).sort((e,t)=>e.matchesQueryMove===t.matchesQueryMove?e.countedRank-t.countedRank:e.matchesQueryMove?1:-1)),n=_(()=>e.move.knnValidNeighbors.filter(e=>!e.countedAsValid).sort((e,t)=>t.similarity-e.similarity)),r=_(()=>t().filter(e=>!e.matchesQueryMove)),i=_(()=>[...new Set(r().map(e=>e.san))]),a=()=>{let e=t().length,n=r().length;return`You play ${i().join(`, `)} instead in ${n} of ${e} similar position${e===1?``:`s`}.`};var o=HK(),s=o.firstChild,c=s.nextSibling.nextSibling,l=c.nextSibling;return N(o,x(wK,{field:`knn_valid_match_ratio`,class:`text-xs font-semibold text-secondary`,children:`What do you play in similar positions?`}),s),N(s,a),N(o,x(j,{get when(){return t().length>0},get children(){var n=zK();return N(n,x(b,{get each(){return t()},children:t=>x(Iq,{neighbor:t,get queryMoveSan(){return e.move.san}})})),n}}),c),N(o,x(j,{get when(){return n().length>0},get children(){return x(Fq,{get label(){return`Nearby positions that didn't make the cutoff (${n().length})`},small:!0,get children(){return[BK(),(()=>{var t=VK();return N(t,x(b,{get each(){return n()},children:t=>x(Iq,{neighbor:t,get queryMoveSan(){return e.move.san},showMetrics:!0})})),t})()]}})}}),l),o}function Mq(e){let t=()=>Math.floor(e.move.positionProgression/2)+1;var n=UK(),r=n.firstChild.nextSibling,i=r.nextSibling;return N(n,x(wK,{field:`incidence`,class:`text-[11px] text-tertiary`,get children(){return`Reached in ${bK(`incidence`,e.move.incidence)} of games with this repertoire`}}),r),N(n,x(wK,{field:`position_progression`,class:`text-[11px] text-tertiary`,get children(){return`Move ${t()} of the line`}}),i),n}function Nq(e){let t=()=>e.move.actualWrongInFirst10===null?null:Math.abs(e.move.predictedDifficulty-e.move.actualWrongInFirst10);var n=WK(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=s.nextSibling,l=r.nextSibling;return N(r,x(Pq,{field:`num_reviews`,get value(){return String(e.move.numReviews)}}),i),N(r,x(Pq,{field:`filtered_reviews`,get value(){return String(e.move.numReviewsAfterFilter)}}),a),N(r,x(Pq,{field:`predicted`,get value(){return e.move.predictedDifficulty.toFixed(2)}}),o),N(r,x(Pq,{field:`actual_wrong_10`,get value(){return A(()=>e.move.actualWrongInFirst10!==null)()?String(e.move.actualWrongInFirst10):`-`}}),s),N(r,x(Pq,{field:`prediction_error`,get value(){return A(()=>t()!==null)()?t().toFixed(2):`-`}}),c),N(l,x(b,{get each(){return e.move.attributions.slice(0,10)},children:e=>x(Uq,{attr:e})})),n}function Pq(e){return[x(wK,{get field(){return e.field},class:lq}),(()=>{var t=GK();return N(t,()=>e.value),t})()]}function Fq(e){let[t,n]=o(!1);var r=qK(),i=r.firstChild,a=i.firstChild,s=a.nextSibling;return i._$$click=()=>n(e=>!e),N(s,()=>e.label),N(r,x(j,{get when(){return t()},get children(){var t=KK();return N(t,()=>e.children),t}}),null),M(()=>({e:`flex flex-row items-center justify-start gap-1.5 text-tertiary hover:text-secondary ${e.small?`text-[11px]`:`text-xs font-medium`}`,t:`fa fa-chevron-right text-[9px] transition-transform ${t()?`rotate-90`:``}`}),({e,t},n)=>{P(i,e,n?.e),P(a,t,n?.t)}),r}function Iq(e){return x(Vq,{get epd(){return e.neighbor.epd},get san(){return e.neighbor.san},get tone(){return A(()=>!!e.neighbor.countedAsValid)()?e.neighbor.matchesQueryMove?`match`:`miss`:`muted`},positionHeader:!0,get countedRank(){return A(()=>!!e.neighbor.countedAsValid)()?e.neighbor.countedRank:void 0},get neighborSimilarity(){return A(()=>!!e.showMetrics)()?e.neighbor.similarity:void 0},get pQueryMoveAtNeighbor(){return A(()=>!!e.showMetrics)()?e.neighbor.pQueryMoveAtNeighbor:void 0},get pNeighborMoveAtQuery(){return A(()=>!!e.showMetrics)()?e.neighbor.pNeighborMoveAtQuery:void 0},get neighborMatchesQueryMove(){return e.neighbor.matchesQueryMove},get queryMoveSan(){return e.queryMoveSan}})}function Lq(e){return`${(e*100).toFixed(1)}%`}function Rq(e){let t=1-gK;return(e-gK)/t}function zq(e){let t=()=>{let t=Math.min(1,Math.max(0,e.fill));return t>0?Math.max(t*100,2):0};var n=YK(),r=n.firstChild,i=r.firstChild,a=r.nextSibling,o=a.firstChild;return N(r,x(wK,{get field(){return e.field},class:`min-w-0 truncate font-mono text-[10px] leading-tight text-tertiary`,get children(){return e.label}}),i),N(i,()=>e.value),N(a,x(j,{get when(){return e.tick!==void 0},get children(){var t=JK();return M(()=>`${Math.min(100,Math.max(0,(e.tick??0)*100))}%`,e=>{s(t,`left`,e)}),t}}),null),M(()=>({e:`shrink-0 font-mono text-[10px] leading-tight tabular-nums ${e.pass?`text-secondary`:`text-danger`}`,t:`absolute inset-y-0 left-0 rounded-full ${e.pass?`bg-success`:`bg-danger`}`,a:`${t()}%`}),({e,t,a:n},r)=>{P(i,e,r?.e),P(o,t,r?.t),n!==r?.a&&s(o,`width`,n)}),n}function Bq(e){try{return new ip(EE.toFen(e)).turn()===`b`?`black`:`white`}catch{return`white`}}function Vq(e){let t=()=>e.positionHeader,[n,r]=o(null);ze(()=>{let t=D2({epd:e.epd,side:Bq(e.epd),hideCoordinates:!0,autoCleanup:!1});return r(t),()=>t.dispose()}),m(()=>({chessboard:n(),epd:e.epd,side:Bq(e.epd)}),({chessboard:e,epd:t,side:n})=>{e&&(e.setPosition(ez(new ip(`${t} 0 1`))),e.setPerspective(n),e.set(e=>{e.hideCoordinates=!0}))});let i=_(()=>{try{return new ip(EE.toFen(e.epd)).validateMoves([e.san])?.[0]??null}catch{return null}}),a=()=>e.tone===`match`?B.success:e.tone===`miss`?B.danger:e.tone===`muted`?B.gray[51]:B.arrowColors[75],s=()=>e.tone===`match`?`border-success bg-gray-32 text-success`:e.tone===`miss`?`border-danger bg-gray-32 text-danger`:e.tone===`muted`?`border-gray-40 bg-gray-32/60 text-tertiary opacity-70`:`border-gray-42 bg-gray-32 text-primary`,c=()=>e.tone===`match`?`text-success`:e.tone===`miss`?`text-danger`:e.tone===`muted`?`text-tertiary`:`text-primary`;var l=tq(),u=l.firstChild,d=u.nextSibling;return N(l,x(j,{get when(){return t()},get fallback(){var t=nq();return N(t,()=>e.label??``),t},get children(){var t=$K(),n=t.firstChild,r=n.firstChild,i=r.nextSibling;return N(n,x(j,{get when(){return e.countedRank!==void 0},get children(){var t=XK();return t.firstChild,N(t,()=>Math.round(e.countedRank??0)+1,null),t}}),r),N(i,()=>e.san),N(t,x(pK,{get href(){return sK(e.epd)},class:`inline-flex shrink-0 items-center justify-self-end gap-1 text-[10px] text-tertiary hover:text-primary transition-colors`,get children(){return[ZK(),QK()]}}),null),M(()=>`min-w-0 text-left text-[10px] leading-tight font-mono ${c()}`,(e,t)=>{P(n,e,t)}),t}}),u),N(u,x(j,{get when(){return n()},children:e=>[x(u2,{get chessboardInterface(){return e()},static:!0}),x(j,{get when(){return i()},children:t=>x(Iz,{get board(){return e()},children:n=>x(Lz,{part:n,get transitionDurationMs(){return c2()},faded:!1,get flipped(){return e().get(e=>e.flipped)},get fromSquare(){return t().from}
35,get toSquare(){return t().to},get color(){return a()}})})})]})),N(l,x(j,{get when(){return e.neighborSimilarity!==void 0||e.pQueryMoveAtNeighbor!==void 0||e.pNeighborMoveAtQuery!==void 0},get children(){var t=eq(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return N(t,x(j,{get when(){return e.neighborSimilarity!==void 0},get children(){return x(zq,{field:`neighbor_similarity`,label:`Similarity`,get value(){return Lq(e.neighborSimilarity??0)},get fill(){return Rq(e.neighborSimilarity??0)},get tick(){return Rq(mK)},get pass(){return(e.neighborSimilarity??0)>=mK}})}}),n),N(t,x(j,{get when(){return e.pQueryMoveAtNeighbor!==void 0},get children(){return x(zq,{field:`neighbor_p_query_move`,get label(){return`P(${e.queryMoveSan??`your move`} | here)`},get value(){return Lq(e.pQueryMoveAtNeighbor??0)},get fill(){return Math.sqrt(e.pQueryMoveAtNeighbor??0)},get tick(){return Math.sqrt(hK)},get pass(){return(e.pQueryMoveAtNeighbor??0)>=hK}})}}),r),N(t,x(j,{get when(){return e.pNeighborMoveAtQuery!==void 0},get children(){return x(zq,{field:`neighbor_p_at_query`,get label(){return`P(${e.san} | query)`},get value(){return Lq(e.pNeighborMoveAtQuery??0)},get fill(){return Math.sqrt(e.pNeighborMoveAtQuery??0)},get tick(){return Math.sqrt(hK)},get pass(){return(e.pNeighborMoveAtQuery??0)>=.01||e.neighborMatchesQueryMove===!0}})}}),i),t}}),d),M(()=>`w-44 shrink-0 rounded-sm border p-2 ${s()}`,(e,t)=>{P(l,e,t)}),l}function Hq(e){return e>0?`text-danger`:e<0?`text-success`:`text-secondary`}function Uq(e){return[x(wK,{get field(){return e.attr.name},class:lq}),(()=>{var t=rq(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=i.nextSibling;return N(n,()=>bK(e.attr.name,e.attr.featureValue)),N(r,()=>e.attr.shapValue>0?`+`:``,i),N(r,()=>e.attr.shapValue.toFixed(2),a),M(()=>F(Hq(e.attr.shapValue)),(e,t)=>{P(r,e,t)}),t})()]}function Wq(e){return`${e.min.toFixed(2)} / ${e.q1.toFixed(2)} / ${e.median.toFixed(2)} / ${e.q3.toFixed(2)} / ${e.max.toFixed(2)}`}function Gq(e){var t=iq(),n=t.firstChild,r=n.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=n.nextSibling.nextSibling,l=c.firstChild,u=l.nextSibling,d=u.nextSibling,f=d.nextSibling,p=c.nextSibling.nextSibling,m=p.firstChild,h=m.nextSibling,g=p.nextSibling,_=g.firstChild;return N(n,x(Kq,{field:`total_moves`,get value(){return String(e.summary.totalMoves)}}),r),N(n,x(Kq,{field:`moves_with_actual`,get value(){return String(e.summary.movesWithActual)}}),i),N(n,x(Kq,{field:`spearman`,get value(){return A(()=>e.summary.spearman!==null)()?e.summary.spearman.toFixed(4):`n/a`},get highlight(){return e.summary.spearman!==null}}),a),N(n,x(Kq,{field:`pearson`,get value(){return A(()=>e.summary.pearson!==null)()?e.summary.pearson.toFixed(4):`n/a`},get highlight(){return e.summary.pearson!==null}}),o),N(n,x(Kq,{field:`bias`,get value(){return A(()=>e.summary.shapBias!=null)()?e.summary.shapBias.toFixed(4):`n/a`}}),s),N(c,x(Kq,{field:`avg_predicted`,get value(){return e.summary.avgPredicted.toFixed(3)}}),l),N(c,x(Kq,{field:`expected_wrong`,get value(){return e.summary.expectedWrong.toFixed(3)}}),u),N(c,x(Kq,{field:`total_incidence`,get value(){return e.summary.totalIncidence.toFixed(3)}}),d),N(c,x(Kq,{field:`learnability_score`,get value(){return A(()=>e.summary.learnabilityScore!==null)()?`${(e.summary.learnabilityScore*100).toFixed(1)}%`:`n/a`},highlight:!0}),f),N(p,x(wK,{field:`predicted_distribution`,class:`text-tertiary`}),m),N(m,()=>Wq(e.summary.predictedStats)),N(p,x(j,{get when(){return e.summary.actualStats},children:e=>[x(wK,{field:`actual_distribution`,class:`text-tertiary`}),(()=>{var t=aq();return N(t,()=>Wq(e())),t})()]}),h),N(g,x(wK,{field:`global_feature_importance`}),_),N(t,x(qq,{get features(){return e.summary.globalFeatureImportance}}),null),t}function Kq(e){return[x(wK,{get field(){return e.field},class:lq}),(()=>{var t=oq();return N(t,()=>e.value),M(()=>`${uq} ${e.highlight?`text-primary! font-semibold`:``}`,(e,n)=>{P(t,e,n)}),t})()]}function qq(e){let t=()=>e.features.reduce((e,t)=>e+Math.abs(t.shapValue),0);var n=sq();return N(n,x(b,{get each(){return e.features.slice(0,15)},children:(e,n)=>{let r=()=>t()>0?Math.abs(e.shapValue)/t()*100:0;var i=cq(),a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=s.nextSibling,l=c.firstChild;return N(a,()=>n()+1,o),N(i,x(wK,{get field(){return e.name},class:`${lq} flex-1 truncate`}),s),N(s,()=>Math.abs(e.shapValue).toFixed(4)),N(c,()=>r().toFixed(1),l),i}})),n}ae([`click`]);var Jq=l(`<div>`),Yq=e=>{var t=Jq();return N(t,x(b,{get each(){return e.actions},children:e=>x(zU,{onPress:t=>{t.stopPropagation(),e.onPress()},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`block glyph-trim-both text-tertiary hover-fine:text-primary transition-colors`,get children(){return e.text}})}})})),M(()=>({e:F(z(B.row)),t:F(L(`space-x-4 padding-sidebar`))}),({e,t:n},r)=>{w(t,e,r?.e),P(t,n,r?.t)}),t}
35,Xq=l(`<div class="py-1 w-full flex flex-col"><div class="w-full rounded-full overflow-hidden h-1 bg-gray-38"><div class="h-full bg-success transition-[width] duration-1000">`),Zq=e=>{let t=CL(()=>e.animateKey,()=>e.value),n=()=>{let e=t()*100;return e>=100?100:e>95?95:e};var r=Xq(),i=r.firstChild.firstChild;return M(()=>`width: ${n()}%`,(e,t)=>{w(i,e,t)}),r},Qq=l(`<div class=whitespace-pre-line>`),$q=l(`<div><div class="relative h-[8px] w-[39px] shrink-0 self-center"><div class="absolute inset-0 flex flex-row gap-px"></div><div class="absolute inset-y-0 left-0 overflow-hidden transition-[width] duration-1000 ease-out"><div class="flex h-full w-[39px] flex-row gap-px"></div></div></div><span class="text-primary font-medium text-[11px] tabular-nums leading-[8px]">`),eJ=l(`<div class="h-[8px] w-[3px] shrink-0 rounded-[0.5px] bg-gray-38">`),tJ=l(`<div>`),nJ=e=>e>=.66?`bg-success`:e>=.33?`bg-caution`:`bg-danger`,rJ=e=>Math.min(e,99).toFixed(0),iJ=e=>{let[t,n]=o(null);m(()=>[t(),e.tooltip],([e,t])=>{if(e&&t)return vE({ref:e,content:()=>(()=>{var e=Qq();return N(e,t),e})(),maxWidth:240})});let r=CL(()=>e.animateKey,()=>e.value),i=()=>r()*100,a=()=>Math.round(Math.min(Math.max(i(),0),100)/10),s=()=>Math.max(a()*4-1,0)/39*100,c=()=>nJ(r());var l=$q(),u=l.firstChild,d=u.firstChild,f=d.nextSibling,p=f.firstChild,h=u.nextSibling;return I(()=>n,l),N(d,x(b,{get each(){return Array.from({length:10},(e,t)=>t)},children:()=>eJ()})),N(p,x(b,{get each(){return Array.from({length:10},(e,t)=>t)},children:()=>(()=>{var e=tJ();return M(()=>`h-[8px] w-[3px] shrink-0 rounded-[0.5px] ${c()}`,(t,n)=>{P(e,t,n)}),e})()})),N(h,(()=>{var t=A(()=>!!e.animateKey);return()=>t()?x(TL,{get key(){return e.animateKey},get value(){return e.value*100},decimalPlaces:0,formatValue:rJ}):rJ(e.value*100)})()),M(()=>({e:`flex flex-row items-center gap-2 ${e.class||``}`,t:`width: ${s()}%`}),({e,t},n)=>{P(l,e,n?.e),w(f,t,n?.t)}),l},aJ=l(`<div class="w-4 shrink-1">`),oJ=l(`<div class="w-px shrink-0 self-stretch bg-gray-32">`),sJ=l(`<div><span class="text-xs text-tertiary">`),cJ=l(`<div><span class="text-xs text-tertiary">Total</span><span class="text-primary font-medium text-[11px] tabular-nums leading-[8px] whitespace-nowrap"><span class=text-tertiary> / `),lJ=l(`<div><span class="text-xs text-tertiary">Coverage`),uJ=l(`<div class="flex flex-row items-center"><!><!><!>`),dJ=()=>[aJ(),oJ(),aJ()],fJ=e=>{let t=_(()=>e.item());var n=sJ(),r=n.firstChild;return N(r,()=>t().label),N(n,x(iJ,{get value(){return t().value},get tooltip(){return t().tooltip},get animateKey(){return t().animateKey}}),null),M(()=>F(L(`flex flex-col gap-3 shrink-0`,e.grow&&`grow`)),(e,t)=>{P(n,e,t)}),n},pJ=e=>{let t=_(()=>Math.round(e.items.reduce((e,t)=>e+t.value*100,0))),n=_(()=>{let t=e.items.flatMap(e=>e.animateKey??[]);return t.length>0?`${t.join(`:`)}:total`:void 0}),r=()=>e.showTotal&&e.items.length>1;var i=uJ(),a=i.firstChild,o=a.nextSibling,s=o.nextSibling;return N(i,x(b,{get each(){return e.items},keyed:!1,children:(t,n)=>[x(fJ,{item:t,get grow(){return e.grow}}),x(j,{get when(){return n<e.items.length-1||r()||e.coverage!=null},get children(){return x(dJ,{})}})]}),a),N(i,x(j,{get when(){return r()},get children(){return[(()=>{var r=cJ(),i=r.firstChild.nextSibling,a=i.firstChild;return a.firstChild,N(i,(()=>{var e=A(()=>!!n());return()=>e()?x(TL,{get key(){return n()},get value(){return t()},decimalPlaces:0,formatValue:e=>e.toFixed(0)}):t()})(),a),N(a,()=>e.items.length*100,null),M(()=>F(L(`flex flex-col gap-3 shrink-0`,e.grow&&`grow`)),(e,t)=>{P(r,e,t)}),r})(),x(j,{get when(){return e.coverage!=null},get children(){return x(dJ,{})}})]}}),o),N(i,x(j,{get when(){return e.coverage!=null},get children(){var t=lJ();return t.firstChild,N(t,x(Zq,{get value(){return e.coverage},get animateKey(){return e.coverageAnimateKey}}),null),M(()=>F(L(`flex flex-col gap-3 shrink-0`,e.grow&&`grow`)),(e,n)=>{P(t,e,n)}),t}}),s),i},mJ;(function(e){e.getSum=e=>(e.effectiveness??0)+(e.soundness??0)+(e.learnability??0);let t=e.formatPreciseScore=e=>`Score: ${(e*100).toFixed(3)}`;e.getEffectivenessTooltip=e=>{let n=[t(e.effectiveness)],r=e.expectedResults;return r!=null&&!Number.isNaN(r)&&n.push(`Win rate: ${(r*100).toFixed(2)}%`),n.join(` 36`)},e.getSoundnessTooltip=e=>{let n=e.eval>=0?`+`:``,r=`${`Path concession: ${e.pathConcessionCp.toFixed(0)} CP`} · Avg CP loss: ${e.avgCpLoss.toFixed(0)} · Eval: ${n}${e.eval.toFixed(2)}`;return`${t(e.soundness)}\n${r}`},e.getLearnabilityTooltip=e=>{if(e.learnability!=null)return t(e.learnability)}})(mJ||={});var hJ=l(`<i class="fa-solid fa-circle-question text-xs">`),gJ=l(`<div class="row items-end gap-2"><p class="glyph-trim-both text-primary font-semibold text-sm">`),_J=l(`<p class="text-tertiary text-xs hover-fine:text-secondary transition-colors underline">Change`),vJ=l(`<div class="row items-center gap-1.5"><p class="text-tertiary text-xs"></p><p class="text-tertiary text-xs">·`),yJ=l(`<p class="text-tertiary text-xs">`),bJ=l(`<div><!><!><!>`),xJ=`https://wiki.chessbook.com/repertoire-statistics`,SJ=e=>{let t=()=>e.header!==null,n=()=>e.header??`Stats`,r=t=>e.repertoireId?EL(t,e.repertoireId):void 0,i=_(()=>{let t=e.characteristics;if(!t)return[];let n=J().flagEnabled(`precise_characteristics`),i=[{label:`Effectiveness`,value:t.effectiveness,tooltip:n?mJ.getEffectivenessTooltip(t):void 0,animateKey:r(`effectiveness`)},{label:`Soundness`,value:t.soundness,tooltip:n?mJ.getSoundnessTooltip(t):void 0,animateKey:r(`soundness`)}];return t.learnability!=null&&J().flagEnabled(`learnability`)&&i.push({label:`Learnability`,value:t.learnability,tooltip:n?mJ.getLearnabilityTooltip(t):void 0,animateKey:r(`learnability`)}),i}),a=()=>i().length>0||e.coverage!=null||e.showBigBar;return x(j,{get when(){return a()}
36,get children(){var a=bJ(),o=a.firstChild,s=o.nextSibling,c=s.nextSibling;return N(a,x(j,{get when(){return A(()=>!!e.showBigBar)()?e.repertoireId:e.showBigBar},get children(){return[x(JL,{get repertoireId(){return e.repertoireId},type:`completion`,hideIncreaseCoverageGoal:!0}),x(R,{height:24})]}}),o),N(a,x(j,{get when(){return t()},get children(){return[(()=>{var e=gJ(),t=e.firstChild;return N(t,n),N(e,x(j,{get when(){return i().length>0},get children(){return x(pK,{href:xJ,class:`shrink-0 flex items-center h-0 self-center text-tertiary hover:text-primary transition-colors`,onClick:()=>{K(`characteristics.wiki.clicked`)},get children(){return hJ()}})}}),null),e})(),x(j,{get when(){return e.showRatingInfo},get children(){return[x(R,{height:4}),(()=>{var e=vJ(),t=e.firstChild;return t.nextSibling,N(t,()=>J().getUserRatingDescription()),N(e,x(zU,{onPress:()=>{Z(e=>{K(`repertoire_stats.change_rating`),Q().pushView(Q1)})},get children(){return _J()}}),null),e})()]}}),x(j,{get when(){return e.subtitle},get children(){return[x(R,{height:4}),(()=>{var t=yJ();return N(t,()=>e.subtitle),t})()]}}),x(R,{height:24})]}}),s),N(a,x(pJ,{get items(){return i()},showTotal:!0,get coverage(){return e.coverage},get coverageAnimateKey(){return r(`coverage`)}}),c),M(()=>F(e.useSidebarPadding?`padding-sidebar`:``),(e,t)=>{P(a,e,t)}),a}})},CJ=l(`<p class=body-text>`),wJ=e=>x($,{get actions(){return e.actions},bodyPadding:!0,get header(){return e.header},loading:!1,get children(){return A(()=>!!e.text)()?(()=>{var t=CJ();return N(t,()=>e.text),t})():e.text}}),TJ=l(`<p> <!> Saved`),EJ=l(`<div class="row items-center gap-2 text-secondary font-semibold">`),DJ=l(`<div class="row items-center gap-2 text-secondary">`),OJ=l(`<div class=padding-sidebar>`),kJ=l(`<div class=padding-sidebar><div class="flex flex-row gap-4 items-start"><i class="fa-solid fa-triangle-exclamation text-warning text-sm leading-normal"></i><p class="text-warning text-sm leading-normal font-medium">You've added too many moves<br><br>This many moves will be very difficult to memorize and some Chessbook features won't work properly. We recommend trimming before you continue.`),AJ=l(`<div class="padding-sidebar pb-6">`),jJ=l(`<i class="fa fa-arrow-right text-primary">`),MJ=()=>{ze(()=>{Z(e=>{e.repertoireState.importedCourseId=void 0})});let e=()=>X().state.repertoireSide,t=()=>X().state.activeRepertoireId,n=()=>X().derived.activeRepertoire(),r=()=>Y().masteryFromEpd[t()]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0,i=()=>Y().repertoireGrades[t()]?.biggestMiss,a=()=>Y().repertoireGrades[t()]??{characteristics:null,biggestMiss:null,tooLarge:!1,biggestMisses:{},side:e()},o=()=>Y().numMyMoves?.[t()]??0,s=()=>o()===0,c=()=>Y().numMovesDueFromEpd[t()]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0,l=()=>Y().earliestReviewDueFromEpd[t()]?.[fp],u=()=>Y().numMyEnabledMoves[t()]===0,d=_(()=>{let a=[];return a.push({onPress:()=>{Z(e=>{X().actions.setActiveRepertoire(t()),Q().pushView(kY),s()?K(`side_overview.start_building`):K(`side_overview.keep_building`)})},right:(()=>{var e=EJ();return N(e,x(j,{get when(){return o()>0},get children(){var e=TJ(),t=e.firstChild.nextSibling;return t.nextSibling,N(e,o,t),e}})),e})(),text:s()?`Start adding moves`:r()===0?`Start learning`:i()?`Continue building`:`Browse / edit moves`,style:`primary`,testId:`continue-building`}),s()&&a.push({text:s()?`Import`:`Import / export`,onPress:()=>{Z(t=>{if(s()){K(`side_overview.import`),Q().pushView(iQ,{props:{side:e()}});return}Q().pushView(wJ,{props:{header:`Import / export`,actions:[{onPress:()=>{K(`side_overview.import`),Q().pushView(iQ,{props:{side:e()}})},text:`Import`,style:`secondary`},{onPress:()=>{Z(e=>{K(`side_overview.export`),Q().pushView(aK,{props:{repertoireId:n().id}})})},text:`Export to PGN`,style:`secondary`}]}})})},style:`primary`}),a}),f=_(()=>{let e=[];return u()||e.push({onPress:()=>{Z(e=>{K(`side_overview.start_review`),X().actions.setActiveRepertoire(t()),Q().pushView(yY,{props:{repertoireId:t()??null}})})},text:r()===0?`Start learning`:`Continue learning`,right:(()=>{var e=DJ();return N(e,x(tV,{get date(){return l()},get numDue(){return c()},textColor:`text-secondary`})),e})(),style:`primary`,testId:`continue-learning`}),e}),p=_(()=>{let e=[];return e.push({text:`Settings`,onPress:()=>{Z(e=>{Q().pushView(oK)})}}),T1()&&e.push({text:`Learnability debug...`,onPress:()=>{Z(e=>{Q().pushView(wq)})}}),e}),m=()=>
36n()?.name,h=st();return x($,{get header(){return m()},actions:[],bodyPadding:!1,get children(){return[x(R,{get height(){return h().isMobile?8:12}}),x(j,{get when(){return s()},get children(){return[(()=>{var e=OJ();return N(e,x(JL,{get repertoireId(){return t()},type:`completion`})),e})(),x(R,{get height(){return h().isMobile?32:42}}),x(H6,{get actions(){return d()}}),x(R,{between:[`actions`,`footer-actions`]}),x(Yq,{get actions(){return p()}})]}}),x(j,{get when(){return!s()},get children(){return[x(j,{get when(){return a().tooLarge},get children(){return[(()=>{var e=kJ();return e.firstChild,N(e,x(R,{between:[`body-text`,`actions`]}),null),e})(),x(H6,{get actions(){return[{text:`Trim unnecessary moves`,right:jJ(),style:`primary`,onPress:()=>{Z(e=>{K(`too_large.trim`),Q().pushView(oQ)})}}]}}),x(R,{between:[`actions`,`actions`]})]}}),(()=>{var e=AJ();return N(e,x(JL,{get repertoireId(){return t()},type:`completion`})),e})(),x(H6,{get actions(){return d()}}),x(R,{get height(){return h().isMobile?32:36}}),(()=>{var e=AJ();return N(e,x(JL,{get repertoireId(){return t()},type:`mastery`})),e})(),x(H6,{get actions(){return f()}}),x(j,{get when(){return A(()=>!!a().characteristics)()?J().flagEnabled(`characteristics`):a().characteristics},get children(){return[x(R,{get height(){return h().isMobile?32:36}}),x(SJ,{get characteristics(){return a().characteristics},get side(){return a().side},get repertoireId(){return t()},useSidebarPadding:!0}),x(R,{get height(){return h().isMobile?32:36}})]}}),x(Yq,{get actions(){return p()}})]}})]}})};LF(MJ,`side_overview`),MJ.getSidebarPreviewState=()=>JSON.stringify([X().state.activeRepertoireId,X().state.repertoireSide]);var NJ=l(`<div class=padding-sidebar>`),PJ=l(`<div class="h-5 lg:h-7">`),FJ=()=>{let e=st();return x(R,{get height(){return $6(e().isMobile)}})},IJ=e=>12,LJ=e=>e().isMobile?10:14,RJ=e=>x(R,{get height(){return e.height??IJ(e.responsive)}}),zJ=()=>[x(FJ,{}),x(R,{height:12})],BJ=e=>[(()=>{var t=NJ();return N(t,x(Zd,{get children(){return e.header}})),t})(),x(FJ,{}),x(RJ,{get responsive(){return e.responsive},get height(){return e.leadSpacerHeight}})],VJ=e=>x(j,{get when(){return e.when},get children(){return[(()=>{var t=NJ();return N(t,()=>e.children),t})(),PJ(),x(RJ,{get responsive(){return e.responsive},get height(){return LJ(e.responsive)}})]}}),HJ=l(`<div>`),UJ=l(`<div><!><!><!>`),WJ=`What do you want to learn?`,GJ=`No saved moves to learn`,KJ=()=>{let e=()=>Q().getActiveChessboard().getCurrentEpd(),t=()=>X().state.repertoireSide,n=()=>Y().positionReports[X().state.activeRepertoireId]?.[e()],r=()=>X().state.currentSide,i=()=>ru(X().state.tableResponses,e=>!e.repertoireMove?.isExcluded),a=()=>XO(n()),o=()=>tu(i(),e=>UO.getStockfishEvalSource(e)===`local`)&&i().length>0,s=lY(),c=()=>t()===r()&&!H(i())&&tu(i(),e=>uz(Y().lockedMoves,t(),e)),l=st(),u=()=>{let e=X().state.activeRepertoireId;return e?Y().repertoires?.[e]:void 0},d=()=>{let e=X().state.activeRepertoireId;return e?Y().positionReports[e]??{}:{}},f=()=>Q().getActiveChessboard().get(e=>e).moveLog,p=()=>nk(u(),f(),r(),i(),d()),m=()=>{Z(e=>{vX(`left`),tk(u(),f())?(Q().getActiveChessboard().resetPosition(),Q().hasView(yY)?Q().backTo(yY):Q().backTo(MJ)):Q().getActiveChessboard().backOne()})};ze(()=>{Z(e=>{let t=Q().getActiveChessboard();if(!H(t.getMoveLog()))return;t.resetPosition();let n=u(),r=n?ek(n):null;r&&t.playLine([r],{animated:!1})})}),ZI(()=>{m()},`stay`);var h=UJ(),_=h.firstChild,v=_.nextSibling,y=v.nextSibling;return N(h,x(BJ,{get header(){return p()?GJ:WJ},responsive:l}),_),N(h,x(j,{get when(){return!p()},get children(){return[(()=>{var n=HJ();return N(n,x(QW,g(()=>({repertoireId:X().state.activeRepertoireId,currentSide:r(),usePeerRates:a,allLocalStockfish:o(),activeSide:t(),side:r(),responses:i})))),M(()=>({e:F(z()),t:`browse-select-${e()}`}),({e,t},r)=>{w(n,e,r?.e),t!==r?.t&&C(n,`id`,t)}),n})(),x(R,{between:[`table`,`actions`]}),x(H6,{get actions(){return A(()=>!!c())()?[]:s()}})]}}),v),N(h,x(j,{get when(){return p()},get children(){return x(H6,{actions:[{text:`Back`,style:`secondary`,onPress:m}]})}}),y),M(()=>F(z(B.column,B.constrainWidth)),(e,t)=>{w(h,e,t)}),h};LF(KJ,`browse`),KJ.isSidebarReady=nz;var qJ=l(`<div class="row items-center"><p>Continue your practice session`),JJ=l(`<div class=tabular-nums> moves`);function YJ(e){Z(t=>{X().actions.setActiveRepertoire(e),Q().pushView(KJ)})}function XJ(e){Z(t=>{vX(`right`),X().actions.setActiveRepertoire(e),Q().pushView(MJ)})}function ZJ(){return _(()=>yB(hB(b6().state)))}function QJ(e,t){let n=hB(b6().state);return bB(n)?t?gB(n):CB(n,e):!1}function $J(e){return CB(hB(b6().state),e)}function eY(){return SB(hB(b6().state))}function tY(){Y().reviewState.actions.pausePracticeSession(),vX(`left`)}function nY(){return _B(hB(b6().state),X().state.activeRepertoireId)}function rY(){Z(e=>{tY();let t=nY();if(Q().hasView(yY)){EB(t);return}OB(t?e.repertoireState.repertoires?.[t]:void 0)})}function iY(){Z(e=>{let t=hB(e.repertoireState.reviewState.state);tY();let n=nY(),r=Q().sidebarStack.some(e=>e.component===yY&&uB(e.props??{}));if(Q().hasView(yY)){if(r||gB(t)){Q().popView();return}EB(n);return}Q().popView()})}function aY(e){return{onPress:()=>{Z(e=>{K(`pre_review.resume`),vX(`right`),e.repertoireState.reviewState.actions.resumeReview(),Q().pushView(ZG)})},text:qJ(),right:x(tV,{class:`text-primary!`,icon:`fa fa-forward`,get iconColor(){return B.colors.text.secondary},descriptor:`left`,get numDue(){return e()}}),style:`primary`}}function oY(e,t){return e?!H(Y().positionReports[e]?.[t]?.plans):!1}function sY(){let e=Q().currentView();return e?.component===wW&&e.showPlansOverlay===!0}function cY(){Z(e=>{if(sY())return;let t=e.repertoireState.browsingState;vX(`right`),Q().pushView(wW,{props:{fromBoardPlans:!0},showPlansOverlay:!e.repertoireState.onboarding.isOnboarding}),t.state.showPlansState.coverageReached=!1})}var lY=()=>{let e=()=>Q().getActiveChessboard().getCurrentEpd(),t=()=>Q().getActiveChessboard().getMoveLog(),n=()=>X().state.currentSide,r=()=>X().state.activeRepertoireId,i=ZJ(),a=()=>
36{let i=Y().repertoires?.[r()],a=n(),o=t();return!i||!a?{startPosition:e(),startLine:o}:fk(i,o,a,Y().positionReports[r()]??{})},o=()=>{let e=Y().repertoires?.[r()];return tk(e,t())?$J(r()):!1};return _(()=>{let e=[],t=a(),n=o(),s=Y().numMovesDueFromEpd[r()]?.[t.startPosition]??0,c=Cz(q().repertoireState.reviewState.actions.buildQueue({repertoireId:r(),startPosition:t.startPosition,startLine:t.startLine,filter:`all`}));return n?e.push(aY(i)):e.push({onPress:()=>{Z(e=>{K(`browse.practice_from_here`),vX(`right`),Q().pushView(yY,{props:{repertoireId:r(),startEpd:t.startPosition,startLine:t.startLine}})})},text:`Practice moves from here`,right:s>0?x(tV,{numDue:s}):c>0?(()=>{var e=JJ(),t=e.firstChild;return N(e,c,t),e})():void 0,style:`primary`}),e})},uY=()=>{let e=_(()=>q().repertoireState.reviewState.state.activeOptions),t=_(()=>q().repertoireState.reviewState.actions.buildQueue({repertoireId:e()?.repertoireId,filter:`recommended`}));return()=>{if((e()?.filter===`recommended`||e()?.lichessMistakes)&&t().length>0)return{onPress:()=>{Z(t=>{Q().cutView(),t.repertoireState.reviewState.actions.startReview({repertoireId:e()?.repertoireId,filter:`recommended`}),K(`post_review.next_common_moves`)})},text:`Practice next recommended moves`,right:x(tV,{get numDue(){return t()?.length??0}}),style:`secondary`}}},dY=()=>{let e=Q().sidebarStack;for(let t=e.length-1;t>=0;t--)if(!RF.has(e[t].component))return e[t]},fY=()=>{let e=dY();return e?.component===yY&&uB(e.props??{})},pY=()=>dY()?.component===kY,mY=()=>{let e=dY();if(e?.component!==yY)return!1;let t=e.props??{};return t.startEpd===void 0&&t.repertoireId!=null},hY=()=>{let e=q().ui.mode;return e===`build`?!pY():e===`browse`&&!mY()},gY=()=>{let e=q().ui.mode;return e===`build`?pY():e!==`browse`||mY()||fY()},_Y=l(`<div><p>Everything that's due `),vY=l(`<div class=tabular-nums> moves`),yY=e=>{let t=()=>e.repertoireId?Y().repertoires?.[e.repertoireId]:void 0,n=()=>e.startEpd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,r=()=>e.startLine??[],i=_(()=>q().repertoireState.reviewState.actions.buildQueue({repertoireId:t()?.id,startPosition:n(),startLine:r(),filter:`due`})),a=_(()=>q().repertoireState.reviewState.actions.buildQueue({repertoireId:t()?.id,startPosition:n(),startLine:r(),filter:`all`})),o=st(),s=()=>e.startEpd===void 0,c=()=>uB(e),l=()=>j6().getRemainingToday(Cz(i())),u=()=>c()&&l()>0?`daily`:`recommended`,d=()=>u()===`daily`?l():Number(J().getFrontendSetting(`recommendedMovesSize`).value),f=()=>Y().masteryOverall,p=()=>s()&&f()>0&&gY(),m=()=>c()?null:pB(e.repertoireId,X().state.activeRepertoireId)??null,h=()=>s()?QJ(m(),c()):!1,g=ZJ(),v=(t,i)=>{let a=e.repertoireId??void 0,o=n(),l=[...r()],u=c()?{cameFrom:`home`}:{};Z(e=>{K(i),s()||Q().cutView(),e.repertoireState.reviewState.actions.startReview({repertoireId:a,startPosition:o,startLine:l,filter:t,...u})})},y=()=>{let o=[],c=Cz(ru(i(),e=>Ad(wz.getMoves(e),e=>sC.isDifficult(e.srs)))),l=Cz(ru(a(),e=>Ad(wz.getMoves(e),e=>sC.isDifficult(e.srs)))),f=Cz(i()),p=f>0,m=f>d();if(h()&&o.push(aY(g)),m&&o.push({onPress:()=>v(u(),`pre_review.common_moves`),text:u()===`daily`?`Daily practice`:`Recommended moves`,right:x(tV,{get numDue(){return Math.min(d(),f)}}),style:h()?`secondary`:`primary`}),f>0&&o.push({onPress:()=>v(`due`,`pre_review.all_due`),text:(()=>{var e=_Y(),t=e.firstChild;return t.firstChild,N(t,()=>ON()?``:`for review`,null),M(()=>({e:F(L(`row items-center`)),t:F(L())}),({e:n,t:r},i)=>{P(e,n,i?.e),P(t,r,i?.t)}),e})(),right:x(tV,{numDue:f}),style:m||h()?`secondary`:`primary`}),c>0&&o.push({onPress:()=>v(`difficult-due`,`pre_review.difficult_due`),text:`Just the moves I often get wrong`,right:x(tV,{numDue:c}),style:`secondary`}),!p){let e=q().repertoireState.reviewState.actions.buildQueue({repertoireId:t()?.id,startPosition:n(),startLine:r(),filter:`early`});Cz(e)>0&&o.push({onPress:()=>v(`early`,`pre_review.early`),text:`Moves that will be due soon`,right:`${_L(e.length,`move`)}`,style:`secondary`})}!p&&l>0&&o.push({onPress:()=>v(`difficult`,`pre_review.difficult`),text:`Just the moves I often get wrong`,right:`${_L(l,`move`)}`,style:`secondary`});let _=Cz(a());return _>f&&o.push({onPress:()=>v(`all`,`pre_review.all`),text:`All moves, even if they're not due`,right:(()=>{var e=vY(),t=e.firstChild;return N(e,_,t),e})(),style:`secondary`}),s()&&o.push({onPress:()=>{K(`pre_review.specific`);let t=e.repertoireId??X().state.activeRepertoireId,n=Y().repertoiresList;t?YJ(t):n.length===1?YJ(n[0].id):Q().pushView(bY)},text:`A specific openingâ¦`,style:`secondary`}),o};return x($,{header:`What do you want to practice?`,get actions(){return y()},bodyPadding:!1,get actionsPadding(){return A(()=>!!s())()?!p():s()},get children(){return[x(RJ,{responsive:o}),x(VJ,{get when(){return p()},responsive:o,get children(){return x(JL,{type:`mastery`,decimalPlaces:1,get repertoireId(){return t()?.id}})}}),x(j,{get when(){return A(()=>!!s())()?!p():s()},get children(){return x(zJ,{})}})]}})},bY=()=>x($,{header:`What do you want to practice?`,get actions(){return Y().repertoiresList.map(e=>({style:`secondary`,onPress:()=>{K(`pre_review.specific.chose_repertoire`),YJ(e.id)},text:e.name}))},bodyPadding:!1});LF(yY,`browse`);var xY=l(`<div>`),SY=l(`<i class="fa-light fa-empty-set">`),CY=l(`<div><!><!><!>`),wY=e=>{let t=Math.ceil(e.length/2),n=e[e.length-1];return e.length%2==0?`${t}â¦${n}`:`${t}. ${n}`};function TY(e,t,n,r,i,a,o=!1,s=!1){let c=n;if(r!==i){if(a===`unknown`)return{header:``};let n=`Choose a move to prepare for`;return a===`reached`&&(n=`Most common responses`),t&&(n=`Best moves according to Stockfish`),{header:n,body:o&&e.length<2?`You'll need to cover all of these eventually, but just pick one you're familiar with for now.`:void 0}}return n?r===`white`&&H(e)?n===1?{header:`This is your first move`}:{header:`These are your first moves`}:n===1?{header:s?`This move was added`:`This is your saved move`}:{header:s?`These moves were added`:`These are your saved moves`}:!c&&H(e)?o?{header:`Let's add your first move`,body:`Select from the list or play it on the board.`}:{header:`Choose your first move`}:{header:`Choose a response to ${o&&e.length<=2?`this move`:wY(e)}`,body:e.length<4&&o?`Not sure? Check the stats to help decide.`:void 0}}var EY=e=>{let t=()=>Q().getActiveChessboard().getCurrentEpd(),n=()=>Q().getActiveChessboard().getMoveLog(),r=()=>X().state.hasPendingLineToAdd,i=()=>X().derived.coverageGoal(),a=()=>Y().onboarding,o=t=>{t.push(...K6({biggestGapStyle:e?.biggestGapStyle??`primary`,preferNearestOverBiggest:!0}))},s=()=>X().state.activeRepertoireId,c=()=>Y().numMovesDueFromEpd[s()]?.[t()]??0,l=()=>X().state.repertoireSide===X().state.currentSide,u=()=>X().state.pendingResponses?.[t()]?.mine?!0:Ad(X().state.tableResponses,e=>e.repertoireMove?.mine),d=()=>i()!==`reached`||l()&&!u(),f=[],p=[];if(r()){if(a().isOnboarding&&i()!==`reached`)return[[],[]];f.push({onPress:()=>{d()?K(`build.save_line_premature`):K(`build.save_line`),Z(e=>{e.repertoireState.browsingState.actions.requestToAddCurrentLine()})},text:d()?`I'll finish later, save my progress`:`Save these moves`,style:d()?`primary`:`focus`})}if(!r()){o(f);let e=BL(s());e&&f.push(e)}
36return!r()&&f.length===0&&c()>0&&f.push({onPress:()=>{K(`build.review_from_here`),Q().pushView(yY,{props:{repertoireId:s(),startEpd:t(),startLine:n()}})},text:`Practice moves from here`,right:x(tV,{date:null,get numDue(){return c()}}),style:`secondary`}),[f,p]},DY=e=>{let t=()=>Q().getActiveChessboard().getCurrentEpd(),n=()=>X().state.repertoireSide,r=()=>Y().positionReports[X().state.activeRepertoireId]?.[t()],i=()=>X().state.activeRepertoireId,a=()=>X().state.currentSide,s=()=>Q().getActiveChessboard().get(e=>e.moveLog),c=()=>X().state.hasPendingLineToAdd,l=()=>X().derived.coverageGoal(),u=()=>X().state.tableResponses,d=()=>Y().onboarding,f=()=>XO(r()),p=()=>tu(u(),e=>UO.getStockfishEvalSource(e)===`local`)&&u().length>0,h=N6(),g=()=>Y().lockedMoves,v=()=>Q().getActiveChessboard().get(e=>e.positionHistory),y=_(()=>{let e=i()?Y().repertoires?.[i()]:void 0;return e?hz(g(),e,v(),s()):-1}),b=()=>y()>=0;m(()=>y(),t=>{t<0||!e?.redirectLockedLines||xz(`builder`,t)});let x=_(()=>ru(u(),e=>!Kt(e.repertoireMove)&&n()===a())),S=_(()=>ru(x(),e=>uz(g(),n(),e))),C=_(()=>b()?`line`:!H(x())&&S().length===x().length?`move`:`none`),w=_(()=>{switch(C()){case`line`:return[[],[]];case`move`:return[[],[]];case`none`:return EY(e)}}),T=_(()=>ru(u(),e=>Kt(e.repertoireMove)&&n()===a())),E=_(()=>{let e=x();return h()!==`build`||H(T())||C()===`move`?e:[...e,...T()]}),D=_(()=>ru(u(),()=>n()!==a())),ee=_(()=>TY(s(),p(),x().length,n(),a(),l(),d().isOnboarding,X().state.justAutofilledEpd===t())),te=_(()=>H(x())?H(D())?u():D():x()),[k,A]=o(!1);{let e=e=>{if(c()){e.preventDefault();let t=`You have an unsaved line, are you sure you want to exit?`;return e.returnValue=t,t}};addEventListener(`beforeunload`,e,{capture:!0}),O(()=>{removeEventListener(`beforeunload`,e,{capture:!0})})}return{currentEpd:t,activeSide:n,positionReport:r,activeRepertoireId:i,currentSide:a,tableResponses:u,usePeerRates:f,allLocalStockfish:p,mode:h,myMoves:x,lockState:C,savedMovesWithAlternatives:E,builderActions:w,otherMoves:T,prepareFor:D,header:()=>ee().header,body:()=>ee().body,responses:te,loading:k,setLoading:A}},OY=e=>{let t=()=>e.state,n=()=>t().lockState()===`line`;return[x(j,{get when(){return A(()=>!n())()&&!H(t().myMoves())},get children(){var e=xY();return N(e,x(QW,g(()=>({repertoireId:t().activeRepertoireId(),currentSide:t().currentSide(),setLoading:t
36().setLoading,usePeerRates:t().usePeerRates,allLocalStockfish:t().allLocalStockfish(),activeSide:t().activeSide(),side:t().currentSide(),responses:t().savedMovesWithAlternatives,trimResponse:t().trimResponse,hideStatsColumns:t().hideStatsColumns,hideEditingActions:t().hideEditingActions})))),M(()=>({e:F(z()),t:`your-moves-${t().currentEpd()}`}),({e:t,t:n},r)=>{w(e,t,r?.e),n!==r?.t&&C(e,`id`,n)}),e}}),x(j,{get when(){return A(()=>!n())()&&(H(t().myMoves())&&!H(t().otherMoves())||!H(t().prepareFor()))},get children(){var e=xY();return N(e,x(QW,g(()=>({repertoireId:t().activeRepertoireId(),currentSide:t().currentSide(),setLoading:t().setLoading,usePeerRates:t().usePeerRates,allLocalStockfish:t().allLocalStockfish(),activeSide:t().activeSide(),side:t().currentSide(),responses:t().responses,trimResponse:t().trimResponse,hideStatsColumns:t().hideStatsColumns,hideEditingActions:t().hideEditingActions})))),M(()=>({e:F(z()),t:`your-moves-play-${t().currentEpd()}`}),({e:t,t:n},r)=>{w(e,t,r?.e),n!==r?.t&&C(e,`id`,n)}),e}}),x(v,{get children(){return[x(a,{get when(){return n()},children:null}),x(a,{get when(){return A(()=>!t().positionReport())()&&H(t().tableResponses())},get children(){var e=xY();return N(e,x(Ni,{get color(){return B.primaries[75]}})),M(()=>F(z(B.center,B.column,B.py(48))),(t,n)=>{w(e,t,n)}),e}}),x(a,{get when(){return A(()=>!!(t().positionReport()&&H(t().tableResponses())))()?H(t().myMoves()):t().positionReport()&&H(t().tableResponses())},get children(){var e=CY(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling;return N(e,x(V,{get children(){var e=SY();return M(()=>F(z(B.fg(B.gray[60]),B.fontSize(24))),(t,n)=>{w(e,t,n)}),e}}),t),N(e,x(R,{height:18}),n),N(e,x(V,{get style(){return z(B.fg(B.gray[80]))},children:`No moves available for this position. You can still add a move by playing it on the board.`}),r),M(()=>F(z(B.column,B.alignCenter,B.selfCenter,B.px(12),B.maxWidth(240),B.py(48))),(t,n)=>{w(e,t,n)}),e}})]}}),x(R,{between:[`table`,`actions`]}),x(H6,{get actions(){return t().builderActions()[0]}}),x(R,{height:20}),x(H6,{get actions(){return t().builderActions()[1]}})]},kY=e=>{let t=()=>X().state.activeRepertoireId,n=()=>Y().numMyMoves?.[t()]??0,r=()=>n()===0,i=st(),a=DY({redirectLockedLines:!0}),o=()=>Q().getActiveChessboard().get(e=>e).moveLog;return ze(()=>{Z(e=>{X().actions.setActiveRepertoire(t()),H(o())&&Q().getActiveChessboard().resetPosition()})}),MY(),x($,{get header(){return A(()=>!H(o()))()?a.header():A(()=>!r())()?`Continue building`:X().state.repertoireSide===`black`?`Choose a move to prepare for`:`Start building your openings`},actions:[],bodyPadding:!1,get loadingOverlay(){return a.loading()},get children(){return[x(RJ,{responsive:i}),x(VJ,{when:!0,responsive:i,get children(){return x(JL,{get repertoireId(){return t()},type:`completion`})}}),x(OY,{state:a})]}})};LF(kY,`build`),kY.getSidebarPreviewState=AY,kY.isSidebarReady=nz;function AY(e=Q().getActiveChessboard().getMoveLog()){let t=X().state,n=Q().getActiveChessboard();return JSON.stringify([t.activeRepertoireId,n.get(e=>e.positionHistory[0]?.epd),[...e],e.length===n.getMoveLog().length?t.justAutofilledEpd:null])}var jY=e=>{let t=Y().onboarding;return!t.isOnboarding||!t.autoplay||e.length<2?1:Q().getActiveChessboard().getTurn()===X().state.repertoireSide?2:1},MY=()=>{eL(()=>{let e=Q(),t=e.getActiveChessboard(),n=t.getMoveLog(),r=jY(n),i=e.currentView(),a=i.component===PY&&e.hasView(kY),o=n.length===0||a&&n.length<=r,s=a?kY:MJ,c=Y().onboarding.isOnboarding?YN():null;if(n.length===0&&c)return{key:AY(),destination:null,run:()=>Z(()=>{let t=c.slice(0,-1),n=c[c.length-1];e.clearViews(),e.withoutAnimations(()=>{for(let n of t)e.pushView(n.component,{props:n.props})}),e.pushView(n.component,{direction:`left`,props:n.props})})};let l=o?e.sidebarStack.findLast(e=>e.component===s):i,u=n.slice(0,-r);return{key:AY(),destination:l?{viewKey:l.id,stateKey:!o||a?AY(u):l.component.getSidebarPreviewState?.()}:null,run:()=>Z(()=>{e.animateSidebar(`left`),n.length>0&&t.backN(Math.min(r,n.length)),o&&(t.resetPosition(),e.backTo(s))})}})},NY=l(`<p class="body-text padding-sidebar">`),PY=function(){let e=DY({redirectLockedLines:!0}),t=st();return MY(),x($,{get header(){return e.header()},actions:[],bodyPadding:!1,get loadingOverlay(){return e.loading()},get children(){return[x(j,{get when(){return e.body?.()},get children(){return[(()=>{var t=NY();return N(t,()=>e.body?.()),t})(),x(R,{between:[`body-text`,`table`]})]}}),x(j,{get when(){return!e.body?.()},get children(){return x(RJ,{responsive:t})}}),x(OY,{state:e})]}})};LF(PY,`build`),PY.getSidebarPreviewState=AY,PY.isSidebarReady=nz;var FY=l(`<p class=body-text>You have multiple <!> repertoires, which one do you want to view?`),IY=l(`<p class="padding-sidebar body-text">
36When you play this opening, you perform <b></b> points <!> your average.`),LY=l(`<div class="text-primary font-medium text-xs">`),RY=l(`<div>`),zY=e=>{let t=()=>e.type===`best`?Math.round(e.report.minStrength-e.overallReport.minStrength):Math.round(e.overallReport.maxStrength-e.report.maxStrength);ze(()=>{Z(t=>{O6().chessboard.playLine(e.report.line,{animated:!0,reset:!0}),O6().chessboard.setPerspective(e.report.side)})}),O(()=>{Z(e=>{O6().chessboard.resetPosition(),O6().chessboard.setPerspective(`white`)})});let n=()=>Y().numMovesDueFromEpd[e.report.side][e.report.epd],r=()=>{let t=[];return n()>0&&t.push({text:`Practice from here`,style:`primary`,right:x(tV,{get numDue(){return n()}}),onPress:()=>{Z(t=>{t.repertoireState.backToOverview(),t.repertoireState.reviewState.actions.startReview({repertoireId:e.report.side,filter:`due`,startLine:e.report.line,startPosition:e.report.epd})})}}),t.push({text:`Build from here`,style:`primary`,onPress:()=>{Z(t=>{let n=e.report.line,r=ru(Y().repertoires,t=>t.side===e.report.side),i=e=>{Q().clearViews(),Q().pushView(PY),X().actions.setActiveRepertoire(e.id),n.length>0&&Q().getActiveChessboard().playLine(n)};r.length===1?i(r[0]):Q().pushView($,{props:{header:`Select a repertoire`,bodyPadding:!0,children:(()=>{var t=FY(),n=t.firstChild.nextSibling;return n.nextSibling,N(t,()=>Eo(e.report.side),n),t})(),actions:r.map(e=>({onPress:()=>{i(e)},text:e.name,style:`primary`}))}})})}}),t.push({text:`Play through a model game from here`,style:`primary`,onPress:()=>{Z(t=>{hN.call([`openings.fetchModelGame`,{epd:e.report.epd,date:new Date().toISOString(),line:e.report.line,side:e.report.side}]).then(t=>{let n=t.game;if(!n){mn.error(`No model game found`);return}D6().actions.reviewGame(GR.fromDto(n),{startPly:e.report.line.length})})})}}),t};return x($,{get header(){return e.eco.fullName},actions:[],get children(){return[(()=>{var n=IY(),r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;return i.nextSibling,N(r,t),N(n,()=>e.type===`best`?`above`:`below`,i),n})(),x(R,{between:[`body-text`,`table`]}),x(uW,{get rows(){return e.report.games},onClick:e=>{window.open(e.link,`_blank`)},leftColumns:[{label:`Opponent`,width:`auto`,render:e=>{var t=LY();return N(t,()=>e.opponentUsername),t}}],rightColumns:[{label:`Rating`,width:100,align:`right`,render:e=>{var t=RY();return N(t,()=>e.opponentElo),t}},{label:`Played`,width:60,render:e=>{var t=RY();return N(t,()=>(0,RN.default)(e.playedAt).format(`MMM D`)),t}},{label:`Result`,width:50,render:e=>{let t=()=>e.result===`Win`?`text-success`:e.result===`Draw`?`text-secondary`:`text-danger`;var n=RY();return N(n,()=>e.result),M(()=>F(t()),(e,t)=>{P(n,e,t)}),n}}]}),x(R,{between:[`table`,`actions`]}),x(H6,{get actions(){return r()}})]}})},BY=l(`<svg viewBox="0 0 31 13"height=100% width=100%><path d="m29 0h-27c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h27c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm-19.56 9.73c0 .45-.33.8-.78.8-.39 0-.58-.22-.79-.48l-3.46-4.45v4.12c0 .46-.34.81-.79.81s-.8-.35-.8-.81v-6.45c0-.45.34-.8.78-.8.4 0 .58.22.81.52l3.45 4.42v-4.13c-.01-.46.33-.81.79-.81s.79.35.79.81v6.44zm6.51.66h-3.95c-.45 0-.79-.34-.79-.79v-6.2c0-.45.34-.79.79-.79h3.81c.42 0 .73.31.73.72s-.32.72-.73.72h-3v1.58h2.06c.4 0 .7.29.7.68s-.29.67-.7.67h-2.06v1.97h3.15c.42 0 .73.32.73.72s-.32.72-.73.72zm12.78-6.74-2.38 6.34c-.13.35-.4.54-.74.54s-.61-.19-.74-.54l-1.7-4.7-1.7 4.7c-.13.35-.39.54-.73.54s-.62-.19-.75-.54l-2.38-6.34c-.07-.16-.09-.28-.09-.39 0-.44.35-.79.8-.79.34 0 .62.2.73.52l1.71 4.74 1.64-4.65c.
3613-.38.41-.6.78-.6s.65.22.78.6l1.65 4.65 1.68-4.72c.12-.33.39-.53.74-.53.45 0 .79.35.79.79 0 .12-.02.24-.08.39z">`);function VY(e){var t=BY(),n=t.firstChild;return M(()=>e.color,e=>{C(n,`fill`,e)}),t}var HY=l(`<div class="shrink-0 max-w-10 h-2.5 ">`),UY=l(`<div class="flex items-center row max-w-full shrink-1"><!><div class="text-primary font-medium whitespace-nowrap overflow-y-visible overflow-x-clip text-ellipsis text-xs inline-block"></div><!><!>`),WY=l(`<div>`),GY=l(`<div class="flex flex-col items-center justify-center pt-8">`),KY=l(`<p class="padding-sidebar body-text">We weren't able to find any openings where you are over or under-performing in the past 90 days on your connected account(s). You may need to play more games for us to get a bigger sample size.`),qY=l(`<div class="flex gap-2 row relative"><!><!>`),JY=l(`<p class="padding-sidebar body-text">This report was generated from the last <b></b> games on your connected account(s).`),YY=l(`<div>, <!><!>`),XY=l(`<div class=text-success>+<!> Elo`),ZY=l(`<div class=text-danger> Elo`),QY=e=>{let t=[];O(()=>{s(t,`client`)});let n=_(()=>J().getFrontendSetting(`openingsTimeRange`).value),r=_(()=>O6().openingsReportsByTimeRange[n()]??null),i=_(()=>r()?.find(e=>e.id===O6().selectedReportIds[n()])??null),a=e=>O6().selectReport(n(),e?.id),o=e=>{let t=jF(e.line),n=!e.reviewed;var r=UY(),i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return N(r,x(qR,{get side(){return e.side},size:8}),i),N(r,x(R,{width:10}),a),N(a,()=>t()?.fullName??``),N(r,x(R,{width:8}),o),N(r,x(j,{when:n,get children(){var e=HY();return N(e,x(VY,{get color(){return B.colors.purple[55]}})),e}}),s),r};m(()=>({currentReports:r(),currentActiveReport:i()}),({currentReports:e,currentActiveReport:t})=>{if(e===null){a(null);return}t===null&&a(e.find(e=>$R.countInsights(e)>0)??e[0]??null)}),m(()=>({report:i(),timeRangeKey:n()}),({report:e,timeRangeKey:n})=>{if(e===null)return;let r=$R.getAllReports(e).filter(e=>!e.reviewed).map(e=>e.insightId);if(r.length!==0){s(r,`server`,n);for(let e of r)t.push(e)}});let s=(e,t=`both`,r=ie(n))=>{if(e.length!==0){if(t===`client`||t===`both`){let t=new Set(e);Z(e=>{e.repertoireState.openingReportsState.mutateOpeningsReportForTimeRange(r,e=>{for(let n of e)for(let e of $R.getAllReports(n))t.has(e.insightId)&&(e.reviewed=!0)})})}(t===`server`||t===`both`)&&QS.post(`/api/v1/openings_report/insight_reviewed`,{insightIds:e})}},c=(e,t)=>{s([e.insightId],`both`),Z(n=>{Q().pushView(zY,{props:{type:t,report:e,eco:AF(e.line),overallReport:i()}})})},l=e=>{var t=WY();return M(()=>F(L(`absolute bottom-0 left-0 right-0 h-0.5 transition-colors bg-primary`,e?`bg-gray-84`:`bg-gray-32`)),(e,n)=>{P(t,e,n)}),t},u=()=>{Q().getActiveChessboard().set(e=>{e.previewPosition=null})},d=e=>{Q().getActiveChessboard().set(t=>{t.previewPosition=ez(new ip(EE.toFen(e.epd))),t.flipped=e.side===`black`})};return x($,{header:`Your openings report`,actions:[],get children(){return[x(H6,{get actions(){return[p0(f0.openingsTimeRange,e=>{Z(t=>{O6().setOpeningsReportForTimeRange(e,null),t.repertoireState.openingReportsState.fetchOpeningsReport()})})]}}),x(R,{height:12}),x(j,{get when(){return r()===null},get children(){var e=GY();return N(e,x(Ni,{})),e}}),x(j,{get when(){return A(()=>!!H(r()))()?r()!==null:H(r())},get children(){return[x(R,{height:12}),KY()]}}),x(j,{get when(){return i()!==null},get children(){return[x(j,{get when(){return(r()?.length??0)>1},get children(){var e=qY(),t=e.firstChild,n=t.nextSibling;return N(e,()=>l(!1),t),N(e,x(b,{get each(){return r()},children:e=>(()=>{var t=YY(),n=t.firstChild,r=n.nextSibling,o=r.nextSibling;return t._$$click=()=>a(e),N(t,()=>e.timeClass,n),N(t,()=>e.mode,r),N(t,()=>l(i()?.id===e.id),o),M(()=>F(L(`text-sm transition-colors cursor-pointer py-4 font-medium relative padding-sidebar`,i()?.id===e.id?`text-primary`:`text-tertiary hover-fine:text-primary`)),(e,n)=>{P(t,e,n)}),t})()}),n),e}}),x(j,{get when(){return!H(r())},get children(){return[x(R,{between:[`tabs`,`table`]}),x(j,{get when(){return i().bestOpenings.length>0},get children(){return x(uW,{onBlurTable:u,onHover:d,title:`Best openings`,leftColumns:[{label:`Opening`,labelStyle:`hidden`,width:`auto`,render:e=>o(e)}],get rows(){return i().bestOpenings},onClick:e=>c(e,`best`),rightColumns:[{label:`Performance`,width:70,align:`right`,render:e=>{let t=Math.round(e.minStrength-i().minStrength);var n=XY(),r=n.firstChild.nextSibling;return r.nextSibling,I(()=>e=>{vE({ref:e,content:()=>`You perform ${t} points above your average, when you play this opening.`,maxWidth:160})},n),N(n,t,r),n}}]})}}),x(j,{get when(){return i().worstOpenings.length>0},get children(){return[x(j,{get when(){return i().bestOpenings.length>0},get children(){return x(R,{between:[`table`,`table`]})}}),x(uW,{title:`Worst openings`,onBlurTable:u,onHover:d,leftColumns:[{label:`Opening`,labelStyle:`hidden`,width:`auto`,render:e=>o(e)}],get rows(){return i().worstOpenings},onClick:e=>c(e,`worst`),rightColumns:[{label:`Performance`,width:70,align:`right`,render:e=>{let t=Math.round(e.maxStrength-i().maxStrength);var n=ZY(),r=n.firstChild;return I(()=>e=>{vE({ref:e,content:()=>`You perform ${Math.abs(t)} points below your average, when you play this opening.`,maxWidth:160})},n),N(n,t,r),n}}]})]}}),x(R,{between:[`table`,`body-text`]}),(()=>{var e=JY(),t=e.firstChild.nextSibling;return N(t,()=>i().gamesCount),e})()]}})]}})]}})};LF(QY,`openings_report`),ae([`click`]);var $Y=l(`<div class="fixed inset-0 z-[1000] flex items-center justify-center">`),eX=l(`<div><div><div><div><div>`),tX=()=>{let e=typeof document>
36`u`?null:document.getElementById(`boot-loader`),t=typeof window>`u`?void 0:window.__bootLoader;return!e||e.hidden||!t||t.adopted?null:(t.adopted=!0,{el:e,start:t.start})},nX=e=>{let t=tX(),n=t!==null||ie(e),[r,i]=o(n),a=n,[s,c]=o(!1),[l,u]=o(!1),[d,f]=o(t!==null),p=t?t.start:performance.now(),h=[],g=()=>{h.forEach(clearTimeout),h=[]};return m(e,e=>{if(g(),e){a||(p=performance.now()),a=!0,c(!1),u(!1),i(!0);return}if(!a)return;let{fadeIn:n,minShow:r,fadeOut:o}=We,s=Math.max(0,n+r-(performance.now()-p));h.push(setTimeout(()=>{c(!0),t?.el.querySelector(`svg`)?.classList.add(`fade-out`),h.push(setTimeout(()=>{a=!1,t?.el.remove(),t=null,f(!1),i(!1),u(!0)},o))},s))}),O(()=>{g(),t?.el.remove()}),{showLoader:r,fadingOut:s,revealing:l,usingBootLoader:d}},rX=e=>{let t=B.gray[19],{showLoader:n,fadingOut:r,revealing:i,usingBootLoader:a}=nX(()=>!!e.loading),o=()=>n();var c=eX(),l=c.firstChild,u=l.firstChild,d=u.firstChild,f=d.firstChild;return N(c,x(j,{get when(){return A(()=>!!o())()?!a():o()},get children(){var e=$Y();return s(e,`background-color`,t),N(e,x(Be,{get class(){return L(`w-[200px] max-w-[80vw]`,r()&&`fade-out`)}})),e}}),l),N(f,()=>e.children),N(l,()=>e.bottom,null),M(()=>({e:F(z(B.column,B.fullWidth,B.bg(t),B.grow)),t:F(L(`pt-[var(--safe-area-inset-top)]`,i()&&`loader-reveal`,`min-h-[100dvh]`)),a:o(),o:o()?`true`:void 0,i:F(z(B.column,B.fullWidth,B.grow)),n:F(z(ON()?z(B.grow):B.flexShrink(1),e.centered&&B.grow,e.fullHeight&&B.grow)),s:F(z(!ON()&&z(B.overflowY(`auto`)),ON()&&z(B.grow),B.center,B.justifyStart,B.flexShrink(1),e.fullHeight&&z(B.grow),!e.flushTop&&!e.naked&&B.pt(ON()?24:48),e.centered&&z(B.grow,B.justifyCenter))),h:F(z(!e.fullHeight&&!e.naked&&B.pb(ON()?92:180),B.center,B.fullWidth,e.fullHeight&&B.grow))}),({e,t,a:n,o:r,i,n:a,s:o,h:s},p)=>{w(c,e,p?.e),P(c,t,p?.t),n!==p?.a&&C(l,`inert`,n),r!==p?.o&&C(l,`aria-hidden`,r),w(l,i,p?.i),w(u,a,p?.n),w(d,o,p?.s),w(f,s,p?.h)}),c},iX=l(`<div class="row w-full justify-center pt-2 md:pt-5">`),aX=l(`<div id=sidebar>`),oX=l(`<div id class="md:px-4 items-center grow"><div class="grow self-stretch"><div><div class=col><div><!><!></div><!><!></div><!>`),Wee=l(`<div><!><!>`),sX=l(`<div class="row items-center w-full justify-between padding-sidebar py-2 gap-2"><div class="min-w-0 grow-1 overflow-hidden"></div><div class=shrink-0>`),cX=l(`<div>`),lX=l(`<i class="fa-light fa-angle-right">`),uX=l(`<div class=pointer-events-none>`),dX=ct.md,fX=e=>{if(Ve)return!Q().currentView();if(!e)return!1;if(wu([`side_overview`,`overview`],Q().mode)||wu([QY,QR],Q().currentView()?.component))return!0;let t=Q().currentView();return t?.component===yY?!(t?.props??{}).startEpd:t?.component===uV&&!!(t?.props??{}).manual},pX=e=>{let t=N6();NR((e,n)=>{switch(e){case`ArrowLeft`:n.preventDefault(),Q().backOne();break;case`ArrowRight`:if(t()!==`build`)return;n.preventDefault(),Z(e=>e.repertoireState.getChessboard()?.forwardOne())}});let n=st(),r=()=>n().bp<dX,[i,a]=o(null),s=Qe(i),c=()=>s.height,l=()=>fX(r());m(()=>Ye&&e.loading,e=>{Ye&&(document.documentElement.style.overflow=e?`hidden`:`auto`)});let u=y(()=>e.chessboardView);return x(rX,{flushTop:!0,bottom:null,fullHeight:!0,naked:!0,get loading(){return e.loading},get children(){var t=oX(),i=t.firstChild,o=i.firstChild,s=o.firstChild,d=s.firstChild,f=d.firstChild,p=f.nextSibling,m=d.nextSibling,h=m.nextSibling,g=s.nextSibling;return N(o,(()=>{var t=A(()=>!r());return()=>t()?(()=>{var t=Wee(),n=t.firstChild,r=n.nextSibling;return N(t,()=>e.breadcrumbs,n),N(t,x(R,{height:25}),r),M(()=>({e:F(z(B.column)),t:F(ke)}),({e,t:n},r)=>{w(t,e,r?.e),P(t,n,r?.t)}),t})():(()=>{var t=sX(),n=t.firstChild,r=n.nextSibling;return N(n,()=>e.breadcrumbs),N(r,()=>e.settings),t})()})(),s),I(()=>a,s),N(d,x(j,{when:u,get children(){return u()}}),f),N(d,x(j,{get when(){return e.chessboardInterface},keyed:!0,get children(){return x(u2,{get chessboardInterface(){return e.chessboardInterface}})}}),p),N(s,x(j,{get when(){return e.belowChessboard},get children(){var t=iX();return N(t,()=>e.belowChessboard),t}}),m),N(s,x(j,{get when(){return n().isMobile},get children(){return x(R,{height:8})}}),h),N(o,(()=>{var t=A(()=>!!r());return()=>t()?(()=>{var t=cX();return N(t,x(yX,{get backSection(){return e.backSection},get settings(){return e.settings},get children(){return e.sidebarContent}})),M(()=>({e:F(L(!e.loading&&`transition-mt duration-250 delay-100 ease-in-out`,`relative z-10 grow`)),t:F(z(c()?B.mt(l()?-c()+100:0):B.mt(0),{"will-change":`margin-top`}))}),({e,t:n},r)=>{P(t,e,r?.e),w(t,n,r?.t)}),t})():x(R,{height:60})})(),g),N(i,x(j,{get when(){return!r()},get children(){return[x(R,{get width(){return n().switch(24,[ct.lg,36],[ct.xl,48])}}),(()=>{var t=aX();return N(t,x(yX,{get backSection(){return e.backSection},get settings(){return e.settings},get children(){return e.sidebarContent}})),M(()=>({e:F(L(`z-10 relative transition-[max-width] duration-300`,`max-w-[480px] lg:max-w-[500px] xl:max-w-[650px]`)),t:F(z(B.flexGrow(2),B.flexShrink,B.noBasis))}),({e,t:n},r)=>{P(t,e,r?.e),w(t,n,r?.t)}),t})()]}}),null),M(()=>({e:F(z(r?B.fullWidth:B.containerStyles(n().bp),B.noUserSelect)),t:F(z(r()?B.width(B.min(600,`100%`)):B.fullWidth,r()?B.column:B.row,r()?B.justifyStart:B.justifyCenter)),a:F(z(B.column,!r()&&z(B.grow,B.noBasis,B.flexShrink),r()&&B.width(`min(480px, 100%)`),!r()&&B.minWidth(`300px`),r()&&B.grow,r()?B.selfCenter:B.selfStretch)),o:F(L(`z-999 transition-[max-width] duration-300`,`md:max-w-[480px] lg:max-w-[480px] xl:max-w-[520px] 2xl:max-w-[650px]`)),i:F(L(`w-full duration-250 transition-opacity ease-in-out`,r()&&`self-center max-w-[480px] padding-sidebar`,MF()&&`pointer-events-none`,l()?Ve?`opacity-0`:`opacity-20`:`opacity-100`))}),({e,t:n,a:r,o:a,i:s},c)=>{w(t,e,c?.e),w(i,n,c?.t),w(o,r,c?.a),P(o,a,c?.o),P(d,s,c?.i)}),t}})},mX=()=>{let e=st(),t=()=>Q().getBreadCrumbs(),n=_(()=>mR(t())),r=()=>t().length===1,i=N6(),a=t=>{let n=()=>t.onPress&&!t.isCurrent?.(),r=()=>t.id.startsWith(`repertoire-`);return x(zU,{get style(){return z(n()?B.clickable:B.unclickable)},get class(){return L(r()&&e().isMobile?`min-w-0 max-w-[9rem]`:`shrink-0`,t.id===`home`&&e().isMobile&&`mr-1`)},onPress:()=>{n()&&Z(e=>{K(`breadcrumbs.clicked`,{mode:i,breadcrumb:t.analyticsLabel??t.text}),vX(`left`),t.onPress?.()})},get children(){var i=cX();return N(i,x(j,{get when(){return typeof t.text==`string`},get fallback(){var e=cX();return N(e,()=>t.text),M(()=>F(L(Ae,n()&&`cursor-pointer group-hover:text-primary transition-colors`)),(t,n)=>{P(e,t,n)}),e},get children(){return x(V,{get style(){return z(B.weightBold)},get class(){return L(Ae,r()&&e().isMobile&&`truncate`,n()&&`group-hover:text-primary transition-colors`)},get children(){return t.text}})}})),M(()=>({e:F(z()),t:F(L(ye,n()&&`group`))}),({e,t},n)=>{w(i,e,n?.e),P(i,t,n?.t)}),i}})},o=()=>e().bp<dX;return x(eR,{get open(){return!r()},get class(){return L(`min-w-0`,o()&&`grow-1`,!o()&&`h-8 items-center`)},get style(){return z(B.row,B.alignCenter,B.constrainWidth,{"mask-image":`linear-gradient(to right, black calc(100% - 24px), transparent 100%)`})},get children(){return x(MR,{segments:n,children:t=>{if(t.type===`separator`){var n=uX();return N(n,x(V,{get style(){return z(B.fg(B.gray[51]))},get children(){return lX()}})),M(()=>F(z(B.mx(e().switch(6,[ct.lg,8])),B.unshrinkable)),(e,t)=>{w(n,e,t)}),n}return a(t.breadcrumb)}})}})},hX=l(`<div>`),gX=l(`<div><!><!><!>`),_X=null,vX=(e,t)=>{Q().animateSidebar(e,t)},yX=e=>{let t=st(),n=()=>t().bp<dX,r=()=>Q().isPlayingGame();var i=gX(),a=i.firstChild,o=a.nextSibling,s=o.nextSibling;return N(i,x(j,{get when(){return!n()},get children(){var n=hX();return N(n,()=>e.settings),M(()=>F(z(B.absolute,B.top(0),B.right(0),B.zIndex(15),B.pr(B.getSidebarPadding(t())),B.pt(B.getSidebarPadding(t())))),(e,t)=>{w(n,e,t)}),n}}),a),N(i,(()=>{var t=A(()=>!n());return()=>t()&&e.backSection})(),o),N(i,x(IG,{enableSwipeBack:!0,retainPreviousView:!0,setAnimateSidebar:e=>{_X=e},get children(){return[x(j,{get when(){return n()},get children(){return e.backSection}}),A(()=>e.children)]}}),s),M(()=>({e:F(z(B.column,B.zIndex(4),B.relative,B.overflowHidden,B.bg(B.gray[26]),B.minHeight(`100%`))),t:F(L(`grow-1`,!(n()&&r())&&`pb-8 lg:pb-12`))}),({e,t},n)=>{w(i,e,n?.e),P(i,t,n?.t)}),i},bX=l(`<p class="body-text padding-sidebar">This will store your openings securely on our servers (not just on your device).`),xX=l(`<button type=button class="font-medium text-tertiary hover-fine:text-primary transition-colors text-sm md:text-xs -mt-6 cursor-pointer">Forgot your password?`),SX=l(`<div><div class="col items-center">
36<div class="min-w-80 padding-sidebar w-full self-stretch"><div><form class="col gap-8"><div class="flex flex-col gap-8 md:flex-row md:gap-[18px]"><!><!></div><!><input type=submit hidden>`),CX=xF({email:iF().email().required().label(`Email`),password:iF().min(8).required().label(`Password`)}),wX=e=>{let t=st(),[n,r]=o({email:``,password:``}),[i,a]=o({}),[s,c]=o(!1),l=(e,t)=>{r(n=>({...n,[e]:t})),a(t=>({...t,[e]:null}))},u=()=>{try{return CX.validateSync(n(),{abortEarly:!1}),a({}),!0}catch(e){if(e instanceof xP){let t={};e.inner.forEach(e=>{e.path&&!t[e.path]&&(t[e.path]=[e.message])}),a(t)}return!1}},d=()=>{u()&&!s()&&(c(!0),f(n()).finally(()=>{c(!1)}))},f=e=>(h(``),QS.post(p()===`register`?`/api/register`:`/api/login`,{email:e.email,password:e.password}).then(t=>{window.tolt_referral&&window.tolt?.signup?.(e.email),Z(e=>{e.userState.handleAuthResponse(t.data),e.navigationState.push(`/`),g().isOnboarding?(K(`onboarding.${p()}.success`),vX(`right`),Y().askAboutSourceOrEndOnboarding()):e.repertoireState.backToOverview(),K(`auth.${p()}.success`)})}).catch(e=>{K(`auth.${p()}.error`),h(e?.response?.data?.error??`Something went wrong`)})),[p]=o(ie(()=>e.authType)??`login`),[m,h]=o(``),g=()=>Y().onboarding;return x($,{get actions(){return[{onPress:()=>{d()},text:p()===`login`?`Log in`:`Create account`,style:`focus`},...g().isOnboarding?[{onPress:()=>{K(`onboarding.login.skip`),Z(e=>{Je?(Q().animateSidebar(`right`),Q().clearViews()):Y().askAboutSourceOrEndOnboarding()})},text:`Skip this step for now`,style:`primary`}]:[]]},get header(){return p()===`login`?`Log in`:`Create a free Chessbook account`},get headerGap(){return A(()=>p()===`login`)()?t().isMobile?32:36:void 0},get children(){return[x(j,{get when(){return p()===`register`},get children(){return[bX(),x(R,{between:[`body-text`,`form`]})]}}),(()=>{var e=SX(),t=e.firstChild.firstChild.firstChild,n=t.firstChild,r=n.firstChild,a=r.firstChild,o=a.nextSibling,c=r.nextSibling,u=c.nextSibling;return n.addEventListener(`submit`,e=>{e.preventDefault(),d()}),N(r,x(lR,{class:`flex-1 min-w-0`,placeholder:`[email protected]`,setFields:l,type:`email`,name:`email`,label:`Email`,get errors(){return i()}}),a),N(r,x(lR,{class:`flex-1 min-w-0`,setFields:l,type:`password`,name:`password`,label:`Password`,autocomplete:`current-password`,get errors(){return i()}}),o),N(n,x(j,{get when(){return p()===`login`},get children(){var e=xX();return e._$$click=()=>{Z(e=>{Q().pushView(pR)})},e}}),c),N(n,x(nR,{name:`Server error`,get error(){return m()},class:`inline-block`}),u),M(()=>({e:F(L(s()&&`opacity-0`)),t:F(z(B.br(4),B.px(0),B.py(0)))}),({e:n,t:r},i)=>{P(e,n,i?.e),w(t,r,i?.t)}),e})()]}})};ae([`click`]);var TX=l(`<p class="body-text padding-sidebar">Get notified of opening mistakes in your games.`),EX=l(`<p class="body-text padding-sidebar">This will let you review the mistakes in your online games.`),DX=l(`<p class="body-text padding-sidebar">Weâll automatically check your online games and:`),OX=l(`<div class=padding-sidebar>`),kX=l(`<div class=flex><!><!>`),AX=l(`<div><p>`),jX=l(`<i>`),MX=l(`<div class="row w-full justify-center">`),NX=l(`<div><div class="col items-center"><div class=self-stretch><form class="col gap-8"><!><input type=submit hidden>`),PX=()=>{let e=()=>q().userState?.user,t=()=>Y().onboarding.isOnboarding,n=()=>E6().onboarding,r=()=>t()||n(),i=()=>!r()&&!!(e()?.lichessUsername||e()?.chesscomUsername);return ze(()=>{K(`connect_accounts_setting.shown`)}),x($,{get header(){return t()||n()?`Connect your online accounts`:`Connected accounts`},bodyPadding:!1,get actions(){return t()?[{style:`primary`,onPress:()=>{Z(e=>{Q().pushView(wX,{props:{authType:`register`}})})},text:`Skip this step for now`}]:[]},get children(){return[x(j,{get when(){return t()},get children(){return[TX(),x(R,{between:[`body-text`,`actions`]})]}}),x(j,{get when(){return n()},get children(){return[EX(),x(R,{between:[`body-text`,`actions`]})]}}),x(j,{get when(){return!r()&&Ge},get children(){return[DX(),x(R,{between:[`body-text`,`bullets`]}),(()=>{var e=OX();return N(e,()=>
36[`Count correct moves as practice`,`Let you know when you make a mistake`].map(e=>x(XL,{children:e}))),M(()=>F(z(B.gridColumn({gap:8}))),(t,n)=>{w(e,t,n)}),e})(),x(R,{between:[`bullets`,`table`]})]}}),x(FX,{get username(){return e()?.lichessUsername},platform:`Lichess`,onClick:()=>{Z(e=>{e.userState.authWithLichess({source:r()?`onboarding`:`setting`})})},onDisconnect:()=>{Z(e=>{e.userState.setLichessToken(null,null,[])})}}),x(j,{get when(){return i()},get children(){return x(R,{between:[`table`,`table`]})}}),x(FX,{get username(){return e()?.chesscomUsername},platform:`Chess.com`,get hideTopBorder(){return!i()},onClick:()=>{Z(e=>{Q().pushView(LX)})},onDisconnect:()=>{Z(e=>{e.userState.setChesscomUsername(null)})}})]}})},FX=e=>{let t=()=>Y().onboarding.isOnboarding;var n=kX(),r=n.firstChild,i=r.nextSibling;return N(n,x(V6,{get action(){return{style:`secondary`,text:e.platform,class:e.hideTopBorder?``:`border-t-1 border-t-border border-t-solid`,static:!!e.username,onPress:e.username?Hi:e.onClick,right:x(IX,{get text(){return e.username??`Connectâ¦`},get connected(){return!!e.username},get hideIcon(){return!e.username}})}}}),r),N(n,x(j,{get when(){return A(()=>!!e.username)()?!t():e.username},get children(){return x(U6,{text:`Disconnect`,get onClick(){return e.onDisconnect}})}}),i),n},IX=e=>{var t=AX(),n=t.firstChild;return N(n,()=>e.text),N(t,(()=>{var t=A(()=>!e.hideIcon);return()=>t()&&(()=>{var t=jX();return M(()=>F(L(`ml-2`,`fa fa-solid text-[12px]`,e.connected?`fa-check`:`fa-xmark`)),(e,n)=>{P(t,e,n)}),t})()})(),null),M(()=>F(L(`flex center row text-xs font-semibold`,e.connected?`text-primary`:`text-tertiary`)),(e,n)=>{P(t,e,n)}),t},LX=e=>{let t=async t=>{Z(n=>{n.userState.setChesscomUsername(t.username).then(()=>{Z(t=>{e.intention===`import`?(Q().pushView(ZL),t.repertoireState.importIntoRepertoire({repertoireId:e.repertoireId,siteGamesSource:`chesscom`}).then(()=>{Z(e=>{vX(`right`),Q().clearViews(),Q().replaceView(eQ)})})):Y().onboarding.isOnboarding?Q().pushView(XZ):t.repertoireState.backToOverview()})}),n.repertoireState.needsToRefetchLichessMistakes=!0})},{form:n,setFields:r,isSubmitting:i,errors:a,createSubmitHandler:o}=OF({initialValues:{username:``},onSubmit:t,extend:[DF({schema:xF({username:iF().required().label(`Username`).test({name:`is-not-email`,skipAbsent:!0,test(e,t){return!e.includes(`@`)||t.createError({message:`Please enter your username, not your email`})}})})})]}),s=o({onSubmit:t});return x($,{actions:[{onPress:s,text:`Connect`,style:`focus`}],header:`Your Chess.com username`,bodyPadding:!0,get children(){return[x(j,{get when(){return i()},get children(){var e=MX();return N(e,x(Ni,{})),e}}),(()=>{var e=NX(),t=e.firstChild.firstChild.firstChild,o=t.firstChild,s=o.nextSibling;return I(()=>n,t),N(t,x(lR,{setFields:r,placeholder:`username`,type:`text`,name:`username`,get errors(){return a()}}),o),N(t,x(nR,{name:`Server error`,error:null,class:`inline-block`}),s),M(()=>F(L(i()?`hidden`:``)),(t,n)=>{P(e,t,n)}),e})()]}})},RX=l(`<p class=body-text>This is required to access your study content.`),zX=e=>x($,{header:`Connect your Lichess account`,bodyPadding:!0,actions:[{onPress:()=>{Z(t=>{t.userState.authWithLichess(e.authState)})},style:`focus`,text:`Continue`}],get children(){return RX()}}),BX;(function(e){function t(e){if(!e.includes(`-`))return[2500,2800];let[t,n]=e.split(`-`).map(e=>Number.parseInt(e,10));return[t,n]}e.fromString=t;function n(e){return e[0]===2500?`2500+`:`${e[0]}-${e[1]}`}e.asString=n;function r(e,t){let n=[0,1e3],r=[1400,1600],i=[1800,2e3],a=[2e3,2200],o=[2200,2500],s=[2500,2800],c=t[0];if(e===`Lichess`)return t;switch(e){case`Chess.com`:switch(c){case 0:return n;case 1e3:case 1200:case 1400:return r;case 1600:return i;case 1800:return a;case 2e3:return a;case 2200:return o;case 2500:return s;default:return s}case`USCF`:case`FIDE`:switch(c){case 0:return n;case 1e3:case 1200:case 1400:return r;case 1600:return i;case 1800:return a;case 2e3:return o;case 2200:return s;default:return s}default:throw Error(`Unknown rating system ${e}`)}}e.fromSystemAndRange=r})(BX||={});var VX=function(e){return e.Lichess=`Lichess`,e.ChessCom=`Chess.com`,e.USCF=`USCF`,e.FIDE=`FIDE`,e}({}),HX=l(`<button type=button tabindex=-1 class="row w-[25px] shrink-0 items-center justify-center cursor-pointer text-primary hover-fine:bg-sidebar_button_primary_hover transition-colors"><i>
36`),UX=l(`<div class="relative w-full touch-pan-y select-none"><div class="absolute inset-x-0 -translate-y-1/2 cursor-pointer"style=height:24px><div class="absolute inset-x-0 top-1/2 -translate-y-1/2 rounded-full bg-gray-34"style=height:6px></div></div><div class="absolute inset-y-0 inset-x-[53px]"><div data-thumb><input type=text inputmode=numeric maxlength=4 aria-label=Rating class="field-surface w-full cursor-text rounded border-0 p-0 text-center text-2xl font-bold leading-none tabular-nums outline-none"style=height:45px><div></div><div class="absolute left-1/2 w-px -translate-x-1/2 bg-blue-70"></div><div class="row items-stretch overflow-hidden rounded-sm bg-sidebar_button_primary text-primary"style="height:25px;box-shadow:0 2px 0 rgba(0, 0, 0, 0.18)"><div class="w-px self-stretch bg-gray-38"></div><div role=slider tabindex=0 aria-label=Rating aria-valuemin=0 aria-valuemax=3000 class="row flex-1 items-center justify-center cursor-grab outline-none focus-visible:bg-sidebar_button_primary_hover"><i class="fa-solid fa-grip-dots-vertical text-xs text-gray-50"></i></div><div class="w-px self-stretch bg-gray-38"></div><!>`),WX=l(`<div class="absolute w-px -translate-x-1/2 -translate-y-1/2 bg-gray-50"style=height:6px>`),GX=3e3,KX=10,qX=1,JX=400,YX=66,XX=12,ZX=(e,t=qX)=>Math.min(GX,Math.max(0,Math.round(e/t)*t)),QX=(e,t)=>{let n=Math.abs(t);return n===1?e+t:t>0?(Math.floor(e/n)+1)*n:(Math.ceil(e/n)-1)*n},$X=400,eZ=60,tZ=e=>e<16?1:e<48?10:100,nZ=e=>{let t,n,r=!1,i=!1,a=()=>{r=!1,clearTimeout(t),clearInterval(n)};O(a);var o=HX(),s=o.firstChild;return o._$$click=t=>{t.detail===0&&e.onStep(qX)},o.addEventListener(`pointercancel`,a),o._$$pointerup=()=>{r&&!i&&e.onStep(qX),a()},o._$$pointerdown=o=>{if(o.stopPropagation(),o.button!==0)return;o.currentTarget.setPointerCapture(o.pointerId),a(),r=!0,i=!1;let s=0;t=setTimeout(()=>{i=!0,e.onStep(qX),n=setInterval(()=>{e.onStep(tZ(s)),s+=1},eZ)},$X)},M(()=>({e:e.direction===`left`?`Lower rating by 1`:`Raise rating by 1`,t:F(L(`fa-solid fa-fw text-xs`,e.direction===`left`?`fa-chevron-left`:`fa-chevron-right`))}),({e,t},n)=>{e!==n?.e&&C(o,`aria-label`,e),P(s,t,n?.t)}),o},rZ=e=>{let[t,n]=o(null),r=()=>t()??e.value,[i,a]=o(!1),c=()=>(r()-0)/3e3,l,u,d=0,f=null,p=e=>{let t=l.getBoundingClientRect();return ZX(0+Math.min(1,Math.max(0,(e-d-t.left)/t.width))*3e3,KX)},m=()=>{let e=l.getBoundingClientRect();return e.left+c()*e.width},h=e=>{n(ZX(e)),clearTimeout(u),u=setTimeout(g,JX)},g=()=>{let r=t();r!==null&&(r!==e.value&&e.onCommit(r),n(null))},[_,v]=o(null),y=e=>Math.min(GX,Math.max(0,Number(e))),b=t=>{let r=_();r!==null&&(v(null),n(null),t&&r!==``&&y(r)!==e.value&&e.onCommit(y(r)))},S=()=>{clearTimeout(u),b(!0),g()};e.registerFlush?.(S),O(()=>{S(),e.registerFlush?.(void 0)});let w=e=>{let t={ArrowLeft:-1,ArrowDown:-1,ArrowRight:qX,ArrowUp:qX,PageDown:-100,PageUp:100}[e.key],n;t!==void 0&&(n=ZX(r()+t)),e.key===`Home`&&(n=0),e.key===`End`&&(n=GX),n!==void 0&&(e.preventDefault(),h(n))};var T=UX(),E=T.firstChild;E.firstChild;var D=E.nextSibling,ee=D.firstChild,te=ee.firstChild,k=te.nextSibling,A=k.nextSibling,ne=A.nextSibling,re=ne.firstChild,ie=re.nextSibling,ae=ie.nextSibling.nextSibling;return T.addEventListener(`pointercancel`,e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&(f=null,a(!1),n(null))}),T._$$pointerup=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&(f=null,a(!1),g())},T._$$pointermove=e=>{if(e.currentTarget.hasPointerCapture(e.pointerId)){if(f!==null){if(Math.abs(e.clientX-f)<3)return;f=null}a(!0),n(p(e.clientX))}},T._$$pointerdown=e=>{if(e.button!==0)return;let t=e.target.closest(`[data-thumb]`),r=e.clientY-e.currentTarget.getBoundingClientRect().top;!t&&Math.abs(r-YX)>XX||(clearTimeout(u),e.currentTarget.setPointerCapture(e.pointerId),d=t?e.clientX-m():0,f=t?e.clientX:null,t||n(p(e.clientX)))},s(T,`height`,`112px`),s(E,`top`,`${YX}px`),I(()=>e=>{l=e},D),N(D,()=>[0,1e3,2e3,3e3].map(e=>(()=>{var t=WX();return s(t,`top`,`${YX}px`),s(t,`left`,`${(e-0)/3e3*100}%`),t})()),ee),te.addEventListener(`blur`,()=>b(!0)),te._$$keydown=e=>{e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(b(!1),e.currentTarget.blur())},te._$$input=e=>{let t=e.currentTarget.value.replace(/\D/g,``).slice(0,4);e.currentTarget.value=t,v(t),t.length===4&&n(y(t))},te.addEventListener(`focus`,e=>{clearTimeout(u),v(String(r())),e.currentTarget.select()}),te._$$pointerdown=e=>e.stopPropagation(),s(k,`height`,`42px`),s(A,`top`,`57px`),s(A,`height`,`18px`),N(ne,x(nZ,{direction:`left`,onStep:e=>h(QX(r(),-e))}),re),ie._$$keydown=w,N(ne,x(nZ,{direction:`right`,onStep:e=>h(QX(r(),e))}),ae),M(()=>({e:F(L(`absolute top-0 col w-[106px] -translate-x-1/2`,!i()&&`transition-[left] duration-200 ease-out`)),t:`${c()*100}%`,a:_()??String(r()),o:r()}),({e,t,a:n,o:r},i)=>{P(ee,e,i?.e),t!==i?.t&&s(ee,`left`,t),te.value=n??``,r!==i?.o&&C(ie,`aria-valuenow`,r)}),T};ae([`pointerdown`,`pointerup`,`click`,`pointermove`,`input`,`keydown`]);var iZ=l(`<i>`),aZ=l(`<div><!><div class="border-t-1 border-t-solid border-t-border">`),oZ=e=>{let t=t=>e.equality?e.equality(t,e.activeChoice):t===e.activeChoice,n=(n,r)=>({style:`secondary`,get shrink(){return e.shrink},text:ie(()=>e.renderChoice(n,t(n))),onPress:()=>e.onSelect(n,r),get off(){return!t(n)},right:(()=>{var e=iZ();return M(()=>({e:F(L(`fa fa-check transition-opacity`,!t(n)&&`opacity-0`)),t:F(z(B.fg(B.colors.text.primary)))}),({e:t,t:n},r)=>{P(e,t,r?.e),w(e,n,r?.t)}),e})()});var r=aZ(),i=r.firstChild,a=i.nextSibling;return N(r,x(j,{get when(){return e.title},get children(){return x(W6,{get text(){return e.title},class:`text-secondary!`})}}),i),N(r,x(j,{get when(){return e.description},get children(){return[x(V,{class:`body-text padding-sidebar`,get children(){return e.description}}),x(R,{height:12})]}}),a),N(a,x(b,{get each(){return e.choices},children:(e,t)=>x(V6,{get action(){return n(e,t())}})})),M(()=>({e:F(z(B.column,B.fullWidth)),t:F(z(B.fullWidth))}),({e,t},n)=>{w(r,e,n?.e),w(a,t,n?.t)}),r},sZ=l(`<div class="flex flex-col w-full"><div class=padding-sidebar></div><!><!>`),cZ=[VX.ChessCom,VX.Lichess,VX.FIDE,VX.USCF],lZ=e=>{switch(e){case VX.Lichess:return`Lichess`;case VX.USCF:return`USCF`;case VX.FIDE:return`FIDE`;default:return`Chess.com`}},uZ=({range:e,system:t})=>{let n=J().user,r=e??n?.ratingRange??BX.asString(h1),i=t??n?.ratingSystem??VX.ChessCom,a=BX.fromSystemAndRange(i,BX.fromString(r)),o=J().getCurrentThreshold();Y().onboarding.isOnboarding&&(o=w1(a)),J().updateUserRatingSettings({ratingRange:r,ratingSystem:i,missThreshold:o*100})},dZ=()=>{let e=()=>J().user?.ratingSystem??VX.ChessCom;return x($,{header:`Platform`,actions:[],get children(){return x(oZ,{choices:cZ,get activeChoice(){return e()},shrink:`left`,onSelect:e=>{K(`settings.rating_platform.change`,{value:e}),uZ({system:e})},renderChoice:e=>x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14))},get children(){return lZ(e)}})})}})},fZ=1500,pZ=`rating`,mZ=e=>je.find(t=>{let[n,r]=BX.fromString(t);return e<=r&&(e>n||n===0)})??je[je.length-1],hZ=()=>{let e=J().user,t=e?.ratingRange;if(!t||t===je[0]&&e?.temporary)return fZ;let[n,r]=BX.fromString(t);return Math.round((n+r)/2/100)*100}
36,gZ=()=>_Z()??hZ(),_Z=()=>{let e=J().user?.frontendSettings?.[pZ];if(typeof e!=`string`||e===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0},vZ=e=>{let t=J().user;if(!t)return;J().updateUserSettings({frontendSettings:{...t.frontendSettings,[pZ]:String(e)}});let n=mZ(e);n!==t.ratingRange&&uZ({range:n})},yZ,bZ=()=>{yZ?.(),_Z()===void 0&&vZ(gZ())},xZ=()=>{let e=()=>J().user,t=()=>[{onPress:()=>{Z(e=>{K(`settings.rating_platform.clicked`),Q().pushView(dZ)})},text:`Platform`,right:lZ(e()?.ratingSystem),style:`secondary`},p0(f0.timeControl)];var n=sZ(),r=n.firstChild,i=r.nextSibling,a=i.nextSibling;return s(r,`padding-top`,`${32-at}px`),N(r,x(rZ,{get value(){return gZ()},onCommit:vZ,registerFlush:e=>{yZ=e}})),N(n,x(R,{height:32}),i),N(n,x(H6,{get actions(){return t()}}),a),n},SZ=l(`<div class="flex gap-2"><div class="flex gap-3 flex-row items-center justify-between"><h2 class="font-semibold cursor-default tabular-nums">% complete</h2></div><div class="bg-gray-34 h-2 rounded-sm overflow-hidden"><div>`),CZ=e=>{let t=()=>Math.round(e.value*100);var n=SZ(),r=n.firstChild,i=r.firstChild,a=i.firstChild,o=r.nextSibling,s=o.firstChild;return N(i,t,a),M(()=>({e:F(z(B.relative,B.fullWidth,B.relative)),t:F(L(`w-full overflow-hidden h-full select-none relative bg-success rounded-sm transition-[width] duration-1000 ease-linear`)),a:F(z(B.width(`${Math.max(e.value*100,0)}%`)))}),({e,t,a:n},r)=>{w(o,e,r?.e),P(s,t,r?.t),w(s,n,r?.a)}),n},wZ=l(`<p class="body-text padding-sidebar">You'll be able to select specific chapters in the next step.`),TZ=l(`<div>`),EZ=l(`<div class="flex space-x-2 row items-center"><p>`),DZ=e=>{let[t,r]=o(!0),[i,a]=o([]);return ze(()=>{K(`select_lichess_study.shown`),AZ(q().userState.user).then(e=>{a(e)}).catch(e=>{n(e,{message:`Failed to fetch Lichess studies`,toast:!0})}).finally(()=>{r(!1)})}),x($,{header:`Which study would you like to import?`,get loading(){return t()},actions:[],get children(){return[wZ(),x(R,{between:[`body-text`,`table`]}),x(uW,{get rows(){return i()},onClick:t=>{Q().pushView(kZ,{props:{study:t,repertoireId:e.repertoireId}})},leftColumns:[{label:`Name`,render:e=>e.name,width:`auto`}],rightColumns:[{label:`Created`,width:100,render:e=>OZ(e.createdAt)},{label:`Last update`,width:100,render:e=>OZ(e.updatedAt)}]})]}})},OZ=e=>{let t=`MMM D`;(0,RN.default)(e).year()!==(0,RN.default)().year()&&(t=`MMM D, YYYY`);var n=TZ();return N(n,()=>(0,RN.default)(e).format(t)),n},kZ=e=>{let[t,n]=o(!0),[r,i]=o([]),a=()=>Y().repertoires?.[e.repertoireId];ze(()=>{K(`select_lichess_study.shown`),jZ(q().userState.user,e.study).then(e=>{i(e),c(new Set(e.filter(e=>!a()||e.orientation===a().side).map(e=>e.id))),n(!1)})});let[s,c]=o(new Set([]));return x($,{header:`Which chapters would you like to import?`,get loading(){return t()},get actions(){return A(()=>s().size===0)()?[]:[{onPress:()=>{Z(t=>{n(!0),t.repertoireState.importIntoRepertoire({repertoireId:e.repertoireId,studyId:e.study.id,studyChapterIds:Array.from(s())}).then(()=>{n(!1)})})},style:`focus`,text:`Import ${_L(s().size,`chapter`)}`}]},get children(){return x(uW,{get rows(){return r()},onClick:e=>{c(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})},isSelected:e=>s().has(e.id),maxRows:null,leftColumns:[{label:`Chapter name`,labelStyle:`hidden`,render:(e,{index:t})=>{var n=EZ(),r=n.firstChild;return N(n,x(qR,{get side(){return e.orientation},size:8}),r),N(r,(()=>{var n=A(()=>!!e.name);return()=>n()?e.name:`Chapter ${t}`})()),n},width:`auto`}],rightColumns:[]})}})},AZ=async e=>(await QS.get(`https://lichess.org/api/study/by/${e.lichessUsername}`,{headers:{authorization:`Bearer ${e.lichessToken}`}})).data.split(` 37`).filter(e=>e).map(e=>JSON.parse(e)),jZ=async(e,t)=>QS.get(`https://lichess.org/api/study/${t.id}.pgn?orientation=true&source=true`,{headers:{authorization:`Bearer ${e.lichessToken}`}}).then(e=>{let t=e.data.split(` 38`),n=[];for(;t.length>0;){let e=Id(t,e=>e.startsWith(`[`)),r=e.join(` 39`),i=/\[(ChapterName|Event) "(?<name>.*)"]/.exec(r)?.groups?.name;i=Vl(i.split(`:`),1).join(`:`);let a=/\[Orientation "(?<orientation>.*)"]/.exec(r)?.groups?.orientation,o=/\[(Source|ChapterURL) "(?<source>.*)"]/.exec(r)?.groups?.source,s=/\[White "(?<white>.*)"]/.exec(r)?.groups?.white,c=/\[Black "(?<black>.*)"]/.exec(r)?.groups?.black;!i&&s&&c&&(i=`${s} â ${c}`);let l=o.split(`/`).pop();t=t.slice(e.length),t=Wl(t,e=>!e.startsWith(`[`)),n.push({id:l,name:i,orientation:a===`white`?`white`:`black`})}return n}).catch(e=>(n(e,{message:`Failed to fetch chapters`,toast:!0}),[]));
39function MZ(e,t){function n(n){if(e()&&!e().contains(n.target))return t(n)}document.addEventListener(`mousedown`,n),O(()=>{document.removeEventListener(`mousedown`,n)})}var NZ=l(`<span class="underline underline-offset-2 hover-fine:text-primary transition-colors cursor-help">spaced repetition`),PZ=l(`<div class=col><p class="text-secondary pb-2 text-sm font-bold"></p><div><div></div><i class="fas fa-angle-down"></i><div>`),FZ=l(`<div>`),IZ=l(`<p class=body-text>Your next goal is to get your openings to 100% for both White and Black.`),LZ=l(`<p class=body-text>You can keep adding manually, or use Chessbook's autofill to do the hard work for you.`),RZ=l(`<b> games`),zZ=l(`<b>`),BZ=l(`<b> games `),VZ=l(`<div class="flex flex-col space-y-8">`),HZ=l(`<div><div class="bg-gray-17 rounded-sm p-4"><div class="border-gray-36 border-1 hover-fine:bg-gray-24 row relative h-20 w-full items-center justify-center rounded-sm border-dashed transition-colors cursor-pointer"><i></i><input type=file class="absolute z-10 h-24 h-full w-full cursor-pointer opacity-0"></div><div class="row my-4 items-center space-x-2"><div class="bg-gray-30 h-px grow"></div><p class="text-secondary ext-xs font-semibold">Or</p><div class="bg-gray-30 h-px grow">`),UZ=`A memory technique backed by decades of research to help you learn openings fast`,WZ=()=>(()=>{var e=NZ();return I(()=>e=>{ze(()=>{vE({ref:e,content:()=>UZ,maxWidth:260})})},e),e})(),GZ=()=>(PF(GZ),x($,{header:`Set up your Chessbook`,bodyPadding:!0,actions:[{onPress:()=>{Z(e=>{Q().pushView(qZ),K(`onboarding.get_started`)})},style:`focus`,text:`Get started`}],get children(){return[x(V,{class:`body-text`,children:`This tutorial will cover the basics of choosing opening moves and practicing them.`}),x(R,{between:[`body-text`,`body-text`]}),x(V,{class:`body-text`,children:`It should take around 2 minutes to complete.`})]}})),KZ=()=>(PF(KZ),x($,{header:`Welcome to Chesscards!`,bodyPadding:!0,actions:[{onPress:()=>{Z(e=>{Q().pushView(PX),K(`onboarding.get_started`)})},style:`focus`,text:`Get started`}],get children(){return x(V,{class:`body-text`,children:`Chesscards will review your online games and create cards out of them to study and learn from your mistakes.`})}})),qZ=()=>{let e=()=>J().user;PF(qZ);let t=()=>{Z(e=>{vX(`right`),e.repertoireState.onboarding.courseId?Q().pushView(rQ):e.repertoireState.browsingState.actions.goToBuildOnboarding()})};return ze(()=>{K(`onboarding.rating.shown`)}),x($,{header:`What's your rating?`,bodyPadding:!1,bodyEdge:`hard`,actions:[{onPress:()=>{bZ(),K(`onboarding.rating.set`,{ratingRange:e()?.ratingRange,ratingSource:e()?.ratingSystem}),t()},style:`focus`,text:`Set rating and continue`},{onPress:()=>{K(`onboarding.rating.dont_know`),t()},style:`primary`,text:`I don't know, skip this step`}],get children(){return[x(V,{class:`body-text padding-sidebar`,children:`This is used to determine which moves your opponents are likely to play.`}),x(xZ,{})]}})},JZ=e=>{let t=()=>J().user;PF(JZ),ze(()=>{Z(e=>{e.repertoireState.onboarding.isOnboarding=!0}),K(`onboarding.rating_before_import.shown`)});let n=n=>{n||bZ(),K(n?`onboarding.rating_before_import.skipped`:`onboarding.rating_before_import.set`,{ratingRange:t()?.ratingRange,ratingSource:t()?.ratingSystem}),e.onContinue()};return x($,{header:`What's your rating?`,bodyPadding:!1,bodyEdge:`hard`,actions:[{onPress:()=>n(!1),style:`focus`,text:`Set rating and continue`},{onPress:()=>n(!0),style:`primary`,text:`I don't know, skip this step`}],get children(){return[x(V,{class:`body-text padding-sidebar`,children:`This helps us select which moves to include based on what your opponents are likely to play.`}),x(xZ,{})]}})},YZ=()=>{let e=()=>Y().onboarding,t=()=>e().courseId,[n,r]=o(0);PF(YZ),ZI(()=>{},`hide`);let i=()=>t()&&Y().courses[t()]?.name||`Course`,a=()=>{let e=Y().repertoiresList,n=e.find(e=>e.course?.id===t());return n?e.some(e=>e.id!==n.id&&Object.values(e.positionResponses||{}).some(e=>e.some(e=>e.mine))):!1};return ze(()=>{let e=Date.now(),t=()=>{let n=Date.now()-e,i=Math.min(n/2e3,1);r(i),i<1?requestAnimationFrame(t):setTimeout(()=>{Z(e=>{a()?(e.repertoireState.onboarding.isOnboarding=!1,vX(`right`),Q().clearViews()):(vX(`right`),Q().pushView(qZ))})},300)};requestAnimationFrame(t),K(`onboarding.duplicating_repertoire.shown`)}),x($,{header:`Copying openings...`,bodyPadding:!0,actions:[],get children(){return[x(V,{class:`body-text`,get children(){return[A(()=>i()),` is being added to your Chessbook.`]}}),x(R,{height:24}),x(CZ,{get value(){return n()}})]}})},XZ=()=>(ze(()=>{K(`onboarding.create_account.shown`)}),PF(XZ),x($,{header:`Create an account?`,bodyPadding:!0,actions:[{onPress:()=>{Z(e=>{K(`onboarding.create_account.yes`),Q().pushView(wX,{props:{authType:`register`}})})},style:`primary`,text:`Create account`},{onPress:()=>{Z(e=>{K(`onboarding.create_account.skip`),Je?(Q().animateSidebar(`right`),Q().clearViews()):Y().askAboutSourceOrEndOnboarding()})}
39,style:`primary`,text:`Skip this step for now`}],get children(){return x(V,{class:`body-text`,children:`Creating an account will let you access your openings from other devices and prevent you from losing them if you clear your browser history.`})}})),ZZ=e=>{let[t,n]=o(!1),[r,i]=o(null);MZ(r,e=>{if(t())return n(!1),e.preventDefault(),e.stopPropagation(),!1});var a=PZ(),s=a.firstChild,c=s.nextSibling,l=c.firstChild,u=l.nextSibling,d=u.nextSibling;return N(s,()=>e.title),c._$$click=()=>{n(!t())},I(()=>i,c),N(l,()=>e.renderChoice(e.choice,!1,Hi)),N(c,x(R,{width:8}),u),N(d,x(b,{get each(){return e.choices},children:t=>(()=>{var r=FZ();return N(r,()=>e.renderChoice(t,!0,r=>{e.onSelect(t),n(!1),r?.preventDefault(),r?.stopPropagation()})),M(()=>F(L(`hover-fine:bg-gray-28 `)),(e,t)=>{P(r,e,t)}),r})()})),M(()=>({e:F(z(B.zIndex(10),B.relative)),t:F(L(`bg-gray-15 row cursor-pointer items-center rounded-sm px-4`)),a:F(L(`pointer-events-none`)),o:F(z(B.fontSize(18),B.fg(B.gray[84]))),i:F(z(B.top(`calc(22px)`),B.gridColumn({gap:0}),{opacity:+!!t()})),n:F(L(`bg-gray-15 p-2 absolute min-w-fit z-100 inset-x-0 rounded-[4px] items-stretch border border-solid border-gray-38 max-h-[320px] overflow-y-auto opacity-0`,!t()&&`pointer-events-none`))}),({e,t,a:n,o:r,i,n:o},s)=>{w(a,e,s?.e),P(c,t,s?.t),P(l,n,s?.a),w(u,r,s?.o),w(d,i,s?.i),P(d,o,s?.n)}),a},QZ=()=>(ze(()=>{K(`onboarding.choose_color.shown`)}),x($,{bodyPadding:!0,header:`Import for which color?`,get actions(){return aC.map(e=>({onPress:()=>{Z(t=>{K(`onboarding.choose_color`,{color:e}),t.repertoireState.onboarding.side=e,Q().pushView(aQ,{props:{side:e}})})},text:Eo(e),style:`primary`}))}})),$Z=()=>(PF($Z),ze(()=>{K(`onboarding.complete.shown`),window.fbq&&window.fbq(`trackCustom`,`onboarding.complete.shown`)}),x($,{bodyPadding:!0,header:`Now let's fill in the gaps`,actions:[{text:`Continue`,style:`primary`,onPress:()=>{Z(e=>{K(`onboarding.complete.continue`),e.repertoireState.onboarding.isOnboarding=!1,vX(`right`),e.repertoireState.backToOverview()})}}],get children(){return[IZ(),x(R,{between:[`body-text`,`body-text`]}),LZ()]}})),eQ=()=>{let e=()=>Y().onboarding,t=()=>X().derived.activeRepertoire()??Y().getDefaultRepertoire(e().side);ze(()=>{K(`onboarding.import_success.shown`)}),PF(eQ);let n=()=>Y().repertoireGrades[Y().getDefaultRepertoire(e().side)?.id],r=()=>{let e=n()?.biggestMiss;if(!e)return null;let{name:t}=jF(mp.fromPgn(fu(e?.lines)))()??{};return t};return x($,{bodyPadding:!0,header:`Import successful`,get actions(){return A(()=>!!e().isOnboarding)()?[{onPress:()=>{Z(e=>{vX(`right`),K(`onboarding.import_success.continue`),e.repertoireState.browsingState.actions.goToBuildOnboarding()})},text:`Go to the biggest gap in your openings`,right:r(),style:`primary`}]:[{onPress:()=>{Z(e=>{vX(`left`),e.repertoireState.backToOverview()})},text:`Continue`,style:`primary`}]},get children(){return[x(JL,{get repertoireId(){return t().id},type:`completion`}),x(j,{get when(){return e().isOnboarding},get children(){return[x(R,{height:24}),x(tQ,{})]}})]}})},tQ=e=>{let t=()=>J().getCurrentThreshold(),n=()=>[[`Your goal is to cover any positions which occur in at least`,` `,(()=>{var e=RZ(),n=e.firstChild;return N(e,()=>OM(t()),n),e})(),`.`],e.miss?[`Your biggest gap is in the `,(()=>{var t=zZ();return N(t,()=>e.miss.name),t})(),`, which youâll see in`,` `,(()=>{var e=BZ(),n=e.firstChild;return N(e,()=>OM(t()),n),e})()]:`This was set based on your rating but you can always change it later.`];return[x(V,{class:`body-text font-bold`,children:`How to complete your openings:`}),(()=>{var e=FZ();return N(e,()=>n().map(e=>x(XL,{children:e}))),M(()=>F(z(B.gridColumn({gap:8}),B.pt(12))),(t,n)=>{w(e,t,n)}),e})()]},nQ=()=>{let e=()=>Y().onboarding;ze(()=>{K(`onboarding.first_line_saved.shown`)}),PF(nQ);let t=()=>Y().getDefaultRepertoire(e().side);return x($,{bodyPadding:!0,header:`You've added your first moves!`,actions:[{onPress:()=>{K(`onboarding.first_line_saved.continue`),Z(e=>{Q().pushView(rQ)})},text:`Ok, got it`,style:`primary`}],get children(){return[x(JL,{get repertoireId(){return t().id},type:`completion`}),x(R,{height:24}),x(tQ,{})]}})},rQ=()=>{let e=st(),t=()=>Q().getActiveChessboard().getMoveLog(),n=()=>Y().onboarding,r=()=>{let e=X().derived.activeRepertoire();if(e)return e;let t=n().courseId;if(t){let e=Y().repertoiresList.find(e=>e.course?.id===t);if(e)return e}return Y().getDefaultRepertoire(n().side)};return ze(()=>{K(`onboarding.practice_intro.shown`)}),PF(rQ),x($,{bodyPadding:!0,header:`Let's practice what you've added`,actions:[{onPress:()=>{Z(e=>{K(`onboarding.practice_intro.continue`),vX(`right`);let n=r();n.course?e.repertoireState.reviewState.actions.startReview({repertoireId:n.id,filter:`recommended`,maxMoves:4,forceFirstPractice:!0}):e.repertoireState.reviewState.actions.reviewLine(t(),n)})},text:`Practice saved moves`,style:`focus`}],get children(){return x(V,{class:`body-text`,get children(){return[`Chessbook uses`,` `,x(j,{get when(){return!e().isMobile},fallback:`spaced repetition`,get children(){return x(WZ,{})}}),` `,`to help you memorize openings quickly and thoroughly.`]}})}})},iQ=e=>{let t=()=>X().state.activeRepertoireId,n=()=>Y().onboarding;ze(()=>{n().isOnboarding&&K(`onboarding.choose_import_source.shown`)}),PF(iQ);let[r,i]=o(!1);return x($,{header:`Choose an import source`,get loading(){return r()},get actions(){return[{onPress:()=>{Z(t=>
39{e.side&&gL(e.side)||(K(`onboarding.choose_import_source.pgn`),e.side?Q().pushView(aQ,{props:{side:e.side}}):Q().pushView(QZ,{}))})},text:`PGN file`,style:`primary`},{onPress:()=>{K(`onboarding.choose_import_source.lichess_study`),Z(r=>{e.side&&gL(e.side)||(r.userState.user?.lichessUsername&&!r.userState.user?.lichessScopes?.includes(`study:read`)?Q().pushView(zX,{props:{authState:{source:n().isOnboarding?`onboarding-import`:`import`,repertoireId:t(),scopes:we,importType:`study`}}}):r.userState.user?.lichessUsername?Q().pushView(DZ,{props:{repertoireId:t()}}):r.userState.authWithLichess({source:n().isOnboarding?`onboarding-import`:`import`,repertoireId:t(),importType:`study`,side:e.side}))})},text:`Lichess study`,style:`primary`},{onPress:()=>{K(`onboarding.choose_import_source.lichess`),Z(r=>{e.side&&gL(e.side)||(r.userState.user?.lichessUsername?(i(!0),r.repertoireState.importIntoRepertoire({siteGamesSource:`lichess`,repertoireId:t()})):r.userState.authWithLichess({source:n().isOnboarding?`onboarding-import`:`import`,importType:`games`,repertoireId:t(),side:e.side}))})},text:`Your games on Lichess`,style:`primary`},{onPress:()=>{K(`onboarding.choose_import_source.chesscom_games`),Z(n=>{e.side&&gL(e.side)||(n.userState.user?.chesscomUsername?(i(!0),n.repertoireState.importIntoRepertoire({siteGamesSource:`chesscom`,repertoireId:t()})):Q().pushView(LX,{props:{intention:`import`,repertoireId:t()}}))})},text:`Your games on Chess.com`,style:`primary`},...n().isOnboarding?[{onPress:()=>{K(`onboarding.choose_import_source.nevermind`),Z(e=>{vX(`right`),e.repertoireState.browsingState.actions.goToBuildOnboarding()})},text:`Never mind, skip this for now`,style:`primary`}]:[]]}})},aQ=e=>{let t=()=>Y().onboarding,n=()=>X().state.repertoireSide,r=()=>n()||t().side,i=()=>X().state.activeRepertoireId??Y().getDefaultRepertoire(t().side)?.id,[a,s]=o(null),[c,l]=o(``);PF(aQ),ze(()=>{K(`onboarding.import_pgn.shown`)});let u=_(()=>{let e=`Upload your ${Eo(r())} moves`,t=[];return c()&&t.push({text:`Submit`,onPress:()=>{d(),K(`onboarding.import_pgn.submit`)},style:`primary`}),a()&&(t=[]),{header:e,actions:t}}),d=()=>{s(`Importing`),Z(e=>{let t={pgn:c(),repertoireId:i()};e.repertoireState.importIntoRepertoire(t).catch(()=>{s(!1),K(`onboarding.import_pgn.error`)}),K(`import.from_pgns`)})};return x($,{bodyPadding:!0,get header(){return u().header},get actions(){return u().actions},get loading(){return a()},get children(){var t=VZ();return N(t,x(sQ,{onChange:l,get side(){return e.side}})),t}})},oQ=()=>{let e=()=>Y().onboarding,t=()=>X().state.activeRepertoireId??Y().getDefaultRepertoire(e().side)?.id;PF(oQ);let n=()=>Y().getRepertoireThreshold(t());ze(()=>{K(`onboarding.trim_repertoire.shown`)});let r=x(V,{class:`body-text`,children:`We can trim your openings to only the moves you're likely to see. This can be a good option if you're importing a lot of moves from other software.`}),[i,a]=o(!1),s=e=>{K(`onboarding.trim_repertoire.trimmed`,{threshold:e}),a(!0),Z(n=>{n.repertoireState.trimRepertoire(e,t()).then(()=>{vX(`right`),Q().clearViews(),Q().pushView(eQ)})})},c=()=>{let e=[],r=Y().getNumResponsesBelowThreshold(n(),t());return e.push({text:`Trim rare lines below your coverage goal`,subtext:`${r} moves will be trimmed`,onPress:()=>{s(n())},style:`primary`}),e.push({text:`No thanks, keep everything`,onPress:()=>{K(`onboarding.trim_repertoire.skip`),Z(e=>{vX(`right`),Q().clearViews(),Q().pushView(eQ)})},style:`primary`}),i()&&(e=[]),e};return x($,{bodyPadding:!0,header:`Trim moves past your goal?`,get actions(){return c()},get loading(){return i()},children:r})},sQ=e=>{let[t,n]=o(``),[r,i]=o(null),[a,s]=o(!1);PF(sQ),m(()=>r(),t=>{if(!t)return;let r=async r=>{let i=t.files?.[0];if(i){let t=await i.text();return n(null),e.onChange(t),s(!0),!0}r.preventDefault()};return t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)});var c=HZ(),l=c.firstChild,u=l.firstChild,d=u.firstChild,f=d.nextSibling;return u.nextSibling,N(u,()=>a()?`Uploaded`:`Upload`,f),I(()=>i,f),N(l,x(uR,{placeholder:`Paste your PGN here`,onInput:t=>{n(t.target.value),e.onChange(t.target.value),s(!1)},class:` mt-2 w-full rounded-sm border border-gray-51`,get value(){return t()??void 0}}),null),M(()=>F(L(`fas mr-2`,a()?`fa-check`:`fa-upload`)),(e,t)=>{P(d,e,t)}),c};ae([`click`]);var cQ=l(`<div class="data-[open]:h-auto h-0 padding-sidebar overflow-hidden transition-all data-[open]:pt-8">`),lQ=l(`<div>`),uQ=()=>{let e=[`YouTube`,`Reddit`,`A friend`,`Lichess`,`X / Twitter`,`Instagram`,`Google`,`App Store / Play Store`];e=wd(e),e.push(`Other`),ze(()=>{K(`onboarding.ask_about_user_source.shown`)});let t=()=>{hN.call([`users.setUserSource`,{extra:n().extra,source:n().source}]).then(()=>{}),K(`onboarding.ask_about_user_source.continue`,{user_source:n().source}),Q().replaceView($Z)},{data:n,setFields:r}=OF({initialValues:{extra:``,source:``}});return x($,{header:`How did you find us?`,bodyPadding:!1,actions:[{onPress:t,text:`Continue`,style:`primary`}
39,{onPress:t,text:`Skip this step for now`,style:`primary`}],get children(){return[x(oZ,{choices:e,get activeChoice(){return n().source},onSelect:e=>{kM({attribution_source:e}),r(`source`,e)},renderChoice:e=>{var t=lQ();return N(t,x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14))},children:e})),M(()=>F(z(B.row)),(e,n)=>{w(t,e,n)}),t}}),(()=>{var e=cQ();return N(e,x(lR,{name:`extra`,placeholder:`Anything else you want to add?`,setFields:r})),M(()=>n().source===`Other`,t=>{C(e,`data-open`,t)}),e})()]}})},dQ=l(`<span><span></span><span class="col-start-1 row-start-1">`),fQ=l(`<i>`),pQ=l(`<div class="col items-center gap-2"><!><!>`),mQ=l(`<button type=button><i>`),hQ=l(`<div class=col><!><div class="row min-h-[160px] items-center justify-center border-0 border-t border-b border-solid border-border bg-gray-27 px-4 pt-[33px] pb-5 lg:pt-[45px] lg:pb-8"><div class="col items-center text-center"><div data-testid=auto-fill-style-diamond style=transition-duration:200ms><div class="flex -rotate-45 items-center justify-center">`),gQ=l(`<div class=col><!><!>`),_Q=l(`<div class="row items-center justify-between gap-4 py-2.5 padding-sidebar border-0 border-b border-solid border-border"><div class="flex flex-row items-baseline grow shrink min-w-0"><!><!><!></div><div class="row shrink-0 items-center gap-1"><div class="row gap-1"></div><!>`),vQ=l(`<div class="relative h-[25px] w-4.5 rounded-sm bg-gray-30"><div class="absolute inset-0 rounded-sm bg-gray-92 transition-[transform,opacity] ease-in-out"style=transition-duration:200ms>`),yQ=l(`<span class="block truncate">Generating options...`),bQ=l(`<span class="block truncate">`),xQ=l(`<span class="font-semibold text-tertiary lg:text-secondary">`),SQ=l(`<span class="block truncate">Finishing up...`),CQ=6,wQ=4,TQ={effectiveness:0,soundness:0,learnability:0},EQ=e=>`autofill-last-style:${e??`anon`}`,DQ=e=>{if(e&&typeof e==`object`&&typeof e.effectiveness==`number`&&typeof e.soundness==`number`&&typeof e.learnability==`number`){let t=e,n=[t.effectiveness,t.soundness,t.learnability];if(n.every(e=>Number.isInteger(e)&&e>=0&&e<=wQ)&&n.reduce((e,t)=>e+t,0)===CQ)return t}},OQ=async e=>{try{let{value:t}=await tC.get({key:EQ(e)});if(t)return DQ(JSON.parse(t))??{...TQ}}catch{}return{...TQ}},kQ=async(e,t)=>{try{await tC.set({key:EQ(e),value:JSON.stringify(t)})}catch{}},AQ=[{key:`effectiveness`,label:`Effectiveness`,subtext:`More wins`,subtextDesktop:`More points = more wins`},{key:`soundness`,label:`Soundness`,subtext:`Less risk`,subtextDesktop:`More points = less risk`},{key:`learnability`,label:`Learnability`,subtext:`More intuitive`,subtextDesktop:`More points = more intuitive moves`}],jQ={"6/0/0":{name:`Ruthless`,description:`Maximum practical results above all else`,icon:`fa-crosshairs`},"5/1/0":{name:`Predatory`,description:`All-out pressure with a little restraint`,icon:`fa-crown`},"5/0/1":{name:`Swindler`,description:`Maximum pressure through memorable tricks`,icon:`fa-dice`},"3/3/0":{name:`Elite`,description:`Very strong, just hard to learn`,icon:`fa-crown`},"4/2/0":{name:`Demanding`,description:`High effort, high reward`,icon:`fa-mountain`},"3/2/1":{name:`Ambitious`,description:`A bit more work for a good payoff`,icon:`fa-swords`},"4/0/2":{name:`Dangerous`,description:`... for you and your opponent`,icon:`fa-skull-crossbones`},"3/1/2":{name:`Aggressive`,description:`Formidable but a bit risky`,icon:`fa-axe`},"4/1/1":{name:`Sharp`,description:`Maximum chaos`,icon:`fa-bolt-lightning`},"3/0/3":{name:`Tricky`,description:`Gambling on some easy wins`,icon:`fa-dice`},"2/3/1":{name:`Classical`,description:`Principled and correct`,icon:`fa-helmet-battle`},"2/4/0":{name:`Impenetrable`,description:`Maximum effort, minimum risk`,icon:`fa-block-brick`},"2/2/2":{name:`Balanced`,description:`Equally strong in all areas`,icon:`fa-scale-balanced`},"2/0/4":{name:`Cunning`,description:`Simple traps that might backfire`,icon:`fa-staff-snake`},"2/1/3":{name:`Opportunistic`,description:`Balanced with a few traps thrown in`,icon:`fa-fishing-rod`},"1/4/1":{name:`Unbreakable`,description:`Ultra solid if you put in the work`,icon:`fa-castle`},"1/3/2":{name:`Solid`,description:`Sensible and low risk`,icon:`fa-shield`},"1/5/0":{name:`Theoretical`,description:`Near-perfect chess, however hard it is to learn`,icon:`fa-castle`},"0/6/0":{name:`Perfect`,description:`Maximum engine soundness above all else`,icon:`fa-shield-cross`},"0/5/1":{name:`Fortified`,description:`Engine-first with a hint of consistency`,icon:`fa-dungeon`},"0/4/2":{name:`Risk-free`,description:`Guaranteed equality`,icon:`fa-shield-cross`}
39,"0/3/3":{name:`Careful`,description:`Simple and safe`,icon:`fa-dungeon`},"1/2/3":{name:`Respectable`,description:`Dependable and low-effort`,icon:`fa-shield-halved`},"0/2/4":{name:`Simple`,description:`Reliable and easy to learn`,icon:`fa-mace`},"1/1/4":{name:`Lightweight`,description:`A decent game with minimal effort`,icon:`fa-feather`},"1/0/5":{name:`Trapper`,description:`Easy pressure without concern for perfection`,icon:`fa-fishing-rod`},"0/1/5":{name:`Natural`,description:`Maximum intuition with a little safety`,icon:`fa-feather`},"0/0/6":{name:`Effortless`,description:`Maximum learnability above all else`,icon:`fa-wand-magic-sparkles`}},MQ=e=>`${e.effectiveness}/${e.soundness}/${e.learnability}`,NQ=200,PQ=`70%`,FQ=`30%`,IQ=e=>{let[t,n]=o(e.item),[r,i]=o(null),a,s,c;m(()=>e.item,r=>{let o=ie(t);if(r.key===o.key)return;let l=(r.order??0)<(o.order??0),u=e.rollDistance??PQ,d=l?u:`-${u}`,f=l?`-${u}`:u;n(r),i(o);let p=e.rollDurationMs??NQ,m={duration:p,easing:`ease-in-out`,fill:`forwards`};s?.animate(e.fadeOnly?[{opacity:1},{opacity:0}]:[{transform:`translateY(0)`,opacity:1},{transform:`translateY(${d})`,opacity:0}],m),a?.animate(e.fadeOnly?[{opacity:0},{opacity:1}]:[{transform:`translateY(${f})`,opacity:0},{transform:`translateY(0)`,opacity:1}],e.sequential?{...m,delay:p,fill:`both`}:m),clearTimeout(c),c=setTimeout(()=>{i(null)},p)}),O(()=>clearTimeout(c));var l=dQ(),u=l.firstChild,d=u.nextSibling;return I(()=>e=>{s=e},u),N(u,()=>r()?.render()),I(()=>e=>{a=e},d),N(d,()=>t().render()),M(()=>({e:F(L(`relative grid items-center tabular-nums`,e.alignStart?`text-left`:`justify-items-center text-center`,e.class)),t:F(L(`col-start-1 row-start-1`,r()===null&&`invisible`))}),({e,t},n)=>{P(l,e,n?.e),P(u,t,n?.t)}),l},LQ=[{value:`speed`,label:`Speed`},{value:`quality`,label:`Quality`}],RQ=e=>`autofill-last-optimize-for:${e??`anon`}`,zQ=async e=>{try{let{value:t}=await tC.get({key:RQ(e)});if(t===`speed`||t===`quality`)return t}catch{}return`speed`},BQ=async(e,t)=>{try{await tC.set({key:RQ(e),value:t})}catch{}},VQ=e=>x($,{header:`Optimize for`,actions:[],get children(){return x(oZ,{choices:LQ,get activeChoice(){return LQ.find(t=>t.value===e.value)},onSelect:t=>{Z(n=>{e.onSelect(t.value),Q().backOne()})},renderChoice:e=>x(V,{class:`text-primary text-sm font-semibold`,get children(){return e.label}})})}}),HQ=e=>{let[t,n]=o(!1),[r,i]=o({...TQ}),[a,c]=o(`speed`);ze(()=>{let e=!0;return zQ(J().user?.id).then(t=>{e&&c(t)}),()=>{e=!1}});let l=_(()=>J().flagEnabled(`autofill_advanced_controls`)),u=Array.from({length:wQ},(e,t)=>t);ze(()=>{let e=!0;return OQ(J().user?.id).then(t=>{e&&i(t)}),()=>{e=!1}});let d=()=>{let e=r();return e.effectiveness+e.soundness+e.learnability},f=()=>CQ-d(),p=_(()=>f()===0?jQ[MQ(r())]:void 0),m=_(()=>{let e=p();if(e)return{key:`profile-${e.name}`,order:0,render:()=>(()=>{var t=fQ();return M(()=>F(L(`fa text-primary text-2xl`,e.icon)),(e,n)=>{P(t,e,n)}),t})()};let t=f();return{key:`count-${t}`,order:t,render:()=>t}}),h=_(()=>{let e=p();return e?{key:`profile-${e.name}`,render:()=>(()=>{var t=pQ(),n=t.firstChild,r=n.nextSibling;return N(t,x(V,{class:`text-primary text-lg font-semibold`,get children(){return e.name}}),n),N(t,x(V,{class:`text-secondary text-sm`,get children(){return e.description}}),r),t})()}:{key:`empty`,render:()=>(()=>{var e=pQ(),t=e.firstChild,n=t.nextSibling;return N(e,x(V,{class:`text-primary text-lg font-semibold`,children:`Points remaining`}),t),N(e,x(V,{class:`text-secondary text-sm`,children:`Assign all points to pick your style`}),n),e})()}}),g=(e,t)=>{let n;i(r=>{let i=r.effectiveness+r.soundness+r.learnability;if(t>0&&i>=CQ)return r;let a=Math.min(wQ,Math.max(0,r[e]+t));return n={...r,[e]:a},n}),n&&n.effectiveness+n.soundness+n.learnability===CQ&&kQ(J().user?.id,n)},v=async t=>{n(!0);let r=l()&&a()===`quality`,i=pV(),o=Y().expectedNumMovesFromEpd[e.repertoireId]?.[e.startEpd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??1,s=e.startEpd?Y().numMovesFromEpd[e.repertoireId]?.[e.startEpd]??0:Y().numMyMoves[e.repertoireId]??0;Y().startAutoFillBuild({buildId:i,repertoireId:e.repertoireId,expectedMoves:Math.max(1,o-s),stylePoints:t}),K(`side_overview.auto_fill_started`,{style:p()?.name,points:MQ(t),search_budget:r?`high`:`low`,source:e.source??`repertoire`}),Z(t=>{Q().pushView(WQ,{props:{buildId:i,repertoireId:e.repertoireId,source:e.source,startEpd:e.startEpd,startLine:e.startLine}})});try{await Y().autoFillRepertoire(e.repertoireId,t,i,r,e.startEpd,e.startLine)}catch(e){Z(t=>{let n=t.repertoireState.autoFillBuilds[i];n&&(n.error=String(e))}),K(`repertoire.auto_fill_failed`,{error:String(e),via:`start`}),mn.error(`Autofill failed to complete`)}finally{n(!1)}},y=(e,n)=>{let i=()=>t()||(n<0?r()[e]<=0:r()[e]>=wQ||f()<=0);var a=mQ(),o=a.firstChild;return a._$$click=()=>g(e,n),C(a,`data-testid`,`auto-fill-${e}-${n>
390?`plus`:`minus`}`),M(()=>({e:F(L(`flex h-[25px] w-[25px] items-center justify-center rounded-sm bg-sidebar_button_primary text-primary transition-colors`,i()?`opacity-30`:`hover-fine:bg-sidebar_button_primary_hover`)),t:i(),a:F(L(`fa fa-fw text-xs`,n>0?`fa-plus`:`fa-minus`))}),({e,t,a:n},r)=>{P(a,e,r?.e),t!==r?.t&&C(a,`disabled`,t),P(o,n,r?.a)}),a},S=_(()=>({text:`Optimize for`,right:LQ.find(e=>e.value===a())?.label,style:`secondary`,disabled:t(),onPress:()=>{Z(e=>{Q().pushView(VQ,{props:{value:a(),onSelect:e=>{c(e),BQ(J().user?.id,e)}}})})},testId:`auto-fill-optimize-for`})),w=()=>[{text:`Autofill moves in this style`,style:`primary`,disabled:t()||f()>0,onPress:()=>{v(r())},testId:`auto-fill-start`}];return x($,{get header(){return AL[e.source??`repertoire`]},get actions(){return w()},bodyPadding:!1,actionsPadding:!1,get loadingOverlay(){return t()},get children(){return[(()=>{var e=hQ(),t=e.firstChild,n=t.nextSibling,r=n.firstChild,i=r.firstChild,a=i.firstChild;return N(e,x(V,{class:`body-text padding-sidebar`,children:`We'll add optimal moves based on your preferences. You can remove them at any time.`}),t),N(e,x(R,{between:[`body-text`,`table`]}),n),N(a,x(IQ,{class:`h-8 w-8 text-primary text-2xl font-bold leading-none`,get item(){return m()}})),N(r,x(IQ,{fadeOnly:!0,get item(){return h()}}),null),M(()=>F(L(`relative mb-[26px] flex h-16 w-16 items-center justify-center overflow-hidden rotate-45 rounded-sm border-2 border-solid transition-colors ease-in-out`,p()?`border-primary bg-gray-34`:`border-gray-37 bg-gray-30`)),(e,t)=>{P(i,e,t)}),e})(),(()=>{var e=gQ(),t=e.firstChild,n=t.nextSibling;return N(e,x(b,{each:AQ,children:e=>(()=>{var t=_Q(),n=t.firstChild,i=n.firstChild,a=i.nextSibling,o=a.nextSibling,c=n.nextSibling,l=c.firstChild,d=l.nextSibling;return N(n,x(V,{class:`text-primary font-medium w-28 lg:w-30 shrink-0 truncate`,get children(){return e.label}}),i),N(n,x(j,{get when(){return!J().user?.isAdmin},get children(){return x(V,{class:`text-tertiary text-sm lg:hidden truncate`,get children(){return e.subtext}})}}),a),N(n,x(V,{class:`text-tertiary text-sm hidden lg:inline truncate`,get children(){return e.subtextDesktop}}),o),N(c,()=>y(e.key,-1),l),N(l,x(b,{each:u,children:t=>(()=>{var n=vQ(),i=n.firstChild;return M(()=>({e:t<r()[e.key]?`translateY(0)`:`translateY(-${FQ})`,t:+(t<r()[e.key])}),({e,t},n)=>{e!==n?.e&&s(i,`transform`,e),t!==n?.t&&s(i,`opacity`,t)}),n})()})),N(c,()=>y(e.key,1),d),t})()}),t),N(e,x(j,{get when(){return l()},get children(){return x(V6,{get action(){return S()}})}}),n),e})(),x(R,{between:[`table`,`actions`]})]}})},UQ=(e,t)=>[{label:`Effectiveness`,value:(e?.effectiveness??0)/100,animateKey:`${t}:effectiveness`},{label:`Soundness`,value:(e?.soundness??0)/100,animateKey:`${t}:soundness`},{label:`Learnability`,value:(e?.learnability??0)/100,animateKey:`${t}:learnability`}],WQ=e=>{let t=e.buildId,n=e.repertoireId,r=e.source===`gap`?e.startEpd:void 0,i=e.source===`gap`?e.startLine:void 0,a=!!r&&!!i,s=()=>Y().autoFillBuilds[t],[c,l]=o(!1);ze(()=>{let e=Q().getActiveChessboard(),t=e.get(e=>e.hideLastMoveHighlight),n=e.get(e=>e.hideFooter);return e.set(e=>{e.hideLastMoveHighlight=!0,e.hideFooter=!0}),()=>{e.set(e=>{e.hideLastMoveHighlight=t,e.hideFooter=n})}});let u=_(()=>UQ(s()?.outcome?.characteristics??s()?.characteristics,t)),[d,f]=o({key:`generating`,order:0,render:()=>yQ()}),p=0,m,g=e=>{let t=AF(e),n=t?.name,r=!n||n===m;m=n;let i=r?t?.name:t?.fullName??t?.name;p+=1,f({key:`line-${p}`,order:p,render:()=>(()=>{var e=bQ();return N(e,i?[r?`Checking another line in the `:`Considering the `,(()=>{var e=xQ();return N(e,i),e})()]:`Considering another variation`),e})()})},v=!1,y=async e=>{if(v)return;v=!0,await Y().awaitAutoFillHydration(t);let{RepertoireOverview:r}=await ve(async()=>{let{RepertoireOverview:e}=await import(`./RepertoireOverview-DnBUndAh.js`);return{RepertoireOverview:e}},[],import.meta.url);Z(t=>{e&&vX(e),X().actions.setActiveRepertoire(n),Q().backTo(r),Q().getActiveChessboard().resetPosition()})},b=async(e,t)=>{if(v)return;v=!0;let{RepertoireBuilder:r}=await ve(async()=>{let{RepertoireBuilder:e}=await import(`./RepertoireBuilder-BZ5NOO6F.js`);return{RepertoireBuilder:e}},[],import.meta.url);Z(i=>{X().actions.quick(t=>{t.justAutofilledEpd=e}),X().actions.setActiveRepertoire(n),vX(`right`),Q().backTo(r),Q().getActiveChessboard().playLine(t,{animated:!1,reset:!0})})};ZI(()=>{c()&&y()},`hide`);let S=[],C=null,w=0,T=()=>{let e=-1;if(w>0&&C&&(e=S.findIndex(e=>e.family===C)),e===-1){let t=S.filter(e=>e.family!==C),n=t.length>0?t[Math.floor(Math.random()*t.length)]:S[Math.floor(Math.random()*S.length)];e=S.indexOf(n),C=n.family,w=C?3:1}return--w,S.splice(e,1)[0].sans},E=0,D=!1,ee=0,te=!1,k=!1,ne=null,re=new Set,ie=(e,t)=>{let n=window.setTimeout(()=>{re.delete(n),e()},t);re.add(n)};O(()=>
39{k=!0,ee+=1,S.length=0,D=!1,re.forEach(e=>window.clearTimeout(e)),re.clear(),ne?.(),ne=null});let ae=()=>{ee+=1,S.length=0,E=s()?.candidateLines.length??E,D=!1,i?Q().getActiveChessboard().playLine(i,{animated:!1,reset:!0}):Q().getActiveChessboard().resetPosition()},oe=async()=>{if(D||k)return;let e=ee;for(D=!0;!k&&e===ee&&!s()?.isComplete&&S.length>0;){let e=T();g(e),await new Promise(t=>{let n=!1,r=()=>{n||(n=!0,ne=null,t())};ne=r;let a=()=>{n||k||(ne=r,ie(r,450))},o=Q().getActiveChessboard();i&&o.playLine(i,{animated:!1,reset:!0}),o.playLine(e,{animated:!0,reset:!i,speed:dM.Ludicrous,forceAnimation:!0,onFinished:a});let s=i?Math.max(1,e.length-i.length):e.length;ie(a,Math.max(1200,s*350))})}e===ee&&!k&&(D=!1)},se=async()=>{for(;D&&!k;)await MV(100);if(!k&&(ae(),p+=1,f({key:`finishing`,order:p,render:()=>SQ()}),await MV(800),!k&&(await Y().awaitAutoFillHydration(t),!k))){if(r&&i){await b(r,i);return}vX(`right`),l(!0)}};return h(()=>{if(s()?.isComplete){te||(te=!0,se());return}let e=s()?.candidateLines??[];for(;E<e.length;){let t=e[E].sans;S.push({sans:t,family:AF(t)?.name??null}),E+=1}S.length>100&&S.splice(0,S.length-100),oe()}),x($,{get header(){return c()?`Autofill complete`:`Autofill in progress`},get actions(){return c()?[{text:`Continue`,style:`primary`,onPress:()=>void y(`right`)}]:[]},bodyPadding:!0,get children(){return x(j,{get when(){return!s()?.error},get fallback(){return x(V,{class:`body-text`,children:`Autofill failed. Please try again.`})},get children(){return[x(j,{get when(){return!c()},get children(){return[x(IQ,{alignStart:!0,sequential:!0,rollDistance:`30%`,rollDurationMs:150,class:`grid-cols-[minmax(0,1fr)] body-text`,get item(){return d()}}),x(R,{height:24})]}}),x(j,{get when(){return A(()=>!!c())()?s()?.outcome?.summary:c()},children:e=>[x(V,{class:`body-text whitespace-pre-line`,get children(){return e()}}),x(R,{height:28})]}),x(j,{when:!a,get children(){return[x(V,{class:`text-primary text-sm font-semibold`,children:`Stats`}),x(R,{height:20}),x(pJ,{get items(){return u()},showTotal:!0})]}})]}})}})};LF(WQ,`build`),ae([`click`]);var GQ;(function(e){function t(e,t,n){let r=new Set,i=new Set,a=0,o=t=>{let s=[...e[t]??[]],c=Ad(s,e=>e.mine);if(c&&Kl(s,e=>{i.add(e.epd),r.add(e.id)}),!H(s)&&c){let e=n?.positionResponses[t]??[];!H(e)&&Ad(e,e=>!e.isDisabled)&&a++}mu(s,e=>{i.has(e.epdAfter)||o(e.epdAfter)})};return o(t),{totalMoves:r.size,existingMoves:a,newMoves:r.size-a}}e.countMovesFrom=t;function n(e){return e.characteristics?mJ.getSum(e.characteristics)*(e.coverage??0):0}e.getScore=n})(GQ||={});var KQ=l(`<p class=body-text>This will add the moves from <b></b> to your <b></b> repertoire. You can remove them again at any time.`),qQ=l(`<p class="body-text padding-sidebar">`),JQ=e=>{let t=()=>X().derived.activeRepertoire(),n=_(()=>GQ.countMovesFrom(e.courseDetails.responses,fp,void 0)),r=_(()=>GQ.countMovesFrom(e.courseDetails.responses,e.fromEpd,void 0)),i=()=>{let t=[...Id(Q().getActiveChessboard().get(e=>e.positionHistory),t=>t.epd!==e.fromEpd).map(e=>e.epd),e.fromEpd],n=Y().getLastEcoCode(t);return n?kF.getAppropriateEcoName(n)[0]:null},a=()=>r().totalMoves===n().totalMoves,o=n=>{GQ.countMovesFrom(e.courseDetails.responses,n,t()).existingMoves===0?X().actions.importCourse({course:e.course,courseDetails:e.courseDetails,fromEpd:n,importBehavior:`add`}):Q().pushView(YQ,{props:{course:e.course,courseDetails:e.courseDetails,fromEpd:n}})},s=()=>{let t=[];return a()?(t.push({text:`Yes, add these moves`,style:`primary`,onPress:()=>{o(e.fromEpd)}}),t.push({text:`No, I've changed my mind`,style:`primary`,onPress:()=>{Q().backOne()}})):(t.push({text:`The ${i()}`,right:`${_L(r().totalMoves,`move`)}`,style:`primary`,onPress:()=>{o(e.fromEpd)}}),t.push({text:`The entire pre-made repertoire`,right:`${_L(n().totalMoves,`move`)}`,style:`primary`,onPress:()=>{o(fp)}}),t.push({text:`Nothing, I've changed my mind`,style:`secondary`,onPress:()=>{Q().backOne()}})),t};return x($,{get header(){return a()?`Save these moves to your repertoire?`:`What do you want to add?`},get actions(){return s()},bodyPadding:!0,get children(){return x(j,{get when(){return a()},get children(){var n=KQ(),r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;return N(r,()=>e.course.name),N(i,()=>t().name),n}})}})},YQ=e=>{let t=()=>X().derived.activeRepertoire(),n=_(()=>GQ.countMovesFrom(e.courseDetails.responses,e.fromEpd,t())),r=_(()=>n().existingMoves===0?[]:n().newMoves===0?[`add`,`replace`]:[`skip`,`replace`,`add`]),i=t=>{K(`courses.importCourse.clicked`,{behavior:t,courseId:e.course.id,courseName:e.course.name,newRepertoire:!1,freshUser:P6()}),X().actions.importCourse({course:e.course,courseDetails:e.courseDetails,fromEpd:e.fromEpd,importBehavior:t})};return x($,{get header(){return n().newMoves===0?`Replace your existing moves?`:`How do you want to handle conflicts?`},actions:[],get children(){return x(v,{get children(){return x(a,{get when(){return r().length>1},get children(){return[(()=>{var e=qQ();return N(e,x(j,{get when(){return n().newMoves===0},get fallback(){return`You have some moves already, for positions that this course covers. How do you want to add these course moves?`},children:`You already have saved moves in some of the positions covered by this pre-made repertoire.`})),e})(),x(R,{between:[`body-text`,`actions`]}),x(H6,{actions:[{onPress:()=>{i(`skip`)},text:`Skip moves I've already covered`,style:`secondary`},{onPress:()=>{i(`replace`)},text:`Replace my existing moves`,style:`secondary`}]})]}})}})}})},XQ=l(`<div class="row items-center space-x-2 text-secondary text-xs group-hover:text-primary transition-colors"><i class="fa-solid fa-arrow-right ">`),ZQ=l(`<div class="row w-full justify-center pt-12">`),QQ=e=>{let t=()=>Q().getActiveChessboard().getMoveLog(),n=()=>X().derived.activeRepertoire(),r=()=>Y().repertoireGrades[n()?.id],i=N6(),a={onPress:()=>{K(`${i()}.added_line_state.practice_line`),Z(e=>{e.repertoireState.reviewState.actions.reviewLine(t(),n())})},text:`Practice these moves`,style:`secondary`},o=_(()=>{let t=[];
39return X().derived.shouldPromptToGoDeeper()&&t.push({text:`Increase your coverage goal`,style:`primary`,right:XQ(),onPress:()=>{Z(e=>{Q().pushView(WL,{props:{source:`check_in`}})})}}),e.addedFromCoursePair?.details?(GQ.countMovesFrom(e.addedFromCoursePair.details.responses,`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,n()).totalMoves,t.push({onPress:()=>{K(`${i()}.added_line_state.practice_line`),Z(e=>{X().actions.setActiveRepertoire(n().id),Q().pushView(yY,{props:{repertoireId:n().id}})})},text:`Practice moves`,style:`secondary`}),t=t.concat(K6())):(t=t.concat(K6()),t.push(a)),t});return m(()=>!e.loading()&&e.justCompleted(),e=>{e&&oB()}),x(j,{get when(){return!e.loading()},get fallback(){var e=ZQ();return N(e,x(Ni,{get color(){return B.primaries[80]}})),e},get children(){return x($,{header:`Moves saved!`,bodyPadding:!0,get actions(){return ru(o(),e=>!Kt(e))},get children(){return[x(JL,{get repertoireId(){return n().id},type:`completion`,hideIncreaseCoverageGoal:!0}),x(j,{get when(){return r()?.characteristics},get children(){return[x(R,{height:36}),x(SJ,{get characteristics(){return r().characteristics},get side(){return r().side},get repertoireId(){return n().id}})]}})]}})}})},$Q=e=>(e!==null&&(typeof e==`object`||typeof e==`function`)&&He(e),e),e$=class{value;version=0;readKernelVersion;writeKernelVersion;readVersion;writeVersion;constructor(e){this.value=$Q(e);let t=xe(0);this.readKernelVersion=t,this.writeKernelVersion=t;let[n,r]=o(0,{ownedWrite:!0});this.readVersion=n,this.writeVersion=r}read(e){return Oe()?(this.readKernelVersion(),e(this.value)):T()?(this.readVersion(),ie(()=>e(this.value))):e(this.value)}peek(e){return T()?ie(()=>e(this.value)):e(this.value)}trackedValue(){return this.track(),$Q(this.value)}track(){if(Oe())return this.readKernelVersion();if(T())return this.readVersion()}set(e){this.value=$Q(e),this.touch()}mutate(e){e(this.value),$Q(this.value),this.touch()}touch(){let e=this.version+1;this.version=e,this.writeKernelVersion(e),this.writeVersion(e)}},t$=(e,t)=>new Promise(n=>{let r=Date.now(),i=()=>{let a=!1;try{a=e()}catch{a=!0}if(a||Date.now()-r>=t){n();return}setTimeout(i,50)};setTimeout(i,0)}),n$=e=>{let[,t]=BX.fromString(e??`1200-1400`);return t<=1200?3:5},r$=(e,t)=>t===`black`?Math.floor(e/2):Math.ceil(e/2),i$=e=>`${e.epd}-${e.repertoireId}`,a$=e=>typeof e.epd==`string`&&typeof e.repertoireId==`string`&&e.moves.every(e=>typeof e==`string`),o$=()=>({pendingPositionReports:{},hasAnyPendingResponses:!1,transposedState:{},showPlansState:{coverageReached:!1,autoShown:!1,coverageGoalSuppressMinPly:null},addedLineState:{loading:!1,justCompleted:!1},pendingResponses:{},currentSide:`white`,hasPendingLineToAdd:!1,justAutofilledEpd:null}),s$=(e,t)=>{let r=E2()[1],i=new e$([]),a=WI({...o$(),get tableResponses(){return i.trackedValue()},activeCourse:{overview:void 0,details:void 0},repertoireSide:`white`,hasPendingLineToAdd:!1,chessboardShown:!1,repertoireProgressState:{}}),s=a.state,c={chessboard:r},l=(t,n)=>e(e=>a.set(n=>t([n,e.repertoireState,e]))),u=(e,t)=>a.set(e),d=(e,n)=>t(t=>e([a.current(),t.repertoireState,t])),f=(e,t)=>d(([n,r])=>{let i=n.activeRepertoireId?r.positionReports[n.activeRepertoireId]?.[e]:void 0;return i?i.suggestedMoves.find(e=>e.sanPlus===t)?.needed?`needed`:`notNeeded`:`unknown`}),p={activeRepertoire:()=>d(([e,t])=>{let n=e.activeRepertoireId;if(n)return t.repertoires?.[n]}),coverageGoal:()=>d(([e,t])=>{let n=e.activeRepertoireId?t.positionReports[e.activeRepertoireId]?.[c.chessboard.getCurrentEpd()]:void 0;return n?tu(n.suggestedMoves,e=>!e.needed)?`reached`:`notReached`:`unknown`}),lastMoveNeededStatus:()=>{let e=c.chessboard.getMoveLog(),t=c.chessboard.get(e=>e.positionHistory);return H(e)||t.length!==e.length+1?`unknown`:f(t[t.length-2].epd,e[e.length-1])},lineIncidences:()=>d(([e,t])=>{if(!e.repertoireSide)return[];let n=1;return mu(Yd(c.chessboard.get(e=>e.positionHistory),c.chessboard.get(e=>e.moveLog)),([r,i],a)=>{if(!r||!e.activeRepertoireId)return n;let o=r.epd,s=t.positionReports[e.activeRepertoireId]?.[o];if(s){let e=su(s.suggestedMoves,e=>e.sanPlus===i);if(e)return n=e.incidence??0,n}return n})}),incidenceOfCurrentLine:()=>Bl(p.lineIncidences()),biggestMiss:()=>d(([e,t])=>e.activeRepertoireId?t.repertoireGrades[e.activeRepertoireId]?.biggestMiss??null:null),nearestMiss:()=>d(([e,t])=>{let n=p.activeRepertoire();return n?t.getNearestMiss(n,c.chessboard.get(e=>e.positionHistory).map(e=>e.epd)):null}),missInThisLine:()=>null,lastEcoCode:()=>d(([e,t])=>t.getLastEcoCode(c.chessboard.get(e=>e.positionHistory).map(e=>e.epd))),shouldPromptToGoDeeper:e=>d(([t,n])=>{if(!n.repertoires)return!1;if(e===null)return tu(Object.values(n.repertoires),e=>p.shouldPromptToGoDeeper(e.id));let r=e??t.activeRepertoireId;if(!r)return!1;let i=n.homeProgressStates[r];if(!i?.completed||i.numLocked>0)return!1;let a=J().user,o=BX.fromSystemAndRange(a?.ratingSystem??`Lichess`,a?.ratingRange?BX.fromString(a.ratingRange):h1);return n.getRepertoireThreshold(r)>w1(o)+2**-52}),openingNameForMove:e=>d(([t,n])=>{let r=p.lastEcoCode();if(!r&&c.chessboard.getCurrentEpd()!==`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`)return null;let[i,a]=r?kF.getAppropriateEcoName(r):[],o=n.ecoCodeLookup[e],s=!1;if(o){let[e,t]=kF.getAppropriateEcoName(o);if(e!==i)return s=!0,e;let n=Bl(t);if(e===i&&n!==Bl(a))return s=!0,Bl(t);if(s)return Bl(t)}return null})},m={quick:e=>u(e),reset:()=>{l(([e])=>{Ru(e,o$())})},setActiveRepertoire:e=>l(([t])=>{t.activeRepertoireId=e,t.repertoireSide=p.activeRepertoire()?.side,m.onPositionUpdate(),c.chessboard.set(e=>{e.flipped=t.repertoireSide===`black`})}),requestCourseImport:e=>l(([t,n])=>{Q().pushView(JQ,{props:{course:e.course,courseDetails:e.courseDetails,fromEpd:e.fromEpd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`}})}),importCourse:e=>l(([t,n])=>{let r=q().userState.isSubscribed(),i=GQ.countMovesFrom(e.courseDetails.responses,e.fromEpd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,p.activeRepertoire()).totalMoves;if(!r&&n.pastFreeTier(t.repertoireSide,i)){K(`courses.saveToRepertoire.hitPaywall`,{courseId:e.course.id,courseName:e.course.name}),Q().replaceView(mL,{props:{pastLimit:!0}});return}vX(`right`),Q().withoutAnimations(()=>{Q().backTo(PY)});let[a,s]=o(!0);Q().pushView(QQ,{props:{loading:a,justCompleted:()=>!1,addedFromCoursePair:{overview:e.course,details:e.courseDetails}}}),hN.call([`openings.courses.importIntoRepertoire`,{fromEpd:e.fromEpd??`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`,repertoireId:t.activeRepertoireId,id:e.course.id,positionHistory:c.chessboard.get(e=>e.positionHistory).map(e=>e.epd),alternateBehavior:e.importBehavior,coverageTarget:null}]).then(t=>{K(`courses.importCourse.success`,{courseId:e.course.id,courseName:e.course.name}),l(([n,r])=>{r.courses[e.course.id]=e.course,r.repertoireFetched(t),m.onPositionUpdate(),r.onRepertoireChange(),m.updateRepertoireProgress(),n.activeCourse={overview:void 0,details:void 0},s(!1),r.onboarding.isOnboarding||(Q().sidebarStack.length>0&&vX(`right`),Q().clearViews())})}).catch(t=>{K(`courses.importCourse.failed`,{courseId:e.course.id,courseName:e.course.name,error:String(t)}),s(!1),mn.error(`Failed to import course. Please try again.`)})}),goToBuildOnboarding:()=>l(([e,t])=>{JN(Q().sidebarStack),Q().clearViews(),t.onboarding.side||(t.onboarding.side=`white`);let n=t.onboarding.side;if(!su(t.repertoireGrades,e=>e.side===n)?.biggestMiss)return;let r=c.chessboard.getMoveLog(),i=t.getDefaultRepertoire(n);i&&(Q().clearViews(),Q().pushView(PY),m.setActiveRepertoire(i.id),Q().getActiveChessboard().playLine(r),K(`onboarding.build.shown`,{side:n,own_move_target:n$(J().user?.ratingRange)}))}),updateRepertoireProgress:()=>l(([e,t])=>{Nu(t.repertoires,n=>{let r=c$();r.expectedDepth=TH.getAllEnabledRepertoireMoves(n).reduce((e,t)=>
39t.mine?e+(t.incidence??0):e,0);let i=t.repertoireGrades[n.id]?.biggestMiss,a=t.numMovesNeededFromEpd[n.id]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0,o=t.expectedNumMovesFromEpd[n.id]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??1,s=Kt(i);r.completed=s;let c=s?1:Math.min(.99,yM(a/o));r.percentComplete=a>0?Math.max(.01,c):c,e.repertoireProgressState[n.id]=r})}),checkShowTargetDepthReached:()=>l(([e,t])=>{let n=c.chessboard.getPly(),r=t.onboarding.isOnboarding&&r$(n,e.repertoireSide)>=n$(J().user?.ratingRange),i=e.showPlansState.coverageGoalSuppressMinPly,a=!t.onboarding.isOnboarding&&i!==null&&n>=i,o=p.coverageGoal(),s=c.chessboard.get(e=>e.positionHistory).map(t=>e.pendingResponses?.[t.epd]).find(e=>!Kt(e)),l=!t.onboarding.isOnboarding&&!Kt(s)&&!s.mine&&f(s.epd,s.sanPlus)===`notNeeded`,u=!1;return(o===`reached`||r)&&e.repertoireSide!==e.currentSide&&e.hasPendingLineToAdd&&!a&&!l&&Q().mode===`build`&&Q().currentView()?.component===PY&&(t.onboarding.isOnboarding&&K(`${Q().mode}.coverage_reached.onboarding`),Q().pushView(wW,{props:{auto:!0},showPlansOverlay:!t.onboarding.isOnboarding}),t.onboarding.isOnboarding||(e.showPlansState.coverageGoalSuppressMinPly=i===null?n:Math.min(i,n)),e.showPlansState.coverageReached=!0,e.showPlansState.autoShown=!0,u=!0),o===`notReached`&&(e.showPlansState.coverageGoalSuppressMinPly=null),u}),maybeAutoplayOnboardingMove:()=>l(([e,t])=>{if(!t.onboarding.isOnboarding||!t.onboarding.autoplay||e.repertoireSide===e.currentSide)return;m.updateTableResponses();let n=e.tableResponses[0]?.suggestedMove?.sanPlus;n&&c.chessboard.makeMove(n,{animate:!0,pauseBefore:!0,sound:`move`})}),updateTableResponses:()=>{let e=a.current().activeRepertoireId;if(!e){i.set([]);return}let t=c.chessboard.getTurn(),n=mk({repertoireId:e,currentEpd:c.chessboard.getCurrentEpd(),currentSide:t,currentLine:c.chessboard.getMoveLog(),onStockfishUpdate:()=>{m.updateTableResponses()}});l(([e])=>{i.set(n)}),m.fetchNeededPositionReports()},finishSidebarOnboarding:()=>l(([e,t])=>{vX(`right`),m.reset()}),fetchNeededPositionReports:()=>{l(([t,n])=>{if(Q().currentView()?.component===WQ)return;let r=p.activeRepertoire();n.onboarding.isOnboarding&&(r=n.getDefaultRepertoire(`white`));let i=[];if(Kl(n.repertoires,e=>{i.push({epd:fp,moves:[],repertoireId:e.id})}),!Kt(r)){let e=c.chessboard.get(e=>e.moveLog);c.chessboard.get(e=>e.positionHistory).forEach((t,n)=>{let a=t.epd;a&&i.push({epd:a,repertoireId:r.id,moves:e.slice(0,n)})});let a=t.tableResponses;a&&[...Pd(a,5),...ru(a,e=>e.suggestedMove?.needed)].forEach(t=>{let a=t.suggestedMove;if(!a)return;let o=a.epdAfter,s=[...e,a.sanPlus];i.push({epd:o,repertoireId:r.id,moves:s});let c=n.positionReports[r.id]?.[a.epdAfter];c&&Kl(Pd(jd(c.suggestedMoves,e=>-(uC.getTotalGames(e.masterResults)??0)),4),e=>{i.push({epd:e.epdAfter,repertoireId:r.id,moves:[...s,e.sanPlus]})})})}Kt(r)&&Kl(n.repertoires,e=>{if(e.side!==`white`)return;let t=e?.positionResponses[fp];t?.length===1&&i.push({epd:t[0].epdAfter,moves:[t[0].sanPlus],repertoireId:n.getDefaultRepertoire(`white`).id})}),Pd([k6().activeMove,...k6().queue],3).forEach(e=>{e&&i.push({epd:e.move.epd,moves:[e.move.sanPlus],repertoireId:e.repertoireId})}),i=ru(i,e=>!n.positionReports[e.repertoireId]?.[e.epd]),i=ru(i,a$),i=Kd(i,e=>i$(e));let a=c.chessboard.getCurrentEpd(),o=e=>e.epd===a&&e.repertoireId===r?.id;if(i=ru(i,e=>{let n=t.pendingPositionReports[i$(e)];return!n||n===`prefetch`&&o(e)}),H(i))return;i.forEach(e=>{t.pendingPositionReports[i$(e)]=o(e)?`urgent`:`prefetch`});let[s,l]=ud(i,o);[...H(s)?[]:[s],...H(l)?[]:[l]].forEach(t=>{hN.call([`openings.fetchPositionReportAndAnnotations`,{reports:t,keps:[]}]).then(({reports:t})=>{t.forEach(e=>{e.suggestedMoves.forEach(t=>{t.stockfish&&=new OE([t.stockfish,lp(e.epd)])})}),e(e=>{e.repertoireState.mutatePositionReports(e=>{t.forEach(t=>{let n=t.repertoireId;e[n]??={},e[n][t.epd]=t})})}),u(e=>{t.forEach(t=>{delete e.pendingPositionReports[i$(t)]})}),m.updateTableResponses(),Q().mode===`audit`&&k6().updateTableResponses(),q().repertoireState.onboarding.isOnboarding||m.checkShowTargetDepthReached(),m.updatePlans(),m.fetchNeededPositionReports()}).finally(()=>{u(e=>{t.forEach(t=>{delete e.pendingPositionReports[i$(t)]})})})})})},requestToAddCurrentLine:()=>l(([e,t,n])=>{let r=n.userState.isSubscribed(),i=ru(Su(e.pendingResponses),e=>e.mine).length;if(!r&&t.pastFreeTier(e.repertoireSide,i)&&!t.onboarding.isOnboarding){Q().pushView(mL,{props:{pastLimit:!0}});return}e.hasPendingLineToAdd&&m.addPendingLine()}),updatePlans:()=>l(([e,t])=>{let n=p.activeRepertoire();if(!n)return;let r=t.positionReports[n.id]?.[c.chessboard.getCurrentEpd()]?.plans??[],i=r[0]?.occurences??0,a=Gz(AI(r),n.side,c.chessboard.get(e=>e.position));c.chessboard.set(t=>{t.focusedPlans=[],t.plans=a.metaPlans.filter(e=>a.consumed.has(e.id)),e.planSections=a.planSections,t.maxPlanOccurence=i})}),onPositionUpdate:()=>{l(([e,t])=>{Q().invalidateSidebarPreviews(`position`);let n=c.chessboard.getTurn(),r=c.chessboard.get(e=>e.moveLog),i=c.chessboard.get(e=>e.positionHistory);e.currentSide=n,e.pendingResponses={},e.justAutofilledEpd&&e.justAutofilledEpd!==c.chessboard.getCurrentEpd()&&(e.justAutofilledEpd=null),m.updatePlans();let a=p.lineIncidences();mu(Yd(i,Vl(i,1),r,a),([t,n,r,a],o)=>
39{if(!r||!t)return;let s=t.epd;n?.epd;let c=o%2==(e.repertoireSide===`white`?0:1);Ad(p.activeRepertoire()?.positionResponses[s],e=>e.sanPlus===r)||(e.pendingResponses[s]={epd:s,epdAfter:i[o+1].epd,sanPlus:r,side:e.repertoireSide,mine:c})}),e.hasAnyPendingResponses=!H(qa(Su(e.pendingResponses))),e.hasPendingLineToAdd=Ad(qa(Su(e.pendingResponses)),e=>e.mine);let o=r.length,s=e.showPlansState.coverageGoalSuppressMinPly;s!==null&&o<s&&(e.showPlansState.coverageGoalSuppressMinPly=null)}),m.updateTableResponses(),m.fetchNeededPositionReports(),q().repertoireState.fetchNeededAnnotations()},addPendingLine:()=>l(([e,t])=>{Q().invalidateSidebarPreviews(),e.showPlansState.coverageGoalSuppressMinPly=null;let[r,i]=o(!0),[a,s]=o(!1);Q().withoutAnimations(()=>{Q().cutTo(PY)}),Q().pushView(QQ,{props:{loading:r,justCompleted:a},holdUntil:t$(()=>!r(),ER)}),e.addedLineState.loading=!0;let c=e.repertoireProgressState[e.activeRepertoireId]?.completed,u=qa(AI(Su(e.pendingResponses)));return q().repertoireState.addMoves(u,e.activeRepertoireId).then(()=>{l(([e,t])=>{if(t.onboarding.isOnboarding)Q().pushView(rQ);else{m.onPositionUpdate(),t.onRepertoireChange();let n=e.repertoireProgressState[e.activeRepertoireId]?.completed;i(!1),s(!c&&n)}})}).catch(e=>{n(e,{message:`Failed to add line`,toast:!0})}).finally(()=>{l(([e])=>{e.addedLineState.loading=!1})})})};return c.chessboard.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{m.onPositionUpdate()},madeManualMove:()=>{d(([e,t])=>{})},onBack:()=>{l(([e])=>{})},onReset:()=>{l(([e])=>{e.showPlansState.coverageGoalSuppressMinPly=null})},onMovePlayed:()=>{l(([e,t])=>{let n=e.activeRepertoireId||t.getDefaultRepertoire(`white`)?.id;if(n){if(wu([`side_overview`,`overview`],Q().mode)?(m.setActiveRepertoire(n),Q().pushView(PY)):Q().currentView()?.component===kY&&Q().pushView(PY),t.onboarding.isOnboarding&&c.chessboard.getTurn()!==e.repertoireSide){let t=c.chessboard.getPly();K(`onboarding.build.move`,{ply:t,own_moves:r$(t,e.repertoireSide),own_move_target:n$(J().user?.ratingRange)})}m.checkShowTargetDepthReached()||m.maybeAutoplayOnboardingMove()}})},shouldMakeMove:e=>l(([e])=>(vX(`right`),Q().hasView(PY)&&Q().cutTo(PY),!0))}}),VF({state:s,actions:m,derived:p,handles:c})};function c$(){return{pendingMoves:0,completed:!1,expectedDepth:0,percentComplete:0,showPopover:!1}}var l$=e=>e?.resetProgress??!0,u$=(e,t,n)=>n===`arrow`||t>=2?`arrow`:n===`hint`||e>=2?`hint`:null,d$=e=>e%2==0?`white`:`black`,f$=(e,t,n)=>{let r=t-e;return r<=0?0:d$(e)===n?Math.min(2,r):1},p$=(e,t)=>{let n=e-1;return n<0?null:(d$(n)!==t&&--n,n>=0?n:null)},m$=l(`<div class="row items-center text-gray-21 "><p></p><i>`),h$=l(`<div>`),g$=e=>{let t=_(()=>e.item());var n=m$(),r=n.firstChild,i=r.nextSibling;return N(r,()=>t().text),M(()=>({e:F(L(`text-base font-semibold lg:text-lg text-secondary`)),t:F(L(t().class,t().icon,` ml-2 text-base lg:text-lg`))}),({e,t},n)=>{P(r,e,n?.e),P(i,t,n?.t)}),n},_$=e=>{let t=()=>[{icon:`fa-kit fa-tick bg-success rounded-full`,class:``,text:`${e.counts.good}`},{icon:`fa-kit fa-inaccuracy`,class:`bg-gray-84 rounded-full`,text:e.counts.inaccuracy},{icon:`fa-kit fa-mistake`,class:`bg-warning rounded-full`,text:e.counts.mistake},{icon:`fa-kit fa-blunder`,class:`bg-danger rounded-full`,text:e.counts.blunder}];var n=h$();return N(n,x(b,{get each(){return t()},keyed:!1,children:e=>x(g$,{item:e})})),M(()=>F(L(`row items-center space-x-4 lg:space-x-6 shrink-0 pl-4 opacity-100`)),(e,t)=>{P(n,e,t)}),n},v$=l(`<div class="w-full h-[80px] md:h-[100px] padding-sidebar"><div class="w-full h-full relative"><div class="absolute w-full h-[0.5px] bg-gray-60 translate-y-[-50%] top-1/2"></div><div class="absolute transition-all w-px bg-blue-70 inset-y-0"></div><div class="absolute transition-all"><div>`),y$=l(`<span class="text-highlight font-bold">`),b$=l(`<div class="gap-2 pl-6"><!><!><!>`),x$=l(`<div class="w-full padding-sidebar"><!><div class=gap-2><!><!><!>`),S$=l(`<div><p class="text-primary font-medium padding-sidebar pb-2">Understanding <!>:</p><p class="padding-sidebar body-text">`),C$=l(`<div class="w-full padding-sidebar"><p class=" text-primary pb-4 font-medium"> Move the pieces on the board to guess the move at any point.</p><p class=body-text>`),w$=l(`<div class=padding-sidebar>`),T$=l(`<div class="gap-4 lg:gap-8"><!><!><!><!><!>`),E$=l(`<div class="gap-4 lg:gap-8"><!><!><!>`),D$=l(`<span class="text-highlight font-bold"> of <!>`),O$=l(`<div class="w-full h-full"><p><span class=font-bold>Hint: </span> `),k$=l(`<div class="padding-sidebar flex flex-row w-full justify-between gap-3 lg:gap-[18px]">`),A$=l(`<div>`),j$=E(()=>ve(()=>
39import(`./EvalsChart-BV7Fwkhm.js`),__vite__mapDeps([22,1,4,2,5,17,14,16]),import.meta.url),void 0,`src/components/EvalsChart.tsx`),M$=e=>{let t=()=>D6().derived.showingHint(),n=()=>e.game,r=_(()=>{let e=p$(D6().state.ply,n().result);if(e===null)return;let t=n().epds[e],r=n().sans[e];if(t&&r){let n=dV.toKey({epd:t,san:r}),i=Y().getAnnotation(n)?.text;if(i)return{label:`${Math.floor(e/2)+1}${e%2==1?`â¦`:`.`} ${r}`,text:i}}}),i=()=>D6().derived.numCorrect(),a=()=>D6().derived.totalRatedGuesses();ze(()=>{Z(e=>{e.repertoireState.modelGamesState.state.activeGame?.id!==n().id&&e.repertoireState.modelGamesState.actions.setActiveGame(n())})}),NR((e,t)=>{switch(e){case`ArrowLeft`:Z(e=>e.repertoireState.modelGamesState.actions.backOne());break;case`ArrowRight`:t.preventDefault(),Z(e=>{e.repertoireState.modelGamesState.actions.playNextMove()})}});let s=()=>D6().derived.guessedPlyCounts();ZI(()=>{Z(e=>{Bl(e.repertoireState.modelGamesState.handles.chessboard.getMoveLog())?(d()?vX(`left`):t()&&g()?.(`left`),e.repertoireState.modelGamesState.actions.backOne()):(vX(`left`),e.repertoireState.backToOverview())})},`stay`);let c=_(()=>Y().getLastEcoCode(n().epds)),l=()=>D6().state.nextMove,u=()=>D6().state.ply===0||D6().state.activeGame?.result===`black`&&D6().state.ply===1,d=()=>D6().state.ply===n().epds.length-1&&!D6().state.previewing,f=()=>e.game?.evals?.[p()],p=()=>D6().state.ply,m=()=>{let e=D6().derived.guessedPlyCounts();return e.inaccuracy>0||e.mistake>0||e.blunder>0},h=_(()=>{let t=[];return d()?(t.push(GR.formatPlayerPerformanceDescription(e.game,`white`)),t.push(GR.formatPlayerPerformanceDescription(e.game,`black`)),t):t}),[g,v]=o(null);return x($,{get header(){return A(()=>!!d())()?GR.formatGameResultTitle(n()):GR.formatChessGameTitle(n(),st()().isMobile)},get truncateHeader(){return ON()},get bodyEdge(){return d()?`bullets`:`text`},get headerRight(){return x(j,{get when(){return A(()=>!d())()&&D6().derived.movesGuessed()>0},get children(){return x(_$,{get counts(){return s()}})}})},get actions(){return[{text:`Continue`,hidden:!d(),style:`primary`,onPress:()=>{Z(e=>{vX(`left`),e.repertoireState.backToOverview()})}},{text:`Replay this game`,hidden:!d(),style:`primary`,onPress:()=>{Z(e=>{e.repertoireState.modelGamesState.actions.reviewGame(n())})}},{text:`Play through another model game`,hidden:!d(),style:`primary`,onPress:()=>{Z(e=>{e.repertoireState.modelGamesState.actions.fetchAndReviewNewGame(e.repertoireState.modelGamesState.state.lastFetchOptions??{})})}}]},get children(){return[x(j,{get when(){return l()},children:e=>x(Iz,{get board(){return D6().handles.chessboard},children:t=>x(Lz,{part:t,get transitionDurationMs(){return c2()},get hidden(){return D6().state.hintStage!==`arrow`},faded:!1,get flipped(){return D6().handles.chessboard.get(e=>e.flipped)},get toSquare(){return e().to},get fromSquare(){return e().from}})})}),(()=>{var e=E$(),o=e.firstChild,s=o.nextSibling,l=s.nextSibling;return N(e,x(j,{get when(){return!d()},get children(){var e=v$(),t=e.firstChild,r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.firstChild;return N(t,x(ce,{fallback:null,get children(){return x(j$,{get game(){return n()},get currentPly(){return p()}})}}),r),N(o,x(j,{get when(){return f()},get children(){return x(wH,{get stockfish(){return f()}})}})),M(()=>({e:F(z(B.left(`${p()/n().sans.length*100}%`))),t:F(z(B.left(`${p()/n().sans.length*100}%`),{transform:`translateX(-50%)`})),a:F(L(`border-solid border-gray-32 border rounded-sm overflow-hidden transition-all`,p()===0?`opacity-0`:`opacity-100`))}),({e,t,a:n},r)=>{w(i,e,r?.e),w(a,t,r?.t),P(o,n,r?.a)}),e}}),o),N(e,x(j,{get when(){return!d()},get children(){return x(P$,{get actions(){return[{text:`Play next move`,style:`focus`,onPress:()=>{Z(e=>{(t()||u())&&g()?.(`right`),e.repertoireState.modelGamesState.actions.playNextMove()})}},{text:D6().state.hintStage===null?`Give me a hint`:`Show me the move`,disabled:D6().state.hintStage===`arrow`,style:`secondary`,onPress:()=>{Z(e=>{g()?.(`right`),e.repertoireState.modelGamesState.actions.showNextHint()})}}]}})}}),s),N(e,x(IG,{setAnimateSidebar:e=>v(()=>e),get children(){var e=T$(),o=e.firstChild,s=o.nextSibling,l=s.nextSibling,f=l.nextSibling,p=f.nextSibling;return N(e,x(j,{get when(){return d()},get children(){var e=x$(),t=e.firstChild,n=t.nextSibling,r=n.firstChild,o=r.nextSibling,s=o.nextSibling;return N(e,x(V,{get class(){return L(`text-primary font-bold`)},children:`Stats from this game:`}),t),N(e,x(R,{between:[`body-text`,`bullets`]}),n),N(n,x(b,{get each(){return h()},children:e=>x(XL,{children:e})}),r),N(n,(()=>{var e=A(()=>a()>0);return()=>e()&&x(XL,{get children(){return[`You guessed`,` `,(()=>{var e=D$(),t=e.firstChild,n=t.nextSibling;return N(e,i,t),N(e,a,n),e})(),` `,`moves correctly (`,A(()=>Math.round(i()/a()*100)),`%)`]}})})(),o),N(n,x(j,{get when(){return m()},get children(){var e=b$(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling;return N(e,x(j,{get when(){return D6().derived.guessedPlyCounts().inaccuracy>0},get children(){return x(XL,{get children(){return[`You played`,` `,(()=>{var e=y$();return N(e,()=>D6().derived.guessedPlyCounts().inaccuracy),e})(),` `,A(()=>vL(D6().derived.guessedPlyCounts().inaccuracy,`inaccuracy`,`inaccuracies`))]}})}}),t),N(e,x(j,{get when(){return D6().derived.guessedPlyCounts().mistake>0},get children(){return x(XL,{get children(){return[`You made`,` `,(()=>{var e=y$();return N(e,()=>D6().derived.guessedPlyCounts().mistake),e})(),` `,A(()=>vL(D6().derived.guessedPlyCounts().mistake,`mistake`))]}})}}),n),N(e,x(j,{get when(){return D6().derived.guessedPlyCounts().blunder>0},get children(){return x(XL,{get children(){return[`You blundered`,` `,(()=>{var e=y$();return N(e,()=>D6().derived.guessedPlyCounts().blunder),e})(),` `,A(()=>vL(D6().derived.guessedPlyCounts().blunder,`time`))]}})}}),r),e}}),s),e}}),o),N(e,x(j,{get when(){return A(()=>!!r())()?!u():r()},get children(){var e=S$(),t=e.firstChild,n=t.firstChild.nextSibling;n.nextSibling;var i=t.nextSibling;return N(t,()=>r().label,n),N(i,()=>oH(r().text)),e}}),s),N(e,x(j,{get when(){return A(()=>!!u())()?c():u()},get children(){var e=C$(),t=e.firstChild,r=t.firstChild,i=t.nextSibling;return N(t,(()=>{var e=A(()=>!!c());return()=>e()?[`This game matches your saved moves in the `,A(()=>c().fullName),`.`,A(()=>
39n().adjusted&&` The move order has been adjusted slightly to match yours.`)]:c()})(),r),N(i,()=>GR.formatGameDescription(n())),e}}),l),N(e,x(j,{get when(){return A(()=>!!t())()?!d():t()},get children(){var e=w$();return N(e,x(N$,{get hints(){return D6().state.hints}})),e}}),f),N(e,x(j,{get when(){return u()},get children(){return x(H6,{get actions(){return[{hidden:!u(),text:`Choose another random game`,style:`secondary`,disabled:D6().state.fetchingNewGame,onPress:()=>{Z(e=>{e.repertoireState.modelGamesState.actions.fetchAndReviewNewGame(e.repertoireState.modelGamesState.state.lastFetchOptions??{})})}},{hidden:!u(),text:`View previous model games`,style:`secondary`,onPress:()=>{Z(e=>{Q().popView(),Q().pushView(QR)})}},{hidden:!u(),...p0(f0.modelGamesSource,()=>{Z(e=>{e.repertoireState.modelGamesState.actions.fetchDailyModelGame({forceNewGame:!0})})})}]}})}}),p),e}}),l),e})()]}})};LF(M$,`model_games`);var N$=e=>{let t=()=>e.hints[0];var n=O$(),r=n.firstChild;return r.firstChild.nextSibling,N(r,()=>t()?.description,null),n},P$=e=>{var t=k$();return N(t,x(b,{get each(){return e.actions},children:e=>(()=>{var t=A$();return t._$$click=()=>e.onPress(),N(t,()=>e.text),M(()=>F(L(`cursor-pointer grow center h-[42px] basis-0 hover-fine:bg-sidebar_button_primary_hover bg-sidebar_button_primary transition-all font-medium select-none`,e.disabled&&`opacity-50 pointer-events-none`)),(e,n)=>{P(t,e,n)}),t})()})),t};ae([`click`]);var F$=e=>{let t=[];return t.push({type:`piece`,piece:e.piece,square:e.from,description:`The ${e.color===`w`?`White`:`Black`} ${Hz(e.piece)} on ${e.from}`}),t},I$=()=>({good:{},alternate:{},mistake:{},blunder:{},inaccuracy:{}}),L$=e=>Object.keys(e).length,R$=()=>{let e=E2()[1],t=WI({dailyGame:void 0,hints:[],validAlternateMovesGuessed:{},validHintPieceAlternateMovesGuessed:{},nextMove:void 0,history:[],hintStage:null,activeGame:void 0,previewing:!1,lastFetchOptions:void 0,guessedPlys:I$(),ply:0,reviewStartedAtMs:null,fetchingNewGame:!1}),r=t.state,i={chessboard:e},a=(e,n)=>t.set(t=>e([t,q().repertoireState,q()])),o={guessedPlyCounts:()=>({good:L$(r.guessedPlys.good),alternate:L$(r.guessedPlys.alternate),mistake:L$(r.guessedPlys.mistake),blunder:L$(r.guessedPlys.blunder),inaccuracy:L$(r.guessedPlys.inaccuracy)}),movesGuessed:()=>L$({...r.guessedPlys.good,...r.guessedPlys.alternate,...r.guessedPlys.mistake,...r.guessedPlys.blunder,...r.guessedPlys.inaccuracy}),numCorrect:()=>L$(r.guessedPlys.good),totalRatedGuesses:()=>L$(r.guessedPlys.good)+L$(r.guessedPlys.inaccuracy)+L$(r.guessedPlys.mistake)+L$(r.guessedPlys.blunder),showingHint:()=>(r.hintStage===`hint`||r.hintStage===`arrow`)&&!H(r.hints)},s=e=>{if(!e)return;let t=Bl(r.hints);t&&`piece`in t&&(a(([t])=>{t.hintStage=e}),i.chessboard.highlightSquare(t.square))},c=()=>{let e=r.activeGame;if(!e)return null;let t=e.sans[r.ply];if(!t)return null;qV();let n=i.chessboard.makeMove(t,{animate:!0,sound:`move`});return a(([e])=>{e.ply=i.chessboard.getPly()}),i.chessboard.highlightSquare(null),l.resetHints(),l.setNextMove(),n},l={setDailyGame:e=>{a(([t])=>{t.dailyGame=e})},setHistory:e=>{a(([t])=>{t.history=e})},resetHints:e=>{let t=r.activeGame?.sans[r.ply],n=t?i.chessboard.get(e=>e.position.validateMoves([t])):null;a(([t])=>{l$(e)&&(t.validAlternateMovesGuessed={},t.validHintPieceAlternateMovesGuessed={},t.hintStage=null),t.hints=n?F$(n[0]):[]})},fetchAndReviewNewGame:async e=>{if(r.fetchingNewGame)return;a(([e])=>{e.fetchingNewGame=!0});let t=hN.call([`openings.fetchModelGame`,{epd:e.epd??null,date:new Date().toISOString(),line:e.line??null,side:e.side??null}]);vX(`right`,{holdUntil:t.catch(Hi)});try{let n=(await t).game;if(!n){mn.error(`No model game found`);return}l.reviewGame(GR.fromDto(n),{startPly:e.line?.length??0},e)}finally{a(([e])=>{e.fetchingNewGame=!1})}},setActiveGame:e=>{a(([t])=>{t.activeGame=e,t.ply=0,t.previewing=!1,t.guessedPlys=I$(),t.reviewStartedAtMs=Date.now()}),i.chessboard.resetPosition(),i.chessboard.setPerspective(e.result)},skipToEnd:()=>{let e=r.activeGame;e&&(Vl(e.sans,r.ply).forEach(e=>{i.chessboard.makeMove(e,{animate:!1,sound:`none`})}),a(([e])=>{e.ply=i.chessboard.getPly()}),l.resetHints(),l.setNextMove())},backOne:()=>{i.chessboard.backOne({clear:!0}),a(([e])=>{e.ply=i.chessboard.getPly()}),i.chessboard.highlightSquare(null),l.resetHints(),l.setNextMove()},showNextHint:()=>{if(r.hintStage===`hint`){s(`arrow`);return}s(`hint`)},setNextMove:()=>a(([e])=>{if(!e.activeGame){e.nextMove=void 0;return}let t=e.ply,n=e.activeGame?.sans[t];if(!n){e.nextMove=void 0;return}let r=i.chessboard.get(e=>e.position).validateMoves([n]);r&&(e.nextMove=r[0])}),playNextMove:async()=>{let e=r.activeGame;if(!e)return;let t=r.ply,n=f$(t,e.sans.length,e.result),a=c();!a||n<2||(await a,await MV(s2()),r.activeGame?.id===e.id&&r.ply===t+1&&i.chessboard.getPly()===t+1&&c())}
39,reviewGame:(e,t,n)=>{a(([e])=>{e.lastFetchOptions=n}),l.setActiveGame(e),t?.startFinished&&i.chessboard.playLine(e.sans),i.chessboard.set(t=>{t.associatedGame=e}),Q().ensureView(M$,{props:{game:e}}),Y().fetchNeededAnnotations(),l.resetHints(),l.setNextMove();let r=t?.startPly??0;r===0&&e.result===`black`&&(r=1),r&&(Pd(e.sans,r).forEach(e=>{i.chessboard.makeMove(e,{animate:!1,sound:`none`})}),a(([e])=>{e.ply=i.chessboard.getPly()}))},markGameAsReviewed:e=>{if(e.reviewed)return Promise.resolve();let t=Math.max(0,Date.now()-(r.reviewStartedAtMs??Date.now())),n=o.movesGuessed();return a(([t])=>{[t.dailyGame,t.activeGame].forEach(t=>{t&&t.id===e.id&&(t.reviewed=!0)})}),QS.post(`/api/v1/model_game_reviewed`,{gameId:e.id,reviewDurationMs:t,movesGuessed:n}).then(()=>{l.fetchModelGameHistory()})},guessedMove:e=>{let t=r.activeGame;if(!t)return!1;let n=r.ply,i=t.sans[n]===e.san;return i&&!l.hasGuessedPly(n)&&l.guessPly(n,dC.Good),i},guessPly:(e,t)=>{l.hasGuessedPly(e)||r.guessedPlys.alternate[e]&&t!==`good`||a(([n])=>{n.guessedPlys[t][e]=!0})},hasGuessedPly:e=>!!r.guessedPlys.good[e]||!!r.guessedPlys.inaccuracy[e]||!!r.guessedPlys.mistake[e]||!!r.guessedPlys.blunder[e],fetchModelGameHistory:()=>QS.post(`/api/v1/model_game_history`,{}).then(({data:e})=>{l.setHistory(mu(e.games,e=>GR.fromDto(e)))}),fetchDailyModelGame:e=>QS.post(`/api/v1/daily_model_game`,{date:new Date().toISOString(),forceNewGame:e?.forceNewGame??!1}).then(({data:e})=>{l.setDailyGame(e.game?GR.fromDto(e.game):null)})};return i.chessboard.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{i.chessboard.getCurrentEpd()===Bl(r.activeGame?.epds)&&(vX(`right`),l.markGameAsReviewed(r.activeGame)),l.resetHints({resetProgress:!1}),l.setNextMove(),i.chessboard.highlightSquare(null)},madeManualMove:Hi,onBack:Hi,onReset:Hi,shouldMakeMove:e=>{let t=r.activeGame,o=i.chessboard.getCurrentEpd();if(!t)return!1;r.ply===0&&qV();let c=t.evals[r.ply],u=Bl(r.hints),d=r.hintStage===`hint`&&!!u&&`piece`in u&&e.from===u.square,f=l.guessedMove(e);if(i.chessboard.showMoveFeedback({square:e.to,result:f?`correct`:`thinking`,progress:f?void 0:.05},()=>{f&&oC.fromColor(e.color)===t.result&&l.playNextMove()}),f)return a(([e])=>{e.ply=i.chessboard.getPly()+1,e.hintStage=null}),!0;let p=i.chessboard.get(e=>e.position).clone();p.move(e);let m=dp(p);a(([e])=>{e.previewing=!0});let h=(t=()=>s(r.hintStage))=>{i.chessboard.dismissMoveFeedback({square:e.to,delay:500},()=>{for(a(([e])=>{e.previewing=!1});i.chessboard.getCurrentEpd()!==o;)i.chessboard.backOne({clear:!0});t?.()})};return GV({chessboard:i.chessboard,epd:m,nodes:YD.SHALLOW,square:e.to}).then(t=>{let n=CE({before:c,after:t,side:r.activeGame.result}),o=r.hintStage;if(i.chessboard.set(i=>{i.moveFeedback.progress=void 0,n?(RV(IV.failure),i.moveFeedback.result=n,l.guessPly(r.ply,n)):Kt(t)?(RV(IV.failure),i.moveFeedback.result=`incorrect`):(RV(IV.success),i.moveFeedback.result=`alternative`,a(([t])=>{t.validAlternateMovesGuessed[e.san]=!0,d&&(t.validHintPieceAlternateMovesGuessed[e.san]=!0),o=u$(L$(t.validAlternateMovesGuessed),L$(t.validHintPieceAlternateMovesGuessed),t.hintStage)}),l.guessPly(r.ply,`alternate`))}),n===dC.Mistake||n===dC.Blunder){let e=t?.pv;if(!e){qn(Error(`Stockfish did not return a refutation for model-game mistake`)),h();return}let[n]=p.clone().validateMoves([e],{sloppy:!0})??[];if(!n){qn(Error(`Stockfish refutation was not legal for model-game mistake`,{cause:{pv:e,epd:m}})),h();return}if(i.chessboard.getCurrentEpd()!==m){h();return}MV(s2()).then(()=>{if(i.chessboard.getCurrentEpd()!==m){h();return}i.chessboard.makeMove(n,{animate:!0,sound:`move`}).then(async()=>{h()})})}else h(()=>s(o))}).catch(e=>{n(e,{message:`Failed to fetch eval for move`}),i.chessboard.set(e=>{e.moveFeedback.progress=void 0,e.moveFeedback.result=`incorrect`}),h()}),!0}}}),VF({state:r,actions:l,derived:o,handles:i})},z$=()=>{let e=new e$({}),t=(e,t)=>Z(t=>e([t.repertoireState.openingReportsState,t.repertoireState,t]));return{chessboard:E2()[1],selectedReportIds:{},selectReport:(e,n)=>t(([t])=>{t.selectedReportIds[e]=n}),get openingsReportsByTimeRange(){return e.trackedValue()},setOpeningsReportForTimeRange:(t,n)=>{e.mutate(e=>{e[t]=n})},mutateOpeningsReportForTimeRange:(t,n)=>{e.mutate(e=>{let r=e[t];r&&n(r)})},getCurrentOpeningsReport:()=>O6().openingsReportsByTimeRange[J().getFrontendSetting(`openingsTimeRange`).value]??null,fetchOpeningsReport:()=>t(([e,n,r])=>{let i=r.userState.getFrontendSetting(`openingsTimeRange`).value;QS.post(`/api/v2/openings_report`,{timeRange:i}).then(e=>{t(([t])=>{t.setOpeningsReportForTimeRange(i,e.data)})})})}},B$=(e,t)=>
39({kind:e,projections:new Set(t)}),V$=e=>{let t=e.ui.mode,n=e.repertoireState.browsingState;return t===`review`?B$(`review`,[`review-position`,`annotations`,`position-reports`,`badge`]):t===`audit`?B$(`audit`,[`audit-table`,`position-reports`,`badge`]):t===`build`?B$(`build-position`,[`browsing-progress`,`active-position`,`annotations`,`position-reports`,`badge`]):t===`browse`?B$(`browse-position`,[`browsing-progress`,`active-position`,`annotations`,`position-reports`,`badge`]):t===`side_overview`?B$(`repertoire-overview`,[`browsing-progress`,`badge`]):t===`model_games`||t===`plans_and_model_games`?B$(`model-games`,[`annotations`,`badge`]):t===`openings_report`?B$(`openings-report`,[`badge`]):t===`browseCourses`?B$(`course-browser`,[`badge`]):t===`play`||t===`mistakes`?B$(`other`,[`badge`]):n.state.activeRepertoireId?B$(`repertoire-overview`,[`browsing-progress`,`badge`]):B$(t===`overview`?`home`:`other`,[`badge`])},H$=(e,t)=>e.projections.has(t),U$=[`rnbqkb1r/pppp1ppp/4pn2/8/3P4/5N2/PPP1PPPP/RNBQKB1R w KQkq -`],W$=()=>({autoBookmarks:{},expectedNumMovesFromEpd:{},movesFromEpd:{},numMovesFromEpd:{},numMovesNeededFromEpd:{}}),G$=(e,t)=>{for(let n=e.length-1;n>=0;n--){let r=t[e[n]];if(r)return r}},K$=(e,t)=>{let n=G$(e,t);if(!n)return null;let r=kF.getAppropriateEcoName(n);return{ecoCode:n,lastVariation:Bl(r[1])??null,fullVariation:r[1]?.join(`, `)??null,fullName:n.fullName,name:r[0]}},q$=e=>{let{ecoCodeLookup:t,getCurrentThreshold:n,graph:r,repertoires:i}=e,a={};return mu(Su(i),e=>{let i=new Set,o=[...r.autoBookmarks[e.id]??[]],s={},c={},l=n()*4,u=(n,a,d,f=`black`,p)=>{if(i.has(n)){ru(o,e=>e.epds.includes(n)).length>0&&(o=ru(o,e=>!d.includes(e.epd)));return}i.add(n);let m=r.numMovesFromEpd[e.id]?.[n]??0,h=p?.incidence??0;if(p){if(h<l)return;let r=K$(d,t),i={repertoireId:e.id,epd:n,line:a,epds:d,numMovesFromHere:m,ecoCode:r,incidence:h};h>=l&&f===e.side&&!U$.includes(n)&&a.length>1&&(o=o.filter(e=>{if(!d.includes(e.epd)||e.root)return!0;let t=(d.length-e.epds.length)/2;return h/e.incidence>1.1**t}),r&&o.push(i)),r&&!r.fullName.includes(`:`)&&(s[r.fullName]=i),a.length===1&&r&&(c[a[0]]={...i,root:!0})}let g=ru(e.positionResponses[n]??[],e=>!e.isDisabled);g=jd(g,e=>-(e.incidence??0)),g.map(e=>u(e.epdAfter,[...a,e.sanPlus],d.concat(e.epdAfter),oC.flip(f),e))};u(fp,[],[fp]),o=jd(o,e=>-e.incidence),o=Kd(o,e=>e.ecoCode.fullName);let d=mu(c,e=>e.ecoCode.name);o=ru(o,e=>!d.includes(e.ecoCode.name)),o=Pd(jd(o,e=>-e.incidence),12),o=jd(o,e=>e.ecoCode.fullName);let f=_u(o,e=>e.line[0]);Kl(f,(e,t)=>{let n=c[t];n&&e.unshift(n)});let p=jd(Object.values(f),e=>-e[0].numMovesFromHere),m=new Set;Kl(p,e=>{for(let t=0;t<e.length;t++){let n=e[t],r=n.ecoCode.name,i=e.filter(e=>e.ecoCode.name===r);if(!m.has(r)&&i.length>1&&!Ad(e,e=>e.ecoCode.fullName===r)){let n=s[r];n&&e.splice(t,0,n)}m.add(r),i.length>1&&n.ecoCode.lastVariation&&(n.multipleInThisOpening=!0)}}),a[e.id]=qa(Object.values(p))}),a},J$=e=>{let{ecoCodeLookup:t,getCurrentThreshold:n,getSingleElo:r,getThreshold:i,includeAutoBookmarks:a=!0,repertoireGrades:o,repertoires:s}=e;if(!s)return W$();let c=r(),l=W$();return mu(Su(s),e=>{let t=i(e.id??null),n=new Set,r=e.side,a={},o={},s={},u={},d=(n,i,l)=>{if(i.has(n)){let e=new Set,t=new Set;return l?.mine&&(e.add(l.id),l?.needed&&t.add(l.id)),{myMoves:e,myNeededMoves:e,expectedNumMoves:0}}let f=vM(l?.incidence??1,t,r,c);if(l?.isExcluded)return{myMoves:new Set,myNeededMoves:new Set,expectedNumMoves:0,excludedMoves:f};i.add(n);let p=ru(e.positionResponses[n]??[],e=>e.needed&&!e.isDisabled),[m,...h]=p,g=0,_=new Set,v=new Set;for(let e of p){let t=d(e.epdAfter,i,e);g+=t.expectedNumMoves;for(let e of t.myMoves)_.add(e);for(let e of t.myNeededMoves)v.add(e)}return m?.mine&&(f=g),a[n]=_.size,o[n]=v.size,s[n]=_,u[n]=f,l?.mine&&(_.add(l.id),l?.needed&&v.add(l.id)),i.delete(n),{expectedNumMoves:f,myMoves:_,myNeededMoves:v}};d(fp,n,void 0),l.numMovesFromEpd[e.id]=a,l.numMovesNeededFromEpd[e.id]=o,l.movesFromEpd[e.id]=s,l.expectedNumMovesFromEpd[e.id]=u}),mu(Su(s),e=>{let t=i(e.id??null),n=new Set,r=o[e.id],a=e.side,s=new Set,u=(i,o)=>
39{if(n.has(i))return{expectedNumMoves:0};n.add(i);let d=o?.incidence??1,f=ru(e.positionResponses[i]??[],e=>e.needed&&!e.isDisabled),p=Math.min(1,Md(f.map(e=>e.incidence??0))/d),m=0,h=vM(d,t,a,c),g=l.movesFromEpd[e.id][i]??[];mV(!Kt(g),`movesFromHere is nil`);let _=!r?.biggestMisses?.[i];if(_&&(s=new Set([...s,...g])),f.length===0)m=h;else{let e=h*(1-p),t=0,n=0;for(let e of f){let r=u(e.epdAfter,e).expectedNumMoves;t+=r,n=Math.max(n,r)}m=o?.mine?t+e:n}return m=Math.max(1,m),_&&(m=0),{expectedNumMoves:m+ +!!o?.mine}},d=u(fp,void 0);l.expectedNumMovesFromEpd[e.id][fp]=d.expectedNumMoves+s.size}),a&&(l.autoBookmarks=q$({ecoCodeLookup:t,getCurrentThreshold:n,graph:l,repertoires:s})),l};function Y$(){return`scheduler`in window&&`yield`in window.scheduler?window.scheduler.yield():new Promise(e=>{setTimeout(e,0)})}var X$=()=>{let e=new Map;return{waitFor:(t,n)=>{let r=e.get(t);if(r)return r;let i=n().catch(n=>{throw e.get(t)===i&&e.delete(t),n});return e.set(t,i),i}}},Z$=()=>({numMovesDueFromEpd:{white:{},black:{}},earliestReviewDueFromEpd:{white:{},black:{}},masteryFromEpd:{},numLockedFromEpd:{},lockedShareFromEpd:{}}),Q$=()=>({movesByMastery:{},masteryOverall:0}),$$=()=>({numResponses:void 0,numMyEnabledMoves:{white:0,black:0},numResponsesAboveThreshold:void 0}),e1=()=>({myResponsesLookup:void 0,epdNodes:{white:{},black:{}}}),t1=()=>({allRepertoiresEmpty:!0,hasCourseRepertoires:!1,hasMultipleRepertoires:!1,repertoiresList:[]}),n1=()=>({progressStates:{},startMastery:{}}),r1=()=>({earliestReviewDue:null,totalMovesDue:null}),i1=e=>jd(Su(e),e=>e.side===`white`?0:1,e=>e.createdAt),a1=e=>{let t={};return Kl(aC,n=>{let r={name:`Super Repertoire`,side:n,createdAt:new Date().toISOString(),plans:{},id:`${n}`,eloRanges:[],positionResponses:{}},i={};Kl(ru(Su(e),e=>e.side===n),e=>{Kl(e.positionResponses,t=>{Kl(t,t=>{let n=i[t.epd]??=new Map,a=n.get(t.id);if(a)a.repertoireIds??=[],a.repertoireIds.push(e.id);else{let i={...t,repertoireIds:[e.id]};r.positionResponses[t.epd]??=[],r.positionResponses[t.epd].push(i),n.set(t.id,i)}})})}),t[n]=r}),t},o1=(e,t)=>{let n=new Date,r=null,i=0;for(let a of Object.values(e))for(let e of Object.values(a.positionResponses))for(let o of e){if(o.isDisabled||!o.srs||cz(t,a.side,o))continue;let e=o.srs.dueAt;e&&(r===null||e<r)&&(r=e),sC.isReviewDue(o.srs,n)&&i++}return{earliestReviewDue:r,totalMovesDue:i}},s1=(e,t)=>{for(let n=e.length-1;n>=0;n--){let r=t[e[n]];if(r)return r}},c1=async e=>{try{return{ok:!0,value:await e}}catch(e){return{ok:!1,error:e}}},l1=null,u1=()=>({homePromise:c1(hN.call([`home.fetchHome_v2`,{date:(0,RN.default)().format(`YYYY-MM-DD`)}])),supplementaryPromise:c1(QS.get(`/api/v1/openings/supplementary`).then(({data:e})=>e)),mistakesPromise:c1(QS.get(`/api/v2/get_lichess_mistakes`).then(({data:e})=>e)),dailyGamePromise:c1(QS.post(`/api/v1/daily_model_game`,{date:new Date().toISOString(),forceNewGame:!1}).then(({data:e})=>e)),modelGameHistoryPromise:c1(QS.post(`/api/v1/model_game_history`,{}).then(({data:e})=>e))}),d1=()=>{l1??=u1()},f1=()=>{let e=l1??u1();return l1=null,e},p1=null,m1=e=>Object.values(e.autoFillBuilds).some(e=>!e.isComplete&&!e.error),h1=[1300,1500],g1=e=>[e.repertoireState,e],_1=(e,t)=>{let r=(t,n)=>e(e=>t(g1(e)),n?`repertoire.${n}`:void 0),i=(e,n)=>t(t=>e(g1(t))),a=new e$(void 0),o=new e$({}),s=new e$([]),c=new e$({}),l=new e$({white:{},black:{}}),u=X$(),d=new Set,f=tt(()=>{let e=a.trackedValue();return e?a1(e):null}),p=(e,t)=>n=>n?e[n]?.coverageTarget??t:t,m=_(()=>{let[e]=i(e=>e);if(!e.repertoires)return t1();let t=i1(e.repertoires);return{allRepertoiresEmpty:tu(Nu(e.repertoires,e=>H(e.positionResponses))),hasCourseRepertoires:t.some(e=>e.course!==void 0),hasMultipleRepertoires:Dd(e.repertoires)>2,repertoiresList:t}},{lazy:!0}),h=et(()=>{let[e]=i(e=>e),t=e.superRepertoires;return t?o1(t,g()):r1()}),g=et(()=>{let[e]=i(e=>e);return!e.repertoires||J().isSubscribed()||e.onboarding.isOnboarding?rz:sz(Su(e.repertoires),100)}),v=et(()=>{let[e]=i(e=>e),t=J().getCurrentThreshold(),n=J().getSingleElo();return J$({ecoCodeLookup:e.ecoCodeLookup,getCurrentThreshold:()=>t,getSingleElo:()=>n,getThreshold:e.repertoires?p(e.repertoires,t):()=>t,includeAutoBookmarks:!1,repertoireGrades:e.repertoireGrades,repertoires:e.repertoires})}),y=et(()=>{let[e]=i(e=>e),t=e.browsingState.state.activeRepertoireId;if(!t||!e.repertoires)return{};let n=e.repertoires[t];if(!n)return{};let r={[t]:n},a=J().getCurrentThreshold();return q$({ecoCodeLookup:e.ecoCodeLookup,getCurrentThreshold:()=>a,graph:v(),repertoires:r})}),b=et(()=>{let[e]=i(e=>e),t=e.superRepertoires;if(!e.repertoires||!t)return n1();let n=v(),r=g(),a={},o={};return mu(Su(e.repertoires),t=>{let i=ju(TH.getAllEnabledRepertoireMoves(t),e=>e.id),s=new Set,c=new Set,l=(e,n)=>{if(s.has(e)){n?.mine&&c.add(n.id);return}s.add(e);let r=t.positionResponses[e]??[];for(let e of r)l(e.epdAfter,e);n?.mine&&c.add(n.id),s.delete(e)};l(fp);let u=0,d=0;
39c.forEach(e=>{let n=i[e];n&&(u+=cz(r,t.side,n)?0:sC.toMasteryPercentage(n.srs)??0,d++)});let f=u/d;a[t.id]=Number.isNaN(f)?0:f;let p=e.repertoireGrades[t.id]?.biggestMiss,m=n.numMovesNeededFromEpd?.[t.id]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??0,h=n.expectedNumMovesFromEpd[t.id]?.[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]??1,g=Kt(p),_=e.repertoireGrades[t.id]?.coverage,v=g?1:Math.min(.99,_??yM(m/h)),y=m>0?Math.max(.01,v):v,b=0;for(let e of Su(i))e.mine&&cz(r,t.side,e)&&b++;o[t.id]={completed:g,percentComplete:y,numLocked:b}}),{progressStates:o,startMastery:a}}),x=et(()=>{let[e]=i(e=>e);return e.lichessMistakes?pz(g(),e.superRepertoires,e.lichessMistakes).open:null}),S=et(()=>{let[e]=i(e=>e),t=e.repertoires,n=e.superRepertoires;if(!t||!n)return Z$();let r=Z$(),a=g();return mu([...Su(t),...Su(n)],e=>{let t=t=>cz(a,e.side,t)?0:sC.toMasteryPercentage(t.srs)??0,n=t=>!t.isDisabled&&!cz(a,e.side,t),i=new Set,o=ju(TH.getAllEnabledRepertoireMoves(e),e=>e.id),s={},c={},l={},u={},d={},f=(r,i,p)=>{if(i.has(r)){let e=new Set;return p?.mine&&e.add(p.id),{myMoves:e,mastery:0}}i.add(r);let m=e.positionResponses[r]??[],h=new Set;for(let e of m){let t=f(e.epdAfter,i,e);for(let e of t.myMoves)h.add(e)}let g=0,_=null,v=0,y=0,b=0;h.forEach(r=>{let i=o[r];if(!i)return;cz(a,e.side,i)&&b++;let s=t(i);mV(s>=0),g+=s,y++,n(i)&&(i.srs&&sC.isReviewDue(i.srs)&&v++,i.srs?.dueAt&&(_===null||_>i.srs.dueAt)&&(_=i.srs.dueAt))}),s[r]=v,u[r]=b,_&&(c[r]=_);let x=b;p?.mine&&(g+=t(p),y++,cz(a,e.side,p)&&x++),d[r]=y>0?x/y:0;let S=g/y;return Number.isNaN(S)&&(S=0),l[r]=S,p?.mine&&h.add(p.id),i.delete(r),{mastery:g,myMoves:h}};f(fp,i,void 0),r.numMovesDueFromEpd[e.id]=s,r.earliestReviewDueFromEpd[e.id]=c,r.masteryFromEpd[e.id]=l,r.numLockedFromEpd[e.id]=u,r.lockedShareFromEpd[e.id]=d}),r}),C=et(()=>{let[e]=i(e=>e),t=e.repertoires,n=e.superRepertoires;if(!t||!n)return Q$();let r=Q$(),a=Object.values(n).flatMap(e=>Object.values(e.positionResponses).flat().filter(e=>e.mine&&!e.isDisabled)),o=g();return r.masteryOverall=a.length===0?0:Nd(a,e=>cz(o,e.side,e)?0:sC.toMasteryPercentage(e.srs)??0)/a.length,mu(Su(t),e=>{r.movesByMastery[e.id]={new:0,learning:0,solid:0,mastered:0},TH.getAllEnabledRepertoireMoves(e).forEach(t=>{if(cz(o,e.side,t)){r.movesByMastery[e.id].new++;return}if(!t.srs)return;let n=cC.fromInterval(t.srs.interval);r.movesByMastery[e.id][n]++})}),r}),w=et(()=>{let[e]=i(e=>e),t=e.superRepertoires;if(!e.repertoires||!t)return e1();let n={...e.repertoires,...t};return{myResponsesLookup:Nu(n,e=>qa(Object.values(e.positionResponses)).filter(e=>e.mine)),epdNodes:Nu(n,e=>{let t={};return qa(Object.values(e.positionResponses)).flatMap(e=>[e.epd,e.epdAfter]).forEach(e=>{t[e]=!0}),t})}}),T=et(()=>{let[e]=i(e=>e),t=e.superRepertoires;if(!e.repertoires||!t)return $$();let n={...e.repertoires,...t};return{numResponses:Nu(e.repertoires,e=>qa(Object.values(e.positionResponses)).length),numMyEnabledMoves:Nu(n,e=>ru(qa(Object.values(e.positionResponses)),e=>e.mine&&!e.isDisabled).length),numResponsesAboveThreshold:Nu(e.repertoires,e=>qa(Object.values(e.positionResponses)).filter(e=>e.needed&&!e.isDisabled&&e.mine).length)}});return{get autoBookmarks(){return y()},autoFillBuilds:{},onCorrectGameMovesCallbacks:new AE,get superRepertoires(){return f.trackedValue()},lichessMistakes:null,moveAnnotations:{},courses:{},needsToRefetchLichessMistakes:!1,needsNewModelGame:!1,get numMovesFromEpd(){return v().numMovesFromEpd},get numMovesNeededFromEpd(){return v().numMovesNeededFromEpd},get movesFromEpd(){return v().movesFromEpd},get masteryFromEpd(){return S().masteryFromEpd},get masteryOverall(){return C().masteryOverall},get movesByMastery(){return C().movesByMastery},get numMovesDueFromEpd(){return S().numMovesDueFromEpd},get numLockedFromEpd(){return S().numLockedFromEpd},get lockedShareFromEpd(){return S().lockedShareFromEpd},startOnboarding:e=>{r(([t])=>{ZN(),t.onboarding.isOnboarding=!0,t.onboarding.autoplay=!0,e?.side&&(t.onboarding.side=e.side),Q().clearViews(),e?.courseId?(t.onboarding.courseId=e.courseId,Q().pushView(YZ)):Q().pushView(GZ)})},askAboutSourceOrEndOnboarding:()=>{r(([e])=>{Math.random()<.1?Q().pushView(uQ):Q().pushView($Z)})},get earliestReviewDueFromEpd(){return S().earliestReviewDueFromEpd},get earliestReviewDue(){return h().earliestReviewDue},get totalMovesDue(){return h().totalMovesDue},get expectedNumMovesFromEpd(){return v().expectedNumMovesFromEpd},epdIncidences:{white:{},black:{}},deleteMoveState:{modalOpen:!1,isDeletingMove:!1},get ecoCodes(){return s.trackedValue()},get ecoCodeLookup(){return c.trackedValue()},setEcoCodes:e=>{s.set(e),c.set(ju(e,e=>e.epd))},addedLineState:null,isUpdatingEloRange:!1,get repertoires(){return a.trackedValue()},setRepertoires:e=>{a.set(e)},mutateRepertoires:e=>{a.mutate(t=>{t&&e(t)})},touchRepertoires:()=>{a.touch()},get repertoiresList(){return m().repertoiresList},get homeProgressStates(){return b().progressStates},get lockedMoves(){return g()},get lichessMistakesVisible(){return x()},get startMasteryFromEpd(){return b().startMastery},browsingState:s$(e,t),modelGamesState:R$(),openingReportsState:z$(),reviewState:rH(),get repertoireGrades(){return o.trackedValue()},setRepertoireGrades:e=>{o.set(e)},mutateRepertoireGrades:e=>{o.mutate(e)},hasCompletedRepertoireInitialization:void 0,get positionReports(){return l.trackedValue()},setPositionReports:e=>{l.set(e)},mutatePositionReports:e=>{l.mutate(e)},isInitialLoadInProgress:!1,onboarding:{isOnboarding:!1,autoplay:!1,side:`white`,courseId:void 0},importedCourseId:void 0,currentLine:[],get epdNodes(){return w().epdNodes},get myResponsesLookup(){return w().myResponsesLookup},get numMyMoves(){return T().numMyEnabledMoves},get numMyEnabledMoves(){return T().numMyEnabledMoves},get numResponses(){return T().numResponses},get numResponsesAboveThreshold(){return T().numResponsesAboveThreshold},divergencePosition:void 0,divergenceIndex:void 0,getLastEcoCode:e=>i(([t])=>s1(e,t.ecoCodeLookup)),initState:()=>r(([e,t])=>
39{if(e.isInitialLoadInProgress)return;e.isInitialLoadInProgress=!0,e.setRepertoires(void 0),e.lichessMistakes=null;let i=t.userState.getFrontendSetting(`openingsTimeRange`).value,{homePromise:a,supplementaryPromise:o,mistakesPromise:s,dailyGamePromise:c,modelGameHistoryPromise:l}=f1(),u=()=>{c1(QS.post(`/api/v2/openings_report`,{timeRange:i}).then(({data:e})=>e)).then(e=>{e.ok&&r(([t])=>{t.openingReportsState.setOpeningsReportForTimeRange(i,e.value)},`initState.openings_report.apply`)})},d=a.then(e=>e.ok?(r(([t])=>{t.repertoireFetched(e.value.repertoire);let n=e.value.dailyReviews.map(e=>({epd:e.epd,correct:e.correct,side:e.side,date:e.date}));j6().setReviewsFromResponse(n)},`initState.home.apply_payload`),u(),!0):(n(e.error,{message:`Failed to load home data`}),!1));o.then(e=>{e.ok&&(r(([t])=>{t.setEcoCodes(e.value.ecoCodes)},`initState.supplementary.apply`),d.then(e=>{e&&r(([e])=>{e.updateActivePositionAfterSupplementaryLoad()},`initState.supplementary.active_position`)}))}),c.then(e=>{e.ok&&r(([t])=>{let n=e.value.game;t.modelGamesState.actions.setDailyGame(n?GR.fromDto(n):null)},`initState.daily_game.apply`)}),l.then(e=>{e.ok&&r(([t])=>{t.modelGamesState.actions.setHistory(mu(e.value.games,e=>GR.fromDto(e)))},`initState.model_game_history.apply`)}),Promise.all([a,s,d]).then(([e,t,n])=>{r(([i])=>{if(t.ok?i.lichessMistakes=t.value.mistakes:t.error.response?.status===401?(i.lichessMistakes=[],KS().then(e=>{r(([t,n])=>{n.userState.setUser(e)},`initState.fetchUserAfterMistakes401`)})):(i.lichessMistakes=[],console.warn(`[repertoire_state] Failed to load online game mistakes`,t.error)),n&&e.ok&&(t.ok&&t.value.repertoire&&i.repertoireFetched(t.value.repertoire),t.ok&&t.value.numC
39orrectMoves)){let e={initialDue:i.getTotalDue(),initialDate:i.getEarliestDue(),numCorrect:t.value.numCorrectMoves};i.onCorrectGameMovesCallbacks.call(e)}},`initState.mistakes.apply`)}),Promise.all([a,o,s,c,l]).finally(()=>{r(([e])=>{e.isInitialLoadInProgress=!1},`initState.finish`)})},`initState`),importIntoRepertoire:({pgn:e,repertoireId:t,siteGamesSource:n,studyChapterIds:i,studyId:a})=>QS.post(`/api/v2/openings/import`,{pgn:e,repertoireId:t,studyId:a,studyChapterIds:i,siteGamesSource:n}).then(e=>{let{data:n}=e;r(([e,r])=>{e.repertoireFetched(n),e.getNumResponsesBelowThreshold(r.repertoireState.getRepertoireThreshold(t??null),null)>10?Q().pushView(oQ):(vX(`right`),Q().clearViews(),Q().pushView(eQ))})}),analyzeMoveOnLichess:(e,t,n)=>r(([r])=>{let i=new FormData;i.append(`pgn`,` 40 [Variant "From Position"] 41 [FEN "${e}"] 42 43 ${n===`white`?`1.`:`1...`} ${t} 44 `);let a=window.open(`about:blank`,`_blank`);QS.post(`https://lichess.org/api/import`,i).then(({data:e})=>{let t=e.url;a.location=`${t}/${n}#999`})}),analyzeLineOnLichess:(e,t)=>r(([n])=>{if(H(e)){window.open(`https://lichess.org/analysis`,`_blank`);return}let r=t??mp.sideOfLastMove(e);window.open(`https://lichess.org/analysis/pgn/${e.join(`_`)}?color=${r}`,`_blank`)}),onMove:()=>r(([e])=>{},`onMove`),updateMove:(e,t)=>r(([n])=>QS.post(`/api/v1/openings/update_move`,{response:e,repertoireId:t}).then(({data:t})=>{Z(n=>{let r=new Set;r.add(e.epd),n.repertoireState.repertoireFetched(t,{keepPositionReports:r})})})),toggleMove:(e,t,n,i)=>r(([r])=>QS.post(`/api/v2/openings/toggle_move`,{response:e,disable:t,repertoireId:i,line:n}).then(({data:e})=>{Z(t=>{t.repertoireState.repertoireFetched(e)})})),updateRepertoireStructures:(e={})=>r(([t,n])=>{t.repertoires&&t.mutatePositionReports(n=>{Kl(t.repertoires,(t,r)=>{n[r]=e.keepPositionReports?Object.fromEntries(Object.entries(n[r]??{}).filter(([t])=>e.keepPositionReports.has(t))):{}})})},`updateRepertoireStructures`),getStandardAndSuperRepertoires:()=>i(([e])=>({...e.repertoires,...e.superRepertoires}),`getStandardAndSuperRepertoires`),trimRepertoire:(e,t)=>r(([n])=>QS.post(`/api/v2/openings/trim`,{threshold:e,repertoireIds:[t]}).then(({data:e})=>{r(([t])=>{t.repertoireFetched(e)})}).finally(Hi),`deleteMoveConfirmed`),autoFillRepertoire:(e,t,n,i=!1,a,o)=>r(([r])=>hN.call([`openings.autoFillRepertoire`,{buildId:n,repertoireId:e,stylePoints:t,highBudget:i,startEpd:a,startLine:o}]),`autoFillRepertoire`),startAutoFillBuild:e=>r(([t])=>{t.autoFillBuilds[e.buildId]={buildId:e.buildId,repertoireId:e.repertoireId,stylePoints:e.stylePoints,expectedMoves:Math.max(1,e.expectedMoves),initialMoves:t.numMyMoves[e.repertoireId]??0,movesAdded:0,totalMoves:t.numMyMoves[e.repertoireId]??0,candidateLines:[],openingUpdates:[],characteristics:null,outcome:null,isComplete:!1,isHydrated:!1,error:null},t.ensureAutoFillPolling()},`startAutoFillBuild`),syncAutoFillBuilds:()=>r(([e])=>hN.call([`openings.autoFillActiveBuilds`]).then(e=>{r(([t])=>{for(let n of e){let e=t.autoFillBuilds[n.buildId];if(!e){if(n.status!==`running`)continue;let e=Math.max(0,n.totalMoves-n.movesAdded),r=t.expectedNumMovesFromEpd[n.repertoireId]?.[fp];t.autoFillBuilds[n.buildId]={buildId:n.buildId,repertoireId:n.repertoireId,stylePoints:null,expectedMoves:r==null?Math.max(1,n.movesAdded*2):Math.max(1,r-e),initialMoves:e,movesAdded:n.movesAdded,totalMoves:n.totalMoves,candidateLines:[],openingUpdates:[],characteristics:null,outcome:null,isComplete:!1,isHydrated:!1,error:null};continue}e.isComplete||e.error||(e.movesAdded=Math.max(e.movesAdded,n.movesAdded),e.totalMoves=Math.max(e.totalMoves,n.totalMoves),n.status===`completed`&&n.outcome?(e.movesAdded=n.movesAdded,e.totalMoves=n.totalMoves,e.outcome=n.outcome,e.isComplete=!0,K(`repertoire.auto_fill_completed`,{via:`poll`}),t.awaitAutoFillHydration(e.buildId).catch(Hi)):n.status===`failed`&&(e.error=n.error??`Autofill failed`,K(`repertoire.auto_fill_failed`,{error:e.error,via:`poll`})))}t.ensureAutoFillPolling()})}).catch(Hi),`syncAutoFillBuilds`),ensureAutoFillPolling:()=>r(([e])=>{m1(e)&&p1===null&&(p1=window.setInterval(()=>{r(([e])=>{if(!m1(e)){p1!==null&&(window.clearInterval(p1),p1=null);return}e.syncAutoFillBuilds()})},3e3))},`ensureAutoFillPolling`),handleAutoFillWebsocketMessage:e=>r(([t])=>
44{if(typeof e==`object`){if(`AutoFillProgress`in e){let n=e.AutoFillProgress,r=t.autoFillBuilds[n.build_id];if(!r)return;if(r.movesAdded=Math.max(r.movesAdded,n.moves_added),r.totalMoves=Math.max(r.totalMoves,n.total_moves),n.candidate_lines.length>0){let e=new Set(r.candidateLines.map(e=>e.pgn));for(let t of n.candidate_lines)e.has(t.pgn)||(e.add(t.pgn),r.candidateLines.push(t))}if(n.opening_updates.length>0){let e=new Map(r.openingUpdates.map((e,t)=>[e.id,t]));for(let t of n.opening_updates){let n=e.get(t.id);if(n!==void 0){let e=r.openingUpdates[n];e.sans=t.sans,e.status=t.status}else e.set(t.id,r.openingUpdates.length),r.openingUpdates.push(t)}}n.characteristics&&(r.characteristics=n.characteristics);return}if(`AutoFillComplete`in e){let n=e.AutoFillComplete,r=t.autoFillBuilds[n.build_id];if(!r||r.isComplete||r.error)return;r.outcome={summary:n.summary,characteristics:n.characteristics},r.isComplete=!0,K(`repertoire.auto_fill_completed`,{via:`websocket`}),t.awaitAutoFillHydration(r.buildId).catch(Hi);return}if(`AutoFillError`in e){let n=e.AutoFillError,r=t.autoFillBuilds[n.build_id];if(!r||r.isComplete||r.error)return;r.error=n.message,K(`repertoire.auto_fill_failed`,{error:n.message,via:`websocket`})}}},`handleAutoFillWebsocketMessage`),addMoves:(e,t)=>i(([n])=>QS.post(`/api/v2/openings/add_moves`,{moves:e,repertoireId:t}).then(({data:e})=>(r(([t])=>{t.repertoireFetched(e)}),e))),deleteMove:(e,t)=>r(([n])=>(n.deleteMoveState.isDeletingMove=!0,QS.post(`/api/v2/openings/delete_move`,{response:e,repertoireId:t}).then(({data:e})=>{r(([t])=>{t.repertoireFetched(e)})}).finally(()=>{r(([e])=>{e.deleteMoveState.isDeletingMove=!1,e.deleteMoveState.response=null,e.deleteMoveState.modalOpen=!1,e.onRepertoireChange()})})),`deleteMoveConfirmed`),deleteRepertoire:e=>r(([t])=>{QS.post(`/api/v2/openings/delete`,{repertoireId:e}).then(({data:e})=>{r(([t])=>{t.repertoireFetched(e),t.onRepertoireChange()})}).catch(e=>{n(e,{message:`Deletion failed`,toast:!0})})},`deleteRepertoire`),getRepertoires:({side:e,includeSupers:t}={})=>i(([n])=>{if(!n.repertoires)return[];let r=t?n.getStandardAndSuperRepertoires():n.repertoires;return e===void 0?Su(r):ru(r,t=>t.side===e)}),getDefaultRepertoire:e=>i(([t])=>{if(t.repertoires)return su(t.repertoires,t=>t.side===e)}),exportPgn:(e,t)=>{r(([n])=>{let r=n.repertoires?.[e],i=(r.name||Eo(r.side)).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`),a=rP.default` 45 [Event "${i}"] 46 [Site "chessbook.com"] 47 [Round "N/A"] 48 [White "N/A"] 49 [Black "N/A"] 50 [Result "*"] 51 `;a+=` 52 53`;let o=new Set,s=n.lockedMoves,c=(i,l,u)=>{let[d,...f]=jd((n.repertoires[e]?.positionResponses[i]??[]).filter(e=>!(e.mine&&lz(s,r.side,e))),e=>-(e.incidence??0)),p=new Set(u);if(p.add(i),o.add(i),!d)return;let m=[...l,d.sanPlus];a=`${a}${v1(mp.toPgn(m))} `,Kl(f,e=>{if(p.has(e.epdAfter)||t===`trim`&&o.has(e.epdAfter))return;let n=[...l,e.sanPlus],r=new Set(p);if(r.add(e.epdAfter),a+=`(`,mp.sideOfLastMove(n)===`black`){let e=Math.floor(n.length/2);a+=`${e}... ${v1(mp.toPgn(n)).trim()} `}else a+=`${v1(mp.toPgn(n))} `;c(e.epdAfter,n,r),a=a.trim(),a+=`) `}),!p.has(d.epdAfter)&&(p.add(d.epdAfter),o.add(d.epdAfter),c(d.epdAfter,m,p))};c(fp,[],new Set),a=`${a.trim()} *`;let l=document.createElement(`a`),u=`${r.name}-${new Date().toISOString()}.pgn`;if(Ye)QN.share({text:a,filename:`${u}`}).catch(e=>{console.error(`[repertoire_state] Failed to share PGN via native share:`,e)});else{let e=new Blob([a],{type:`text`}),t=window.URL.createObjectURL(e);l.download=u,l.href=t,l.style.display=`none`,document.body.appendChild(l),l.click()}},`exportPgn`)},uploadMoveAnnotation:({epd:e,san:t,text:n,repertoireId:a})=>i(([i])=>QS.post(`/api/v1/openings/move_annotation`,{text:n,epd:e,san:t,repertoireId:a}).then(({data:i})=>{r(([r])=>{let o=r.browsingState.state.activeRepertoireId;o&&r.mutatePositionReports(r=>{r[o]?.[e]?.suggestedMoves?.forEach(e=>{e.sanPlus===t&&(e.annotation=n)})}),r.moveAnnotations[dV.toKey({epd:e,san:t})]??={},r.moveAnnotations[dV.toKey({epd:e,san:t})][a??`null`]=i,r.browsingState.actions.onPositionUpdate()})})),backToOverview:()=>r(([e,t])=>{QV(e.reviewState,Q().mode),e.reviewState.handles.entireLineOnceSessionSeenEpds.clear(),t.navigationState.push(`/`),Q().clearViews(),e.backToStartPosition(),e.browsingState.actions.reset(),e.browsingState.actions.setActiveRepertoire(void 0),e.divergencePosition=void 0,e.divergenceIndex=void 0,e.needsToRefetchLichessMistakes&&e.fetchLichessMistakes(),e.needsNewModelGame&&e.modelGamesState.actions.fetchDailyModelGame()}),hasMultipleRepertoires:e=>i(([t])=>e?ru(t.repertoires,t=>
53t.side===e).length>1:Dd(t.repertoires)>2),onRepertoireUpdate:(e={})=>r(([t,n])=>{t.updateRepertoireStructures(e),n.userState.flagEnabled(`repertoire_audit`)&&t.shouldMaterializeProjection(`audit-table`,e)&&(k6().buildQueue(),k6().updateTableResponses()),t.shouldMaterializeProjection(`browsing-progress`,e)&&t.browsingState.actions.updateRepertoireProgress(),t.shouldMaterializeProjection(`active-position`,e)&&(t.browsingState.actions.fetchNeededPositionReports(),t.fetchNeededAnnotations(),t.browsingState.actions.updateTableResponses()),t.needsToRefetchLichessMistakes=!0,t.reviewState.actions.dropPausedSession(),t.updateBadge(),t.shouldMaterializeProjection(`miss-eco-codes`,e)&&t.startProcessingMissEcoCodes()}),shouldMaterializeProjection:(e,t={})=>i(([n,r])=>t.forceProjections?.includes(e)?!0:H$(V$(r),e)),updateActivePositionAfterSupplementaryLoad:()=>r(([e,t])=>{let n=V$(t);H$(n,`review-position`)?e.reviewState.actions.onPositionUpdate():H$(n,`active-position`)&&e.browsingState.actions.onPositionUpdate()}),onMoveReviewed:()=>r(([e])=>{e.updateTotalMovesDue(),e.updateBadge()}),onGameMistakeReviewed:()=>r(([e])=>{e.updateBadge()}),getAnnotation:(e,t={})=>i(([n])=>{let r=n.moveAnnotations[e];return r?t.repertoireId?r[t.repertoireId]??r.null:r.null:null}),updateBadge:()=>r(([e])=>{let t=j6().getRemainingToday(Y().totalMovesDue??0),n=(e.lichessMistakes?.length??0)+t;(async()=>{(await KN.checkPermissions()).display===`granted`&&(Ye?KN.set({count:n}).then(()=>{}).catch(e=>{}):KN.clear().catch(e=>{}))})()}),updateTotalMovesDue:()=>i(([e])=>e.totalMovesDue),fetchNeededCourses:()=>r(([e])=>{let t=new Set;Kl(e.getRepertoires(),e=>{Kl(e.positionResponses,e=>{Kl(e,e=>{e.courseId&&t.add(e.courseId)})})}),Kl(Object.keys(e.courses),e=>{t.has(e)&&t.delete(e)}),!H(t)&&hN.call([`openings.courses.overviewByIds`,{ids:Array.from(t)}]).then(t=>{Kl(t,t=>{e.courses[t.id]=t})})}),fetchNeededAnnotations:()=>i(([e,t])=>{if(m1(e))return;let n=[];Kl([e.modelGamesState.state.dailyGame,e.modelGamesState.state.activeGame],e=>{e&&(n=n.concat(mu(Pd(Yd(e.epds,e.sans),20),([e,t])=>({epd:e,san:t}))))});let i=e.reviewState.state.activeQueue,a=e.reviewState.state.currentQuizGroup;[...a?[a]:[],...i??[]].forEach(e=>{wz.getMoves(e)?.forEach(e=>{n.push({epd:e.epd,san:e.sanPlus})})});let o=e.browsingState.derived.activeRepertoire();if(Q().mode===`build`&&o){let t=e.browsingState.handles.chessboard.getCurrentEpd(),r=e=>{n.push({epd:e.epd,san:e.sanPlus})};Kl(o.positionResponses[t],e=>{r(e),Kl(o.positionResponses[e.epdAfter],e=>{r(e)})})}e.browsingState.state.activeCourse.details&&qa(Su(e.browsingState.state.activeCourse.details.responses)).forEach(e=>{n.push({epd:e.epd,san:e.sanPlus})}),n=ru(n,t=>{let n=dV.toKey(t);return!(n in e.moveAnnotations)&&!d.has(n)}),Kl(n,e=>{d.add(dV.toKey(e))}),!H(n)&&hN.call([`openings.fetchPositionReportAndAnnotations`,{reports:[],keps:n}]).then(({annotations:e})=>{r(([t,n])=>{e.forEach(e=>{let n=dV.toKey({epd:e.epd,san:e.san});t.moveAnnotations[n]??={},t.moveAnnotations[n][e.repertoireId??`null`]=e})})}).catch(e=>{qn(Error(`Failed to fetch move annotations`,{cause:e}))}).finally(()=>{n.forEach(e=>{d.delete(dV.toKey(e))})})}),onRepertoireChange:()=>r(([e])=>{Q().invalidateSidebarPreviews(),e.needsNewModelGame=!0}),startProcessingMissEcoCodes:async()=>{let e=Y(),t=e.ecoCodeLookup,n=e=>{let t={};return Kl(e,e=>{Kl(Object.entries(e.biggestMisses),([e,n])=>{t[e]=n}),e.biggestMiss&&(t[e.biggestMiss.epd]=e.biggestMiss)}),t},i=n(e.repertoireGrades),a={},o=0;for(let[e,n]of Object.entries(i))if(!n.ecoCodeName&&n.ecoNames===void 0&&n.lines[0]){let r=s1(mp.toPositions(n.lines[0]),t);a[e]=r?kF.toEcoNames(r):null,o+=1,o%25==0&&await Y$()}o!==0&&r(([e])=>{e.mutateRepertoireGrades(e=>{let t=n(e);for(let[e,n]of Object.entries(t))e in a&&n.ecoNames===void 0&&(n.ecoNames=a[e])})})},fetchSupplementary:()=>r(([e])=>QS.get(`/api/v1/openings/supplementary`).then(({data:e})=>{r(([t])=>{t.setEcoCodes(e.ecoCodes),t.updateActivePositionAfterSupplementaryLoad(),t.shouldMaterializeProjection(`miss-eco-codes`)&&t.startProcessingMissEcoCodes()})})),fetchEcoCodes:()=>r(([e])=>{QS.get(`/api/v1/openings/eco_codes`).then(({data:e})=>{r(([t])=>{t.setEcoCodes(e)})})}),getEarliestDue:()=>i(([e])=>zu(ru(Nu(e.earliestReviewDueFromEpd,e=>e[`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -`]),e=>!Kt(e)),e=>e))??null,getTotalDue:()=>i(([e])=>e.totalMovesDue??0),getChessboard:()=>i(([e])=>Q().getActiveChessboard()),repertoireFetched:(e,t={})=>r(([n,r])=>{Q().invalidateSidebarPreviews(),n.setRepertoires(e.repertoires),n.setRepertoireGrades(e.grades),n.hasCompletedRepertoireInitialization=!0,n.fetchNeededCourses(),n.onRepertoireUpdate(t),n.getIsRepertoireEmpty()||(r.userState.pastLandingPage=!0),n.browsingState.state.activeRepertoireId&&!e.repertoires[n.browsingState.state.activeRepertoireId]&&n.backToOverview()}),fetchRepertoire:e=>r(([e,t])=>hN.call([`openings.fetchRepertoire`]).then(e=>{r(([t])=>{t.repertoireFetched(e)})})),awaitAutoFillHydration:e=>u.waitFor(e,async()=>{let t=await hN.call([`openings.fetchRepertoire`]);r(([n])=>{n.repertoireFetched(t);let r=n.autoFillBuilds[e];r&&(r.isHydrated=!0)})}),fetchHome:()=>r(()=>{hN.call([`home.fetchHome_v2`,{date:(0,RN.default)().format(`YYYY-MM-DD`)}]).then(e=>{r(([t])=>{t.repertoireFetched(e.repertoire);let n=e.dailyReviews.map(e=>({epd:e.epd,correct:e.correct,side:e.side,date:e.date}));
53j6().setReviewsFromResponse(n)})})}),getNumberOfMovesPastFreeTier:e=>i(([t])=>{if(!t.repertoires)return 0;let n=0,[r,i]=FF();return e===void 0?(t.numMyMoves.white>r&&(n+=t.numMyMoves.white-r),t.numMyMoves.black>r&&(n+=t.numMyMoves.black-r)):t.numMyMoves[e]>r&&(n=t.numMyMoves[e]-r),n}),pastFreeTier:(e,t)=>i(([n])=>{if(!n.repertoires)return!1;let[r,i]=FF(),a=0;return a=e===void 0?Math.max(n.numMyMoves.white??0,n.numMyMoves.black??0):n.numMyMoves?.[e]??0,a+(t??0)>r}),getNumResponsesBelowThreshold:(e,t)=>i(([e])=>e.repertoires?ru(t?TH.getAllEnabledRepertoireMoves(e.repertoires?.[t]):TH.getAllEnabledRepertoiresMoves(e.repertoires),e=>!e.needed&&e.mine).length:0),getIsRepertoireEmpty:e=>i(([t])=>t.repertoires?e?H(t.repertoires[e].positionResponses):tu(Nu(t.repertoires,e=>H(e.positionResponses))):!0),backToStartPosition:()=>r(([e])=>{if(Q().mode!==`review`){e.browsingState.handles.chessboard.resetPosition();return}}),getNearestMiss:(e,t)=>i(([n,r])=>{let i=Bl(t);return du(mu(t,t=>{let r=n.repertoireGrades[e.id]?.biggestMisses?.[t];if(r?.epd!==i)return r}))}),skipFirstPractice:()=>{r(e=>{QS.post(`/api/v1/openings/skip_first_practice`,{}).then(({data:e})=>{Z(t=>{t.repertoireState.repertoireFetched(e)})}).catch(e=>{console.error(`[repertoire_state] Failed to skip first practice:`,e)})})},setRepertoireThreshold:(e,t)=>r(([n])=>(n.mutateRepertoires(n=>{n[e].coverageTarget=t}),QS.post(`/api/v1/openings/update`,{coverageTarget:t,repertoireId:e}).then(({data:e})=>{Z(t=>{t.repertoireState.repertoireFetched(e)})}))),getRepertoireThreshold:e=>i(([t])=>{let n=J().getCurrentThreshold();if(!e)return n;let r=t.repertoires?.[e];return r?r.coverageTarget??n:n}),fetchLichessMistakes:()=>{r(([e,t])=>{let n=t.userState.user?.lichessUsername||t.userState.user?.chesscomUsername;e.lichessMistakes=null,e.needsToRefetchLichessMistakes=!1,n&&QS.get(`/api/v2/get_lichess_mistakes`).then(({data:e})=>{r(([t])=>{let{mistakes:n,repertoire:r,numCorrectMoves:i}=e,a=t.getTotalDue(),o=t.getEarliestDue();if(t.lichessMistakes=n,r&&t.repertoireFetched(r),i){let e={initialDue:a,initialDate:o,numCorrect:i};t.onCorrectGameMovesCallbacks.call(e)}})}).catch(e=>{(e?.response?.status||0)===401&&KS().then(e=>{r(([t,n])=>{n.userState.setUser(e)})})})})}}};function v1(e){let[t,n]=Bl(e.split(` `)).split(`.`);return n?`${t}. ${n}`:t}var y1=function(e){return e.Authenticated=`Authenticated`,e.Unauthenticated=`Unauthenticated`,e.Initial=`Initial`,e.Authenticating=`Authenticating`,e}({}),b1=e=>[e.userState,e],x1=`Lichess`,S1=1500,C1=(e,t)=>{let n=(t,n)=>e(e=>t(b1(e))),r=(t,n)=>e(e=>t(e.userState)),i=(e,n)=>t(t=>e(b1(t)));return{randomId:Math.random(),tempUserUuid:new nC(BN,void 0),puzzleStats:null,token:new nC(zN,void 0),isUpdatingEloRange:!1,handleAuthResponse:e=>{n(([t,n])=>{let{token:r,user:i,firstAuthentication:a}=e;a&&K(`login.first_login`),t.token.value=r,t.tempUserUuid.value=i?.id,t.setUser(i),t.authStatus=`Authenticated`,n.repertoireState.initState()})},loadAuthData:async()=>{try{let[e,t]=await Promise.all([J().token.load(),J().tempUserUuid.load()]);n(([n])=>{e||(n.authStatus=`Unauthenticated`),(!t||!fV.test(t))&&(n.tempUserUuid.value=pV())})}catch(e){return await Promise.reject(e)}},deleteAccount:()=>n(([e,t])=>QS.post(`/api/v1/user/delete_account`).then(()=>{n(([e])=>{e.logout()})})),logout:e=>{if(n(([t,n])=>{Ne.reset(),nr(null),jM(null),t.token.value=void 0,t.tempUserUuid.value=pV(),t.user=void 0,t.authStatus=`Unauthenticated`,e?.redirectHome&&(t.pastLandingPage=!1,n.ui.sidebarStack=[],n.ui.mode=`overview`),e?.redirectHome?(n.repertoireState.setRepertoires(void 0),n.repertoireState.lichessMistakes=null):(n.repertoireState.fetchRepertoire(!1),n.repertoireState.fetchLichessMistakes()),n.dailyReviewsState.clearReviews()}),e?.redirectHome){let e=i(([e,t])=>t.navigationState._navigate);e?e(`/login`,{replace:!0}):window.location.href=`${window.location.origin}/login`}},setUser:e=>{n(([t,n])=>{let r=t.user;t.user=e,nr({id:e.id,email:e.email??void 0}),Yn({"user.subscribed":String(e.subscribed),"user.admin":String(e.isAdmin),"user.temporary":String(e.temporary),"user.rating_range":e.ratingRange??`unset`,"user.rating_system":e.ratingSystem??`unset`}),wn(`user_preferences`,{coverage_target:e.missThreshold??null,computed_rating:e.eloRange??null,theme:e.theme??null,piece_set:e.pieceSet??null,beta_flags:ru(e.flags??[],e=>dN.some(t=>t.flag===e))}),(!r||e.missThreshold!==r.missThreshold||e.eloRange!==r.eloRange)&&n.repertoireState.updateRepertoireStructures()})},getBetaFlagsEnabled:()=>i(([e])=>{let t=dN.map(e=>e.flag);return ru(e.getEnabledFlags(),e=>t.includes(e))}),getEnabledFlags:()=>i(([e])=>ru([...new Set([...e.user?.flags??[],...Le?cN:[],...e.user?.isAdmin?sN:[],...uN])],e=>!lN.includes(e))),flagEnabled:e=>i(([t])=>t.getEnabledFlags().includes(e)),getCurrentStreak:()=>i(([e])=>{let t=e.user?.lastStreakDate;if(!t)return{currentStreak:0,gracePeriod:!1,renewedToday:!1};let n=(0,RN.default)(t);n=n.startOf(`day`);let r=(0,RN.default)().startOf(`day`).diff(n,`day`);if(r===2){let t=(0,RN.default)().startOf(`day`).add(1,`day`).startOf(`day`),n=Math.abs((0,RN.default)().diff(t,`hour`));return{currentStreak:e.user?.currentStreak??0,gracePeriod:!0,remainingHours:n,renewedToday:!1}}return r>2?{currentStreak:0,gracePeriod:!1,renewedToday:!1}:{currentStreak:e.user?.currentStreak??0,gracePeriod:!1,renewedToday:r<=0}}),getSingleElo:()=>i(([e,t])=>e.user?.singleElo??S1),getCurrentThreshold:()=>i(([e,t])=>(e.user?.missThreshold??.6666666666666667)/100),isSubscribed:()=>i(([e])=>e.user?.subscribed??!1),getUserRatingDescription:()=>i(([e])=>`${e.user?.ratingRange||h1.join(`-`)} ${e.user?.ratingSystem||x1}`),getFrontendSetting:e=>i(([t])=>{let n=f0[e],r=t.user?.frontendSettings?.[e]??n.defaultForElo?.(t.user?.singleElo??S1)??n.default;return f0[e].options.find(e=>e.value===r)||f0[e].options[0]}),updateUserSettings:e=>n(([t])=>{let{theme:r,pieceSet:i}=e;i&&(t.user.pieceSet=i),r&&(t.user.theme=r);let a=t.user?.frontendSettings;return e.frontendSettings&&t.user&&(t.user={...t.user,frontendSettings:e.frontendSettings}),HN(`user.settings`,()=>QS.post(`/api/v1/user/settings`,e)).onLatest(({data:e})=>{n(([t])=>{let n=t.user;t.setUser(n?{...e,ratingRange:n.ratingRange,ratingSystem:n.ratingSystem,missThreshold:n.missThreshold}:e)})}).onLatestError(()=>{n(([t])=>{e.frontendSettings&&t.user&&a&&(t.user={...t.user,frontendSettings:a})})}).settled()}),updateUserRatingSettings:e=>n(([t])=>
53(t.isUpdatingEloRange=!0,t.user&&={...t.user,...e.ratingRange!==void 0&&{ratingRange:e.ratingRange},...e.ratingSystem!==void 0&&{ratingSystem:e.ratingSystem},...e.missThreshold!==void 0&&{missThreshold:e.missThreshold}},HN(`user.rating_settings`,()=>QS.post(`/api/v1/user/elo_range`,e)).onLatest(({data:e})=>{n(([t,n])=>{t.setUser({...e,frontendSettings:t.user?.frontendSettings??e.frontendSettings}),n.repertoireState.setPositionReports({}),n.coursesState.courses=null,n.repertoireState.fetchHome(),n.repertoireState.shouldMaterializeProjection(`position-reports`)&&n.repertoireState.browsingState.actions.fetchNeededPositionReports()})}).onLatestSettled(()=>{n(([e,t])=>{e.isUpdatingEloRange=!1})}).settled())),createCheckoutLink:(e,t)=>i(([n])=>QS.post(`/api/stripe/create-checkout-session`,{annual:e,experiment:!1,trial:t?.trial,toltReferral:window.tolt_referral}).then(({data:e})=>e.url).finally(Hi)),setTargetDepth:e=>n(([t])=>(t.user.missThreshold=e*100,K(`user.update_coverage_target`,{target:`1 in ${Math.round(1/e)} games`}),t.updateUserRatingSettings({missThreshold:t.user.missThreshold}))),setDeviceToken:e=>n(([t])=>(K(`user.update_device_token`),t.updateUserSettings({iosDeviceToken:e}))),setRatingSystem:e=>n(([t])=>(K(`user.update_rating_system`,{rating_system:e}),t.user.ratingSystem=e,t.updateUserRatingSettings({ratingSystem:e}))),setRatingRange:e=>n(([t,n])=>(K(`user.update_rating_range`,{rating_range:e}),t.user.ratingRange=e,n.coursesState.clearCourses(),t.updateUserRatingSettings({ratingRange:e}))),isConnectedToExternal:()=>i(([e])=>!!(e.user?.lichessUsername||e.user?.chesscomUsername)),setChesscomUsername:e=>n(([t])=>t.updateUserSettings({chesscomUsername:e})),setLichessToken:(e,t,r)=>QS.post(`/api/set_lichess_token`,{token:e,username:t,scopes:r}).then(({data:e})=>{n(([t,n])=>{t.setUser(e),n.repertoireState.fetchLichessMistakes()})}).finally(Hi),authWithLichess:async e=>{let t=gp(64),n={...e,scopes:FN(we,i(([e])=>e.user?.lichessScopes??[]),e.scopes??[])},r=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(t)),a=btoa(String.fromCharCode(...new Uint8Array(r))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``);await Promise.all([tC.set({key:`lichess.code_verifier`,value:t}),tC.set({key:`lichess.state`,value:JSON.stringify(n)})]);let o=`https://lichess.org/oauth?${new URLSearchParams({client_id:WN,redirect_uri:GN,code_challenge:a,response_type:`code`,scope:n.scopes.join(` `),state:JSON.stringify(n),code_challenge_method:`S256`}).toString()}`;Ye?IN.openUrl({url:o}):window.location.href=o},setFlag:(e,t)=>{n(([n])=>(n.user.flags=n.user.flags.filter(t=>t!==e),t&&n.user.flags.push(e),n.updateUserSettings({flags:n.user.flags})))},fetchPuzzleStats:async()=>{let e=(await QS.get(`/api/v1/user/puzzle_stats`)).data;n(([t])=>{t.puzzleStats=e})},user:void 0,authStatus:`Initial`,...eC(r)}},w1=e=>e[0]<1800?1/150:1/200,T1=()=>{let e=J();return e.user?.isAdmin&&e.getFrontendSetting(`adminDebugMode`).value===u0.All},E1=l(`<input>`),D1=e=>{var t=E1();return t._$$input=t=>{e.setValue(t.currentTarget.value)},M(()=>({e:F(L(`field-surface outline-none rounded h-sidebar-button placeholder:text-gray-60`)),t:F(z(B.px(12),B.fontSize(14),e.style??{})),a:e.placeholder,o:e.value}),({e,t:n,a:r,o:i},a)=>{P(t,e,a?.e),w(t,n,a?.t),r!==a?.a&&C(t,`placeholder`,r),t.value=i??``}),t};ae([`input`]);var O1=Re(`Dialog`,{web:()=>ve(()=>import(`./web-CIOzn79R.js`).then(e=>new e.DialogWeb),__vite__mapDeps([23,4,1,2,5]),import.meta.url)}),k1=l(`<p>You will lose access to all your saved moves.`),A1=l(`<p>Your subscription will be cancelled automatically when your account is deleted.`),j1=l(`<p>Your subscription was purchased through the App Store, so deleting your account will NOT cancel it. Cancel it first in Settings â your Apple ID â Subscriptions on your device.`),M1=l(`<p>Your subscription was purchased through Google Play, so deleting your account will NOT cancel it. Cancel it first in the Play Store under Payments & subscriptions.`),N1=l(`<form>`),P1=xF({email:iF().required().test(`email-not-empty`,`Please enter your email`,e=>e!==``).test(`matches-user-email`,`Email does not match your account`,e=>e===``||e===J().user?.email)}),F1=()=>{let e=()=>J().user?.subscriptionSource,t=t=>{let n=e()===`stripe`;return Z(e=>{e.userState.deleteAccount().then(()=>{O1.alert({title:`Account deleted!`,message:n?`Your account has been deleted, your subscription has been cancelled, and
53you have been logged out.`:`Your account has been deleted and you have been logged out.`}).then(()=>{Z(e=>{Q().backOne()})})}).catch(e=>{i(e)})})},{form:n,setFields:r,errors:a,createSubmitHandler:o}=OF({initialValues:{email:``},onSubmit:t,extend:DF({schema:P1})}),s=o({onSubmit:t});return x($,{actions:[{onPress:()=>{s()},text:`Delete my account`,style:`primary`}],header:`Delete your account?`,bodyPadding:!0,loading:!1,get children(){return[(()=>{var e=k1();return M(()=>F(L(`text-secondary leading-5 pb-2`)),(t,n)=>{P(e,t,n)}),e})(),x(j,{get when(){return e()===`stripe`},get children(){var e=A1();return M(()=>F(L(`text-secondary leading-5 pb-2`)),(t,n)=>{P(e,t,n)}),e}}),x(j,{get when(){return e()===`ios`},get children(){var e=j1();return M(()=>F(L(`text-secondary leading-5 pb-2`)),(t,n)=>{P(e,t,n)}),e}}),x(j,{get when(){return e()===`android`},get children(){var e=M1();return M(()=>F(L(`text-secondary leading-5 pb-2`)),(t,n)=>{P(e,t,n)}),e}}),x(R,{between:[`body-text`,`form`]}),(()=>{var e=N1();return I(()=>n,e),N(e,x(lR,{label:`Type your email to confirm`,get placeholder(){return J().user?.email??`[email protected]`},name:`email`,setFields:r,get errors(){return a()}})),e})()]}})},I1=()=>x($,{actions:[{onPress:()=>{window.open(`${ZS}/privacy-policy.html`,`_blank`)},text:`View Privacy Policy`,style:`primary`},{onPress:()=>{window.open(`${ZS}/terms-and-conditions.html`,`_blank`)},text:`View Terms of Use`,style:`primary`}],header:`Privacy Policy and Terms of Use`,bodyPadding:!0}),L1=l(`<div class="row items-center text-tertiary font-semibold pb-4 text-xs text-right padding-sidebar"><div class="block grow text-left glyph-trim-both">Depth</div><div class="block w-26 lg:w-32 mr-6 shrink-0 glyph-trim-both">Coverage goal</div><div class="block w-16 md:w-30 shrink-0 text-left glyph-trim-both">Study time</div><i class="fa fa-check invisible shrink-0 h-0">`),R1=l(`<div>`),z1=l(`<div class="row items-center"><div class="grow whitespace-nowrap text-sm"></div><div class="w-26 lg:w-32 mr-6 text-xs text-right"></div><div class="w-16 md:w-30 shrink-0 h-1 rounded overflow-hidden"><div class="bg-purple-60 h-full rounded">`),B1=l(`<p>Your openings will be complete when you have a response to all moves youâll see in at least <b> games</b> at your level`),V1=l(`<p>You'll need to add around <b> moves</b> to get to 100%`),H1=l(`<b>`),U1=l(`<div class="col gap-2 padding-sidebar">`),W1=l(`<p class="body-text padding-sidebar">`),G1=l(`<p class="text-sm text-secondary">`),K1=l(`<div class="flex flex-col gap-1"><!><!>`),q1=l(`<div class="flex row space-x-2 md:space-x-4"><!><!>`),J1=l(`<div class="row w-full justify-center">`),Y1=l(`<div><!><!>`),X1=l(`<p class="text-secondary text-xs">`),Z1=e=>{let t=()=>e.repertoireId?Y().repertoires?.[e.repertoireId]:null,n=()=>Y().getRepertoireThreshold(e.repertoireId??null),r=()=>su(gM,e=>VL(e.value,n())),i=t=>{Z(n=>{e.repertoireId?n.repertoireState.setRepertoireThreshold(e.repertoireId,t?.value??null):t&&n.userState.setTargetDepth(t.value)})},[a,c]=o(!1),l=ie(n),u=()=>{let e=Sc(gM).filter(e=>!e.legacy||VL(e.value,l));return a()?e:e.filter(e=>!e.hidden)},d=e=>vM(1,e,`white`,J().getSingleElo()),f=()=>d(Bl(u()).value),p=()=>[{onPress:()=>{c(!a())},text:a()?`Hide`:`Show more`}];return x($,{actions:[],header:`How much do you want to learn?`,get headerGap(){return ON()?32:36},get children(){return[(()=>{var e=L1(),t=e.firstChild.nextSibling.nextSibling.nextSibling;return N(e,x(R,{width:16}),t),e})(),x(oZ,{description:void 0,get choices(){return u()},get activeChoice(){return r()},onSelect:i,equality:(e,t)=>t?VL(e.value,t.value):!1,renderChoice:(e,t)=>{let n=d(e.value);var r=z1(),i=r.firstChild,a=i.nextSibling,o=a.nextSibling,c=o.firstChild;return N(i,(()=>{var t=A(()=>!!(ON()&&e.name.includes(`Tournament`)));return()=>t()?`Tournament`:e.name})()),I(()=>t=>{vE({ref:t,maxWidth:200,content:()=>(()=>{var t=B1(),n=t.firstChild.nextSibling,r=n.firstChild;return N(n,()=>OM(e.value),r),t})()})},a),N(a,()=>`1 in ${Math.round(1/e.value)} games`),I(()=>e=>{vE({ref:e,maxWidth:200,content:()=>(()=>{var e=V1(),t=e.firstChild.nextSibling,r=t.firstChild;return N(t,()=>Math.round(n/20)*20,r),e})()})},o),M(()=>`${n/f()*100}%`,e=>{s(c,`width`,e)}),r}}),(()=>{var e=R1();return N(e,x(b,{get each(){return p()},children:e=>x(zU,{onPress:t=>{t.stopPropagation(),e.onPress()},get children(){return x(V,{get style(){return z(B.fontSize(12),B.weightSemiBold)},class:`block glyph-trim-both text-tertiary hover-fine:text-primary transition-colors`,get children(){return e.text}})}})})),M(()=>F(L(`row items-center space-x-4 padding-sidebar`,rt?`pt-4`:`pt-3`)),(t,n)=>{P(e,t,n)}),e})(),x(j,{get when(){return t()?.coverageTarget},get children(){return[x(R,{between:[`table`,`actions`]}),x(H6,{actions:[{style:`secondary`,onPress:()=>{i(null)},text:`Reset to account setting`}
53]})]}})]}})},Q1=()=>x($,{actions:[],header:`Your rating`,bodyPadding:!1,get children(){return[x(V,{class:`body-text padding-sidebar`,children:`This is used to determine which moves your opponents are likely to play.`}),x(xZ,{})]}}),$1=()=>{let e=()=>q().userState?.user;return x($,{header:`Board appearance`,actions:[],get children(){return x(oZ,{get choices(){return MN.map(e=>e.boardTheme)},get activeChoice(){return e()?.theme??`default`},onSelect:e=>{Z(t=>{let n=su(MN,t=>t.boardTheme===e);t.userState.updateUserSettings({theme:n.boardTheme,pieceSet:n.pieceSet})})},renderChoice:e=>{let t=su(MN,t=>t.boardTheme===e);var n=R1();return N(n,x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14))},get children(){return t.name}})),M(()=>F(z(B.row)),(e,t)=>{w(n,e,t)}),n}})}})},e0=()=>{let e=()=>q().userState,t=dN;return x($,{header:`Beta features`,actions:[],get children(){return x(H6,{get actions(){return t.map(t=>{let n=()=>e().flagEnabled(t.flag);return{text:t.name,style:n()?`focus`:`primary`,right:n()?`Enabled`:`Disabled`,subtext:t.description,onPress:()=>{Z(e=>{K(`user_flag_toggle`,{flag:t.flag}),e.userState.setFlag(t.flag,!n())})}}})}})}})},t0=()=>{let e=_(ZM,{loadingValue:void 0}),[t,n]=o(``),r=t=>{(async()=>{try{await QM(t),mn(`OTA channel set to ${FM(t)}`)}catch(e){mn.error(e.message)}finally{k(e)}})()};return x($,{header:`OTA update channel`,actions:[],bodyPadding:!0,get children(){return[x(V,{class:`text-secondary`,get children(){return[`Bundles are served from this channel (plus production, whichever is newest). Current channel: `,(()=>{var t=H1();return N(t,()=>ge(e)??`(loading)`),t})()]}}),x(R,{between:[`body-text`,`form`]}),x(oZ,{choices:[`production`,`staging`],get activeChoice(){return ge(e)},onSelect:e=>r(e),renderChoice:e=>x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14))},children:e})}),x(R,{height:12}),(()=>{var e=U1();return N(e,x(D1,{get value(){return t()},setValue:n,placeholder:`custom-channel`,onKeyDown:e=>{e.key===`Enter`&&t().trim()&&r(t())}})),e})(),x(R,{height:12}),x(V6,{action:{style:`primary`,text:`Set custom channel`,onPress:()=>{if(!t().trim()){mn.error(`Enter a channel name first`);return}r(t())}}})]}})},n0=e=>{let t=()=>q().userState.getFrontendSetting(e.setting.key),n=ru(e.setting.options,e=>!e.hidden||e.value===t().value);return x($,{get header(){return e.setting.title},actions:[],get children(){return[x(j,{get when(){return e.setting.description},children:e=>[x(b,{get each(){return A(()=>!!Array.isArray(e()))()?e():[e()]},children:(e,t)=>[x(j,{get when(){return t()>0},get children(){return x(R,{between:[`body-text`,`body-text`]})}}),(()=>{var t=W1();return N(t,e),t})()]}),x(R,{between:[`body-text`,`actions`]})]}),x(oZ,{choices:n,get activeChoice(){return t()},shrink:`left`,onSelect:t=>{Z(n=>{let r=n.userState.user;if(!r)return;let i={...r.frontendSettings,[e.setting.key]:t.value};n.userState.updateUserSettings({frontendSettings:i}).then(()=>{K(`frontend_setting.${e.setting.key}.change`,{value:t.value}),kM({[`frontend_setting.${e.setting.key}`]:t.value}),e.onChange?.(t.value)}).catch(()=>{})})},equality:(e,t)=>e.value===t?.value,renderChoice:e=>{var t=K1(),n=t.firstChild,r=n.nextSibling;return N(t,x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14))},get children(){return e.label}}),n),N(t,x(j,{get when(){return e.description},get children(){var t=G1();return N(t,()=>e.description),t}}),r),t}})]}})},r0=()=>{let e=()=>J().user,t=()=>J().authStatus,n=()=>t()===y1.Unauthenticated||t()===y1.Authenticated&&e()?.temporary,[r,i]=o(!1),[s,c]=o(!1),l=_(()=>Ye?aN():null,{loadingValue:null}),u=()=>q().userState,d=()=>u().user?.theme,f=()=>su(MN,e=>e.boardTheme===d())||NN.default,p=()=>{let t=[];return t.push({title:null,actions:[{hidden:!Ge,onPress:()=>{Z(e=>{K(`home.settings.rating`),Q().pushView(Q1)})},text:`Your rating`,right:u().user?.ratingRange?`${_Z()??u().user?.ratingRange} ${u().user?.ratingSystem}`:`Unset`,style:`secondary`},{hidden:!Ge,onPress:()=>{Z(e=>{K(`home.settings.coverage`),Q().pushView(Z1)})},text:`Cover positions seen in`,right:`1 in ${Math.round(1/u().getCurrentThreshold())} games`,style:`secondary`},{onPress:()=>{Z(e=>{Q().pushView(PX)})},text:`Connected to`,right:(()=>{var e=q1(),t=e.firstChild,n=t.nextSibling;return N(e,x(IX,{text:`Lichess`,get connected(){return!!u().user?.lichessUsername}}),t),N(e,x(IX,{text:`Chess.com`,get connected(){return!!u().user?.chesscomUsername}}),n),e})(),style:`secondary`},{hidden:!Ge,...p0(f0.modelGamesSource,()=>{Z(e=>{e.repertoireState.modelGamesState.actions.fetchDailyModelGame({forceNewGame:!0})})})}
53,{hidden:!Ge||n()||!(Ye||Le),...p0(f0.mistakeNotifications)}]}),t.push({title:`Training Game settings`,hidden:!Ge||!J().flagEnabled(`training_games`),actions:[p0(f0.trainingGameTimeControl)]}),t.push({title:`Review settings`,hidden:!Ge,actions:[{onPress:()=>{Z(e=>{K(`home.settings.reviewStyle`),Q().pushView(n0,{props:{setting:f0.reviewStyle}})})},text:f0.reviewStyle.title,right:u().getFrontendSetting(`reviewStyle`).label,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.settings.recommended_moves_size`),Q().pushView(n0,{props:{setting:f0.recommendedMovesSize}})})},text:f0.recommendedMovesSize.title,right:u().getFrontendSetting(`recommendedMovesSize`).label,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.settings.reviewPauseBehavior`),Q().pushView(n0,{props:{setting:f0.reviewPauseBehavior}})})},text:f0.reviewPauseBehavior.title,right:u().getFrontendSetting(`reviewPauseBehavior`).label,style:`secondary`}]}),t.push({title:`Board settings`,actions:[{onPress:()=>{Z(e=>{K(`home.settings.theme`),Q().pushView($1)})},text:`Appearance`,right:`${To(f().name)}`,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.settings.pieceAnimationSpeed`),Q().pushView(n0,{props:{setting:f0.pieceAnimation}})})},text:f0.pieceAnimation.title,right:u().getFrontendSetting(`pieceAnimation`).label,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.settings.sounds`),Q().pushView(n0,{props:{setting:f0.sound}})})},text:f0.sound.title,right:u().getFrontendSetting(`sound`).label,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.settings.haptics`),Q().pushView(n0,{props:{setting:f0.haptics}})})},text:f0.haptics.title,right:u().getFrontendSetting(`haptics`).label,style:`secondary`}]}),t.push({title:`Subscription`,hidden:u().user?.subscribed&&Ye||!Ge,actions:[{onPress:()=>{Z(e=>{if(!u().isSubscribed())K(`home.settings.subscribe`),Q().pushView(mL);else return K(`home.settings.manage_subscription`),QS.post(`/api/stripe/create-billing-portal-link`).then(({data:e})=>{window.open(e.url,`_blank`)||(window.location.href=e.url)}).finally(Hi)})},text:u().isSubscribed()?`Manage your subscription`:`Upgrade to add unlimited moves`,right:u().isSubscribed()?`Subscribed`:null,style:`secondary`},{onPress:()=>{(async()=>{if(await ve(()=>import(`./store-BjMOI2DU.js`),[],import.meta.url),i(!0),K(`settings.restore_purchases`),await CdvPurchase.store.restorePurchases()){i(!1),mn.error(`Failed to restore purchases`);return}mn(`Restoring purchases`);let e=t=>{let n=DN([t]);if(!n){mn(`No purchases found`),i(!1),bN.remove(e);return}QS.post(`/api/apple/restore-purchases`,{transactionId:n}).then(({data:e})=>{e?.user&&Z(t=>{t.userState.handleAuthResponse(e)}),i(!1),Z(e=>{e.repertoireState.backToOverview()}),mn.success(`Purchases restored`)}).catch(()=>{mn.error(`Failed to restore purchases`)}),bN.remove(e)};bN.add(e)})()},hidden:!Ke,text:`Restore purchases`,style:`secondary`}]}),t.push({title:`Account`,actions:[...Ye?[{onPress:()=>{Z(e=>{K(`home.privacy_and_terms`),Q().pushView(I1)})},text:`Privacy Policy / Terms of Use`,style:`secondary`}]:[],...e()?.email?[{onPress:()=>{Z(e=>{K(`home.delete_account`),Q().pushView(F1)})},text:`Delete your account`,style:`secondary`}]:[],...e()?.isAdmin?[p0(f0.adminStockfish,e=>{HO(e===HE.Enabled)}),p0(f0.adminPerformanceHud),p0(f0.adminDebugMode)]:[],...u().flagEnabled(`affiliate`)?[{onPress:async()=>{if(confirm(`This will delete all your repertoires and review history, and reset your settings. Are you sure?`)){i(!0);try{await hN.call([`admin.resetToAdReady`]),mn.success(`Account reset to ad-ready state`),setTimeout(()=>{window.location.reload()},1e3)}catch(e){mn.error(`Failed to reset account: ${e.message}`),i(!1)}}},text:`Reset to ad-ready`,style:`secondary`}]:[]]}),t.push({title:`OTA updates`,hidden:!Ye||!e()?.isAdmin,actions:[{style:`secondary`,static:!0,text:`App environment`,right:Ye?`${RS} (${XS})`:`Not running in native`},{style:`secondary`,static:!0,text:`Native fingerprint`,right:Ye?ge(l)?.fingerprint??`(loading)`:`Not running in native`},{style:`secondary`,static:!0,text:`Current bundle`,right:Ye?ge(l)?.currentBundle??`(unknown)`:`Not running in native`},...e()?.isAdmin?[{style:`secondary`,testId:`ota-channel-switch`,onPress:()=>
53{if(!Ye){mn(`OTA channels only apply in the native app`);return}Z(e=>{Q().pushView(t0)})},text:`Update channel`,right:Ye?ge(l)?.channel??`(loading)`:`-`}]:[],{style:`secondary`,onPress:()=>{(async()=>{if(!Ye){mn(`OTA checks only run in the native app`);return}if(!s()){c(!0);try{mn(`Checking for updates...`),await oN()}catch(e){mn.error(`OTA check failed: ${e.message}`)}finally{c(!1),k(l)}}})()},text:`Check for OTA updates`,right:s()?`Checking...`:void 0}]}),!Ke&&dN.length>0&&t.push({title:`Experimental`,hidden:!Ge,actions:[{onPress:()=>{Z(e=>{K(`home.settings.beta_features`),Q().pushView(e0)})},text:`Beta features`,right:`${(u().getBetaFlagsEnabled()?.length??0)>0?`${u().getBetaFlagsEnabled()?.length} enabled`:`None enabled`}`,style:`secondary`}]}),t.filter(e=>!e.hidden)};return x($,{bodyPadding:!1,header:`Settings`,actions:[],get children(){return[x(j,{get when(){return r()},get children(){var e=J1();return N(e,x(Ni,{})),e}}),x(j,{get when(){return!r()},get children(){return[x(BU,{each:p,separator:()=>x(R,{between:[`actions`,`actions`]}),children:e=>{var t=Y1(),n=t.firstChild,r=n.nextSibling;return N(t,x(j,{get when(){return e().title},get children(){return x(W6,{get text(){return e().title}})}}),n),N(t,x(H6,{get actions(){return e().actions}}),r),t}}),x(R,{height:48}),x(v,{get children(){return x(a,{get when(){return!n()},get children(){return x(V6,{get action(){return{text:`Log out`,right:(()=>{var t=X1();return N(t,()=>e().email),t})(),style:`primary`,onPress:()=>{Z(e=>{K(`top_buttons.log_out.clicked`),e.userState.logout({redirectHome:!0})})}}}})}})}})]}})]}})},i0=function(e){return e.Disabled=`disabled`,e.Enabled=`enabled`,e}({}),a0=function(e){return e.DebugSlow=`debug-slow`,e.Disabled=`disabled`,e.Slow=`slow`,e.Normal=`normal`,e.Fast=`fast`,e.VeryFast=`very-fast`,e.None=`none`,e}({}),o0=function(e){return e.EntireLineOnce=`Entire line`,e.EntireLineEvery=`Entire line - every time`,e.Selective=`Selective`,e}({}),s0=function(e){return e.Enabled=`enabled`,e.Muted=`muted`,e}({}),c0=function(e){return e.Enabled=`enabled`,e.Muted=`muted`,e}({}),l0=function(e){return e.PauseOnFail=`pause-on-fail`,e.PauseOnLowScore=`pause-on-low-score`,e.AlwaysPause=`always-pause`,e}({}),u0=function(e){return e.None=`none`,e.All=`all`,e}({}),d0=function(e){return e.Never=`never`,e.Always=`always`,e.WhenWrong=`when-wrong`,e.WhenAnnotation=`when-annotation`,e}({}),f0={mistakeNotifications:{default:`enabled`,key:`mistakeNotifications`,title:`Mistake notifications`,description:`Get notified after your games when you make a mistake or play the correct moves.`,options:[{value:`enabled`,label:`Enabled`},{value:`disabled`,label:`Disabled`}]},adminDebugMode:{default:`none`,key:`adminDebugMode`,title:`Admin debug views`,options:[{value:`none`,label:`Off`},{value:`all`,label:`On`}]},adminPerformanceHud:{default:i0.Disabled,key:`adminPerformanceHud`,title:`Performance HUD`,description:`Show live frame pacing and Stockfish diagnostics over the app.`,options:[{value:i0.Disabled,label:`Off`},{value:i0.Enabled,label:`On`}]},adminStockfish:{default:HE.Enabled,key:`adminStockfish`,title:`Stockfish`,description:`Disable all local Stockfish engine work for performance testing.`,options:[{value:HE.Enabled,label:`Enabled`},{value:HE.Disabled,label:`Disabled`}]},openingsTimeRange:{default:`90d`,key:`openingsTimeRange`,title:`Time period`,options:[{value:`30d`,label:`Last 30 days`},{value:`90d`,label:`Last 90 days`}]},pieceAnimation:{default:`normal`,defaultForElo:e=>e<1600?`normal`:`fast`,key:`pieceAnimation`,title:`Piece animation`,options:[{value:`slow`,label:`Slow`},{value:`normal`,label:`Normal`},{value:`fast`,label:`Fast`},{value:`very-fast`,label:`Very fast`},{value:`disabled`,label:`Disabled`}]},reviewStyle:{default:`Selective`,key:`reviewStyle`,title:`Practice`,options:[{value:`Selective`,label:`Individual moves`},{value:`Entire line - every time`,label:`Complete lines (every time)`},{value:`Entire line`,label:`Complete lines (once per session)`}]},recommendedMovesSize:{default:`10`,key:`recommendedMovesSize`,title:`Daily practice goal`,description:`This is the number of moves that will be in each daily practice session, as well as the number of moves in a batch of recommended moves review.`,options:[{value:`10`,label:`10 moves`},{value:`20`,label:`20 moves`},{value:`25`,label:`25 moves`,hidden:!0},{value:`50`,label:`50 moves`}]},modelGamesSource:{default:`all`,key:`modelGamesSource`,title:`Model games source`,description:[`Master games are from over-the-board tournaments and feature the strongest resistance and most accurate play.`,`Online games are lower quality but illustrate how to punish common mistakes.`,`Both sources feature instructive games where your side makes no significant mistakes and wins decisively.`],options:[{value:`lichess`,label:`High-level online games`},{value:`masters`,label:`Master games`},{value:`all`,label:`Online and master games`}]},trainerPauseBehavior:{default:`pause-on-low-score`,key:`trainerPauseBehavior`,title:`Pause behavior`,options:[{value:`pause-on-fail`,label:`Pause on fail`,description:`Only failed puzzles pause`}
53,{value:`pause-on-low-score`,label:`Pause on low score`,description:`Failed puzzles and passes scoring under 50 pause`},{value:`always-pause`,label:`Always pause`,description:`Every puzzle waits for you before moving on`}]},sound:{default:`enabled`,key:`sound`,title:`Sound effects`,options:[{value:`muted`,label:`Disabled`},{value:`enabled`,label:`Enabled`}]},haptics:{default:`enabled`,key:`haptics`,title:`Haptics`,options:[{value:`muted`,label:`Disabled`},{value:`enabled`,label:`Enabled`}]},reviewPauseBehavior:{default:`never`,key:`reviewPauseBehavior`,title:`Pause after playing a move`,options:[{value:`never`,label:`Never`},{value:`always`,label:`Always`},{value:`when-wrong`,label:`When you get it wrong`},{value:`when-annotation`,label:`When there's a note`}]},timeControl:{default:`blitz`,key:`timeControl`,title:`Time control`,options:[{value:`blitz`,label:`Blitz`},{value:`rapid`,label:`Rapid`},{value:`classical`,label:`Classical`}]},trainingGameTimeControl:{default:`3+2`,key:`trainingGameTimeControl`,title:`Time control`,description:`Minutes per side plus seconds added per move`,options:[`1+0`,`3+0`,`3+2`,`5+3`,`10+5`,`15+10`].map(e=>({value:e,label:e}))}},p0=(e,t)=>({onPress:()=>{Z(n=>{K(`settings.${e.key}.clicked`),Q().pushView(n0,{props:{setting:f0[e.key],onChange:t}})})},text:e.title,right:J().getFrontendSetting(e.key).label,style:`secondary`}),m0=e=>{switch(e){case`debug-slow`:return dM.DebugSlow;case`slow`:return dM.Slow;case`normal`:return dM.Normal;case`fast`:return dM.Fast;case`very-fast`:case`disabled`:return dM.Ludicrous}return dM.Fast};function h0(e){return e.pointerType===`mouse`}function g0(e){return e.button===0&&h0(e)}var _0={SQUARES:1,HIGHLIGHT:2,ARROW_ORIGINS:3,OPPONENT_PIECES:4,PIECES:5,HIGHLIGHT_AVAILABLE_MOVES:6,ARROWS_UNDERNEATH:7,ARROWS:8,VIZ_DOT:9,PIECES_PRIORITY:10,BORDER_RING:11,FEEDBACK:12,FEEDBACK_LARGE:13},v0=Qd,y0=[`w`,`b`],b0=[`p`,`n`,`b`,`r`,`q`,`k`],x0=(e,t,n)=>`/pieces/${e}/${t}${n.toUpperCase()}.svg`,S0=new Map,C0=e=>{if(!e||typeof Image>`u`)return Promise.resolve();let t=[];for(let n of y0)for(let r of b0){let i=x0(e,n,r);if(S0.has(i))continue;let a=new Image;a.decoding=`async`,a.src=i;let o=(typeof a.decode==`function`?a.decode():Promise.resolve()).catch(()=>void 0).then(()=>{S0.set(i,a)});t.push(o)}return Promise.all(t).then(()=>void 0)},w0=e=>{let t={};for(let n of v0){let r=e.get(n);r&&(t[n]={color:r.color,type:r.type})}return t},T0=e=>e.captured?e.flags?.includes(`e`)?`${e.to[0]}${e.from[1]}`:e.to:null,E0=(e,t)=>{let n=ap.indexOf(e[0]??``),r=op.indexOf(Number.parseInt(e[1]??``,10)),i=ap.indexOf(t[0]??``),a=op.indexOf(Number.parseInt(t[1]??``,10));return Math.abs(n-i)+Math.abs(r-a)},D0=(e,t)=>{let n=ap.indexOf(e[0]??``),r=op.indexOf(Number.parseInt(e[1]??``,10));return{file:t?7-n:n,rank:t?r:7-r}},O0=(e,t)=>{let{file:n,rank:r}=D0(e,t);return{left:`${n*12.5}%`,top:`${r*12.5}%`}},k0=(e,t,n,r=null)=>{let i=D0(e,n),a=D0(t,n),o=i.file-a.file,s=i.rank-a.rank;return r&&r>0?`translate3d(${o*r}px, ${s*r}px, 0px)`:`translate3d(${o*100}%, ${s*100}%, 0px)`},A0=(e,t)=>{let n=new Set,r=new Set,i=[],a=[];for(let a of e){let e=t[a.square];e&&e.color===a.color&&e.type===a.type&&(i.push({id:a.id,color:a.color,type:a.type,from:a.square,to:a.square}),n.add(a.id),r.add(a.square))}let o=Object.keys(t).filter(e=>!r.has(e));for(let i of o){let o=t[i];if(!o)continue;let s=null,c=null,l=1/0;for(let t of e){if(n.has(t.id)||t.color!==o.color||t.type!==o.type)continue;let e=E0(t.square,i);e<l&&(l=e,s=t.id,c=t.square)}s!==null&&c&&(a.push({id:s,color:o.color,type:o.type,from:c,to:i}),n.add(s),r.add(i))}return{stay:i,move:a,add:Object.entries(t).filter(([e])=>!r.has(e)).map(([e,t])=>({...t,square:e})),remove:e.filter(e=>!n.has(e.id)).map(e=>e.id)}},j0=e=>{e.el?.remove(),e.el=null,e.inner=null,e.img=null},M0=e=>{e.inner&&(e.inner.style.transition=`transform 0.1s`,e.inner.style.transform=``)},N0=(e,t,n)=>{if(n)return _0.PIECES_PRIORITY;let r=!t;return e===`w`&&r||e===`b`&&!r?_0.PIECES:_0.OPPONENT_PIECES},P0=()=>{let e={},t=null,n=!1,r=!1,i=``,a=1,o=[],s=[],c=[],l=!1,u=0,d=null,f=null,p=null,m=!1,h=0,g=null,_=()=>{let e={};for(let t of o)e[t.square]={color:t.color,type:t.type};return e},v=()=>{for(let t of Object.keys(e))delete e[t];for(let t of o)t.el&&(e[t.square]=t.el)},y=e=>{if(!e.el)return;let t=O0(e.square,n);e.el.style.left=t.left,e.el.style.top=t.top,e.el.style.transform=`none`,e.el.style.transition=``,e.el.style.willChange=``},b=()=>{if(!t)return;let e=t.clientWidth/8;e>0&&(h=e)},x=(e,t)=>{e.el&&(e.el.style.zIndex=String(N0(e.color,n,t)))},S=e=>{e.el&&(e.el.id=`piece-${e.square}`,r?e.el.dataset.testid=`piece-${e.square}
53`:delete e.el.dataset.testid)},C=e=>{if(!e.img||!i)return;let t=x0(i,e.color,e.type);e.img.getAttribute(`src`)!==t&&(e.img.src=t)},w=e=>{if(!t)return;let n=document.createElement(`div`);n.className=`absolute pointer-events-none`,n.style.width=`12.5%`,n.style.height=`12.5%`;let r=document.createElement(`div`);r.className=`h-full w-full`,r.style.transformOrigin=`bottom center`;let a=document.createElement(`img`);a.alt=``,a.draggable=!1,a.className=`h-full w-full`,a.style.pointerEvents=`none`,i&&(a.src=x0(i,e.color,e.type)),r.appendChild(a),n.appendChild(r),e.el=n,e.inner=r,e.img=a,S(e),x(e,!1),y(e),t.appendChild(n)},T=()=>{let e=c.splice(0);for(let t of e)t()},E=()=>{let e=d?[d,...s]:s.slice();s.length=0,d=null,l=!1;for(let t of e)t.opts.onComplete?.(!1)},D=()=>{p&&(M0(p),x(p,!1),p.el&&(p.el.style.transform=`none`,p.el.style.willChange=``)),p=null,m=!1},ee=(e,t,n,r,i)=>(e.style.transition=`none`,e.style.opacity=String(t),r<=0?(e.style.opacity=String(n),Promise.resolve()):new Promise(t=>{let a=!1,o=()=>{a||(a=!0,e.style.transition=``,e.style.opacity=String(n),t())};c.push(o);let s=()=>{a||(e.offsetWidth,e.style.transition=`opacity ${r}ms ease-in-out`,e.style.opacity=String(n))},l=i>0?window.setTimeout(s,i):(s(),0),u=window.setTimeout(o,i+r+80),d=t=>{t.target===e&&t.propertyName===`opacity`&&(e.removeEventListener(`transitionend`,d),window.clearTimeout(u),o())};e.addEventListener(`transitionend`,d);let f=c[c.length-1];c[c.length-1]=()=>{window.clearTimeout(l),window.clearTimeout(u),e.removeEventListener(`transitionend`,d),f?.()}})),te=(e,t,r,i,a)=>{let o=e.el;if(!o)return Promise.resolve();e.square=r,y(e),S(e);let s=k0(t,r,n,h>0?h:null);return o.style.transition=`none`,o.style.transform=s,i<=0?(o.style.transform=`none`,Promise.resolve()):new Promise(e=>{let t=!1,n=()=>{t||(t=!0,o.style.transition=``,o.style.transform=`none`,o.style.willChange=``,e())};c.push(n);let r=()=>{t||(o.style.willChange=`transform`,o.offsetWidth,o.style.transition=`transform ${i}ms ease-in-out`,o.style.transform=`none`)},s=a>0?window.setTimeout(r,a):(r(),0),l=window.setTimeout(n,a+i+80),u=e=>{e.target===o&&e.propertyName===`transform`&&(o.removeEventListener(`transitionend`,u),window.clearTimeout(l),n())};o.addEventListener(`transitionend`,u);let d=c[c.length-1];c[c.length-1]=()=>{window.clearTimeout(s),window.clearTimeout(l),o.removeEventListener(`transitionend`,u),d?.()}})},O=e=>{let t=e.reverse?e.to:e.from,n=e.reverse?e.from:e.to,r=ae(e,t);if(!r)return;r.square=n,e.promotion&&(r.type=e.reverse?e.piece:e.promotion,C(r)),S(r),x(r,!1),y(r);let i=T0(e);if(e.reverse&&e.captured&&i){let t={id:a++,color:e.color===`w`?`b`:`w`,type:e.captured,square:i,el:null,inner:null,img:null};o.push(t),w(t)}else if(!e.reverse&&i){let t=o.findIndex(t=>t.square===i&&t.color!==e.color&&t.type===e.captured);if(t>=0){let[e]=o.splice(t,1);e&&j0(e)}}let s=F0(e);if(s){let t=e.reverse?s.to:s.from,n=e.reverse?s.from:s.to,r=o.find(n=>n.square===t&&n.color===e.color&&n.type===`r`);r&&(r.square=n,S(r),y(r))}v()},k=(e,n)=>{let{move:r,opts:i}=e,s=r.reverse?r.to:r.from,c=r.reverse?r.from:r.to,f=ae(r,s);if(!f||!t||!f.el||i.duration<=0){O(r),i.onBegin?.(),i.onStart?.(),i.onComplete?.(!0),n();return}l=!0,d=e;let p=u,m=i.delay??0;if(x(f,!0),i.onBegin?.(),i.onStart){let e=i.onStart;m>0?window.setTimeout(()=>{p===u&&e()},m):e()}let h=T0(r),g,_;r.reverse&&r.captured&&h?(_={id:a++,color:r.color===`w`?`b`:`w`,type:r.captured,square:h,el:null,inner:null,img:null},o.push(_),w(_),_.el&&(_.el.style.opacity=`0`)):!r.reverse&&h&&(g=o.find(e=>e.square===h&&e.color!==r.color&&e.type===r.captured));let y=F0(r),b=y?r.reverse?y.to:y.from:null,S=y?r.reverse?y.from:y.to:null,T=b?o.find(e=>e.square===b&&e.color===r.color&&e.type===`r`):void 0;T&&x(T,!0);let E=[te(f,s,c,i.duration,m)];g?.el&&E.push(ee(g.el,1,.35,i.duration,m)),_?.el&&E.push(ee(_.el,0,1,i.duration,m)),T&&b&&S&&E.push(te(T,b,S,i.duration,m)),Promise.all(E).then(()=>{if(p===u){if(d=null,r.promotion&&(f.type=r.reverse?r.piece:r.promotion,C(f)),x(f,!1),g){let e=o.indexOf(g);e>=0&&o.splice(e,1),j0(g)}T&&x(T,!1),_?.el&&(_.el.style.opacity=``),v(),l=!1,re(),i.onComplete?.(!0),n()}})},A=()=>{if(l||s.length===0||!t)return;let e=s.shift();e&&k(e,A)},ne=()=>{if(t){for(let e of o)e.el?(S(e),C(e),x(e,!1),y(e)):w(e);v()}},re=()=>{f!==null&&(n=f,f=null,ne())};return{pieceRefs:e,attach:(e,a)=>
53{if(t===e){n=a.flipped,r=a.isActive,i=a.pieceSet,C0(i),b(),ne(),A();return}g?.disconnect(),ie(),t=e,n=a.flipped,r=a.isActive,i=a.pieceSet,C0(i),b(),typeof ResizeObserver<`u`&&(g=new ResizeObserver(()=>b()),g.observe(e));for(let e of o)w(e);v(),A()},detach:()=>{u+=1,T(),d&&=(s.unshift(d),null),D(),re(),ie(),g?.disconnect(),g=null,t=null,h=0,l=!1},snap:e=>{u+=1,T(),E(),D(),re();let t=A0(o,e),n=new Map(o.map(e=>[e.id,e]));for(let e of t.remove){let t=n.get(e);if(!t)continue;j0(t);let r=o.indexOf(t);r>=0&&o.splice(r,1)}for(let e of[...t.stay,...t.move]){let t=n.get(e.id);t&&(t.square=e.to,t.type=e.type,S(t),C(t),x(t,!1),y(t))}for(let e of t.add){let t={id:a++,color:e.color,type:e.type,square:e.square,el:null,inner:null,img:null};o.push(t),w(t)}v()},playMove:(e,t)=>{s.push({move:e,opts:t}),A()},cancel:()=>{u+=1,T(),E(),D(),re();for(let e of o)e.el&&(e.el.style.opacity=``),x(e,!1),y(e)},setFlipped:e=>{if(l){f=e===n?null:e;return}if(n!==e){n=e;for(let e of o)x(e,!1),y(e)}},setPieceSet:e=>{i=e,C0(e);for(let e of o)C(e)},setActive:e=>{r=e;for(let e of o)S(e)},pickup:e=>{let t=o.find(t=>t.square===e);return t?(p=t,m=!1,x(t,!0),!0):!1},dragTo:(e,t)=>{p?.el&&(m||(m=!0,p.el.style.willChange=`transform`),p.el.style.transform=`translate3d(${e}px, ${t}px, 0px)`)},setDragLifted:e=>{p?.inner&&(p.inner.style.transition=`transform 0.1s`,p.inner.style.transform=e?`scale(1.5) translate(0px, -12px)`:``)},endDrag:()=>{D()},isBusy:()=>l||s.length>0,getVisualOccupancy:_,getSpriteAt:e=>{let t=o.find(t=>t.square===e);return t?{id:t.id,square:t.square}:void 0}};function ie(){for(let e of o)j0(e);for(let t of Object.keys(e))delete e[t]}function ae(e,t){let n=e.reverse&&e.promotion?e.promotion:e.piece;return o.find(r=>r.square===t&&r.color===e.color&&r.type===n)}},F0=e=>e.piece===`k`?e.flags?.includes(`k`)?e.color===`w`?{from:`h1`,to:`f1`}:{from:`h8`,to:`f8`}:e.flags?.includes(`q`)?e.color===`w`?{from:`a1`,to:`d1`}:{from:`a8`,to:`d8`}:e.from===`e1`&&e.to===`g1`?{from:`h1`,to:`f1`}:e.from===`e1`&&e.to===`c1`?{from:`a1`,to:`d1`}:e.from===`e8`&&e.to===`g8`?{from:`h8`,to:`f8`}:e.from===`e8`&&e.to===`c8`?{from:`a8`,to:`d8`}:null:null,I0=l(`<svg id=svg width=100% height=100% viewBox="0 0 100 100"version=1.1><circle r=42 cx=50 cy=50 fill=transparent stroke-dashoffset=0></circle><circle id=bar r=42 cx=50 cy=50 fill=transparent stroke-linecap=round transform="rotate(-90 100 100)"style="transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 0.2s ease-in-out">`),L0=e=>{let t=2*Math.PI*42,n=()=>{let n=e.progress;return(e=>(1-e)*t*-1)(n===1||n===0?n:Math.min(Math.max(n,.05),.88))};var r=I0(),i=r.firstChild,a=i.nextSibling;return C(a,`stroke-dasharray`,`${t}`),M(()=>({e:e.strokeWidth??`16px`,t:e.backgroundColor??Ee.gray[42],a:e.color??Ee.success,o:e.strokeWidth??`16px`,i:-n()}),({e,t,a:n,o:r,i:o},s)=>{e!==s?.e&&C(i,`stroke-width`,e),t!==s?.t&&C(i,`stroke`,t),n!==s?.a&&C(a,`stroke`,n),r!==s?.o&&C(a,`stroke-width`,r),o!==s?.i&&C(a,`stroke-dashoffset`,o)}),r},R0=(e,t,n,r)=>{if(!e)return;if(e.reverse)return t?r.find(e=>e.reverse)??n[n.length-1]:e;if(t)return e;let i=r.filter(e=>!e.reverse).length,a=n.length-1-i;return a>0?n[a-1]:void 0},z0=(e,t)=>{switch(e){case`last`:return t.highlightLastMove;case`next`:return t.highlightNextMove;case`indicator`:case void 0:return`transparent`}},B0=l(`<div class="absolute inset-0 pointer-events-none"id=arrow-origins-container>`),V0=l(`<div class="absolute inset-0 pointer-events-none"id=arrows-container>`),H0=l(`<div class="absolute inset-0 pointer-events-none"id=arrows-underneath-container>`),U0=l(`<div class=square-full>`),W0=l(`<img alt class="h-full w-full">`),G0=l(`<img>`),K0=l(`<div><div><!><div>`),q0=l(`<div>`),J0=l(`<div><!><!><!>`),Y0=l(`<div class="absolute inset-[3%]">`),X0=l(`<p>`),Z0=l(`<div><div><!><div><div></div></div><div id=ring-indicator></div><div id=pieces-layer class="absolute inset-0 pointer-events-none"></div><div>`),Q0=l(`<i id=feedback-icon>`),$0=l(`<div><div class="center absolute right-0 top-0 h-[45%] w-[45%] -translate-y-1/2 translate-x-1/2"><div><div class="absolute inset-0 bg-white opacity-0"id=white-overlay></div><!><!></div></div><div class="center absolute h-[90%] w-[90%]"><div><i></i></div></div><div class="center h-[95%] w-[95%] border-2 xl:border-4 border-solid rounded-full border-orange-80 opacity-0"></div><div class="absolute inset-0 grid place-items-center rounded-full"><div></div></div><div class="absolute bottom-0 left-0 right-0 top-0 h-full w-full transition-opacity"></div><div class="absolute bottom-0 left-0 right-0 top-0 h-full w-full"></div><!><!>`),e2=e=>[(()=>{var t=B0();return I(()=>t=>
53{e.handles.arrowOriginsContainerRef=t},t),M(()=>F(z(B.zIndex(_0.ARROW_ORIGINS))),(e,n)=>{w(t,e,n)}),t})(),(()=>{var t=V0();return I(()=>t=>{e.handles.arrowsContainerRef=t},t),M(()=>F(z(B.zIndex(_0.ARROWS))),(e,n)=>{w(t,e,n)}),t})(),(()=>{var t=H0();return I(()=>t=>{e.handles.arrowsUnderneathContainerRef=t},t),M(()=>F(z(B.zIndex(_0.ARROWS_UNDERNEATH))),(e,n)=>{w(t,e,n)}),t})()],t2={square:null,enoughToDrag:!1,touch:!1},n2=e=>{let t=()=>e.piece;var n=U0();return N(n,x(j,{get when(){return t()},children:t=>(()=>{var n=W0();return M(()=>x0(e.pieceSet,t().color,t().type),e=>{C(n,`src`,e)}),n})()})),M(()=>t()?`${e.pieceSet} - ${t().type}${t().color}`:void 0,e=>{C(n,`id`,e)}),n},r2=()=>{let e=()=>J().user,t=_(()=>su(MN,t=>t.boardTheme===e()?.theme)||NN.default);return m(()=>t().pieceSet,e=>{C0(e)}),null},i2=()=>m0(J().getFrontendSetting(`pieceAnimation`).value),a2=e=>fM(e??i2()),o2=e=>pM(e??i2()),s2=e=>mM(e??i2()),c2=e=>hM(e??i2()),l2=(e,t)=>({x:e.clientX-t.left,y:e.clientY-t.top});function u2(e){let t=ie(()=>e.chessboardInterface),n=_(()=>!!e.isActive),r=()=>t.state,i=t.handles,a=_(()=>r().previewPosition??r().position),c=()=>r().hideCoordinates,l=()=>q().userState.user,u=_(()=>su(MN,e=>e.boardTheme===l()?.theme)||NN.default),d=()=>jN[u().boardTheme],f=()=>u().pieceSet,p=()=>[d().light.color,d().dark.color],h=_(()=>!!r().flipped),g=()=>d().boardImage,v=e=>e?d().light.styles:d().dark.styles,y=_(()=>vd(8).map(e=>vd(8).map(t=>{let n=(e+t)%2==0,r=h()?ap[7-t]:ap[t],i=h()?op[e]:op[7-e];return{i:e,j:t,light:n,square:`${r}${i}`,tileLetter:r,tileNumber:i,isBottomEdge:e===7,isRightEdge:t===7}})));if(e.static){var S=K0(),T=S.firstChild,E=T.firstChild,D=E.nextSibling;return I(()=>t=>{i.containerRef=t,e.ref?.(t)},S),N(T,x(e2,{handles:i}),E),N(T,x(j,{get when(){return g()},get children(){var e=G0();return M(()=>({e:g(),t:F(L(`absolute left-0 top-0 z-0 h-full w-full`))}),({e:t,t:n},r)=>{t!==r?.e&&C(e,`src`,t),P(e,n,r?.t)}),e}}),D),N(D,x(b,{get each(){return y()},children:e=>(()=>{var t=q0();return N(t,x(b,{each:e,children:e=>{let{light:t,square:r,tileLetter:i,tileNumber:o,isBottomEdge:l,isRightEdge:u}=e,d=_(()=>{let[e,n]=p();return t?[e,n]:[n,e]}),m=()=>d()[0],h=()=>d()[1],y=()=>a().get(r);var b=J0(),S=b.firstChild,T=S.nextSibling,E=T.nextSibling;return N(b,x(j,{get when(){return y()},children:e=>(()=>{var t=Y0();return N(t,x(n2,{get piece(){return e()},get pieceSet(){return f()}})),M(()=>_0.PIECES,e=>{s(t,`z-index`,e)}),t})()}),S),N(b,(()=>{var e=A(()=>!(!l||c()));return()=>e()?x(V,{get style(){return z(B.fg(h()))},get class(){return L(`left-px weight-bold absolute bottom-0 text-[10px] lg:bottom-0.5 lg:left-1 lg:text-sm`)},children:i}):l&&!c()})(),T),N(b,(()=>{var e=A(()=>!(!u||c()));return()=>e()?(()=>{var e=X0();return C(e,`id`,`coord-${r}`),N(e,o),M(()=>({e:F(L(`right-px weight-bold absolute top-0 text-[10px] lg:right-1 lg:top-0.5 lg:text-sm`)),t:F(z(B.fg(h())))}),({e:t,t:n},r)=>{P(e,t,r?.e),w(e,n,r?.t)}),e})():u&&!c()})(),E),M(()=>({e:n()?`square-${r}`:void 0,t:F(z(!g()&&B.bg(m()),v(t),B.center,B.flexible,B.relative))}),({e,t},n)=>{e!==n?.e&&C(b,`data-testid`,e),w(b,t,n?.t)}),b}})),M(()=>F(L(`w-full row grow min-w-0 basis-0 relative`)),(e,n)=>{P(t,e,n)}),t})()})),M(()=>({e:n()?`chessboard`:void 0,t:F(L(`relative h-0 w-full select-none pb-[100%]`,e.class)),a:F(z(e.styles,e.shadow&&B.cardShadow)),o:F(L(`square-full absolute overflow-hidden`)),i:F(z(B.brt(2),{isolation:`isolate`})),n:F(L(`col square-full pointer-events-none`))}),({e,t,a:n,o:r,i,n:a},o)=>{e!==o?.e&&C(S,`data-testid`,e),P(S,t,o?.t),w(S,n,o?.a),P(T,r,o?.o),w(T,i,o?.i),P(D,a,o?.n)}),S}let ee=_(()=>{let e=r().previewedMove;return e?.from?{from:e.from,to:e.to}:void 0}),te=_(()=>{let e=r().animatedMove;return e?.from?{from:e.from,to:e.to,epd:e.epd,reverse:!!e.reverse}:void 0}),O=_(()=>r().animatedMoveStarted===!0),k=_(()=>(r().animationQueue??[]).map(e=>({from:e.from,to:e.to,reverse:!!e.reverse}))),ne=_(()=>{let e=r();return e.animating||(e.animationQueue?.length??0)>0}),re=_(()=>r().animatingPreview),ae=_(()=>r().hideLastMoveHighlight),oe=_(()=>{let e=r().animatedMoveDurationMs;return ne()&&O()&&e>0?`background-color ${e}ms ease-in-out`:null}),se=_(()=>r().moveFeedback),ce=_(()=>se().result),le=_(()=>se().progress),ue=_(()=>se().square),de=_(()=>se().settled===!0),fe=_(()=>se().size??`small`),pe=_(()=>{let e=``,t=`bg-gray-21`,n=null;switch(ce()){case`correct`:e=`fa-kit fa-tick`,t=`bg-success`;break;case`incorrect`:e=`fa-kit fa-cross`,t=`bg-danger`;break;case`alternative`:e=`fa-kit fa-ok`,t=`bg-success`;break;case`blunder`:e=`fa-kit fa-blunder`,t=`bg-danger`;break;case`mistake`:e=`fa-kit fa-mistake`,t=`bg-warning`;break;case`acceptable-inaccuracy`:e=`fa-kit fa-tick`,t=`bg-success`;break;case`inaccuracy`:e=`fa-kit fa-inaccuracy`,t=`bg-gray-84`;break;case`bonus`:e=`fa-kit fa-bonus-star`,t=`bg-success`}return le()&&(e=``,n=le()??null,t=`bg-gray-32`),{feedbackIcon:e,feedbackBackgroun
53d:t,feedbackProgress:n}}),me=_(()=>t.derived.availableMoveByTo()),he=_(()=>r().plans.map(e=>({mine:e.mine,plan:e.plan}))),ge=_(()=>{if(r().showPlans)return!0;let e=q().ui;return e.currentView()?.showPlansOverlay===!0&&e.getActiveChessboard()===t}),_e=_(()=>r().previewPosition!==null),ve=_(()=>r().drag),ye=_(()=>ve().square),be=_(()=>r().draggedOverSquare),xe=_(()=>r().activeFromSquare),Se=_(()=>t.getLastMove()),Ce={x:0,y:0},we=!1,Te=(e,t)=>{let n=t.x/e.width,r=t.y/e.height,i=Math.min(7,Math.max(0,Math.floor(r*8))),a=Math.min(7,Math.max(0,Math.floor(n*8))),o;return o=h()?`${ap[7-a]}${op[i]}`:`${ap[a]}${op[7-i]}`,[o]},Ee=(e,t)=>{let[n,r]=t.split(``),i=Eu(ap,n),a=7-Eu(op,Number.parseInt(r,10));return h()&&(i=7-i,a=7-a),{x:(i+.5)*(e.width/8),y:(a+.5)*(e.height/8)}},[De,Oe]=o(null),[ke,Ae]=o(null),[je,Me]=o(null),Ne=Qe(ke);m(je,e=>{if(e)return i.pieceLayer.attach(e,{flipped:ie(h),isActive:ie(n),pieceSet:ie(()=>f())}),()=>i.pieceLayer.detach()}),m(h,e=>{i.pieceLayer.setFlipped(e)}),m(f,e=>{i.pieceLayer.setPieceSet(e)}),m(n,e=>{i.pieceLayer.setActive(e)}),m(()=>{let e=r().previewPosition??r().position;return e.fen(),ie(()=>w0(e))},e=>{i.pieceLayer.isBusy()||i.pieceLayer.snap(e)});let Pe=_(()=>r().previewPosition??r().futurePosition??r().position),Fe=_(()=>r().frozen),Ie=e=>{if(Fe()||(e.preventDefault(),!ye()&&!xe()))return;let n=l2(e,Ne),[r]=Te(Ne,n),a=n.x-Ce.x,o=n.y-Ce.y,s=Math.sqrt(a*a+o*o),c=ve().enoughToDrag;!c&&s>5?(i.pieceLayer.setDragLifted(we),i.pieceLayer.dragTo(a,o),t.set(e=>{e.drag={...e.drag,enoughToDrag:!0}})):c&&i.pieceLayer.dragTo(a,o),r!==be()&&t.set(e=>{e.draggedOverSquare=e.availableMoves.find(e=>e.to===r)?r:void 0})},Le=(e,n,a=!0)=>{if(n||=Ee(Ne,e),r().mode===`tap`){r().delegate.tappedSquare?.(e);return}let{x:o,y:s}=Ee(Ne,e),c=Pe().get(e),l=su(r().availableMoves,t=>t.to===e);if(l?(t.requestToMakeMove(l,{animate:!0,sound:`move`}),Oe(()=>()=>{})):xe()===e||!c?Oe(()=>()=>{t.clearPending()}):Oe(()=>()=>{}),window.setTimeout(()=>{Oe(null)},200),l)return;let u=t.getTurn();c?.color&&oC.fromColor(c.color)===u&&(Ce={x:o,y:s},we=a??!1,i.pieceLayer.pickup(e),t.set(t=>{t.drag={square:e,enoughToDrag:!1,touch:we},t.activeFromSquare=e,t.availableMoves=Pe().moves({square:e,verbose:!0})}))},Re=e=>{if(Fe()||e.button!==0)return;e.target.setPointerCapture(e.pointerId);let t=l2(e,Ne),[n]=Te(Ne,t);Le(n,t,e.pointerType===`touch`)},ze=e=>{if(e===ye()&&De())De()?.();else{let n=su(r().availableMoves,t=>t.to===e);n?t.requestToMakeMove(n,{animate:!1,sound:`drop`}):t.clearPending(!0)}i.pieceLayer.endDrag(),t.set(e=>{e.drag={...t2}})},Be=e=>{if(h0(e)&&!g0(e)||Fe())return;let t=e.target;try{t.releasePointerCapture(e.pointerId)}catch{}e.preventDefault();let n=l2(e,Ne),[r]=Te(Ne,n);ze(r)},Ve=_(()=>r().highlightedSquares),He=_(()=>r().coloredSquares),Ue=_(()=>{let e={};if(_e())return e;let t=(t,n)=>{t&&(e[t]=n)};for(let e of Object.keys(Ve()))t(e,`next`);let n=ee(),i=te(),a=O(),o=re()&&i?i.reverse?!a&&i:a&&n:n;if(o&&(t(o.from,`next`),t(o.to,`next`)),ne()&&!re()&&!n){if(!ae()){let e=R0(i,a,r().moveHistory,k());t(e?.from,`last`),t(e?.to,`last`)}return e}if(ae())return e;t(xe(),`next`),t(be(),`next`);for(let n of Object.keys(me()))e[n]||t(n,`indicator`);let s=Se();return s&&(e[s.from]||t(s.from,`last`),e[s.to]||t(s.to,`last`)),e});return(()=>{var a=Z0(),o=a.firstChild,s=o.firstChild,l=s.nextSibling,u=l.firstChild,f=l.nextSibling,m=f.nextSibling,S=m.nextSibling;return a._$$contextmenu=e=>{e.preventDefault(),ye()&&t.clearPending(!0)},I(()=>t=>{i.containerRef=t,e.ref?.(t)},a),o._$$pointerup=Be,o._$$pointerdown=Re,o._$$pointermove=Ie,I(()=>Ae,o),N(o,x(e2,{handles:i}),s),N(o,x(b,{each:Fz,children:e=>[x(eR,{id:e===`body`?`plans-container`:`plans-origins-container`,maxOpacity:1,get style(){return z(B.absoluteFull,B.noPointerEvents,B.zIndex(e===`origin`?_0.ARROW_ORIGINS:_0.ARROWS))},get open(){return A(()=>!!ge())()?!!r().plans:ge()},get children(){return x(b,{get each(){return he()},children:t=>{let{plan:n}=t;return x(Lz,{part:e,get transitionDurationMs(){return c2()},get flipped(){return h()},get faded(){return!t.mine},get color(){return A(()=>!!t.mine)()?void 0:B.gray[46]},get fromSquare(){return n.fromSquare}
53,get toSquare(){return n.toSquare}})}})}}),x(eR,{id:e===`body`?`probability-arrows-container`:`probability-arrow-origins-container`,maxOpacity:1,get style(){return z(B.absoluteFull,B.noPointerEvents,B.zIndex(e===`origin`?_0.ARROW_ORIGINS:_0.ARROWS))},get open(){return r().probabilityArrows.length>0},get children(){return x(b,{get each(){return r().probabilityArrows},children:t=>x(Lz,{part:e,get transitionDurationMs(){return c2()},get flipped(){return h()},faded:!1,get fromSquare(){return t.fromSquare},get toSquare(){return t.toSquare},get weight(){return t.weight},get label(){return t.label},get labelStack(){return t.labelStack},get color(){return t.color}})})}})]}),l),I(()=>e=>{i.visualizationDotRef=e},l),I(()=>e=>{i.ringRef=e},f),I(()=>Me,m),N(o,x(j,{get when(){return g()},get children(){var e=G0();return M(()=>({e:g(),t:F(L(`absolute left-0 top-0 z-0 h-full w-full`))}),({e:t,t:n},r)=>{t!==r?.e&&C(e,`src`,t),P(e,n,r?.t)}),e}}),S),N(S,x(b,{get each(){return y()},children:e=>(()=>{var t=q0();return N(t,x(b,{each:e,children:e=>{let{light:t,square:r,tileLetter:a,tileNumber:o,isBottomEdge:s,isRightEdge:l}=e,u=_(()=>{let[e,n]=p();return t?[e,n]:[n,e]}),f=()=>u()[0],m=()=>u()[1],h=_(()=>Ue()[r]),y=_(e=>h()??e,void 0),b=()=>oe()??(y()===`next`?`background-color 150ms ease-in-out`:`none`),S=()=>h()===`indicator`,T=_(()=>z0(h(),d())),E=_(()=>He()[r]);var D=$0(),ee=D.firstChild,te=ee.firstChild,O=te.firstChild.nextSibling,k=O.nextSibling,ne=ee.nextSibling,re=ne.firstChild,ie=re.firstChild,ae=ne.nextSibling,se=ae.nextSibling,le=se.firstChild,me=se.nextSibling,he=me.nextSibling,ge=he.nextSibling,_e=ge.nextSibling;return I(()=>e=>{i.feedbackRefs[r]=e},te),C(te,`id`,`feedback-${r}`),N(te,x(j,{get when(){return pe().feedbackIcon},get children(){var e=Q0();return M(()=>F(L(` relative text-[90cqw] z-1 text-gray-21`,pe().feedbackIcon)),(t,n)=>{P(e,t,n)}),e}}),O),N(te,x(j,{get when(){return!Kt(pe().feedbackProgress)},get children(){return x(L0,{strokeWidth:`12px`,get progress(){return pe().feedbackProgress},backgroundColor:``,get color(){return B.success}})}}),k),I(()=>e=>{i.largeFeedbackRefs[r]=e},re),C(re,`id`,`large-feedback-${r}`),I(()=>e=>{i.largeCircleRefs[r]=e},ae),C(le,`id`,`indicator-${r}`),C(me,`id`,`colored-${r}`),C(he,`id`,`highlight-${r}`),N(D,(()=>{var e=A(()=>!(!s||c()));return()=>e()?x(V,{get style(){return z(B.fg(m()))},get class(){return L(`left-px weight-bold absolute bottom-0 text-[10px] lg:bottom-0.5 lg:left-1 lg:text-sm`)},children:a}):s&&!c()})(),ge),N(D,(()=>{var e=A(()=>!(!l||c()));return()=>e()?(()=>{var e=X0();return C(e,`id`,`coord-${r}`),N(e,o),M(()=>({e:F(L(`right-px weight-bold absolute top-0 text-[10px] lg:right-1 lg:top-0.5 lg:text-sm`)),t:F(z(B.fg(m())))}),({e:t,t:n},r)=>{P(e,t,r?.e),w(e,n,r?.t)}),e})():l&&!c()})(),_e),M(()=>({e:n()?`square-${r}`:void 0,t:F(z(B.keyedProp(`touch-action`)(`none`),!g()&&B.bg(f()),v(t),B.center,!Fe()&&B.clickable,B.flexible,B.relative)),a:F(z(B.zIndex(_0.FEEDBACK))),o:F(L(`center @container h-full w-full overflow-hidden rounded-full shadow-[0px_2px_3px_0px_rgba(0,0,0,0.15)]`,ue()===r&&fe()===`small`?de()?`opacity-100`:void 0:`opacity-0`,pe().feedbackBackground)),i:F(L(`center @container h-full w-full overflow-hidden rounded-full bg-gray-21 shadow-[0px_2px_3px_0px_rgba(0,0,0,0.15)]`,ue()===r&&fe()===`large`?de()?`opacity-100`:void 0:`opacity-0`)),n:F(z(B.zIndex(_0.FEEDBACK_LARGE))),s:F(L(` relative z-1 text-[100cqw]`,ce()===`correct`?`fa-kit fa-tick text-success`:`fa-kit fa-cross text-danger`)),h:F(z(B.zIndex(S()?_0.HIGHLIGHT_AVAILABLE_MOVES:_0.HIGHLIGHT))),r:`absolute square-1/3 rounded-full transition-opacity duration-300 ${S()?`opacity-100`:`opacity-0`}`,d:F(z(B.bg(d().highlightNextMove))),l:F(z(E()?B.opacity(E().opacity):B.opacity(0),B.bg(E()?.color),B.absolute,B.zIndex(1))),u:F(z(B.bg(T()),B.absolute,B.zIndex(1),{transition:b()}))}),({e,t,a:n,o:r,i,n:a,s:o,h:s,r:c,d:l,l:u,u:d},f)=>{e!==f?.e&&C(D,`data-testid`,e),w(D,t,f?.t),w(ee,n,f?.a),P(te,r,f?.o),P(re,i,f?.i),w(re,a,f?.n),P(ie,o,f?.s),w(se,s,f?.h),P(le,c,f?.r),w(le,l,f?.d),w(me,u,f?.l),w(he,d,f?.u)}),D}})),M(()=>F(L(`w-full row grow min-w-0 basis-0 relative`)),(e,n)=>{P(t,e,n)}),t})()})),M(()=>
53({e:n()?`chessboard`:void 0,t:F(L(`relative h-0 w-full touch-none select-none pb-[100%] cursor-pointer`,e.class)),a:F(z(e.styles,e.shadow&&B.cardShadow,{"-webkit-touch-callout":`none`})),o:F(L(`square-full absolute`)),i:F(z(B.brt(2),{isolation:`isolate`})),n:F(L(`absolute opacity-0 pointer-events-none`)),s:F(z(B.size(`calc(1/8 * 100%)`),B.center,B.zIndex(_0.VIZ_DOT))),h:F(L(r().visualizedMove?.color===`w`?`bg-gray-99`:`bg-gray-15`,`opacity-70 square-[50%] rounded-full`)),r:F(z(B.shadow(0,0,4,0,B.hsl(0,0,0,50)))),d:F(L(`opacity-0 shadow-white absolute square-full pointer-events-none`)),l:F(z(B.shadow(0,0,0,4,`var(--shadow-color)`),B.keyedProp(`--shadow-color`)(r().ringColor),B.zIndex(_0.BORDER_RING))),u:F(L(`col square-full pointer-events-none`))}),({e,t,a:n,o:r,i,n:s,s:c,h:d,r:p,d:m,l:h,u:g},_)=>{e!==_?.e&&C(a,`data-testid`,e),P(a,t,_?.t),w(a,n,_?.a),P(o,r,_?.o),w(o,i,_?.i),P(l,s,_?.n),w(l,c,_?.s),P(u,d,_?.h),w(u,p,_?.r),P(f,m,_?.d),w(f,h,_?.l),P(S,g,_?.u)}),a})()}ae([`contextmenu`,`pointermove`,`pointerdown`,`pointerup`]);var d2=(e,t)=>{let n=!0;return Yd(e,t).forEach(([e,t])=>{e&&e!==t&&(n=!1)}),n?{reset:!1,animateLine:Vl(t,e.length)}:{reset:!0,animateLine:t}},f2=Re(`Haptics`,{web:()=>ve(()=>import(`./web--v_Zkyju.js`).then(e=>new e.HapticsWeb),__vite__mapDeps([24,4,1,2,5,25]),import.meta.url)}),p2=()=>Ye?J().getFrontendSetting(`haptics`).value===c0.Enabled:!1,m2=()=>{p2()&&f2.impact({style:nt.Light}).catch(()=>{})},h2={epd:fp,fen:`${fp} 0 1`},g2=e=>{RV(IV.move,e)},_2={animate:!0,sound:`move`},v2=e=>`${e.epd}-${e.san}`,y2=()=>{let e=P0();return e.snap(w0(new ip)),{arrowOriginsContainerRef:null,arrowsContainerRef:null,arrowsUnderneathContainerRef:null,ringRef:null,visualizationDotRef:null,feedbackRefs:{},largeFeedbackRefs:{},largeCircleRefs:{},overlayRefs:{},pieceRefs:e.pieceRefs,pieceLayer:e,containerRef:null}},b2=e=>({from:e.from,to:e.to,piece:e.piece,color:e.color,captured:e.captured,promotion:e.promotion,flags:e.flags,reverse:e.reverse}),x2=e=>{e.animatedMove=void 0,e.animatedMoveStarted=!1,e.animatedMoveDurationMs=0,e.animatingMoveSquare=void 0},S2=(e,t)=>{e.pieceLayer.snap(w0(t.previewPosition??t.position))},C2=e=>{let t={};for(let n of e)t[n]=!0;return t},w2=(e,t)=>!!e&&t.from!==void 0&&t.to!==void 0&&e.from===t.from&&e.to===t.to&&e.promotion===t.promotion,T2=e=>({color:e.color,flags:e.flags,piece:e.piece,san:e.san,from:e.from,to:e.to,...e.captured?{captured:e.captured}:{},...e.promotion?{promotion:e.promotion}:{}}),E2=(e,t={})=>{let n=y2(),r=WI({name:e,flipped:!1,frozen:!1,moveCallbacks:{},highlightedSquares:{},animatedMoveStarted:!1,animatedMoveDurationMs:0,coloredSquares:{},tapOptions:{},moveFeedback:{result:`incorrect`},delegate:null,onPositionUpdate:new AE,mode:`normal`,plans:[],probabilityArrows:[],notifyingDelegates:!0,moveLog:[],moveLogPgn:``,position:ez(new ip),futurePosition:null,previewPosition:null,positionHistory:[h2],moveHistory:[],forwardMoveHistory:[],forwardPositionHistory:[],ringColor:B.success,availableMoves:[],drag:{square:null,enoughToDrag:!1,touch:!1}},t),i=r.state,a=r.current,o=e=>r.set(e),s=new Map,c=(t,n,r)=>{let i=s.get(t)??0;i>=3||(s.set(t,i+1),er(t,{level:`warning`,tags:{chessboard_name:e??`unnamed`,chessboard_mode:n.mode},extra:{currentEpd:Bl(n.positionHistory)?.epd,moveLogTail:n.moveLog.slice(-8),moveHistoryLength:n.moveHistory.length,positionHistoryLength:n.positionHistory.length,forwardMoveHistoryLength:n.forwardMoveHistory.length,forwardPositionHistoryLength:n.forwardPositionHistory.length,activeFromSquare:n.activeFromSquare,animatingMoveSquare:n.animatingMoveSquare,dragSquare:n.drag.square,availableMoveCount:n.availableMoves.length,...r}}))},l=(e,t)=>{e.movesToVisualize=[],e.activeFromSquare=void 0,e.animating=!1,e.availableMoves=[],e.draggedOverSquare=void 0,e.drag={square:null,enoughToDrag:!1,touch:!1},n.pieceLayer.endDrag(),t||(e.nextPreviewMove=void 0,e.previewedMove=void 0,e.animationQueue=void 0,e.animating=!1,e.animatingPreview=!1,x2(e),n.pieceLayer.cancel(),S2(n,e))},u=e=>{e.position=ez(new ip),l(e),e.positionHistory=[h2],e.moveHistory=[],e.forwardMoveHistory=[],e.forwardPositionHistory=[];let t=e.position.history();e.moveLog=t,e.moveLogPgn=mp.toPgn(t)},d={state:i,derived:{visiblePosition:()=>a().previewPosition??a().position,activePosition:()=>a().previewPosition??a().futurePosition??a().position,availableMoveByTo:()=>{let e={};for(let t of a().availableMoves)e[t.to]=t;return e}},handles:n,dispose:()=>{n.pieceLayer.cancel(),n.pieceLayer.detach(),r.dispose()},set:o,get:e=>e?e(a()):a(),getMoveLog:()=>a().moveLog,getPly:()=>a().moveHistory.length??0,getTurn:()=>{let e=a();return(e.futurePosition??e.position).turn()===`w`?`white`:`black`},setMode:e=>{o(t=>{t.mode=e})},setPerspective:e=>{o(t=>{t.flipped=e===`black`,n.pieceLayer.setFlipped(t.flipped)})},prepareReviewQuizGroup:({side:e,plansQuiz:t})=>{o(r=>{r.tapOptions={},r.mode=`normal`,r.highlightedSquares={},r.flipped=e===`black`,n.pieceLayer.setFlipped(r.flipped),r.plans=[],r.showPlans=!1,r.hideLastMoveHighlight=t})},updateMoveLogPgn:()=>{o(e=>{let t=e.position.history();e.moveLog=t,e.moveLogPgn=mp.toPgn(t)})},getCurrentEpd:()=>Bl(a().positionHistory)?.epd,resumeNotifyingDelegates:()=>{o(e=>{e.notifyingDelegates=!0})},stopNotifyingDelegates:()=>{o(e=>{e.notifyingDelegates=!1})},addMoveCallback:(e,t)=>{o(n=>{n.moveCallbacks[e]||(n.moveCallbacks[e]=new AE),n.moveCallbacks[e].add(t)})},makeMove:(t,r)=>o(i=>{let a=r?.sound??`none`,o=r?.animate??!0,s=i.position,u=typeof t==`string`?s.validateMoves([t])?.[0]??null:T2(t);if(i.availableMoves=[],!u)return Promise.resolve();let f=u;(f.from===void 0||f.to===void 0)&&c(`Chessboard move is missing target squares`,i,{input:typeof t==`string`?t:T2(t),moveObject:f,positionFen:s.fen()});let p=w2(i.previewedMove??i.nextPreviewMove,f),m=!!i.previewedMove||i.animatingPreview;(p||m)&&l(i);let h=r?.animationSpeed?void 0:q().userState.getFrontendSetting(`pieceAnimation`).value,g=r?.animationSpeed??m0(h),_=Bl(i.positionHistory).epd,v={...f,epd:_,animationSpeed:g,pauseBefore:r?.pauseBefore,sound:a},y=!1;o&&h!==a0.Disabled&&!p?(y=!0,i.animationQueue=[...i.animationQueue??[],v],d.stepAnimationQueue({firstMove:!0})):(a===`drop`||a===`full`)&&!p&&(RV(IV.drop),f.captured&&RV(IV.capture));let b=s.move(f);if(!b)return hV(f,`moveObject is null`),Promise.resolve();f=b,Au(f,i.forwardMoveHistory[0])?(i.forwardMoveHistory.shift(),i.forwardPositionHistory.shift()):(i.forwardMoveHistory=[],i.forwardPositionHistory=[]),_=dp(s),i.positionHistory.push({epd:_,fen:s.fen()}),i.moveHistory.push(v),i.moveLog.push(f.san),i.moveLogPgn=mp.appendPgnMove(i.moveLogPgn,f.san,i.moveLog.length-1),(i.moveLog.length!==i.moveHistory.length||i.positionHistory.length!==i.moveHistory.length+1)&&(i.moveLog.length===s.history().length?ky({category:`chessboard`,level:`info`,message:`moveLog ahead of moveHistory (pre-loaded position); histories diverged but consistent`,data:{name:e,moveLogLength:i.moveLog.length,moveHistoryLength:i.moveHistory.length,positionHistoryLength:i.positionHistory.length}}):Zt(t=>{t.setContext(`chessboard_history`,{name:e,moveLog:i.moveLog,moveHistory:i.moveHistory,positionHistory:i.positionHistory,forwardMoveHistory:i.forwardMoveHistory,forwardPositionHistory:i.forwardPositionHistory,attemptedMove:f,epdBeforeMove:v.epd,positionHistoryFromBoard:s.history()}),mV(!1,`moveLog and moveHistory and positionHistory are not in sync`)}));let x=new Promise(e=>{y?d.addMoveCallback(v2(dV.fromChessboardMove(v)),()=>e()):e()});return y||S2(n,i),d.getDelegate()?.onPositionUpdated?.(),d.getDelegate()?.onMovePlayed?.(),i.onPositionUpdate.call(),x}),stepAnimationQueue:e=>{o(t=>{if(t.animating)return;let n=t.animationQueue?.shift(),r=Bl(t.moveHistory);n&&(t.previewedMove=void 0,t.nextPreviewMove=void 0);let i=!1;n||(i=!0,(t.previewedMove&&t.nextPreviewMove&&!Au(t.previewedMove,t.nextPreviewMove)||t.previewedMove&&!t.nextPreviewMove)&&(Au(r,t.previewedMove)?(t.previewedMove=void 0,t.nextPreviewMove=void 0):(n=Sc(t.previewedMove),n.reverse=!0)),!t.previewedMove&&t.nextPreviewMove&&(n=t.nextPreviewMove)),(n||t.previewedMove)&&n&&(t.animating=!0,t.animatingPreview=i,d.animatePieceMove(n,e=>{o(t=>{t.animating=!1,t.animatingPreview=!1,e||(t.animationQueue=void 0)}),e&&d.stepAnimationQueue()},{firstMove:e?.firstMove,isPreview:i}))})},getIsAnimating:()=>{let e=a();return e.animating||(e.animationQueue?.length??0)>0||n.pieceLayer.isBusy()},clearPending:e=>{o(t=>{l(t,e)})},animatePieceMove:(e,t,r)=>{o(i=>{let a=r?.isPreview;a&&(e.reverse?i.previewedMove=void 0:(i.previewedMove=e,i.nextPreviewMove=e));let s=e.animationSpeed??m0(J().getFrontendSetting(`pieceAnimation`).value);a&&(s=dM.Fast);let{moveDuration:c,stayDuration:l}=a2(s);i.animatingMoveSquare=e.reverse?e.to:e.from,i.animatedMove=e,i.animatedMoveStarted=!1,i.animatedMoveDurationMs=c;let u=r?.firstMove?0:l;e.pauseBefore&&(u+=s2(s));let d=e.sound===`move`||e.sound===`full`;n.pieceLayer.playMove(b2(e),{duration:c,delay:u,onBegin:()=>{d&&g2(c),d&&e.captured&&window.setTimeout(()=>{RV(IV.capture)},u+c*.8)},onStart:()=>{o(e=>{e.animatedMoveStarted=!0})},onComplete:n=>{o(t=>{x2(t);let n=v2(e);t.moveCallbacks[n]&&(t.moveCallbacks[n].call(e),delete t.moveCallbacks[n])}),t(n)}})})},getDelegate:()=>{let e=a();return e.notifyingDelegates?e.delegate:null},setTapOptions:e=>{let t=e.map(e=>n.largeCircleRefs[e]).filter(e=>!!e),r=new Set(t),i=Object.values(n.largeCircleRefs).filter(e=>!!e&&!r.has(e));o(t=>{t.tapOptions=C2(e)});let a=250*o2();i.length>0&&rM(i,{opacity:0,duration:a,autoplay:!0}),t.length>0&&uM({defaults:{duration:a,ease:`easeInOutSine`},autoplay:!0}).add(t,{opacity:[0,.7],ease:`easeInOutSine`})}
53,colorSquare:(e,t,n)=>{o(r=>{if(!e){r.coloredSquares={};return}t&&n&&(r.coloredSquares[e]={color:t,opacity:n})})},highlightSquare:e=>{o(t=>{if(!e){if(Object.keys(t.highlightedSquares).length===0)return;t.highlightedSquares={};return}Object.keys(t.highlightedSquares).length===1&&t.highlightedSquares[e]||(t.highlightedSquares=C2([e]))})},requestToMakeMove:(e,t=_2)=>{o(n=>{if(!e)return;let r=T2(e);d.clearPending();let i=d.getDelegate()?.askForPromotionPiece?.(r);if(i){let e=T2(r);e.promotion=i,r=n.position.validateMoves([e])[0]}let a=()=>{n.previewedMove?.san===r.san?d.makeMove(r,{...t,animate:!1}):d.makeMove(r,{...t})},o=d.getDelegate()?.shouldMakeMove?.(r);o&&(o===`preview`?(t.sound===`drop`&&RV(IV.drop),d.previewMove(r,{animate:t?.animate===!0})):(m2(),a(),d.getDelegate()?.madeManualMove?.()))})},clearForwardHistory:()=>{o(e=>{e.forwardMoveHistory=[],e.forwardPositionHistory=[]})},forwardOne:()=>{o(e=>{if(e.forwardPositionHistory.length>0){let t=e.forwardMoveHistory[0];d.makeMove(t,{animate:!0,sound:`move`}),d.updateMoveLogPgn(),d.getDelegate()?.onPositionUpdated?.()}})},forwardN:e=>{o(t=>{t.moveHistory.length>0&&Hd(e,()=>{d.forwardOne()})})},backN:e=>{o(t=>{t.moveHistory.length>0&&Hd(e,()=>{d.backOne()})})},backOne:e=>{o(t=>{if(t.moveHistory.length>0){let r=t.positionHistory.pop(),i=t.moveHistory.pop();hV(i,`moveHistory is empty: ${t.moveHistory}`),t.forwardMoveHistory.unshift(i),t.forwardPositionHistory.unshift(r),e?.clear&&(t.forwardPositionHistory=[],t.forwardMoveHistory=[]),e?.skipAnimation?S2(n,t):(t.animationQueue=[...t.animationQueue??[],{...i,reverse:!0}],d.stepAnimationQueue({firstMove:!0}
53),e?.callback&&d.addMoveCallback(v2(i),e.callback)),t.position.undo(),d.updateMoveLogPgn(),d.getDelegate()?.onPositionUpdated?.(),t.onPositionUpdate.call(),d.getDelegate()?.onBack?.()}})},setFrozen:e=>{o(t=>{t.frozen=e})},setPosition:e=>{o(t=>{t.position=ez(e.clone()),d.clearPending(),t.positionHistory=[h2],t.moveHistory=[],t.forwardMoveHistory=[],t.forwardPositionHistory=[],S2(n,t),d.updateMoveLogPgn(),d.getDelegate()?.onPositionUpdated?.(),t.onPositionUpdate.call(),d.getDelegate()?.onBack?.()})},resetPosition:()=>{o(e=>{e.position=ez(new ip),d.clearPending(),e.positionHistory=[h2],e.moveHistory=[],e.forwardMoveHistory=[],e.forwardPositionHistory=[],S2(n,e),d.updateMoveLogPgn(),d.getDelegate()?.onPositionUpdated?.(),e.onPositionUpdate.call(),d.getDelegate()?.onBack?.()})},visualizeMoves:(e,t,r)=>{o(t=>{t.movesToVisualize=e});let i=()=>{o(e=>{let a=e.movesToVisualize?.shift();if(e.visualizedMove=a,!a){r?.();return}let{fadeDuration:o,moveDuration:s,stayDuration:c}=a2(t),[l,u]=[a.from,a.to],{x:d,y:f}=sp(u,e.flipped),{x:p,y:m}=sp(l,e.flipped),h=n.visualizationDotRef;h&&(h.style.top=`${m*100}%`,h.style.left=`${p*100}%`,uM({autoplay:!0}).add(h,{opacity:[0,1],duration:o,ease:`linear`,offset:0}).add(h,{top:`${f*100}%`,left:`${d*100}%`,duration:s,ease:`easeInOutSine`,offset:o}).add(h,{opacity:[1,0],duration:c,ease:`linear`,offset:o+s}).then(()=>{i()}))})};i()},previewMove:(e,t)=>{o(r=>{if(e){let[i]=r.position.validateMoves([e],{sloppy:!0})??[];if(!i){hV(i,`moveObject is null`);return}let a={...i,epd:dp(r.position),sound:`move`};t?.animate===!1?(d.clearPending(),r.previewedMove=a,n.pieceLayer.playMove(b2(a),{duration:0})):(r.nextPreviewMove=a,d.stepAnimationQueue())}else r.nextPreviewMove=void 0,d.stepAnimationQueue()})},showMoveFeedback:({square:e,result:t,size:r=`small`,progress:i,keep:a},s)=>{let l;o(u=>{if(!e){c(`Chessboard feedback missing square`,u,{result:t,size:r,progress:i,keep:a}),l=()=>s?.();return}u.moveFeedback.result=t,u.moveFeedback.progress=i,u.moveFeedback.square=e,u.moveFeedback.size=r,u.moveFeedback.settled=!1;let f=n.feedbackRefs[e];if(r===`large`&&(f=n.largeFeedbackRefs[e]),t===`correct`||t===`acceptable-inaccuracy`?RV(IV.success):Kt(i)&&RV(IV.failure),t===`bonus`&&f&&sB({x:f.offsetLeft,y:f.offsetTop}),!f){l=()=>{(t!==`thinking`||a)&&d.dismissMoveFeedback({square:e,size:r},s)};return}f.style.opacity=`0`,uM({autoplay:!0,defaults:{duration:200*o2(),ease:`easeOutQuad`}}).add(f,{opacity:[0,1],scale:r===`large`?[.8,1]:[.8,1.2,1]}).then(()=>{f.style.opacity=`1`,o(t=>{t.moveFeedback.square===e&&(t.moveFeedback.settled=!0)}),(t!==`thinking`||a)&&d.dismissMoveFeedback({square:e,size:r},s)})}),l?.()},dismissMoveFeedback:({square:e,delay:t,size:r},i)=>{let a;o(s=>{if(!e){c(`Chessboard dismiss feedback missing square`,s,{delay:t,size:r}),a=()=>i?.();return}let l=n.feedbackRefs[e];if(r===`large`&&(l=n.largeFeedbackRefs[e]),!l){a=()=>i?.();return}let u=o2();rM(l,{ease:`easeInQuad`,duration:200*u,opacity:[1,0],scale:[1,.8],delay:(t??200)*u,autoplay:!0,composition:`none`}).then(()=>{l.style.opacity=`0`,o(t=>{t.moveFeedback.square===e&&(t.moveFeedback.settled=!1,t.moveFeedback.square=void 0)}),i?.()})}),a?.()},flashRing:e=>{o(t=>{t.ringColor=e?B.success:B.danger,rM(n.ringRef,{ease:`easeInOutSine`,duration:300*o2(),direction:`alternate`,opacity:[0,1],autoplay:!0})})},getLastMove:()=>Bl(a().moveHistory),makeStockfishMove:e=>o(async t=>{let n=d.getCurrentEpd(),r=new Set(e.excludedSans??[]),i=e.pv??1,a;if(i>1||r.size>0){let[o,s]=await JV(()=>G.getTopMoves(n,{pv:i,nodes:e.nodes}));if(!o||s)throw s??Error(`No stockfish moves`);let c=[...o.moves].sort((e,t)=>e.multipv-t.multipv).find(e=>!r.has(e.san));if(!c)return!1;if(!c.stockfishEval.pv)throw Error(`Stockfish move has no PV`);let[l]=t.position.validateMoves([c.stockfishEval.pv],{sloppy:!0});a=l}else{let[r,i]=await JV(()=>G.evalPos({epd:n,cb:e=>{},nodes:e.nodes}));if(!r||i)throw i??Error(`No position eval`);if(!r.pv)throw Error(`Position eval has no PV`);let[o]=t.position.validateMoves([r.pv],{sloppy:!0});a=o}if(!a)throw Error(`Stockfish PV was not a legal move`);return await MV(s2()),o(e=>{d.makeMove(a,{animate:!0,sound:`move`}).then(async()=>{})}),!0}),playLine:(e,t={})=>{o(r=>{t.animated=Kt(t.animated)?!0:t.animated,r.notifyingDelegates=!1,t?.reset&&u(r);let{reset:i,animateLine:a}=d2(r.moveLog,e);i&&u(r);let o=Bl(r.positionHistory)?.epd,s=[],c=[];for(let[n,i]of a.entries()){let o=Bl(r.positionHistory)?.epd,l=r.position.move(i,{sloppy:!0});if(!l){mV(!1,`invalid move in playLine`,{san:i,line:e,animateLine:a});break}s.push(o);let u={...l,epd:o,sound:`move`},f=dp(r.position);r.positionHistory.push({epd:f,fen:r.position.fen()}),r.moveHistory.push(u),r.moveLog.push(l.san),c.push(l),n===a.length-1&&t?.onFinished&&d.addM
53oveCallback(v2({epd:o,san:l.san}),t.onFinished)}c.length>0&&(r.forwardMoveHistory=[],r.forwardPositionHistory=[],r.moveLogPgn=mp.toPgn(r.moveLog)),mV(c.length===a.length,`moves and animateLine are not the same length, invalid move!`);let l=q().userState.getFrontendSetting(`pieceAnimation`).value;t?.animated&&(t.forceAnimation||l!==`disabled`)?(n.pieceLayer.snap(w0(new ip(`${o} 0 1`))),r.animationQueue=mu(Yd(s,c),([e,n])=>(mV(!!n&&!!e,`move or epd are null`),{epd:e,animationSpeed:t.speed,sound:`move`,...n})),d.stepAnimationQueue({firstMove:!0})):S2(n,r),r.notifyingDelegates=!0,r.delegate?.onPositionUpdated?.(),r.onPositionUpdate.call()})}};return BF(d),Object.freeze(d),[i,d,o]},D2=({epd:e,side:t,nextMove:n,hideCoordinates:r=!1,autoCleanup:i})=>{let[,a]=E2(void 0,{autoCleanup:i}),o=`${e} 0 1`;return a.setPosition(ez(new ip(o))),a.setPerspective(t),n&&a.makeMove(n,{sound:`none`,animate:!1}),a.set(e=>{e.hideCoordinates=r}),a},O2=(e,t)=>{let n=(t,n)=>e(e=>t([e.auditState,e])),r=(e,n)=>t(t=>e([t.auditState,t])),i={chessboard:E2()[1],tableResponses:[],onPositionUpdate:()=>{},getNumDifficultMoves:()=>r(([e])=>e.queue.length),buildQueue:()=>{n(([e])=>{if(!Y().repertoires)return;let t=[];mu(Y().getRepertoires(),(e,n)=>{let r=new Set,i=(n,a,o,s=`black`,c)=>{if(r.has(n))return;r.add(n),c?.mine&&!c.isDisabled&&sC.isDifficult(c.srs)&&t.push({move:c,line:Hl(a,1),repertoireId:e.id});let l=ru(e.positionResponses[n]??[],e=>!e.isDisabled);l=jd(l,e=>-(e.incidence??0)),l.map(e=>i(e.epdAfter,[...a,e.sanPlus],o.concat(e.epdAfter),oC.flip(s),e))};i(fp,[],[fp])}),e.queue=t})},setupNextAuditMove:()=>{n(([e])=>{e.activeMove&&e.queue.shift(),e.activeMove=e.queue[0]??null,e.activeMove&&(e.chessboard.setPerspective(e.activeMove.move.side),e.chessboard.playLine(e.activeMove.line,{animated:!0})),X().actions.fetchNeededPositionReports()})},queue:[],activeMove:null,skipMove:e=>{n(([t])=>{t.setupNextAuditMove(),e.temporary})},updateTableResponses:()=>n(([e])=>{if(!e.activeMove){e.tableResponses=[];return}let{move:t,repertoireId:r}=e.activeMove,i=t.side,a=t.epd;e.tableResponses=mk({repertoireId:r,currentEpd:a,currentSide:i,currentLine:e.chessboard.getMoveLog(),onStockfishUpdate:()=>{n(([e])=>{e.updateTableResponses()})}})})};return i.chessboard=E2()[1],i.chessboard.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{n(([e])=>{e.onPositionUpdate()})},madeManualMove:()=>{r(([e,t])=>{})},onBack:()=>{n(([e])=>{})},onReset:()=>{n(([e])=>{})},onMovePlayed:()=>{n(([e,t])=>{})},shouldMakeMove:e=>n(([e])=>!0)}}),i},k2=l(`<span>`),A2=l(`<div class="row w-full items-baseline justify-between padding-sidebar"><div class="row items-center space-x-4 lg:space-x-8">`),j2=l(`<div class="h-4 lg:h-10">`),M2=l(`<p class="body-text leading-5 padding-sidebar">`),N2=l(`<div>`),P2=l(`<div class="row items-center"><p></p><i>`),F2=e=>A(()=>e.children),I2=()=>{QI(()=>!!x6().previousQuizPosition,()=>{Z(e=>{f()?.(`left`),e.cardsState.reviewState.backToLastQuizPosition()})},`stay`);let e=()=>x6().currentQuizPosition,t=()=>x6().quizPositionStage;NR(e=>{Le&&e===`a`&&Z(e=>{let t=e.repertoireState.reviewState.derived.getNextReviewPositionMove();if(!t)return;let n=Q().getActiveChessboard().get(e=>e.position).validateMoves([t.sanPlus])[0];Q().getActiveChessboard().requestToMakeMove(n)})});let n=N6(),r=()=>x6().reviewStats,i=()=>[{icon:`fa fa-clock`,class:`text-learning`,text:`${r().due+1} Due`},{icon:`fa-kit fa-tick`,class:`text-inverse bg-success rounded-full`,text:r().correct},{icon:`fa-kit fa-cross`,class:`text-inverse bg-danger rounded-full`,text:r().incorrect}],a=()=>{let r=e()?.card;if(!r)return[];let i=[];return t()===V2.Full?r.srs.firstReview?(i.push({onPress:()=>{Z(e=>{x6().setupNextQuizPosition()})},style:`primary`,text:`Keep this position for future review`}),i.push({onPress:()=>{Z(e=>{E6().deleteCard(r),x6().setupNextQuizPosition()})},style:`primary`,text:`I don't need to see this card again`})):i.push({onPress:()=>{Z(e=>{f()?.(`right`),e.cardsState.reviewState.setupNextQuizPosition()})},style:`primary`,text:`Got it, continue practicing`}):t()!==V2.Arrows&&i.push({onPress:()=>{Z(e=>{K(`${n()}.give_up`),x6().giveUp()})},style:`primary`,text:`I don't know, show me the answer`}),i},s=q().userState,c=()=>s.user;_(()=>su(MN,e=>e.boardTheme===c()?.theme)||NN.default);let l=()=>{let t=e()?.card;if(!t)return`TODO`;if(!t.winChanceAfter)return`Find a good move in this position.`;let n=L2(t.winChance),r=L2(t.winChanceAfter);return[`You took this position from`,` `,(()=>{var e=k2();return N(e,()=>n[0]),M(()=>`text-${n[1]} font-semibold`,(t,n)=>{P(e,t,n)}),e})(),` to`,` `,(()=>{var e=k2();return N(e,()=>r[0]),M(()=>`text-${r[1]} font-semibold`,(t,n)=>{P(e,t,n)}),e})(),`. Find a better move.`]},u=()=>{if(x6().chessboard.getIsAnimating())return[];let n=e()?.card.bestMoves?.filter(e=>t()===V2.Arrows);if(!n||n.length===0)return[];let r=new ip(`${e().card.epd} 0 1`);return mu(n.map(e=>r.validateMoves([e])[0]),e=>({move:e,played:!1}))},d=()=>q().cardsState.reviewState.chessboard.get(e=>e.flipped),[f,p]=o(null),m=()=>x6().chessboard.get(e=>!!e.drag.square);return[x(Iz,{get board(){return x6().chessboard},children:e=>x(F2,{onEnter:(e,t)=>{e.animate([{opacity:0}
53,{opacity:1}],{duration:c2()}).finished.then(t)},onExit:(e,t)=>{e.animate([{opacity:1},{opacity:0}],{duration:c2()}).finished.then(t)},get children(){return x(j,{get when(){return A(()=>!m())()&&Q().currentView()?.component===I2},get children(){return x(b,{get each(){return u()},children:t=>(()=>{var n=N2();return N(n,x(Lz,{part:e,get transitionDurationMs(){return c2()},get faded(){return!!m()||t.played},get flipped(){return d()},get toSquare(){return t.move.to},get fromSquare(){return t.move.from}})),n})()})}})}})}),x($,{header:null,actions:[],get children(){return[(()=>{var e=A2(),t=e.firstChild;return N(e,x(Zd,{get children(){return ON()?`Reviewing`:`Reviewing cards`}}),t),N(t,x(b,{get each(){return i()},children:e=>{var t=P2(),n=t.firstChild,r=n.nextSibling;return N(n,()=>e.text),M(()=>({e:F(L(`text-sm font-semibold lg:text-base text-secondary`)),t:F(L(e.class,e.icon,` ml-2 text-sm lg:text-base`))}),({e,t},i)=>{P(n,e,i?.e),P(r,t,i?.t)}),t}})),e})(),j2(),x(IG,{setAnimateSidebar:e=>p(()=>e),class:`space-y-4 lg:space-y-6`,get children(){return[x(j,{get when(){return l()},get children(){var e=M2();return N(e,l),e}}),x(H6,{get actions(){return a()}})]}})]}})]};LF(I2,`review`);function L2(e){return e>=.9?[`totally winning`,`success`]:e>=.7?[`somewhat winning`,`success`]:e>.55?[`slightly winning`,`gray-96`]:e>=.45?[`even`,`gray-96`]:e>=.3?[`somewhat lost`,`caution`]:e>=.1?[`clearly lost`,`danger`]:[`totally lost`,`danger`]}var R2;(function(e){e.getMoveRating=(e,t)=>{let n=[dC.Blunder,dC.Inaccuracy,dC.Mistake];for(let r of n)if(e.sansByMoveRating[r]?.includes(t))return r;return dC.Good}})(R2||={});var z2=e=>{mn.error(e)},B2={due:0,correct:0,incorrect:0},V2=function(e){return e[e.Start=0]=`Start`,e[e.Hints=1]=`Hints`,e[e.Arrows=2]=`Arrows`,e[e.Full=3]=`Full`,e}({}),H2=()=>{let e=(e,t)=>Z(t=>e([t.cardsState.reviewState,t.cardsState,t])),t=e=>e([q().cardsState.reviewState,q().cardsState,q()]),n={originalQueue:null,viewingLastQuizPosition:!1,allReviewPositions:{},quizPositionStage:0,chessboard:void 0,reviewStats:Sc(B2),reviewSide:`white`,activeOptions:null,activeQueue:[],onSessionEnd:new AE,currentQuizPosition:null,incorrectGuessesThisQuizPosition:0,previousQuizPosition:null,markCardReviewed:t=>{hN.call([`cards.reviewCard`,{cardId:t.id,correct:t.result===`correct`}]).then(n=>{e(([e,r])=>{r.cards?.forEach(e=>{e.id===t.id&&(e.srs=n)})})})},resumeReview:()=>{e(([e,t,n])=>{Q().ensureView(I2)})},onPositionUpdate:()=>{e(([e,t])=>{})},startReview:t=>e(([e,n,r])=>{e.reviewStats=Sc(B2),e.currentQuizPosition=null,vX(`right`),e.activeOptions=t??null,e.updateQueue(t),e.allReviewPositions={},e.activeQueue.forEach(t=>{e.allReviewPositions[t.card.id]={failed:!1,reviewed:!1}}),e.originalQueue=AI(e.activeQueue),e.setupNextQuizPosition(),Q().pushView(I2)}),backToLastQuizPosition:()=>e(([e])=>{e.viewingLastQuizPosition=!0,e.activeQueue.unshift(e.currentQuizPosition),e.currentQuizPosition=e.previousQuizPosition,e.previousQuizPosition=null,e.setupCurrentQuizPosition(),e.playCorrectMove(),e.quizPositionStage=3}),setupNextQuizPosition:()=>e(([e,t,n])=>{if(e.previousQuizPosition=null,e.viewingLastQuizPosition=!1,e.chessboard.setFrozen(!1),e.currentQuizPosition&&!e.viewingLastQuizPosition){let t=e.currentQuizPosition.card;e.markCardReviewed({result:e.allReviewPositions[t.id]?.failed?`incorrect`:`correct`,id:t.id})}if(e.currentQuizPosition&&(e.previousQuizPosition=AI(e.currentQuizPosition)),e.currentQuizPosition=e.activeQueue.shift()??null,e.setupCurrentQuizPosition(),!e.currentQuizPosition){t.onCardsUpdate(),Q().cutView(),z2(`push view`),K(`review.review_complete`);return}}),setupCurrentQuizPosition:()=>e(([e,t])=>{if(e.quizPositionStage=0,e.incorrectGuessesThisQuizPosition=0,e.chessboard.setTapOptions([]),e.chessboard.setMode(`normal`),e.chessboard.highlightSquare(null),e.currentQuizPosition){if(e.reviewStats.due=e.activeQueue.length,e.reviewSide=e.currentQuizPosition.card.side,e.chessboard.setPerspective(e.reviewSide),e.chessboard.set(e=>{e.hideLastMoveHighlight=!1}),e.currentQuizPosition.card.previousEpd){let t=ez(new ip(EE.toFen(e.currentQuizPosition.card.previousEpd)));e.chessboard.setPosition(t),e.chessboard.makeMove(e.currentQuizPosition.card.san,{animate:!0,sound:`move`})}else{let t=ez(new ip(EE.toFen(e.currentQuizPosition.card.epd)));e.chessboard.setPosition(t)}e.chessboard.setPerspective(e.currentQuizPosition.card.side),e.chessboard.set(t=>{t.associatedCard=e.currentQuizPosition.card})}}),playCorrectMove:t=>{e(([e])=>{let n=e.currentQuizPosition?.card;if(!n)return;let r=e.chessboard.get(e=>e.position).validateMoves([n.bestMoves[0]])?.[0];r&&(e.markRemaining({markAs:t?.markAs??null,completed:!0}),e.chessboard.setFrozen(!0),e.chessboard.makeMove(r,{animate:!0,sound:`move`}))})},markRemaining:({markAs:t})=>e(([e])=>{e.currentQuizPosition?.card.id&&t&&(e.allReviewPositions[e.currentQuizPosition.card.id].failed=t===`incorrect`,e.allReviewPositions[e.currentQuizPosition.card.id].reviewed=!0)}),giveUp:()=>e(([e,t])=>{e.quizPositionStage=2,e.markRemaining({markAs:`incorrect`,completed:!1})},`giveUp`),hasAnnotationsForCurrentQuizPosition:()=>t(([e,t])=>(z2(`hasAnnotationsForCurrentQuizPosition`),!1)),stopReviewing:()=>e(([e,t])=>{t.onCardsUpdate(),e.chessboard.setTapOptions([]),e.onSessionEnd.callAndClear()}),buildQueue:e=>t(([t,n,r])=>
53{if(Kt(n.cards))return[];let i=[],a=new Date,o=n.cards;return o=wd(o),Kl(o,t=>{let n=sC.isReviewDue(t.srs,a)&&!t.srs.firstReview,r=sC.isDifficult(t.srs);if(!(e.filter===`difficult-due`&&r&&n||e.filter===`new`&&t.srs.firstReview||typeof e.filter==`function`&&e.filter(t)&&!t.srs.firstReview||e.filter===`recommended`&&n||e.filter===`due`&&n||e.filter===`difficult`&&r||e.filter===`all`||e.filter===`early`))return;let o={card:t};i.push(o)}),e.filter===`new`&&(i=bd(jd(i,e=>e.card.createdAt))),i}),inspectCurrentLine:()=>e(([e,t])=>{z2(`inspectCurrentLine`)}),invalidateSession:()=>e(([t,n])=>{Q().mode===`review`?t.onSessionEnd.add(()=>{e(([e])=>{e.activeQueue=[]})}):t.activeQueue=[]}),updateQueue:t=>e(([e])=>{e.activeQueue=e.buildQueue(t)??[],e.reviewStats={due:e.activeQueue.length,incorrect:0,correct:0}})};return n.chessboard=E2()[1],n.chessboard.set(n=>{n.delegate={askForPromotionPiece:e=>t(([e])=>null),onPositionUpdated:()=>{e(([e])=>{e.onPositionUpdate()})},madeMove:Hi,shouldMakeMove:t=>e(([n])=>{let r=t.san,i=n.currentQuizPosition?.card;if(!i)return!1;let a=R2.getMoveRating(i,r),o=a===dC.Good,s={result:a===dC.Good?`correct`:a===dC.Inaccuracy?`inaccuracy`:a===dC.Mistake?`mistake`:(dC.Blunder,`blunder`)},c=!1;return o&&(n.reviewStats.correct++,n.allReviewPositions[i.id].failed=!1,n.allReviewPositions[i.id].reviewed=!0,c=!0),n.incorrectGuessesThisQuizPosition>1&&(c=!1,n.quizPositionStage=3),n.chessboard.showMoveFeedback({square:t.to,result:s.result,keep:!0},()=>{e(([n])=>{if(c){n.quizPositionStage=3;return}let r=()=>{e(([n])=>{n.chessboard.dismissMoveFeedback({square:t.to,delay:500},()=>{e(([e])=>{e.chessboard.backOne({clear:!0}),e.chessboard.backOne({clear:!0})})})})},i=n.chessboard.get(e=>e.position),a=n.currentQuizPosition?.card.refutations[t.san],[o]=i.validateMoves([a]);mV(!!o,`refutationMove is nil`),MV(s2()).then(()=>{e(([e])=>{e.chessboard.makeMove(o,{animate:!0,sound:`move`}).then(async()=>{r()})})})})}),!0})}}),n},U2=e=>[e.cardsState,e],W2=(e,t)=>{let n=(t,n)=>e(e=>t(U2(e))),r=(e,n)=>t(t=>e(U2(t))),i={cards:void 0,chessboardOverview:void 0,reviewState:H2(),onboarding:!1,chessboardBuild:void 0,totalDue:0,processingState:{isFetching:!1,processingCards:0,processingGames:0},earliestDue:void 0,deleteCard:e=>{n(([t])=>{t.cards&&(hN.call([`cards.deleteCard`,{cardId:e.id}]),t.cards=ru(t.cards,t=>t.id!==e.id),t.onCardsUpdate())})},addCard:e=>{n(([t])=>{t.cards&&(Ad(t.cards,t=>t.id===e.id)||(t.cards?.push(e),t.onCardsUpdate()))})},onCardsUpdate:()=>{n(([e])=>{e.cards&&(e.totalDue=ru(e.cards,e=>sC.isReviewDue(e.srs)&&!e.srs.firstReview).length,e.earliestDue=jd(e.cards.map(e=>e.srs?.dueAt).filter(Kt),e=>e)[0]??void 0)})},initState:()=>{n(([e,t])=>{e.fetchCards()})},fetchCards:()=>{n(([e])=>{e.processingState.isFetching=!0}),hN.call([`cards.fetchCards`,{}]).then(e=>{n(([t,n])=>{t.cards=e,t.onCardsUpdate(),H(e)||(n.userState.pastLandingPage=!0)})})}};return i.chessboardOverview=E2()[1],i.chessboardOverview.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{n(([e])=>{})},madeManualMove:()=>{r(([e,t])=>{})},onBack:()=>{n(([e])=>{})},onReset:()=>{n(([e])=>{})},onMovePlayed:()=>{n(([e,t])=>{})},shouldMakeMove:e=>n(([e])=>!0)}}),i.chessboardBuild=E2()[1],i.chessboardBuild.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{n(([e])=>{})},madeManualMove:()=>{r(([e,t])=>{})},onBack:()=>{n(([e])=>{})},onReset:()=>{n(([e])=>{})},onMovePlayed:()=>{n(([e,t])=>{})},shouldMakeMove:e=>n(([e])=>!0)}}),i},G2=(e,t)=>{let n=(t,n)=>e(e=>t([e.coursesState,e])),r=(e,n)=>t(t=>e([t.coursesState,t]));return{chessboard:E2(`courses`)[1],courses:null,loading:!1,selectedRating:null,selectedThreshold:null,setSelectedRating(e){n(([t])=>{t.selectedRating=e})},setSelectedThreshold(e){n(([t])=>{t.selectedThreshold=e})},async fetchCourses(){let[e,t]=r(([e])=>[e.selectedRating,e.selectedThreshold]);n(([e])=>{e.loading=!0});let i=await hN.call([`openings.courses.browse`,{filters:{eloRange:e,threshold:t}}]);n(([e])=>{e.courses=i,e.loading=!1})},clearCourses(){n(([e])=>{e.courses=null})}}},K2=e=>`${e.date}-${e.epd}-${e.side}`,q2={},J2=(e,t)=>{let n=(t,n)=>e(e=>t([e.dailyReviewsState,e])),r=(e,n)=>t(t=>e([t.dailyReviewsState,t]));return{reviews:{},reviewCount:0,lastDateFiltered:null,getCompletedToday:()=>{let e=(0,RN.default)().format(`YYYY-MM-DD`);return r(([t])=>t.lastDateFiltered===e?t.reviewCount:0)},getRemainingToday:e=>{let t=Number(J().getFrontendSetting(`recommendedMovesSize`).value),n=(0,RN.default)().format(`YYYY-MM-DD`);return r(([r])=>{let i=r.lastDateFiltered===n?r.reviewCount:0;return jo(t-i,0,e)})},getIsComplete:e=>{let t=Number(J().getFrontendSetting(`recommendedMovesSize`).value),n=j6().getCompletedToday();return n>=t||n>0&&e===0}
53,setReviewsFromResponse:e=>{let t=(0,RN.default)().format(`YYYY-MM-DD`),r={};e.forEach(e=>{e.date===t&&(r[K2(e)]=e)}),n(([e])=>{e.reviews=r,e.reviewCount=Object.keys(r).length,e.lastDateFiltered=t})},addReview:e=>{let t=(0,RN.default)().format(`YYYY-MM-DD`);e.date===t&&n(([n])=>{n.lastDateFiltered!==t&&(n.reviews={},n.reviewCount=0,n.lastDateFiltered=t),!n.reviews[K2(e)]&&(n.reviews[K2(e)]=e,n.reviewCount++)})},addReviews:e=>{let t=(0,RN.default)().format(`YYYY-MM-DD`);n(([n])=>{n.lastDateFiltered!==t&&(n.reviews={},n.reviewCount=0,n.lastDateFiltered=t),e.forEach(e=>{if(e.date!==t)return;let r=K2(e);n.reviews[r]||(n.reviews[r]=e,n.reviewCount++)})})},clearReviews:()=>{n(([e])=>{e.reviews={},e.reviewCount=0,e.lastDateFiltered=null})},flushStaleReviews:()=>{n(([e])=>{let t=(0,RN.default)().format(`YYYY-MM-DD`);e.lastDateFiltered!==t&&(e.reviews={},e.reviewCount=0,e.lastDateFiltered=t)})},getReviews:()=>{let e=(0,RN.default)().format(`YYYY-MM-DD`);return r(([t])=>t.lastDateFiltered===e?t.reviews:q2)}}},Y2=(e,t)=>({...eC((t,n)=>e(e=>t(e.debugState))),debugUi:!1,underConstruction:!1}),X2=(e,t)=>{let n=(t,n)=>e(e=>t([e.navigationState,e]));return{...eC((t,n)=>e(e=>t(e.navigationState))),navigationUi:!1,setNavigate:e=>{n(([t])=>{t._navigate=e})},push:(e,t)=>{n(([n])=>{let r=`${e}${window.location.search}`;(t?.removeParams||Kt(window.location.search))&&(r=`${e}`),n._navigate(r)})}}},Z2=[[600,1.28],[700,1.28],[800,1.26],[900,1.26],[1e3,1.26],[1100,1.26],[1200,1.26],[1300,1.22],[1400,1.2],[1500,1.18],[1600,1.16],[1700,1.1],[1800,1.04],[1900,.988],[2e3,.988],[2100,.988],[2200,.98],[2300,.94],[2400,.88],[2500,.78],[2600,.68],[2700,.6],[2800,.6]],Q2=e=>{let t=Z2[0],n=Z2[Z2.length-1];if(e<=t[0])return t[1];if(e>=n[0])return n[1];for(let t=1;t<Z2.length;t++){let[n,r]=Z2[t];if(e<=n){let[i,a]=Z2[t-1];return a+(e-i)/(n-i)*(r-a)}}return n[1]},$2=(e,t,n=Math.random)=>{let r=1/Q2(t),i=e.map(e=>Math.max(e.probability,0)**r),a=i.reduce((e,t)=>e+t,0);if(e.length===0||!(a>0))return null;let o=n()*a;for(let t=0;t<e.length;t++)if(o-=i[t],o<0)return e[t];return e[e.length-1]},e4=`Anish.Levon.Ian.Maxime.Shakhriyar.Teimour.Richard.Dmitry.Vladimir.Alexander.Boris.Garry.Anatoly.Viktor.Sergey.Vassily.David.Lev.Mikhail.Gata.Samuel.Radoslaw.Nikita.Vladislav.Daniel.Michael.Arkadij`.split(`.`),t4=100,n4=800,r4=250,i4=256,a4=[500,1500],o4=16,s4=[{label:`Losing`,value:`0`},{label:`Worse`,value:`1`},{label:`Equal`,value:`2`},{label:`Better`,value:`3`},{label:`Winning`,value:`4`}],c4={assessment:s4,opponent_resigns:[{label:`Accept resignation`,value:`accept`},{label:`Play on`,value:`decline`}],suggest_resign:[{label:`Resign`,value:`resign`},{label:`Keep fighting`,value:`decline`}]},l4=e=>{let[t,n]=e.split(`+`).map(Number);return{initialMs:(t||3)*6e4,incrementMs:(n||0)*1e3}},u4=(e,t,n,r)=>{let i=t===`white`?e.whiteMs:e.blackMs;return e.turnStartedAt===null||t!==n?i:Math.max(0,i-(r-e.turnStartedAt))},d4=e=>{let t=e.win+e.draw/2;return t<.3?0:t<.43?1:t<=.57?2:t<=.7?3:4},f4=e=>{let t=e.reduce((e,{weight:t})=>e+t,0);if(e.length===0||t<=0)return null;let n=Math.random()*t;for(let{item:t,weight:r}of e)if(n-=r,n<0)return t;return e[e.length-1].item},p4=async e=>{for(let t of a4)try{return await e()}catch(e){console.warn(`[play_state] retrying after error`,e),await g4(t)}return e()},m4=e=>{if(e<1)return m4(e+1)*Math.random()**(1/e);let t=e-1/3,n=1/Math.sqrt(9*t);for(;;){let e=Math.sqrt(-2*Math.log(1-Math.random()))*Math.cos(2*Math.PI*Math.random()),r=(1+n*e)**3;if(r>0&&Math.log(1-Math.random())<e**2/2+t-t*r+t*Math.log(r))return t*r}},h4=(e,t)=>{let n=m4(e);return n/(n+m4(t))},g4=e=>new Promise(t=>setTimeout(t,e)),_4=e=>e===`white`?`black`:`white`,v4=e=>`${Math.round(e*100)}%`,y4=(e,t)=>
53{let n=E2(`play_state`)[1],r=WI({status:`idle`,userSide:`white`,opponent:null,timeControl:l4(`3+2`),clock:{whiteMs:0,blackMs:0,turnStartedAt:null},analysis:{},botStuck:!1,result:null,messages:[],prompt:null}),i=r.state,a=e=>r.set(e),o=e=>e(r.current()),s=null,c=0,l=null,u=()=>n.get(e=>e.position),d=()=>n.getPly(),f=()=>u().turn()===`w`?`white`:`black`,p=e=>s===e&&o(e=>e.status===`playing`),m=()=>Math.round(J().user?.trainingRating??1500),h=(e,t)=>{a(n=>{n.messages.push({id:c++,from:e,text:t})})},g=(e,t,n)=>!e.said[t]&&(e.said[t]=!0,h(`coach`,n),!0),_=(e,t,n)=>{h(t,n),a(t=>{t.prompt=e})},v=async(e,t,n,r)=>{let i=_4(r),a={[r]:m(),[i]:n.rating},s=o(e=>e.timeControl),c={history:e,whiteTimeMs:Math.round(t.whiteMs),blackTimeMs:Math.round(t.blackMs),whiteElo:a.white,blackElo:a.black,timeControl:{initialTimeMs:s.initialMs,incrementMs:s.incrementMs},topN:i4,clockMissing:!1},l=await hN.call([`bot.predict`,c]),u=(e.length%2==0?`white`:`black`)===r,{winProb:d,drawProb:f,lossProb:p}=l.wdl;return{request:c,response:l,analysis:{wdl:u?{win:d,draw:f,loss:p}:{win:p,draw:f,loss:d},moves:l.moves,timeUsage:l.timeUsage.alpha>0&&l.timeUsage.beta>0?{alpha:l.timeUsage.alpha,beta:l.timeUsage.beta}:null}}},y=async e=>{await G.ensureLoaded();let t=await G.getTopMoves(e,{pv:1,nodes:YD.STANDARD,source:`play`});return{eval:t.evaluation,bestMove:t.moves[0]?.san??null}},b=e=>{let t=d(),i=n.getMoveLog(),o=n.getCurrentEpd(),{clock:c,opponent:l,userSide:u}=r.current();if(!l||!e.gameId)return;let f=p4(()=>v(i,c,l,u));e.oxiRequests[t]=f.then(({analysis:e})=>e),f.then(({analysis:n,request:r,response:i})=>{e.botPredictions[t]={ply:t,request:r,response:i,playedMove:null},x(e,t),s===e&&(a(e=>{e.analysis[t]={...e.analysis[t],oxi:n}}),S(e,t))}).catch(e=>console.error(`[play_state] bot.predict failed`,e)),y(o).then(n=>{s===e&&(a(e=>{e.analysis[t]={...e.analysis[t],engine:n}}),S(e,t),S(e,t+1))}).catch(e=>console.warn(`[play_state] Stockfish unavailable`,e))},x=async(e,t)=>{let n=e.gameId,r=e.botPredictions[t];if(n&&r)try{await hN.call([`trainingGames.recordPrediction`,{gameId:n,prediction:{...r}}])}catch(e){console.error(`[play_state] failed to record bot prediction`,e)}},S=(e,t)=>{if(!p(e))return;let{analysis:i,userSide:a,opponent:s}=r.current(),c=i[t-1],l=i[t],u=(t%2==0?`white`:`black`)===a;if(!u&&c?.engine&&l?.engine&&!e.reviewedPlies[t]){e.reviewedPlies[t]=!0;let r=CE({before:c.engine.eval,after:l.engine.eval,side:a}),i=n.getMoveLog()[t-1],o=c.engine.bestMove;if((r===dC.Blunder||r===dC.Mistake)&&o&&o!==i){let e=r===dC.Blunder?`a blunder`:`a mistake`;h(`coach`,`${i} was ${e}. ${o} was the move there.`)}}if(!u||t!==d()||t<o4)return;let f=l?.oxi;if(!f||o(e=>e.prompt))return;if(f.wdl.win>=.85&&!e.said.offered_resignation){e.said.offered_resignation=!0,_(`opponent_resigns`,`opponent`,`I think I'm lost here, I'd give myself about ${v4(f.wdl.loss)}. Want to call it?`);return}if(f.wdl.loss>=.95&&!e.said.suggested_resignation){e.said.suggested_resignation=!0,_(`suggest_resign`,`coach`,`It's probably time to resign, your chances against ${s?.name??`your opponent`} are only about ${v4(f.wdl.win+f.wdl.draw/2)}.`);return}let m=l?.engine?.eval.getPovWinPercentage(a);m!==void 0&&m<.2&&f.wdl.win>.3&&g(e,`swindle`,`You're objectively losing, but it's not over. I'd give you about ${v4(f.wdl.win)} to win from here. Keep it complicated.`)},C=(e,t)=>{if(e.repertoire!==`following`)return;let r=n.get(e=>e.positionHistory),i=r[r.length-2]?.epd,a=o(e=>e.userSide),s=(q().repertoireState.superRepertoires?.[a]?.positionResponses[i]??[]).filter(e=>!e.isDisabled).map(e=>e.sanPlus);if(s.length===0){e.repertoire=`done`,e.playedRepertoireMove&&g(e,`finished_repertoire`,`That's the end of your saved moves, and you played them perfectly.`);return}let c=s.includes(t.san);if(n.showMoveFeedback({square:t.to,result:c?`correct`:`incorrect`,size:`small`},Hi),c){e.playedRepertoireMove=!0;return}e.repertoire=`done`,g(e,`left_repertoire`,`That's not your saved move. You play ${HL(s)} here.`)},w=e=>{e.flagTimer&&clearTimeout(e.flagTimer),e.flagTimer=null;let t=o(e=>e.clock);if(t.turnStartedAt===null)return;let n=u4(t,f(),f(),Date.now());e.flagTimer=setTimeout(()=>{if(!p(e))return;let t=f();if(u4(o(e=>e.clock),t,t,Date.now())>0){w(e);return}O(e,{winner:_4(t),reason:`timeout`})},n+20)},T=()=>{let e=u();return e.inCheckmate()?{winner:_4(f()),reason:`checkmate`}:e.inStalemate()?{winner:`draw`,reason:`stalemate`}:e.insufficientMaterial()?{winner:`draw`,reason:`insufficient material`}:e.inThreefoldRepetition()?{winner:`draw`,reason:`repetition`}:e.inDraw()?{winner:`draw`,reason:`50-move rule`}:null},E=(e,t,n)=>{a(r=>{let{clock:i,timeControl:a}=r,o=t===`white`?`whiteMs`:`blackMs`;i.turnStartedAt!==null&&(i[o]=Math.max(0,i[o]-(n-i.turnStartedAt))),d()>=3&&(i[o]+=a.incrementMs),i.turnStartedAt=d()>=2&&!e.paused?n:null,r.prompt=null});let r=T();if(r){O(e,r);return}b(e),!e.paused&&(w(e),f()!==o(e=>e.userSide)&&ee(e))},D=async e=>{if(!e.inBook)return null;let t=n.get(e=>e.positionHistory);try{let{reports:e}=await hN.call([`openings.fetchPositionReportAndAnnotations`,{reports:[{epd:n.getCurrentEpd(),moves:n.getMoveLog(),previousEpds:t.slice(0,-1).map(e=>e.epd),side:o(e=>e.userSide)}],keps:[]}]),r=e[0];if((r?r.results.white+r.results.black+r.results.draw:0)>=t4){let e=new Set(u().moves()),t=f4(r.suggestedMoves.filter(t=>t.moveProbability!==null&&e.has(t.sanPlus)).map(e=>({item:e.sanPlus,weight:e.moveProbability??0})));if(t)return t}}catch(e){console.warn(`[play_state] opening book unavailable`,e)}return e.inBook=!1,null},ee=async e=>{let t=d(),r=++e.botTurn,i=()=>
53p(e)&&!e.paused&&e.botTurn===r&&d()===t,s=Date.now();a(e=>{e.botStuck=!1});let c=await D(e),l=null;try{l=await e.oxiRequests[t]}catch{}if(!i())return;let m=new Set(u().moves()),g=o(e=>e.opponent?.rating),_=c??(l&&g!==void 0?$2(l.moves.filter(e=>m.has(e.san)),g)?.san??null:null);if(!_){a(e=>{e.botStuck=!0}),h(`coach`,`Couldn't reach Oxi to get its move.`);return}let v=f(),y=o(e=>e.clock),b=v===`white`?y.whiteMs:y.blackMs,S=u4(y,v,v,Date.now()),C=l?.timeUsage?h4(l.timeUsage.alpha,l.timeUsage.beta)*b:c?n4:b/40;if(await g4(Math.min(Math.max(C,r4),S-200)-(Date.now()-s)),!i())return;let w=Date.now();if(await n.makeMove(_,{sound:`move`}),d()===t){console.error(`[play_state] board rejected bot move`,_),a(e=>{e.botStuck=!0});return}e.botPredictions[t]&&(e.botPredictions[t].playedMove=_,x(e,t)),p(e)&&E(e,v,w)},te=(e,t,n)=>{if(e.winner===`draw`)return`Draw by ${e.reason}.`;let r=e.winner===t;switch(e.reason){case`checkmate`:return r?`Checkmate, you won!`:`${n} checkmated you.`;case`timeout`:return r?`${n} ran out of time, you won!`:`You ran out of time.`;case`resignation`:return r?`${n} resigned, you won!`:`You resigned.`;default:return r?`You won!`:`You lost.`}},O=(e,t)=>{if(!p(e))return;e.flagTimer&&clearTimeout(e.flagTimer);let n=Date.now();a(e=>{let r=f(),i=r===`white`?`whiteMs`:`blackMs`;e.clock[i]=u4(e.clock,r,r,n),e.clock.turnStartedAt=null,e.status=`over`,e.result=t,e.prompt=null,e.botStuck=!1});let{userSide:i,opponent:o}=r.current();h(`opponent`,`Good game!`),h(`coach`,te(t,i,o?.name??`Your opponent`)),k(e,t)},k=async(e,t)=>{let{userSide:i,opponent:a,analysis:o}=r.current();if(!a||!e.gameId)return;let c=n.get(e=>e.positionHistory);try{let r=await hN.call([`trainingGames.submitTrainingGame`,{gameId:e.gameId,gameResult:t.winner===`draw`?`Draw`:t.winner===i?`Win`:`Loss`,moves:n.getMoveLog(),epds:c.map(e=>e.epd),evals:c.map((e,t)=>{let n=o[t]?.engine?.eval;return n?JSON.stringify({eval:n.eval,mate:n.mate,pv:n.pv}):``})}]);if(s!==e)return;let a=Math.round(r.ratingChange),l=J().user;l&&J().setUser({...l,trainingRating:r.newRating,trainingRatingDeviation:r.newDeviation,trainingRatingVolatility:r.newVolatility}),h(`coach`,`${a>=0?`You gained ${a}`:`You lost ${-a}`} rating points, you're now at ${Math.round(r.newRating)}.`)}catch(t){console.error(`[play_state] failed to submit training game`,t),s===e&&h(`coach`,`Couldn't save this game's result.`)}},A={startNewGame:async()=>{s?.flagTimer&&clearTimeout(s.flagTimer);
53let e={inBook:!0,repertoire:`following`,playedRepertoireMove:!1,said:{},reviewedPlies:{},oxiRequests:{},gameId:null,botPredictions:{},flagTimer:null,paused:!1,botTurn:0};s=e;let t=l?_4(l):Math.random()<.5?`white`:`black`;l=t;let r=l4(J().getFrontendSetting(`trainingGameTimeControl`).value);a(e=>{e.status=`starting`,e.userSide=t,e.opponent=null,e.timeControl=r,e.clock={whiteMs:r.initialMs,blackMs:r.initialMs,turnStartedAt:null},e.analysis={},e.botStuck=!1,e.result=null,e.messages=[],e.prompt=null}),n.resetPosition(),n.setPerspective(t);let i=m(),o=0;try{let e=await hN.call([`trainingGames.generateOpponent`]);i=Math.round(e.opponentRating),o=Math.round(e.potentialRatingGain)}catch(e){console.error(`[play_state] failed to generate opponent`,e)}if(s!==e)return;let c=String(Math.floor(Math.random()*10)+1).padStart(4,`0`),u={name:e4[Math.floor(Math.random()*e4.length)],rating:i,avatar:`/avatars/${c}.png`,ratingGain:o};try{e.gameId=await hN.call([`trainingGames.startTrainingGame`,{botRating:u.rating,userSide:t}])}catch(e){console.error(`[play_state] failed to create training game`,e),h(`coach`,`Couldn't save this game. Please start a new game.`);return}if(s!==e)return;a(e=>{e.opponent=u,e.status=`playing`});let d=u.rating-m(),f=d>=100?`They're stronger than you, but you can do this.`:d<=-100?`They're a bit below your level, but don't underestimate them.`:`This should be a close match.`;h(`coach`,`You're playing ${u.name} (${u.rating}). ${f} A win is worth ${o} points.`),h(`opponent`,`Good luck!`),b(e),t===`black`&&ee(e)},pause:()=>{let e=s;if(!e||!p(e)||e.paused)return;e.paused=!0,e.botTurn++,e.flagTimer&&clearTimeout(e.flagTimer),e.flagTimer=null;let t=Date.now();a(e=>{let n=f(),r=n===`white`?`whiteMs`:`blackMs`;e.clock[r]=u4(e.clock,n,n,t),e.clock.turnStartedAt=null})},resume:()=>{let e=s;e?.paused&&(e.paused=!1,p(e)&&(a(e=>{e.clock.turnStartedAt=d()>=2?Date.now():null}),w(e),f()!==i.userSide&&ee(e)))},retryBotMove:()=>{if(s&&p(s)&&f()!==i.userSide){let e=s;b(e),ee(e)}},resign:()=>{s&&O(s,{winner:_4(i.userSide),reason:`resignation`})},offerDraw:()=>{let e=s;if(!e||!p(e))return;let t=ne.latestAnalysis(`oxi`)?.wdl,n=t?t.loss+t.draw/2:1;d()>=20&&n<=.55?(h(`opponent`,`Sure, a draw seems fair.`),O(e,{winner:`draw`,reason:`agreement`})):h(`opponent`,d()<20?`It's a bit early for that, let's play.`:`No thanks, I'll play on.`)},askWhoIsWinning:()=>{s&&p(s)&&!i.prompt&&_(`assessment`,`coach`,`Before I tell you, who do you think is better here?`)},answerPrompt:e=>{let t=s,n=i.prompt;if(!t||!n||!p(t))return;a(e=>{e.prompt=null});let r=c4[n].find(t=>t.value===e)?.label;if(n===`assessment`){let t=i.analysis[d()]?.oxi;if(!t){h(`coach`,`I'm still thinking about this position, ask me again in a moment.`);return}let n=d4(t.wdl),a=s4[n].label.toLowerCase(),o=`You have about ${v4(t.wdl.win)} to win and ${v4(t.wdl.draw)} to draw.`;h(`coach`,n===Number(e)?`Agreed, ${a}. ${o}`:`You picked ${r?.toLowerCase()}, I'd say ${a}. ${o}`)}else e===`accept`?O(t,{winner:i.userSide,reason:`resignation`}):e===`resign`?O(t,{winner:_4(i.userSide),reason:`resignation`}):h(`coach`,`Alright, let's keep going.`)}},ne={isPlaying:()=>i.status===`playing`,promptOptions:()=>i.prompt?c4[i.prompt]:[],latestAnalysis:e=>{for(let t=n.getPly();t>=0;t--){let n=i.analysis[t]?.[e];if(n)return n}},sideToMove:()=>n.get(e=>e.position.turn())===`w`?`white`:`black`};return n.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:Hi,onReset:Hi,shouldMakeMove:()=>i.status===`playing`&&f()===i.userSide,madeManualMove:()=>{let e=Date.now(),t=s,r=n.getLastMove();t&&r&&(RV(IV.move),C(t,r),E(t,i.userSide,e))}}}),VF({state:i,actions:A,derived:ne,handles:{chessboard:n}})},b4;(function(e){e.getMoveRating=(e,t)=>{let n=[dC.Blunder,dC.Inaccuracy,dC.Mistake];for(let r of n)if(e.sansByMoveRating[r]?.includes(t))return r;return dC.Good}})(b4||={});var x4=e=>{switch(e){case dM.Slow:return`Slow`;case dM.Normal:return`Normal`;case dM.Fast:return`Fast`;case dM.Ludicrous:return`Ludicrous`}},S4=l(`<div class="row items-end"><div>`),C4=()=>{let e=()=>q().userState,t=q().trainersState.visualizationState.playbackSpeedUserSetting,n=()=>e().user?.theme;return[{onPress:()=>{Z(e=>{Q().pushView(n0,{props:{setting:f0.trainerPauseBehavior}})})},text:f0.trainerPauseBehavior.title,right:e().getFrontendSetting(`trainerPauseBehavior`).label,style:`secondary`},{onPress:()=>{Z(e=>{Q().pushView($1)})},text:`Board appearance`,right:`${To((su(MN,e=>e.boardTheme===n())||NN.default).name)}`,style:`secondary`},{onPress:()=>{Z(e=>{Q().pushView(w4)})},text:`Playback speed`,right:x4(t.value??dM.Normal),style:`secondary`}]},w4=()=>{let e=q().trainersState.visualizationState.playbackSpeedUserSetting,t=e=>{K(`trainers.settings.playback_speed`,{speed:x4(e)}),Z(t=>{t.trainersState.visualizationState.playbackSpeedUserSetting.value=e})};return x($,{actions:[],header:`Playback speed`,get children(){return x(oZ,{description:`Set the playback speed of the visualization dot`,get choices(){return[dM.Slow,dM.Normal,dM.Fast,dM.Ludicrous]},get activeChoice(){return e.value},onSelect:t,renderChoice:(e,t)=>{var n=S4(),r=n.firstChild;return N(r,()=>x4(e)),n}})}})},T4=l(`<span style="transition:opacity 400ms ease-out"><span class="animated-number-delta-in inline-block">`),E4=l(`<span><!><!>`),D4=200,O4=700,k4=e=>{let[t,n]=o(e.value),[r,i]=o(0),[a,s]=o(`hidden`),[c,l]=o(0);m(()=>e.value,e=>{let r=t(),a=Math.round(e)-Math.round(r);if(a===0){n(e);return}i(a),s(`entered`),l(e=>e+1);let o,c=setTimeout(()=>{s(`fading`);let t=performance.now(),i=a=>{let c=Math.min((a-t)/O4,1),l=1-(1-c)**3;n(r+(e-r)*l),c<1?o=requestAnimationFrame(i):s(`hidden`)};o=requestAnimationFrame(i)},D4);return()=>{clearTimeout(c),o!==void 0&&cancelAnimationFrame(o)}});
53var u=E4(),d=u.firstChild,f=d.nextSibling;return N(u,()=>Math.round(t()),d),N(u,x(j,{keyed:!0,get when(){return A(()=>a()!==`hidden`)()?c():null},get children(){var t=T4(),n=t.firstChild;return N(n,(()=>{var e=A(()=>r()>0);return()=>e()?`+${r()}`:r()})()),M(()=>F(L(`absolute left-full top-1/2 -translate-y-1/2 ml-2`,r()>0?`text-success`:`text-danger`,a()===`fading`&&`opacity-0`,e.deltaClass)),(e,n)=>{P(t,e,n)}),t}}),f),M(()=>F(L(`relative inline-flex tabular-nums`,e.class)),(e,t)=>{P(u,e,t)}),u},A4=l(`<div class="flex row justify-center padding-sidebar items-center"><div class="col space-y-2 justify-center items-center py-4 md:py-7"><!><!>`),j4=l(`<p class="text-tertiary text-sm font-medium">`),M4=e=>{var t=A4(),n=t.firstChild,r=n.firstChild,i=r.nextSibling;return N(n,x(k4,{get value(){return e.rating},class:`text-primary text-3xl font-semibold`,deltaClass:`text-lg font-medium`}),r),N(n,x(j,{get when(){return e.label},children:e=>(()=>{var t=j4();return N(t,e),t})()}),i),t},N4=l(`<div class="padding-sidebar col gap-2">`),P4=l(`<div>`),F4=l(`<div><div class="text-tertiary text-sm font-medium pb-2"></div><div class="text-primary text-base font-medium">`),I4=l(`<p class=body-text>You'll be presented with a position, all you have to do is not blunder.`),L4=l(`<div class="gap-2 pl-6">`),R4=l(`<p class=body-text>Don't blunder!`),z4=()=>{ze(()=>{w6().onboarded.value===!1&&Q().pushViewNoAnimation(U4)}),m(()=>w6().puzzleStage===`loading`&&J().user!=null,e=>{e&&Z(e=>{e.trainersState.blunderPuzzlesState.initState(),e.userState.fetchPuzzleStats()})});let e=_(()=>{let e=[],t=[];return w6().puzzleStage===`complete`?(e.push({text:`Analyze on Lichess`,onPress:()=>{K(`blunder_puzzles.analyze_on_lichess`,{from:`puzzle_complete`}),uK(n().link)},style:`primary`}),e.push({text:`Continue`,onPress:()=>{K(`blunder_puzzles.continue`),w6().setupNextPuzzle()},style:`focus`})):t.push({text:`Give up`,onPress:()=>w6().giveUp(),style:`primary`}),{completeActions:e,bottomActions:t}}),t=()=>J().puzzleStats,n=()=>w6().getCurrentPuzzle(),r=()=>w6().puzzleStage!==`complete`||!n()?[]:[{label:`Puzzle rating`,value:n().glicko.toFixed(0)}];return x($,{header:null,actions:[],get children(){return[x(j,{get when(){return t()},children:e=>x(M4,{get rating(){return e().blunderPuzzlesGlicko},label:`Your rating`})}),x(j,{get when(){return r().length>0},get children(){return[x(V4,{get stats(){return r()}}),x(R,{between:[`table`,`actions`]})]}}),x(j,{get when(){return e().completeActions.length>0},get children(){return x(H6,{get actions(){return e().completeActions}})}}),x(j,{get when(){return e().bottomActions.length>0},get children(){return[x(R,{height:24}),x(H6,{get actions(){return e().bottomActions}})]}}),x(R,{height:40}),x(W6,{text:`Settings`}),x(H6,{get actions(){return[...C4()]}})]}})},B4=e=>{ze(()=>(Z(t=>{w6().showHistoryOnBoard(e.item)}),()=>{Z(t=>{w6().restoreBoardAfterHistory(e.item)})}));let t=()=>e.item.san?b4.getMoveRating(e.item.puzzle,e.item.san):null,n=()=>e.item.san&&!e.item.passed?e.item.puzzle.refutations[e.item.san]:null;return x($,{get header(){return e.item.passed?`Solved`:`Missed`},actions:[{text:`Analyze on Lichess`,onPress:()=>{K(`blunder_puzzles.analyze_on_lichess`,{from:`history_review`}),uK(e.item.puzzle.link)},style:`primary`}],get children(){return[x(V4,{get stats(){return[{label:`Puzzle rating`,value:e.item.puzzle.glicko.toFixed(0)},{label:`Your move`,value:e.item.san?`${e.item.san} (${To(t()??``)})`:`Gave up`}]}}),x(R,{height:16}),x(V4,{get stats(){return[{label:`Best move`,value:e.item.puzzle.bestMoves[0]??`â`},...n()?[{label:`Refutation`,value:`${e.item.san} ${n()}`}]:[]]}})]}})},V4=e=>{let t=()=>ko(e.stats,3);var n=N4();return N(n,x(b,{get each(){return t()},children:e=>(()=>{var t=P4();return N(t,x(b,{each:e,children:e=>x(H4,{stat:e})})),M(()=>F(L(`flex row justify-start space-x-4`)),(e,n)=>{P(t,e,n)}),t})()})),n},H4=e=>{var t=F4(),n=t.firstChild,r=n.nextSibling;return N(n,()=>e.stat.label),N(r,()=>e.stat.value),M(()=>F(L(`flex min-w-[140px]`,e.stat.align===`right`&&`items-end`)),(e,n)=>{P(t,e,n)}),t},U4=()=>{ze(()=>{K(`blunder_puzzles.onboarding.shown`)});let e=[`There will be many valid moves in every position.`,`Puzzles are matched to your rating.`];return ZI(()=>{},`hide`),x($,{header:`Welcome to Blunderbash!`,bodyPadding:!0,actions:[{onPress:()=>{K(`blunder_puzzles.onboarding.continue`),Z(e=>{w6().onboarded.value=!0,Q().popView({direction:`right`})})},style:`focus`,text:`Got it`}],get children(){return[I4(),x(R,{between:[`body-text`,`bullets`]}),(()=>{var t=L4();return N(t,()=>e.map(e=>x(XL,{children:e}))),t})(),x(R,{between:[`body-text`,`body-text`]}
53),R4()]}})},W4=10,G4=5,K4=200,q4=150,J4=1400,Y4=async(e,t)=>{try{await G.ensureLoaded();let n=new ip(EE.toFen(e.epd)),r=n.turn()===`w`?`white`:`black`;n.move(t.san);let i=dp(n),[a,o]=await Promise.all([G.evalPos({epd:e.epd,nodes:YD.SHALLOW}),G.evalPos({epd:i,nodes:YD.SHALLOW})]);return!a||!o?!1:wE(a.getPovWinPercentage(r),o.getPovWinPercentage(r))!==dC.Blunder}catch{return!1}},X4=e=>e==null?null:e>=.3?dC.Blunder:e>=.2?dC.Mistake:e>=.1?dC.Inaccuracy:null,Z4=(e,t)=>e===`universal`?`Everyone`:e===`rated`&&t!=null?`${Math.round(t/50)*50}`:`Uncommon`,Q4=e=>{let t=e.position.ladderMoves.filter(t=>t.san!==e.san).map(t=>({san:t.san,moveRating:X4(t.evalLoss),grade:Z4(t.kind,t.rating),delta:e.ladderDeltas[t.san]??null,played:!1}));return t.push({san:e.san,moveRating:X4(e.label.evalLoss)??(e.label.sound===!1?dC.Blunder:null),grade:Z4(e.label.kind,e.label.rating),delta:e.delta,played:!0}),t.sort((e,t)=>(t.delta??-1/0)-(e.delta??-1/0)),t},$4=(e,t)=>{let n=new ip(EE.toFen(e.epd)).validateMoves([t])?.[0];return n?{from:n.from,to:n.to}:null},e3=(e,t)=>
53{let n=e.ladderMoves,r=new ip(EE.toFen(e.epd)),i=Math.max(1e-6,...n.map(e=>e.weight)),a=t?.ladderDeltas??{},o=n.map(e=>a[e.san]).filter(e=>e!=null),s=Math.min(...o),c=Math.max(...o),l=e=>{let t=a[e.san];return t==null||o.length<2||c-s<1e-6?e.weight/i:.25+.75*((t-s)/(c-s))},u=n.flatMap(e=>{if(e.san===t?.san)return[];let n=r.validateMoves([e.san])?.[0];return n?[{fromSquare:n.from,toSquare:n.to,san:e.san,weight:l(e)}]:[]});if(t){let e=r.validateMoves([t.san])?.[0];e&&u.push({fromSquare:e.from,toSquare:e.to,san:t.san,weight:1,color:t.delta>=0?B.success:B.danger})}return u},t3=e=>`https://lichess.org/analysis/standard/${EE.toFen(e).replace(/ /g,`_`)}`,n3=()=>{let e=(e,t)=>Z(t=>e([t.trainersState.intuitionBuilderState,t])),t={chessboard:E2()[1],status:`loading`,initialized:!1,positionsQueue:[],positionsHistory:[],resultHistory:[],currentPosition:null,currentResult:null,historyReviewItem:null,styleRating:null,queueAnchorMean:null,fetching:!1,noPositionsAvailable:!1,initState:()=>{e(([t])=>{t.initialized=!0,t.status=`loading`,t.positionsQueue=[],t.positionsHistory=[],t.resultHistory=[],t.currentPosition=null,t.currentResult=null,t.queueAnchorMean=null,t.noPositionsAvailable=!1,t.chessboard.resetPosition(),t.clearProbabilityArrows(),t.fetchPositions().then(t=>{e(([e])=>{if(t.length===0){K(`intuition_builder.no_positions_available`,{at:`init`}),e.noPositionsAvailable=!0;return}e.positionsQueue=t,e.setupNextPosition()})})})},clearProbabilityArrows:()=>{e(([e])=>{e.chessboard.set(e=>{e.probabilityArrows=[]})})},fetchPositions:async()=>{if(T6().fetching)return[];Z(e=>{e.trainersState.intuitionBuilderState.fetching=!0});try{let e=await hN.call([`intuitionBuilder.list`,{count:W4,targetRating:null}]);return Z(t=>{t.trainersState.intuitionBuilderState.styleRating=e.styleRating,t.trainersState.intuitionBuilderState.queueAnchorMean=e.styleRating!=null&&e.styleRating.moveCount>0?e.styleRating.mean:null}),e.positions}finally{Z(e=>{e.trainersState.intuitionBuilderState.fetching=!1})}},refillIfNeeded:()=>{e(([t])=>{t.positionsQueue.length>=G4||t.fetching||t.fetchPositions().then(t=>{e(([e])=>{let n=new Set([...e.positionsQueue,...e.currentPosition?[e.currentPosition]:[]].map(e=>e.id));e.positionsQueue=[...e.positionsQueue,...t.filter(e=>!n.has(e.id))]})})})},setupNextPosition:()=>{e(([t])=>{let n=t.positionsQueue[0];if(!n){t.status=`loading`,t.fetchPositions().then(t=>{e(([e])=>{if(t.length===0){K(`intuition_builder.no_positions_available`,{at:`next_position`}),e.noPositionsAvailable=!0;return}e.positionsQueue=t,e.setupNextPosition()})});return}t.currentPosition&&t.positionsHistory.push(t.currentPosition),t.currentPosition=n,t.currentResult=null,t.positionsQueue=Vl(t.positionsQueue,1),t.status=`ready`,t.historyReviewItem||t.syncBoardToCurrentPosition({animate:!0}),t.refillIfNeeded()})},syncBoardToCurrentPosition:t=>{e(([n])=>{let r=n.currentPosition;if(!r){n.chessboard.resetPosition();return}n.clearProbabilityArrows();let i=ez(new ip(EE.toFen(r.epd)));if(n.chessboard.setPerspective(oC.fromColor(i.turn())),n.chessboard.set(e=>{e.associatedLink=t3(r.epd)}),t.animate&&r.previousEpd&&r.previousSan){let t=ez(new ip(EE.toFen(r.previousEpd)));n.chessboard.setPosition(t),n.chessboard.setFrozen(!0);let i=r.previousSan;n.chessboard.makeMove(i,{animate:!0,sound:`move`,pauseBefore:!0}).then(()=>{e(([e])=>{if(!e.historyReviewItem){if(e.status===`ready`)e.chessboard.setFrozen(!1);else if(e.status===`review`&&e.currentPosition?.id===r.id){let t=e.currentResult;e.chessboard.set(e=>{e.probabilityArrows=e3(r,t)})}}})})}else if(n.chessboard.setPosition(i),n.chessboard.setFrozen(n.status!==`ready`),n.status===`review`){let e=n.currentResult;n.chessboard.set(t=>{t.probabilityArrows=e3(r,e)})}})},continueAfterReview:()=>{e(([e])=>{e.status===`review`&&(K(`intuition_builder.continue_after_review`,{passed:e.currentResult?.passed,delta:e.currentResult?.delta}),e.setupNextPosition())})},showHistoryOnBoard:t=>{e(([e])=>{e.historyReviewItem=t;let n=ez(new ip(EE.toFen(t.position.epd)));e.chessboard.setPerspective(oC.fromColor(n.turn())),e.chessboard.setPosition(n),e.chessboard.setFrozen(!0),e.chessboard.set(e=>{e.probabilityArrows=e3(t.position,t),e.associatedLink=t3(t.position.epd)})})},restoreBoardAfterHistory:t=>{e(([e])=>{e.historyReviewItem?.position.id===t.position.id&&(e.historyReviewItem=null,e.syncBoardToCurrentPosition({animate:!0}))})}
53,finishScoring:(t,n)=>{let r={positionId:t.id,san:n.san};hN.call([`intuitionBuilder.recordResult`,r]).then(async r=>{let i=r.moveLabelKind===`uncommon`&&r.moveEvalLoss==null?await Y4(t,n):null;e(([a,o])=>{if(a.currentPosition?.id!==t.id||a.status!==`scoring`)return;let s=a.styleRating!=null&&a.styleRating.moveCount>0?a.styleRating.mean:r.styleRating.mean,c=r.counted?r.styleRating.mean-s:0;a.styleRating=r.styleRating;let l=a.queueAnchorMean??J4;r.counted&&a.positionsQueue.length>0&&Math.abs(r.styleRating.mean-l)>q4&&(a.positionsQueue=[]);let u={kind:r.moveLabelKind,rating:r.moveRating,sound:i,evalLoss:r.moveEvalLoss},d=u.kind===`uncommon`&&u.sound===!1||u.evalLoss!=null&&u.evalLoss>=.3,f=u.kind===`rated`&&u.rating!=null&&u.rating<=r.styleRating.mean-K4,p=d||c<=-10,m=p||c<=-1||f,h={};for(let e of r.ladderDeltas)h[e.san]=e.delta;let g={san:n.san,label:u,delta:c,styleMean:r.styleRating.mean,passed:c>=0,ladderDeltas:h,position:t};a.currentResult=g,a.resultHistory=[...a.resultHistory.slice(-9),g],K(`intuition_builder.move_recorded`,{move_label:u.kind,move_rating:u.rating,move_sound:u.sound,delta:c,posterior_mean:r.styleRating.mean,posterior_sd:r.styleRating.sd});let _=o.userState.getFrontendSetting(`trainerPauseBehavior`).value,v=_===l0.AlwaysPause||_===l0.PauseOnLowScore&&m||_===l0.PauseOnFail&&p,y=c>=0?`correct`:`inaccuracy`;a.chessboard.showMoveFeedback({square:n.to,result:y},()=>{e(([e])=>{if(e.historyReviewItem){v?e.status=`review`:e.setupNextPosition();return}if(v){e.status=`review`,e.syncBoardToCurrentPosition({animate:!1});return}e.setupNextPosition()})})})}).catch(n=>{K(`intuition_builder.scoring_failed`,{message:n instanceof Error?n.message:String(n)}),qn(n,{tags:{trainer:`intuition_builder`,action:`record_result`},extra:r}),e(([e])=>{e.currentPosition?.id===t.id&&e.status===`scoring`&&e.setupNextPosition()})})},handleMove:t=>e(([e,n])=>{let r=e.currentPosition;return!r||e.status!==`ready`?!1:(e.chessboard.setFrozen(!0),n.userState.user?(e.status=`scoring`,e.finishScoring(r,t),!0):(e.status=`review`,e.syncBoardToCurrentPosition({animate:!1}),!0))})};return t.chessboard.set(t=>{t.delegate={completedMoveAnimation:()=>{},madeManualMove:()=>{},onBack:()=>{},onReset:()=>{},onPositionUpdated:()=>{e(([e])=>{e.chessboard.highlightSquare(null)})},shouldMakeMove:e=>T6().handleMove(e)}}),t},r3=l(`<div class="flex flex-row items-center whitespace-nowrap text-xs md:text-sm"><p>`),i3=l(`<span class=text-tertiary>`),a3=l(`<span><!><!>`),o3=l(`<span class=text-tertiary>â`),s3=l(`<div class="padding-sidebar text-tertiary text-sm font-semibold">Loading position`),c3=l(`<div class="padding-sidebar text-tertiary text-sm font-semibold">No positions available right now`),l3=l(`<div class="padding-sidebar text-tertiary text-sm font-semibold pt-4">Play a few moves to reveal your style rating`),u3=e=>{let t=null,n=n=>{let r=$4(e.item.position,n.san);r&&(t&&Pz(t.from,t.to),Nz(r.from,r.to),t=r)},r=()=>{t&&Pz(t.from,t.to),t=null};return ze(()=>()=>r()),x(uW,{get rows(){return Q4(e.item)},maxRows:null,onHover:n,onBlur:()=>r(),onBlurTable:()=>r(),onClick:n,isSelected:e=>e.played,leftColumns:[{label:``,labelStyle:`hidden`,width:`auto`,align:`left`,render:e=>(()=>{var t=r3(),n=t.firstChild;return N(n,()=>e.san),N(t,x(j,{get when(){return e.moveRating},children:e=>[x(R,{width:4}),A(()=>TE(e()))]}),null),M(()=>F(L(`font-bold leading-5 tracking-wider`,e.played?`text-gray-96`:`text-gray-88`)),(e,t)=>{P(n,e,t)}),t})()}],rightColumns:[{label:`Played by`,width:`fit-content`,align:`right`,render:e=>(()=>{var t=i3();return N(t,()=>e.grade),t})()},{label:`Rating`,width:`fit-content`,align:`right`,render:e=>x(j,{get when(){return e.delta!=null},get fallback(){return o3()},get children(){var t=a3(),n=t.firstChild,r=n.nextSibling;return N(t,()=>(e.delta??0)>0?`+`:``,n),N(t,()=>Math.round(e.delta??0),r),M(()=>F(L((e.delta??0)>0?`text-success`:Math.round(e.delta??0)<0?`text-danger`:`text-tertiary`)),(e,n)=>{P(t,e,n)}),t}})}]})},d3=()=>{let e=()=>T6();m(()=>J().user!=null,e=>{e&&!T6().initialized&&Z(e=>{e.trainersState.intuitionBuilderState.initState()})});let t=_(()=>{let t=[];return e().status===`review`&&t.push({text:`Continue`,onPress:()=>e().continueAfterReview(),style:`focus`}),t}),n=()=>e().styleRating;return x($,{header:null,actions:[],get children(){return[x(j,{get when(){return n()},children:e=>
53x(j,{get when(){return e().moveCount>0},get fallback(){return l3()},get children(){return x(M4,{get rating(){return Math.round(e().mean)},get label(){return`Style rating ±${Math.round(e().sd)}`}})}})}),x(j,{get when(){return A(()=>e().status===`review`)()&&e().currentResult},children:e=>[x(u3,{get item(){return e()}}),x(R,{height:12})]}),x(j,{get when(){return t().length>0},get children(){return x(H6,{get actions(){return t()}})}}),x(j,{get when(){return A(()=>e().status===`loading`)()&&!e().noPositionsAvailable},get children(){return[x(R,{height:16}),s3()]}}),x(j,{get when(){return e().noPositionsAvailable},get children(){return[x(R,{height:16}),c3()]}}),x(R,{height:40}),x(W6,{text:`Settings`}),x(H6,{get actions(){return[...C4()]}})]}})},f3=e=>(ze(()=>(Z(t=>{T6().showHistoryOnBoard(e.item)}),()=>{Z(t=>{T6().restoreBoardAfterHistory(e.item)})})),x($,{header:null,actions:[],get children(){return[x(u3,{get item(){return e.item}}),x(R,{height:12}),x(H6,{actions:[{text:`Continue`,style:`focus`,onPress:()=>{Z(e=>{Q().popView({direction:`right`})})}}]})]}})),p3=async e=>{try{return(await QS.post(`/api/v2/tactic`,{...e})).data.tactic}catch{}return null},m3=null,h3=(e,t)=>{let n=t=>e(e=>t([e.trainersState.visionState,e])),r=e=>n(([t])=>e(t)),i=e=>t(t=>e([t.trainersState.visionState,t])),a=0,o=0,s=null,c={chessboard:null,puzzle:null,quiz:null,nextPuzzle:null,getFetchOptions:()=>i(([e])=>Promise.resolve({ratingGte:1e3,ratingLte:2500})),resetState:()=>{n(([e])=>{})},refreshPuzzle:()=>n(async([e])=>{e.chessboard.colorSquare(null);let t=e.nextPuzzle;t||=await p3(await e.getFetchOptions()),n(([e])=>{if(!t){window.alert(`Problem fetching puzzles, please report this if you run into it, to [email protected]`);return}e.puzzle=t,e.resetState(),e.setupForPuzzle()})}),...eC(r),setupForPuzzle:()=>n(([e])=>{let t=e.puzzle;if(!t)return;let n=ez(new ip(t.fen));if(n.move(t?.moves[0]),e.chessboard.setPosition(n),m3){let t=ez(new ip(m3));e.chessboard.setPosition(t)}e.quiz=_3.createVisionQuiz(e.chessboard.get(e=>e.position)),a=0,o=0,s=performance.now(),K(`vision.new_puzzle`,{puzzle_id:t.id,puzzle_rating:t.rating,steps:e.quiz.steps.length}),m3=null})};return c.chessboard=E2()[1],c.chessboard.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{n(([e])=>{})},madeManualMove:()=>{i(([e])=>{})},onBack:()=>{n(([e])=>{})},onReset:()=>{n(([e])=>{})},tappedSquare:e=>{n(([t])=>{if(!t.quiz)return;let n=ou(t.quiz.steps,e=>e.active),r=t.quiz.steps[n];if(!r)return;let i=Ad(r.parts,n=>{if(n.square===e){n.complete=!0;let i=_3.getColorsForStep(r.type);return t.chessboard.colorSquare(e,i,80),!0}});if(a+=1,i||(o+=1),tu(r.parts,e=>e.complete)){r.complete=!0,r.active=!1,K(`vision.step_complete`,{step_type:r.type,step_index:n,parts:r.parts.length,taps:a,wrong_taps:o});let e=su(t.quiz.steps,e=>!e.complete);e?e.active=!0:K(`vision.quiz_complete`,{steps:t.quiz.steps.length,taps:a,wrong_taps:o,time_ms:s===null?void 0:Math.round(performance.now()-s)})}ON()&&(t.quiz.steps=jd(t.quiz.steps,e=>+!!e.complete)),t.chessboard.showMoveFeedback({square:e,result:i?`correct`:`incorrect`,size:`small`},()=>{})})}}}),c.chessboard.set(e=>{e.frozen=!1}),c.chessboard.setMode(`tap`),c},g3=[`hanging_pieces`,`hanging_pawns`,`under-defended-pieces`,`under-defended-pawns`,`undefended_pieces`,`undefended_pawns`,`overloaded pawns`],_3;(function(e){e.getTitleForStep=e=>{switch(e){case`hanging_pieces`:return`Hanging pieces`;case`hanging_pawns`:return`Hanging pawns`;case`undefended_pieces`:return`Undefended pieces`;case`undefended_pawns`:return`Undefended pawns`;case`overloaded pawns`:return`Overloaded pawns`;case`backward pawns`:return`Backward pawns`;case`under-defended-pieces`:return`Under-defended pieces`;case`checks`:return`Checks`;case`under-defended-pawns`:return`Under-defended pawns`;default:return e}},e.getDescriptionForStep=e=>{switch(e){case`hanging_pieces`:return`Tap on the pieces which are hanging - attacked with
53no defender, or attacked by a lower-value piece`;case`undefended_pieces`:return`Tap on the pieces which have no defenders`;case`undefended_pawns`:return`Tap on the pawns which have no defenders`;case`overloaded pawns`:return`Tap on the pawns which are overloaded`;case`backward pawns`:return`Tap on the pawns which are backward`;case`under-defended-pieces`:return`Tap on the pieces which are under-defended`;case`checks`:return`Tap on the squares where check can be made`;case`under-defended-pawns`:return`Tap on the pawns which are under-defended`;case`hanging_pawns`:return`Tap on the pawns which are hanging`;default:return e}},e.getColorsForStep=e=>{switch(e){case`hanging_pieces`:return B.colors.red[60];case`hanging_pawns`:return B.colors.red[75];case`undefended_pieces`:return B.colors.blue[70];case`undefended_pawns`:return B.colors.blue[75];case`overloaded pawns`:return B.colors.blue[70];case`backward pawns`:return B.colors.purple[55];case`checks`:return B.colors.red[60];case`under-defended-pawns`:return B.colors.orange[70];case`under-defended-pieces`:return B.colors.orange[70];default:return e}},e.createVisionQuiz=e=>{let t=[],n={};return Qd.forEach(t=>{n[t]=CV(t,e)}),Kl(g3,e=>{t.push({parts:[],type:e,complete:!1,active:!1})}),Qd.forEach(r=>{let i=n[r],a=e.get(r),o=a?.color;if(!o)return;let s=[],c=[];if(i.forEach(e=>{e.color===o?c.push(e):s.push(e)}),a.type!==`k`){if(s.length>0&&c.length===0||Ad(s,e=>y3(e.type)<y3(a.type))){let e=a.type===`p`?`hanging_pawns`:`hanging_pieces`;v3(t,e,{square:r,complete:!1});return}if(s.length>c.length){v3(t,a.type===`p`?`under-defended-pawns`:`under-defended-pieces`,{square:r,complete:!1});return}if(c.length===0){v3(t,a.type===`p`?`undefended_pawns`:`undefended_pieces`,{square:r,complete:!1});return}}}),t=ru(t,e=>!H(e.parts)),t[0].active=!0,{steps:t}}})(_3||={});function v3(e,t,n){su(e,e=>e.type===t).parts.push(n)}function y3(e){switch(e){case`p`:return 1;case`n`:return 3;case`b`:return 3;case`r`:return 5;case`q`:return 9;case`k`:return 100;default:return 0}}var b3=l(`<div>`),x3=l(`<div><p>`),S3=l(`<div><div><div></div><p></p><div></div><div>`),C3=l(`<div><i><div class="bg-gray-21 center -z-1 absolute inset-[2px] rounded-full">`),w3=()=>(ze(()=>{Z(e=>{e.trainersState.visionState.refreshPuzzle()})}),x(T3,{})),T3=()=>{let e=()=>C6().visionState.quiz,t=()=>tu(e()?.steps,e=>e.complete),n=()=>{let e=[];return t()&&e.push({onPress:()=>{Z(e=>{e.trainersState.visionState.refreshPuzzle()})},text:`Next`,style:`primary`}),e};return x($,{header:`Vision training`,actions:[],get children(){return[x(v,{get children(){return x(a,{get when(){return t()},get children(){return x(H6,{get actions(){return n()}})}})}}),(()=>{var n=b3();return N(n,x(b,{get each(){return e()?.steps},children:e=>x(E3,{step:e})})),M(()=>F(L(`padding-sidebar col gap-2`,t()&&`pt-4`)),(e,t)=>{P(n,e,t)}),n})()]}})},E3=e=>{var t=S3(),n=t.firstChild,r=n.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling;return N(i,()=>_3.getTitleForStep(e.step.type)),N(o,x(b,{get each(){return e.step.parts},children:e=>{var t=C3(),n=t.firstChild;return M(()=>({e:F(L(`h-3 w-3 rounded-full @container`,e.complete?``:`border-solid border-gray-51`)),t:F(L(` relative text-[100cqw]`,e.complete?`fa fa-circle-check text-success`:``))}),({e,t:r},i)=>{P(t,e,i?.e),P(n,r,i?.t)}),t}})),N(t,x(j,{get when(){return e.step.active},get children(){return[x(R,{height:12}),(()=>{var t=x3(),n=t.firstChild;return N(n,()=>_3.getDescriptionForStep(e.step.type)),M(()=>({e:F(L(``)),t:F(L(`text-secondary`))}),({e,t:r},i)=>{P(t,e,i?.e),P(n,r,i?.t)}),t})()]}}),null),M(()=>({e:F(L(`col border border-gray-60 border-solid rounded px-4 py-4`,e.step.active?`bg-gray-32`:`bg-gray-26`)),t:F(L(`row items-center`)),a:F(L(`h-4 w-4 rounded-full mr-2`)),o:F(z(B.bg(_3.getColorsForStep(e.step.type)))),i:F(L(`font-semibold`,e.step.active?`text-primary`:`text-secondary`)),n:F(L(`grow`)),s:F(L(`row gap-2`))}),({e,t:s,a:c,o:l,i:u,n:d,s:f},p)=>{P(t,e,p?.e),P(n,s,p?.t),P(r,c,p?.a),w(r,l,p?.o),P(i,u,p?.i),P(a,d,p?.n),P(o,f,p?.s)}),t},D3=l(`<p class=body-text>Nice! Another?`),O3=l(`<p class=body-text>`),k3=l(`<p class=body-text>Press the play button to see the next few moves, then try to find the move.`),A3=l(`<div>`),j3=l(`<div class="row items-end"><div> moves`),M3=l(`<div class="row items-end"> (<p>-<!></p>)`),N3=()=>(ze(()=>{Z(e=>{e.trainersState.visualizationState.refreshPuzzle()})}),x(P3,{})),P3=()=>{let e=C6().visualizationState.plyUserSetting,t=C6().visualizationState.ratingGteUserSetting,n=C6().visualizationState.ratingLteUserSetting,r=()=>C6().visualizationState.puzzleState.progressMessage,i=()=>C6().visualizationState.isDone,o=()=>{let e=[];return i()&&e.push({onPress:()=>{Z(e=>{e.trainersState.visualizationState.refreshPuzzle()})},text:`Next puzzle`,style:`focus`}),e};return[x($,{header:`Visualization training`,get actions(){return o()},bodyPadding:!0,get children(){return x(v,{get children(){return[x(a,{get when(){return i()},get children(){return D3()}}),x(a,{get when(){return r()},get children(){var e=O3();return N(e,()=>r()?.message),e}}),x(a,{when:!0,get children(){return k3()}})]}})}}),x(R,{height:44}),x(W6,{text:`Settings`}),(()=>{var r=A3();return N(r,x(b,{get each(){return[{onPress:()=>{Z(e=>{Q().pushView(F3)})},text:`Number of hidden moves`,right:e.value,style:`secondary`},{onPress:()=>{Z(e=>{Q().pushView(I3)})},text:`Puzzle difficulty`,right:`${t.value} - ${n.value}`,style:`secondary`},...C4()]},children:(e,t)=>x(V6,{action:e})})),M(()=>F(z()),(e,t)=>{w(r,e,t)}),r})()]},F3=()=>{let e=()=>q().trainersState.visualizationState.plyUserSetting,t=e=>{K(`visualization.settings.hidden_moves`,{ply:e}),Z(t=>{t.trainersState.visualizationState.plyUserSetting.value=e})};return x($,{actions:[],header:`Number of hidden moves`,get children(){return x(oZ,{description:`Set the number of moves to visualize`,get choices(){return vd(1,20)},get activeChoice(){return e().value},onSelect:t,renderChoice:(e,t)=>{var n=j3(),r=n.firstChild,i=r.firstChild;return N(r,e,i),n}})}})},I3=()=>{let e=q().trainersState.visualizationState.ratingGteUserSetting,t=q().trainersState.visualizationState.ratingLteUserSetting,n=e=>{K(`visualization.settings.difficulty`,{choice:e.text,rating_gte:e.min,rating_lte:e.max}),Z(t=>{t.trainersState.visualizationState.ratingGteUserSetting.value=e.min,t.trainersState.visualizationState.ratingLteUserSetting.value=e.max})};return x($,{actions:[],header:`Playback speed`,get children(){return x(oZ,{description:`Set the playback speed of the visualization dot`,choices:[{text:`Easy`,min:0,max:1200},{text:`Intermediate`,min:1200,max:1600},{text:`Hard`,min:1600,max:2e3},{text:`Expert`,min:2e3,max:3e3},{text:`Varied`,min:0,max:2e3}],get activeChoice(){return{text:`N/A`,min:e.value,max:t.value}},onSelect:n,equality:(e,t)=>e.min===t.min&&e.max===t.max,renderChoice:(e,t)=>{var n=M3(),r=n.firstChild,i=r.nextSibling,a=i.firstChild,o=a.nextSibling;return N(n,()=>e.text,r),N(i,()=>e.min,a),N(i,()=>e.max,o),n}})}})},L3=10,R3=3,z3=e=>{let t=e.userState.puzzleStats?.blunderPuzzlesGlicko;return t===void 0?void 0:Math.round(t)},B3=()=>{let e=(e,t)=>
53Z(t=>e([t.trainersState.blunderPuzzlesState,t])),t={chessboard:E2()[1],onboarded:new nC(`blunder-puzzles-onboarded`,!1),puzzleStage:`loading`,puzzleSuccess:null,puzzle:null,puzzles:[],resultHistory:[],historyReviewItem:null,showResponseRefutation:()=>{e(([e])=>{if(!e.puzzle)return;let t=e.chessboard.getLastMove();if(!t)return;let n=e.puzzle.refutations[t.san];e.chessboard.makeMove(n,{animate:!0,sound:`move`})})},showPuzzleSolution:()=>{e(([e])=>{if(!e.puzzle)return;let t=e.puzzle.bestMoves[0];e.chessboard.makeMove(t,{animate:!0,sound:`move`})})},giveUp:()=>{e(([e,t])=>{e.puzzle&&e.puzzleStage===`ready`&&(K(`blunder_puzzles.gave_up`,{puzzle_id:e.puzzle.id,puzzle_rating:Math.round(e.puzzle.glicko),user_rating:z3(t)}),e.puzzleStage=`complete`,e.puzzleSuccess=`gave_up`,e.recordPuzzleCompletion(e.puzzle,!1),e.pushHistoryItem({puzzle:e.puzzle,passed:!1,san:null}),e.showPuzzleSolution())})},pushHistoryItem:t=>{e(([e])=>{e.resultHistory=[...e.resultHistory.slice(-9),t]})},fetchBlunderPuzzles:async()=>(await hN.call([`puzzles.blunderPuzzles.list`,{count:L3}])).blunderPuzzles,initState:()=>{e(([e])=>{e.refreshPuzzles()})},refreshPuzzles:()=>{e(([t])=>{t.fetchBlunderPuzzles().then(t=>{e(([e])=>{e.puzzles=[...t],e.setupNextPuzzle()})})})},setupNextPuzzle:()=>{e(([t,n])=>{let r=t.puzzles[0];K(`blunder_puzzles.new_puzzle`,{puzzle_id:r?.id,puzzle_rating:r?Math.round(r.glicko):void 0,user_rating:z3(n),queued:t.puzzles.length}),t.setupPuzzle(t.puzzles[0]),t.puzzles=Vl(t.puzzles,1),t.puzzles.length<R3&&t.fetchBlunderPuzzles().then(t=>{e(([e])=>{e.puzzles=[...e.puzzles,...t]})})})},setupPuzzle:t=>{e(([n])=>{let r=ez(new ip(EE.toFen(t.previousEpd)));n.puzzle=t,n.chessboard.setPerspective(oC.flip(oC.fromColor(r.turn()))),n.chessboard.setPosition(r),n.chessboard.getLastMove,n.puzzleStage=`opponent_move`,n.puzzleSuccess=null;let i=r.validateMoves([t.san])[0];n.chessboard.setFrozen(!0),setTimeout(()=>{e(([e])=>{e.puzzleStage=`ready`,!e.historyReviewItem&&(e.chessboard.setFrozen(!1),e.chessboard.makeMove(i,{sound:`move`,animate:!0}))})},s2()),n.chessboard.set(e=>{e.associatedLink=t.link})})},getCurrentPuzzle:()=>w6().puzzle,showHistoryOnBoard:t=>{e(([e])=>{e.historyReviewItem=t;let n=ez(new ip(EE.toFen(t.puzzle.epd)));e.chessboard.setPerspective(oC.fromColor(n.turn())),e.chessboard.setPosition(n),e.chessboard.setFrozen(!0),e.chessboard.set(e=>{e.associatedLink=t.puzzle.link})})},restoreBoardAfterHistory:t=>{e(([e])=>{if(e.historyReviewItem?.puzzle.id!==t.puzzle.id)return;e.historyReviewItem=null;let n=e.puzzle;if(!n){e.chessboard.resetPosition();return}let r=ez(new ip(EE.toFen(n.epd)));e.chessboard.setPerspective(oC.fromColor(r.turn())),e.chessboard.setPosition(r),e.chessboard.setFrozen(e.puzzleStage!==`ready`),e.chessboard.set(e=>{e.associatedLink=n.link})})},recordPuzzleCompletion:(e,t)=>{QS.post(`/api/v1/blunder_puzzles/puzzle_completed`,{puzzleId:e.id,passed:t}).then(({data:e})=>{Z(t=>{t.userState.puzzleStats=e})})}};return t.chessboard.set(t=>{t.delegate={completedMoveAnimation:Hi,madeManualMove:()=>{e(([e,t])=>{})},onBack:()=>{e(([e])=>{})},onReset:()=>{e(([e])=>{})},onPositionUpdated:()=>{e(([e,t])=>{e.chessboard.highlightSquare(null)})},shouldMakeMove:t=>e(([n,r])=>{let i=t.san,a=n.getCurrentPuzzle();if(n.puzzleStage===`complete`||!a)return!1;let o=b4.getMoveRating(a,i),s=o===dC.Good||o===dC.Inaccuracy,c={result:o===dC.Good?`correct`:o===dC.Inaccuracy?`acceptable-inaccuracy`:o===dC.Mistake?`mistake`:`blunder`};return n.puzzleSuccess||(K(`blunder_puzzles.answered`,{puzzle_id:a.id,puzzle_rating:Math.round(a.glicko),user_rating:z3(r),san:i,move_rating:o,passed:s}),n.recordPuzzleCompletion(a,s),n.puzzleSuccess=s?`correct`:`incorrect`,n.pushHistoryItem({puzzle:a,passed:s,san:i}),n.chessboard.setFrozen(!0)),n.chessboard.showMoveFeedback({square:t.to,result:c.result},()=>{e(([e,t])=>{let n=t.userState.getFrontendSetting(`trainerPauseBehavior`).value===l0.AlwaysPause;if(s&&!n&&!e.historyReviewItem){e.setupNextPuzzle();return}e.puzzleStage=`complete`,s||e.showResponseRefutation()})}),!0})}}),t},V3=(e,t)=>e.split(` `)[0]===t.split(` `)[0],H3=(e,t)=>{let n=(t,n)=>e(e=>t(e));return{delegate:null,puzzlePosition:null,turn:`w`,shouldMakeMove:e=>n(t=>{if(e.san===t.solutionMoves[0].san||up(e,t.puzzlePosition)){let n=t.solutionMoves[1];return t.puzzlePosition.move(e),n&&(t.delegate.chessboard.setPosition(t.puzzlePosition),t.puzzlePosition.move(n),t.delegate.chessboard.makeMove(n,{animate:!0,sound:`move`})),t.solutionMoves.shift(),t.solutionMoves.shift(),H(t.solutionMoves)?(t.progressMessage=null,t.delegate.onPuzzleMoveSuccess(),t.delegate.onPuzzleSuccess()):(t.delegate.onPuzzleMoveSuccess(),t.progressMessage={message:`Keep going...`,type:U3.Error}),!0}return t.delegate.onPuzzleMoveFailure(e),t.progressMessage={message:`${e.san} was not the right move, try again.`,type:U3.Error},!1}),madeMove:Hi,completedMoveAnimation:Hi,puzzle:null,solutionMoves:[],progressMessage:null}},U3=function(e){return e[e.Error=0]=`Error`,e[e.Success=1]=`Success`,e}({}
53),W3=(e,t,n)=>{let r=t=>e(e=>t([e.trainersState.visualizationState,e])),i=e=>r(([t])=>e(t)),a=e=>t(t=>e([t.trainersState.visualizationState,t])),o=0,s=null,c=t=>e(e=>t(e.trainersState.visualizationState.puzzleState)),l=e=>t(t=>e(t.trainersState.visualizationState.puzzleState)),u={pulsePlay:!0,chessboard:null,finishedAutoPlaying:!1,chessboardState:null,puzzleState:H3(c,l),isDone:!1,playButtonFlashAnim:0,mockPassFail:JE,showNotation:new nC(`show-notation-v3`,!0),plyUserSetting:new nC(`visualization-ply-v3`,2),ratingGteUserSetting:new nC(`puzzle-rating-gte-v4`,0),startedSolving:!1,ratingLteUserSetting:new nC(`puzzle-rating-lte-v4`,1200),playbackSpeedUserSetting:new nC(`playback-speed-v2`,dM.Normal),hiddenMoves:[],autoPlay:!1,showHelpButton:!0,nextPuzzle:null,isPlaying:!1,focusedMoveIndex:null,focusedMove:null,canFocusNextMove:!1,canFocusLastMove:!1,helpOpen:!1,currentPosition:new ip,showPuzzlePosition:!1,getFetchOptions:()=>a(([e])=>Promise.all([e.plyUserSetting.valueAsync(),e.ratingGteUserSetting.valueAsync(),e.ratingLteUserSetting.valueAsync()]).then(([t,n,r])=>{let i=e.step?.hiddenMoves??t;return e.step?{ratingGte:e.step.puzzleDifficulty-25,ratingLte:e.step.puzzleDifficulty+25,maxPly:i,solidMovesGte:i}:{ratingGte:n,ratingLte:r,maxPly:i,solidMovesGte:i}})),getPly:()=>a(([e])=>e.step?.hiddenMoves??e.plyUserSetting.value),resetState:()=>{r(([e])=>{e.showPuzzlePosition=!1,e.finishedAutoPlaying=!1,e.isDone=!1})},refreshPuzzle:()=>r(async([e])=>{let t=e.nextPuzzle;t||=await p3(await e.getFetchOptions()),r(([e])=>{if(!t){window.alert(`Problem fetching puzzles, please report this if you run into it, to [email protected]`);return}r(([e])=>{e.puzzleState.puzzle=t,e.resetState(),e.setupForPuzzle(),o=0,s=performance.now(),K(`visualization.new_puzzle`,{puzzle_id:t.id,puzzle_rating:t.rating,ply:e.getPly(),rating_gte:e.ratingGteUserSetting.value,rating_lte:e.ratingLteUserSetting.value})})})}),...eC(i),visualizeHiddenMoves:e=>r(([t])=>{t.stopLoopingPlayFlash(),t.chessboard.visualizeMoves(Sc(t.hiddenMoves),t.playbackSpeedUserSetting.value??dM.Normal,e)}),setupForPuzzle:()=>r(([e])=>{e.chessboard.resetPosition(),e.chessboard.clearPending(),e.startedSolving=!1,e.focusedMoveIndex=null;let t=ez(new ip),i=ez(new ip),a=e.puzzleState.puzzle;for(let n of a.allMoves)if(t.move(n),i.move(n),V3(t.fen(),a.fen)){i.move(a.moves[0],{sloppy:!0}),t.move(a.moves[0],{sloppy:!0});let n=Fd(t.history({verbose:!0}),e.getPly()),r=i.clone();r.undo();for(let e of a.moves)r.move(e,{sloppy:!0});e.puzzleState.solutionMoves=Fd(r.history({verbose:!0}),a.moves.length-1),e.hiddenMoves=n;for(let n=0;n<e.getPly();n++)t.undo();e.currentPosition=t,e.chessboard.set(e=>{e.futurePosition=i,e.position=t}),e.puzzleState.puzzlePosition=i,e.showPuzzlePosition=!1,e.chessboard.setPerspective(oC.fromColor(i.turn()));break}e.puzzleState.turn=e.puzzleState.puzzlePosition.turn(),e.visualizeHiddenMoves(Hi),e.startLoopingPlayFlash(),n&&e.isPlayingClimb&&e.visualizeHiddenMoves(()=>{r(([e])=>{e.onAutoPlayEnd&&!e.finishedAutoPlaying&&e.onAutoPlayEnd(),e.finishedAutoPlaying=!0,e.focusedMoveIndex=null})})}),stopLoopingPlayFlash:()=>r(([e])=>{e.pulsePlay=!1}),startLoopingPlayFlash:()=>r(([e])=>{e.pulsePlay=!0}),toggleNotation:()=>r(([e])=>{e.showNotation.value=!e.showNotation.value,K(`visualization.toggle_notation`,{enabled:e.showNotation.value})}),setPlaybackSpeed:e=>r(([t])=>{t.playbackSpeedUserSetting.value=e}),updatePly:e=>r(([t])=>{t.plyUserSetting.value&&(t.plyUserSetting.value=Math.max(t.plyUserSetting.value+e,1)),K(`visualization.update_ply`,{ply:t.plyUserSetting.value}),t.setupForPuzzle()}),onPuzzleMoveSuccess:()=>{r(([e])=>{e.showPuzzlePosition=!0,e.startedSolving=!0,e.chessboard.flashRing(!0),e.chessboard.set(t=>{t.futurePosition=null,t.position=e.puzzleState.puzzlePosition})})},onPuzzleMoveFailure:e=>{r(([t])=>{o+=1,K(`visualization.wrong_move`,{puzzle_id:t.puzzleState.puzzle?.id,puzzle_rating:t.puzzleState.puzzle?.rating,ply:t.getPly(),san:e.san,wrong_moves:o}),t.chessboard.flashRing(!1),n&&t.onFail?.()})},onPuzzleSuccess:()=>{r(([e])=>{K(`visualization.puzzle_solved`,{puzzle_id:e.puzzleState.puzzle?.id,puzzle_rating:e.puzzleState.puzzle?.rating,ply:e.getPly(),wrong_moves:o,first_try:o===0,time_ms:s===null?void 0:Math.round(performance.now()-s)}),e.isDone=!0,e.onSuccess&&e.onSuccess()})}};return u.puzzleState=H3(c,l),u.puzzleState.delegate=u,u.chessboard=E2()[1],u.chessboard.set(e=>{e.delegate={completedMoveAnimation:Hi,onPositionUpdated:()=>{r(([e])=>{})},madeManualMove:()=>{a(([e])=>{})},onBack:()=>{r(([e])=>{})},onReset:()=>{r(([e])=>{})},shouldMakeMove:e=>r(([t])=>t.puzzleState.shouldMakeMove(e))}}),u.chessboard.set(e=>{e.frozen=!1}),u},G3=e=>[e.trainersState,e],K3=(e,t)=>{let n=(t,n)=>e(e=>t(e.trainersState)),r=(e,n)=>t(t=>e(G3(t)));return{...eC(n),visualizationState:W3(e,t,!1),visionState:h3(e,t),blunderPuzzlesState:B3(),intuitionBuilderState:n3(),getActiveTool:()=>r(([e])=>{for(let e of[...Q().sidebarStack].reverse()){if(q3(e.component,N3,`VisualizationTraining`))return`visualization`;if(q3(e.component,w3,`VisionTraining`))return`board-vision`;if(q3(e.component,z4,`BlunderPuzzleTraining`))return`blunder-puzzles`;if(q3(e.component,d3,`IntuitionBuilderTraining`))return`intuition-builder`}return null})}}
53,q3=(e,t,n)=>e===t||typeof e==`function`&&e.name===n,J3=e=>{let t=Y().homeProgressStates[e.repertoireId],n=Y().startMasteryFromEpd[e.repertoireId]??0;return e.strategy===`mastery`?{completed:n===1,percentComplete:n,type:`mastery`}:e.strategy===`completion`?t?.percentComplete===1?{completed:!0,percentComplete:1,type:`completion`}:{completed:!1,percentComplete:t?.percentComplete??0,type:`completion`}:t?.completed?{completed:n===1,percentComplete:n,type:`mastery`}:t?.percentComplete===1?{completed:!0,percentComplete:1,type:`completion`}:{completed:!1,percentComplete:t?.percentComplete??0,type:`completion`}},Y3=l(`<i class="fa-solid fa-circle-check text-xs">`),X3=l(`<div>`),Z3=l(`<div><p>`),Q3=l(`<div class="row items-center"><div class=shrink-0>`),$3=l(`<div class="whitespace-nowrap shrink-0">`),e6=e=>{let t=st(),n=()=>e.variant??`home`,r=_(()=>J3({repertoireId:e.repertoireId,strategy:e.strategy})),i=()=>Y().numMyMoves?.[e.repertoireId]??0,a=()=>i()===0?`Not started`:`${Math.round(r().percentComplete*100)}% ${r().type===`completion`?`complete`:`mastered`}`,o=()=>n()===`home`&&r().completed,s=()=>L(`tabular-nums m-0`,n()!==`breadcrumb`&&L(`font-semibold text-xs`,r().percentComplete===0||r().percentComplete===1?`text-tertiary`:`text-secondary`)),c=()=>o()?Y3():(()=>{var e=X3();return N(e,x(L0,{get progress(){return r().percentComplete},get color(){return A(()=>r().type===`completion`)()?B.success:B.learning}})),M(()=>F(L(`square-[12px]`)),(t,n)=>{P(e,t,n)}),e})(),l=()=>(()=>{var e=Z3(),t=e.firstChild;return N(t,a),M(()=>F(s()),(e,n)=>{P(t,e,n)}),e})();var u=$3();return N(u,x(j,{get when(){return n()===`breadcrumb`},get fallback(){return x(kU,{get text(){return l()},get icon(){return c()}})},get children(){var e=Q3(),n=e.firstChild;return N(n,c),N(e,l,null),M(()=>F(z(B.mr(t().switch(4,[ct.lg,6])))),(e,t)=>{w(n,e,t)}),e}})),u},t6=l(`<svg viewBox="0 0 200 164.87"role=img aria-label="Chess Madra"><g transform="translate(0,164.87) scale(1,-1)"><path d="m150 142.48-50 22.39v-60l50-22.39v60z"fill=#fff opacity=0.25></path><path d="m200 119.97-50 22.39v-60l50-22.39v60zM150 82.55l-50 22.38v-60l50-22.38v60z"fill=#fff opacity=0.75></path><path d="m200 60.03-50 22.39v-60L200 .03v60z"fill=#fff opacity=0.25></path><path d="m50 142.45 50 22.39v-60L50 82.45v60z"fill=#fff></path><path d="m0 119.94 50 22.38v-60L0 59.94v60zM50 82.52l50 22.38v-60L50 22.52v60z"fill=#fff opacity=0.5></path><path d="m0 60 50 22.39v-60L0 0v60z"fill=#fff>`),n6=e=>(()=>{var t=t6();return M(()=>F(e.class),(e,n)=>{P(t,e,n)}),t})(),r6=l(`<svg><defs><style>.cls-1,.cls-2,.cls-3,.cls-4{fill:#fff}.cls-2{opacity:.5}.cls-3{opacity:.75}.cls-4{opacity:.25}</style></defs><g id=black><path d="m150 142.48-50 22.39v-60l50-22.39v60z"class=cls-4></path><path d="m200 119.97-50 22.39v-60l50-22.39v60zM150 82.55l-50 22.38v-60l50-22.38v60z"class=cls-3></path><path d="m200 60.03-50 22.39v-60L200 .03v60z"class=cls-4></path><path d="m50 142.45 50 22.39v-60L50 82.45v60z"class=cls-1></path><path d="m0 119.94 50 22.38v-60L0 59.94v60zM50 82.52l50 22.38v-60L50 22.52v60z"class=cls-2></path><path d="m0 60 50 22.39v-60L0 0v60z"class=cls-1>`),i6=e=>(()=>{var t=r6();return pe(t,[{xmlns:`http://www.w3.org/2000/svg`,id:`Layer_2`,viewBox:`0 0 200 164.87`},e],!0),t})(),a6=class{#e;#t;#n;constructor(e){let[t,n]=o(0,{equals:!1});this.#e=e,this.#t=()=>{t()},this.#n=()=>{n(e=>e+1)},Object.freeze(this)}key(){this.#t()}get(){return this.#t(),this.#e}peek(){return this.#e}set(e){this.#e=e,this.#n()}update(e){e(this.#e),this.#n()}readValue(){return this.#t(),this.#e}peekValue(){return this.#e}touch(){this.#n()}},o6=class extends a6{constructor(e){super(new Set(e))}get size(){return this.readValue().size}has(e){return this.readValue().has(e)}add(e){let t=this.peekValue(),n=t.size;return t.add(e),t.size!==n&&this.touch(),this}delete(e){let t=this.peekValue().delete(e);return t&&this.touch(),t}clear(){let e=this.peekValue();e.size!==0&&(e.clear(),this.touch())}replace(e){this.set(new Set(e))}values(){return this.readValue().values()}[Symbol.iterator](){return this.values()}},s6=e=>new o6(e),c6=l(`<div>`),l6=e=>
53({browse:`Learn`,build:`Build`,review:`Practice`,side_overview:`Overview`,openings_report:`Openings report`,overview:`Home`,model_games:`Model games`,mistakes:`Opening mistakes`,plans_and_model_games:`Plans & model games`,play:`Play`,audit:`Improve learnability`,browseCourses:`Pre-made repertoires`})[e],u6=e=>e===`browse`||e===`plans_and_model_games`?yY:e===`model_games`?QR:e===`build`?kY:null,d6=e=>Q().currentView()?.component===e,f6=()=>q().ui.mode===`overview`&&q().ui.sidebarStack.length===0,p6=1,m6=()=>{let e=(e,t)=>Z(t=>e([t.ui,t])),t=(e,t)=>e([q().ui,q()]);return{mode:`overview`,loadUntil:t=>e(([n])=>(n.pushView(ZL),t.then(t=>(e(([e])=>{e.animateSidebar(`right`),e.cutView()}),t)))),isPlayingGame:()=>t(([e,t])=>{let n=t.trainersState.getActiveTool();return e.mode===`play`&&t.playState.state.status===`playing`||n===`intuition-builder`&&[`loading`,`ready`,`missed`].includes(t.trainersState.intuitionBuilderState.status)}),getBreadCrumbs:()=>t(([t,n])=>{let r=n.repertoireState,i=[{id:`home`,text:(()=>{var e=c6();return N(e,x(Ve?n6:i6,{})),M(()=>F(L(`square-5 col box-content items-center justify-center hover:brightness-110`)),(t,n)=>{P(e,t,n)}),e})(),onPress:()=>{e(([e,t])=>{t.repertoireState.backToOverview()})},isCurrent:f6,analyticsLabel:`home`}];if(Ve)return q().trainersState.getActiveTool()===`blunder-puzzles`&&i.push({id:`blunderbash`,text:`Blunderbash`,onPress:()=>{e(([e,t])=>{Q().popView()})}}),i;if(r.onboarding.isOnboarding)return[];let a=t.mode,o=r.browsingState.derived.activeRepertoire(),s=a===`review`&&gB(hB(r.reviewState.state)),c=fY();o&&!s&&!c&&[`browse`,`build`,`side_overview`,`plans_and_model_games`,`review`].includes(a)&&i.push({id:`repertoire-${o.id}`,text:o.name,onPress:()=>{Z(e=>{$V(),Q().backTo(MJ),X().actions.setActiveRepertoire(o.id),Q().getActiveChessboard().resetPosition(),e.repertoireState.browsingState.actions.quick(e=>{e.activeCourse.overview=void 0,e.activeCourse.details=void 0})})},isCurrent:()=>d6(MJ)});let l=[`browse`,`build`,`plans_and_model_games`,`model_games`];if(a!==`side_overview`&&a!==`overview`){if(c||a===`review`&&s){let e=Eo(l6(`review`));i.push({id:`mode-review`,text:e,analyticsLabel:e,isCurrent:()=>!0})}else if(a===`review`&&o){let e=Eo(l6(`browse`));i.push({id:`mode-browse`,text:e,analyticsLabel:e,onPress:()=>OB(o,{pausePractice:!0})});let t=Eo(l6(`review`));i.push({id:`mode-review`,text:t,analyticsLabel:t,isCurrent:()=>!0})}else{let e=Eo(l6(a)),t=(a===`build`||a===`browse`)&&o&&hY(),n=u6(a),r=!l.includes(a)&&a!==`review`,s=a===`review`?rY:r?void 0:()=>{if(a===`build`){TB(o);return}if(a===`browse`){OB(o);return}Z(e=>{Q().clearViews(),Q().pushView(a===`plans_and_model_games`?KJ:a===`model_games`?QR:kY),o&&(X().actions.setActiveRepertoire(o.id),Q().getActiveChessboard().resetPosition())})};i.push({id:`mode-${a}`,text:e,analyticsLabel:e,unclickable:r,isCurrent:()=>a===`build`?pY():a===`browse`?mY():n?d6(n):!1,onPress:s}),t&&i.push({id:`${a}-progress`,text:x(e6,{get repertoireId(){return o.id},strategy:a===`build`?`completion`:`mastery`,variant:`breadcrumb`}),analyticsLabel:`${e} progress`,unclickable:!0})}}return i}),sidebarStack:[],withoutAnimations:t=>{e(([e])=>{let n=e.skipAnimations;e.skipAnimations=!0,t(),e.skipAnimations=n})},currentView:()=>t(([e])=>Bl(e.sidebarStack)),clearingViews:!1,skipAnimations:!1,clearViews:()=>e(([e,t])=>{if(!e.clearingViews){e.clearingViews=!0;try{$I().forEach(e=>{let t=aG(e);if(t&&t.behavior!==`step`)try{t.fn()}catch(e){console.error(`[ui_state] Back handler threw during clearViews:`,e),qn(e)}})}finally{e.clearingViews=!1}e.sidebarStack=[],YI([]),e.onViewsUpdated()}}),hasView:e=>t(([t])=>t.sidebarStack.some(t=>t.component===e)),ensureView:(t,n)=>{e(([e,r])=>{if(Bl(e.sidebarStack)?.component===t){Au(Bl(e.sidebarStack)?.props,n?.props)||e.replaceView(t,n);return}e.pushView(t,n)})},pushViewNoAnimation:(t,n)=>{e(([e,r])=>{e.sidebarStack.push({id:p6++,component:t,props:n?.props??{},showPlansOverlay:n?.showPlansOverlay}),e.onViewsUpdated()})},pushView:(t,n)=>{e(([e,r])=>{e.animateSidebar(n?.direction??`right`,n?.holdUntil?{holdUntil:n.holdUntil}:void 0),e.sidebarStack.push({id:p6++,component:t,props:n?.props??{},showPlansOverlay:n?.showPlansOverlay}),e.onViewsUpdated()})},replaceView:(t,n)=>{e(([e,r])=>{e.animateSidebar(n?.direction??`right`),e.sidebarStack.pop(),e.sidebarStack.push({id:p6++,component:t,props:n?.props??{},showPlansOverlay:n?.showPlansOverlay}),e.onViewsUpdated()})},cutTo:t=>{e(([e,n])=>{let r=!1;for(;e.sidebarStack.length>0;){if(Bl(e.sidebarStack)?.component===t){r&&(e.onViewsUpdated(),e.animateSidebar(`left`));return}e.sidebarStack.pop(),r=!0}e.pushView(t)})},backToEither:(t,n)=>{e(([e,r])=>{let i=e.skipAnimations,a=!1;for(e.skipAnimations=!0;e.sidebarStack.length>0;){if(t.includes(Bl(e.sidebarStack)?.component)){e.skipAnimations=i,a&&(e.onViewsUpdated(),e.animateSidebar(`left`,n?.holdUntil?{holdUntil:n.holdUntil}:void 0));return}e.backOne({forceBack:!0}
53),a=!0}e.skipAnimations=i,e.pushView(fu(t),n?.holdUntil?{holdUntil:n.holdUntil}:void 0)})},backTo:(e,t)=>{Q().backToEither([e],t)},animateSidebar:(t,n)=>{e(([e])=>{OR(t),!e.skipAnimations&&_X?.(t,n)})},backsProcessing:s6(),sidebarPreviewRevision:0,sidebarPositionRevision:0,getSidebarPreviewRevision:e=>t(([t])=>e===`data`?`${t.sidebarPreviewRevision}`:`${t.sidebarPreviewRevision}:${t.sidebarPositionRevision}`),invalidateSidebarPreviews:(t=`data`)=>{e(([e])=>{t===`position`?e.sidebarPositionRevision++:e.sidebarPreviewRevision++})},getBackEntry:()=>t(([e])=>aG($I()[e.sidebarStack.length-1])),resolveBackOperation:()=>t(([e])=>{let t=e.currentView();if(!t)return null;let n=e.getBackEntry();return n?.behavior===`hide`?null:n?.behavior===`step`?{kind:`step`,fromViewId:t.id,step:n.resolveStep()}:n?{kind:n.behavior===`stay`?`internal`:`legacy`,fromViewId:t.id,entry:n}:{kind:`pop`,fromViewId:t.id,destination:e.sidebarStack.at(-2)?.id??`root`,destinationState:e.sidebarStack.at(-2)?.component.getSidebarPreviewState?.()}}),runBackOperation:t=>e(([e])=>sG(t,e.resolveBackOperation())?(t.kind===`pop`?e.popView():e.backOne(),!0):!1),backOne:t=>{e(([e,n])=>{let r=$I(),i=e.sidebarStack.length-1,a=aG(r[i]);if(e.backsProcessing.has(i)){t?.forceBack&&e.sidebarStack.pop();return}if(a){e.backsProcessing.add(i);let n=()=>a.behavior===`step`?a.resolveStep().run():a.fn();try{a.behavior===`animate`||t?.forceBack?(e.animateSidebar(`left`),n(),e.sidebarStack.pop(),e.onViewsUpdated()):n()}finally{e.backsProcessing.delete(i)}}else e.animateSidebar(`left`),e.sidebarStack.pop(),e.onViewsUpdated()})},scrollToChessboard:()=>{let e=Q().getActiveChessboard().handles.containerRef;if(e){let t=e.getBoundingClientRect().top-12;scrollTo({top:t,behavior:`smooth`})}},getActiveChessboard:()=>Q().mode===`openings_report`?q().repertoireState.openingReportsState.chessboard:Q().mode===`audit`?q().auditState.chessboard:Q().mode===`review`?q().repertoireState.reviewState.handles.chessboard:Q().mode===`model_games`?q().repertoireState.modelGamesState.handles.chessboard:Q().mode===`play`?q().playState.handles.chessboard:Q().mode===`browseCourses`?q().coursesState.chessboard:q().repertoireState.browsingState.handles.chessboard,cutView:()=>{e(([e,t])=>{e.sidebarStack.pop(),e.onViewsUpdated()})},popView:t=>{e(([e,n])=>{e.animateSidebar(t?.direction??`left`),e.sidebarStack.pop(),e.onViewsUpdated()})},onViewsUpdated:()=>{e(([e])=>{let t=`overview`;e.sidebarStack.forEach(e=>{let n=IF.get(e.component);n&&(t=typeof n==`function`?n():n)}),e.mode=t})}}},h6=[`adminState`,`repertoireState`,`auditState`,`cardsState`,`ui`,`debugState`,`navigationState`,`userState`,`trainersState`,`dailyReviewsState`,`inAppPurchaseState`,`playState`,`coursesState`],g6=WI({}),_6=(e,t=`app_state.anonymous`)=>{try{return g6.set(e)}catch(e){return console.error(`[app_state] State mutation error:`,e,{label:t}),null}},v6=g6.read;g6.current().repertoireState||_6(e=>{let t={cardsState:W2(_6,v6),repertoireState:_1(_6,v6),ui:m6(),trainersState:K3(_6,v6),inAppPurchaseState:{products:{}},adminState:iC(_6,v6),debugState:Y2(_6,v6),navigationState:X2(_6,v6),userState:C1(_6,v6),auditState:O2(_6,v6),dailyReviewsState:J2(_6,v6),playState:y4(_6,v6),coursesState:G2(_6,v6)};Object.assign(e,t)},`app_state.init`);var q=g6.current,y6=e=>{let t;return()=>WF()>0?e(q()):t??=e(q())},b6=y6(e=>e.repertoireState.reviewState),x6=y6(e=>e.cardsState.reviewState),J=y6(e=>e.userState),S6=y6(e=>e.adminState),C6=y6(e=>e.trainersState),w6=y6(e=>e.trainersState.blunderPuzzlesState),T6=y6(e=>e.trainersState.intuitionBuilderState),Y=y6(e=>e.repertoireState),E6=y6(e=>e.cardsState),D6=y6(e=>e.repertoireState.modelGamesState),O6=y6(e=>e.repertoireState.openingReportsState),X=y6(e=>e.repertoireState.browsingState),k6=y6(e=>e.auditState),A6=y6(e=>e.playState),j6=y6(e=>e.dailyReviewsState),M6=y6(e=>e.coursesState);typeof window<`u`&&Object.defineProperty(window,"appState",{configurable:!0,value:(()=>{let e={};for(let t of h6)Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:()=>AI(q()[t])});return Object.defineProperties(e,{$live:{value:q},$snapshot:{value:()=>AI(q())},$pick:{value:e=>AI(e(q()))},$log:{value:()=>{let e=AI(q());return console.log(e),e}}}),e})()});var Z=_6,N6=()=>()=>Q().mode,Q=y6(e=>e.ui),P6=()=>{let e=J().user?.email!=null,t=Y().repertoires,n=t&&qa(Object.values(t).map(e=>Object.values(e.positionResponses))).flat().length>0;return!e&&!n},F6=l(`<div>`),I6=l(`<div><div><!><!></div><!><!>`),L6=l(`<p>`),R6=l(`<div><!><!>`),z6=l(`<div><div class=cursor-pointer>`),B6=l(`<div class=font-medium><!><!>`),V6=e=>{let t=st(),n=_(()=>e.action),r=_(()=>{let e=null,t=z(),r;return n().style===`focus`&&(e=B.gray[76]),n().style===`wide`&&(t=z(t,B.fontSize(16),B.weightBold),r=60),n().style===`tert
53iary`&&(e=B.gray[32]),n().style===`secondary`&&(e=B.gray[68]),n().style===`primary`&&(e=B.gray[76]),{subtextColor:e,textStyles:t,minHeight:r}}),i=()=>n().shrink??`right`;var a=I6(),o=a.firstChild,s=o.firstChild,c=s.nextSibling,l=o.nextSibling,u=l.nextSibling;return pe(a,[{get"data-testid"(){return e[`data-testid`]??n().testId??(n().style===`focus`?`sidebar-focus-action`:e.index===void 0?void 0:`sidebar-action-${e.index}`)},onClick:e=>{e.preventDefault(),e.stopPropagation(),n().disabled||n().onPress?.()}},()=>n().submitsForm?{type:`submit`,form:n().submitsForm}:{},{get class(){return L(`sidebar-button`,`touch-manipulation`,`cursor-pointer transition-all select-none`,n().style!==`wide`&&`min-h-sidebar-button`,n().style===`secondary`&&L(`text-primary`,!n().static&&`hover-fine:bg-gray-30 hover-fine:text-primary`),n().style===`tertiary`&&`text-tertiary hover-fine:text-primary`,n().style===`wide`&&`shrink-0 bg-sidebar_button_primary hover-fine:bg-sidebar_button_primary_hover`,(n().style===`primary`||n().style===`focus`)&&` bg-sidebar_button_primary `,(n().style===`primary`||n().style===`focus`)&&!n().disabled&&`hover-fine:bg-sidebar_button_primary_hover text-primary`,(n().disabled||n().static)&&` cursor-default!`,n().disabled&&`opacity-30`,n().class)},get style(){return z(B.row,B.fullWidth,B.justifyBetween,B.alignCenter,n().style===`wide`&&B.height(`auto`),B.minHeight(r().minHeight),B.py(12),B.px(B.getSidebarPadding(t())),n().style===`secondary`&&B.borderBottom(`1px solid ${B.colors.border}`),n().style===`secondary`&&e.first&&B.borderTop(`1px solid ${B.colors.border}`))}}],!0),N(o,x(V,{get style(){return z(B.weightSemiBold,B.fontSize(14),r().textStyles)},get children(){return n().text}}),s),N(o,x(j,{get when(){return n().subtext},get children(){return[x(R,{height:4}),x(V,{get style(){return z(B.fg(r().subtextColor),B.weightSemiBold,B.fontSize(14))},get children(){return n().subtext}})]}}),c),N(a,x(R,{width:16}),l),N(a,x(j,{get when(){return n().right},get children(){var e=F6();return N(e,(()=>{var e=A(()=>typeof n().right==`string`);return()=>e()?x(V,{get style(){return z(B.fg(B.colors.text.secondary),B.weightSemiBold,n().style===`secondary`&&z(B.fg(
53B.colors.text.tertiary),B.weightBold),B.fontSize(12))},get children(){return n().right}}):(()=>{var e=L6();return N(e,()=>n().right),M(()=>F(z(B.fg(B.colors.text.tertiary))),(t,n)=>{w(e,t,n)}),e})()})()),M(()=>({e:F(z(B.row,B.center)),t:F(L(`transition-opacity opacity-100 text-xs`,n().off&&`opacity-50`,i()===`left`?`shrink-0`:`shrink-1`))}),({e:t,t:n},r)=>{w(e,t,r?.e),P(e,n,r?.t)}),e}}),u),M(()=>({e:F(z(B.column,B.grow)),t:F(L(i()===`left`?`shrink-1`:`shrink-0`,`transition-opacity opacity-100`,n().off&&`opacity-50`))}),({e,t},n)=>{w(o,e,n?.e),P(o,t,n?.t)}),a},H6=e=>{var t=R6(),n=t.firstChild,r=n.nextSibling;return N(t,()=>e.header,n),N(t,x(BU,{each:()=>ru(e.actions,e=>!e.hidden),separator:(e,t,n)=>{let r=_(()=>[`wide`,`focus`,`primary`,`secondary`,`tertiary`].find(t=>t===e().style||t===n().style));return x(v,{get children(){return[x(a,{get when(){return r()===`wide`},get children(){return x(R,{height:20})}}),x(a,{get when(){return r()===`focus`},get children(){return x(R,{height:10})}}),x(a,{get when(){return r()===`primary`},get children(){return x(R,{height:10})}}),x(a,{get when(){return r()===`secondary`},get children(){return x(R,{height:0})}}),x(a,{get when(){return r()===`tertiary`},get children(){return x(R,{height:0})}})]}})},children:(t,n)=>x(V6,{get action(){return t()},get first(){return n()===0||e.actions[n()-1].style!==`secondary`},get index(){return n()}})}),r),M(()=>F(z(B.column,B.fullWidth)),(e,n)=>{w(t,e,n)}),t},U6=e=>{let t=st();var n=z6(),r=n.firstChild;return r._$$click=t=>{t.preventDefault(),t.stopPropagation(),e.onClick()},N(r,x(V,{class:`text-tertiary hover-fine:text-primary text-xs font-semibold transition-colors`,get children(){return e.text}})),M(()=>({e:F(z(B.row,B.px(B.getSidebarPadding(t())))),t:F(L(`pt-4`)),a:F(z(B.pb(2)))}),({e,t,a:i},a)=>{w(n,e,a?.e),P(n,t,a?.t),w(r,i,a?.a)}),n},W6=e=>{let t=st();var n=B6(),r=n.firstChild,i=r.nextSibling;return N(n,x(V,{get style(){return z(B.fontSize(14))},get class(){return L(`text-tertiary cursor-default glyph-trim-both`,e.class)},get children(){return e.text}}),r),N(n,()=>e.right,i),M(()=>F(z(B.row,B.justifyBetween,rt?B.alignEnd:B.alignCenter,B.px(B.getSidebarPadding(t())),B.pb((t().isMobile?13:16)-at),e.border&&B.borderBottom(`1px solid ${B.colors.border}`))),(e,t)=>{w(n,e,t)}),n},G6=e=>{let t=e?.source??`both`,n=X().derived.nearestMiss(),r=Q().getActiveChessboard().getCurrentEpd(),i=()=>H(Q().getActiveChessboard().getMoveLog())||X().state.repertoireSide!==X().state.currentSide||X().state.pendingResponses?.[r]?.mine?!1:!Ad(X().state.tableResponses,e=>e.repertoireMove?.mine),a=(e,t,n,r=`secondary`)=>{let i=mp.fromPgn(e.lines[0]),a=X().derived.activeRepertoire(),o=a?mz(Y().lockedMoves,a,i):-1;return{onPress:()=>{if(o!==-1){K(`locked_move.gap_upgrade`,{source:`biggest_gap`}),Z(e=>{Q().pushView(mL,{props:{pastLimit:!0}})});return}Z(e=>{let t=Q().getActiveChessboard().getMoveLog();Q().currentView()?.component===kY?Q().pushView(PY):(Q().withoutAnimations(()=>{Q().backTo(PY)}),vX(i.length>=t.length?`right`:`left`)),Q().mode!==`build`&&X().actions.setActiveRepertoire(e.repertoireState.browsingState.state.activeRepertoireId),Q().getActiveChessboard().playLine(i)})},text:t,right:n,style:r}},o=[],s=X().derived.biggestMiss(),c=s?.epd===n?.epd,l=e=>e.ecoNames?e.ecoNames:AF(mp.fromPgn(e.lines[0])),u=n&&l(n),d=s&&l(s),f=u?.name===d?.name,p=n&&(t===`nearest`||t===`both`)&&n.epd!==r&&!i(),m=s&&(t===`biggest`||t===`both`)&&s.epd!==r&&!i(),h=e?.preferNearestOverBiggest&&p&&m&&!c;return m&&!h&&o.push(a(s,`Go to ${ON()?``:`your`} biggest gap`,d?f?d.lastVariation:d.name:``,e?.biggestGapStyle??`secondary`)),p&&(!c||o.length===0)&&o.unshift(a(n,`Go to the next gap in this line`,u?f?u.lastVariation:u.name:``,e?.biggestGapStyle??`secondary`)),o},K6=e=>G6(e);ae([`click`]);var q6=l(`<div class=padding-sidebar>`),J6=l(`<div><div><div class="absolute inset-0 center">`),Y6=l(`<div><!><!>`),X6=l(`<div>`),Z6=8,Q6=4,$6=(e,t)=>{let n=t??(e?20:24);return rt?n:n-Z6-Q6},e8=5,t8=(e,t)=>{let n=e?32:36;return t===`bullets`?n-e8:t===`hard`||rt?n:n-Q6},$=e=>{e=ji({actionsPadding:!0,bodyEdge:`text`},e);let t=st(),n=Pi(()=>e.children);var r=Y6(),i=r.firstChild,a=i.nextSibling;return N(r,x(j,{get when(){return e.header},get children(){return[(()=>{var t=q6();return N(t,x(Zd,{get right(){return e.headerRight},get truncate(){return e.truncateHeader},get children(){return e.header}})),t})(),x(R,{get height(){return $6(t().isMobile,e.headerGap)}})]}}),i),N(r,x(j,{get when(){return!e.loading},get fallback(){var e=X6();return N(e,x(V,{get style(){return z(B.fontSize(14),B.weightSemiBold,B.fg(B.gray[80]))},get children(){return x(Ni,{get color(){return B.primaries[80]}})}})),M(()=>F(z(B.selfCenter,B.pt(48),B.center)),(t,n)=>{w(e,t,n)}),e},get children(){return[(()=>{var r=J6(),i=r.firstChild,a=i.firstChild;return N(a,x(Ni,{get color(){return B.primaries[80]}})),N(r,n,null),M(()=>({e:F(z(B.column,e.bodyPadding&&B.px(B.getSidebarPadding(t())),B.zIndex(2),B.relative)),t:F(e.class),a:F(L(`absolute top-0 left-0 right-0 bottom-0 z-10 bg-gray-26 transition-all`,e.loadingOverlay?`opacity-80`:`opacity-0 pointer-events-none`)),o:F(z(B.zIndex(10)))}),({e,t,a:n,o:a},o)=>{w(r,e,o?.e),P(r,t,o?.t),P(i,n,o?.a),w(i,a,o?.o)}),r})(),x(R,{get height(){return A(()=>!!(n()&&e.actionsPadding))()?t8(t().isMobile,e.bodyEdge):0}}),x(H6,{get actions(){return e.actions}})]}}),a),M(()=>F(z(B.column)),(e,t)=>{w(r,e,t)}),r},n8=Re(`App`,{web:()=>ve(()=>import(`./web-BdAuxhC4.js`).then(e=>new e.AppWeb),__vite__mapDeps([26,4,1,2,5]),import.meta.url)});function r8(e,t){let n=e.base.path(),r=new WeakMap,i=new Set;function a(e){return e.namespaceURI===`http://www.w3.org/2000/svg`}function o(e){if(t&&!e.hasAttribute(`link`))return;let r=a(e),i=r?e.href.baseVal:e.getAttribute(`href`);if((r?e.target.baseVal:e.target)||!i)return;let o=(e.getAttribute(`rel`)||``).split(/\s+/);if(e.hasAttribute(`download`)||o.includes(`external`))return;let s;try{s=new URL(i,document.baseURI)}catch{return}if(!(s.origin!==window.location.origin||n&&s.pathname&&!s.pathname.toLowerCase().startsWith(n.toLowerCase())))return br(s.pathname)}function s(t){let n=decodeURI(br(e.location.pathname)),r=e.isRouting(),i=o(t),a=e=>i!==void 0&&(e===i||i!==``&&e.startsWith(i+`/`)),s=r&&!!e.pendingTarget&&a(decodeURI(br(e.pendingTarget.value)));return{active:a(n),pending:s,exact:i!==void 0&&n===i}}function c(e,t,{active:n,pending:r,exact:i}){n?e.setAttribute(`data-active`,``):e.removeAttribute(`data-active`),r?e.setAttribute(`data-pending`,``):e.removeAttribute(`data-pending`),i!==t.current&&(i?e.setAttribute(`aria-current`,`page`):e.removeAttribute(`aria-current`),t.current=i)}let l=(e,t)=>
53ie(()=>c(e,t,s(e)));S(()=>(e.location.pathname,e.isRouting()),()=>i.forEach(e=>l(e,r.get(e))),{transparent:!0}),O(re(e=>{if(e.nodeName.toUpperCase()!==`A`)return;let t=e,n=r.get(t);if(n)return l(t,n);let a={current:!1};r.set(t,a),u()&&(i.add(t),O(()=>i.delete(t))),l(t,a)}))}function i8(e){let t=e.routerState.location,n=e.routerState.params,r=_(()=>e.preload&&ie(()=>{Ti(!0);try{return e.preload({params:n,location:t,intent:Si()||`initial`})}finally{Ti(!1)}})),i=e.root;return i?x(i,{params:n,location:t,get data(){return r()},get children(){return e.children}}):e.children}function a8(e){let t=[],n,r;O(()=>t.forEach(e=>e()));let i=u(),a=_(o=>{let s=e.routerState.matches(),c=r,l=c&&s.length===c.length,u=[];for(let n=0,r=s.length;n<r;n++){let r=c&&c[n],d=s[n];o&&r&&d.route.key===r.route.key?u[n]=o[n]:(l=!1,t[n]&&t[n](),fe(i,()=>he(r=>{t[n]=r;let i=d.route.key,o=_(t=>{let r=e.routerState.matches(),a=r[n];return a&&a.route.key===i?r:t||s});u[n]=Di(e.routerState,u[n-1]||e.routerState.base,o8(()=>a()?.[n+1]),()=>o()[n],o)})))}return t.splice(s.length).forEach(e=>e()),o&&l?(r=s,o):(n=u[0],r=s,u)}),o=o8(()=>a()&&n);return A(o)}var o8=e=>()=>x(j,{get when(){return e()},keyed:!0,children:e=>x(Wr,{value:e,get children(){return e.outlet()}})});function s8(e,t,n){return e.addEventListener(t,n),()=>e.removeEventListener(t,n)}var c8;function l8(){(!window.history.state||window.history.state._depth==null)&&window.history.replaceState({...window.history.state,_depth:window.history.length-1},``),c8=window.history.state._depth}function u8(e){return{...e,_depth:window.history.state&&window.history.state._depth}}function d8(e,t){let n=!1;return()=>{let r=c8;l8();let i=r==null?null:c8-r;if(n){n=!1;return}i&&t(i)?(n=!0,window.history.go(-i)):e()}}function f8(e,t){let n=e&&document.getElementById(e);n?n.scrollIntoView():t&&window.scrollTo(0,0)}function p8(){let e=()=>{let e=window.location.pathname+window.location.search,t=window.history.state&&window.history.state._depth&&Object.keys(window.history.state).length===1?void 0:window.history.state;return{value:e+window.location.hash,state:t}},t={};return l8(),{get:e,set({value:e,replace:t,scroll:n,state:r}){t?window.history.replaceState(u8(r),``,e):window.history.pushState(r,``,e),f8(decodeURIComponent(window.location.hash.slice(1)),n),l8()},init:n=>s8(window,`popstate`,d8(n,n=>{let r=t.current;if(!r)return!1;if(n)return!r.confirm(n);{let t=e();return!r.confirm(t.value,{state:t.state})}})),utils:{go:e=>window.history.go(e),beforeLeave:t}}}var m8=`solid-router:scroll`;function h8(){window.history.scrollRestoration=`manual`,l8();let e={};try{e=JSON.parse(sessionStorage.getItem(m8))||{}}catch{}let t=()=>window.history.state&&window.history.state._depth,n=!1,r,i=[s8(window,`scroll`,()=>{let i=t();i!=null&&(e[i]=window.scrollY),n||(r=void 0)}),s8(window,`pagehide`,()=>{try{sessionStorage.setItem(m8,JSON.stringify(e))}catch{}})],a=()=>{if(r==null)return;let t=e[r];r=void 0,t!=null&&(n=!0,window.scrollTo(0,t),n=!1)};return{onPop(){r=t()},onPush(){let n=t();if(n!=null)for(let t in e)+t>=n&&delete e[t]},create(e){m(()=>({url:e.location.pathname+e.location.search+e.location.hash,routing:e.isRouting()}),e=>{e.routing||a()},{transparent:!0}),O(()=>i.forEach(e=>e()));let[n]=performance.getEntriesByType&&performance.getEntriesByType(`navigation`);n&&n.type!==`navigate`&&(r=t())}}}function g8(e,t){return{...e,set(n){e.set(n),n.replace||t.onPush()},init:e.init&&(n=>e.init(e=>{t.onPop(),n(e)}))}}function _8(e,t){let n=!1,r,i=e=>typeof e==`string`?{value:e}:e,[a,s]=o(i(e.get()),{equals:(e,t)=>e.value===t.value&&e.state===t.state&&e._navigation===t._navigation,ownedWrite:!0,name:`location`}),c=[a,t=>{ee.registry&&!ee.done&&(ee.done=!0);let i;(()=>{if(s(e=>(i=Hr(e,t))||e),i&&i._navigation&&i._navigation>0){let t=i;r=t,fe(null,()=>te(()=>{if(r===t&&(r=void 0),a()===t){n=!0;try{e.set(t)}finally{n=!1}}}))}})()}];return e.init&&O(e.init((t=e.get())=>{n||c[1]({...i(t),_navigation:-1})})),{signal:c,inflight:()=>r,utils:e.utils}}function v8(e){let t=e.base||``,n,r=-1,i=()=>{let i=ri();return(!n||r!==i)&&(n=di(e.routes,t),r=i),n},a=e.history&&e.history.utils&&e.history.utils.renderPath||void 0,o=t=>fi(i(),e.transformUrl?e.transformUrl(t):t),s=e=>typeof e==`string`?new URL(e,vr).pathname:e[Pr];function c(n){let r=ie(()=>n.children),a,s=e.history;(e.scrollRestoration??!s)&&(a=h8(),s=g8(s||p8(),a));let c=_8(s||p8(),o),l,d=Ei(c,i,()=>l,{base:t,singleFlight:e.singleFlight,transformUrl:e.transformUrl});return Ai({preload:e.preloadLinks,explicitLinks:e.explicitLinks,actionBase:e.actionBase,transformUrl:e.transformUrl})(d),r8(d,e.explicitLinks),d.singleFlight&&O(_i(d)),a&&a.create(d),x(Ur,{value:d,get children(){return x(i8,{routerState:d,root:r,get preload(){return e.preload},get children(){return[A(()=>
53(l=u())&&null),x(a8,{routerState:d,branches:i})]}})}})}let l=Object.assign(c,{routes:e.routes,config:e,match(e){return o(s(e)).map(({route:e,path:t,params:n})=>({path:e.originalPath,pattern:e.pattern,match:t,params:n,info:e.info}))},keysFor(e){let t=typeof e==`string`?new URL(e,vr).pathname:e[Pr],n=[];for(let{route:e}of o(t)){let t=Lr(e.component)?.call?.key;typeof t==`string`&&t&&!n.includes(t)&&n.push(t)}return n}}),d;return Object.defineProperty(l,"paths",{get:()=>d||=Fr(a,t)}),l}var y8=l(`<i class="fa fa-up-right-from-square text-sm">`),b8=l(`<p><i class="fa fa-up-right-from-square pl-1.5 md:pl-2">`),x8=e=>{let t=N6(),n=()=>X().state.repertoireSide,r=()=>D6().state.activeGame?.result,i=()=>e.chessboard.getMoveLog(),a=()=>t()===`review`?q().repertoireState.reviewState.state.reviewSide:(t()===`model_games`?r():n())??e.chessboard.getTurn(),o=()=>{let t=a(),n=i().length,r=e.chessboard.get(e=>e.associatedGame),o=e.chessboard.get(e=>e.associatedCard),s=e.chessboard.get(e=>e.associatedLink);if(o)return o.link?o.link:sK(o.epd);if(s)return s;let c=i();return r?.link&&r?.source===`Lichess`?`${r.link}#${n}`:cK(c,{side:t,ply:n})};return x(eR,{get style(){return z(B.row)},get class(){return L(`shrink-0 `)},get open(){return A(()=>!H(i()))()&&(t()===`browse`||t()===`review`||t()===`build`||t()===`model_games`||t()===`openings_report`||t()===`play`)||e.iconOnly||Ve||Je},get children(){return x(pK,{get style(){return z()},get class(){return L(e.iconOnly?`h-7 w-7 shrink-0 center rounded-sm bg-gray-28 text-secondary transition-colors hover-fine:text-primary`:`shrink-0 py-1.5 text-xs text-tertiary font-medium transition-colors -my-2 md:py-2 md:text-sm hover-fine:text-primary`)},get href(){return o()},useDefaultBrowser:!0,onClick:()=>(K(`chessboard.analyze_on_lichess`,{side:a(),mode:t()}),!1),get children(){return A(()=>!!e.iconOnly)()?y8():(()=>{var t=b8(),n=t.firstChild;return N(t,()=>e.short?`Analyze`:`Analyze on Lichess`,n),t})()}})}})},S8=l(`<p>Plans<i class="fa fa-map pl-1.5 md:pl-2">`),C8=`No plans available for this position`,w8=e=>{let t=N6(),n=()=>X().state.activeRepertoireId,r=()=>e.chessboard.getCurrentEpd(),i=_(()=>oY(n(),r()));return x(zU,{get class(){return L(`shrink-0 py-1.5 text-xs transition-colors -my-2 md:py-2 md:text-sm`,i()?`font-medium text-tertiary hover-fine:text-primary`:`font-normal text-tertiary opacity-50 cursor-default`)},onPress:()=>{i()&&(K(`chessboard.plans_from_position`,{mode:t()}),cY())},ref:e=>{ze(()=>{vE({ref:e,content:()=>i()?null:C8,maxWidth:240})})},get children(){return S8()}})},T8=l(`<i class="fa fa-arrow-left pr-2">`),E8=l(`<div class="row items-center shrink-0 self-stretch gap-3"><!><!>`),D8=l(`<div><!><!>`),O8=l(`<div>`),k8=iG,A8=32,j8=e=>{let t=N6(),n=()=>Q().currentView(),r=()=>Y().onboarding,i=()=>Q().getActiveChessboard().get(e=>e).moveLog,a=()=>e.chessboard&&(t()===`build`||t()===`browse`)&&!H(e.chessboard.getMoveLog()),o=st(),s=()=>o().bp<dX,c=()=>s()&&Q().isPlayingGame()&&C6().getActiveTool()!==`intuition-builder`,l=()=>{let e=Q().resolveBackOperation();return C6().getActiveTool()===`blunder-puzzles`&&Q().sidebarStack.length===1&&(e=null),r().isOnboarding&&(wu([GZ,nQ,uV],n()?.component)||r().isOnboarding&&t()===`build`&&H(i())&&!XN())&&(e=null),t()===`browseCourses`&&P6()&&(e=null),e},u=()=>{let e=l();e&&Q().runBackOperation(e)};ze(()=>nG(l));let d=()=>!Kt(l()),f=()=>Kt(n())?13:A8;return x(j,{get when(){return!c()},get children(){return x(eR,{id:`sidebar-back-section`,get style(){return z(B.column,s()&&!d()&&B.height(f()))},get class(){return L(!s()&&`pt-[64px]`,s()&&d()&&`pt-[5px] pb-6`)},get open(){return d()},get children(){return[(()=>{var t=D8(),n=t.firstChild,i=n.nextSibling;return N(t,x(zU,{id:`back-button`,onPress:u,get style(){return z(B.unshrinkable,s()&&B.column,s()&&B.justifyCenter)},get class(){return L(s()?`text-md text-tertiary hover-fine:text-secondary place-items-center py-2`:`group`)},get children(){return x(j,{get when(){return s()},get fallback(){var e=O8();return N(e,x(V,{get style(){return z(B.weightBold,B.row,B.alignCenter)},get class(){return L(Ae,`group-hover:text-secondary transition-colors`)},get children(){return[T8(),`Back`]}})),M(()=>F(ye),(t,n)=>{P(e,t,n)}),e},get children(){return x(V,{class:`glyph-trim-both`,get style(){return z(B.weightBold)},get children(){return[T8(),`Back`]}})}})}}),n),N(t,x(j,{get when(){return A(()=>!(!s()||r().isOnboarding))()?e.chessboard:s()&&!r().isOnboarding},get children(){var t=E8(),n=t.firstChild,r=n.nextSibling;return N(t,x(j,{get when(){return a()},get children(){return x(w8,{get chessboard(){return e.chessboard}})}}),n),N(t,x(x8,{short:!0,get chessboard(){return e.chessboard}}),r),t}}),i),M(()=>F(L(`row padding-sidebar h-full justify-between`,!s()&&`h-8 items-center`,s()&&`items-center`)),(e,n)=>{P(t,e,n)}),t})(),x(j,{get when(){return!s()},get children(){return x(R,{height:25})}})]}})}})}
53,M8={openingMistakes:xF({type:iF().oneOf([`openingMistakes`]).required(),userId:iF().uuid().required(),mistakeId:xF({gameId:iF().required(),epd:iF().required(),source:iF().oneOf([`lichess`]).required()}).required()}).required(),repertoireSuccess:xF({type:iF().oneOf([`repertoireSuccess`]).required(),userId:iF().uuid().required(),gameId:iF().required()}).required()},N8=e=>{try{let t=JSON.parse(e),n=t?.type;return typeof n!=`string`||!Object.hasOwn(M8,n)?null:M8[n].validateSync(t,{strict:!0})}catch{return null}},[P8,F8]=o(null),I8=P8,L8=(e,t)=>{K(`app_intent.resolved`,{intent_type:e.intent.type,source:e.source,outcome:t,wait_ms:Math.round(performance.now()-e.openedAt),ms_since_launch_at_open:Math.round(e.openedAt)})},R8=(e,t)=>{let n=JSON.stringify(e),r=ie(P8);r?.key!==n&&(r&&L8(r,`superseded`),F8({intent:e,source:t,openedAt:performance.now(),key:n}))},z8=(e,t)=>{ie(P8)===e&&(L8(e,t),F8(null))},B8={repertoireSuccess:()=>`stayed`,openingMistakes:async(e,t)=>{let n;try{n=await hN.call([`openings.mistakeQueue`],{signal:t})}catch(e){return t.aborted?`superseded`:(mn.error(`Couldnât load your mistakes. Open your online game review to try again.`),console.warn(`Could not open mistake notification`,e.message),`failed`)}let r=q().repertoireState.superRepertoires,i=n.filter(e=>{let t=r?.[e.side].positionResponses[e.epd];return t&&t.length>0&&!t.some(t=>t.sanPlus===e.playedSan)}),a=e.mistakeId,o=i.findIndex(e=>e.gameId===a.gameId&&e.epd===a.epd&&e.source===a.source);return o>0&&i.unshift(...i.splice(o,1)),Z(e=>{e.repertoireState.backToOverview(),e.repertoireState.lichessMistakes=i,i.length>0&&e.repertoireState.reviewState.actions.startReview({lichessMistakes:i,cameFrom:`home`})}),i.length===0?(mn.success(`Youâre all caught up on your opening mistakes.`),`empty`):`opened`}},V8=(e,t)=>B8[e.type](e,t),H8=()=>{let e=_(()=>{let e=J().user;return e&&q().repertoireState.repertoires?e.id:J().authStatus===y1.Unauthenticated?null:void 0});return m(()=>{let t=Ge?I8():null,n=e();return t&&n!==void 0?{entry:t,userId:n}:null},e=>{if(!e)return;let{entry:t,userId:n}=e;if(n!==t.intent.userId){z8(t,n===null?`signed_out`:`user_mismatch`);return}let r=new AbortController;return Promise.resolve(V8(t.intent,r.signal)).then(e=>{r.signal.aborted||z8(t,e)}),()=>r.abort()}),null},U8=()=>(m(()=>Ge?J().user?.id:void 0,e=>{if(!e)return;let t=0,n=0,r=e=>{if(document.visibilityState===`visible`){e&&t++;let r=t;hN.call([`user.recordAppActivity`,{isVisit:r>n}]).then(()=>{n=Math.max(n,r)}).catch(e=>{console.warn(`Could not record app activity`,e.message)})}},i=()=>r(!0);i();let a=window.setInterval(()=>r(!1),3e5);return document.addEventListener(`visibilitychange`,i),()=>{window.clearInterval(a),document.removeEventListener(`visibilitychange`,i)}}),null),W8=()=>(m(()=>Ye?J().user?.id:void 0,e=>{if(!e)return;let t=!1,n,r=()=>{VB(),YB(`foreground`)};r(),n8.addListener(`appStateChange`,({isActive:e})=>{e&&!t&&r()}).then(e=>{t?e.remove():n=()=>e.remove()}).catch(e=>console.warn(`Could not observe notification settings on foreground`,e.message));let i=window.setInterval(()=>{VB()},3e4);return window.addEventListener(`online`,r),()=>{t=!0,window.clearInterval(i),window.removeEventListener(`online`,r),n?.()}}),null),G8=({children:e})=>(ze(()=>{q().userState.loadAuthData().then(()=>{Ge&&d1(),KS().then(e=>{Z(t=>{let n=t.userState;n.setUser(e),n.authStatus=y1.Authenticated})}).catch(e=>{(e?.response?.status||0)===401&&J().quick(e=>{e.logout()})})})}),e),K8=l(`<div class="row min-w-0 items-center gap-2 overflow-x-auto">`),q8=l(`<button type=button><i>`),J8=e=>{var t=K8();return N(t,x(b,{get each(){return e.entries},children:(t,n)=>(()=>{var r=q8(),i=r.firstChild;return r._$$click=()=>e.onSelect(n()),M(()=>({e:F(L(`h-7 w-7 shrink-0 cursor-pointer rounded-sm center text-xs font-bold`,t.passed?`bg-success text-gray-21`:`bg-danger text-gray-21`,e.activeIndex===n()&&`border-2 border-gray-96`)),t:F(L(`fa`,t.passed?`fa-check`:`fa-xmark`))}),({e,t},n)=>{P(r,e,n?.e),P(i,t,n?.t)}),r})()})),t};ae([`click`]);var Y8=l(`<div style="transition-property:opacity, max-width"><div>`),X8=l(`<div><!><!>`),Z8=e=>{var t=Y8(),n=t.firstChild;return s(t,`transition-duration`,`160ms, 0ms`),N(n,()=>e.children),M(()=>({e:e.hidden,t:F(L(`overflow-x-clip whitespace-nowrap`,e.hidden?`opacity-0 pointer-events-none max-w-0`:`opacity-100 max-w-[200px]`)),a:e.hidden?`0ms, 160ms`:`160ms, 0ms`,o:F(L(e.gapBefore&&`pl-4`))}),({e,t:r,a:i,o:a},o)=>{e!==o?.e&&C(t,`inert`,e),P(t,r,o?.t),i!==o?.a&&s(t,`transition-delay`,i),P(n,a,o?.o)}),t},Q8=`font-medium text-tertiary hover-fine:text-primary transition-colors text-sm md:text-xs`,$8=()=>{let e=st(),t=()=>J().user,n=()=>J().authStatus,r=N6(),i=()=>n()===y1.Unauthenticated||n()===y1.Authenticated&&t()?.temporary,a=()=>e().isMobile,o=()=>Q().getBreadCrumbs(),s=()=>Y().onboarding.isOnboarding,c=()=>r()===`browseCourses`&&!P6(),l=()=>!(Ve||s()||c()),u=()=>Q().currentView()?.component===wX,d=()=>a()&&o().length>1&&!!i()&&!u(),f=e=>{Z(t=>{let n=Q().currentView();if(n?.component===wX){if((n.props?.authType??`login`)===e)return;Q().replaceView(wX,{direction:e===`register`?`right`:`left`,props:{authType:e}});return}t.repertoireState.backToOverview(),t.repertoireState.onboarding.isOnboarding=!1,Q().pushView(wX,{props:{authType:e}})})};var p=X8(),m=p.firstChild,h=m.nextSibling;return N(p,x(j,{get when(){return l()},get children(){return x(Z8,{get hidden(){return d()},get children(){return x(zU,{onPress:()=>Z(e=>{e.repertoireState.backToOverview(),Q().pushView(r0)}),get children(){return x(kU,{text:`Settings`,icon:`fa fa-gear text-xs`,class:Q8})}})}})}}),m),N(p,x(j,{get when(){return A(()=>!!i())()?!c():i()},get children(){return[x(Z8,{get hidden(){return d()},get gapBefore(){return l()},get children(){return x(zU,{onPress:()=>f(`login`),get children(){return x(kU,{text:`Log in`,icon:`fa-solid fa-right-to-bracket text-xs`,class:Q8})}})}}),x(zU,{onPress:()=>f(`register`),class:`pl-4`,get children(){return x(kU,{text:`Sign up`,icon:`fa-solid fa-user-plus text-xs`,class:Q8})}})]}}),h),M(()=>F(z(B.row)),(e,t)=>{w(p,e,t)}),p},e5=l(`<p class=body-text>This has moved over to <a href=https://chessbook.com/>www.chessbook.com</a>! If you have a repertoire that you haven't saved to an account yet, you should create an account first.`),t5=()=>(ze(()=>{K(`trainers.opening_redirect.shown`)}),x($,{header:`The opening builder has moved!`,bodyPadding:!0,actions:[{onPress:()=>{K(`trainers.opening_redirect.go_to_chessbook`),window.location.href=`https://chessbook.com/`},style:`focus`,text:`Take me there`},{onPress:()=>{K(`trainers.opening_redirect.create_account`),Q().pushView(wX,{props:{authType:`register`}})},style:`primary`,text:`Create an account first`}],get children(){return[(()=>{var e=e5(),t=e.firstChild.nextSibling;return ne(t),M(()=>F(L(`underline!`)),(e,n)=>{P(t,e,n)}),e})(),x(R,{height:12})]}})),n5=l(`<div class=contents data-sidebar-view-id=root data-sidebar-preview-scope=data>`),r5=l(`<div class="row min-w-0 grow items-center">`),i5=l(`<div><button>
53<i>`),a5=l(`<div class="row items-center w-full gap-4 justify-end max-md:padding-sidebar"><!><!><!><!><!>`),o5=l(`<div role=button tabindex=0><div class="shrink-0 center square-10 rounded-md bg-gray-28"><i></i></div><div class="col grow gap-1 min-w-0"><p class="font-semibold text-primary"></p><p class="text-tertiary text-sm leading-snug"></p></div><i class="fa-solid fa-chevron-right text-tertiary text-xs shrink-0">`),s5=l(`<p class=body-text>Free trainers for the parts of chess that aren't openings.`),c5=l(`<div class="col gap-2">`),l5={visualization:`visualization`,vision:`vision`,"blunder-puzzles":`blunder_puzzles`,"intuition-builder":`intuition_builder`},u5=e=>{m(()=>e.initialTool,e=>{let t=e===`visualization`?N3:e===`vision`?w3:e===`blunder-puzzles`?z4:e===`intuition-builder`?d3:null;t&&(K(`${l5[e]}.opened`),Z(e=>{q().trainersState.getActiveTool()?Q().replaceView(t):Q().ensureView(t)}))});let t=st(),n=()=>q().trainersState.getActiveTool(),r=()=>Q().currentView(),i=x(v,{get fallback(){var e=n5();return N(e,x(p5,{})),e},get children(){return x(a,{get when(){return r()},get children(){return x(qI,{get stack(){return Q().sidebarStack}})}})}}),o=()=>n()===`board-vision`?q().trainersState.visionState.chessboard:n()===`blunder-puzzles`?q().trainersState.blunderPuzzlesState.chessboard:n()===`intuition-builder`?q().trainersState.intuitionBuilderState.chessboard:q().trainersState.visualizationState.chessboard,s=()=>C6().visualizationState.isPlaying,c=()=>C6().visualizationState.startedSolving,l=()=>C6().visualizationState.pulsePlay,u=()=>q().trainersState.blunderPuzzlesState.resultHistory,d=()=>q().trainersState.intuitionBuilderState.resultHistory,f=()=>(()=>{var e=a5(),i=e.firstChild,f=i.nextSibling,p=f.nextSibling,m=p.nextSibling,h=m.nextSibling;return N(e,x(j,{get when(){return A(()=>n()===`blunder-puzzles`)()&&u().length>0},get children(){var e=r5();return N(e,x(J8,{get entries(){return u()},get activeIndex(){return u().findIndex(e=>e.puzzle.id===q().trainersState.blunderPuzzlesState.historyReviewItem?.puzzle.id)},onSelect:e=>{let t=u()[e];t&&(K(`blunder_puzzles.history_review_opened`,{passed:t.passed,gave_up:t.san===null,puzzle_rating:Math.round(t.puzzle.glicko)}),Z(e=>{Q().ensureView(B4,{props:{item:t}})}))}})),e}}
53),i),N(e,x(j,{get when(){return A(()=>n()===`intuition-builder`)()&&d().length>0},get children(){var e=r5();return N(e,x(J8,{get entries(){return d()},get activeIndex(){return d().findIndex(e=>e.position.id===q().trainersState.intuitionBuilderState.historyReviewItem?.position.id)},onSelect:e=>{let t=d()[e];t&&(K(`intuition_builder.history_review_opened`,{passed:t.passed,delta:t.delta}),Z(e=>{Q().ensureView(f3,{props:{item:t}})}))}})),e}}),f),N(e,x(v,{get children(){return x(a,{get when(){return A(()=>n()===`visualization`)()&&!c()},get children(){return[(()=>{var e=i5(),n=e.firstChild,r=n.firstChild;return n._$$click=()=>{K(`visualization.play_hidden_moves`),Z(e=>{e.trainersState.visualizationState.visualizeHiddenMoves()})},M(()=>({e:F(L(`row items-stretch w-full`,t().isMobile?`padding-sidebar`:``)),t:F(L(`grow h-[60px] py-0 text-[22px] overflow-hidden`,`row w-full cursor-pointer items-center justify-center rounded-sm bg-blue-70`,l()&&`animate-pulse`)),a:`text-primary fa-solid ${s()?`fa-pause`:`fa-play`}`}),({e:t,t:i,a},o)=>{P(e,t,o?.e),P(n,i,o?.t),P(r,a,o?.a)}),e})(),x(R,{height:12})]}})}}),p),N(e,x(j,{get when(){return A(()=>!!r())()?n()===`blunder-puzzles`||n()===`intuition-builder`:r()},get children(){return x(x8,{get chessboard(){return o()},iconOnly:!0})}}),m),N(e,x(j,{get when(){return A(()=>!!(r()&&n()!==`blunder-puzzles`))()?n()!==`intuition-builder`:r()&&n()!==`blunder-puzzles`},get children(){return x(x8,{get chessboard(){return o()},get short(){return n()===`visualization`}})}}),h),e})();return[x(pX,{loading:!1,get breadcrumbs(){return x(mX,{})},sidebarContent:i,get settings(){return x($8,{})},get chessboardInterface(){return o()},get backSection(){return x(j8,{})},get belowChessboard(){return f()}}),x(r2,{})]},d5=e=>{K(`trainers.directory.clicked`,{tool:e.slug}),e.onPress()},f5=e=>(()=>{var t=o5(),n=t.firstChild,r=n.firstChild,i=n.nextSibling.firstChild,a=i.nextSibling;return t._$$keydown=t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),d5(e.trainer))},t._$$click=()=>d5(e.trainer),N(i,()=>e.trainer.title),N(a,()=>e.trainer.description),M(()=>
53({e:F(L(`row items-center gap-4 rounded-md p-4 cursor-pointer select-none`,`bg-sidebar_button_primary hover-fine:bg-sidebar_button_primary_hover transition-colors`)),t:F(L(`fa-solid text-lg`,e.trainer.icon,e.trainer.iconColor))}),({e,t:n},i)=>{P(t,e,i?.e),P(r,n,i?.t)}),t})(),p5=()=>{let e=Jr(),t=()=>[{title:`Blunderbash`,description:`Don't find the best move â just don't blunder. Keep the streak alive.`,icon:`fa-bomb`,iconColor:`text-red-65`,slug:`blunder_puzzles`,onPress:()=>e(`/blunder-puzzles`)},{title:`Intuition Builder`,description:`Play the move a human at your target rating would actually pick.`,icon:`fa-brain`,iconColor:`text-purple-60`,slug:`intuition_builder`,onPress:()=>{e(`/intuition-builder`),Q().pushView(d3)}},{title:`Visualization`,description:`Follow a few hidden moves in your head, then find the right one.`,icon:`fa-eye-slash`,iconColor:`text-blue-75`,slug:`visualization`,onPress:()=>{e(`/visualization`),Q().pushView(N3)}},{title:`Board vision`,description:`Spot hanging pieces, loose pawns and checks at a glance.`,icon:`fa-chess-board`,iconColor:`text-teal-85`,slug:`vision`,onPress:()=>{e(`/vision`),Q().pushView(w3)}}];return x($,{header:`Chess Madra`,bodyPadding:!0,actions:[],get children(){return[s5(),x(R,{height:16}),(()=>{var e=c5();return N(e,x(b,{get each(){return t()},children:e=>x(f5,{trainer:e})})),e})(),x(R,{height:20}),x(f5,{trainer:{title:`Opening builder`,description:`Build a bulletproof repertoire over on Chessbook.`,icon:`fa-book`,iconColor:`text-orange-75`,slug:`opening_builder`,onPress:()=>Q().pushView(t5)}})]}})};ae([`click`,`keydown`]);var m5=l(`<p>`),h5=e=>x(Zd,{get children(){var t=m5();return N(t,()=>e.course.name),t}}),g5=l(`<span class=whitespace-nowrap>`),_5=l(`<p class="body-text padding-sidebar">You've reached the end of the repertoire. Save this line?`),v5=l(`<div><div class=padding-sidebar></div><div><!><!></div><!><!>`),y5=e=>{let t=!1,n=()=>e.courseDetails,r=n=>{if(t)return;t=!0;let r=e.course;er(`CourseBrowser missing course details`,{level:`warning`,tags:{course_id:r?.id??`none`,course_slug:r?.slug??`none`},extra:{where:n,courseName:r?.name??`none`,currentEpd:i(),originalEpd:e.originalEpd}})};ky({category:`course_browser`,level:`info`,message:`CourseBrowser opened`,data:{courseId:e.course.id,courseSlug:e.course.slug,originalEpd:e.originalEpd,responseCount:Object.keys(n()?.responses??{}).length,epdStatsCount:Object.keys(n()?.epdStats??{}).length}});let i=()=>Q().getActiveChessboard().getCurrentEpd();_(()=>{let e=n();return e?GQ.countMovesFrom(e.responses,i()).totalMoves:(r(`numMovesFromHere`),0)});let a=()=>X().state.repertoireSide,o=()=>Q().getActiveChessboard().get(e=>e).moveLog,s=_(()=>(()=>{let e=n();if(!e)return r(`tableResponseRows.moves`),[];let t=e.responses[i()]??[];return t=jd(t,t=>-(e.epdStats[t.epdAfter]?.incidence??0)),t})().filter(e=>(n()?.responses[e.epdAfter]?.length??0)>0).map(e=>({tableResponse:()=>({side:a(),tags:[],courseMove:e}),courseStats:()=>{let e=n();if(!e){r(`tableResponseRow.courseStats`);return}return e.epdStats},suggestedMove:()=>void 0,positionReport:()=>void 0,earliestDueDate:()=>void 0,numMovesDueFromHere:()=>0,side:()=>a(),line:()=>o(),epd:()=>i(),annotation:()=>{let t=Y().getAnnotation(dV.toKey({epd:i(),san:e.sanPlus}))?.text;if(t)return oH(t)},hasAnnotation:()=>!!Y().getAnnotation(dV.toKey({epd:i(),san:e.sanPlus}))?.text,openingName:()=>X().derived.openingNameForMove(e.epdAfter)??void 0,tagsRow:()=>null,actionsRow:()=>null,unclickable:()=>!1,isFaded:()=>!1,hideAnnotations:()=>!1})));ZI(()=>{i()===e.originalEpd?Z(e=>{Q().popView()}):Z(e=>{e.repertoireState.browsingState.handles.chessboard.backOne(),vX(`left`)})},`stay`);let c=e=>{Q().getActiveChessboard().previewMove(e?.tableResponse().courseMove?.sanPlus||null)},l=()=>X().state.repertoireSide===Q().getActiveChessboard().getTurn(),u=_(()=>s().some(e=>e.hasAnnotation?.()??!!e.annotation())),d=()=>l()?[]:[{kind:`covered`,label:`Covered`,align:MH(`covered`),widthMode:`content`,render:e=>(()=>{var t=g5();return N(t,()=>_L(GQ.countMovesFrom(n()?.responses??{},e.tableResponse().courseMove.epdAfter,void 0).totalMoves,`move`)),t})()}],f=()=>pU({myTurn:l(),allLocalStockfish:!1,course:e.course,extraStatColumns:d()}),p=()=>NH({myTurn:l()}),m=()=>{let t=[];return t.push({text:`Save to my repertoire`,style:`primary`,onPress:()=>{Z(t=>{K(`courses.saveToRepertoire.clicked`,{courseId:e.course.id,courseName:e.course.name}),X().actions.requestCourseImport({course:e.course,courseDetails:e.courseDetails,fromEpd:e.originalEpd})})}}),t};var h=v5(),g=h.firstChild,v=g.nextSibling,y=v.firstChild,b=y.nextSibling,S=v.nextSibling,C=S.nextSibling;return N(g,x(h5,{get course(){return e.course}})),N(h,x(R,{between:[`header`,`table`]}),v),N(v,x(j,{get when(){return s().length>0},get children(){return x(gW,{get headerLabel(){return p()},get columns(){return f()},get rows(){return s()},get hasAnyAnnotations(){return u()},onHover:e=>c(e),onBlur:e=>c(),onClick:e=>{Z(t=>{vX(`right`),t.repertoireState.browsingState.handles.chessboard.makeMove(e.tableResponse().courseMove.sanPlus,{animate:!0,sound:`move`})})},maxRows:null})}}),y),N(v,x(j,{get when(){return s().length===0},get children(){return _5()}}),b),N(h,x(R,{between:[`table`,`actions`]}),S),N(h,x(j,{get when(){return l()},get children(){return x(H6,{get actions(){return m()}})}}),C),h};LF(y5,`build`);
53var b5=l(`<div class="row space-x-2 items-center"><i class="fa-regular fa-duotone fa-badge-check text-sm"></i><p class="font-medium text-primary text-xs">Official Repertoire`),x5=()=>{var e=b5(),t=e.firstChild;return M(()=>F(z(B.duotone(B.gray[96],B.blue[55]))),(e,n)=>{w(t,e,n)}),e},S5=l(`<div>`),C5=e=>{let t=()=>{if(e.height!==void 0)return typeof e.height==`number`?`${e.height}px`:e.height},n=()=>{if(e.width!==void 0)return typeof e.width==`number`?`${e.width}px`:e.width};var r=S5();return M(()=>({e:F(L(`bg-gray-37 animate-pulse`,e.class)),t:t(),a:n()}),({e,t,a:n},i)=>{P(r,e,i?.e),t!==i?.t&&s(r,`height`,t),n!==i?.a&&s(r,`width`,n)}),r},w5=l(`<div class="padding-sidebar flex flex-col gap-4 pt-4"><!><!><!><!>`),T5=l(`<div class="padding-sidebar text-secondary">`),E5=l(`<p class="whitespace-pre-wrap body-text">`),D5=l(`<div><div class=padding-sidebar><!><div class="flex flex-row items-center gap-2"><span class="text-secondary text-sm font-semibold">For </span></div><!><!><!><!><!>`),O5=e=>{let[t,n]=o(0),[r,i]=o(!1),a;PF(O5),ZI(()=>{},`hide`);let s=()=>{setTimeout(()=>{Z(t=>{e.isExistingUser?(Q().sidebarStack.length>0&&vX(`right`),Q().clearViews()):(t.repertoireState.onboarding.isOnboarding=!0,t.repertoireState.onboarding.autoplay=!0,t.repertoireState.onboarding.courseId=e.course.id,Q().pushView(rQ))})},200)};return ze(()=>{let o=Date.now(),c=()=>{if(r())return;let e=Date.now()-o,t=Math.min(.95,1-Math.exp(-e/1500));n(t),a=requestAnimationFrame(c)};a=requestAnimationFrame(c),e.dataPromise.then(()=>{K(`courses.importCourse.success`,{courseId:e.course.id,courseName:e.course.name}),i(!0),a&&cancelAnimationFrame(a);let r=t(),o=Date.now(),c=()=>{let e=Date.now()-o,t=Math.min(e/300,1),i=1-(1-t)**2;n(r+(1-r)*i),t<1?requestAnimationFrame(c):s()};requestAnimationFrame(c)}).catch(t=>{K(`courses.importCourse.failed`,{courseId:e.course.id,courseName:e.course.name,error:String(t)}),mn.error(`Failed to import repertoire. Please try again.`),Q().popView()})}),x($,{header:`Copying repertoire...`,bodyPadding:!0,actions:[],get children(){return[x(V,{class:`body-text`,get children(){return[A(()=>e.course.name),` is being added to your Chessbook.`]}}),x(R,{height:24}),x(CZ,{get value(){return t()}})]}})},k5=e=>{let[t,n]=o(null),[r,i]=o(null),[a,s]=o(!0),[c,l]=o(!1),[u,d]=o(null),[f,p]=o(!1),h=()=>X().derived.activeRepertoire()!==void 0,g=()=>Q().getActiveChessboard().getCurrentEpd(),_=async e=>{if(!r()){l(!0);try{let t=X().derived.activeRepertoire(),n=await hN.call([`openings.courses.detailsById`,{id:e.id,repertoireId:t?.id??``}]);i(n)}catch{mn.error(`Failed to load course details`)}finally{l(!1)}}};m(()=>{let t=e.slug;return{slug:t,existingCourse:M6().courses?.find(e=>e.slug===t||e.id===t),selectedRating:M6().selectedRating,selectedThreshold:M6().selectedThreshold}},({slug:e,existingCourse:t,selectedRating:r,selectedThreshold:i})=>{if(!e)return;let a=!1;if(s(!0),d(null),t){n(t),s(!1);return}return hN.call([`openings.courses.browse`,{filters:{eloRange:r,threshold:i}}]).then(t=>{if(a)return;Z(e=>{e.coursesState.courses=t});let r=t.find(t=>t.slug===e||t.id===e);r?n(r):d(`Course not found`),s(!1)}).catch(e=>{a||(d(`Failed to load course`),s(!1))}),()=>{a=!0}});let v=(e,t)=>{let n=hN.call([`openings.courses.importIntoRepertoire`,{id:e.id,fromEpd:fp,repertoireId:null,positionHistory:[],alternateBehavior:null,coverageTarget:t?null:.005}]);n.then(t=>{Z(n=>{n.repertoireState.courses[e.id]=e,n.repertoireState.importedCourseId=e.id,n.repertoireState.repertoireFetched(t),n.repertoireState.onRepertoireChange(),n.repertoireState.browsingState.actions.updateRepertoireProgress()})}),Z(e=>{e.navigationState.push(`/`)}),Q().pushView(O5,{props:{course:e,isExistingUser:t,dataPromise:n}})},y=(e,t)=>{let n=hN.call([`openings.courses.importIntoRepertoire`,{id:e.id,fromEpd:fp,repertoireId:null,positionHistory:[],alternateBehavior:null,coverageTarget:0}]);n.then(t=>{Z(n=>{n.repertoireState.courses[e.id]=e,n.repertoireState.importedCourseId=e.id,n.repertoireState.repertoireFetched(t),n.repertoireState.onRepertoireChange(),n.repertoireState.browsingState.actions.updateRepertoireProgress()})}),Z(e=>{e.navigationState.push(`/`)}),Q().pushView(O5,{props:{course:e,isExistingUser:t,dataPromise:n}})},b=()=>{let e=t();if(!e)return;let n=P6();K(`courses.importCourse.clicked`,{courseId:e.id,courseName:e.name,newRepertoire:!0,freshUser:n,entire:!0}),n?Q().pushView(JZ,{props:{onContinue:()=>{y(e,E())}}}):y(e,E())},S=()=>{let e=t();if(!e)return;let n=P6();K(`courses.importCourse.clicked`,{courseId:e.id,courseName:e.name,newRepertoire:!0,freshUser:n}),n?Q().pushView(JZ,{props:{onContinue:()=>{v(e,E())}}}):v(e,E())},C=async()=>{let e=t();if(!e)return;K(`courses.browseMoves.clicked`,{courseId:e.id,courseName:e.name}),await _(e);let n=r();n&&Q().pushView(y5,{props:{course:e,courseDetails:n,originalEpd:g()}})},w=()=>{let e=t();if(!e)return;let n=P6();K(`courses.importCourse.clicked`,{courseId:e.id,courseName:e.name,newRepertoire:!0,freshUser:n}),n?Q().pushView(JZ,{props:{onContinue:()=>{v(e,E())}}}):v(e,E())};ze(()=>{window.history.replaceState({},``,`/repertoires/${e.slug}`)}),O(()=>{window.history.replaceState({},``,`/`)});let T=()=>t()?.characteristics,E=()=>TH.getAllEnabledRepertoiresMoves(Y().repertoires).length>0;return[x(j,{get when(){return a()},get children(){var e=w5(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling,i=r.nextSibling;return N(e,x(C5,{height:40,width:`50%`}),t),N(e,x(C5,{height:112,width:`100%`}),n),N(e,x(C5,{height:20,width:`30%`}),r),N(e,x(C5,{height:20,width:`30%`}),i),e}}),x(j,{get when(){return A(()=>!a())()&&u()},get children(){return x($,{header:`Error`,actions:[],get children(){var e=T5();return N(e,u),e}})}}),x(j,{get when(){return A(()=>!a())()&&t()},get children(){var e=D5(),n=e.firstChild,r=n.firstChild,i=r.nextSibling,a=i.firstChild;a.firstChild;var o=i.nextSibling,s=o.nextSibling,l=s.nextSibling,u=l.nextSibling,d=u.nextSibling;return N(n,x(h5,{get course(){return t()}}),r),N(n,x(R,{height:12}),i),N(i,x(TU,{get side(){return t().side},size:14}),a),N(a,()=>Eo(t().side),null),N(n,x(R,{between:[`header`,`body-text`]}),o),N(n,x(j,{get when(){return t().description},get children(){var e=E5();return N(e,()=>t().description),e}}),s),N(n,x(j,{get when(){return t().official},get children(){return[x(R,{height:24}),x(x5,{})]}}),l),N(n,x(j,{get when(){return A(()=>!!E())()?T():E()},get children(){return[x(R,{height:24}),x(SJ,{header:`Stats for your level`,get characteristics(){return T()},get side(){return t().side},get coverage(){return t().coverage??void 0}})]}}),u),N(n,x(R,{height:24}),d),N(e,x(H6,{get actions(){let e=[];return h()?(e.push({onPress:C,text:c()?`Loading...`:`Browse moves`,right:E()&&t()?.moveCount!=null?_L(t().moveC
53ount,`move`):void 0,style:`primary`}),e.push({onPress:w,text:`Copy to new repertoire`,style:`secondary`})):(e.push({onPress:S,text:`Copy this repertoire`,right:E()&&t()?.moveCount!=null?_L(t().moveCount,`move`):void 0,style:`primary`,testId:`import-course-button`}),f()?e.push({onPress:b,text:`Copy entire repertoire`,style:`secondary`}):e.push({onPress:()=>p(!0),text:`Show more`,style:`tertiary`})),e}}),null),e}})]},A5=l(`<div class="flex flex-col gap-2 w-full"><span class="text-primary font-semibold text-sm leading-relaxed">`),j5=l(`<span class="text-primary font-semibold text-sm leading-relaxed">`),M5=(e,t)=>{switch(t){case`coverage`:return e.coverage??0;case`effectiveness`:return e.characteristics?.effectiveness??0;case`soundness`:return e.characteristics?.soundness??0;case`learnability`:return e.characteristics?.learnability??0}},N5=()=>J().flagEnabled(`precise_characteristics`),P5=e=>{let t=e.characteristics;if(!t)return[];let n=N5(),r=[{label:`Effectiveness`,value:t.effectiveness,tooltip:n?mJ.getEffectivenessTooltip(t):void 0},{label:`Soundness`,value:t.soundness,tooltip:n?mJ.getSoundnessTooltip(t):void 0}];return t.learnability!=null&&J().flagEnabled(`learnability`)&&r.push({label:`Learnability`,value:t.learnability,tooltip:n?mJ.getLearnabilityTooltip(t):void 0}),r},F5=e=>{let[t,n]=o(`coverage`),[r,i]=o(`desc`),a=e=>()=>{n(e),i(`desc`)},s=_(()=>{let n=t();if(!n)return e.courses;let i=jd(e.courses,e=>M5(e,n));return r()===`desc`?[...i].reverse():i}),c=_(()=>[{label:`Name`,labelStyle:`hidden`,width:`auto`,align:`left`,render:e=>ON()?(()=>{var t=A5(),n=t.firstChild;return N(n,()=>e.name),N(t,x(j,{get when(){return e.characteristics},get children(){return x(pJ,{get items(){return P5(e)},get coverage(){return e.coverage??void 0},grow:!0})}}),null),t})():(()=>{var t=j5();return N(t,()=>e.name),t})()}]),l=_(()=>{let e=[],n=t(),i=r();return ON()||(e.push({label:`Coverage`,width:56,align:`left`,sort:n===`coverage`?i:void 0,onSort:a(`coverage`),render:e=>{let t=e.coverage;return x(j,{when:t!=null,get children(){return x(Zq,{value:t})}})}}),e.push({label:`Effectiveness`,width:80,align:`right`,sort:n===`effectiveness`?i:void 0,onSort:a(`effectiveness`),render:e=>{let t=e.characteristics?.effectiveness,n=N5()&&e.characteristics?mJ.getEffectivenessTooltip(e.characteristics):void 0;return x(j,{when:t!=null,get children(){return x(iJ,{value:t,tooltip:n})}})}},{label:`Soundness`,width:70,align:`right`,sort:n===`soundness`?i:void 0,onSort:a(`soundness`),render:e=>{let t=e.characteristics?.soundness,n=N5()&&e.characteristics?mJ.getSoundnessTooltip(e.characteristics):void 0;return x(j,{when:t!=null,get children(){return x(iJ,{value:t,tooltip:n})}})}}),J().flagEnabled(`learnability`)&&e.push({label:`Learnability`,width:70,align:`right`,sort:n===`learnability`?i:void 0,onSort:a(`learnability`),render:e=>{let t=e.characteristics?.learnability,n=N5()&&e.characteristics?mJ.getLearnabilityTooltip(e.characteristics):void 0;return x(j,{when:t!=null,get children(){return x(iJ,{value:t,tooltip:n})}})}})),e});return x(uW,{maxRows:null,get leftColumns(){return c()},get rightColumns(){return l()},get rows(){return s()},onClick:t=>{if(e.onClick)e.onClick(t);else{let e=t.slug||t.id;Q().pushView(k5,{props:{slug:e}})}},get class(){return ON()?`py-4`:`min-h-11 py-2 justify-center`},get hideAllLabels(){return ON()},get hideTopBorder(){return ON()},rowAlign:`center`})},I5=l(`<div>`),L5=l(`<div class="padding-sidebar flex flex-row items-center gap-2 text-secondary"><i class="fa fa-spinner-third animate-spin"></i><span>Loading courses...`),R5=l(`<div class="flex gap-2 row relative"><!><!>`),z5=l(`<div class="padding-sidebar text-secondary">No courses available.`),B5=l(`<div><!><!>`),V5=()=>{let[e,t]=o(`white`);ze(()=>{M6().courses||M6().fetchCourses()}),ZI(()=>{Z(()=>{Q().popView()})});let n=_(()=>jd(M6().courses??[],e=>-GQ.getScore(e))),r=_(()=>n().filter(t=>t.side===e())),i=()=>M6().loading,a=[`white`,`black`],s=e=>{var t=I5();return M(()=>F(L(`absolute bottom-0 left-0 right-0 h-0.5 transition-colors bg-gray-96`,e?`bg-gray-84`:`bg-gray-32`)),(e,n)=>{P(t,e,n)}),t};return x($,{header:`Pre-made repertoires`,actions:[],get children(){return[x(j,{get when(){return i()},get children(){return L5()}}),x(j,{get when(){return A(()=>!i())()&&n().length>0},get children(){return[(()=>{var n=R5(),r=n.firstChild,i=r.nextSibling;return N(n,()=>s(!1),r),N(n,x(b,{each:a,children:n=>(()=>{var r=B5(),i=r.firstChild,a=i.nextSibling;return r._$$click=()=>t(n),N(r,n,i),N(r,()=>s(e()===n),a),M(()=>F(L(`text-sm transition-colors cursor-pointer py-4 font-medium relative padding-sidebar capitalize`,e()===n?`text-primary`:`text-tertiary hover-fine:text-primary`)),(e,t)=>{P(r,e,t)}),r})()}),i),n})(),x(j,{get when(){return!ON()},get children(){return x(R,{between:[`tabs`,`table`]})}}),x(F5,{get courses(){return r()}})]}}),x(j,{get when(){return A(()=>!i())()&&n().length===0},get children(){return z5()}})]}})};LF(V5,`browseCourses`),ae([`click`]);function H5(){return ze(()=>{K(`landing_page_loaded`)}),x(Pe,{onLogin:()=>{Z(e=>{window.fbq&&(window.fbq(`trackCustom`,`landing_page_conversion`,{source:`login`}),window.fbq(`track`,`StartTrial`)),K(`landing_page_conversion`,{source:`login`}),e.userState.pastLandingPage=!0,Q().pushView(wX)})},onClick:e=>{Z(t=>{K(`landing_page_conversion`,{source:e}),window.fbq&&(window.fbq(`trackCustom`,`landing_page_conversion`,{source:e}),window.fbq(`track`,`StartTrial`)),window.twq&&twq(`event`,`tw-oryca-oryec`,{}),K(`onboarding.started`),t.repertoireState.startOnboarding(),t.userState.pastLandingPage=!0})}})}var U5;(function(e){e.addListeners=async()=>{await kB.addListener(`registration`,e=>{q().userState.updateUserSettings({iosDeviceToken:Ke?e.value:void 0,androidDeviceToken:Ke?void 0:e.value})}),await kB.addListener(`registrationError`,e=>{}),await kB.addListener(`pushNotificationReceived`,e=>{});let e=(e,t)=>
53{let n=e&&`payload`in e?e.payload:void 0,r=e&&`notification_type`in e?e.notification_type:void 0,i=typeof n==`string`?N8(n):null;i&&R8(i,`push:${t}`),!WB(e,t)&&K(`push_notification_opened`,{notification_type:typeof r==`string`?r:void 0,platform:Ke?`ios`:`android`,receiver:t,payload_present:n!==void 0,payload_valid:i!==null})};await kB.addListener(`pushNotificationActionPerformed`,({notification:t})=>{e(t.data,`capacitor`)}),Ke&&await Re(`FirebaseMessaging`).addListener(`notificationActionPerformed`,({notification:t})=>{let n=t.data;e(typeof n==`object`&&n?n:void 0,`firebase`)})},e.registerNotifications=async()=>{let e=await kB.checkPermissions();e.receive===`prompt`&&(await YB(`beforePrompt`),e=await kB.requestPermissions(),await YB(`afterPrompt`)),e.receive===`granted`&&await kB.register()}})(U5||={});var W5=l(`<div class=" row justify-end shrink-0 max-md:hidden self-stretch items-center"><!><!><!>`),G5=l(`<div class="row shrink-1 min-w-0 items-center text-xs lg:text-sm grow justify-end"><div class=grow></div><div class="col gap-2 items-end min-w-0 shrink justify-end"><div class="row align-center no-scrollbar h-full overflow-x-scroll max-w-full"><div></div></div></div><!>`),K5=l(`<p class="text-gray-51 pl-1 lg:pl-1 font-semibold leading-5 tracking-wider min-w-fit">.`),q5=l(`<p>`),J5=l(`<div>`),Y5=e=>{let t=N6(),n=()=>e.chessboard.get(e=>e.moveHistory),r=()=>e.chessboard.get(e=>e.forwardMoveHistory)??[],i=()=>J().user,a=_(()=>su(MN,e=>e.boardTheme===i()?.theme)||NN.default),s=()=>jN[a().boardTheme],c=()=>t()!==`review`&&t()!==`model_games`,l=()=>[...n(),...r()],u=()=>(t()===`build`||t()===`browse`)&&n().length>0,d=`linear-gradient(to left, black calc(100% - 48px), transparent 100%)`,[f,p]=o(),[m,h]=o(),g,v;O(()=>{g!==void 0&&cancelAnimationFrame(g),v!==void 0&&clearTimeout(v)}),S(()=>{n().length,g!==void 0&&cancelAnimationFrame(g),v!==void 0&&clearTimeout(v),g=requestAnimationFrame(()=>{g=void 0,v=window.setTimeout(()=>{v=void 0;let e=f();e&&e.scrollTo({left:1e6,behavior:`smooth`})})})},()=>void 0);let y=Qe(f),C=Qe(m),T=()=>C.width>y.width;var E=G5(),D=E.firstChild,ee=D.nextSibling,te=ee.firstChild,k=te.firstChild,A=ee.nextSibling;return N(E,x(j,{get when(){return!e.hideLeftDivider},get children(){return x(X5,{get overflowing(){return T()},class:`ml-[0.7rem] mr-[0.65rem]`})}}),D),I(()=>p,te),I(()=>h,k),N(k,x(b,{get each(){return l()},children:(t,r)=>{let i=()=>r()+1,a=()=>r()===n().length-1;return[x(j,{get when(){return r()%2==0},get children(){var e=K5(),t=e.firstChild;return N(e,()=>Math.round(r()/2)+1,t),e}}),(()=>{var r=q5();return r._$$click=()=>{c()&&Z(()=>{let t=n().length;i()<t?e.chessboard.backN(t-i()):e.chessboard.forwardN(i()-t)})},N(r,()=>t.san),M(()=>({e:F(L(`whitespace-nowrap rounded-sm px-0.5 lg:px-1 font-bold leading-5 tracking-wider transition-all ml-0.5 min-w-fit cursor-default`,a()?`text-primary`:`text-tertiary`,c()&&`cursor-pointer hover-fine:text-primary`)),t:F(z(a()&&z(B.bg(s().highlightLastMove))))}),({e,t},n)=>{P(r,e,n?.e),w(r,t,n?.t)}),r})()]}})),N(E,x(j,{get when(){return!Y().onboarding.isOnboarding},get children(){var t=W5(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return N(t,x(X5,{overflowing:!0,class:` max-md:hidden ml-[0.75rem] mr-[0.6rem]`}),n),N(t,x(j,{get when(){return u()},get children(){return[x(w8,{get chessboard(){return e.chessboard}}),x(X5,{overflowing:!0,class:`max-md:hidden mx-[0.6rem]`})]}}),r),N(t,x(x8,{short:!0,get chessboard(){return e.chessboard}}),i),t}}),A),M(()=>({e:F(z(T()&&{"mask-image":d,"-webkit-mask-image":d})),t:F(L(`row items-center`))}),({e,t},n)=>{w(te,e,n?.e),P(k,t,n?.t)}),E},X5=e=>{var t=J5();return M(()=>F(L(`self-stretch w-px shrink-0`,e.overflowing?`bg-gray-28`:`bg-transparent`,e.class)),(e,n)=>{P(t,e,n)}),t};ae([`click`]);var Z5=l(`<div class="flex-1 basis-0 w-full min-w-0">`),Q5=l(`<div id=chessboard-footer-portal class="contents w-full [&>*]:w-full">`),$5=l(`<p class="text-xs lg:text-sm text-tertiary lg:text-secondary font-semibold shrink-0 cursor-default">`),e7=`chessboard-footer-portal`,[t7,n7]=o(0,{ownedWrite:!0}),r7=()=>t7()>0,i7=e=>(ze(()=>(n7(e=>e+1),()=>{n7(e=>Math.max(0,e-1))})),x(le,{get mount(){return document.getElementById(e7)},get children(){var t=Z5();return N(t,()=>e.children),t}})),a7=e=>{let t=N6(),n=_(()=>{let t=e.chessboard.getMoveLog(),n=q().repertoireState.getLastEcoCode(e.chessboard.get(e=>e.positionHistory).map(e=>e.epd)),r=n?.friendlyName;return r?[t,r,r]:[t,n?kF.getAppropriateEcoName(n)[0]:null,n?.fullName]}),r=()=>n()[0],i=()=>n()[1],a=()=>n()[2];return x(eR,{get style(){return z(B.row)},get class(){return L(`row w-full items-center max-md:padding-sidebar w-full max-md:min-h-6`)},get open(){return A(()=>!e.chessboard.get(e=>e.hideFooter))()&&(!H(r())&&(t()===`browse`||t()===`review`||t()===`build`||t()===`model_games`||t()===`play`||t()===`openings_report`)||Je&&!!e.chessboard.get(e=>e.associatedCard)||r7())},get children(){return[Q5(),x(j,{get when(){return!r7()},get children(){return[x(j,{get when(){return i()},children:e=>(()=>{var t=$5();return I(()=>e=>{ze(()=>{vE({ref:e,content:()=>a(),maxWidth:240})})},t),N(t,e),t})()}),x(Y5,{get hideLeftDivider(){return Kt(i())},get chessboard(){return e.chessboard}})]}})]}})},o7=l(`<div class="rounded-lg border border-solid border-gray-42 p-3 gap-2 flex flex-col"data-testid=lichess-permissions-prompt><p class="text-sm font-semibold text-primary">
53Update your Lichess connection</p><p class="text-sm text-secondary"></p><button class="text-sm font-semibold text-blue-80 self-start py-1">Update permissions`),s7=e=>{let t=()=>PN(e.requiredScopes,J().user?.lichessScopes??[]);return x(j,{get when(){return A(()=>!!J().user?.lichessUsername)()?t().length>0:J().user?.lichessUsername},get children(){var n=o7(),r=n.firstChild.nextSibling,i=r.nextSibling;return N(r,()=>t().every(e=>e===`study:read`)?`Allow Chessbook to import your Lichess studies.`:`Allow the additional permissions needed for your connected Lichess features.`),i._$$click=()=>{Z(t=>t.userState.authWithLichess({source:`setting`,scopes:[...e.requiredScopes]}))},n}})};ae([`click`]);var c7=l(`<div class="col items-center"><p class="body-text padding-sidebar self-stretch">A repertoire is a collection of openings for a particular color.</p><p class="body-text padding-sidebar self-stretch">You should only create a new repertoire if you want something entirely different (e.g. moves for bullet vs blitz). Otherwise we recommend adding alternate moves to an existing one.</p><!><div class=" w-full self-stretch"><div><form class="col gap-8"><div class=padding-sidebar></div><input type=submit hidden>`),l7=l(`<p class="body-text padding-sidebar pt-4">We strongly recommend completing a repertoire for each side, before adding a second repertoire.`),u7=()=>{let e=e=>{l(``),QS.post(`/api/v1/openings/create`,{side:e.side,name:e.name}).then(({data:t})=>{Z(n=>{n.repertoireState.repertoireFetched(t),Q().clearViews();let r=su(t.repertoires,t=>t.name===e.name);if(!r){Q().backOne();return}XJ(r.id)})}).catch(e=>{l(e?.response?.data?.error??`Something went wrong`)})},{form:t,data:n,setFields:r,errors:i,createSubmitHandler:a}=OF({initialValues:{name:``,side:`white`},onSubmit:e,extend:[DF({schema:xF({side:iF().label(`Side`).required(),name:iF().label(`Name`).max(255).min(4).required()})})]}),s=a({onSubmit:e}),[c,l]=o(``),u=()=>Y().hasMultipleRepertoires(),d=()=>Ad(Y().browsingState.state.repertoireProgressState,e=>!e.completed);return x($,{actions:[{onPress:()=>{s()},text:`Create repertoire`,style:`focus`}],header:`Add new repertoire`,get children(){var e=c7(),a=e.firstChild.nextSibling,o=a.nextSibling,s=o.nextSibling,l=s.firstChild,f=l.firstChild,p=f.firstChild,m=p.nextSibling;return N(e,x(R,{between:[`body-text`,`body-text`]}),a),N(e,(()=>{var e=A(()=>!(u()||!d()));return()=>e()?l7():!u()&&d()})(),o),N(e,x(R,{height:32-at}),s),I(()=>t,f),N(f,x(oZ,{choices:aC,title:`Color`,renderChoice:e=>Eo(e),get activeChoice(){return n().side},onSelect:e=>{r(`side`,e)}}),p),N(p,x(lR,{placeholder:`Blitz`,setFields:r,type:`text`,name:`name`,label:`Name`,get errors(){return i()}})),N(f,x(nR,{name:`Server error`,get error(){return c()},class:`inline-block`}),m),M(()=>F(z(B.br(4),B.px(0),B.py(0))),(e,t)=>{w(l,e,t)}),e}})},d7=l(`<div><p></p><i>`),f7=e=>{let t=()=>Y().lichessMistakesVisible;var n=d7(),r=n.firstChild,i=r.nextSibling,a=e.ref;return typeof a==`function`||Array.isArray(a)?I(()=>a,n):e.ref=n,N(r,(()=>{var e=A(()=>!!t()?.length);return()=>e()?_L(t().length,`mistake`):`No mistakes`})()),M(()=>({e:F(L(`flex row text-xs font-semibold`)),t:F(L(`truncate tabular-nums`,H(t())?`text-tertiary`:`text-secondary`)),a:F(L(`fa ml-2`,H(t())?`text-tertiary`:`text-warning `,H(t())?`fa-circle-check`:`fa-circle-x`))}),({e,t,a},o)=>{P(n,e,o?.e),P(r,t,o?.t),P(i,a,o?.a)}),n},p7=l(`<div>`),m7=l(`<div class="grid grid-cols-1 grid-rows-1"><!><!><!>`),h7=l(`<div class="grid grid-cols-1 grid-rows-1"><!><!>`),g7=100,_7=200,v7=100,y7=200,b7=1e3,x7=200,S7=100,C7=200,w7=1600,T7=e
53=>(()=>{var t=p7(),n=e.ref;return typeof n==`function`||Array.isArray(n)?I(()=>n,t):e.ref=t,N(t,()=>e.children),M(()=>F(L(`col-start-1 col-span-1 row-start-1 row-end-1 items-end justify-center`,!e.visible&&`opacity-0`)),(e,n)=>{P(t,e,n)}),t})(),E7=()=>{let e,t,n,[r,i]=o(0),[a,s]=o(!1);var c=m7(),l=c.firstChild,u=l.nextSibling,d=u.nextSibling;N(c,x(T7,{ref:e=>{n=e},get children(){return x(tV,{get numDue(){return r()},get text(){return`${r()} Correct`},get iconColor(){return L(`text-success`)},get textColor(){return L(`text-secondary`)},icon:`fa fa-circle-check`})}}),l),N(c,x(T7,{ref:e=>{t=e},get children(){return x(Ni,{get class(){return L(`text-[12px]`)}})}}),u),N(c,x(T7,{ref:t=>{e=t},get children(){return x(f7,{get class(){return L(``)}})}}),d);let f=c;return{mistakesAnimation:()=>a()?f:null,startAnimation:({numCorrect:r})=>{if(s(!0),i(r),!n||!t||!e)return;t.style.opacity=`1`;let a=uM({autoplay:!0});a.add(t,{duration:g7,opacity:0,endDelay:_7,easing:`easeInQuad`}).add(t,{duration:v7,opacity:0,easing:`easeInQuad`}).add(n,{duration:y7,opacity:1,easing:`easeOutQuad`}).label(`after_correct_shown`,`+=${b7}`).add(n,{duration:x7,opacity:0,translateY:-10,easing:`easeInQuad`},`after_correct_shown`).label(`after_correct_hidden`).add(e,{duration:C7,opacity:1,translateY:[10,0],easing:`easeOutQuad`},`after_correct_hidden`).then(()=>{s(!1),a.seek(0)})}}},D7=(e,t)=>{let n,r,[i,a]=o(0),[s,c]=o(null),[l,u]=o(!1),d;var f=h7(),p=f.firstChild,m=p.nextSibling;N(f,x(T7,{ref:e=>{n=e},visible:!0,get children(){return x(tV,{get numDue(){return i()},get date(){return s()}})}}),p),N(f,x(T7,{ref:e=>{r=e},get children(){return e()}}),m);let h=f;return{toReviewAnimation:()=>l()&&i()>0?h:null,startAnimation:({numCorrect:e,initialDue:i,initialDate:o})=>{if(clearTimeout(d),!t({numCorrect:e,initialDue:i,initialDate:o})){u(!1);return}a(i),c(o),d=setTimeout(()=>{if(!n||!r)return;u(!0),n.style.opacity=`1`,r.style.opacity=`0`;let e=uM({autoplay:!0});e.add(n,{duration:S7,opacity:0,translateY:-10,easing:`easeInQuad`}).add(r,{duration:C7,opacity:1,translateY:[10,0],easing:`easeOutQuad`},0).then(()=>{u(!1),e.seek(0)})},w7)}}},O7=l(`<p class=body-text>We'd love to hear your feedback on the <!>. The best way to get in touch with us is on the <a target=_blank rel=noreferrer class="text-primary font-semibold">Chessbook Discord</a>.`),k7=l(`<p class=body-text>Or, if you want to contact us directly, you can send us an email at <a href=mailto:[email protected] class="text-primary font-semibold">[email protected]</a>.`),A7=()=>x($,{header:`Feature request? Bug report? Let us know`,actions:[],bodyPadding:!0,get children(){return[(()=>{var e=O7(),t=e.firstChild.nextSibling,n=t.nextSibling.nextSibling;return N(e,Ye?`app`:`site`,t),ne(n),C(n,`href`,qe),e})(),x(R,{between:[`body-text`,`body-text`]}),(()=>{var e=k7(),t=e.firstChild.nextSibling;return ne(t),e})()]}}),j7=l(`<i class=" fa fa-xmark text-secondary text-base">`),M7=l(`<div><div><!><!>`),N7=function(e){return e.MobileApps=`app_promotion`,e.FreeMonth=`free_month`,e}({}),P7=e=>{let[t,n]=o(!1);ze(()=>{setTimeout(()=>{n(!0)},1e3)});let r=()=>J().user?.flags.includes(`${e.flag}_dismissed`);return m(()=>!r()&&t(),t=>{t&&K(`promotion.${e.flag}.shown`)}),x(le,{get mount(){return document.body},get children(){var n=M7(),i=n.firstChild,a=i.firstChild,o=a.nextSibling;return N(i,x(zU,{onPress:()=>{Z(t=>{K(`promotion.${e.flag}.dismissed`),t.userState.user&&t.userState.setFlag(`${e.flag}_dismissed`,!0)})},class:`absolute top-2 right-2 p-2`,get children(){return j7()}}),a),N(i,()=>e.children,o),M(()=>({e:F(L(`fixed z-1000 bottom-0 right-0 transition-all duration-300`,r()?`translate-x-full`:t()?`translate-x-0`:`translate-x-full`)),t:`promotion-${e.flag}`,a:F(L(`md:h-[400px] w-[300px] bg-gray-26 rounded-xl relative p-6 pt-0 column mr-4 mb-4 transition-all duration-300`)),o:F(z(r()||!t()?B.shadow(0,0,0,0,B.hsl(0,0,0,0)):B.shadow(0,10,60,0,B.hsl(0,0,0,50))))}),({e,t,a:r,o:a},o)=>{P(n,e,o?.e),t!==o?.t&&C(n,`id`,t),P(i,r,o?.a),w(i,a,o?.o)}),n}})},F7=l(`<h1 class="text-lg text-primary font-semibold pt-8">Try Chessbook Pro for free!`),I7=l(`<div class=" aspect-[1/1] grow h-auto
53self-center"><img>`),L7=l(`<div class="bg-gray-32 font-medium text-center hover-fine:bg-gray-42 cursor-pointer px-4 py-4 rounded-sm text-sm"><!><!>`),R7=()=>{let[e,t]=o(!1);return x(P7,{get flag(){return N7.FreeMonth},get children(){return[F7(),x(R,{height:36}),(()=>{var e=I7(),t=e.firstChild;return M(()=>FV(`/gift.svg`),e=>{C(t,`src`,e)}),e})(),x(R,{height:36}),(()=>{var n=L7(),r=n.firstChild,i=r.nextSibling;return n._$$click=()=>{K(`promo.free_month.clicked`),t(!0),J().setFlag(`free_month_dismissed`,!0),J().createCheckoutLink(!1,{trial:!0}).then(e=>{window.location.href=e})},N(n,x(j,{get when(){return e()},get children(){return x(Ni,{})}}),r),N(n,x(j,{get when(){return!e()},children:`Start your 1 month free trial`}),i),n})()]}})};ae([`click`]);var z7=l(`<h1 class="text-lg text-primary font-semibold pt-8">Get the Chessbook app`),B7=l(`<div class="flex flex-row items-center justify-center gap-2 shrink-1 min-h-0 relative grow-1"><div class="absolute right-[calc(40%+12px)] h-full"><div class="h-full aspect-[1/2]"><img class="h-full w-full object-contain"></div></div><div class="absolute left-[calc(60%+12px)] flex flex-col items-center"><div class="w-[68px] h-[68px] rounded-sm overflow-hidden"></div><span class="text-base text-primary pt-3 font-semibold">Scan me`),V7=l(`<div class=row><a target=_blank rel="noopener noreferrer"class="h-[30px] grow"><img class=" h-full w-full"></a><a target=_blank rel="noopener noreferrer"class="h-[30px] grow"><img class=" grow h-full w-full">`),H7=l(`<div class="bg-white h-full w-full">`),U7=E(()=>ve(()=>import(`./QRCode-D1W6PRbM.js`).then(e=>({default:e.QRCode})),__vite__mapDeps([27,12,1,13,14,4,2,5,15]),import.meta.url)),W7=()=>x(P7,{get flag(){return N7.MobileApps},get children(){return[z7(),x(R,{height:36}),(()=>{var e=B7(),t=e.firstChild,n=t.firstChild.firstChild,r=t.nextSibling.firstChild;return N(r,x(ce,{get fallback(){return H7()},get children(){return x(U7,{value:`chessbook.com/qr`})}})),M(()=>PV(`/app_promo/screenshot.svg`),e=>{C(n,`src`,e)}),e})(),x(R,{height:36}),(()=>{var e=V7(),t=e.firstChild,n=t.firstChild,r=t.nextSibling,i=r.firstChild;return t._$$click=()=>{K(`app_promotion.clicked`,{store:`app_store`})},ne(t),C(t,`href`,Se),N(e,x(R,{width:32}),r),r._$$click=()=>{K(`app_promotion.clicked`,{store:`play_store`})},ne(r),C(r,`href`,Ce),M(()=>({e:PV(`/app_promo/app_store.svg`),t:PV(`/app_promo/play_store.svg`)}),({e,t},r)=>{e!==r?.e&&C(n,`src`,e),t!==r?.t&&C(i,`src`,t)}),e})()]}});ae([`click`]);var G7=l(`<div class="flex-1 min-h-0 overflow-y-auto flex flex-col-reverse px-4 py-3"><div class="flex flex-col gap-3">`),K7=l(`<img alt class="mt-5 square-6 rounded-full">`),q7=l(`<p class="text-xs font-semibold text-gray-76">`),J7=l(`<div><div class="shrink-0 square-6"></div><div class="flex flex-col gap-1 min-w-0"><p>`),Y7=e=>{var t=G7(),n=t.firstChild;return N(n,x(b,{get each(){return e.messages},children:(t,n)=>{let r=t.from===`coach`,i=()=>e.messages[n()-1]?.from===t.from;var a=J7(),o=a.firstChild,s=o.nextSibling,c=s.firstChild;return N(o,x(j,{get when(){return!i()},get children(){var t=K7();return M(()=>r?`/oxi_avatar.svg`:e.opponent?.avatar??`/avatars/0001.png`,e=>{C(t,`src`,e)}),t}})),N(s,x(j,{get when(){return!i()},get children(){var t=q7();return N(t,()=>r?`Coach`:e.opponent?.name??`Opponent`),t}}),c),N(c,()=>t.text),M(()=>({e:F(L(`flex flex-row gap-2`,i()?`-mt-2`:``)),t:`px-2 py-2 rounded-sm max-w-fit font-medium text-sm ${r?`bg-greenMuted-60 text-gray-100`:`bg-gray-32 text-gray-84`}`}),({e,t},n)=>{P(a,e,n?.e),P(c,t,n?.t)}),a}})),t},X7=l(`<span class="text-[10px] font-semibold leading-none whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity duration-150">`),Z7=l(`<div>`),Q7=l(`<div class="group flex flex-row items-center gap-3 w-full h-6 cursor-default"><!><!>`),$7=l(`<div class="relative flex flex-row flex-1 basis-0 min-w-0 h-1 group-hover:h-4 rounded-[1px] overflow-hidden transition-[height] duration-150 bg-gray-24">`),e9=l(`<div class="relative flex flex-row flex-1 basis-0 min-w-0 h-1 group-hover:h-4 rounded-[1px] overflow-hidden transition-[height] duration-150">`),t9=l(`<div class="relative flex flex-row flex-1 basis-0 min-w-0 h-1 group-hover:h-4 roun
53ded-[1px] overflow-hidden transition-[height] duration-150"><!><!><!>`),n9=e=>(()=>{var t=Z7();return N(t,x(j,{get when(){return e.label},get children(){var t=X7();return N(t,()=>e.label),t}})),M(()=>({e:`h-full flex items-center justify-center shrink-0 transition-[width] duration-300 ${e.class}`,t:`${e.width*100}%`}),({e,t:n},r)=>{P(t,e,r?.e),n!==r?.t&&s(t,`width`,n)}),t})(),r9=()=>{let e=()=>A6(),t=()=>e().state.userSide,n=()=>e().derived.latestAnalysis(`engine`),r=()=>e().derived.latestAnalysis(`oxi`);var i=Q7(),a=i.firstChild,o=a.nextSibling;return N(i,x(j,{get when(){return n()},get fallback(){return $7()},children:e=>{let n=()=>e().eval.getPovWinPercentage(`white`),r=()=>DE(e().eval),i=()=>x(n9,{get width(){return n()},class:`bg-gray-90 text-gray-16`,get label(){return A(()=>n()>=.5)()?r():void 0}}),a=()=>x(n9,{get width(){return 1-n()},class:`bg-gray-30 text-gray-90`,get label(){return A(()=>n()<.5)()?r():void 0}});var o=e9();return I(()=>e=>vE({ref:e,maxWidth:200,content:()=>`Stockfish evaluation: ${r()}`}),o),N(o,x(j,{get when(){return t()===`white`},get fallback(){return[a(),i()]},get children(){return[i(),a()]}})),o}}),a),N(i,x(j,{get when(){return r()},get fallback(){return $7()},children:e=>{let t=()=>e().wdl,n=e=>e>=.08?`${Math.round(e*100)}%`:void 0;var r=t9(),i=r.firstChild,a=i.nextSibling,o=a.nextSibling;return I(()=>e=>vE({ref:e,maxWidth:220,content:()=>`Your chances in this game, according to Oxi: ${Math.round(t().win*100)}% win, ${Math.round(t().draw*100)}% draw, ${Math.round(t().loss*100)}% loss`}),r),N(r,x(n9,{get width(){return t().win},class:`bg-green-40 text-gray-95`,get label(){return n(t().win)}}),i),N(r,x(n9,{get width(){return t().draw},class:`bg-gray-40 text-gray-95`,get label(){return n(t().draw)}}),a),N(r,x(n9,{get width(){return t().loss},class:`bg-red-40 text-gray-95`,get label(){return n(t().loss)}}),o),r}}),o),i},i9=l(`<p class="text-sm text-tertiary">`),a9=l(`<div class="flex flex-row items-center gap-2 padding-sidebar py-2"><p class="text-sm font-semibold text-primary"></p><div class=grow></div><div>`),o9=l(`<img alt class="square-6 rounded-full">`),s9=l(`<div class="flex flex-col"><!><div class="border-t-[0.5px] border-t-solid border-gray-30"></div><div class="border-t-[0.5px] border-t-solid border-gray-30"></div><div class="flex flex-row gap-2 padding-sidebar py-2 h-12 overflow-x-auto justify-end border-t-[0.5px] border-t-solid border-gray-30">`),c9=l(`<button type=button>`),l9=2e4,u9=e=>{if(e<1e4)return`0:${(Math.floor(e/100)/10).toFixed(1).padStart(4,`0`)}`;let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`},d9=e=>(()=>{var t=a9(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return N(t,x(j,{get when(){return e.avatar},children:e=>(()=>{var t=o9();return M(()=>e(),e=>{C(t,`src`,e)}),t})()}),n),N(n,()=>e.name),N(t,x(j,{get when(){return e.rating},get children(){var t=i9();return N(t,()=>e.rating),t}}),r),N(i,()=>u9(e.remainingMs)),M(()=>F(L(`tabular-nums text-xl font-semibold px-2.5 py-0.5 rounded-sm min-w-22 text-right transition-colors`,!e.toMove&&`bg-gray-24 text-gray-70`,e.toMove&&e.remainingMs>=l9&&`bg-gray-90 text-gray-10`,e.toMove&&e.remainingMs<l9&&`bg-red-40 text-gray-100`)),(e,t)=>{P(i,e,t)}),t})(),f9=()=>{let e=()=>A6(),t=()=>e().state,n=()=>e().actions;ze(()=>(t().status===`idle`||t().status===`over`?n().startNewGame():n().resume(),()=>n().pause()));let[r,i]=o(Date.now());m(()=>t().clock.turnStartedAt,e=>{if(i(Date.now()),e===null)return;let t=window.setInterval(()=>i(Date.now()),100);return()=>window.clearInterval(t)});let a=n=>{let i=t().clock,a=Math.max(r(),i.turnStartedAt??0);return u4(i,n,e().derived.sideToMove(),a)},c=n=>t().status===`playing`&&e().derived.sideToMove()===n,l=()=>t().userSide===`white`?`black`:`white`,[u,d]=o(),[f,p]=o(480);m(u,e=>{if(!e)return;let t=()=>{p(Math.max(360,window.innerHeight-e.getBoundingClientRect().top-16))};return t(),window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)});let h=()=>{let n=e().handles.chessboard.getMoveLog();window.open(cK(n,{side:t().userSide,ply:n.length}),`_blank`)},g=()=>{let{status:r,prompt:i,botStuck:a}=t();if(r===`over`)return[{text:`Play again`,onPress:()=>void n().startNewGame(),primary:!0},{text:`Analyze`,onPress:h}];if(r!==`playing`)return[];if(i)return e().derived.promptOptions().map(e=>({text:e.label,onPress:()=>n().answerPrompt(e.value)}));let o=[{text:`Resign`,onPress:()=>n().resign()},{text:`Offer draw`,onPress:()=>n().offerDraw()},{text:`Who's winning?`,onPress:()=>n().askWhoIsWinning()}];return a?[{text:`Retry`,onPress:()=>n().retryBotMove(),primary:!0},...o]:o};var _=s9(),v=_.firstChild,y=v.nextSibling,S=y.nextSibling,C=S.nextSibling;return I(()=>d,_),N(_,x(j,{get when(){return t().status!==`idle`},get children(){return x(i7,{get children(){return x(r9,{})}})}}),v),N(_,x(d9,{get name(){return t().opponent?.name??`Finding an opponentâ¦`},get rating(){return t().opponent?.rating},get avatar(){return t().opponent?.avatar},get remainingMs(){return a(l())},get toMove(){return c(l())}}),y),N(_,x(Y7,{get messages(){return t().messages},get opponent(){return t().opponent}}),S),N(_,x(d9,{name:`You`,get remainingMs(){return a(t().userSide)},get toMove(){return c(t().userSide)}}),C),N(C,x(b,{get each(){return g()},children:e=>(()=>{var t=c9();return se(t,`click`,e.onPress,!0),N(t,()=>e.text),M(()=>F(L(`px-2.5 py-2 rounded-sm text-sm font-medium transition-colors shrink-0 whitespace-nowrap`,e.primary?`bg-blue-75 text-white hover:bg-blue-80`:`bg-gray-32 text-gray-84 hover:bg-gray-42`)),(e,n)=>{P(t,e,n)}),t})()})),M(()=>`${f()}px`,e=>{s(_,`height`,e)}),_};LF(f9,`play`),ae([`click`]);var p9=l(`<div>`),m9=function(){let e=()=>k6().activeMove,t=()=>e()?.move.epd,n=()=>e()?.move.side,r=()=>Y().positionReports[e()?.repertoireId]?.[t()],i=()=>k6().tableResponses,s=()=>XO(r()),c=()=>tu(i(),e=>UO.getStockfishEvalSource(e)===`local`)&&i().length>0,l=_(()=>ru(i(),e=>!Kt(e.repertoireMove))),u=_(()=>ru(i(),e=>Kt(e.repertoireMove)));_(()=>
53H(l())?i():l());let d=()=>{let e=[];return e.push({text:`I'm not sure, skip this move for now`,style:`secondary`,onPress:()=>{K(`audit.skip_move_for_now`),k6().skipMove({temporary:!0})}}),e},[f,p]=o(!1),m=()=>k6().getNumDifficultMoves();return x($,{header:`Reviewing difficult moves`,actions:[],bodyPadding:!1,get loadingOverlay(){return f()},get headerRight(){return x(BG,{get icons(){return[{icon:`fa fa-warning`,text:`${m()} remaining`,class:`text-warning`}]}})},get children(){return x(j,{get when(){return r()},get children(){return[x(j,{get when(){return!H(l())},get children(){return x(QW,g(()=>({header:`This is your saved move`,repertoireId:e()?.repertoireId,currentSide:e()?.move.side,setLoading:p,allLocalStockfish:c(),usePeerRates:s,activeSide:n(),side:n(),responses:l})))}}),x(v,{get children(){return x(a,{get when(){return!r()},get children(){var e=p9();return N(e,x(Ni,{get color(){return B.primaries[75]}})),M(()=>F(z(B.center,B.column,B.py(48))),(t,n)=>{w(e,t,n)}),e}})}}),x(j,{get when(){return!H(u())},get children(){return[x(R,{between:[`table`,`table`]}),(()=>{var r=p9();return C(r,`id`,`alternate-moves-${t}`),N(r,x(QW,g(()=>({header:`Change to something else?`,repertoireId:e()?.repertoireId,currentSide:e()?.move.side,setLoading:p,usePeerRates:s,allLocalStockfish:c(),activeSide:n(),side:n(),responses:u})))),r})()]}}),x(R,{between:[`table`,`actions`]}),x(H6,{get actions(){return d()}})]}})}})};LF(m9,`audit`);var h9=l(`<p> practiced`),g9=l(`<i class="fa-solid fa-circle-check text-xs">`),_9=l(`<p class="text-secondary text-xs font-semibold">vs Oxi`),v9=l(`<p>`),y9=l(`<div>`),b9=l(`<div class="flex flex-row gap-4 items-center"><div class="font-medium text-tertiary hover-fine:text-primary transition-colors cursor-pointer text-xs">`),x9=l(`<div><p class="font-display font-medium text-lg leading-6">`),S9=l(`<div class=m-[1px]>`),C9=l(`<p><i>`),w9=l(`<div data-testid=connect-account class="font-medium text-tertiary hover-fine:text-primary transition-colors cursor-pointer text-xs">`),T9=l(`<div class=tabular-nums><p>`),Gee=l(`<i>`),Kee=l(`<a href=mailto:[email protected] class=text-primary>[email protected]`),qee=l(`<a href=https://chessbook.tolt.io/ class=text-primary>chessbook.tolt.io`),[E9,Jee]=o(null),Yee=()=>{let e=()=>q().userState,t=()=>q().repertoireState.getIsRepertoireEmpty(),n=_(()=>J().getCurrentStreak()),r=()=>Y().lichessMistakesVisible,i=()=>!e().isConnectedToExternal(),a=()=>{K(`home.connect_account`),Z(e=>{Q().pushView(PX)})},o=()=>Kt(r()),s=()=>Kt(O6().getCurrentOpeningsReport()),c=_(()=>{let e=O6().getCurrentOpeningsReport();return e?ru(e.flatMap(e=>$R.getAllReports(e)),e=>!e.reviewed).length:0}),l=()=>Y().totalMovesDue??0;ze(()=>{let e=null;return Z(t=>{e=({initialDue:e,initialDate:t,numCorrect:n})=>{E.startAnimation({initialDue:j6().getRemainingToday(e),initialDate:t,numCorrect:n}),ee.startAnimation({initialDue:j6().getRemainingToday(e),initialDate:t,numCorrect:n})},t.repertoireState.onCorrectGameMovesCallbacks.add(e)}),()=>{if(!e)return;let t=e;Z(e=>{e.repertoireState.onCorrectGameMovesCallbacks.remove(t)})}});let u=st(),d=_(()=>Y().earliestReviewDue),f=ZJ(),p=()=>eY(),g=()=>l()>0||j6().getCompletedToday()>0,v=()=>j6().getIsComplete(l()),y=()=>j6().getRemainingToday(l()),S=()=>{let e=n();return e.gracePeriod?`You have a ${e.currentStreak} day streak, but you didn't review yesterday, your streak will reset at the end of the day!`:e.currentStreak>0?`You've reviewed your daily tasks ${_L(e.currentStreak,`day`)} in a row!`:`You don't have a streak currently, review some moves to get started!`},C=()=>g()?v()?x(kU,{get text(){var e=h9(),t=e.firstChild;return N(e,()=>j6().getCompletedToday(),t),M(()=>F(L(`text-xs font-semibold`,`truncate`,`text-tertiary`)),(t,n)=>{P(e,t,n)}),e},get icon(){return g9()}}):x(tV,{get date(){return d()},get numDue(){return y()}}):x(tV,{get date(){return d()},get numDue(){return l()}}),T=()=>g()?v()?`${j6().getCompletedToday()} practiced`:$B({date:d(),numDue:y()}):$B({date:d(),numDue:l()}),E=E7(),D=``;h(()=>{D=T()});let ee=D7(C,({initialDue:e,initialDate:t})=>$B({date:t,numDue:j6().getRemainingToday(e)})!==D),te=()=>{let e=[];
53if(p()?e.push(aY(f)):e.push({text:`Practice moves`,right:ee.toReviewAnimation()??C(),style:`primary`,disabled:t(),testId:`practice-moves`,onPress:()=>{K(`home.practice_daily`),vX(`right`),Q().pushView(yY,{props:dB()})}}),J().flagEnabled(`training_games`)&&e.push({style:`primary`,text:`Play a training game`,right:x(kU,{get text(){return _9()},icon:`fa-solid fa-message-bot text-xs text-secondary`}),onPress:()=>{K(`home.play_training_game`),Z(()=>{Q().pushView(f9)})}}),D6().state.dailyGame&&e.push({style:`primary`,text:u().isMobile?`View model game`:`Play through a model game`,right:O()?x(tV,{numDue:0,descriptor:`new game`,get date(){return new Date(Date.now()+864e5).toISOString()}}):x(kU,{get text(){var e=v9();return N(e,(()=>{var e=A(()=>!!D6().state.dailyGame);return()=>e()?D6().state.dailyGame.source===`Lichess`?(()=>{let e=D6().state.dailyGame,t=Y().getLastEcoCode(e.epds.slice(0,20));return t?kF.getNameEcoCodeIdentifier(t):null})():GR.formatChessGameTitle(D6().state.dailyGame,u().isMobile):D6().state.dailyGame})()),M(()=>F(L(`text-secondary text-xs font-semibold`,`truncate`,O()?`text-tertiary`:`text-secondary`)),(t,n)=>{P(e,t,n)}),e},get icon(){return A(()=>!!D6().state.dailyGame?.reviewed)()?g9():`fa-solid text-blue-75 fa-circle-arrow-right text-xs`}}),onPress:()=>{Z(e=>{D6().state.dailyGame?.reviewed?(K(`home.view_model_game_history`),Q().pushView(QR)):(K(`home.view_model_game`),e.repertoireState.modelGamesState.actions.reviewGame(D6().state.dailyGame))})}}),J().flagEnabled(`repertoire_audit`)&&!Y().hasMultipleRepertoires()&&!t()){let t=k6().getNumDifficultMoves();e.push({text:`Improve learnability`,right:x(tV,{date:null,get numDue(){return k6().queue.length},descriptor:`difficult move`,pluralizeDescriptor:!0,icon:`fa fa-warning`,iconColor:t>0?`text-warning`:`text-tertiary`}),style:`primary`,onPress:()=>{K(`home.improve_learnability`),Z(e=>{Q().pushView(m9)})}})}return e},O=()=>D6().state.dailyGame?.reviewed,k=_(()=>{if(E9()||Y().repertoires===void 0)return null;let e=J().user;if(!e)return null;let t=Y().onboarding,n=J().getEnabledFlags();return!n.includes(`app_promotion_dismissed`)&&!t.isOnboarding&&!ON()&&!Ye?N7.MobileApps:!n.includes(`free_month_dismissed`)&&!t.isOnboarding&&!e.subscribed&&!ON()&&!Ye&&Math.abs((0,RN.default)(e.createdAt).diff((0,RN.default)(),`days`))>30?N7.FreeMonth:null});m(k,e=>{e&&Jee(e)});let re=_(()=>Y().repertoiresList),ie=()=>re().length>1;return x(j,{get when(){return e().user},get children(){return[x(j,{get when(){return E9()===N7.MobileApps},get children(){return x(W7,{})}}),x(j,{get when(){return E9()===N7.FreeMonth},get children(){return x(R7,{})}}),x($,{header:null,actions:[],bodyPadding:!1,get children(){return[x(W6,{text:`Repertoires`,get right(){var e=b9(),t=e.firstChild;return t._$$click=()=>{K(`home.add_new_repertoire`),Z(e=>{Q().pushView(u7)})},N(t,x(kU,{text:`Add new`,icon:`fa-solid fa-plus`,trim:!0})),e}}),(()=>{var e=y9();return N(e,x(b,{get each(){return re()},children:e=>x(V6,{get"data-testid"(){return`repertoire-${e.side}`},get action(){return{style:`wide`,shrink:`left`,text:(()=>{var t=x9(),n=t.firstChild;return N(t,(()=>{var t=A(()=>!!ie());return()=>t()?(()=>{var t=S9();return N(t,x(qR,{get side(){return e.side},size:12})),t})():ie()})(),n),N(n,()=>e.name),M(()=>F(L(`flex items-center gap-3 row whitespace-wrap`)),(e,n)=>{P(t,e,n)}),t})(),right:x(e6,{get repertoireId(){return e.id},strategy:`home`}),onPress:()=>{Z(t=>{K(`home.select_side`,{side:e.side}),XJ(e.id)})}}}})})),M(()=>F(z(B.column,B.fullWidth,B.gap(`8px`))),(t,n)=>{w(e,t,n)}),e})(),x(R,{between:[`table`,`table-header`]}),x(j,{get when(){return!t()},get children(){return[x(W6,{text:`Daily tasks`,get right(){var e=C9(),t=e.firstChild;return I(()=>e=>{vE({ref:e,content:S,maxWidth:200})},e),N(e,(()=>{var e=A(()=>n().currentStreak>0);return()=>e()?A(()=>!n().renewedToday)()?`Extend your ${n().currentStreak} day streak`:`${n().currentStreak} day streak`:`No streak`})(),t),M(()=>({e:F(L(`font-medium block glyph-trim-both text-xs select-none`,n().currentStreak===0?`text-tertiary`:`text-secondary`)),t:F(L(`fas ml-2 icon-box`,`fa-fire text-xs`,n().currentStreak===0?`text-tertiary`:`text-orange-70`))}),({e:n,t:r},i)=>{P(e,n,i?.e),P(t,r,i?.t)}),e}}
53),(()=>{var e=y9();return N(e,x(j,{get when(){return!H(te())},get children(){return x(b,{get each(){return te()},children:e=>x(V6,{action:e})})}})),M(()=>F(z(B.column,B.fullWidth,B.gap(`8px`))),(t,n)=>{w(e,t,n)}),e})(),x(R,{between:[`table`,`table-header`]}),x(W6,{text:`Review your online games`,get right(){return x(j,{get when(){return i()},get children(){var e=w9();return e._$$click=a,N(e,x(kU,{text:`Connect account`,icon:`fa-solid fa-link-simple`,trim:!0})),e}})}}),(()=>{var t=y9();return N(t,x(j,{get when(){return!i()},get fallback(){return x(Xee,{onPress:a})},get children(){return[x(V6,{get action(){return{style:`primary`,text:`Correct your opening mistakes`,disabled:o(),right:E.mistakesAnimation?.()??(o()?x(Ni,{class:`text-[12px]`}):x(f7,{})),onPress:()=>{Z(e=>{K(`home.review_mistakes`),H(r())?Q().pushView(wJ,{props:{text:`We didn't find any mistakes in your recent games.`,header:`No mistakes found`,actions:[{text:`Manage your connected accounts`,onPress:()=>{Z(e=>{Q().pushView(PX)})},style:`secondary`}]}}):e.repertoireState.reviewState.actions.startReview({lichessMistakes:r(),cameFrom:`home`})})}}}}),x(j,{get when(){return e().user?.isAdmin},get children(){return x(s7,{requiredScopes:we})}}),x(V6,{get action(){return{text:`View performance by opening`,style:`primary`,disabled:s(),right:s()?x(Ni,{class:`text-[12px]`}):x(kU,{get text(){var e=T9(),t=e.firstChild;return N(t,(()=>{var e=A(()=>c()>0);return()=>e()?_L(c(),`insight`):`No new insights`})()),M(()=>F(L(c()===0?`text-tertiary`:`text-secondary`,`font-semibold text-xs truncate`)),(e,n)=>{P(t,e,n)}),e},get icon(){var e=Gee();return M(()=>F(L(`fa-solid fa-circle-info text-xs`,c()===0?`text-tertiary`:`text-purple-60`)),(t,n)=>{P(e,t,n)}),e}}),onPress:()=>{Z(e=>{Q().pushView(QY,{props:{reports:O6().openingsReportsByTimeRange}})})}}}})]}})),M(()=>F(z(B.column,B.fullWidth,B.gap(`8px`))),(e,n)=>{w(t,e,n)}),t})(),x(R,{between:[`table`,`table-header`]})]}}),x(W6,{text:`Contact us`}),x(H6,{actions:[{onPress:()=>{K(`home.contact.discord`),window.open(qe,`_blank`)},text:`Join the Chessbook Discord`,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.contact.feedback`),Q().pushView(A7)})},text:`Share your feedback`,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.contact.get_sponsored`),Q().pushView(wJ,{props:{text:[`We're looking for people to help get the word out about Chessbook!`,x(R,{between:[`body-text`,`body-text`]}),`If you make chess content and enjoy using this site, please reach out to us! We'd love to sponsor you. You can email us at`,` `,(()=>{var e=Kee();return ne(e),e})(),x(R,{between:[`body-text`,`body-text`]}),`If you want to earn money from referring people to Chessbook, sign up as an affiliate! You'll earn money from every referral that signs up for Chessbook. Just go to the`,` `,(()=>{var e=qee();return ne(e),e})()],header:`Help us spread the word!`,actions:[]}})})},text:`Help us spread the word`,style:`secondary`}]})]}})]}})},Xee=e=>{let t=()=>x(V,{class:`text-tertiary text-xs font-semibold`,children:`Not connected`});return[x(V6,{get action(){return{style:`primary`,text:`Correct your opening mistakes`,right:t(),onPress:e.onPress}}}),x(V6,{get action(){return{style:`primary`,text:`View performance by opening`,right:t(),onPress:e.onPress}}})]};ae([`click`]);var Zee=l(`<div class=contents data-sidebar-view-id=root data-sidebar-preview-scope=data>`),Qee=l(`<div id=sidebar-inner>`),$ee=()=>{let e=_(()=>Q().currentView()),t=()=>Q().sidebarStack.length===0,n=()=>Y().repertoires===void 0&&!e(),r=(()=>{var n=Qee();return N(n,x(v,{get children(){return[x(a,{get when(){return e()},get children(){return x(qI,{get stack(){return Q().sidebarStack}})}}),x(a,{get when(){return t()},get children(){var e=Zee();return N(e,x(Yee,{})),e}})]}})),M(()=>({e:F(z(B.relative,B.zIndex(100))),t:F(L(`md:pt-[12px] h-full`))}),({e,t},r)=>{w(n,e,r?.e),P(n,t,r?.t)}),n})(),i=Ie(),o=HR();m(()=>i(),(e,t)=>{e&&t===!1&&HR.duration(HR().diff(o)).hours()>=1&&window.location.reload(),e&&(o=HR())});let s=()=>Q().getActiveChessboard(),c=()=>Ye&&!Y().onboarding.isOnboarding&&!n(),l=!1;return m(c,e=>{e&&!l&&(l=!0,setTimeout(()=>{U5.registerNotifications()},500))}),[x(r2,{}),x(pX,{get loading(){return n()},get breadcrumbs(){return x(mX,{})},sidebarContent:r,get settings(){return x($8,{})},get chessboardView(){return x(j,{get when(){return s()},keyed:!0,children:e=>x(u2,{chessboardInterface:e,isActive:!0})})},get backSection(){return x(j,{get when(){return s()},keyed:!0,children:e=>x(j8,{chessboard:e})})},get belowChessboard(){return x(j,{get when(){return s()},keyed:!0,children:e=>x(a7,{chessboard:e})})}})]},ete=l(`<div class="col items-center"><p class="body-text padding-sidebar">Just enter a FEN, and we'll run the position through Stockfish, generating a card which you can review.</p>
53<div class=" w-full self-stretch"><div><form class="col gap-8"><div class=padding-sidebar></div><input type=submit hidden>`),tte=()=>{let e=e=>{l(``),hN.call([`cards.addCard`,{epd:e.epd}]).then(e=>{Z(e=>{e.cardsState.processingState.processingCards++}),Q().backOne(),mn.success(`Processing card!`)}).catch(e=>{l(e?.response?.data?.error??`Something went wrong`)})};O(()=>{Z(e=>{e.cardsState.chessboardOverview.setPosition(new ip)})});let{form:t,setFields:n,errors:r,createSubmitHandler:i,data:a}=OF({initialValues:{epd:``},onSubmit:e,extend:[DF({schema:xF({epd:iF().label(`EPD`).required().test(`is-valid-epd`,`Invalid EPD`,e=>{try{new ip(e)}catch{return!1}return!0})})})]}),s=i({onSubmit:e}),[c,l]=o(``);return m(()=>a(`epd`),e=>{try{let t=new ip(e);Z(e=>{e.cardsState.chessboardOverview.setPosition(t),e.cardsState.chessboardOverview.setPerspective(t.turn()===`w`?`white`:`black`)})}catch{l(`Invalid EPD`)}}),x($,{actions:[{onPress:()=>{s()},text:`Create a card with this position`,style:`focus`}],header:`Create your own card`,get children(){var e=ete(),i=e.firstChild.nextSibling,a=i.firstChild,o=a.firstChild,s=o.firstChild;return N(e,x(R,{between:[`body-text`,`form`]}),i),I(()=>t,o),N(s,x(lR,{placeholder:fp,setFields:n,type:`text`,name:`epd`,label:`Position in FEN notation`,get errors(){return r()}})),M(()=>F(z(B.br(4),B.px(0),B.py(0))),(e,t)=>{w(a,e,t)}),e}})},nte=l(`<p class="text-xs text-tertiary transition-colors text-center pt-4">`),rte=l(`<div class="flex flex-col items-center justify-center pt-8 md:h-[400px]"><!><!>`),ite=l(`<div>`),ate=l(`<div class="text-xs text-tertiary transition-colors animate-pulse"><p>`),ote=()=>{let e=()=>{let e=[],t=E6().cards;if(t){let n=t.filter(e=>e.srs.firstReview);n.length>0&&e.push({text:`Review new mistakes`,right:x(tV,{descriptor:`new`,get date(){return E6().earliestDue},get numDue(){return n.length},iconColor:`text-blue-75`,icon:`fa-solid fa-inbox`}),style:`primary`,onPress:()=>{K(`cards_home.practice`,{filter:`new`}),Z(e=>{e.cardsState.reviewState.startReview({filter:`new`})})}})}return[`opening`,`middlegame`,`endgame`].forEach(n=>{let r=t.filter(e=>!e.srs.firstReview&&e.gamePhase===n);r.length>0&&e.push({text:`Practice ${n===`opening`?`opening`:n===`middlegame`?`middle-game`:`end-game`} cards`,right:x(tV,{pluralizeDescriptor:!0,descriptor:`card`,get numDue(){return r.length},iconColor:`text-secondary`,icon:`fa-duotone fa-cards-blank`}),style:`primary`,onPress:()=>{K(`cards_home.practice`,{filter:n}),Z(e=>{e.cardsState.reviewState.startReview({filter:e=>e.gamePhase===n})})}})}),e.push({text:`Practice due cards`,right:x(tV,{get date(){return E6().earliestDue},get numDue(){return E6().totalDue}}),style:`primary`,disabled:E6().totalDue===0,onPress:()=>{K(`cards_home.practice`,{filter:`due`}),Z(e=>{e.cardsState.reviewState.startReview({filter:`due`})})}}),e},t=()=>(E6().cards?.length??0)>0,n=()=>E6().processingState.processingGames>0?`Processing ${_L(E6().processingState.processingGames,`game`)}...`:E6().processingState.isFetching?`Fetching games...`:E6().processingState.processingCards>0?`Analyzing ${_L(E6().processingState.processingCards,`position`)}...`:null,r=()=>!t();return[x(j,{get when(){return r()},get children(){var e=rte(),t=e.firstChild,r=t.nextSibling;return N(e,x(Ni,{class:`text-4xl text-tertiary`}),t),N(e,x(j,{get when(){return n()},get children(){var e=nte();return N(e,n),e}}),r),e}}),x(j,{get when(){return A(()=>!!J().user)()?!r():J().user},get children(){return x($,{header:null,actions:[],bodyPadding:!1,get children(){return[x(W6,{text:`Learn and review`,get right(){return x(j,{get when(){return n()},get children(){var e=ate(),t=e.firstChild;return N(t,n),e}})}}),x(j,{get when(){return t()},get children(){var t=ite();return N(t,x(j,{get when(){return!H(e())},get children(){return x(H6,{get actions(){return e()}})}})),M(()=>F(z(B.column,B.fullWidth,B.gap(`10px`))),(e,n)=>{w(t,e,n)}),t}}),x(R,{between:[`table`,`table-header`]}),x(W6,{text:`Manage your cards`}),x(H6,{actions:[{onPress:()=>{Z(e=>{Q().pushView(tte)})},text:`Add a card`,style:`primary`}]}),x(R,{between:[`table`,`table-header`]}),x(W6,{text:`Contact us`}),x(H6,{actions:[{onPress:()=>{K(`home.contact.discord`),window.open(qe,`_blank`)},text:Je?`Join the Discord`:`Join the Chessbook Discord`,style:`secondary`},{onPress:()=>{Z(e=>{K(`home.contact.feedback`),Q().pushView(A7)})},text:`Share your feedback`,style:`secondary`}]})]}})}})]},ste=l(`<div id=sidebar-inner>`),cte=l(`<div class=contents data-sidebar-view-id=root data-sidebar-preview-scope=data>`),[lte,ute]=o(!1),dte=()=>{let e=N6(),t=()=>E6().chessboardOverview,n=()=>E6().chessboardBuild,r=()=>E6().reviewState.chessboard,i=_(()=>Q().currentView()),s=()=>E6().cards===void 0,c=(()=>{var e=ste();return N(e,x(v,{get fallback(){var e=cte();return N(e,x(ote,{})),e},get children(){return x(a,{get when(){return i()},get children(){return x(qI,{get stack(){return Q().sidebarStack}})}})}})),M(()=>({e:F(z(B.relative,B.zIndex(100))),t:F(L(`md:pt-[12px]`))}),({e:t,t:n},r)=>{w(e,t,r?.e),P(e,n,r?.t)}),e})(),l=Ie(),[u,d]=o(HR());m(()=>l(),(e,t)=>{e&&t===!1&&HR.duration(HR().diff(u())).hours()>=1&&window.location.reload(),e&&d(HR())});let f=()=>e()===`build`?`build`:e()===`review`?`review`:`overview`,p=_(()=>f()===`build`?n():f()===`review`?r():t());return ze(()=>{lte()||(mn.error(`Beta site, expect bugs!`),ute(!0))}),[x(r2,{}),x(pX,{get loading(){return s()},get breadcrumbs(){return x(mX,{})},sidebarContent:c,get settings(){return x($8,{})},get chessboardView(){return x(j,{get when(){return p()},keyed:!0,children:e=>x(u2,{chessboardInterface:e,isActive:!0})})},get backSection(){return x(j8,{get chessboard(){return p()}})},get belowChessboard(){return x(a7,{get chessboard(){return p()}})}})]},D9=e=>{let t=()=>q().userState.token,n=()=>Je?E6().cards===void 0:Y().repertoires===void 0,r=()=>J().authStatus,i=Yr(),o=!1,s=!1,c=!1,l=eee();l&&Z(e=>{let t=Reflect.get(window,`fbq`);t&&(t(`trackCustom`,`landing_page_conversion`,{source:l.source}),t(`track`,`StartTrial`)),e.userState.pastLandingPage=!0,l.kind===`login`?Q().pushView(wX):(K(`onboarding.started`),e.repertoireState.startOnboarding())}),m(()=>i.pathname,e=>{c||(c=!0,MM({initial_page:e}))}),m(()=>r()===y1.Authenticated&&n(),e=>{e&&!o&&(o=!0,Z(e=>{Je?e.cardsState.initState():e.repertoireState.initState()}))}),m(()=>{let e=J().user?.id,t=Y();if(!Ge||!e||!t.repertoires||t.onboarding.isOnboarding)return null;let{white:n,black:r}=t.lockedMoves.numLocked;return{userId:e,count:n+r}},e=>{e&&(NM(),kM({locked_moves_count:e.count}))}),m(()=>e.initialView,e=>{e&&Z(t=>{t.userState.pastLandingPage=!0,t.repertoireState.onboarding.isOnboarding=!1,Q().ensureView(e)})});let u=()=>!(t().value||J().pastLandingPage||n());return m(()=>u(),e=>{e&&!s&&(s=!0,Ye&&Z(e=>{K(`onboarding.started`),e.repertoireState.startOnboarding(),e.userState.pastLandingPage=!0}),Je&&Z(e=>{K(`onboarding.started`),e.cardsState.onboarding=!0,Q().pushView(KZ),e.userState.pastLandingPage=!0}))}),x(v,{get fallback(){return x(H5,{})},get children(){return x(a,{get when(){return!u()||Ye},get children(){return x(v,{get fallback(){return x($ee,{})},get children(){return x(a,{when:Je,get children(){return x(dte,{})}})}})}})}})},fte=()=>{let e=Xr();return ze(()=>{Z(t=>{Q().sidebarStack.length===0&&(t.userState.pastLandingPage=!0,Q().pushViewNoAnimation(V5),Q().pushViewNoAnimation(k5,{props:{slug:e.slug}}))})}),x(D9,{})},pte=l(`<div data-testid=performance-hud aria-label="Performance HUD. Drag to reposition."style="position:fixed;width:156px;height:72px;padding:6px 8px;box-sizing:border-box;z-index:10000;color:#f9fafb;background:rgba(17, 24, 39, 0.92);border:1px solid rgba(255, 255, 255, 0.18);border-radius:6px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.28);font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:10px;line-height:14px;letter-spacing:0;touch-action:none;user-select:none"><div style=display:flex;flex-direction:row;justify-content:space-between;
53height:14px><span>FPS </span><span>Jank <!>%</span><span>Lag <!>%</span></div><div style=display:flex;flex-direction:row;justify-content:space-between;height:14px><span>SF </span><span>LT </span><i class="fa-solid fa-grip-lines"aria-hidden=true></i></div><canvas data-testid=performance-hud-sparkline width=138 height=28 style="display:block;margin:4px 0 0">`),mte=156,hte=72,gte=138,O9=8,k9=1e3/60,_te=25,A9=`admin-performance-hud-position-v1`,j9=e=>({x:Math.max(O9,Math.min(e.x,window.innerWidth-mte-O9)),y:Math.max(O9,Math.min(e.y,window.innerHeight-hte-O9))}),vte=e=>e>=1e6?`${(e/1e6).toFixed(1)}m/s`:e>=1e3?`${Math.round(e/1e3)}k/s`:`${e}/s`,M9=()=>GE()?G.running?G.lastNps?vte(G.lastNps):`search`:G.taskQueue.length>0?`queue ${G.taskQueue.length}`:G.isProcessing?`busy`:G.loaded&&G.isReady?`idle`:`loading`:`off`,yte=()=>{let[e,t]=o({x:O9,y:72}),[n,r]=o({fps:0,jank:0,lag:0,longTasks:null}),[i,a]=o(M9()),c,l,u=0,d=0,f=0,p=[],m=[],h=0,g,_,v=e=>{c=e},y=e=>{l=e},b=()=>{if(!c)return;let e=window.devicePixelRatio||1,t=gte;c.width=t*e,c.height=28*e,c.style.width=`${t}px`,c.style.height=`28px`;let r=c.getContext(`2d`);if(!r)return;r.scale(e,e),r.clearRect(0,0,t,28),r.strokeStyle=`rgba(255, 255, 255, 0.18)`,r.lineWidth=1;let i=28-k9/50*28;r.beginPath(),r.moveTo(0,i),r.lineTo(t,i),r.stroke(),!(m.length<2)&&(r.strokeStyle=n().jank>10?`#fbbf24`:`#34d399`,r.lineWidth=1.5,r.beginPath(),m.forEach((e,n)=>{let i=n/Math.max(m.length-1,1)*t,a=28-Math.min(e,50)/50*28;n===0?r.moveTo(i,a):r.lineTo(i,a)}),r.stroke())},x=e=>{let t=Math.max(e-f,1),n=p.reduce((e,t)=>e+t,0),i=p.reduce((e,t)=>e+Math.max(0,t-k9),0);r({fps:Math.round(p.length*1e3/t),jank:p.length?Math.round(p.filter(e=>e>_te).length*100/p.length):0,lag:n?Math.round(i*100/n):0,longTasks:g?Math.min(100,Math.round(h*100/t)):null}),a(M9()),p=[],h=0,f=e,b()},S=e=>{if(d>0){let t=e-d;t<1e3?(p.push(t),m.push(t),m.length>60&&m.shift()):p=[]}d=e,f===0&&(f=e),e-f>=500&&x(e),u=requestAnimationFrame(S)},C=e=>{if(!l)return;let t=l.getBoundingClientRect();_={pointerId:e.pointerId,offsetX:e.clientX-t.left,offsetY:e.clientY-t.top},l.setPointerCapture(e.pointerId),e.preventDefault()},w=e=>{_&&e.pointerId===_.pointerId&&t(j9({x:e.clientX-_.offsetX,y:e.clientY-_.offsetY}))},T=t=>{_&&t.pointerId===_.pointerId&&(_=void 0,l?.releasePointerCapture(t.pointerId),tC.set({key:A9,value:JSON.stringify(e())}).catch(()=>{}))},E=()=>t(e=>j9(e));ze(()=>{tC.get({key:A9}).then(({value:e})=>
53{if(!e)return;let n=JSON.parse(e);Number.isFinite(n.x)&&Number.isFinite(n.y)&&t(j9(n))}).catch(()=>{}),window.addEventListener(`resize`,E);try{PerformanceObserver.supportedEntryTypes?.includes(`longtask`)&&(g=new PerformanceObserver(e=>{h+=e.getEntries().reduce((e,t)=>e+t.duration,0)}),g.observe({entryTypes:[`longtask`]}))}catch{g=void 0}u=requestAnimationFrame(S)}),O(()=>{cancelAnimationFrame(u),g?.disconnect(),window.removeEventListener(`resize`,E)});var D=pte(),ee=D.firstChild,te=ee.firstChild;te.firstChild;var k=te.nextSibling,ne=k.firstChild.nextSibling;ne.nextSibling;var re=k.nextSibling,ie=re.firstChild.nextSibling;ie.nextSibling;var ae=ee.nextSibling,oe=ae.firstChild;oe.firstChild;var se=oe.nextSibling;se.firstChild;var j=ae.nextSibling;return D.addEventListener(`pointercancel`,T),D._$$pointerup=T,D._$$pointermove=w,D._$$pointerdown=C,I(()=>y,D),s(D,`cursor`,_?`grabbing`:`grab`),N(te,()=>n().fps,null),N(k,()=>n().jank,ne),N(re,()=>n().lag,ie),N(oe,i,null),N(se,(()=>{var e=A(()=>n().longTasks===null);return()=>e()?`n/a`:`${n().longTasks}%`})(),null),I(()=>v,j),M(()=>({e:`${e().x}px`,t:`${e().y}px`}),({e,t},n)=>{e!==n?.e&&s(D,`left`,e),t!==n?.t&&s(D,`top`,t)}),D};ae([`pointerdown`,`pointermove`,`pointerup`]);var bte=l(`<div><div class="col items-center"><div class="min-w-80 padding-sidebar w-full self-stretch"><div><form class="col gap-8"><!><input type=submit hidden>`),xte=l(`<div class="row w-full justify-center">`);function Ste(){let e=async e=>{c(``),QS.post(`/api/reset_password`,{password:e.password,id:l.id}).then(e=>{K(`auth.reset_password.success`),Z(t=>{t.userState.handleAuthResponse(e.data),t.repertoireState.initState(),Q().clearViews(),window.history.replaceState({},``,`/`)})}).catch(e=>
53{K(`auth.reset_password.error`),c(e?.response?.data?.error??`Something went wrong`)})},{form:t,isSubmitting:n,setFields:r,errors:i,createSubmitHandler:a}=OF({initialValues:{password:``},onSubmit:e,extend:[DF({schema:xF({password:iF().min(8).required().label(`Password`)})})]}),[s,c]=o(``),[l]=Zr(),u=a({onSubmit:e});return x($,{actions:[{onPress:u,text:`Submit`,style:`focus`}],header:`Reset your password`,get children(){return x(j,{get when(){return!n()},get fallback(){var e=xte();return N(e,x(Ni,{})),e},get children(){var e=bte(),a=e.firstChild.firstChild.firstChild,o=a.firstChild,c=o.firstChild,l=c.nextSibling;return I(()=>t,o),N(o,x(lR,{placeholder:`New password`,type:`password`,name:`password`,autocomplete:`new-password`,label:`New password`,get errors(){return i()},setFields:r}),c),N(o,x(nR,{name:`Server error`,get error(){return s()},class:`inline-block`}),l),M(()=>({e:F(L(n()&&`opacity-0`)),t:F(z(B.br(4),B.px(0),B.py(0)))}),({e:t,t:n},r)=>{P(e,t,r?.e),w(a,n,r?.t)}),e}})}})}var Cte=l(`<div id=mobile-app-promotion><div><i class="fas fa-warning text-xl text-danger"></i><p class="font-semibold text-gray-21">Spoofing user `),wte=()=>{let e=()=>S6().spoofedEmail.value;return x(le,{get mount(){return document.body},get children(){return x(j,{get when(){return!Kt(e())},get children(){var t=Cte(),n=t.firstChild,r=n.firstChild.nextSibling;return r.firstChild,t._$$click=()=>{Z(e=>{e.adminState.spoofUser(null),window.location.reload()})},N(n,x(R,{width:12}),r),N(r,e,null),M(()=>({e:F(L(`fixed z-2000 bottom-0 right-0 cursor-pointer`)),t:F(L(` bg-gray-95 rounded relative p-8 column mr-4 mb-4 row items-center`)),a:F(z(B.shadow(0,10,60,0,B.hsl(0,0,0,50))))}),({e,t:r,a:i},a)=>{P(t,e,a?.e),P(n,r,a?.t),w(n,i,a?.a)}),t}})}})};ae([`click`]);var Tte=()=>{let[e,t]=o(!1);m(()=>!e()&&!1,e=>{e&&t(!0)})},Ete=l(`<div class="flex flex-col center w-screen h-screen"><div class="flex row items-center space-x-3"><div class="w-12 aspect-square pt-1"></div></div><p>Redirecting to <!>...`),Dte=()=>(ze(()=>{K(`app_redirect.shown`);let e=setTimeout(()=>{let e=Fe()?Se:Ce;window.location.href=e},1e3);return()=>clearTimeout(e)}),(()=>{var e=Ete(),t=e.firstChild,n=t.firstChild,r=t.nextSibling,i=r.firstChild.nextSibling;return i.nextSibling,N(n,x(i6,{})),N(r,()=>Fe()?`App Store`:`Play Store`,i),M(()=>F(L(`text-xl md:text-2xl font-semibold pt-6`,`animate-pulse`)),(e,t)=>{P(r,e,t)}),e})());function N9(){}function Ote(e,t){t||={};var n,r=0,i=1,a={},o=t.maxAttempts||1/0;return a.open=function(){n=new WebSocket(e,t.protocols||[]),n.onmessage=t.onmessage||N9,n.onopen=function(e){(t.onopen||N9)(e),r=0},n.onclose=function(e){e.code===1e3||e.code===1001||e.code===1005||a.reconnect(e),(t.onclose||N9)(e)},n.onerror=function(e){e&&e.code===`ECONNREFUSED`?a.reconnect(e):(t.onerror||N9)(e)}},a.reconnect=function(e){i&&r++<o?i=setTimeout(function(){(t.onreconnect||N9)(e),a.open()},t.timeout||1e3):(t.onmaximum||N9)(e)},a.json=function(e){n.send(JSON.stringify(e))},a.send=function(e){n.send(e)},a.close=function(e,t){i=clearTimeout(i),n.close(e||1e3,t)},a.open(),a}var kte=()=>null,Ate=()=>{let e=_(()=>J().user?.id),t=null,n=null,r=0,i,a=()=>{r+=1,n&&=(clearTimeout(n),null),t&&=(t.close(),null)},o=(e,t)=>`${(XS||window.location.origin).replace(/^http/,`ws`)}/api/ws?${new URLSearchParams({user_id:e,ticket:t}).toString()}`,s=async()=>{let e=await fetch(`${XS??``}/api/ws-ticket`,{method:`POST`,headers:ie(qS)});if(!e.ok)throw Error(`Failed to fetch websocket ticket: ${e.status}`);return await e.json()},c=(e,t)=>{t!==r||n||(n=setTimeout(()=>{n=null,l(e,t)},2e3))},l=async(e,n)=>{try{let{ticket:a}=await s();if(n!==r||i!==e)return;t=new Ote(o(e,a),{timeout:5e3,maxAttempts:3,onopen:e=>{Y().syncAutoFillBuilds()},onmessage:e=>{let t=JSON.parse(e.data);if(typeof t==`object`){let e=`CardGenerated`in t&&t.CardGenerated,n=`UserStatus`in t?t.UserStatus:null;e&&(E6().addCard(e.card),H(E6().reviewState.activeQueue)||Z(t=>{H(t.cardsState.reviewState.activeQueue)||t.cardsState.reviewState.activeQueue.push({card:e.card})})),n&&Z(e=>{e.cardsState.processingState.processingGames=n.status.processing_games??0,e.cardsState.processingState.processingCards=n.status.processing_cards??0,e.cardsState.processingState.isFetching=n.status.fetching_games}),(`AutoFillProgress`in t||`AutoFillComplete`in t||`AutoFillError`in t)&&Y().handleAutoFillWebsocketMessage(t)}},onreconnect:e=>{},onmaximum:t=>c(e,n),onclose:e=>{},onerror:e=>{}})}catch{c(e,n)}};return m(e,e=>(i=e,e&&l(e,r),a)),null},P9={},F9=!1,I9=(e,t=0)=>{let n=10**t;return Math.round(e*n)/n},L9=[],jte=40,Mte=e=>{if(!(e instanceof Element))return;let t=e.closest(`[data-testid]`);if(t)return t.getAttribute(`data-testid`)??void 0;let n=e.closest(`button, a, [class*='sidebar-button']`);
53if(n){let e=(n.getAttribute(`class`)??``).split(/\s+/).filter(Boolean).slice(0,2);return[n.tagName.toLowerCase(),...e].join(`.`)}return e.tagName.toLowerCase()},Nte=e=>{let t=Mte(e.target);t&&(L9.push({time:e.timeStamp,label:t}),L9.length>jte&&L9.shift())},Pte=e=>{if(e===void 0||!L9.length)return;let t,n=1/0;for(let r of L9){let i=Math.abs(r.time-e);i<n&&(n=i,t=r)}return n<=100?t?.label:void 0},R9=e=>`${e.sourceFunctionName||e.invoker||`anon`}@${(e.sourceURL||``).replace(/^https?:\/\/[^/]+/,``).slice(-60)}`,z9=()=>{F9||(P9.inp_ms!==void 0||P9.lcp_ms!==void 0)&&(F9=!0,P9.route=window.location.pathname,K(`web_vitals`,P9))},Fte=()=>{if(typeof window>`u`||typeof PerformanceObserver>`u`)return;let e=navigator;P9.hardware_concurrency=e.hardwareConcurrency,P9.device_memory_gb=e.deviceMemory,P9.connection_type=e.connection?.effectiveType;for(let e of[`pointerdown`,`keydown`,`click`])window.addEventListener(e,Nte,{capture:!0,passive:!0});ve(async()=>{let{onINP:e,onLCP:t,onCLS:n}=await import(`./web-vitals.attribution-CXBWYrl4.js`);return{onINP:e,onLCP:t,onCLS:n}},[],import.meta.url).then(({onINP:e,onLCP:t,onCLS:n})=>{e(({value:e,rating:t,attribution:n})=>{P9.inp_ms=I9(e),P9.inp_rating=t,P9.inp_target=n.interactionTarget||Pte(n.interactionTime),P9.inp_event_type=n.interactionType,P9.inp_input_delay_ms=I9(n.inputDelay),P9.inp_processing_ms=I9(n.processingDuration),P9.inp_presentation_delay_ms=I9(n.presentationDelay);let r=n.longestScript;r&&(P9.inp_longest_script=R9(r.entry),P9.inp_longest_script_ms=I9(r.intersectingDuration),P9.inp_longest_script_subpart=r.subpart);let i=n.longAnimationFrameEntries??[];P9.inp_loaf_total_ms=I9(i.reduce((e,t)=>e+t.duration,0));let a=i.flatMap(e=>e.scripts??[]).sort((e,t)=>t.duration-e.duration).slice(0,3).map(e=>`${R9(e)}:${I9(e.duration)}ms`);a.length&&(P9.inp_loaf_scripts=a.join(` | `))},{generateTarget:e=>{if(!(e instanceof Element))return;let t=e.closest(`[data-testid]`);if(t)return t.getAttribute(`data-testid`)??void 0;let n=e.closest(`[class*='sidebar-button'], button, a`);if(n)return`${n.tagName.toLowerCase()}.${(n.className||``).toString().split(/\s+/).slice(0,2).join(`.`)}`}}),t(({value:e,rating:t})=>{P9.lcp_ms=I9(e),P9.lcp_rating=t}),n(({value:e,rating:t})=>{P9.cls=I9(e,3),P9.cls_rating=t})}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&z9()},{capture:!0}),window.addEventListener(`pagehide`,z9,{capture:!0})},Ite;(function(e){e.Light=`light`,e.Dark=`dark`})(Ite||={});var B9=Re(`SafeArea`,{web:()=>ve(()=>import(`./web-yqIM6erI.js`).then(e=>new e.SafeAreaWeb),__vite__mapDeps([28,4,1,2,5]),import.meta.url)}),[Lte,V9]=o({top:0,bottom:0,left:0,right:0}),[Rte,zte]=o(0),Bte=async()=>{if(Ye)try{let{insets:e}=await B9.getSafeAreaInsets();V9({top:e.top||0,bottom:e.bottom||0,left:e.left||0,right:e.right||0}),H9(e);let{statusBarHeight:t}=await B9.getStatusBarHeight();zte(t||0),await B9.addListener(`safeAreaChanged`,e=>{let{insets:t}=e;V9({top:t.top||0,bottom:t.bottom||0,left:t.left||0,right:t.right||0}),H9(t)})}catch(e){qn(e)}},H9=e=>{let t=document.documentElement;for(let[n,r]of Object.entries(e))t.style.setProperty(`--safe-area-inset-${n}`,`${r}px`)},Vte=[`ResizeObserver loop limit exceeded`,`ResizeObserver loop completed with undelivered notifications`,/Cannot read properties of undefined \(reading '\$\$[a-z]+'\)/,/"Stockfish\.getMaxMemory\(\)" is not implemented on android/],Hte=[/Importing a module script failed/,/Failed to fetch dynamically imported module/,/error loading dynamically imported module/i,/Unable to preload CSS/,/Loading chunk \d+ failed/,/Loading CSS chunk \d+ failed/],U9=e=>!!e&&Hte.some(t=>t.test(e)),Ute=({type:e,value:t})=>t?e===`TypeError`?t.includes(`Failed to fetch`)||t.includes(`Load failed`):e===`AxiosError`?t.includes(`Network Error`)||t.includes(`Request aborted`):!1:!1,Wte=e=>{let t=(e.exception?.values??[]).map(e=>e.value).filter(e=>typeof e==`string`);return e.message&&t.push(e.message),t},Gte=(e,{staleChunkHandled:t,reloadInFlight:n})=>n?`reload-in-flight`:(e.exception?.values??[]).some(Ute)?`network`:t&&Wte(e).some(U9)?`stale-chunk`:null,W9=`chessbook:stale-chunk-reload-at`,Kte=6e4,G9=e=>{if(typeof e==`string`)return e;if(e&&typeof e==`object`&&`message`in e){let t=e.message;return typeof t==`string`?t:null}return null},qte=class{deps;reloadRequested=!1;constructor(e){this.deps=e}lastReloadAt(){try{return Number(this.deps.storage?.getItem(W9)??0)}catch{return 0}}reloadedRecently(){return this.deps.now()-this.lastReloadAt()<Kte}reloadInFlight(){return this.reloadRequested}errorsHandled(){return this.reloadRequested||!this.reloadedRecently()}recover(e,t){if(this.reloadRequested)return!0;
53if(this.reloadedRecently())return this.deps.addBreadcrumb({category:`stale-chunk`,level:`warning`,message:`chunk still missing after reload; reporting`,data:{source:e,message:t}}),!1;this.reloadRequested=!0;try{this.deps.storage?.setItem(W9,String(this.deps.now()))}catch{}return this.deps.addBreadcrumb({category:`stale-chunk`,level:`info`,message:`reloading to pick up the current deploy`,data:{source:e,message:t}}),this.deps.reload(),!0}onPreloadError=e=>{this.recover(`vite:preloadError`,G9(e.payload))};onUnhandledRejection=e=>{let t=G9(e.reason);U9(t)&&this.recover(`unhandledrejection`,t)}},K9=null,Jte=e=>{if(K9)return K9;let t=null;try{t=window.sessionStorage}catch{t=null}return K9=new qte({reload:()=>window.location.reload(),now:()=>Date.now(),storage:t,addBreadcrumb:e}),window.addEventListener(`vite:preloadError`,K9.onPreloadError),window.addEventListener(`unhandledrejection`,K9.onUnhandledRejection),K9},Yte=t({App:()=>$9,default:()=>Q9}),Xte=l(`<p class=text-gray-68>`),Zte=l(`<div class="bg-gray-100 p-4 rounded-md flex-shrink min-h-0 overflow-y-scroll"><pre class="text-sm text-gray-42 text-wrap break-all">`),Qte=l(`<div class="flex flex-col items-center justify-center min-h-screen"><div class="max-w-md w-full space-y-8 p-6 bg-white rounded-lg shadow-md my-8 max-h-[600px] flex"><h2 class="text-3xl font-extrabold text-red-65">Something went wrong</h2><p class=text-gray-68>Reload the page and try again.</p><button class="px-4 py-2 text-white bg-blue-75 rounded-md hover:bg-blue-80 focus:outline-hidden focus:ring-2 focus:ring-blue-70 cursor-pointer">Reload Page`),q9=window;q9.process=q9.process??{},q9.process.env={};var J9=new WeakSet,Y9=Ve?`chessmadra`:Je?`chesscards`:`chessbook`,X9=E,Z9=e=>x(ce,{fallback:null,get children(){return x(e.of,{})}}),$te=X9(()=>ve(()=>import(`./AccountDeletion-CnOsl4mu.js`).then(e=>({default:e.AccountDeletionView})),__vite__mapDeps([29,1]),import.meta.url)),ene=()=>x(Z9,{of:$te}),tne=X9(()=>ve(()=>import(`./AdminView-DxE_pOEZ.js`).then(e=>({default:e.AdminView})),__vite__mapDeps([30,1,13,14,4,2,5,17,16,31,32,18,33]),import.meta.url)),nne=X9(()=>ve(()=>import(`./EcoCodesDashboard-CouIONJ8.js`).then(e=>({default:e.EcoCodesDashboard})),__vite__mapDeps([34,1,15,32,13,14,4,2,5,17,16,18,31,33]),import.meta.url)),rne=X9(()=>ve(()=>import(`./MoveAnnotationsDashboard-DruVRBBb.js`).then(e=>({default:e.MoveAnnotationsDashboard})),__vite__mapDeps([35,12,1,13,14,4,2,5,15,17,16,18,31,33,32,36]),import.meta.url)),ine=X9(()=>ve(()=>import(`./ReviewMoveAnnotationsView-05ynShaU.js`).then(e=>({default:e.ReviewMoveAnnotationsView})),__vite__mapDeps([37,1,13,14,4,2,5,17,16,18,31,15,33,32,36,38]),import.meta.url)),ane=X9(()=>ve(()=>import(`./TestErrorView-DAzD6MEV.js`).then(e=>({default:e.TestErrorView})),__vite__mapDeps([39,1]),import.meta.url)),one=X9(()=>ve(()=>import(`./AnimatedNumberStorybook-D6YmWlWw.js`).then(e=>({default:e.AnimatedNumberStorybook})),__vite__mapDeps([40,1]),import.meta.url)),sne=X9(()=>ve(()=>import(`./CharacteristicBarsStorybook-BpQ8OrFL.js`).then(e=>({default:e.CharacteristicBarsStorybook})),__vite__mapDeps([41,1,4,2,5]),import.meta.url)),cne=X9(()=>ve(()=>import(`./FakeAnalysis-Bj0hbHiN.js`).then(e=>({default:e.FakeAnalysis})),__vite__mapDeps([42,1,4,2,5]),import.meta.url)),lne=X9(()=>ve(()=>import(`./GameResultsBarStorybook-C6GRfvzs.js`).then(e=>({default:e.GameResultsBarStorybook})),__vite__mapDeps([43,1]),import.meta.url)),une=X9(()=>ve(()=>import(`./SidebarTableStressTest-BlCTbI7F.js`).then(e=>({default:e.SidebarTableStressTest})),__vite__mapDeps([44,1]),import.meta.url)),dne=X9(()=>ve(()=>import(`./StockfishStressTest-V90Kvdk0.js`).then(e=>({default:e.StockfishStressTest})),__vite__mapDeps([45,1,4,2,5]),import.meta.url)),fne=X9(()=>ve(()=>import(`./DesignSystem-8yPNPcA9.js`),__vite__mapDeps([46,1,4,2,5,47,17,14,16,33,31]),import.meta.url)),pne=X9(()=>ve(()=>import(`./SemanticColorsStorybook-DI-BJKo6.js`).then(e=>({default:e.SemanticColorsStorybook})),__vite__mapDeps([48,1,47,4,2,5,17,14,16,33,31]),import.meta.url)),mne=X9(()=>ve(()=>import(`./LichessOAuthCallback-D9NYkmpj.js`),__vite__mapDeps([49,1,4,2,5,38]),import.meta.url)),hne=v8({routes:[{path:`/`,component:()=>x(Ve?u5:D9,{})},{path:`/admin/move-annotations/community`,component:()=>x(Z9,{of:ine})},{path:`/admin/move-annotations`,component:()=>x(Z9,{of:rne})},{path:`/admin/eco-codes`,component:()=>x(Z9,{of:nne})},{path:`/admin`,component:()=>x(Z9,{of:tne})},{path:`/oauth/lichess`,component:()=>x(Z9,{of:mne})},{path:`/design-system`,component:()=>x(Z9,{of:fne})},{path:`/dev/characteristic-bars`,component:()=>x(Z9,{of:sne})},{path:`/dev/storybook/game-results-bar`,component:()=>x(Z9,{of:lne})},{path:`/dev/storybook/animated-number`,component:()=>x(Z9,{of:one})},{path:`/dev/storybook/semantic-colors`,component:()=>x(Z9,{of:pne})},{path:`/sidebar-table-stress`,component:()=>x(Z9,{of:une})},{path:`/stockfish-stress`,component:()=>x(Z9,{of:dne})},{path:`/forgot-password`,component:()=>x(D9,{initialView:pR})},{path:`/fake-analysis`,component:()=>x(Z9,{of:cne})},{path:`/reset-password`,component:()=>x(D9,{initialView:Ste})},{path:`/login`,component:()=>x(D9,{initialView:wX})},{path:`/test-error`,component:()=>x(Z9,{of:ane})},{path:`/account-deletion`,component:()=>x(D9,{initialView:ene})},{path:`/vision`,component:()=>x(u5,{initialTool:`vision`})},{path:`/qr`,component:()=>x(Dte,{})},{path:`/blunder-puzzles`,component:()=>x(u5,{initialTool:`blunder-puzzles`})},{path:`/intuition-builder`,component:()=>x(u5,{initialTool:`intuition-builder`})},{path:`/visualization`,component:()=>x(u5,{initialTool:`visualization`})},{path:`/repertoires/:slug`,component:fte},{path:`/*`,component:()=>x(Ve?u5:D9,{})}]}),Q9=()=>he(()=>x($9,{})),$9=()=>{queueMicrotask(()=>{Fte(),Ye&&(EN.loadProducts(),U5.addListeners(),Bte(),iN());let e=Jte(e=>ky(e));IS({enabled:!0,release:HS,dist:`web`,environment:`production`,dsn:`https://[email protected]/6456185`,ignoreErrors:Vte,beforeSend:t=>Gte(t,{staleChunkHandled:e.errorsHandled(),reloadInFlight:e.reloadInFlight()})?null:(t.tags={...t.tags,site:Y9,platform:WS,build_target:`web`,app_version:VS,git_sha:BS},t.contexts={...t.contexts,app:{...t.contexts?.app,app_version:VS,build_target:`web`,git_sha:zS,native_fingerprint:GS,release:HS,dist:`web`,site:Y9},browser:{...t.contexts?.browser,online:navigator.onLine,language:navigator.language},route:{url:window.location.href,pathname:window.location.pathname,search:window.location.search}},t.extra={...t.extra,platform:Ze.getPlatform(),nativeFingerprint:GS},t),integrations:[],debug:!1,tracesSampleRate:1,beforeBreadcrumb:(e,t)=>{if(e.category===`xhr`){let n=t.xhr,r={method:n.__sentry_xhr__?.method,url:n.__sentry_xhr__?.url,responseCode:n.status,responseUrl:n.responseURL};return{...e,data:r}}return e}}),Yn({site:Y9,platform:WS,build_target:`web`,app_version:VS,git_sha:BS}),wn(`app`,{app_version:VS,build_target:`web`,git_sha:zS,native_fingerprint:GS,release:HS,dist:`web`,site:Y9})}),Ye&&queueMicrotask(()=>void $M()),Tte(),m(()=>{let e=J().user;return e?!e.isAdmin||J().getFrontendSetting(`adminStockfish`).value===HE.Enabled:null},e=>{e!==null&&HO(e)});let e=!1;return m(()=>{let e=Ye||Ve||!!q().userState.token.value||J().pastLandingPage,t=!Ge||q().repertoireState.repertoires!==void 0;return e&&t},t=>{if(!t||e)return;e=!0;let n=!1,r=()=>{n=!0,$D()};if(typeof window.requestIdleCallback==`function`){let t=window.requestIdleCallback(r,{timeout:2e3});return()=>{n||(window.cancelIdleCallback(t),e=!1)}}let i=window.setTimeout(r);return()=>{n||(window.clearTimeout(i),e=!1)}}),x(c,{fallback:e=>x(gne,{error:e}),get children(){return x(G8,{get children(){return[x(Ate,{}),x(U8,{}),x(H8,{}),x(W8,{}),x(wte,{}),x(j,{when:!1,get children(){return x(kte,{})}}),x(cB,{}),x(fr,{}),x(j,{get when(){return A(()=>!!J().user?.isAdmin)()?J().getFrontendSetting(`adminPerformanceHud`).value===i0.Enabled:J().user?.isAdmin},get children(){return x(yte,{})}}),x(hne,{children:e=>x(_ne,e)})]}})}})},gne=e=>{m(()=>e.error(),e=>{if(typeof e==`object`&&e&&J9.has(e))return;typeof e==`object`&&e&&J9.add(e);let t=e instanceof Error?e.message:String(e);queueMicrotask(()=>{qn(e),K(`error.unhandled`,{message:t})})});let t=()=>e.error();var n=Qte(),r=n.firstChild,i=r.firstChild.nextSibling.nextSibling;return N(r,x(j,{when:!1,get children(){return[(()=>{var e=Xte();return N(e,()=>JSON.stringify(t().message)),e})(),(()=>{var e=Zte(),n=e.firstChild;return N(n,()=>JSON.stringify(t().stack)),e})()]}}),i),i._$$click=()=>window.location.reload(),n},_ne=e=>[x(vne,{}),x(yne,{}),A(()=>e.children)],vne=()=>{let e=Jr();return m(()=>e,e=>{Z(t=>{t.navigationState.setNavigate(e)})}),null},yne=()=>{let e=Jr();return m(()=>e,e=>{let t=!1,n=Date.now(),r=[];return n8.addListener(`backButton`,()=>{k8()}).then(e=>{t?e.remove():r.push(e)}),n8.addListener(`resume`,()=>{Date.now()-n>6e4&&(n=Date.now(),Ge?Z(e=>{e.repertoireState.fetchLichessMistakes()}):Je&&E6().fetchCards())}).then(e=>{t?e.remove():r.push(e)}),Ye&&n8.addListener(`appUrlOpen`,t=>{let n=new URL(t.url);e(n.pathname+n.search)}).then(e=>{t?e.remove():r.push(e)}
53),()=>{t=!0;for(let e of r)e.remove()}}),null};ae([`click`]);export{gH as $,Zr as $t,XZ as A,$9 as App,dC as At,DY as B,Uu as Bt,D1 as C,K as Ct,WQ as D,UD as Dt,t$ as E,LO as Et,vX as F,ip as Ft,Zq as G,Ni as Gt,MJ as H,ru as Ht,PY as I,Yd as It,uW as J,Si as Jt,BG as K,ki as Kt,OY as L,Pd as Lt,eQ as M,QS as Mt,DZ as N,fp as Nt,HQ as O,TE as Ot,CZ as P,dp as Pt,bU as Q,Kr as Qt,EY as R,jd as Rt,L0 as S,hN as St,_$ as T,G as Tt,pJ as U,Eo as Ut,RJ as V,H as Vt,iJ as W,Hi as Wt,jU as X,vi as Xt,zU as Y,bi as Yt,MU as Z,Jr as Zt,D2 as _,iF as _t,V6 as a,ZL as at,r2 as b,LN as bt,X as c,ML as ct,J as d,Q9 as default,WI as dt,vr as en,Ez as et,Z as f,LF as ft,L2 as g,xF as gt,k4 as h,DF as ht,$ as i,lR as it,ZZ as j,tC as jt,iQ as k,pC as kt,Y as l,ZI as lt,M4 as m,OF as mt,x5 as n,qR as nt,S6 as o,FL as ot,i6 as p,PF as pt,gW as q,wi as qt,J8 as r,uR as rt,q as s,jL as st,Yte as t,Mr as tn,tz as tt,Q as u,VF as ut,d2 as v,WN as vt,y1 as w,dM as wt,s2 as x,ON as xt,u2 as y,GN as yt,TY as z,bd as zt};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.