diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e7ae2f9c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,192 @@ +## GITATTRIBUTES FOR WEB PROJECTS +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +# +# Based on https://github.com/alexkaratarakis/gitattributes + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +#*.dot text +*.ejs text diff=html +#*.haml text +*.handlebars text +*.hbs text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +#*.ai binary +#*.bmp binary +#*.eps binary +*.gif binary +#*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +#*.jpx binary +#*.jxr binary +*.pdf binary +*.png binary +#*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +#*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +#*.ra binary + +# Video +#*.3gpp binary +#*.3gp binary +#*.as binary +#*.asf binary +#*.asx binary +*.fla binary +*.flv binary +*.m4v binary +#*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +#*.ogv binary +#*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.br binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..53368907 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,131 @@ +# PolyForm Noncommercial License 1.0.0 + + + +## Acceptance + +In order to get any license under these terms, you must agree +to them as both strict obligations and conditions to all +your licenses. + +## Copyright License + +The licensor grants you a copyright license for the +software to do everything you might do with the software +that would otherwise infringe the licensor's copyright +in it for any permitted purpose. However, you may +only distribute the software according to [Distribution +License](#distribution-license) and make changes or new works +based on the software according to [Changes and New Works +License](#changes-and-new-works-license). + +## Distribution License + +The licensor grants you an additional copyright license +to distribute copies of the software. Your license +to distribute covers distributing the software with +changes and new works permitted by [Changes and New Works +License](#changes-and-new-works-license). + +## Notices + +You must ensure that anyone who gets a copy of any part of +the software from you also gets a copy of these terms or the +URL for them above, as well as copies of any plain-text lines +beginning with `Required Notice:` that the licensor provided +with the software. For example: + +> Required Notice: Copyright David Fong. (http://github.com/david-fong) + +## Changes and New Works License + +The licensor grants you an additional copyright license to +make changes and new works based on the software for any +permitted purpose. + +## Patent License + +The licensor grants you a patent license for the software that +covers patent claims the licensor can license, or becomes able +to license, that you would infringe by using the software. + +## Noncommercial Purposes + +Any noncommercial purpose is a permitted purpose. + +## Personal Uses + +Personal use for research, experiment, and testing for +the benefit of public knowledge, personal study, private +entertainment, hobby projects, amateur pursuits, or religious +observance, without any anticipated commercial application, +is use for a permitted purpose. + +## Noncommercial Organizations + +Use by any charitable organization, educational institution, +public research organization, public safety or health +organization, environmental protection organization, +or government institution is use for a permitted purpose +regardless of the source of funding or obligations resulting +from the funding. + +## Fair Use + +You may have "fair use" rights for the software under the +law. These terms do not limit them. + +## No Other Rights + +These terms do not allow you to sublicense or transfer any of +your licenses to anyone else, or prevent the licensor from +granting licenses to anyone else. These terms do not imply +any other licenses. + +## Patent Defense + +If you make any written claim that the software infringes or +contributes to infringement of any patent, your patent license +for the software granted under these terms ends immediately. If +your company makes such a claim, your patent license ends +immediately for work on behalf of your company. + +## Violations + +The first time you are notified in writing that you have +violated any of these terms, or done anything with the software +not covered by your licenses, your licenses can nonetheless +continue if you come into full compliance with these terms, +and take practical steps to correct past violations, within +32 days of receiving notice. Otherwise, all your licenses +end immediately. + +## No Liability + +***As far as the law allows, the software comes as is, without +any warranty or condition, and the licensor will not be liable +to you for any damages arising out of these terms or the use +or nature of the software, under any kind of legal claim.*** + +## Definitions + +The **licensor** is the individual or entity offering these +terms, and the **software** is the software the licensor makes +available under these terms. + +**You** refers to the individual or entity agreeing to these +terms. + +**Your company** is any legal entity, sole proprietorship, +or other kind of organization that you work for, plus all +organizations that have control over, are under the control of, +or are under common control with that organization. **Control** +means ownership of substantially all the assets of an entity, +or the power to direct its management and policies by vote, +contract, or otherwise. Control can be direct or indirect. + +**Your licenses** are all the licenses granted to you for the +software under these terms. + +**Use** means anything you do with the software requiring one +of your licenses. \ No newline at end of file diff --git a/client/.gitattributes b/client/.gitattributes new file mode 100644 index 00000000..e7ae2f9c --- /dev/null +++ b/client/.gitattributes @@ -0,0 +1,192 @@ +## GITATTRIBUTES FOR WEB PROJECTS +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +# +# Based on https://github.com/alexkaratarakis/gitattributes + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +#*.dot text +*.ejs text diff=html +#*.haml text +*.handlebars text +*.hbs text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +#*.ai binary +#*.bmp binary +#*.eps binary +*.gif binary +#*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +#*.jpx binary +#*.jxr binary +*.pdf binary +*.png binary +#*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +#*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +#*.ra binary + +# Video +#*.3gpp binary +#*.3gp binary +#*.as binary +#*.asf binary +#*.asx binary +*.fla binary +*.flv binary +*.m4v binary +#*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +#*.ogv binary +#*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.br binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text diff --git a/client/.nojekyll b/client/.nojekyll index 8b137891..e69de29b 100644 --- a/client/.nojekyll +++ b/client/.nojekyll @@ -1 +0,0 @@ - diff --git a/client/LICENSE.md b/client/LICENSE.md new file mode 100644 index 00000000..49cf0ad7 --- /dev/null +++ b/client/LICENSE.md @@ -0,0 +1,10 @@ + +# general +.DS_Store +*.orig + +# npm +/node_modules/ + +# build +/dist/ diff --git a/client/chunk/133.js b/client/chunk/133.js deleted file mode 100644 index 61f50ed9..00000000 --- a/client/chunk/133.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[133],{157:(e,t,r)=>{"use strict";var s;r.d(t,{u:()=>s}),function(e){let t;!function(e){e.EUCLID2="EUCLID2",e.BEEHIVE="BEEHIVE"}(t=e.System||(e.System={})),e.equals=function(e,t){return e._equals(t)}}(s||(s={})),Object.freeze(s)},110:(e,t,r)=>{"use strict";r.d(t,{r:()=>a});var s=r(632),i=r(983);class a{constructor(e){Object.defineProperty(this,"static",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dimensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.static=e.gridClass,this.dimensions=e.dimensions,this.tile=new i.N(this),s.R.propNoWrite(this,"static","dimensions","tile")}get area(){return this.static.getArea(this.dimensions)}reset(){this.forEachTile((e=>e.reset()))}getDestsFromSourcesTo(e){return Array.from(new Set(this.tile.sourcesTo(e).get.flatMap((e=>this.tile.destsFrom(e.coord).get))))}getRandomCoord(){return this.static.getRandomCoord(this.dimensions)}}!function(e){e.getImplementation=t=>e._Constructors[t]}(a||(a={}))},983:(e,t,r)=>{"use strict";r.d(t,{N:()=>a});var s,i=r(903);class a{constructor(e){s.set(this,void 0),(0,i.YH)(this,s,e),Object.freeze(this)}get _source(){return(0,i.Q_)(this,s)}at(...e){return(0,i.Q_)(this,s)._getTileAt(...e)}destsFrom(...e){return new o((0,i.Q_)(this,s)._getTileDestsFrom(...e))}sourcesTo(...e){return new o((0,i.Q_)(this,s)._getTileSourcesTo(...e))}}s=new WeakMap,Object.freeze(a),Object.freeze(a.prototype);class o{constructor(e){Object.defineProperty(this,"contents",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.seal(this)}get occupied(){return this.contents=this.contents.filter((e=>e.isOccupied)),this}get unoccupied(){return this.contents=this.contents.filter((e=>!e.isOccupied)),this}get get(){return this.contents}}Object.freeze(o),Object.freeze(o.prototype)},254:(e,t,r)=>{"use strict";r.d(t,{v:()=>s});var s,i=r(632),a=r(110);!function(e){class t{constructor(e){Object.defineProperty(this,"dash",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bash",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.dash=e.dash,this.bash=e.bash,Object.freeze(this)}_equals(e){return this.dash===e.dash&&this.bash===e.bash}round(){const e=Math.floor(this.dash),r=Math.floor(this.bash),s=e-this.dash,i=r-this.bash;return s>2*i?new t({dash:e+1,bash:r}):s<.5*i?new t({dash:e,bash:r+1}):Math.min(s,i)>.5?new t({dash:e+1,bash:r+1}):new t({dash:e,bash:r})}add(e){return new t({dash:this.dash+e.dash,bash:this.bash+e.bash})}sub(e){return new t({dash:this.dash-e.dash,bash:this.bash-e.bash})}mul(e){return new t({dash:e*this.dash,bash:e*this.bash})}}e.Coord=t,Object.freeze(t),Object.freeze(t.prototype);class r extends a.r{constructor(e){super(e),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.grid=Object.freeze(void 0)}static getAmbiguityThreshold(){return 18}static getSizeLimits(){return this.SIZE_LIMITS}forEachTile(e){let t=0;for(const r of this.grid)for(const s of r)e(s,t++)}shuffledForEachTile(e){this.grid.flat().sort(((e,t)=>Math.random()-.5)).forEach((t=>e(t)))}getUntToward(e,t){}getUntAwayFrom(e,t){return this.getUntToward(t.add(t.sub(e)),t)}getRandomCoordAround(e,t){}_getTileAt(e){}_getTileDestsFrom(e,t=1){}_getTileSourcesTo(e,t=1){}minMovesFromTo(e,t){}getDestsFromSourcesTo(e){return this._getTileDestsFrom(e,2)}static getSpawnCoords(e,t){}static getArea(e){const t=Math.min(e.fslash,e.bslash),r=Math.max(e.fslash,e.bslash),s=-1+e.dash+t;let i=2*t*(e.dash+s);return i+=(r-t-1)*s,i}static getDiameterOfLatticePatchHavingArea(e){if(e<.25)throw new RangeError("determinant of a radical will be strictly negative.");return 1+(-3+Math.sqrt(9-12*(1-e)))/6*2}static getRandomCoord(e){return new t(void 0)}}Object.defineProperty(r,"SIZE_LIMITS",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({dash:Object.freeze({min:10,max:50}),bslash:Object.freeze({min:10,max:50}),fslash:Object.freeze({min:10,max:50})})}),e.Grid=r,i.R.protoNoEnum(r,"_getTileAt","_getTileDestsFrom","_getTileSourcesTo"),Object.freeze(r),Object.freeze(r.prototype)}(s||(s={})),Object.freeze(s)},692:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var s,i=r(632),a=r(110);!function(e){class t{constructor(e){Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.x=e.x,this.y=e.y,Object.freeze(this)}_equals(e){return this.x===e.x&&this.y===e.y}round(){return new t({x:Math.round(this.x),y:Math.round(this.y)})}oneNorm(e){return this.sub(e).originOneNorm()}originOneNorm(){return Math.abs(this.x)+Math.abs(this.y)}infNorm(e){return this.sub(e).originInfNorm()}originInfNorm(){return Math.max(Math.abs(this.x),Math.abs(this.y))}axialAlignment(e){return this.sub(e).originAxialAlignment()}originAxialAlignment(){return Math.abs(Math.abs(this.x)-Math.abs(this.y))/(Math.abs(this.x)+Math.abs(this.y))}add(e){return new t({x:this.x+e.x,y:this.y+e.y})}sub(e){return new t({x:this.x-e.x,y:this.y-e.y})}mul(e){return new t({x:e*this.x,y:e*this.y})}}e.Coord=t,Object.freeze(t),Object.freeze(t.prototype);class r extends a.r{constructor(e){super(e),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const r=[];for(let s=0;sMath.random()-.5)).forEach((t=>e(t)))}getUntToward(e,t){const r=this.tile.destsFrom(t).unoccupied.get;if(0===r.length)return this.tile.at(t);if(1===r.length)return r[0];r.sort(((t,r)=>t.coord.oneNorm(e)-r.coord.oneNorm(e))).sort(((t,r)=>t.coord.infNorm(e)-r.coord.infNorm(e)));const s=r[0];for(let t=1;ts.coord.infNorm(e)){r.splice(t);break}if(1===r.length)return r[0];if(s.coord.x-t.x==0||s.coord.y-t.y==0){if(t.axialAlignment(t.sub(e))-.5>0)return s;r.shift()}return r[Math.floor(r.length*Math.random())]}getUntAwayFrom(e,t){return this.getUntToward(t.add(t.sub(e)),t)}getDestsFromSourcesTo(e){return this._getTileDestsFrom(e,2)}getRandomCoordAround(e,r){return new t({x:e.x+Math.trunc(2*r*(Math.random()-.5)),y:e.y+Math.trunc(2*r*(Math.random()-.5))})}_getTileAt(e){return this.grid[e.y][e.x]}_getTileDestsFrom(e,t=1){let r=e.y-t,s=e.y+t+1,i=e.x-t,a=e.x+t+1;return r>=this.dimensions.height||s<0||i>=this.dimensions.width||a<0?[]:this.grid.slice(Math.max(0,r),Math.min(this.dimensions.height,s)).flatMap((e=>e.slice(Math.max(0,i),Math.min(this.dimensions.width,a))))}_getTileSourcesTo(e,t=1){return this._getTileDestsFrom(e,t)}minMovesFromTo(e,t){return Math.min(Math.abs(t.x-e.x),Math.abs(t.y-e.y))}static getSpawnCoords(e,t){const s=[];return e.map((e=>{const i=[];for(;e>0;){let a;do{a=r.getRandomCoord(t)}while(s.find((e=>a._equals(e))));i.push(a),s.push(a),e--}return i}))}static getArea(e){return e.height*e.width}static getDiameterOfLatticePatchHavingArea(e){return Math.sqrt(e)}static getRandomCoord(e){const r=Math.floor(e.width*Math.random()),s=Math.floor(e.height*Math.random());return new t({x:r,y:s})}}Object.defineProperty(r,"SIZE_LIMITS",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({height:Object.freeze({min:11,max:51}),width:Object.freeze({min:11,max:51})})}),e.Grid=r,i.R.protoNoEnum(r,"_getTileAt","_getTileDestsFrom","_getTileSourcesTo"),Object.freeze(r),Object.freeze(r.prototype)}(s||(s={})),Object.freeze(s)},364:(e,t,r)=>{"use strict";var s;r.d(t,{L:()=>s}),function(e){e.EVENT_ID_REJECT=-1}(s||(s={})),Object.freeze(s)},753:(e,t,r)=>{"use strict";r.d(t,{a:()=>s});var s,i=r(364);!function(e){e.INITIAL_REQUEST_ID=-1,e.EVENT_NAME=Object.freeze({BUBBLE:"player-bubble",MOVEMENT:"player-movement"});class t{constructor(e,t){Object.defineProperty(this,"eventId",{enumerable:!0,configurable:!0,writable:!0,value:i.L.EVENT_ID_REJECT}),Object.defineProperty(this,"playerId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerLastAcceptedRequestId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"affectedNeighbours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.playerId=e,this.playerLastAcceptedRequestId=t}}e.Bubble=t,e.Movement=class extends t{constructor(e,t,r,s){super(e,t),Object.defineProperty(this,"newPlayerHealth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"destModDesc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tileHealthModDescs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerHealthModDescs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.destModDesc={coord:r.coord,lastKnownUpdateId:r.lastKnownUpdateId},this.moveType=s}}}(s||(s={})),Object.freeze(s)},688:(e,t,r)=>{"use strict";r.d(t,{R:()=>f});var s,i,a,o,n=r(903),l=r(825),h=r(364),c=(r(753),r(632)),d=r(532),u=r(477),m=r(87);class p{constructor(e,t,r){Object.defineProperty(this,"gameType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),s.set(this,void 0),Object.defineProperty(this,"langFrontend",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"players",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operators",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.set(this,void 0),Object.defineProperty(this,"teams",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),a.set(this,void 0),Object.defineProperty(this,"_playerStatusCtor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.gameType=e;const o=this._getGridImplementation(r.coordSys);this.grid=new o({gridClass:o,tileClass:t.tileClass,coordSys:r.coordSys,dimensions:r.gridDimensions}),(0,n.YH)(this,s,t.onGameBecomeOver),this.langFrontend=d.Uo.GET_FRONTEND_DESC_BY_ID(r.langId),this._playerStatusCtor=t.playerStatusCtor,this.players=this.createPlayers(r),this.operators=Object.freeze(this.players.filter((e=>e.isALocalOperator)));{const e=[];if(this.players.forEach((t=>{e[t.teamId]||(e[t.teamId]=[]),e[t.teamId].push(t)})),this.teams=e.map(((e,t)=>new m.S(t,e))),this.teams.every((e=>e.id===m.S.ElimOrder.IMMORTAL)))throw new Error("All teams are immortal. The game will never end.")}c.R.propNoWrite(this,"gameType","grid","langFrontend","players","operators","teams","_playerStatusCtor"),this.players.forEach((e=>e._afterAllPlayersConstruction())),this.setCurrentOperator(0)}reset(){return(0,n.mG)(this,void 0,void 0,(function*(){this.grid.reset(),(0,n.YH)(this,a,l.l.Status.PAUSED)}))}createPlayers(e){const t=e.playerDescs=this.gameType===l.l.Type.ONLINE?e.playerDescs:u.J5.CtorArgs.finalize(e.playerDescs);return Object.freeze(t.map((e=>e.familyId===u.J5.Family.HUMAN?e.isALocalOperator?this._createOperatorPlayer(e):new u.J5(this,e):this._createArtifPlayer(e))))}serializeResetState(){const e=[],t=this.players.map((e=>e.coord)),r=[];this.grid.forEachTile((t=>{t.lastKnownUpdateId++,e.push({char:t.langChar,seq:t.langSeq}),t.freeHealth&&r.push({coord:t.coord,health:t.freeHealth})}));const s={csps:e,playerCoords:t,healthCoords:r};return c.R.deepFreeze(s),s}deserializeResetState(e){c.R.deepFreeze(e),this.grid.forEachTile(((t,r)=>{t.setLangCharSeqPair(e.csps[r]),t.lastKnownUpdateId++})),e.playerCoords.forEach(((e,t)=>{this.players[t].reset(this.grid.tile.at(e))})),e.healthCoords.forEach((e=>{this.grid.tile.at(e.coord).freeHealth=e.health}))}get currentOperator(){return(0,n.Q_)(this,i)}setCurrentOperator(e){const t=this.operators[e];if(void 0===t)throw new Error("never");this.currentOperator!==t&&(t._notifyWillBecomeCurrent(),(0,n.YH)(this,i,t))}get status(){return(0,n.Q_)(this,a)}statusBecomePlaying(){if(this.status!==l.l.Status.PLAYING){if(this.status!==l.l.Status.PAUSED)throw new Error("Can only resume a game that is currently paused.");this.players.forEach((e=>{e._notifyGameNowPlaying()})),(0,n.YH)(this,a,l.l.Status.PLAYING)}else console.info("[statusBecomePlaying]: Game is already playing")}statusBecomePaused(){this.status!==l.l.Status.PAUSED?this.status!==l.l.Status.OVER&&(this.players.forEach((e=>{e._notifyGameNowPaused()})),(0,n.YH)(this,a,l.l.Status.PAUSED)):console.info("[statusBecomePaused]: Game is already paused")}statusBecomeOver(){this.status!==l.l.Status.OVER&&(this.players.forEach((e=>{e._notifyGameNowOver()})),(0,n.YH)(this,a,l.l.Status.OVER),(0,n.Q_)(this,s).call(this),console.info("game is over!"))}}s=new WeakMap,i=new WeakMap,a=new WeakMap,Object.freeze(p),Object.freeze(p.prototype);class f extends p{constructor(e,t,r){super(e,t,r),Object.defineProperty(this,"eventRecordBitmap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),o.set(this,void 0),this.eventRecordBitmap=[],c.R.propNoWrite(this,"eventRecordBitmap")}reset(){const e=super.reset();return this.eventRecordBitmap.fill(!1,0,l.l.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH),(0,n.YH)(this,o,0),e}get nextUnusedEventId(){return(0,n.Q_)(this,o)}_recordEvent(e){const t=e.eventId,r=t%l.l.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH;this.eventRecordBitmap[r]=!0,this.eventRecordBitmap[(t+l.l.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH-l.l.K.EVENT_RECORD_FORWARD_WINDOW_LENGTH)%l.l.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH]=!1,(0,n.YH)(this,o,+(0,n.Q_)(this,o)+1)}executeTileModEvent(e,t=!0){c.R.deepFreeze(e);const r=this.grid.tile.at(e.coord);return r.lastKnownUpdateId>e.lastKnownUpdateId||(e.newCharSeqPair&&(r.setLangCharSeqPair(e.newCharSeqPair),t&&this.operators.filter((e=>e.tile.destsFrom().get.includes(r))).forEach((e=>e.seqBufferAcceptKey("")))),r.lastKnownUpdateId=e.lastKnownUpdateId,r.freeHealth=e.newFreeHealth),r}executePlayerMoveEvent(e){var t;c.R.deepFreeze(e);const r=this.players[e.playerId],s=e.playerLastAcceptedRequestId-r.lastAcceptedRequestId;if(e.eventId===h.L.EVENT_ID_REJECT)return void(0===s&&(r.requestInFlight=!1));this._recordEvent(e);const i=this.executeTileModEvent(e.destModDesc,r!==this.currentOperator);if(null===(t=e.tileHealthModDescs)||void 0===t||t.forEach((e=>{this.executeTileModEvent(e)})),!(s>1)){if(r.requestInFlight=!1,!(r===this.currentOperator?1===s:s<=1))throw new RangeError("never");r.status.health=e.newPlayerHealth.health,r.moveTo(i),r.lastAcceptedRequestId=e.playerLastAcceptedRequestId}}executePlayerBubbleEvent(e){this.players[e.playerId].requestInFlight=!1,e.eventId!==h.L.EVENT_ID_REJECT&&this._recordEvent(e)}}o=new WeakMap,c.R.protoNoEnum(f,"nextUnusedEventId","_recordEvent"),Object.freeze(f),Object.freeze(f.prototype)},477:(e,t,r)=>{"use strict";r.d(t,{J5:()=>c});var s,i=r(632),a=(r(825),r(753)),o=r(903),n=r(532),l=r(983);class h extends n.J5{constructor(e,t){if(super(),Object.defineProperty(this,"playerId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isALocalOperator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"game",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),s.set(this,void 0),Object.defineProperty(this,"tile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Math.trunc(t.playerId)!==t.playerId)throw new RangeError("Player ID's must be integer values.");this.playerId=t.playerId,this.isALocalOperator=t.isALocalOperator,this.game=e,this.status=new this.game._playerStatusCtor(this,t.noCheckGameOver),this.tile=new l.N(new h.TileGetterSource(this)),i.R.instNoEnum(this,"game"),i.R.propNoWrite(this,"playerId","isALocalOperator","game","status","tile")}_afterAllPlayersConstruction(){this.status._afterAllPlayersConstruction()}reset(e){(0,o.YH)(this,s,e),this.hostTile._setOccupant(this.playerId,this.status.immigrantInfo)}get coord(){return this.hostTile.coord}get hostTile(){return(0,o.Q_)(this,s)}moveTo(e){this.hostTile.occupantId!==this.playerId||this.hostTile.evictOccupant(),e.isOccupied||((0,o.YH)(this,s,e),e._setOccupant(this.playerId,this.status.immigrantInfo))}}s=new WeakMap,function(e){var t,r;class s{constructor(e){t.set(this,void 0),r.set(this,void 0),(0,o.YH)(this,t,e),(0,o.YH)(this,r,e.game.grid.tile._source)}_getTileAt(){return(0,o.Q_)(this,r)._getTileAt((0,o.Q_)(this,t).coord)}_getTileDestsFrom(){return(0,o.Q_)(this,r)._getTileDestsFrom((0,o.Q_)(this,t).coord)}_getTileSourcesTo(){return(0,o.Q_)(this,r)._getTileSourcesTo((0,o.Q_)(this,t).coord)}}t=new WeakMap,r=new WeakMap,e.TileGetterSource=s,Object.freeze(s),Object.freeze(s.prototype)}(h||(h={})),i.R.protoNoEnum(h,"_afterAllPlayersConstruction"),Object.freeze(h),Object.freeze(h.prototype),r(865);class c extends h{constructor(e,t){var r;super(e,t),Object.defineProperty(this,"familyId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"teamId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"username",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"avatar",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastAcceptedRequestId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestInFlight",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.familyId=t.familyId,this.teamId=t.teamId,this.username=t.username,this.avatar=null!==(r=t.avatar)&&void 0!==r?r:c.Avatar.GET_RANDOM(),i.R.propNoWrite(this,"familyId","teamId","username","avatar")}reset(e){super.reset(e),this.status.reset(),this.lastAcceptedRequestId=a.a.INITIAL_REQUEST_ID,this.requestInFlight=!1}_notifyGameNowPlaying(){}_notifyGameNowPaused(){}_notifyGameNowOver(){}makeMovementRequest(e,t){this.requestInFlight=!0,this.game.processMoveRequest(new a.a.Movement(this.playerId,this.lastAcceptedRequestId,e,t))}get team(){return this.game.teams[this.teamId]}isTeamedWith(e){return this.team.members.includes(e)}}!function(e){let t;!function(e){e.finalize=function(e){const t=Array.from(new Set(e.map((e=>e.teamId)))).sort(((e,t)=>e-t)).reduce(((e,t,r)=>(e[t]=r,e)),[]);return e.slice().sort(((e,r)=>t[e.teamId]-t[r.teamId])).map(((e,r)=>Object.assign({},e,{playerId:r,teamId:t[e.teamId]})))}}(t=e.CtorArgs||(e.CtorArgs={})),Object.freeze(t)}(c||(c={})),i.R.protoNoEnum(c,"_notifyGameNowPaused","_notifyGameNowPlaying","_notifyGameNowOver"),Object.freeze(c),Object.freeze(c.prototype)},865:(e,t,r)=>{"use strict";r.d(t,{c:()=>n});var s,i=r(903),a=r(632),o=r(87);class n{constructor(e,t){Object.defineProperty(this,"player",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"noCheckGameOver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),s.set(this,void 0),this.player=e,this.noCheckGameOver=t,a.R.instNoEnum(this,"player")}reset(){this.health=0}_afterAllPlayersConstruction(){}get immigrantInfo(){}get health(){return(0,i.Q_)(this,s)}set health(e){const t=this.isDowned;if((0,i.YH)(this,s,e),t||!this.isDowned||this.noCheckGameOver)return;const r=this.player.team,a=this.player.game.teams;if(r.elimOrder===o.S.ElimOrder.STANDING&&r.members.every((e=>e.status.noCheckGameOver||e.status.isDowned))){const e=1+a.filter((e=>e.elimOrder!==o.S.ElimOrder.STANDING)).length;r.elimOrder=1+a.filter((e=>e.elimOrder!==o.S.ElimOrder.STANDING&&e.elimOrder!==o.S.ElimOrder.IMMORTAL)).length,e===a.length&&this.player.game.statusBecomeOver()}}get isDowned(){return this.health<0}}s=new WeakMap,a.R.protoNoEnum(n,"_afterAllPlayersConstruction"),Object.freeze(n),Object.freeze(n.prototype)},87:(e,t,r)=>{"use strict";r.d(t,{S:()=>o});var s,i=r(903),a=r(632);class o{constructor(e,t){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"members",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),s.set(this,void 0),0===t.length)throw new Error("Teams must have at least one member.");this.id=e,this.members=t,(0,i.YH)(this,s,this.members.every((e=>e.status.noCheckGameOver))?o.ElimOrder.IMMORTAL:o.ElimOrder.STANDING),a.R.propNoWrite(this,"id","members")}reset(){this.elimOrder!==o.ElimOrder.IMMORTAL&&(this.elimOrder=o.ElimOrder.STANDING)}get elimOrder(){return(0,i.Q_)(this,s)}set elimOrder(e){if(this.elimOrder===o.ElimOrder.IMMORTAL)throw new TypeError("Cannot change the elimination status of an immortal team.");(0,i.YH)(this,s,e)}}s=new WeakMap,function(e){let t;!function(e){e.IMMORTAL=-1,e.STANDING=0}(t=e.ElimOrder||(e.ElimOrder={}))}(o||(o={})),Object.freeze(o),Object.freeze(o.prototype)},242:(e,t,r)=>{"use strict";r.d(t,{qM:()=>L,lA:()=>h.l,RQ:()=>l.R,J5:()=>w.J5,Ko:()=>A,gx:()=>f});var s,i,a,o,n,l=r(632),h=r(825),c=r(903),d=r(749),u=r(912),m=r(532);class p{constructor(e){Object.defineProperty(this,"coord",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),s.set(this,void 0),i.set(this,void 0),a.set(this,void 0),o.set(this,void 0),Object.defineProperty(this,"lastKnownUpdateId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.coord=e,l.R.propNoWrite(this,"coord"),(0,c.YH)(this,s,m.J5.Id.NULL)}reset(){this.evictOccupant(),this.lastKnownUpdateId=0,this.freeHealth=0,this.setLangCharSeqPair(m.Uo.CharSeqPair.NULL)}_setOccupant(e,t){(0,c.YH)(this,s,e)}get isOccupied(){return this.occupantId!==m.J5.Id.NULL}evictOccupant(){(0,c.YH)(this,s,m.J5.Id.NULL)}get occupantId(){return(0,c.Q_)(this,s)}get freeHealth(){return(0,c.Q_)(this,i)}set freeHealth(e){(0,c.YH)(this,i,e)}setLangCharSeqPair(e){(0,c.YH)(this,a,e.char),(0,c.YH)(this,o,e.seq)}get langChar(){return(0,c.Q_)(this,a)}get langSeq(){return(0,c.Q_)(this,o)}}s=new WeakMap,i=new WeakMap,a=new WeakMap,o=new WeakMap,Object.freeze(p),Object.freeze(p.prototype);class f extends p{constructor(e){super(e),n.set(this,void 0),Object.defineProperty(this,"langCharElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),(0,c.YH)(this,n,l.R.mkEl("div",[u.Y.General.Class.CENTER_CONTENTS,u.Y.General.Class.STACK_CONTENTS,d.Z.this])).setAttribute("aria-label","Tile");{const e=l.R.mkEl("div",[d.Z.char]);e.setAttribute("role","presentation");const t=this.langCharElem=l.R.mkEl("div",[]);e.appendChild(t),(0,c.Q_)(this,n).appendChild(e)}l.R.propNoWrite(this,"langCharElem")}_addToDom(e){e.appendChild((0,c.Q_)(this,n))}_setOccupant(e,t){super._setOccupant(e,t),this.langCharElem.parentElement.insertAdjacentElement("beforebegin",t.playerElem)}set freeHealth(e){super.freeHealth=e,this.freeHealth>0?(0,c.Q_)(this,n).dataset[u.Y.Tile.Dataset.HEALTH]=this.freeHealth.toString():delete(0,c.Q_)(this,n).dataset[u.Y.Tile.Dataset.HEALTH]}get freeHealth(){return super.freeHealth}setLangCharSeqPair(e){super.setLangCharSeqPair(e),this.langCharElem.textContent=this.langChar}}n=new WeakMap,l.R.protoNoEnum(f,"_addToDom"),Object.freeze(f),Object.freeze(f.prototype);var b,g=r(601),y=r(415);!function(e){e.getImplementation=t=>e._Constructors[t]}(b||(b={}));class v{_superVisibleGrid(e,t){if(e.tileClass!==f)throw new TypeError("never");t.setAttribute("role","presentation"),t.translate=!1,t.spellcheck=!1;const r=(this.baseElem=l.R.mkEl("div",[g.Z["impl-body"]])).attachShadow({mode:"closed"});t.classList.add(g.Z["impl-body"]),r.appendChild(t),r.appendChild(l.R.mkEl("link",[],{rel:"stylesheet",href:"css-common.css"})),r.appendChild(l.R.mkEl("link",[],{rel:"stylesheet",href:"chunk/game-css.css"}));const s=l.R.mkEl("div",[y.Z["spotlight-short"]]),i=l.R.mkEl("div",[y.Z["spotlight-long"]]);this.spotlightElems=Object.freeze([s,i])}}Object.freeze(v),Object.freeze(v.prototype);var O,E,w=r(477),_=r(157);class T extends w.J5{constructor(e,t){super(e,t),O.set(this,void 0),E.set(this,void 0),Object.defineProperty(this,"prevCoord",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),(0,c.YH)(this,E,this.game.langFrontend.remapFunc)}reset(e){super.reset(e),this.prevCoord=e.coord,(0,c.YH)(this,O,"")}processKeyboardInput(e){this.game.status===h.l.Status.PLAYING&&(this.requestInFlight||(" "===e.key?_.u.equals(this.coord,this.prevCoord)||this.makeMovementRequest(this.game.grid.getUntAwayFrom(this.prevCoord,this.coord),w.J5.MoveType.BOOST):1!==e.key.length||e.repeat||this.seqBufferAcceptKey(e.key)))}seqBufferAcceptKey(e){const t=this.tile.destsFrom().unoccupied.get;if(0!==t.length)if(e){e=(0,c.Q_)(this,E).call(this,e);for(let r=this.seqBuffer+e;r.length;r=r.substring(1)){const e=t.find((e=>e.langSeq.startsWith(r)));if(e)return(0,c.YH)(this,O,r),void(e.langSeq===r&&this.makeMovementRequest(e,w.J5.MoveType.NORMAL))}(0,c.YH)(this,O,""),this.status.visualBell()}else t.find((e=>e.langSeq.startsWith(this.seqBuffer)))||(0,c.YH)(this,O,"")}moveTo(e){(0,c.YH)(this,O,""),this.prevCoord=this.coord,super.moveTo(e)}_notifyWillBecomeCurrent(){this.status._notifyWillBecomeCurrent(this.game.grid.spotlightElems)}get seqBuffer(){return(0,c.Q_)(this,O)}}O=new WeakMap,E=new WeakMap,l.R.protoNoEnum(T,"_notifyWillBecomeCurrent"),Object.freeze(T),Object.freeze(T.prototype);var I,j,C,R=r(865);class A extends R.c{constructor(e,t){super(e,t),I.set(this,void 0),j.set(this,void 0),C.set(this,void 0),(0,c.YH)(this,I,l.R.mkEl("div",[u.Y.General.Class.CENTER_CONTENTS,u.Y.General.Class.STACK_CONTENTS,y.Z.this]));{const e=l.R.mkEl("div",[y.Z.face],{});(0,c.YH)(this,j,this.player.isALocalOperator?[e.animate({filter:["brightness(0.7)","brightness(1.0)"]},{duration:300,easing:"ease-in",delay:1}),e.animate({transform:A.makeWiggleAnimation(10,2)},{duration:270,easing:"ease-out",delay:1})]:[]).forEach((e=>e.pause())),e.appendChild(l.R.mkEl("div",[y.Z["downed-overlay"]])),(0,c.Q_)(this,I).appendChild(e)}}_afterAllPlayersConstruction(){(0,c.YH)(this,C,Object.freeze({playerElem:(0,c.Q_)(this,I),username:this.player.username}))}reset(){super.reset();const e=u.Y.Player.Dataset.DOWNED;(0,c.Q_)(this,I).dataset[e.KEY]=e.VALUES.NO}get immigrantInfo(){return(0,c.Q_)(this,C)}_notifyWillBecomeCurrent(e){const t=this.player.game.currentOperator,r=this.player;r.teamId!==(null==t?void 0:t.teamId)&&r.game.players.forEach((e=>{const t=e.teamId===r.teamId;(0,c.Q_)(e.status,I).dataset[u.Y.Player.Dataset.FACE_SWATCH]=e.isALocalOperator?t?"me":"meOppo":t?"teammate":"opponent"})),e.forEach((e=>{(0,c.Q_)(this,I).appendChild(e)})),r.status.immigrantInfo.playerElem.scrollIntoView(m.Bl)}visualBell(){(0,c.Q_)(this,j),window.requestAnimationFrame((e=>{(0,c.Q_)(this,j).forEach((e=>e.play()))}))}get health(){return super.health}set health(e){const t=this.isDowned;if(super.health=e,t!==this.isDowned){const e=u.Y.Player.Dataset.DOWNED;(0,c.Q_)(this,I).dataset[e.KEY]=this.isDowned?this.player.team.elimOrder?e.VALUES.TEAM:e.VALUES.SELF:e.VALUES.NO}}}I=new WeakMap,j=new WeakMap,C=new WeakMap,function(e){var t,r,s;e.makeWiggleAnimation=function(e,t){const r=Array(2*t).fill(e);return r.unshift(0),r.push(0),r.map(((e,t)=>`translate(${t%2?e:-e}%)`))},t=new WeakMap,r=new WeakMap,s=new WeakMap,e.Card=class{constructor(e){Object.defineProperty(this,"baseElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.set(this,void 0),r.set(this,void 0),s.set(this,void 0),this.baseElem=l.R.mkEl("div",[]),this.baseElem.setAttribute("label","Player");const i=(0,c.YH)(this,t,l.R.mkEl("div",[],{textContent:e}));this.baseElem.appendChild(i)}}}(A||(A={})),l.R.protoNoEnum(A,"_afterAllPlayersConstruction"),Object.freeze(A),Object.freeze(A.prototype);var M=r(518),N=r(692);class P extends N.i.Grid{constructor(e){super(e);const t=l.R.mkEl("div",[]);t.style.setProperty("--euclid2-grid-width",this.dimensions.width.toString());for(const e of this.grid)for(const r of e)r._addToDom(t);this._superVisibleGrid(e,t),t.classList.add(M.Z.grid)}}l.R.applyMixins(P,[v]),Object.freeze(P),Object.freeze(P.prototype);var S=r(344),z=r(254);class D extends z.v.Grid{constructor(e){super(e);const t=void 0;this._superVisibleGrid(e,t),t.classList.add(S.Z.grid)}}l.R.applyMixins(D,[v]),Object.freeze(D),Object.freeze(D.prototype),(()=>{const e=b;e._Constructors=Object.freeze({EUCLID2:P,BEEHIVE:D}),Object.freeze(e)})();class L{constructor(){Object.defineProperty(this,"htmlElements",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_ctorBrowserGame(){this.htmlElements=Object.freeze({grid:this.grid.baseElem,playersBar:document.createElement("div")}),l.R.propNoWrite(this,"htmlElements")}_getGridImplementation(e){return b.getImplementation(e)}_createOperatorPlayer(e){return new T(this,e)}}l.R.protoNoEnum(L,"_getGridImplementation"),Object.freeze(L),Object.freeze(L.prototype)}}]); -//# sourceMappingURL=133.js.map \ No newline at end of file diff --git a/client/chunk/133.js.br b/client/chunk/133.js.br deleted file mode 100644 index ee1daa95..00000000 Binary files a/client/chunk/133.js.br and /dev/null differ diff --git a/client/chunk/133.js.map b/client/chunk/133.js.map deleted file mode 100644 index ba006694..00000000 --- a/client/chunk/133.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/floor/Coord.ts","webpack://snakey3/./src/base/floor/Grid.ts","webpack://snakey3/./src/base/floor/TileGetter.ts","webpack://snakey3/./src/base/floor/impl/Beehive/System.ts","webpack://snakey3/./src/base/floor/impl/Euclid2/System.ts","webpack://snakey3/./src/base/game/events/EventRecordEntry.ts","webpack://snakey3/./src/base/game/events/PlayerActionEvent.ts","webpack://snakey3/./src/base/game/gameparts/GamepartBase.ts","webpack://snakey3/./src/base/game/gameparts/GamepartEvents.ts","webpack://snakey3/./src/base/game/player/PlayerSkeleton.ts","webpack://snakey3/./src/base/game/player/Player.ts","webpack://snakey3/./src/base/game/player/PlayerStatus.ts","webpack://snakey3/./src/base/game/player/Team.ts","webpack://snakey3/./src/base/floor/Tile.ts","webpack://snakey3/./src/base/floor/VisibleTile.ts","webpack://snakey3/./src/base/floor/VisibleGrid.ts","webpack://snakey3/./src/base/game/player/OperatorPlayer.ts","webpack://snakey3/./src/base/game/player/VisiblePlayerStatus.ts","webpack://snakey3/./src/base/floor/impl/Euclid2/Visible.ts","webpack://snakey3/./src/base/floor/impl/Beehive/Visible.ts","webpack://snakey3/./src/base/game/ctormaps/CmapBrowser.ts","webpack://snakey3/./src/client/game/BrowserGame.ts"],"names":["Coord","System","equals","a","b","_equals","Object","freeze","Grid","desc","this","static","gridClass","dimensions","tile","getArea","forEachTile","reset","originCoord","Array","from","Set","sourcesTo","get","flatMap","sourceToTarget","destsFrom","coord","getRandomCoord","getImplementation","coordSys","_Constructors","TileGetter","source","args","_getTileAt","Query","_getTileDestsFrom","_getTileSourcesTo","prototype","contents","seal","filter","isOccupied","Beehive","dash","bash","other","floorDash","Math","floor","floorBash","d","min","scalar","super","grid","undefined","SIZE_LIMITS","consumer","i","row","flat","sort","random","forEach","intendedDest","sourceCoord","avoidCoord","getUntToward","add","sub","origin","radius","dest","playerCounts","dim","shorterSide","fslash","bslash","longerSide","max","width","area","RangeError","sqrt","Euclid2","x","y","round","originOneNorm","abs","originInfNorm","originAxialAlignment","height","newRow","col","newTile","tileClass","push","options","unoccupied","length","at","tileA","TileB","oneNorm","infNorm","best","splice","axialAlignment","shift","trunc","t","l","r","slice","gridRow","avoidSet","map","numMembers","teamSpawnCoords","find","EventRecordEntry","EVENT_ID_REJECT","PlayerActionEvent","INITIAL_REQUEST_ID","EVENT_NAME","BUBBLE","MOVEMENT","Bubble","playerId","lastAcceptedRequestId","playerLastAcceptedRequestId","Movement","destTile","moveType","destModDesc","lastKnownUpdateId","GamepartBase","gameType","impl","_getGridImplementation","gridDimensions","onGameBecomeOver","langFrontend","langId","_playerStatusCtor","playerStatusCtor","players","createPlayers","operators","player","isALocalOperator","teams","teamId","teammateArray","Team","every","team","id","Error","JsUtils","_afterAllPlayersConstruction","setCurrentOperator","Game","gameDesc","playerDescs","Player","playerDesc","familyId","_createOperatorPlayer","_createArtifPlayer","csps","playerCoords","healthCoords","char","langChar","seq","langSeq","freeHealth","health","retval","ser","index","setLangCharSeqPair","nextOperatorIndex","nextOperator","currentOperator","_notifyWillBecomeCurrent","status","_notifyGameNowPlaying","console","info","_notifyGameNowPaused","_notifyGameNowOver","GamepartEvents","eventRecordBitmap","superPromise","fill","eventId","wrappedId","doCheckOperatorSeqBuffer","newCharSeqPair","op","includes","seqBufferAcceptKey","newFreeHealth","clientEventLag","requestInFlight","_recordEvent","executeTileModEvent","tileHealthModDescs","newPlayerHealth","moveTo","PlayerSkeleton","game","noCheckGameOver","TileGetterSource","spawnTile","hostTile","_setOccupant","immigrantInfo","occupantId","evictOccupant","_source","username","avatar","Avatar","GET_RANDOM","type","processMoveRequest","members","CtorArgs","finalize","teamIdCleaner","reduce","prev","originalId","squashedId","pda","pdb","assign","PlayerStatus","newHealth","oldIsDowned","isDowned","elimOrder","numNonStandingTeams","statusBecomeOver","member","ElimOrder","IMMORTAL","STANDING","teamElimOrder","TypeError","Tile","charSeqPair","VisibleTile","coordDesc","OmHooks","setAttribute","charWrap","charElem","langCharElem","appendChild","parent","parentElement","insertAdjacentElement","playerElem","dataset","toString","textContent","VisibleGrid","VisibleGridMixin","tiles","translate","spellcheck","root","baseElem","attachShadow","mode","classList","rel","href","shortSpotlight","longSpotlight","spotlightElems","OperatorPlayer","remapFunc","prevCoord","event","key","makeMovementRequest","getUntAwayFrom","repeat","unts","newSeqBuffer","seqBuffer","substring","possibleTarget","startsWith","visualBell","VisiblePlayerStatus","faceElem","animate","duration","easing","delay","transform","makeWiggleAnimation","anim","pause","DDH","KEY","VALUES","NO","currOperator","otherPlayer","isTeammate","elem","scrollIntoView","window","requestAnimationFrame","time","play","TEAM","SELF","pctX","numWiggles","arr","unshift","n","Card","playerName","name","Euclid2VisibleGrid","gridElem","style","setProperty","_addToDom","_superVisibleGrid","BeehiveVisibleGrid","domGrid","VGr","BrowserGameMixin","htmlElements","playersBar","document","createElement"],"mappings":"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","file":"chunk/133.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/307.js b/client/chunk/307.js deleted file mode 100644 index 24ecd11a..00000000 --- a/client/chunk/307.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 307.js.LICENSE.txt */ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[307],{307:(t,e,n)=>{"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:Function("return this")(),t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=18)}([function(t,e,n){function r(t){if(t)return function(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}(t)}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},r.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+t];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var o=0;o=this._reconnectionAttempts)this.backoff.reset(),i(u(l.prototype),"emit",this).call(this,"reconnect_failed"),this._reconnecting=!1;else{var n=this.backoff.duration();this._reconnecting=!0;var r=setTimeout((function(){e.skipReconnect||(i(u(l.prototype),"emit",t).call(t,"reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open((function(n){n?(e._reconnecting=!1,e.reconnect(),i(u(l.prototype),"emit",t).call(t,"reconnect_error",n)):e.onreconnect()})))}),n);this.subs.push({destroy:function(){clearTimeout(r)}})}}},{key:"onreconnect",value:function(){var t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),i(u(l.prototype),"emit",this).call(this,"reconnect",t)}}])&&o(e.prototype,n),l}(l);e.Manager=b},function(t,e,n){var r=n(9),o=n(23),i=n(27),s=n(28);e.polling=function(t){var e=!1,n=!1,s=!1!==t.jsonp;if("undefined"!=typeof location){var c="https:"===location.protocol,a=location.port;a||(a=c?443:80),e=t.hostname!==location.hostname||a!==t.port,n=t.secure!==c}if(t.xdomain=e,t.xscheme=n,"open"in new r(t)&&!t.forceJSONP)return new o(t);if(!s)throw new Error("JSONP disabled");return new i(t)},e.websocket=s},function(t,e,n){var r=n(22),o=n(2);t.exports=function(t){var e=t.xdomain,n=t.xscheme,i=t.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!e||r))return new XMLHttpRequest}catch(t){}try{if("undefined"!=typeof XDomainRequest&&!n&&i)return new XDomainRequest}catch(t){}if(!e)try{return new(o[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}},function(t,e,n){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n0);return e}function u(){var t=a(+new Date);return t!==r?(s=0,r=t):t+"."+a(s++)}for(;c<64;c++)i[o[c]]=c;u.encode=a,u.decode=function(t){var e=0;for(c=0;c1?e-1:0),r=1;r=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,c=!0,a=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){a=!0,s=t},f:function(){try{c||null==n.return||n.return()}finally{if(a)throw s}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:{};return i(this,f),e=u.call(this),t&&"object"===o(t)&&(n=t,t=null),t?(t=y(t),n.hostname=t.host,n.secure="https"===t.protocol||"wss"===t.protocol,n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=y(n.host).host),e.secure=null!=n.secure?n.secure:"undefined"!=typeof location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=e.secure?"443":"80"),e.hostname=n.hostname||("undefined"!=typeof location?location.hostname:"localhost"),e.port=n.port||("undefined"!=typeof location&&location.port?location.port:e.secure?443:80),e.transports=n.transports||["polling","websocket"],e.readyState="",e.writeBuffer=[],e.prevBufferLen=0,e.opts=r({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,jsonp:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{}},n),e.opts.path=e.opts.path.replace(/\/$/,"")+"/","string"==typeof e.opts.query&&(e.opts.query=d.decode(e.opts.query)),e.id=null,e.upgrades=null,e.pingInterval=null,e.pingTimeout=null,e.pingTimeoutTimer=null,e.open(),e}return e=f,(n=[{key:"createTransport",value:function(t){var e=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}(this.opts.query);e.EIO=h.protocol,e.transport=t,this.id&&(e.sid=this.id);var n=r({},this.opts.transportOptions[t],this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new p[t](n)}},{key:"open",value:function(){var t;if(this.opts.rememberUpgrade&&f.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout((function(){e.emit("error","No transports available")}),0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)}},{key:"setTransport",value:function(t){var e=this;this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",(function(){e.onDrain()})).on("packet",(function(t){e.onPacket(t)})).on("error",(function(t){e.onError(t)})).on("close",(function(){e.onClose("transport close")}))}},{key:"probe",value:function(t){var e=this.createTransport(t,{probe:1}),n=!1,r=this;function o(){if(r.onlyBinaryUpgrades){var t=!this.supportsBinary&&r.transport.supportsBinary;n=n||t}n||(e.send([{type:"ping",data:"probe"}]),e.once("packet",(function(t){if(!n)if("pong"===t.type&&"probe"===t.data){if(r.upgrading=!0,r.emit("upgrading",e),!e)return;f.priorWebsocketSuccess="websocket"===e.name,r.transport.pause((function(){n||"closed"!==r.readyState&&(p(),r.setTransport(e),e.send([{type:"upgrade"}]),r.emit("upgrade",e),e=null,r.upgrading=!1,r.flush())}))}else{var o=new Error("probe error");o.transport=e.name,r.emit("upgradeError",o)}})))}function i(){n||(n=!0,p(),e.close(),e=null)}function s(t){var n=new Error("probe error: "+t);n.transport=e.name,i(),r.emit("upgradeError",n)}function c(){s("transport closed")}function a(){s("socket closed")}function u(t){e&&t.name!==e.name&&i()}function p(){e.removeListener("open",o),e.removeListener("error",s),e.removeListener("close",c),r.removeListener("close",a),r.removeListener("upgrading",u)}f.priorWebsocketSuccess=!1,e.once("open",o),e.once("error",s),e.once("close",c),this.once("close",a),this.once("upgrading",u),e.open()}},{key:"onOpen",value:function(){if(this.readyState="open",f.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause)for(var t=0,e=this.upgrades.length;t0&&void 0!==arguments[0]?arguments[0]:{};return o(t,{xd:this.xd,xs:this.xs},this.opts),new w(this.uri(),t)}},{key:"doWrite",value:function(t,e){var n=this.request({method:"POST",data:t}),r=this;n.on("success",e),n.on("error",(function(t){r.onError("xhr post error",t)}))}},{key:"doPoll",value:function(){var t=this.request(),e=this;t.on("data",(function(t){e.onData(t)})),t.on("error",(function(t){e.onError("xhr poll error",t)})),this.pollXhr=t}}]),n}(y),w=function(t){a(n,t);var e=f(n);function n(t,r){var o;return i(this,n),(o=e.call(this)).opts=r,o.method=r.method||"GET",o.uri=t,o.async=!1!==r.async,o.data=void 0!==r.data?r.data:null,o.create(),o}return c(n,[{key:"create",value:function(){var t=v(this.opts,"agent","enablesXDR","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized");t.xdomain=!!this.opts.xd,t.xscheme=!!this.opts.xs;var e=this.xhr=new h(t),r=this;try{e.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders)for(var o in e.setDisableHeaderCheck&&e.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(o)&&e.setRequestHeader(o,this.opts.extraHeaders[o])}catch(t){}if("POST"===this.method)try{e.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{e.setRequestHeader("Accept","*/*")}catch(t){}"withCredentials"in e&&(e.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(e.timeout=this.opts.requestTimeout),this.hasXDR()?(e.onload=function(){r.onLoad()},e.onerror=function(){r.onError(e.responseText)}):e.onreadystatechange=function(){4===e.readyState&&(200===e.status||1223===e.status?r.onLoad():setTimeout((function(){r.onError("number"==typeof e.status?e.status:0)}),0))},e.send(this.data)}catch(t){return void setTimeout((function(){r.onError(t)}),0)}"undefined"!=typeof document&&(this.index=n.requestsCount++,n.requests[this.index]=this)}},{key:"onSuccess",value:function(){this.emit("success"),this.cleanup()}},{key:"onData",value:function(t){this.emit("data",t),this.onSuccess()}},{key:"onError",value:function(t){this.emit("error",t),this.cleanup(!0)}},{key:"cleanup",value:function(t){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=m:this.xhr.onreadystatechange=m,t)try{this.xhr.abort()}catch(t){}"undefined"!=typeof document&&delete n.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var t=this.xhr.responseText;null!==t&&this.onData(t)}},{key:"hasXDR",value:function(){return"undefined"!=typeof XDomainRequest&&!this.xs&&this.enablesXDR}},{key:"abort",value:function(){this.cleanup()}}]),n}(d);function _(){for(var t in w.requests)w.requests.hasOwnProperty(t)&&w.requests[t].abort()}w.requestsCount=0,w.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",_):"function"==typeof addEventListener&&addEventListener("onpagehide"in b?"pagehide":"unload",_,!1)),t.exports=k,t.exports.Request=w},function(t,e,n){var r=n(11).PACKET_TYPES,o="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),i="function"==typeof ArrayBuffer,s=function(t,e){var n=new FileReader;return n.onload=function(){var t=n.result.split(",")[1];e("b"+t)},n.readAsDataURL(t)};t.exports=function(t,e,n){var c,a=t.type,u=t.data;return o&&u instanceof Blob?e?n(u):s(u,n):i&&(u instanceof ArrayBuffer||(c=u,"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(c):c&&c.buffer instanceof ArrayBuffer))?e?n(u instanceof ArrayBuffer?u:u.buffer):s(new Blob([u]),n):n(r[a]+(u||""))}},function(t,e,n){var r,o=n(11),i=o.PACKET_TYPES_REVERSE,s=o.ERROR_PACKET;"function"==typeof ArrayBuffer&&(r=n(26));var c=function(t,e){if(r){var n=r.decode(t);return a(n,e)}return{base64:!0,data:t}},a=function(t,e){switch(e){case"blob":return t instanceof ArrayBuffer?new Blob([t]):t;case"arraybuffer":default:return t}};t.exports=function(t,e){if("string"!=typeof t)return{type:"message",data:a(t,e)};var n=t.charAt(0);return"b"===n?{type:"message",data:c(t.substring(1),e)}:i[n]?t.length>1?{type:i[n],data:t.substring(1)}:{type:i[n]}:s}},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),r=0;r>2],i+=t[(3&r[n])<<4|r[n+1]>>4],i+=t[(15&r[n+1])<<2|r[n+2]>>6],i+=t[63&r[n+2]];return o%3==2?i=i.substring(0,i.length-1)+"=":o%3==1&&(i=i.substring(0,i.length-2)+"=="),i},e.decode=function(t){var e,r,o,i,s,c=.75*t.length,a=t.length,u=0;"="===t[t.length-1]&&(c--,"="===t[t.length-2]&&c--);var f=new ArrayBuffer(c),p=new Uint8Array(f);for(e=0;e>4,p[u++]=(15&o)<<4|i>>2,p[u++]=(3&i)<<6|63&s;return f}}()},function(t,e,n){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){for(var n=0;n';n=document.createElement(t)}catch(t){(n=document.createElement("iframe")).name=r.iframeId,n.src="javascript:0"}n.id=r.iframeId,r.form.appendChild(n),r.iframe=n}this.form.action=this.uri(),a(),t=t.replace(d,"\\\n"),this.area.value=t.replace(y,"\\n");try{this.form.submit()}catch(t){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===r.iframe.readyState&&c()}:this.iframe.onload=c}},{key:"supportsBinary",get:function(){return!1}}])&&o(e.prototype,n),a}(l);t.exports=b},function(t,e,n){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){for(var n=0;n0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=n,n.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-n:t+n}return 0|Math.min(t,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(t){this.ms=t},n.prototype.setMax=function(t){this.max=t},n.prototype.setJitter=function(t){this.jitter=t}}])}}]); -//# sourceMappingURL=307.js.map \ No newline at end of file diff --git a/client/chunk/307.js.LICENSE.txt b/client/chunk/307.js.LICENSE.txt deleted file mode 100644 index 6bbf2a81..00000000 --- a/client/chunk/307.js.LICENSE.txt +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Socket.IO v3.0.4 - * (c) 2014-2020 Guillermo Rauch - * Released under the MIT License. - */ diff --git a/client/chunk/307.js.br b/client/chunk/307.js.br deleted file mode 100644 index acc90ca5..00000000 Binary files a/client/chunk/307.js.br and /dev/null differ diff --git a/client/chunk/307.js.map b/client/chunk/307.js.map deleted file mode 100644 index 16a85ae9..00000000 --- a/client/chunk/307.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://snakey3/./node_modules/.pnpm/socket.io-client@3.0.4/node_modules/socket.io-client/dist/socket.io.min.js"],"names":["self","window","g","Function","module","exports","t","e","n","r","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","on","addEventListener","this","_callbacks","push","once","off","apply","arguments","fn","removeListener","removeAllListeners","removeEventListener","length","splice","emit","Array","slice","listeners","hasListeners","String","fromCharCode","protocol","encodePacket","encodePayload","forEach","join","decodePacket","decodePayload","split","type","iterator","constructor","configurable","writable","key","setPrototypeOf","__proto__","Reflect","construct","sham","Proxy","Date","toString","a","ReferenceError","getPrototypeOf","u","f","TypeError","opts","query","readyState","socket","Error","description","doOpen","doClose","onClose","write","binaryType","onPacket","encode","encodeURIComponent","decode","decodeURIComponent","getOwnPropertyDescriptor","Decoder","Encoder","PacketType","h","y","CONNECT","DISCONNECT","EVENT","ACK","CONNECT_ERROR","BINARY_EVENT","BINARY_ACK","v","hasBinary","encodeAsString","encodeAsBinary","attachments","nsp","id","data","JSON","stringify","deconstructPacket","packet","buffers","unshift","b","decodeString","reconstructor","isBinary","base64","takeBinaryData","Number","charAt","substring","parse","substr","isPayloadValid","finishedReconstruction","isArray","reconPack","reconstructPacket","indexOf","replace","exec","source","host","authority","ipv6uri","pathNames","path","queryKey","Manager","nsps","subs","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","min","max","jitter","timeout","_readyState","uri","parser","encoder","decoder","_autoConnect","autoConnect","open","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","_reconnecting","attempts","reconnect","engine","skipReconnect","onopen","cleanup","maybeReconnectOnOpen","destroy","setTimeout","close","clearTimeout","add","Socket","keys","active","_close","options","shift","reset","duration","onreconnect","polling","jsonp","location","port","hostname","secure","xdomain","xscheme","forceJSONP","websocket","enablesXDR","XMLHttpRequest","XDomainRequest","concat","poll","doPoll","onOpen","doWrite","timestampRequests","timestampParam","supportsBinary","sid","b64","ping","pong","message","upgrade","noop","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","Math","floor","pick","reduce","name","from","test","done","next","return","freeze","connect","connect_error","disconnect","disconnecting","newListener","ids","acks","receiveBuffer","sendBuffer","flags","io","connected","disconnected","auth","subEvents","compress","pop","transport","volatile","_packet","onconnect","onevent","onack","ondisconnect","ack","emitEvent","_anyListeners","emitBuffered","onclose","_destroy","ArrayBuffer","Blob","File","isView","buffer","toJSON","managers","url","forceNew","multiplex","href","Transport","transports","assign","writeBuffer","prevBufferLen","agent","withCredentials","rememberUpgrade","rejectUnauthorized","perMessageDeflate","threshold","transportOptions","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","EIO","priorWebsocketSuccess","createTransport","setTransport","onDrain","onError","probe","onlyBinaryUpgrades","send","upgrading","pause","flush","onHandshake","resetPingTimeout","sendPacket","code","filterUpgrades","pingIntervalTimer","responseType","k","xd","xs","forceBase64","w","request","method","onData","pollXhr","async","xhr","extraHeaders","setDisableHeaderCheck","setRequestHeader","requestTimeout","hasXDR","onload","onLoad","onerror","responseText","onreadystatechange","status","document","index","requestsCount","requests","onSuccess","abort","_","attachEvent","Request","FileReader","result","readAsDataURL","Uint8Array","charCodeAt","___eio","j","script","parentNode","removeChild","form","iframe","createElement","src","getElementsByTagName","insertBefore","head","body","appendChild","navigator","userAgent","iframeId","className","style","position","top","left","target","setAttribute","area","action","submit","WebSocket","usingBrowserWebSocket","defaultBinaryType","product","toLowerCase","check","protocols","headers","ws","addEventListeners","onmessage","Buffer","byteLength","MozWebSocket","_placeholder","num","ms","factor","pow","random"],"mappings":"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","file":"chunk/307.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/5.js b/client/chunk/5.js new file mode 100644 index 00000000..ed2dd5d5 --- /dev/null +++ b/client/chunk/5.js @@ -0,0 +1,2 @@ +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[5],{810:(t,e,s)=>{"use strict";s.d(e,{r:()=>a});var r,i=s(164),o=s(139);class a{constructor(t){Object.freeze(t),this.static=t.Grid,this.dimensions=t.dimensions,this.area=t.Grid.getArea(t.dimensions),i.R.propNoWrite(this,"static","dimensions")}reset(){this.forEach((t=>{this.write(t.coord,{occId:o.J5.Id.NULL,char:"",seq:"",health:0})}))}getAllAltDestsThan(t){return Array.from(new Set(this.tileSourcesTo(t).flatMap((t=>this.tileDestsFrom(t.coord)))))}getRandomCoord(){return this.static.getRandomCoord(this.dimensions)}static getSpawnCoords(t,e){const s=new Set;return t.map((t=>{const r=[];for(;t>0;){let i;do{i=this.getRandomCoord(e)}while(s.has(i));r.push(i),s.add(i),t--}return r.freeze()})).freeze()}}(r=a||(a={}))._Constructors={W_EUCLID2:void 0,BEEHIVE:void 0},r.getImplementation=t=>r._Constructors[t],Object.freeze(a),Object.freeze(a.prototype)},216:(t,e,s)=>{"use strict";s.d(e,{v:()=>r});var r,i=s(164),o=s(810);class a{constructor(t){this.dash=t.dash,this.bash=t.bash,Object.freeze(this)}toCoord(){}round(){const t=Math.floor(this.dash),e=Math.floor(this.bash),s=t-this.dash,r=e-this.bash;return s>2*r?new a({dash:t+1,bash:e}):s<.5*r?new a({dash:t,bash:e+1}):Math.min(s,r)>.5?new a({dash:t+1,bash:e+1}):new a({dash:t,bash:e})}add(t){return new a({dash:this.dash+t.dash,bash:this.bash+t.bash})}sub(t){return new a({dash:this.dash-t.dash,bash:this.bash-t.bash})}mul(t){return new a({dash:t*this.dash,bash:t*this.bash})}}Object.freeze(a),Object.freeze(a.prototype),function(t){const e=class extends o.r{constructor(t){super(t),this.grid=(void 0).freeze(),new.target===e&&Object.seal(this)}write(t,e){}forEach(t){let e=0;for(const s of this.grid)for(const r of s)t(r,e++)}forEachShuffled(t){}getUntToward(t,e){}getUntAwayFrom(t,e){}getAllAltDestsThan(t){return this.tileDestsFrom(t,2)}getRandomCoordAround(t,e){}dist(t,e){}tileAt(t){}tileDestsFrom(t,e=1){return[].freeze()}tileSourcesTo(t,e=1){}static getArea(t){const e=Math.min(t.fslash,t.bslash),s=Math.max(t.fslash,t.bslash),r=-1+t.dash+e;let i=2*e*(t.dash+r);return i+=(s-e-1)*r,i}static getLatticePatchDiameter(t){if(t<.25)throw new RangeError("determinant of a radical will be strictly negative.");return 1+(-3+Math.sqrt(9-12*(1-t)))/6*2}static getRandomCoord(t){return new a(void 0).toCoord()}};let s=e;s.ambiguityThreshold=18,s.SIZE_LIMITS=i.R.deepFreeze({dash:{min:10,max:50},bslash:{min:10,max:50},fslash:{min:10,max:50}}),s.sizeLimits=e.SIZE_LIMITS,t.Grid=s,i.R.protoNoEnum(s,"tileAt","tileDestsFrom","tileSourcesTo"),Object.freeze(s),Object.freeze(s.prototype)}(r||(r={})),Object.freeze(r)},33:(t,e,s)=>{"use strict";s.d(e,{K:()=>r});var r,i=s(164),o=s(810),a=s(139);class h{constructor(t,e){this.x=t,this.y=e,Object.freeze(this)}static from(t,e){return new h(e%t.width,Math.floor(e/t.width))}toCoord(t){return this.y*t.width+this.x}static distX(t,e,s){let r=Math.abs(e.x-s.x);return rMath.random()-.5)).freeze();for(const s of e)t(this._grid[s],s)}getUntToward(t,e){const s=this.tileDestsFrom(e).filter((t=>t.occId===a.J5.Id.NULL)).map((e=>{const s=this.iacCache[e.coord],r=this.iacCache[t];return{tile:e,iac:s,infNorm:h.infNorm(this.dimensions,s,r).norm,oneNorm:h.oneNorm(this.dimensions,s,r).norm}}));if(0===s.length)return this.tileAt(e);s.sort(((t,e)=>t.infNorm-e.infNorm)),s.length=3,s.sort(((t,e)=>t.oneNorm-e.oneNorm));const r=s[0];for(let t=1;tr.infNorm){s.splice(t);break}if(1===s.length)return r.tile;if(r.infNorm===r.oneNorm){if(h.axialAlignment(this.dimensions,e,t)>.5)return r.tile;s.shift()}return s[Math.floor(s.length*Math.random())].tile}getUntAwayFrom(t,e){const s=this.iacCache[t],r=this.iacCache[e].iSub(s).mod(this.dimensions);return this._grid[r.toCoord(this.dimensions)]}getAllAltDestsThan(t){return this.tileDestsFrom(t,2)}getRandomCoordAround(t,e){const s=this.iacCache[t];return new h(s.x+Math.trunc(2*e*(Math.random()-.5)),s.y+Math.trunc(2*e*(Math.random()-.5))).mod(this.dimensions).toCoord(this.dimensions)}dist(t,e){return h.infNorm(this.dimensions,this.iacCache[t],this.iacCache[e]).norm}tileAt(t){return this._grid[t]}tileDestsFrom(t,e=1){const s=this.iacCache[t];let r=!1,i=!1;const o=this.dimensions.width,a=this.dimensions.height;let h=s.y-e;h<0&&(h+=a,i=!0);let n=s.x-e;n<0&&(n+=o,r=!0);let c=s.y+e+1;c>a&&(c-=a,i=!0);let d=s.x+e+1;d>o&&(d-=o,r=!0);const l=[];if(r){const t=h*o;l.push(...this._grid.slice(t,t+d)),i&&l.push(...this._grid.slice(0,d))}const m=i?a:c,u=2*e+1;for(let t=h;t{"use strict";s.d(e,{T:()=>r});var r,i,o=s(164);(i=r||(r={}))._Constructors={W_EUCLID2:void 0,BEEHIVE:void 0},i.getImplementation=t=>i._Constructors[t],i._mkExtensionProps=function(t){t.setAttribute("role","presentation"),t.translate=!1,t.spellcheck=!1;const e=o.R.html("div"),s=e.attachShadow({mode:"closed"});t.classList.add("_2N_eu47KtEpZi5d2CowzkM"),s.appendChild(t),o.R.Web.adoptStyleSheet(s,"css-common.css"),o.R.Web.adoptStyleSheet(s,"chunk/game-css.css");const r=o.R.html("div",["_2BjCVl5m4MP1W-F8Z9wQNx"]),i=o.R.html("div",["_1QzcWwOXzKGRJ08E7Atc6o"]),a=Object.freeze([r,i]);return Object.freeze({baseElem:e,spotlightElems:a})},Object.freeze(r)},61:(t,e,s)=>{"use strict";s.d(e,{Z:()=>f});var r=s(52),i=s(164),o=s(139),a=s(33);var h,n=(t,e,s)=>{if(!e.has(t))throw TypeError("Cannot "+s)};const c=.4;class d{constructor(t){this.body=i.R.svg("rect"),this._char=i.R.svg("text");const e=2.06*t.x+c,s=2.06*t.y+c;this.body.classList.add("_3bZJ4fE4oboFoXnIoxvMoC");const r=this.body.setAttributeNS.bind(this.body,null);r("x",e+"em"),r("y",s+"em"),this._char.classList.add("_1RIAliHGAPUZnmLFKbeJR0"),this._char.setAttributeNS(null,"x",e+.83+"em"),this._char.setAttributeNS(null,"y",s+.83+"em")}set occId(t){t===o.J5.Id.NULL?delete this.body.dataset.occId:this.body.dataset.occId=t.toString()}set health(t){t>0?this.body.dataset.health=t.toString():delete this.body.dataset.health}set char(t){this._char.textContent=t}}Object.freeze(d),Object.freeze(d.prototype);class l extends a.K.Grid{constructor(t){super(t),h.set(this,void 0);const e=i.R.svg("svg",["_3sIxemHPd1QgnRpmKBX9zJ"]),s=t.dimensions;e.setAttribute("height",2.06*s.height+c+"em"),e.setAttribute("width",2.06*s.width+c+"em");const o=[];var a,l;this.forEach((t=>{const s=new d(this.iacCache[t.coord]);o.push(s),e.appendChild(s.body),e.appendChild(s._char)})),l=o,n(this,a=h,"write to private field"),a.set(this,l);const m=i.R.html("div");m.appendChild(e),Object.assign(this,r.T._mkExtensionProps(m)),Object.seal(this)}write(t,e){super.write(t,e);const s=(r=this,o=h,n(r,o,"read from private field"),o.get(r))[t];var r,o;i.R.hasProp(e,"occId")&&(s.occId=e.occId),i.R.hasProp(e,"health")&&(s.health=e.health),i.R.hasProp(e,"char")&&(s.char=e.char)}}h=new WeakMap,Object.freeze(l),Object.freeze(l.prototype);var m=s(216);class u extends m.v.Grid{constructor(t){super(t),Object.assign(this,r.T._mkExtensionProps(void 0)),Object.seal(this)}write(t,e){}}Object.freeze(u),Object.freeze(u.prototype);const f=()=>{const t=r.T;Object.freeze(Object.assign(t._Constructors,{W_EUCLID2:l,BEEHIVE:u})),Object.freeze(t)}},702:(t,e,s)=>{"use strict";s.d(e,{S:()=>f});var r,i,o,a=s(164),h=s(892),n=s(139),c=s(783),d=s(56),l=(t,e,s)=>{if(!e.has(t))throw TypeError("Cannot "+s)},m=(t,e,s)=>(l(t,e,"read from private field"),s?s.call(t):e.get(t)),u=(t,e,s,r)=>(l(t,e,"write to private field"),r?r.call(t,s):e.set(t,s),s);class f{constructor(t){r.set(this,void 0),i.set(this,void 0),o.set(this,void 0);const{impl:e,desc:s,operatorIds:h}=t;Object.freeze(s),Object.freeze(s.players),s.players.forEach((t=>Object.freeze(t))),Object.freeze(h);const c=e.gridClassLookup(s.coordSys);this.grid=new c({Grid:c,system:s.coordSys,dimensions:s.gridDimensions,players:s.players}),u(this,r,e.onGameBecomeOver),this.langFrontend=n.Uo.GET_FRONTEND_DESC_BY_ID(s.langId);const l=this._createPlayers(s,e,h);this.players=l.players,this.operators=l.operators;{const t=[];this.players.forEach((e=>{t[e.teamId]||(t[e.teamId]=[]),t[e.teamId].push(e)})),this.teams=t.map(((t,e)=>new d.S(e,t)))}a.R.propNoWrite(this,"grid","langFrontend","players","operators","teams"),this.players.forEach((t=>t.onTeamsBootstrapped())),this.setCurrentOperator(0)}reset(){this.grid.reset(),u(this,o,h.l.Status.PAUSED)}_createPlayers(t,e,s){const r=t.players.map((t=>t.familyId===c.J.Family.HUMAN?s.includes(t.playerId)?new e.OperatorPlayer(this,t):new c.J(this,t):e.RobotPlayer(this,t))).freeze();return Object.freeze({players:r,operators:s.map((t=>r[t])).freeze()})}deserializeResetState(t){a.R.deepFreeze(t),this.grid.forEach(((e,s)=>{this.grid.write(e.coord,t.csps[s])})),t.playerCoords.forEach(((t,e)=>{this.players[e].reset(t)}))}get currentOperator(){return m(this,i)}setCurrentOperator(t){const e=this.operators[t];if(void 0===e)throw new Error("never");this.currentOperator!==e&&u(this,i,e)}get status(){return m(this,o)}statusBecomePlaying(){if(this.status!==h.l.Status.PLAYING){if(this.status!==h.l.Status.PAUSED)throw new Error("Can only resume a game that is currently paused.");this.players.forEach((t=>{t.onGamePlaying()})),u(this,o,h.l.Status.PLAYING)}else console.info("[statusBecomePlaying]: Game is already playing")}statusBecomePaused(){this.status!==h.l.Status.PAUSED?this.status!==h.l.Status.OVER&&(this.players.forEach((t=>{t.onGamePaused()})),u(this,o,h.l.Status.PAUSED)):console.info("[statusBecomePaused]: Game is already paused")}statusBecomeOver(){this.status!==h.l.Status.OVER&&(this.players.forEach((t=>{t.onGameOver()})),u(this,o,h.l.Status.OVER),m(this,r).call(this),console.info("game is over!"))}commitTileMods(t,e,s=!0){const r=this.grid.tileAt(t);void 0!==e.seq&&s&&this.operators.forEach((t=>{this.grid.tileDestsFrom(t.coord).includes(r)&&t.seqBufferAcceptKey(void 0)})),this.grid.write(t,e)}commitStateChange(t,e){a.R.deepFreeze(t);const s=this.players[t.initiator];void 0===t.rejectId?(Object.entries(t.tiles).freeze().forEach((([t,e])=>{this.commitTileMods(parseInt(t),e)})),Object.entries(t.players).freeze().forEach((([t,e])=>{const s=this.players[parseInt(t)];s.reqBuffer.acceptOldest(),s.health=e.health,void 0!==e.coord&&(this.grid.write(s.coord,{occId:c.J.Id.NULL}),this.grid.write(e.coord,{occId:s.playerId}),s.setCoord(e.coord))}))):s.reqBuffer.reject(t.rejectId,s.coord)}}r=new WeakMap,i=new WeakMap,o=new WeakMap,a.R.protoNoEnum(f,"_createPlayers"),Object.freeze(f),Object.freeze(f.prototype)},46:(t,e,s)=>{"use strict";s.d(e,{i:()=>d});var r,i,o=s(892),a=s(783),h=(t,e,s)=>{if(!e.has(t))throw TypeError("Cannot "+s)},n=(t,e,s)=>(h(t,e,"read from private field"),s?s.call(t):e.get(t)),c=(t,e,s,r)=>(h(t,e,"write to private field"),r?r.call(t,s):e.set(t,s),s);class d extends a.J{constructor(t,e){super(t,e),r.set(this,void 0),i.set(this,void 0),Object.seal(this),c(this,i,this.game.langFrontend.remapFunc)}reset(t){super.reset(t),c(this,r,"")}get seqBuffer(){return n(this,r)}processKeyboardInput(t){this.game.status!==o.l.Status.PLAYING||this.reqBuffer.isFull||(" "===t.key?this.coord!==this.prevCoord&&this.makeMovementRequest(this.game.grid.getUntAwayFrom(this.prevCoord,this.coord).coord,a.J.MoveType.BOOST):1!==t.key.length||t.repeat||this.seqBufferAcceptKey(t.key))}seqBufferAcceptKey(t){const e=this.game.grid.tileDestsFrom(this.reqBuffer.predictedCoord).filter((t=>t.occId===a.J.Id.NULL));if(0!==e.length)if(void 0!==t){t=n(this,i).call(this,t);for(let s=this.seqBuffer+t;s.length;s=s.substring(1)){const t=e.find((t=>t.seq.startsWith(s)));if(void 0!==t)return c(this,r,s),void(t.seq===s&&this.makeMovementRequest(t.coord,"NORMAL"))}c(this,r,"")}else e.find((t=>t.seq.startsWith(this.seqBuffer)))||c(this,r,"")}setCoord(t){c(this,r,""),super.setCoord(t)}}r=new WeakMap,i=new WeakMap,Object.freeze(d),Object.freeze(d.prototype)}}]); +//# sourceMappingURL=5.js.map \ No newline at end of file diff --git a/client/chunk/5.js.br b/client/chunk/5.js.br new file mode 100644 index 00000000..7fa72913 Binary files /dev/null and b/client/chunk/5.js.br differ diff --git a/client/chunk/5.js.map b/client/chunk/5.js.map new file mode 100644 index 00000000..dc1f1e42 --- /dev/null +++ b/client/chunk/5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://capswalk/./src/base/floor/Grid.ts","webpack://capswalk/./src/base/floor/impl/Beehive/System.ts","webpack://capswalk/./src/base/floor/impl/Euclid2/System.ts","webpack://capswalk/./src/base/floor/visible/VisibleGrid.ts","webpack://capswalk/./src/base/floor/visible/grid.m.css?f02d","webpack://capswalk/./src/base/game/player/player.m.css?26a8","webpack://capswalk/./src/base/floor/impl/Euclid2/Visible.ts","webpack://capswalk/./src/base/floor/impl/Euclid2/style.m.css?1fbd","webpack://capswalk/./src/base/floor/impl/Beehive/Visible.ts","webpack://capswalk/./src/base/game/ctormaps/CmapBrowser.ts","webpack://capswalk/./src/base/game/gameparts/GameMirror.ts","webpack://capswalk/./src/base/game/player/OperatorPlayer.ts"],"names":["desc","Object","freeze","this","static","Grid","dimensions","area","getArea","forEach","tile","write","coord","occId","char","seq","health","originCoord","Array","from","Set","tileSourcesTo","flatMap","sourceToTarget","tileDestsFrom","getRandomCoord","teamSizes","avoidSet","map","numMembers","teamSpawnCoords","has","push","add","_Constructors","getImplementation","coordSys","prototype","Beehive","IAC","dash","bash","floorDash","Math","floor","floorBash","d","b","min","other","scalar","super","grid","seal","changes","consumer","i","row","intendedDest","sourceCoord","_avoidCoord","_sourceCoord","origin","radius","source","dest","dim","shorterSide","fslash","bslash","longerSide","max","width","RangeError","sqrt","toCoord","ambiguityThreshold","SIZE_LIMITS","sizeLimits","WrappedEuclid2","x","y","i1","i2","dist","abs","wrap","height","dX","distX","dY","distY","norm","wrapX","wrapY","_i1","_i2","sub","_grid","iacCache","assign","create","indices","sort","a","random","index","options","filter","tileIac","destIac","iac","infNorm","oneNorm","length","tileAt","ta","tb","best","splice","axialAlignment","shift","avoid","iSub","mod","_origin","trunc","W","H","t","l","r","dests","_t","slice","b1","sliceLength","begin","VisibleGrid","_mkExtensionProps","tiles","setAttribute","translate","spellcheck","base","JsUtils","root","attachShadow","mode","classList","appendChild","shortSpotlight","longSpotlight","spotlightElems","baseElem","GAP","VisibleTile","body","_char","xOffset","yOffset","bodyAttr","setAttributeNS","bind","WIDTH","playerId","dataset","toString","textContent","Euclid2VisibleGrid","System","svg","vTile","wrapper","BeehiveVisibleGrid","VGr","args","impl","operatorIds","players","gridClass","gridClassLookup","system","gridDimensions","onGameBecomeOver","langFrontend","langId","_createPlayers","operators","teams","player","teamId","teammateArray","onTeamsBootstrapped","setCurrentOperator","reset","gameDesc","implArgs","pDesc","familyId","includes","OperatorPlayer","RobotPlayer","ser","csps","playerCoords","nextOperatorIndex","nextOperator","Error","currentOperator","status","onGamePlaying","console","info","onGamePaused","onGameOver","doCheckOperatorSeqBuffer","op","seqBufferAcceptKey","socket","initiator","rejectId","entries","commitTileMods","parseInt","pid","reqBuffer","acceptOldest","setCoord","reject","GameMirror","game","remapFunc","event","isFull","key","prevCoord","makeMovementRequest","getUntAwayFrom","repeat","unts","predictedCoord","newSeqBuffer","seqBuffer","substring","possibleTarget","find","startsWith"],"mappings":"qHAyJiB,E,kBA/IV,QAaI,YAAYA,GACrBC,OAAOC,OAAOF,GACdG,KAAKC,OAASJ,EAAKK,KACnBF,KAAKG,WAAaN,EAAKM,WACvBH,KAAKI,KAAOP,EAAKK,KAAKG,QAAQR,EAAKM,YACnC,gBAAoBH,KAAiB,SAAU,cAIzC,QACNA,KAAKM,SAASC,IACbP,KAAKQ,MAAMD,EAAKE,MAAO,CACtBC,MAAO,aACPC,KAAM,GAAIC,IAAK,GAAIC,OAAQ,OAyDvB,mBAAmBC,GACzB,OAAOC,MAAMC,KAAK,IAAIC,IACrBjB,KAAKkB,cAAcJ,GACjBK,SAASC,GAAmBpB,KAAKqB,cAAcD,EAAeX,WAI3D,iBACN,OAAOT,KAAKC,OAAOqB,eAAetB,KAAKG,YAAA,sBAiCvCoB,EACApB,GAEA,MAAMqB,EAAW,IAAIP,IACrB,OAAOM,EAAUE,KAAKC,IACrB,MAAMC,EAAgC,GACtC,KAAOD,EAAa,GAAG,CACtB,IAAIjB,EACJ,GACCA,EAAST,KAAsCsB,eAAenB,SACtDqB,EAASI,IAAInB,IACtBkB,EAAgBE,KAAKpB,GACrBe,EAASM,IAAIrB,GACbiB,IAED,OAAOC,EAAgB5B,YACrBA,WAGY,EAAAG,MAAA,KAgFH6B,cAET,gBAEY,eACF,GAOD,EAAAC,kBAA6CC,GAI5C,EAAAF,cAAcE,GAiB7BnC,OAAOC,OAAOG,GACdJ,OAAOC,OAAOG,EAAKgC,Y,gDClLFC,E,kBAjFV,MAAMC,EAQL,YAAYvC,GAClBG,KAAKqC,KAAOxC,EAAKwC,KACjBrC,KAAKsC,KAAOzC,EAAKyC,KACjBxC,OAAOC,OAAOC,MAER,WAKA,QAGN,MAAMuC,EAAYC,KAAKC,MAAMzC,KAAKqC,MAC5BK,EAAYF,KAAKC,MAAMzC,KAAKsC,MAC5BK,EAAIJ,EAAYvC,KAAKqC,KACrBO,EAAIF,EAAY1C,KAAKsC,KAC3B,OAAIK,EAAI,EAAIC,EACJ,IAAIR,EAAI,CAAEC,KAAME,EAAU,EAAGD,KAAMI,IAChCC,EAAI,GAAMC,EACb,IAAIR,EAAI,CAAEC,KAAME,EAAaD,KAAMI,EAAU,IAC1CF,KAAKK,IAAIF,EAAGC,GAAK,GACpB,IAAIR,EAAI,CAAEC,KAAME,EAAU,EAAGD,KAAMI,EAAU,IAE7C,IAAIN,EAAI,CAAEC,KAAME,EAAaD,KAAMI,IAGrC,IAAII,GACV,OAAO,IAAIV,EAAI,CACdC,KAAMrC,KAAKqC,KAAOS,EAAMT,KACxBC,KAAMtC,KAAKsC,KAAOQ,EAAMR,OAGnB,IAAIQ,GACV,OAAO,IAAIV,EAAI,CACdC,KAAMrC,KAAKqC,KAAOS,EAAMT,KACxBC,KAAMtC,KAAKsC,KAAOQ,EAAMR,OAGnB,IAAIS,GACV,OAAO,IAAIX,EAAI,CACdC,KAAMU,EAAS/C,KAAKqC,KACpBC,KAAMS,EAAS/C,KAAKsC,QAUvBxC,OAAOC,OAAOqC,GACdtC,OAAOC,OAAOqC,EAAIF,WAoBX,SAAU,GAIT,sBAAmB,IAkBlB,YAAYrC,GAClBmD,MAAMnD,GAING,KAAKiD,WADe,GACHlD,sBACE,GAClBD,OAAOoD,KAAKlD,MAIP,MAAMS,EAAc0C,IAIpB,QAAQC,GACd,IAAIC,EAAI,EACR,UAAWC,KAAOtD,KAAKiD,KACtB,UAAW1C,KAAQ+C,EAClBF,EAAS7C,EAAM8C,KAIX,gBAAgBD,IAYhB,aAAaG,EAAqBC,IAGlC,eAAeC,EAAoBC,IAQnC,mBAAmB5C,GACzB,OAAOd,KAAKqB,cAAcP,EAAa,GAGjC,qBAAqB6C,EAAeC,IAMpC,KAAKC,EAAeC,IAIpB,OAAOrD,IAIP,cAAcA,EAAcmD,EAAiB,GAEnD,MAD4B,GACd7D,SAGR,cAAcU,EAAcmD,EAAiB,IAC5C,eAKcG,GACrB,MAAMC,EAAcxB,KAAKK,IAAIkB,EAAIE,OAAQF,EAAIG,QACvCC,EAAc3B,KAAK4B,IAAIL,EAAIE,OAAQF,EAAIG,QACvCG,GAAU,EAAKN,EAAI1B,KAAO2B,EAChC,IAAI5D,EAAO,EAAI4D,GAAeD,EAAI1B,KAAOgC,GAEzC,OADAjE,IAAS+D,EAAaH,EAAc,GAAKK,EAClCjE,EAAA,+BAG8BA,GACrC,GAAIA,EAAO,IACV,MAAM,IAAIkE,WAAW,uDAMtB,OAAO,IADU,EAAM9B,KAAK+B,KAAK,EAAK,IAAM,EAAInE,KAAW,EAC/C,EAAI,sBAGYD,GAC5B,OAAO,IAAIiC,OAAI,GAAYoC,YAlHtB,UAEQC,mBAAqB,GAF7B,EAIkBC,YAAc,eAAmB,CACxDrC,KAAS,CAAEQ,IAAK,GAAIuB,IAAK,IACzBF,OAAS,CAAErB,IAAK,GAAIuB,IAAK,IACzBH,OAAS,CAAEpB,IAAK,GAAIuB,IAAK,MAPpB,EASQO,WAA8C,EAAKD,YAT3D,EAAMxE,OA4Hb,gBAAoBA,EAAM,SAAU,gBAAiB,iBACrDJ,OAAOC,OAAOG,GACdJ,OAAOC,OAAOG,EAAKgC,WAlIb,CAAUC,MAAA,KAoIjBrC,OAAOC,OAAOoC,I,+CCxGGyC,E,2BArGjB,MAAMxC,EAEE,YACUyC,EACAC,GADA,KAAAD,IACA,KAAAC,IAEhBhF,OAAOC,OAAOC,MAAA,YAEIG,EAAiBM,GACnC,OAAO,IAAI2B,EAAI3B,EAAQN,EAAWkE,MAAO7B,KAAKC,MAAMhC,EAAQN,EAAWkE,QAEjE,QAAQlE,GACd,OAAQH,KAAK8E,EAAI3E,EAAWkE,MAASrE,KAAK6E,EAAA,aAGvBd,EAAUgB,EAAcC,GAG3C,IAAIC,EAAOzC,KAAK0C,IAAIH,EAAGF,EAAIG,EAAGH,GAC9B,OAAII,EAAOlB,EAAIM,MAAQ,EAAU,CAAEY,OAAME,MAAM,GACxC,CAAEF,KAAMlB,EAAIM,MAAQY,EAAME,MAAM,gBAEpBpB,EAAUgB,EAAcC,GAG3C,IAAIC,EAAOzC,KAAK0C,IAAIH,EAAGD,EAAIE,EAAGF,GAC9B,OAAIG,EAAOlB,EAAIqB,OAAS,EAAU,CAAEH,OAAME,MAAM,GACzC,CAAEF,KAAMlB,EAAIqB,OAASH,EAAME,MAAM,kBAEnBpB,EAAUgB,EAAcC,GAG7C,MAAMK,EAAKjD,EAAIkD,MAAMvB,EAAIgB,EAAGC,GAAKO,EAAKnD,EAAIoD,MAAMzB,EAAIgB,EAAGC,GACvD,MAAO,CAAES,KAAMJ,EAAGJ,KAAOM,EAAGN,KAAMS,MAAOL,EAAGF,KAAMQ,MAAOJ,EAAGJ,MAAA,eAEvCpB,EAAUgB,EAAcC,GAG7C,MAAMK,EAAKjD,EAAIkD,MAAMvB,EAAIgB,EAAGC,GAAKO,EAAKnD,EAAIoD,MAAMzB,EAAIgB,EAAGC,GACvD,MAAO,CAAES,KAAMjD,KAAK4B,IAAIiB,EAAGJ,KAAMM,EAAGN,MAAOS,MAAOL,EAAGF,KAAMQ,MAAOJ,EAAGJ,MAAA,sBAYzCpB,EAAU6B,EAAYC,GAClD,MAAMd,EAAK3C,EAAIpB,KAAK+C,EAAK6B,GAAMZ,EAAK5C,EAAIpB,KAAK+C,EAAK8B,GAC5CR,EAAKjD,EAAIkD,MAAMvB,EAAIgB,EAAGC,GAAKO,EAAKnD,EAAIoD,MAAMzB,EAAIgB,EAAGC,GACvD,OAAQxC,KAAK0C,IAAIG,EAAGJ,KAAOM,EAAGN,OAAUI,EAAGJ,KAAOM,EAAGN,MAG/C,IAAInC,GACV,OAAO,IAAIV,EACVpC,KAAK6E,EAAI/B,EAAM+B,EACf7E,KAAK8E,EAAIhC,EAAMgC,GAGV,IAAIhC,GACV,OAAO,IAAIV,EACVpC,KAAK6E,EAAI/B,EAAM+B,EACf7E,KAAK8E,EAAIhC,EAAMgC,GAGV,KAAKhC,GACX,OAAO9C,KAAK8B,IAAI9B,KAAK8F,IAAIhD,IAEnB,IAAIC,GACV,OAAO,IAAIX,EACVW,EAAS/C,KAAK6E,EACd9B,EAAS/C,KAAK8E,GAGT,IAAIf,GACV,IAAI,EAACc,EAAC,EAACC,GAAK9E,KACZ,KAAO6E,EAAI,GAAGA,GAAKd,EAAIM,MACvB,KAAOS,EAAI,GAAGA,GAAKf,EAAIqB,OAGvB,OAFAP,GAAKd,EAAIM,MACTS,GAAKf,EAAIqB,OACF,IAAIhD,EAAIyC,EAAEC,IAUnBhF,OAAOC,OAAOqC,GACdtC,OAAOC,OAAOqC,EAAIF,WAMX,SAAU,GAKT,sBAAmB,IAclB,YAAYrC,GAClBmD,MAAMnD,GAEN,MAAMoD,EAAoB,GAC1B,QAAS6B,EAAI,EAAGA,EAAI9E,KAAKG,WAAWiF,OAAQN,IAC3C,QAASD,EAAI,EAAGA,EAAI7E,KAAKG,WAAWkE,MAAOQ,IAAK,CAC/C,MAAMtE,EAAa,CAClBE,MAAQqE,EAAI9E,KAAKG,WAAWkE,MAASQ,EACrCnE,MAAO,aACPG,OAAQ,EAAGD,IAAK,IAEjBqC,EAAKpB,KAAKtB,GAGZP,KAAK+F,MAAQ9C,EAAKC,OAElB,MAAM8C,EAAW,GACjB,QAASlB,EAAI,EAAGA,EAAIjF,EAAKM,WAAWiF,OAAQN,IAC3C,QAASD,EAAI,EAAGA,EAAIhF,EAAKM,WAAWkE,MAAOQ,IAC1CmB,EAASnE,KAAK,IAAIO,EAAIyC,EAAEC,IAG1B9E,KAAKgG,SAAWA,EAASjG,SACzB,eAAmBC,KAAc,YACjC,gBAAoBA,KAAc,QAAS,yBACxB,GAClBF,OAAOoD,KAAKlD,MAIP,MAAMS,EAAc0C,GAC1BnD,KAAK+F,MAAMtF,GAASX,OAAOC,OAAOD,OAAOmG,OACxCnG,OAAOoG,OAAO,MAAOlG,KAAK+F,MAAMtF,GAAQ0C,IAInC,QAAQC,GACdpD,KAAK+F,MAAMzF,QAAQ8C,GAEb,gBAAgBA,GACtB,MAAM+C,EAAyB,IAAIpF,MAAMf,KAAKI,MAC9C,QAASiD,EAAI,EAAGA,EAAIrD,KAAKI,KAAMiD,IAC9B8C,EAAQ9C,GAAKA,EAEd8C,EAAQC,MAAK,CAACC,EAAEzD,IAAMJ,KAAK8D,SAAW,KAAKvG,SAC3C,UAAWwG,KAASJ,EACnB/C,EAASpD,KAAK+F,MAAMQ,GAASA,GAIxB,aAAahD,EAAqBC,GACxC,MAAMgD,EAAUxG,KAAKqB,cAAcmC,GAClCiD,QAAQlG,GAASA,EAAKG,QAAU,eAChCe,KAAKlB,IACL,MAAMmG,EAAU1G,KAAKgG,SAASzF,EAAKE,OAC7BkG,EAAU3G,KAAKgG,SAASzC,GAC9B,MAAO,CACNhD,OAAMqG,IAAKF,EACXG,QAASzE,EAAIyE,QAAQ7G,KAAKG,WAAYuG,EAASC,GAASlB,KACxDqB,QAAS1E,EAAI0E,QAAQ9G,KAAKG,WAAYuG,EAASC,GAASlB,SAG1D,GAAuB,IAAnBe,EAAQO,OACX,OAAO/G,KAAKgH,OAAOxD,GAEpBgD,EAAQJ,MAAK,CAACa,EAAIC,IAAQD,EAAGJ,QAAUK,EAAGL,UAC1CL,EAAQO,OAAS,EACjBP,EAAQJ,MAAK,CAACa,EAAIC,IAAOD,EAAGH,QAAUI,EAAGJ,UACzC,MAAMK,EAAOX,EAAQ,GAErB,QAASnD,EAAI,EAAGA,EAAImD,EAAQO,OAAQ1D,IACnC,GAAImD,EAAQnD,GAAIwD,QAAUM,EAAKN,QAAS,CACvCL,EAAQY,OAAO/D,GACf,MAGF,GAAuB,IAAnBmD,EAAQO,OAEX,OAAOI,EAAK5G,KAIb,GAAI4G,EAAKN,UAAYM,EAAKL,QAAS,CAGlC,GAAI1E,EAAIiF,eAAerH,KAAKG,WAAYqD,EAAaD,GAAgB,GAIpE,OAAO4D,EAAK5G,KAGZiG,EAAQc,QAIV,OAAOd,EAAQhE,KAAKC,MAAM+D,EAAQO,OAASvE,KAAK8D,WAAY/F,KAEtD,eAAekD,EAAoBC,GACzC,MAAM6D,EAAQvH,KAAKgG,SAASvC,GAEtBK,EADM9D,KAAKgG,SAAStC,GACT8D,KAAKD,GAAOE,IAAIzH,KAAKG,YACtC,OAAOH,KAAK+F,MAAMjC,EAAKU,QAAQxE,KAAKG,aAG9B,mBAAmBW,GACzB,OAAOd,KAAKqB,cAAcP,EAAa,GAGjC,qBAAqB4G,EAAgB9D,GAC3C,MAAMD,EAAS3D,KAAKgG,SAAS0B,GAC7B,OAAO,IAAItF,EACVuB,EAAOkB,EAAIrC,KAAKmF,MAAM,EAAI/D,GAAUpB,KAAK8D,SAAW,KACpD3C,EAAOmB,EAAItC,KAAKmF,MAAM,EAAI/D,GAAUpB,KAAK8D,SAAW,MACnDmB,IAAIzH,KAAKG,YAAYqE,QAAQxE,KAAKG,YAG9B,KAAK0D,EAAeC,GAC1B,OAAO1B,EAAIyE,QAAQ7G,KAAKG,WACvBH,KAAKgG,SAASnC,GACd7D,KAAKgG,SAASlC,IACb2B,KAGI,OAAOhF,GACb,OAAOT,KAAK+F,MAAMtF,GAEZ,cAAcA,EAAcmD,EAAiB,GACnD,MAAMgD,EAAM5G,KAAKgG,SAASvF,GAC1B,IAAIiF,GAAQ,EAAOC,GAAQ,EAC3B,MAAMiC,EAAI5H,KAAKG,WAAWkE,MAAOwD,EAAI7H,KAAKG,WAAWiF,OACrD,IAAI0C,EAAKlB,EAAI9B,EAAIlB,EAAgBkE,EAAI,IAAKA,GAAKD,EAAGlC,GAAQ,GAC1D,IAAIoC,EAAKnB,EAAI/B,EAAIjB,EAAgBmE,EAAI,IAAKA,GAAKH,EAAGlC,GAAQ,GAC1D,IAAI9C,EAAKgE,EAAI9B,EAAIlB,EAAQ,EAAQhB,EAAIiF,IAAKjF,GAAKiF,EAAGlC,GAAQ,GAC1D,IAAIqC,EAAKpB,EAAI/B,EAAIjB,EAAQ,EAAQoE,EAAIJ,IAAKI,GAAKJ,EAAGlC,GAAQ,GAC1D,MAAMuC,EAAqB,GAC3B,GAAIvC,EAAO,CACV,MAAMwC,EAAKJ,EAAIF,EACfK,EAAMpG,QAAQ7B,KAAK+F,MAAMoC,MAAMD,EAAIA,EAAGF,IAClCrC,GACHsC,EAAMpG,QAAQ7B,KAAK+F,MAAMoC,MAAM,EAAGH,IAIpC,MAAMI,EAAKzC,EAAQkC,EAAIjF,EACjByF,EAAwB,EAATzE,EAAc,EACnC,QAASkB,EAAIgD,EAAGhD,EAAIsD,EAAItD,IAAK,CAC5B,MAAMwD,EAASxD,EAAI8C,EAAKG,EACxBE,EAAMpG,QAAQ7B,KAAK+F,MAAMoC,MAAMG,EAAOA,EAAMD,IAG7C,GADI3C,IAAUC,IAASsC,EAAMlB,QAAUiB,GACnCrC,EAAO,CACV,QAASb,EAAI,EAAGA,EAAIlC,EAAGkC,IAAK,CAC3B,MAAMwD,EAASxD,EAAI8C,EAAKG,EACxBE,EAAMpG,QAAQ7B,KAAK+F,MAAMoC,MAAMG,EAAOA,EAAMD,IAEzC3C,IAASuC,EAAMlB,QAAUiB,GAG9B,OAAOC,EAAMlI,SAEP,cAAcU,EAAcmD,EAAiB,GACnD,OAAO5D,KAAKqB,cAAcZ,EAAOmD,GAAA,eAKZG,GACrB,OAAOA,EAAIqB,OAASrB,EAAIM,MAAA,+BAGajE,GACrC,OAAOoC,KAAK+B,KAAKnE,GAAA,sBAGWD,GAC5B,MAAM0E,EAAIrC,KAAKC,MAAMtC,EAAWkE,MAAS7B,KAAK8D,UAE9C,OADU9D,KAAKC,MAAMtC,EAAWiF,OAAS5C,KAAK8D,UAClCnG,EAAWkE,MAASQ,IAhM3B,UAEQJ,mBAAqB,GAF7B,EAIkBC,YAAc,eAA0B,CAC/DU,OAAe,CAAEvC,IAAK,GAAIuB,IAAK,IAC/BC,MAAe,CAAExB,IAAK,GAAIuB,IAAK,MAN1B,EAQQO,WAA8C,EAAKD,YAR3D,EAAMxE,OAyMbA,EAAKgC,UAAUhB,cAAgBhB,EAAKgC,UAAUb,cAC9C,gBAAoBnB,EAAM,SAAU,gBAAiB,iBACrDJ,OAAOC,OAAOG,GACdJ,OAAOC,OAAOG,EAAKgC,WAjNb,CAAU0C,MAAA,KAmNjB9E,OAAOC,OAAO6E,I,+CCtTG2D,EAAA,E,UAAA,EAAAA,MAAA,KAQHxG,cAET,gBAEY,eACF,GAED,EAAAC,kBAA6CC,GAC5C,EAAAF,cAAcE,GAIrB,EAASuG,kBAAT,SAA2BC,GACjCA,EAAMC,aAAa,OAAQ,gBAC3BD,EAAME,WAAa,EACnBF,EAAMG,YAAa,EAEnB,MAAMC,EAAOC,EAAA,OAAa,OACpBC,EAAOF,EAAKG,aAAa,CAAEC,KAAM,WACvCR,EAAMS,UAAUpH,IC5CU,2BD6C1BiH,EAAKI,YAAYV,GACjBK,EAAA,sBAA4BC,EAAM,kBAClCD,EAAA,sBAA4BC,EAAM,sBAGlC,MAAMK,EAAiBN,EAAA,OAAa,MAAO,CElDuD,4BFmD5FO,EAAiBP,EAAA,OAAa,MAAO,CEnDkG,4BFoDvIQ,EAAiBxJ,OAAOC,OAAO,CAAEqJ,EAAgBC,IAEvD,OAAOvJ,OAAOC,OAAO,CACpBwJ,SAAUV,EACVS,oBAIHxJ,OAAOC,OAAOwI,I,qFG7Dd,E,uDASA,MACMiB,EAAM,GAGZ,MAAMC,EAKL,YAAY7C,GAHI,KAAA8C,KAAOZ,EAAA,MAAY,QACnB,KAAAa,MAAQb,EAAA,MAAY,QAGnC,MAAMc,EAAY,KAAWhD,EAAI/B,EAAE2E,EAC7BK,EAAY,KAAWjD,EAAI9B,EAAE0E,EAEnCxJ,KAAK0J,KAAKR,UAAUpH,ICrBkC,2BDsBtD,MAAMgI,EAAW9J,KAAK0J,KAAKK,eAAeC,KAAKhK,KAAK0J,KAAM,MAC1DI,EAAS,IAAKF,EAAQ,MACtBE,EAAS,IAAKD,EAAQ,MAEtB7J,KAAK2J,MAAMT,UAAUpH,IC1BkE,2BD2BvF9B,KAAK2J,MAAMI,eAAe,KAAM,IAAKH,EAASK,IAAS,MACvDjK,KAAK2J,MAAMI,eAAe,KAAM,IAAKF,EAASI,IAAS,gBAEvCC,GACZA,IAAa,oBACTlK,KAAK0J,KAAKS,QAAe,MAEhCnK,KAAK0J,KAAKS,QAAe,MAAID,EAASE,WAAA,WAGtBvJ,GACbA,EAAS,EACZb,KAAK0J,KAAKS,QAAgB,OAAItJ,EAAOuJ,kBAE9BpK,KAAK0J,KAAKS,QAAgB,OAAR,SAGXxJ,GACfX,KAAK2J,MAAMU,YAAc1J,GAG3Bb,OAAOC,OAAO0J,GACd3J,OAAOC,OAAO0J,EAAYvH,WAKnB,MAAMoI,UAA2BC,EAAA,OAMhC,YAAY1K,GAClBmD,MAAMnD,GAHP,mBAKC,MAAM2K,EAAM1B,EAAA,MAAY,MAAO,CC/DV,4BDgEf/E,EAAMlE,EAAKM,WACjBqK,EAAI9B,aAAa,SAAY,KAAa3E,EAAIqB,OAASoE,EAAO,MAC9DgB,EAAI9B,aAAa,QAAY,KAAa3E,EAAIM,MAASmF,EAAO,MAE9D,MAAMf,EAA4B,G,QAClCzI,KAAKM,SAASC,IACb,MAAMkK,EAAQ,IAAIhB,EAAYzJ,KAAKgG,SAASzF,EAAKE,QACjDgI,EAAM5G,KAAK4I,GACXD,EAAIrB,YAAYsB,EAAMf,MACtBc,EAAIrB,YAAYsB,EAAMd,U,EAETlB,E,EAAdzI,K,EAAK,E,gCAALA,K,GAEA,MAAM0K,EAAU5B,EAAA,OAAa,OAC7B4B,EAAQvB,YAAYqB,GACpB1K,OAAOmG,OAAOjG,KAAMuI,EAAA,oBAA8BmC,IAClD5K,OAAOoD,KAAKlD,MAIN,MAAMS,EAAc0C,GAC1BH,MAAMxC,MAAMC,EAAO0C,GACnB,MAAM5C,G,EAAOP,K,EAAK,E,2CAAOS,G,QACrBqI,EAAA,UAAgB3F,EAAS,WAC5B5C,EAAKG,MAAQyC,EAAQzC,OAElBoI,EAAA,UAAgB3F,EAAS,YAC5B5C,EAAKM,OAASsC,EAAQtC,QAEnBiI,EAAA,UAAgB3F,EAAS,UAC5B5C,EAAKI,KAAOwC,EAAQxC,OApCtB,cAwCDb,OAAOC,OAAOuK,GACdxK,OAAOC,OAAOuK,EAAmBpI,W,aE1F1B,MAAMyI,UAA2B,SAKhC,YAAY9K,GAClBmD,MAAMnD,GAENC,OAAOmG,OAAOjG,KAAMuI,EAAA,yBADS,IAE7BzI,OAAOoD,KAAKlD,MAIN,MAAMS,EAAc0C,KAI5BrD,OAAOC,OAAO4K,GACd7K,OAAOC,OAAO4K,EAAmBzI,WCtBjC,aAEC,MAAM0I,EAAMrC,EAAA,EACZzI,OAAOC,OAAOD,OAAOmG,OAAO2E,EAAI7I,cAAyC,WACvDuI,EAAA,QACFK,KAEhB7K,OAAOC,OAAO6K,K,gDCbf,M,gPAaO,QAeC,YAAYC,GAZV,mBAKT,mBAIA,mBAQC,MAAM,KAAEC,EAAI,KAAEjL,EAAI,YAAEkL,GAAgBF,EACpC/K,OAAOC,OAAOF,GACdC,OAAOC,OAAOF,EAAKmL,SACnBnL,EAAKmL,QAAQ1K,SAAS,GAASR,OAAOC,OAAO,KAC7CD,OAAOC,OAAOgL,GAEd,MAAME,EAAYH,EAAKI,gBAAgBrL,EAAKoC,UAC5CjC,KAAKiD,KAAO,IAAKgI,EAAW,CAC3B/K,KAAM+K,EACNE,OAAQtL,EAAKoC,SACb9B,WAAYN,EAAKuL,eACjBJ,QAASnL,EAAKmL,UAGf,EAAAhL,KAAK,EAAoB8K,EAAKO,kBAC9BrL,KAAKsL,aAAe,6BAA6BzL,EAAK0L,QAGtD,MAAMP,EAAWhL,KAAKwL,eAAe3L,EAAMiL,EAAMC,GACjD/K,KAAKgL,QAAYA,EAAQA,QACzBhL,KAAKyL,UAAYT,EAAQS,UACzB,CACC,MAAMC,EAAoB,GAC1B1L,KAAKgL,QAAQ1K,SAASqL,IAChBD,EAAMC,EAAOC,UACjBF,EAAMC,EAAOC,QAAU,IAExBF,EAAMC,EAAOC,QAAS/J,KAAK8J,MAE5B3L,KAAK0L,MAAQA,EAAMjK,KAAI,CAACoK,EAAeD,IAC/B,IAAI,IAAKA,EAAQC,KAG1B,gBAAoB7L,KACnB,OAAQ,eACR,UAAW,YAAa,SAEzBA,KAAKgL,QAAQ1K,SAASqL,GAAWA,EAAOG,wBACxC9L,KAAK+L,mBAAmB,GAIlB,QACN/L,KAAKiD,KAAK+I,QAIV,EAAAhM,KAAK,EAAU,mBAKR,eACPiM,EACAC,EACAnB,GAKA,MAAMC,EAAUiB,EAASjB,QAAQvJ,KAAK0K,GACjCA,EAAMC,WAAa,iBACdrB,EAAYsB,SAASF,EAAMjC,UAChC,IAAIgC,EAASI,eAAgBtM,KAAMmM,GACnC,IAAI,IAAOnM,KAAMmM,GAEbD,EAASK,YACfvM,KACAmM,KAGApM,SACH,OAAOD,OAAOC,OAAO,CACpBiL,UACAS,UAAWV,EAAYtJ,KAAKyI,GAAac,EAAQd,KAA6BnK,WAKzE,sBAAsByM,GAC5B,eAAmBA,GAEnBxM,KAAKiD,KAAK3C,SAAQ,CAACC,EAAMgG,KACxBvG,KAAKiD,KAAKzC,MAAMD,EAAKE,MAAO+L,EAAIC,KAAKlG,OAEtCiG,EAAIE,aAAapM,SAAQ,CAACG,EAAOyJ,KAChClK,KAAKgL,QAAQd,GAAW8B,MAAMvL,MAAA,sBAK/B,OAAO,EAAAT,KAAK,GAEN,mBAAmB2M,GACzB,MAAMC,EAAe5M,KAAKyL,UAAUkB,GACpC,QAAuC,IAAjBC,EAA4B,MAAM,IAAIC,MAAM,SAC9D7M,KAAK8M,kBAAoBF,GAE5B,EAAA5M,KAAK,EAAmB4M,GAAA,aAMzB,OAAO,EAAA5M,KAAK,GASN,sBACN,GAAIA,KAAK+M,SAAW,mBAApB,CAIA,GAAI/M,KAAK+M,SAAW,kBACnB,MAAM,IAAIF,MAAM,oDAEjB7M,KAAKgL,QAAQ1K,SAASqL,IACrBA,EAAOqB,mBAER,EAAAhN,KAAK,EAAU,yBATdiN,QAAQC,KAAK,kDAkBR,qBACFlN,KAAK+M,SAAW,kBAIhB/M,KAAK+M,SAAW,kBAGpB/M,KAAKgL,QAAQ1K,SAASqL,IACrBA,EAAOwB,kBAER,EAAAnN,KAAK,EAAU,oBATdiN,QAAQC,KAAK,gDAqBR,mBACFlN,KAAK+M,SAAW,kBACpB/M,KAAKgL,QAAQ1K,SAASqL,IACrBA,EAAOyB,gBAER,EAAApN,KAAK,EAAU,iBACf,EAAAA,KAAK,GAAL,KAAAA,MACAiN,QAAQC,KAAK,kBAMJ,eACTzM,EACA0C,EACAkK,GAAoC,GAGpC,MAAM9M,EAAOP,KAAKiD,KAAK+D,OAAOvG,QAEV,IAAhB0C,EAAQvC,KAEPyM,GAEHrN,KAAKyL,UAAUnL,SAASgN,IACnBtN,KAAKiD,KAAK5B,cAAciM,EAAG7M,OAAO4L,SAAS9L,IAC9C+M,EAAGC,wBAAmB,MAK1BvN,KAAKiD,KAAKzC,MAAMC,EAAO0C,GAId,kBAAkBtD,EAAuB2N,GAClD,eAAmB3N,GACnB,MAAM8L,EAAS3L,KAAKgL,QAAQnL,EAAK4N,gBAEX,IAAlB5N,EAAK6N,UAKT5N,OAAO6N,QAAQ9N,EAAK4I,OAAO1I,SAASO,SAAQ,EAAEG,EAAO0C,MACpDnD,KAAK4N,eAAeC,SAASpN,GAAQ0C,MAEtCrD,OAAO6N,QAAQ9N,EAAKmL,SAASjL,SAASO,SAAQ,EAAEwN,EAAK3K,MACpD,MAAM,EAASnD,KAAKgL,QAAQ6C,SAASC,IACrC,EAAOC,UAAUC,eACjB,EAAOnN,OAASsC,EAAQtC,YAEF,IAAlBsC,EAAQ1C,QACXT,KAAKiD,KAAKzC,MAAM,EAAOC,MAAQ,CAACC,MAAO,cACvCV,KAAKiD,KAAKzC,MAAM2C,EAAQ1C,MAAO,CAACC,MAAO,EAAOwJ,WAE9C,EAAO+D,SAAS9K,EAAQ1C,YAhBzBkL,EAAOoC,UAAUG,OAAOrO,EAAK6N,SAAU/B,EAAOlL,QAtNvC,cAKT,cAIA,cAkOD,gBAAoB0N,EAAY,kBAChCrO,OAAOC,OAAOoO,GACdrO,OAAOC,OAAOoO,EAAWjM,Y,+CC7PzB,I,sNAcO,MAAMoK,UAAuB,IAc5B,YAAY8B,EAAuBvO,GACzCmD,MAAMoL,EAAMvO,GANb,mBAES,mBAKRC,OAAOoD,KAAKlD,MACZ,EAAAA,KAAK,EAAqBA,KAAKoO,KAAK9C,aAAa+C,WAG3C,MAAM5N,GACZuC,MAAMgJ,MAAMvL,GACZ,EAAAT,KAAK,EAAa,oBAIlB,OAAO,EAAAA,KAAK,GAYN,qBAAqBsO,GACvBtO,KAAKoO,KAAKrB,SAAW,oBACrB/M,KAAK+N,UAAUQ,SAGD,MAAdD,EAAME,IACLxO,KAAKS,QAAUT,KAAKyO,WACvBzO,KAAK0O,oBACJ1O,KAAKoO,KAAKnL,KAAK0L,eAAe3O,KAAKyO,UAAWzO,KAAKS,OAAOA,MAC1D,oBAG6B,IAArB6N,EAAME,IAAIzH,QAAiBuH,EAAMM,QAG3C5O,KAAKuN,mBAAmBe,EAAME,MAazB,mBAAmBA,GACzB,MAAMK,EAAO7O,KAAKoO,KAAKnL,KAAK5B,cAAcrB,KAAK+N,UAAUe,gBACvDrI,QAAQlG,GAASA,EAAKG,QAAU,cAClC,GAAoB,IAAhBmO,EAAK9H,OAKT,QAAY,IAARyH,EAAJ,CAQCA,EAAM,EAAAxO,KAAK,GAAL,KAAAA,KAAwBwO,GAG/B,QACKO,EAA0B/O,KAAKgP,UAAYR,EAC/CO,EAAahI,OACbgI,EAAeA,EAAaE,UAAU,GACrC,CAGD,MAAMC,EAAiBL,EAAKM,MAAM5O,GAASA,EAAKK,IAAIwO,WAAWL,KAC/D,QAAuB,IAAnBG,EAKH,OAJA,EAAAlP,KAAK,EAAa+O,QACdG,EAAetO,MAAQmO,GAC1B/O,KAAK0O,oBAAoBQ,EAAezO,MAAO,WAMlD,EAAAT,KAAK,EAAa,SA3BM6O,EAAKM,MAAM5O,GAASA,EAAKK,IAAIwO,WAAWpP,KAAKgP,cAGnE,EAAAhP,KAAK,EAAa,IA+Bd,SAAS8D,GAEf,EAAA9D,KAAK,EAAa,IAElBgD,MAAMiL,SAASnK,IAxGhB,cAES,cAyGVhE,OAAOC,OAAOuM,GACdxM,OAAOC,OAAOuM,EAAepK","file":"chunk/5.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/colour-schemes.css b/client/chunk/colour-schemes.css new file mode 100644 index 00000000..26e20913 --- /dev/null +++ b/client/chunk/colour-schemes.css @@ -0,0 +1,2 @@ +[data-sk-colour-scheme=murky-dive]{--colour-mainFg:#c3c5ce;--colour-mainBg:#336465;--colour-tileFg:#e7efef;--colour-tileBg:#283e3f;--colour-tileBd:#fff;--colour-healthFg:#1d3633;--colour-healthBg:#37dfc6;--colour-pFaceMe:#03f9ed;--colour-pFaceMeOppo:#898697;--colour-pFaceTeammate:#fba;--colour-pFaceImtlTeammate:#ffcabd;--colour-pFaceOpponent:#ff4f6c;--colour-pFaceImtlOpponent:#ff6d85}[data-sk-colour-scheme=smooth-stone]{--colour-mainFg:#c3c5ce;--colour-mainBg:#72888d;--colour-tileFg:#a2b6bb;--colour-tileBg:#546164;--colour-tileBd:#fff;--colour-healthFg:#21352e;--colour-healthBg:#398f5a;--colour-pFaceMe:#43aec9;--colour-pFaceMeOppo:#5a5f9c;--colour-pFaceTeammate:#bdae58;--colour-pFaceImtlTeammate:#f8df50;--colour-pFaceOpponent:#a34e59;--colour-pFaceImtlOpponent:#e23fa3} +/*# sourceMappingURL=colour-schemes.css.map*/ \ No newline at end of file diff --git a/client/chunk/colour-schemes.css.map b/client/chunk/colour-schemes.css.map new file mode 100644 index 00000000..74706965 --- /dev/null +++ b/client/chunk/colour-schemes.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://capswalk/./src/client/colours/schemes/murky-dive.css","webpack://capswalk/./src/client/colours/schemes/smooth-stone.css"],"names":[],"mappings":"AAAA,mCACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,2BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD,CCdA,qCACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,8BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD","file":"chunk/colour-schemes.css","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/colour-schemes.js b/client/chunk/colour-schemes.js new file mode 100644 index 00000000..b016ffcb --- /dev/null +++ b/client/chunk/colour-schemes.js @@ -0,0 +1 @@ +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[122],{115:(s,a,c)=>{"use strict";c.r(a)},622:(s,a,c)=>{"use strict";c.r(a)}}]); \ No newline at end of file diff --git a/client/chunk/game-css.css b/client/chunk/game-css.css deleted file mode 100644 index 794b7242..00000000 --- a/client/chunk/game-css.css +++ /dev/null @@ -1,2 +0,0 @@ -.tile-m_this_3XULG{--border-width:0.14em;--border-radius:0.35em;pointer-events:none;contain:size style}.tile-m_this_3XULG *{height:100%;width:100%}.tile-m_char_2hddM{box-sizing:border-box;border:var(--border-width) solid transparent;border-radius:var(--border-radius);contain:strict;background-color:var(--colour-tileBg);overflow:hidden hidden;display:grid;align-items:center}.tile-m_char_2hddM>*{height:auto}.tile-m_this_3XULG[data-health] .tile-m_char_2hddM{z-index:11;border-color:var(--colour-tileBd);color:var(--colour-healthFg);background-color:var(--colour-healthBg);transition-property:color,background-color;transition-duration:.5s;transition-timing-function:ease-in}.grid-m_impl-body_3Sgh6{z-index:0;contain:content;position:static;color:var(--colour-tileFg);height:fit-content;width:fit-content;padding:.4em;text-rendering:optimizeSpeed}.player-m_this_3JbtP{--colour-spotlight:var(--colour-mainBg);contain:size}.player-m_face_3u8M-{pointer-events:auto;box-sizing:border-box;border:var(--border-width) solid transparent;border-radius:var(--border-radius);z-index:11;border-color:var(--colour-tileBd);contain:strict;transition:background-color .7s ease-in-out}.player-m_spotlight-long_1QzcW,.player-m_spotlight-short_2BjCV{will-change:transform}.player-m_this_3JbtP[data-face=me]>.player-m_face_3u8M-{z-index:21;will-change:transform}.player-m_downed-overlay_3e386{z-index:12;background-color:red;opacity:.2}.player-m_this_3JbtP[data-downed=no] .player-m_downed-overlay_3e386{visibility:hidden}@keyframes player-m_anim-frames-player__on-move_3csK2{0%{transform:scale(1.1)}37%{transform:scale(1.3)}}.player-m_spotlight-short_2BjCV{z-index:10;background-image:radial-gradient(farthest-side,transparent 21%,46%,var(--colour-spotlight));padding:1400%;border:100vmax solid var(--colour-spotlight)}.player-m_spotlight-long_1QzcW{z-index:20;background-image:radial-gradient(farthest-side,transparent 15%,var(--colour-spotlight));padding:1700%;border:100vmax solid var(--colour-spotlight);opacity:.92}@media print{.player-m_spotlight-long_1QzcW,.player-m_spotlight-short_2BjCV{visibility:hidden}}.player-m_this_3JbtP[data-face=me]>.player-m_face_3u8M-{background-color:var(--colour-pFaceMe)}.player-m_this_3JbtP[data-face=meOppo]>.player-m_face_3u8M-{background-color:var(--colour-pFaceMeOppo)}.player-m_this_3JbtP[data-face=teammate]>.player-m_face_3u8M-{background-color:var(--colour-pFaceTeammate)}.player-m_this_3JbtP[data-face=opponent]>.player-m_face_3u8M-{background-color:var(--colour-pFaceOpponent)}.player-m_this_3JbtP[data-face=teammate][data-downed=team]>.player-m_face_3u8M-{background-color:var(--colour-pFaceImtlTeammate)}.player-m_this_3JbtP[data-face=opponent][data-downed=team]>.player-m_face_3u8M-{background-color:var(--colour-pFaceImtlOpponent)}.style-m_grid_3sIxe{--track-size:1.67em;display:grid;grid-template-columns:repeat(var(--euclid2-grid-width),var(--track-size));grid-auto-rows:var(--track-size)}.style-m_grid_3sIxe>*{margin:5%;scroll-snap-align:center} -/*# sourceMappingURL=game-css.css.map*/ \ No newline at end of file diff --git a/client/chunk/game-css.css.map b/client/chunk/game-css.css.map deleted file mode 100644 index d354f84e..00000000 --- a/client/chunk/game-css.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/floor/tile.m.css","webpack://snakey3/./src/base/floor/grid.m.css","webpack://snakey3/./src/base/game/player/player.m.css","webpack://snakey3/./src/base/floor/impl/Euclid2/style.m.css"],"names":[],"mappings":"AACA,mBACC,qBAAsB,CACtB,sBAAuB,CAGvB,mBAAoB,CACpB,kBACD,CACA,qBACC,WAAY,CAAE,UACf,CAEA,mBACC,qBAAsB,CACtB,4CAA6C,CAC7C,kCAAmC,CAGnC,cAAsB,CACtB,qCAAsC,CACtC,sBAA6B,CAC7B,YAAoB,CACpB,kBAND,CAQA,qBACC,WACD,CACA,mDACC,UAAoB,CACpB,iCAAsC,CACtC,4BAAwC,CACxC,uCAAwC,CAExC,0CAA4C,CAC5C,uBAAyB,CACzB,kCACD,CCpCA,wBACC,SAAa,CACb,eAAmB,CACnB,eAAkB,CAClB,0BAAgC,CAChC,kBAAuB,CACvB,iBAAuB,CACvB,YAAiB,CACjB,4BACD,CCTA,qBAOC,uCAAwC,CACxC,YACD,CACA,qBACC,mBAAuB,CACvB,qBAAsB,CACtB,4CAA6C,CAC7C,kCAAmC,CAGnC,UAAkB,CAClB,iCAAoC,CACpC,cAAsB,CACtB,2CALD,CAOA,+DAEC,qBACD,CACA,wDACC,UAAkB,CAMlB,qBACD,CACA,+BACC,UAAW,CACX,oBAAqB,CACrB,UACD,CACA,oEACC,iBACD,CASI,sDACF,GAAK,oBAAuB,CAC7B,IAAM,oBAAuB,CAC9B,CAQA,gCACC,UAAW,CACX,2FAGC,CACD,aAAiB,CACjB,4CACD,CACA,+BACC,UAAW,CACX,uFAGC,CACD,aAAiB,CACjB,4CAAiD,CACjD,WACD,CACA,aAIC,+DACC,iBACD,CACD,CAGA,wDAEC,sCACD,CACA,4DAEC,0CACD,CACA,8DAEC,4CACD,CACA,8DAEC,4CACD,CACA,gFAEC,gDACD,CACA,gFAEC,gDACD,CClHA,oBACC,mBAAoB,CACpB,YAAgB,CAChB,yEACqD,CACrD,gCACD,CACA,sBACC,SAAc,CACd,wBACD","file":"chunk/game-css.css","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/game-css.js b/client/chunk/game-css.js deleted file mode 100644 index 81f75445..00000000 --- a/client/chunk/game-css.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[68],{601:(s,e,t)=>{"use strict";t.d(e,{Z:()=>r});const r={"impl-body":"grid-m_impl-body_3Sgh6"}},344:(s,e,t)=>{"use strict";t.d(e,{Z:()=>r});const r={grid:"style-m_grid_2nYrT"}},518:(s,e,t)=>{"use strict";t.d(e,{Z:()=>r});const r={grid:"style-m_grid_3sIxe"}},749:(s,e,t)=>{"use strict";t.d(e,{Z:()=>r});const r={this:"tile-m_this_3XULG",char:"tile-m_char_2hddM"}},415:(s,e,t)=>{"use strict";t.d(e,{Z:()=>r});const r={this:"player-m_this_3JbtP",face:"player-m_face_3u8M-","spotlight-short":"player-m_spotlight-short_2BjCV","spotlight-long":"player-m_spotlight-long_1QzcW","downed-overlay":"player-m_downed-overlay_3e386","anim-frames-player__on-move":"player-m_anim-frames-player__on-move_3csK2"}}}]); -//# sourceMappingURL=game-css.js.map \ No newline at end of file diff --git a/client/chunk/game-css.js.map b/client/chunk/game-css.js.map deleted file mode 100644 index 0289b590..00000000 --- a/client/chunk/game-css.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/floor/grid.m.css?0f27","webpack://snakey3/./src/base/floor/impl/Beehive/style.m.css","webpack://snakey3/./src/base/floor/impl/Euclid2/style.m.css?7d82","webpack://snakey3/./src/base/floor/tile.m.css?a7d5","webpack://snakey3/./src/base/game/player/player.m.css?e09a"],"names":[],"mappings":"gHACA,SAAgB,YAAY,2B,4CCA5B,SAAgB,KAAO,uB,4CCAvB,SAAgB,KAAO,uB,4CCAvB,SAAgB,KAAO,oBAAoB,KAAO,sB,4CCAlD,SAAgB,KAAO,sBAAsB,KAAO,sBAAsB,kBAAkB,iCAAiC,iBAAiB,gCAAgC,iBAAiB,gCAAgC,8BAA8B","file":"chunk/game-css.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/game/offline.css b/client/chunk/game/offline.css new file mode 100644 index 00000000..064ed2f0 --- /dev/null +++ b/client/chunk/game/offline.css @@ -0,0 +1,2 @@ +._2N_eu47KtEpZi5d2CowzkM{contain:content;color:var(--colour-tileFg);height:fit-content;width:fit-content;padding:.4em;text-rendering:optimizeSpeed}._3JbtPbIjLTUiQJTU8n-H7C{--colour-spotlight:var(--colour-mainBg);contain:size}._3u8M-CC4Px9o6vllq-e_Uk{pointer-events:auto;box-sizing:border-box;border:var(--border-width) solid transparent;border-radius:var(--border-radius);z-index:11;border-color:var(--colour-tileBd);contain:strict;transition:background-color .7s ease-in-out}._1QzcWwOXzKGRJ08E7Atc6o,._2BjCVl5m4MP1W-F8Z9wQNx{will-change:transform}._3JbtPbIjLTUiQJTU8n-H7C[data-face=me]>._3u8M-CC4Px9o6vllq-e_Uk{z-index:21;will-change:transform}._3e386DsWFKSsP26EIeKIUv{z-index:12;background-color:red;opacity:.2}._3JbtPbIjLTUiQJTU8n-H7C[data-downed=no] ._3e386DsWFKSsP26EIeKIUv{visibility:hidden}@keyframes _3csK2auwtiV8TtCo1YGszT{0%{transform:scale(1.1)}37%{transform:scale(1.3)}}._2BjCVl5m4MP1W-F8Z9wQNx{z-index:10;background-image:radial-gradient(farthest-side,transparent 21%,46%,var(--colour-spotlight));padding:1400%;border:100vmax solid var(--colour-spotlight)}._1QzcWwOXzKGRJ08E7Atc6o{z-index:20;background-image:radial-gradient(farthest-side,transparent 15%,var(--colour-spotlight));padding:1700%;border:100vmax solid var(--colour-spotlight);opacity:.92}@media print{._1QzcWwOXzKGRJ08E7Atc6o,._2BjCVl5m4MP1W-F8Z9wQNx{visibility:hidden}}._3JbtPbIjLTUiQJTU8n-H7C[data-face=me]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceMe)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=meOppo]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceMeOppo)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=teammate]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceTeammate)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=opponent]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceOpponent)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=teammate][data-downed=team]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceImtlTeammate)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=opponent][data-downed=team]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceImtlOpponent)}._3sIxemHPd1QgnRpmKBX9zJ{contain:strict;display:grid;grid-template-columns:repeat(var(--euclid2-grid-width),1.67em);grid-auto-rows:1.67em}._3sIxemHPd1QgnRpmKBX9zJ>*{margin:5%;scroll-snap-align:center}._3bZJ4fE4oboFoXnIoxvMoC{height:1.67em;width:1.67em;rx:.4em;stroke-width:.18em;fill:var(--colour-tileBg);stroke:var(--colour-tileBg)}._1RIAliHGAPUZnmLFKbeJR0{pointer-events:none;alignment-baseline:central;text-anchor:middle;fill:var(--colour-tileFg)} +/*# sourceMappingURL=offline.css.map*/ \ No newline at end of file diff --git a/client/chunk/game/offline.css.map b/client/chunk/game/offline.css.map new file mode 100644 index 00000000..1d232feb --- /dev/null +++ b/client/chunk/game/offline.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://capswalk/./src/base/floor/visible/grid.m.css","webpack://capswalk/./src/base/game/player/player.m.css","webpack://capswalk/./src/base/floor/impl/Euclid2/style.m.css"],"names":[],"mappings":"AACA,yBACC,eAAmB,CACnB,0BAAgC,CAChC,kBAAuB,CACvB,iBAAuB,CACvB,YAAiB,CACjB,4BACD,CCPA,yBAOC,uCAAwC,CACxC,YACD,CACA,yBACC,mBAAuB,CACvB,qBAAsB,CACtB,4CAA6C,CAC7C,kCAAmC,CAGnC,UAAkB,CAClB,iCAAoC,CACpC,cAAsB,CACtB,2CALD,CAOA,kDAEC,qBACD,CACA,gEACC,UAAkB,CAMlB,qBACD,CACA,yBACC,UAAW,CACX,oBAAqB,CACrB,UACD,CACA,kEACC,iBACD,CASI,mCACF,GAAK,oBAAuB,CAC7B,IAAM,oBAAuB,CAC9B,CAQA,yBACC,UAAW,CACX,2FAGC,CACD,aAAiB,CACjB,4CACD,CACA,yBACC,UAAW,CACX,uFAGC,CACD,aAAiB,CACjB,4CAAiD,CACjD,WACD,CACA,aAIC,kDACC,iBACD,CACD,CAGA,gEAEC,sCACD,CACA,oEAEC,0CACD,CACA,sEAEC,4CACD,CACA,sEAEC,4CACD,CACA,wFAEC,gDACD,CACA,wFAEC,gDACD,CCnHA,yBACC,cAAe,CACf,YAAa,CACb,8DAAgE,CAChE,qBACD,CACA,2BACC,SAAU,CACV,wBACD,CAEA,yBACC,aAAc,CACd,YAAa,CACb,OAAS,CACT,kBAAoB,CACpB,yBAA0B,CAC1B,2BACD,CAEA,yBACC,mBAAoB,CACpB,0BAA2B,CAC3B,kBAAmB,CACnB,yBACD","file":"chunk/game/offline.css","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/game/offline.js b/client/chunk/game/offline.js index 3f0a6763..e94122bf 100644 --- a/client/chunk/game/offline.js +++ b/client/chunk/game/offline.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[755],{115:(e,t,r)=>{"use strict";r.d(t,{U:()=>l});var i,s=r(632),o=r(532),a=r(903);!function(e){var t;class r{constructor(){Object.defineProperty(this,"seq",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"children",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"carryHits",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.children=[],s.R.propNoWrite(this,"children")}reset(){for(const e of this.children)e.reset();this.carryHits=0}_finalize(){Object.freeze(this.children);for(const e of this.children)e._finalize()}getLeaves(){const e=[];return this._rGetLeaves(e),e}_rGetLeaves(e){if(this.children.length)for(const t of this.children)t._rGetLeaves(e);else e.push(this)}simpleView(){return this.children}static CREATE_TREE_MAP(t,o){var a;const l=e.GET_SCALE_WEIGHT_FUNC(o,t),h=new Map;Object.entries(t).forEach((([e,{seq:t,weight:r}])=>{const i=new n(e,l(r)),s=h.get(t);void 0!==s?s.push(i):h.set(t,[i])}));const c=new r;s.R.propNoWrite(c,"children");let d=c;for(const[e,t]of Array.from(h).sort((([e],[t])=>ee.carryHits-t.carryHits}),e.ParentNode=r,s.R.protoNoEnum(r,"_finalize","_rGetLeaves"),Object.freeze(r),Object.freeze(r.prototype);class i extends r{constructor(e,r,i){super(),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seq",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.set(this,void 0),this.seq=r,(0,a.YH)(this,t,i),this.parent=e,s.R.propNoWrite(this,"seq","parent")}_finalize(){Object.freeze((0,a.Q_)(this,t)),super._finalize()}reset(){super.reset();for(const e of(0,a.Q_)(this,t))e.reset(),this.incrHits(e,Math.random()*o.Uo.CHAR_HIT_COUNT_SEED_CEILING)}chooseOnePair(){let e=(0,a.Q_)(this,t)[0];for(const r of(0,a.Q_)(this,t))r.hitse.simpleView()));return Object.assign(Object.create(null),{seq:this.seq,chars:1===e.length?e[0]:e,kids:this.children.map((e=>e.simpleView()))})}}function l(e,t){if(0===e)return e=>1;if(1===e)return e=>e;const r=Object.values(t),i=r.reduce(((e,t)=>e+t.weight),0)/r.length;return t=>Math.pow(t/i,e)}t=new WeakMap,Object.defineProperty(i,"PATH_CMP",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>e.ownHits-t.ownHits}),e.ChildNode=i,s.R.protoNoEnum(i,"_finalize","_rIncrHits"),Object.freeze(i),Object.freeze(i.prototype),e.GET_SCALE_WEIGHT_FUNC=l,Object.freeze(l)}(i||(i={})),Object.freeze(i);class n{constructor(e,t){Object.defineProperty(this,"char",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"weightInv",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hits",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.char=e,this.weightInv=1/t}reset(){this.hits=0}_incrementNumHits(){this.hits+=this.weightInv}simpleView(){return Object.assign(Object.create(null),{char:this.char})}}Object.defineProperty(n,"CMP",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>e.hits-t.hits}),Object.freeze(n),Object.freeze(n.prototype);class l extends o.Uo{constructor(e,t){super(),Object.defineProperty(this,"frontendDesc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"treeMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"leafNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.frontendDesc=l.GET_FRONTEND_DESC_BY_ID(e),this.treeMap=i.ParentNode.CREATE_TREE_MAP(Object.getPrototypeOf(this).constructor.BUILD(),t),this.leafNodes=this.treeMap.getLeaves(),s.R.propNoWrite(this,"frontendDesc","treeMap","leafNodes")}get numLeaves(){return this.leafNodes.length}reset(){this.treeMap.reset()}getNonConflictingChar(e){this.leafNodes.sort(i.ParentNode.LEAF_CMP);e:for(const t of this.leafNodes){let r=t;for(let i=t;i;i=i.parent){const t=e.find((e=>e.startsWith(i.seq)));if(t){if(t.length>i.seq.length)break;continue e}i.ownHits(e[t]={seq:t,weight:r},e)),{})}}(t=e.BuildUtils||(e.BuildUtils={}))}(l||(l={})),Object.freeze(l),Object.freeze(l.prototype)},765:(e,t,r)=>{"use strict";r.r(t),r.d(t,{OfflineGame:()=>_});var i=r(242),s=r(903),o=r(632),a=r(115),n=r(825),l=r(157),h=r(477);class c extends h.J5{constructor(e,t){super(e,t),Object.defineProperty(this,"_nextMovementTimerMultiplier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_scheduledMovementCallbackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_notifyGameNowPlaying(){super._notifyGameNowPlaying(),this.delayedMovementContinue()}_notifyGameNowPaused(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}_notifyGameNowOver(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}movementContinue(){const e=this.computeDesiredDest();this._nextMovementTimerMultiplier=this.game.grid.tile.at(e).langSeq.length,this.makeMovementRequest(this.game.grid.getUntToward(e,this.coord),this.getNextMoveType()),this.delayedMovementContinue()}delayedMovementContinue(){this._scheduledMovementCallbackId=this.game.setTimeout(this.movementContinue.bind(this),this.computeNextMovementTimer()*this._nextMovementTimerMultiplier)}}!function(e){e.of=(t,r)=>{const i=r.familyId;return new e._Constructors[i](t,r)}}(c||(c={})),o.R.protoNoEnum(c,"movementContinue");var d=r(532);class u{constructor(e){Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const t=[];for(const r of e)t[r]=new u.Entry;this.entries=t,o.R.propNoWrite(this,"entries")}reset(){for(const e of this.entries)e.reset()}}!function(e){class t{constructor(){Object.defineProperty(this,"moveCounts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"totalHealthPickedUp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.moveCounts={}}reset(){this.totalHealthPickedUp=0,Object.getOwnPropertyNames(d.J5.MoveType).forEach((e=>{this.moveCounts[e]=0}))}}e.Entry=t,Object.freeze(t),Object.freeze(t.prototype)}(u||(u={})),Object.freeze(u),Object.freeze(u.prototype);var f,g,m,b,p=r(688),v=r(110),y=r(692),O=r(254);class w extends c{constructor(e,t){super(e,t),Object.defineProperty(this,"threatProximity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"targetProximity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"behaviour",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),f.set(this,void 0),this.behaviour=Object.freeze(Object.assign({},w.Behaviour.DEFAULT,t.familyArgs)),this.grid=this.game.grid}_afterAllPlayersConstruction(){super._afterAllPlayersConstruction(),this.threatProximity=this.game.teams.filter((e=>e.id!==this.teamId)).flatMap((e=>e.members)),this.targetProximity=[...this.threatProximity],o.R.propNoWrite(this,"threatProximity","targetProximity","behaviour","grid")}reset(e){super.reset(e),(0,s.YH)(this,f,this.coord)}moveTo(e){(0,s.YH)(this,f,this.coord),super.moveTo(e)}computeDesiredDest(){this.threatProximity.sort(((e,t)=>this.grid.minMovesFromTo(e.coord,this.coord)-this.grid.minMovesFromTo(t.coord,this.coord)));for(const e of this.threatProximity){if(this.grid.minMovesFromTo(e.coord,this.coord)>this.behaviour.fearDistance)break;if(!e.status.isDowned&&e.status.health>this.status.health)return this.grid.getUntAwayFrom(e.coord,this.coord).coord}if(this.targetProximity.sort(((e,t)=>this.grid.minMovesFromTo(this.coord,e.coord)-this.grid.minMovesFromTo(this.coord,t.coord))),this.status.isDowned)for(const e of this.targetProximity){if(this.grid.minMovesFromTo(this.coord,e.coord)>this.behaviour.bloodThirstDistance)break;if(e.status.health{v.r._Constructors=Object.freeze({EUCLID2:y.i.Grid,BEEHIVE:O.v.Grid}),Object.freeze(v.r),Object.freeze(v.r.prototype);{const e=c;e._Constructors=Object.freeze({CHASER:w}),Object.freeze(e),Object.freeze(e.prototype)}})();class P extends p.R{constructor(e,t,i){super(e,t,i),Object.defineProperty(this,"averageFreeHealth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"averageFreeHealthPerTile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"healthCostOfBoost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),g.set(this,void 0),m.set(this,void 0),Object.defineProperty(this,"lang",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),b.set(this,void 0),Object.defineProperty(this,"scoreInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.averageFreeHealth=i.averageFreeHealthPerTile*this.grid.area,this.averageFreeHealthPerTile=i.averageFreeHealthPerTile,this.healthCostOfBoost=n.l.K.HEALTH_COST_OF_BOOST(this.averageFreeHealthPerTile,this.grid.static.getDiameterOfLatticePatchHavingArea),(0,s.YH)(this,m,new Set),this.scoreInfo=new u(this.players.map((e=>e.playerId))),o.R.propNoWrite(this,"averageFreeHealth","averageFreeHealthPerTile","healthCostOfBoost","scoreInfo"),(0,s.YH)(this,b,r(59)(`./${this.langFrontend.module}.ts`).then((e=>{const t=this.langFrontend.export.split(".").reduce(((e,t)=>e[t]),e[this.langFrontend.module]);return this.lang=new t(i.langWeightExaggeration),o.R.propNoWrite(this,"lang"),this.grid.static.getAmbiguityThreshold(),this.lang})))}reset(){const e=Object.create(null,{reset:{get:()=>super.reset}});return(0,s.mG)(this,void 0,void 0,(function*(){yield e.reset.call(this),(0,s.YH)(this,g,0),(0,s.Q_)(this,m).clear(),yield(0,s.Q_)(this,b),this.lang.reset(),this.grid.shuffledForEachTile((e=>{e.setLangCharSeqPair(this.dryRunShuffleLangCharSeqAt(e))})),this.teams.forEach((e=>e.reset()));const t=this.grid.static.getSpawnCoords(this.teams.map((e=>e.members.length)),this.grid.dimensions);return this.teams.forEach(((e,r)=>{e.members.forEach(((e,i)=>{e.reset(this.grid.tile.at(t[r][i]))}))})),this.scoreInfo.reset(),Promise.resolve()}))}_createArtifPlayer(e){return c.of(this,e)}dryRunShuffleLangCharSeqAt(e,t=!1){e.setLangCharSeqPair(a.U.CharSeqPair.NULL);let r=this.grid.getDestsFromSourcesTo(e.coord).map((e=>e.langSeq));if(t){const e=a.U.CharSeqPair.NULL.seq;r=r.filter((t=>t!==e))}return Object.freeze(r),this.lang.getNonConflictingChar(r)}get currentFreeHealth(){return(0,s.Q_)(this,g)}get freeHealthTiles(){return(0,s.Q_)(this,m)}dryRunSpawnFreeHealth(e){var t;let r=this.averageFreeHealth-this.currentFreeHealth;if(r<=0)return;const i=[];for(;r>0;){let s;do{s=this.grid.tile.at(this.grid.getRandomCoord())}while(s.isOccupied||i.find((e=>l.u.equals(s.coord,e.coord))));const o=n.l.K.AVERAGE_HEALTH_TO_SPAWN_ON_TILE;if(Math.random()l.u.equals(s.coord,e.coord))))?r.newFreeHealth=(null!==(t=r.newFreeHealth)&&void 0!==t?t:0)+o:i.push({coord:s.coord,lastKnownUpdateId:1+s.lastKnownUpdateId,newFreeHealth:s.freeHealth+o})}r-=o}return i}executeTileModEvent(e,t=!0){o.R.deepFreeze(e);const r=this.grid.tile.at(e.coord);return(0,s.YH)(this,g,(0,s.Q_)(this,g)+(e.newFreeHealth-r.freeHealth)),0===e.newFreeHealth?(0,s.Q_)(this,m).delete(r):(0,s.Q_)(this,m).add(r),super.executeTileModEvent(e,t),r}managerCheckGamePlayingRequest(e){if(this.status!==n.l.Status.PLAYING)return;const t=this.players[e.playerId];if(!t)throw new Error("No such player exists.");if(e.playerLastAcceptedRequestId!==t.lastAcceptedRequestId)throw new RangeError(e.playerLastAcceptedRequestId{var i={"./Chinese.ts":[216,7,330],"./Emote.ts":[655,9,858],"./English.ts":[891,9,184],"./Japanese.ts":[800,9,410],"./Korean.ts":[3,9,227],"./Ngrams.ts":[492,9,273],"./Numpad.ts":[193,9,683],"./Shell.ts":[521,9,159],"./defs/Chinese.ts":[958,7,704],"./defs/English100.ts":[213,9,885]};function s(e){if(!r.o(i,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],s=t[0];return r.e(t[2]).then((()=>r.t(s,16|t[1])))}s.keys=()=>Object.keys(i),s.id=59,e.exports=s}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[755],{208:(e,t,s)=>{"use strict";s.d(t,{U:()=>c});var r,i=s(164),o=s(139),a=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},n=(e,t,s)=>(a(e,t,"read from private field"),s?s.call(e):t.get(e));!function(e){var t;const s=class{constructor(e,s="",r){var i,o,n;t.set(this,[]),this.carryHits=0,Object.defineProperty(this,"parent",{enumerable:!0,value:e}),Object.defineProperty(this,"seq",{enumerable:!0,value:s}),Object.defineProperty(this,"children",{enumerable:!0,value:[]}),i=this,o=t,n=Object.freeze(r),a(i,o,"write to private field"),o.set(i,n),Object.seal(this)}get ownHits(){var e,t;return this.carryHits-(null!=(t=null==(e=this.parent)?void 0:e.carryHits)?t:0)}reset(){this.carryHits=0;for(const e of this.children)e.reset();for(const e of n(this,t))e.reset(),this.incrHits(e,Math.random()*o.Uo.CHAR_HIT_COUNT_SEED_CEILING)}getLeaves(){const e=[];return this._rGetLeaves(e),e.freeze()}_rGetLeaves(e){if(this.children.length)for(const t of this.children)t._rGetLeaves(e);else e.push(this)}chooseOnePair(){let e=n(this,t)[0];for(const s of n(this,t))s.hits{const r=new h(e,i(s)),a=o.get(t);void 0!==a?a.push(r):o.set(t,[r])}));const a=[];let n;for(const[e,t]of Array.from(o).seal().sort((([e],[t])=>e1;if(1===e)return e=>e;const s=Object.values(t),r=s.reduce(((e,t)=>e+t.weight),0)/s.length;return t=>Math.pow(t/r,e)}t=new WeakMap,r.LEAF_CMP=(e,t)=>e.carryHits-t.carryHits,e.Node=r,i.R.protoNoEnum(r,"_rGetLeaves","_rIncrHits"),Object.freeze(r),Object.freeze(r.prototype),e.GET_SCALE_WEIGHT_FUNC=c,Object.freeze(c)}(r||(r={})),Object.freeze(r);class h{constructor(e,t){this.char=e,this.hits=0,this.char=e,Object.defineProperty(this,"weightInv",{enumerable:!0,value:1/t}),Object.seal(this)}reset(){this.hits=0}_incrementNumHits(){this.hits+=this.weightInv}}Object.freeze(h),Object.freeze(h.prototype);class c extends o.Uo{constructor(e,t){super(),this.frontendDesc=c.GET_FRONTEND_DESC_BY_ID(e),this.treeRoots=r.Node.CREATE_TREE_MAP(Object.getPrototypeOf(this).constructor.BUILD(),t);const s=this.treeRoots.map((e=>e.getLeaves()));this.leafNodes=s.flat(),this.isolatedMinOpts=s.map((e=>e.length)).sort().slice(0,-1).reduce(((e,t)=>e+t),0),i.R.propNoWrite(this,"frontendDesc","treeRoots","leafNodes","isolatedMinOpts"),Object.seal(this)}reset(){for(const e of this.treeRoots)e.reset()}getNonConflictingChar(e){this.leafNodes.sort(r.Node.LEAF_CMP);e:for(const t of this.leafNodes){let s=t;for(let r=t;void 0!==r;r=r.parent){const t=e.find((e=>e.startsWith(r.seq)));if(t){if(t.length>r.seq.length)break;continue e}r.ownHits(e[t]={seq:t,weight:s},e)),{})}}(c||(c={})),Object.freeze(c),Object.freeze(c.prototype)},303:(e,t,s)=>{"use strict";s.r(t),s.d(t,{OfflineGame:()=>I});var r,i=s(61),o=s(52),a=s(46),n=s(783),h=s(164),c=s(208),d=s(892),l=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},p=(e,t,s)=>(l(e,t,"read from private field"),s?s.call(e):t.get(e)),u=(e,t,s,r)=>(l(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);class f{constructor(e,t){r.set(this,0),this.tiles=new Map;const s=d.l.K._HEALTH_COST_OF_BOOST(e.averageHealthPerTile,t.getLatticePatchDiameter);this.K=Object.freeze({avg:e.averageHealthPerTile*t.getArea(e.gridDimensions),avgPerTile:e.averageHealthPerTile,costOfBoost:e=>s/e.seq.length}),h.R.propNoWrite(this,"K"),Object.seal(this)}get currentAmount(){return p(this,r)}reset(){u(this,r,0),this.tiles.clear()}add(e){u(this,r,p(this,r)+e)}}r=new WeakMap,Object.freeze(f),Object.freeze(f.prototype);class g{constructor(e){const t=[];for(const s of e)t[s]=new g.Entry;this.entries=t,h.R.propNoWrite(this,"entries"),Object.seal(this)}reset(){for(const e of this.entries)e.reset()}}!function(e){class t{constructor(){this.moveCounts={}}reset(){this.totalHealthPickedUp=0,Object.getOwnPropertyNames(n.J.MoveType).forEach((e=>{this.moveCounts[e]=0}))}}e.Entry=t,Object.freeze(t),Object.freeze(t.prototype)}(g||(g={})),Object.freeze(g),Object.freeze(g.prototype);var m=s(810),v=s(702),y=s(33),b=s(216),O=(e,t,s)=>(((e,t,s)=>{if(!t.has(e))throw TypeError("Cannot read from private field")})(e,t),s?s.call(e):t.get(e));class _ extends n.J{constructor(e,t){super(e,t),this._nextMovementTimerMultiplier=void 0,this._scheduledMovementCallbackId=void 0}onGamePlaying(){super.onGamePlaying(),this._delayedMovementContinue()}onGamePaused(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}onGameOver(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}_movementContinue(){const e=this.computeDesiredDest();this._nextMovementTimerMultiplier=this.game.grid.tileAt(e).seq.length,this.makeMovementRequest(this.game.grid.getUntToward(e,this.coord).coord,this.getNextMoveType()),this._delayedMovementContinue()}_delayedMovementContinue(){this._scheduledMovementCallbackId=this.game.setTimeout(this._movementContinue.bind(this),this.computeNextMovementTimer()*this._nextMovementTimerMultiplier)}}!function(e){var t;e._Constructors={CHASER:void 0},e.of=(t,s)=>{const r=s.familyId;return new e._Constructors[r](t,s)};class s extends e{constructor(){super(...arguments),t.set(this,{which:0,reuses:0,target:void 0})}reset(e){super.reset(e),O(this,t).which=0,O(this,t).reuses=0,O(this,t).target=void 0}computeDesiredDest(){const e=O(this,t);if(void 0!==e.target&&e.reuses<=d.l.K._ROBOT_PRIORITY_MAX_REUSES){const t=this._behaviours[e.which].call(this,e.target);if(void 0!==t)return e.reuses++,t.dest}e.reuses=0;for(let t=0;te.id!==this.teamId)).flatMap((e=>e.members)).seal(),this.prey=[...this.pred].seal(),h.R.propNoWrite(this,"pred","prey")}_bhvrEvadePred(e){if(void 0!==e)return{dest:this.grid.getUntAwayFrom(this.game.players[e].coord,this.coord).coord};this.pred.sort(((e,t)=>this.grid.dist(e.coord,this.coord)-this.grid.dist(t.coord,this.coord)));for(const e of this.pred){if(this.grid.dist(e.coord,this.coord)>this.params.fearDistance)break;if(!e.isDowned&&e.health>this.health)return{dest:this.grid.getUntAwayFrom(e.coord,this.coord).coord,target:e.playerId}}}_bhvrChasePrey(e){if(void 0!==e)return{dest:this.game.players[e].coord};if(this.prey.sort(((e,t)=>this.grid.dist(this.coord,e.coord)-this.grid.dist(this.coord,t.coord))),this.isDowned)for(const e of this.prey){if(this.grid.dist(this.coord,e.coord)>this.params.bloodThirstDistance)break;if(e.health{if(!t.has(e))throw TypeError("Cannot "+s)};(()=>{Object.freeze(Object.assign(m.r._Constructors,{W_EUCLID2:y.K.Grid,BEEHIVE:b.v.Grid})),Object.freeze(m.r);{const e=_;Object.freeze(Object.assign(e._Constructors,{CHASER:E})),Object.freeze(e)}})();class j extends v.S{constructor(e){var t,r,i;super(e),this.lang=void 0,C.set(this,void 0),this.health=new f(e.desc,this.grid.static),this.scoreInfo=new g(this.players.map((e=>e.playerId))),h.R.propNoWrite(this,"health","scoreInfo"),t=this,r=C,i=s(59)(`./${this.langFrontend.module}.ts`).then((t=>{const s=this.langFrontend.export.split(".").reduce(((e,t)=>e[t]),t[this.langFrontend.module]);return this.lang=new s(e.desc.langWeightExaggeration),h.R.propNoWrite(this,"lang"),this.lang})),w(t,r,"write to private field"),r.set(t,i)}async reset(){super.reset();const e=Object.freeze({playerCoords:[],csps:[]});var t,s;this.health.reset(),await(t=this,s=C,w(t,s,"read from private field"),s.get(t)),this.lang.reset(),this.grid.forEachShuffled(((t,s)=>{const r=this.dryRunShuffleLangCspAt(t.coord,!0);this.grid.write(t.coord,r),e.csps[s]=r})),this.teams.forEach((e=>e.reset()));const r=this.grid.static.getSpawnCoords(this.teams.map((e=>e.members.length)),this.grid.dimensions);return this.teams.forEach(((t,s)=>{t.members.forEach(((t,i)=>{const o=r[s][i];t.reset(o),e.playerCoords[t.playerId]=o}))})),this.scoreInfo.reset(),e}dryRunShuffleLangCspAt(e,t=!1){this.grid.write(e,c.U.CharSeqPair.NULL);let s=this.grid.getAllAltDestsThan(e).map((e=>e.seq)).freeze();if(t){const e=c.U.CharSeqPair.NULL.seq;s=s.filter((t=>t!==e)).freeze()}return this.lang.getNonConflictingChar(s)}dryRunSpawnHealth(e){var t;let s=this.health.K.avg-this.health.currentAmount;if(s<=0)return e;for(;s>0;){let r;do{r=this.grid.tileAt(this.grid.getRandomCoord())}while(r.occId!==n.J.Id.NULL);const i=d.l.K.AVERAGE_HEALTH_TO_SPAWN_ON_TILE;if(Math.random()_.of(e,t),onGameBecomeOver:e},desc:(n.J.CtorArgs.finalize(t),t),operatorIds:t.players.filter((e=>"HUMAN"===e.familyId)).map((e=>e.playerId))}),Object.seal(this)}setTimeout(e,t,...s){return setTimeout(e,t,s)}cancelTimeout(e){clearTimeout(e)}}Object.freeze(I),Object.freeze(I.prototype)},59:(e,t,s)=>{var r={"./Chinese.ts":[83,7,330],"./Emote.ts":[985,9,858],"./English.ts":[825,9,184],"./Japanese.ts":[885,9,410],"./Korean.ts":[969,9,227],"./Ngrams.ts":[755,9,273],"./Numpad.ts":[444,9,683],"./Shell.ts":[25,9,159],"./defs/Chinese.ts":[711,7,704],"./defs/English100.ts":[589,9,885]};function i(e){if(!s.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return s.e(t[2]).then((()=>s.t(i,16|t[1])))}i.keys=()=>Object.keys(r),i.id=59,e.exports=i}}]); //# sourceMappingURL=offline.js.map \ No newline at end of file diff --git a/client/chunk/game/offline.js.br b/client/chunk/game/offline.js.br index 63f63b2d..5549bc6c 100644 Binary files a/client/chunk/game/offline.js.br and b/client/chunk/game/offline.js.br differ diff --git a/client/chunk/game/offline.js.map b/client/chunk/game/offline.js.map index 1dccdcb7..0df6ec0d 100644 --- a/client/chunk/game/offline.js.map +++ b/client/chunk/game/offline.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/LangSeqTreeNode.ts","webpack://snakey3/./src/base/lang/Lang.ts","webpack://snakey3/./src/base/game/player/ArtificialPlayer.ts","webpack://snakey3/./src/base/game/ScoreInfo.ts","webpack://snakey3/./src/base/game/player/artificials/Chaser.ts","webpack://snakey3/./src/base/game/ctormaps/CmapManager.ts","webpack://snakey3/./src/base/game/gameparts/GamepartManager.ts","webpack://snakey3/./src/client/game/OfflineGame.ts","webpack://snakey3/./src/base/lang/impl|lazy|/^/.*/.ts$/|chunkName: lang/[request]|groupOptions: {}|namespace object"],"names":["LangSeqTree","ParentNode","this","children","JsUtils","child","reset","carryHits","Object","freeze","_finalize","leafNodes","_rGetLeaves","length","push","forwardDict","weightScaling","scaleWeight","GET_SCALE_WEIGHT_FUNC","reverseDict","Map","entries","forEach","char","seq","weight","weightedChar","WeightedLangChar","chars","get","undefined","set","rootNode","cursor","Array","from","sort","seqA","seqB","startsWith","parent","newChild","ChildNode","a","b","prototype","sequence","characters","super","incrHits","Math","random","wgtChar","wc","hits","pair","wCharToHit","numTimes","_incrementNumHits","_rIncrHits","weightInv","map","simpleView","assign","create","kids","ogWgt","values","averageWeight","reduce","sum","next","originalWeight","pow","ownHits","Lang","frontendDescId","weightExaggeration","frontendDesc","GET_FRONTEND_DESC_BY_ID","treeMap","CREATE_TREE_MAP","getPrototypeOf","constructor","BUILD","getLeaves","avoid","LEAF_CMP","search_branch","leaf","hitNode","node","superSeq","find","avoidSeq","chooseOnePair","Error","id","displayName","root","numLeaves","BuildUtils","WORD_FOR_WORD","seq2Weight","accumulator","ArtificialPlayer","Player","game","desc","_notifyGameNowPlaying","delayedMovementContinue","cancelTimeout","_scheduledMovementCallbackId","desiredDest","computeDesiredDest","_nextMovementTimerMultiplier","grid","tile","at","langSeq","makeMovementRequest","getUntToward","coord","getNextMoveType","setTimeout","movementContinue","bind","computeNextMovementTimer","of","playerDesc","familyId","_Constructors","ScoreInfo","playerIds","Entry","entry","moveCounts","totalHealthPickedUp","getOwnPropertyNames","key","Chaser","behaviour","Behaviour","DEFAULT","familyArgs","_afterAllPlayersConstruction","threatProximity","teams","filter","team","teamId","flatMap","members","targetProximity","spawnTile","dest","moveTo","pa","pb","minMovesFromTo","threatP","fearDistance","status","isDowned","health","getUntAwayFrom","targetP","bloodThirstDistance","healthReserve","freeHealthTiles","size","wanderingAimlessness","getRandomCoordAround","awayFunc","closestFht","closestFhtDistance","Infinity","fht","distance","keyPressesPerSecond","Grid","AP","GamepartManager","GamepartEvents","gameType","impl","averageFreeHealth","averageFreeHealthPerTile","area","healthCostOfBoost","Game","static","getDiameterOfLatticePatchHavingArea","Set","scoreInfo","players","player","playerId","langFrontend","module","then","langModule","LangConstructor","export","split","nsps","propName","lang","langWeightExaggeration","getAmbiguityThreshold","clear","shuffledForEachTile","setLangCharSeqPair","dryRunShuffleLangCharSeqAt","spawnPoints","getSpawnCoords","dimensions","teamIndex","member","memberIndex","Promise","resolve","targetTile","doCheckEmptyTiles","getDestsFromSourcesTo","nullSeq","getNonConflictingChar","sameReqOtherModDescs","healthToSpawn","currentFreeHealth","retval","getRandomCoord","isOccupied","Coord","tileHealthToAdd","otherDesc","newFreeHealth","lastKnownUpdateId","freeHealth","doCheckOperatorSeqBuffer","delete","add","executeTileModEvent","playerLastAcceptedRequestId","lastAcceptedRequestId","RangeError","managerCheckGamePlayingRequest","executePlayerMoveEvent","destModDesc","moveIsBoost","moveType","newPlayerHealthValue","playerScoreInfo","newPlayerHealth","newCharSeqPair","tileHealthModDescs","dryRunSpawnFreeHealth","eventId","nextUnusedEventId","sourceP","bubbler","executePlayerBubbleEvent","CHECK_VALID_CTOR_ARGS","args","fr","requiredFields","coordSys","gridDimensions","langId","playerDescs","missingFields","fieldName","field","NaN","parseInt","max","parseFloat","OfflineGame","onGameBecomeOver","gameDesc","tileClass","playerStatusCtor","_ctorBrowserGame","callback","millis","handle","clearTimeout","BrowserGame","webpackAsyncContext","req","__webpack_require__","o","e","code","ids","t","keys","exports"],"mappings":"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","file":"chunk/game/offline.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/LangSeqTreeNode.ts","webpack://capswalk/./src/base/lang/Lang.ts","webpack://capswalk/./src/base/game/gameparts/HealthInfo.ts","webpack://capswalk/./src/base/game/gameparts/ScoreInfo.ts","webpack://capswalk/./src/base/game/player/RobotPlayer.ts","webpack://capswalk/./src/base/game/player/robots/Chaser.ts","webpack://capswalk/./src/base/game/gameparts/GameManager.ts","webpack://capswalk/./src/base/game/ctormaps/CmapManager.ts","webpack://capswalk/./src/client/game/OfflineGame.ts","webpack://capswalk/./src/base/lang/impl|lazy|/^/.*/.ts$/|chunkName: lang/[request]|groupOptions: {}|namespace object"],"names":["LangSeqTree","parent","seq","characters","carryHits","Object","defineProperty","this","enumerable","value","freeze","seal","child","children","reset","char","incrHits","Math","random","leafNodes","_rGetLeaves","length","push","wgtChar","wc","hits","pair","wCharToHit","numTimes","_incrementNumHits","_rIncrHits","weightInv","forwardDict","weightScaling","scaleWeight","GET_SCALE_WEIGHT_FUNC","reverseDict","Map","entries","forEach","weight","weightedChar","WeightedLangChar","chars","get","set","roots","Array","from","sort","seqA","seqB","startsWith","newNode","ogWgt","values","averageWeight","reduce","sum","next","originalWeight","pow","LEAF_CMP","a","b","Node","JsUtils","prototype","frontendDescId","weightExaggeration","super","frontendDesc","Lang","GET_FRONTEND_DESC_BY_ID","treeRoots","CREATE_TREE_MAP","getPrototypeOf","constructor","BUILD","leaves","map","root","getLeaves","flat","isolatedMinOpts","l","slice","s","n","avoid","search_branch","leaf","hitNode","node","superSeq","find","avoidSeq","ownHits","chooseOnePair","Error","BuildUtils","WORD_FOR_WORD","seq2Weight","accumulator","HealthInfo","desc","gridStatic","tiles","baseCostOfBoost","Game","averageHealthPerTile","getLatticePatchDiameter","K","avg","getArea","gridDimensions","avgPerTile","costOfBoost","dest","clear","amount","ScoreInfo","playerIds","id","Entry","entry","moveCounts","totalHealthPickedUp","getOwnPropertyNames","Player","key","game","_nextMovementTimerMultiplier","_scheduledMovementCallbackId","onGamePlaying","_delayedMovementContinue","cancelTimeout","desiredDest","computeDesiredDest","grid","tileAt","makeMovementRequest","getUntToward","coord","getNextMoveType","setTimeout","_movementContinue","bind","computeNextMovementTimer","_Constructors","of","playerDesc","familyId","which","reuses","target","c","_behaviours","call","i","Decisive","RobotPlayer","Chaser","pred","prey","params","assign","Behaviour","DEFAULT","familyArgs","Symbol","iterator","keys","onTeamsBootstrapped","teams","filter","team","teamId","flatMap","members","cachedPred","getUntAwayFrom","players","pa","pb","dist","fearDistance","isDowned","health","playerId","cachedPrey","bloodThirstDistance","healthReserve","cachedHealthCoord","has","size","wanderingAimlessness","getRandomCoordAround","awayFunc","prevCoord","closestFht","closestFhtDistance","Infinity","fht","distance","keyPressesPerSecond","Grid","Robot","GameMirror","args","lang","static","scoreInfo","player","langFrontend","module","then","langModule","LangConstructor","export","split","nsps","propName","langWeightExaggeration","resetSer","playerCoords","csps","forEachShuffled","tile","index","csp","dryRunShuffleLangCspAt","write","spawnPoints","getSpawnCoords","dimensions","teamIndex","member","memberIndex","doCheckEmptyTiles","getAllAltDestsThan","nullSeq","getNonConflictingChar","changes","healthToSpawn","currentAmount","getRandomCoord","occId","healthToAdd","otherDesc","req","socket","initiator","lastRejectId","reqBuffer","reqDest","moveDest","status","commitStateChange","rejectId","getNextRejectId","moveIsBoost","moveType","newPlayerHealthValue","dryRunSpawnHealth","doCheckOperatorSeqBuffer","add","delete","commitTileMods","GameManager","CHECK_VALID_CTOR_ARGS","bad","requiredFields","coordSys","langId","missingFields","fieldName","field","langDesc","gridClass","ambiguityThreshold","NaN","parseInt","max","parseFloat","OfflineGame","onGameBecomeOver","gameDesc","impl","gridClassLookup","VisibleGrid","OperatorPlayer","operatorIds","p","callback","millis","handle","clearTimeout","webpackAsyncContext","__webpack_require__","o","Promise","resolve","e","code","ids","t","exports"],"mappings":"uHAMiBA,E,6IAAV,SAAU,GANjB,MASQ,cAgBI,YACTC,EACAC,EAAgB,GAChBC,G,UAdQ,WAA0C,IAKzC,KAAAC,UAAoB,EAW7BC,OAAOC,eAAeC,KAAM,SAAY,CAAEC,YAAY,EAAMC,MAAOR,IACnEI,OAAOC,eAAeC,KAAM,MAAY,CAAEC,YAAY,EAAMC,MAAOP,IACnEG,OAAOC,eAAeC,KAAM,WAAY,CAAEC,YAAY,EAAMC,MAAO,K,EACnEF,K,EAAK,E,EAAcF,OAAOK,OAAOP,G,2CACjCE,OAAOM,KAAKJ,MAAA,cAlCf,QAqBG,OAAOA,KAAKH,WAAa,kBAAAG,KAAKN,aAAL,IAAaG,WAAb,EAA0B,GAgB7C,QAENG,KAAKH,UAAY,EACjB,UAAWQ,KAASL,KAAKM,SAAUD,EAAME,QAGzC,UAAWC,KAAQ,EAAAR,KAAK,GACvBQ,EAAKD,QACLP,KAAKS,SAASD,EAAME,KAAKC,SAAW,kCAI/B,YACN,MAAMC,EAAyB,GAE/B,OADAZ,KAAKa,YAAYD,GACVA,EAAUT,SAER,YAAYS,GACrB,GAAIZ,KAAKM,SAASQ,OACjB,UAAWT,KAASL,KAAKM,SAAUD,EAAMQ,YAAYD,QAErDA,EAAUG,KAAKf,MAgBV,gBACN,IAAIgB,EAAU,EAAAhB,KAAK,GAAY,GAC/B,UAAWiB,KAAM,EAAAjB,KAAK,GACjBiB,EAAGC,KAAOF,EAAQE,OACrBF,EAAUC,GAGZ,MAAME,EAAyB,CAC9BX,KAAMQ,EAAQR,KACdb,IAAMK,KAAKL,KAGZ,OADAK,KAAKS,SAASO,GACPG,EAEA,SAASC,EAA8BC,EAAmB,GACjED,EAAWE,oBACXtB,KAAKuB,WAAWH,EAAWI,UAAYH,GAEhC,WAAWG,GAClBxB,KAAKH,WAAa2B,EAClB,UAAWnB,KAASL,KAAKM,SAAUD,EAAMkB,WAAWC,GAAA,uBAOpDC,EACAC,GAEA,MAAMC,EAAc,EAAYC,sBAAsBF,EAAeD,GAG/DI,EAAc,IAAIC,IACxBhC,OAAOiC,QAAQN,GAAatB,SAAS6B,SAAQ,EAAExB,GAAOb,MAAKsC,cAC1D,MAAMC,EAAe,IAAIC,EACxB3B,EAAMmB,EAAYM,IAEbG,EAAQP,EAAYQ,IAAI1C,QAChB,IAAVyC,EAEHA,EAAMrB,KAAKmB,GAEXL,EAAYS,IAAI3C,EAAK,CAACuC,OAIxB,MAAMK,EAAgB,GACtB,IAAI7C,EACJ,UAAYC,EAAKyC,KAEhBI,MAAMC,KAAKZ,GAAazB,OAAOsC,MAAK,EAAEC,IAAQC,KAAWD,EAAOC,GAAS,EAAI,IAAGzC,SAC/D,CACjB,UAAkB,IAAXT,IAAyBC,EAAIkD,WAAWnD,EAAOC,MACrDD,EAASA,EAAOA,OAEjB,MAAMoD,EAAgB,IAAI,EAAKpD,EAAQC,EAAKyC,QAC7B,IAAX1C,EACFA,EAAOY,SAAoBS,KAAK+B,GAEjCP,EAAMxB,KAAK+B,GAEZpD,EAASoD,EAEV,OAAOP,EAAMpC,WAjIR,QA8IA,WACNuB,EACAD,GAEA,GAAsB,IAAlBC,EAAqB,MAAO,IAAM,EACtC,GAAsB,IAAlBA,EAAqB,OAAQqB,GAAkBA,EACnD,MAAMC,EAASlD,OAAOkD,OAAOvB,GACvBwB,EAAgBD,EAAOE,QAAO,CAACC,EAAKC,IAASD,EAAOC,EAAKnB,QAAQ,GAAKe,EAAOlC,OACnF,OAAQuC,GAA2B3C,KAAK4C,IAAID,EAAiBJ,EAAevB,GAjJnE,cALH,EAoIiB6B,SAA6B,CAACC,EAAGC,IAChDD,EAAE3D,UAAY4D,EAAE5D,UArIlB,EAAM6D,OAwIbC,EAAA,cAAoBD,EAAM,cAAe,cACzC5D,OAAOK,OAAOuD,GACd5D,OAAOK,OAAOuD,EAAKE,WAIZ,EAAShC,wBAUhB9B,OAAOK,OAAOyB,GA3JR,CAAUnC,MAAA,KA6JjBK,OAAOK,OAAOV,GAWd,MAAM0C,EAgBE,YACU3B,EAChByB,GADgB,KAAAzB,OAHV,KAAAU,KAAe,EAMrBlB,KAAKQ,KAAOA,EACZV,OAAOC,eAAeC,KAAM,YAAa,CAAEC,YAAY,EAAMC,MAAO,EAAM+B,IAI1EnC,OAAOM,KAAKJ,MAEN,QACNA,KAAKkB,KAAO,EAEN,oBACNlB,KAAKkB,MAAQlB,KAAKwB,WAGpB1B,OAAOK,OAAOgC,GACdrC,OAAOK,OAAOgC,EAAiByB,WCxLxB,gBAA4B,KAqBxB,YACTC,EACAC,GAEAC,QACA/D,KAAKgE,aAAeC,EAAKC,wBAAwBL,GACjD7D,KAAKmE,UAAY1E,EAAYiE,KAAKU,gBAChCtE,OAAOuE,eAAerE,MAAMsE,YAA6BC,QAC1DT,GAED,MAAMU,EAASxE,KAAKmE,UAAUM,KAAKC,GAASA,EAAKC,cACjD3E,KAAKY,UAAY4D,EAAOI,OACxB5E,KAAK6E,gBAAkBL,EAAOC,KAAKK,GAAMA,EAAEhE,SAAQ4B,OAAOqC,MAAM,GAAG,GAAG7B,QAAO,CAAC8B,EAAEC,IAAMD,EAAEC,GAAG,GAC3FtB,EAAA,cAAoB3D,KAAc,eAAgB,YAAa,YAAa,mBAC5EF,OAAOM,KAAKJ,MAWN,QACN,UAAW0E,KAAQ1E,KAAKmE,UACvBO,EAAKnE,QA6BA,sBACN2E,GAQAlF,KAAKY,UAAU8B,KAAKjD,EAAYiE,KAAKH,UAErC4B,EACA,UAAWC,KAAQpF,KAAKY,UAAW,CAClC,IAAIyE,EAAUD,EACd,QACKE,EAAqCF,OAChC,IAATE,EACAA,EAAOA,EAAK5F,OACX,CACD,MAAM6F,EAAWL,EAAMM,MAAMC,GAAaA,EAAS5C,WAAWyC,EAAM3F,OAEpE,GAAI4F,EAAU,CACb,GAAIA,EAASzE,OAASwE,EAAK3F,IAAImB,OAE9B,MAGA,WAIEwE,EAAKI,QAAUL,EAAQK,UAC1BL,EAAUC,GAGZ,OAAOD,EAAQM,gBAGhB,MAAM,IAAIC,MAAM,WAGX,SAAU,GAaT,IAAUC,KAAA,EAAAA,aAAA,EAAAA,WAAA,KACAC,cAAT,SAAuBC,GAC7B,OAAOjG,OAAOiC,QAAQgE,GAAY5F,SAAS+C,QAC1C,CAAC8C,GAAcxF,EAAKyB,MACnB+D,EAAYxF,GAAQ,CAAEb,IAAKa,EAAMyB,UAC1B+D,IACL,KAnBA,CAAU/B,MAAA,KAqEjBnE,OAAOK,OAAO8D,GACdnE,OAAOK,OAAO8D,EAAKL,Y,iECrNnB,E,gQAQO,MAAMqC,EAQL,YACNC,EACAC,GAPD,WAAyB,GACT,KAAAC,MAAQ,IAAItE,IAQ3B,MAAMuE,EAAkBC,EAAA,0BACvBJ,EAAKK,qBACLJ,EAAWK,yBAEZxG,KAAKyG,EAAI3G,OAAOK,OAAO,CACtBuG,IAAKR,EAAKK,qBAAuBJ,EAAWQ,QAAQT,EAAKU,gBACzDC,WAAYX,EAAKK,qBACjBO,YAAcC,GAAeV,EAAkBU,EAAKpH,IAAImB,SAEzD6C,EAAA,cAAoB3D,KAAoB,KACxCF,OAAOM,KAAKJ,MAAA,oBAhBwB,OAAO,EAAAA,KAAK,GAmB1C,QACN,EAAAA,KAAK,EAAiB,GACtBA,KAAKoG,MAAMY,QAGL,IAAIC,GACV,EAAAjH,KAAK,EAAkB,OAAlB,GAAkBiH,IA5BxB,cAsCDnH,OAAOK,OAAO8F,GACdnG,OAAOK,OAAO8F,EAAWrC,WCtClB,MAAMsD,EAOL,YAAYC,GAClB,MAAMpF,EAAkC,GACxC,UAAWqF,KAAMD,EAChBpF,EAAQqF,GAAM,IAAIF,EAAUG,MAE7BrH,KAAK+B,QAAUA,EACf4B,EAAA,cAAoB3D,KAAmB,WACvCF,OAAOM,KAAKJ,MAGN,QACN,UAAWsH,KAAStH,KAAK+B,QACxBuF,EAAM/G,UAIF,SAAU,GAGT,QAUC,cACNP,KAAKuH,WAAa,GAGZ,QACNvH,KAAKwH,oBAAsB,EAC1B1H,OAAO2H,oBAAoBC,EAAA,YACH1F,SAAS2F,IACjC3H,KAAKuH,WAAWI,GAAO,MAlBnB,EAAMN,QAsBbvH,OAAOK,OAAOkH,GACdvH,OAAOK,OAAOkH,EAAMzD,WA1Bd,CAAUsD,MAAA,KA4BjBpH,OAAOK,OAAO+G,GACdpH,OAAOK,OAAO+G,EAAUtD,W,0JCzCjB,gBAAmC8D,EAAA,EAY/B,YAAYE,EAAwB1B,GAC7CnC,MAAM6D,EAAM1B,GARL,KAAA2B,kCAAuC,EAEvC,KAAAC,kCAAuC,EA0BxC,gBACN/D,MAAMgE,gBACS/H,KAAKgI,2BAGd,eACNhI,KAAK4H,KAAKK,cAAcjI,KAAK8H,8BAC7B9H,KAAK8H,kCAA+B,EAG9B,aACN9H,KAAK4H,KAAKK,cAAcjI,KAAK8H,8BAC7B9H,KAAK8H,kCAA+B,EAM7B,oBACP,MAAMI,EAAclI,KAAKmI,qBAMzBnI,KAAK6H,6BAA+B7H,KAAK4H,KAAKQ,KAAKC,OAAOH,GAAavI,IAAImB,OAE3Ed,KAAKsI,oBACJtI,KAAK4H,KAAKQ,KAAKG,aAAaL,EAAalI,KAAKwI,OAAOA,MACrDxI,KAAKyI,mBAGSzI,KAAKgI,2BAMb,2BAEPhI,KAAK8H,6BAA+B9H,KAAK4H,KAAKc,WAC7C1I,KAAK2I,kBAAkBC,KAAK5I,MAC5BA,KAAK6I,2BAA6B7I,KAAK6H,gCAMnC,SAAU,GAxGjB,MA0Gc,EAAAiB,cAOT,aAES,GAOA,EAAAC,GAAK,CACjBnB,EACAoB,KAEA,MAAMC,EAAWD,EAAWC,SAO5B,OAAO,IAAK,EAAAH,cAAcG,GAAWrB,EAAMoB,IAOrC,gBAAgC,EAAhC,kCAYG,WAAS,CACjBE,MAAQ,EACRC,OAAQ,EACRC,YAAQ,IAIF,MAAMZ,GACZzE,MAAMxD,MAAMiI,GACZ,EAAAxI,KAAK,GAAOkJ,MAAS,EACrB,EAAAlJ,KAAK,GAAOmJ,OAAS,EACrB,EAAAnJ,KAAK,GAAOoJ,YAAS,EAIZ,qBACT,MAAMC,EAAI,EAAArJ,KAAK,GACf,QAAiB,IAAbqJ,EAAED,QAAwBC,EAAEF,QAAU7C,EAAA,+BAAmC,CAC5E,MAAMlD,EAAOpD,KAAKsJ,YAAYD,EAAEH,OAAQK,KAAKvJ,KAAMqJ,EAAED,QACrD,QAAa,IAAThG,EAEH,OADAiG,EAAEF,SACK/F,EAAK2D,KAGdsC,EAAEF,OAAS,EACX,QAASK,EAAI,EAAGA,EAAIxJ,KAAKsJ,YAAYxI,OAAQ0I,IAAK,CACjD,MAAMpG,EAAOpD,KAAKsJ,YAAYE,GAAID,KAAKvJ,MACvC,QAAa,IAAToD,EAGH,OAFAiG,EAAEH,MAAQM,EACVH,EAAED,OAAShG,EAAKgG,OACThG,EAAK2D,KAGd,MAAM,IAAInB,MAAM,UAjCR,cAZH,EAAe6D,WA8DtB3J,OAAOK,OAAOsJ,GACd3J,OAAOK,OAAOsJ,EAAS7F,WAnGjB,CAAU8F,MAAA,KAqGjB/F,EAAA,cAAoB+F,EAAa,qBAEjC5J,OAAOM,KAAKsJ,GACZ5J,OAAOK,OAAOuJ,EAAY9F,WCxMnB,MAAM+F,UAAeD,EAAYD,SAUhC,YAAY7B,EAAwB1B,GAC1CnC,MAAM6D,EAAM1B,GATI,KAAA0D,KAA4B,GAC5B,KAAAC,KAAsB,GAStC7J,KAAK8J,OAAShK,OAAOK,OAAOL,OAAOiK,OAClC,GACAJ,EAAOK,UAAUC,QACjB/D,EAAKgE,aAENlK,KAAKoI,KAAOpI,KAAK4H,KAAKQ,KACtBtI,OAAOM,KAAKJ,MACZ2D,EAAA,cAAoB3D,KACnB,SAAU,QAEXA,KAAK6J,KAAKM,OAAOC,UACjBpK,KAAK4J,KAAKS,KAGJ,sBACNtG,MAAMuG,sBAGNtK,KAAK4J,KAAO5J,KAAK4H,KAAK2C,MACpBC,QAAQC,GAASA,EAAKrD,KAAOpH,KAAK0K,SAClCC,SAASF,GAASA,EAAKG,UACvBxK,OAGFJ,KAAK6J,KAAO,IAAI7J,KAAK4J,MAAMxJ,OAE3BuD,EAAA,cAAoB3D,KACnB,OAAQ,QAIF,eAAe6K,GACtB,QAAmB,IAAfA,EAA4B,MAAO,CACtC9D,KAAM/G,KAAKoI,KAAK0C,eAAe9K,KAAK4H,KAAKmD,QAAQF,GAAarC,MAAOxI,KAAKwI,OAAOA,OAGlFxI,KAAK4J,KAAKlH,MAAK,CAACsI,EAAGC,IACXjL,KAAKoI,KAAK8C,KAAKF,EAAGxC,MAAOxI,KAAKwI,OACjCxI,KAAKoI,KAAK8C,KAAKD,EAAGzC,MAAOxI,KAAKwI,SAEnC,UAAWoB,KAAQ5J,KAAK4J,KAAM,CAC7B,GAAI5J,KAAKoI,KAAK8C,KAAKtB,EAAKpB,MAAOxI,KAAKwI,OACjCxI,KAAK8J,OAAOqB,aAAc,MAC7B,IAAIvB,EAAKwB,UACLxB,EAAKyB,OAASrL,KAAKqL,OAEtB,MAAO,CACNtE,KAAM/G,KAAKoI,KAAK0C,eAAelB,EAAKpB,MAAOxI,KAAKwI,OAAOA,MACvDY,OAAQQ,EAAK0B,WAMT,eAAeC,GACtB,QAAmB,IAAfA,EAA4B,MAAO,CACtCxE,KAAM/G,KAAK4H,KAAKmD,QAAQQ,GAAa/C,OAQtC,GAJAxI,KAAK6J,KAAKnH,MAAK,CAACsI,EAAGC,IACXjL,KAAKoI,KAAK8C,KAAKlL,KAAKwI,MAAOwC,EAAGxC,OACjCxI,KAAKoI,KAAK8C,KAAKlL,KAAKwI,MAAOyC,EAAGzC,SAE/BxI,KAAKoL,SACR,UAAWvB,KAAQ7J,KAAK6J,KAAM,CAC7B,GAAI7J,KAAKoI,KAAK8C,KAAKlL,KAAKwI,MAAOqB,EAAKrB,OACjCxI,KAAK8J,OAAO0B,oBAAqB,MACpC,GAAI3B,EAAKwB,OAASrL,KAAKqL,OAASrL,KAAK8J,OAAO2B,cAC3C,MAAO,CACN1E,KAAM8C,EAAKrB,MACXY,OAAQS,EAAKyB,WAOV,0BAA0BI,GACjC,QAA0B,IAAtBA,GAAmC1L,KAAK4H,KAAKyD,OAAOjF,MAAMuF,IAAID,GACjE,MAAO,CAAE3E,KAAM2E,GAIhB,GAAoC,IAAhC1L,KAAK4H,KAAKyD,OAAOjF,MAAMwF,KAAY,CAEtC,GAAIlL,KAAKC,SAAWX,KAAK8J,OAAO+B,qBAE/B,MAAO,CAAE9E,KAAM/G,KAAKoI,KAAK0D,qBAAqB9L,KAAKwI,MAAO,IACpD,CAEN,MAAMuD,EAAW/L,KAAKoI,KAAK0C,eAAelC,KAAK5I,KAAKoI,KAAMpI,KAAKgM,WAC/D,MAAO,CAAEjF,KAAM/G,KAAKoI,KAAK0D,qBACxBC,EAASA,EAAS/L,KAAKwI,OAAOA,OAAOA,MAAO,KAI/C,IAAIyD,EACAC,EAAqBC,IACzB,UAAWC,KAAOpM,KAAK4H,KAAKyD,OAAOjF,MAAMpD,SAAU,CAClD,MAAMqJ,EAAWrM,KAAKoI,KAAK8C,KAAKlL,KAAKwI,MAAO4D,EAAI5D,OAC5C6D,EAAWH,IACdD,EAAaG,EACbF,EAAqBG,GAGvB,MAAO,CAAEtF,KAAMkF,EAAWzD,MAAOY,OAAQ6C,EAAWzD,OAG3C,kBACT,OAAOd,EAAA,kBAGE,2BACT,OAAO,IAAO1H,KAAK8J,OAAOwC,sBAGrB,SAAU,GAkCT,IAAUtC,KAAA,EAAAA,YAAA,EAAAA,UAAA,KACHC,QAA+BnK,OAAOK,OAAO,CACzDgL,aAAc,EACdK,oBAAqB,EACrBC,cAAe,EACfa,oBAAqB,EACrBT,qBAAsB,KAxClB,CAAUlC,MAAA,KA6CjBA,EAAO/F,UAAU0F,YACfxJ,OAAOK,OAAO,CACfwJ,EAAO/F,UAA0B,eACjC+F,EAAO/F,UAA0B,eACjC+F,EAAO/F,UAAqC,4BAE7CD,EAAA,cAAoBgG,EAAQ,uBAC5B7J,OAAOK,OAAOwJ,GACd7J,OAAOK,OAAOwJ,EAAO/F,W,IC9LrB,E,uECOA,MAEC9D,OAAOK,OAAOL,OAAOiK,OAAOwC,EAAA,gBAA+C,WAC3D,SAAe,QACjB,YAEdzM,OAAOK,OAAOoM,EAAA,GACd,CACA,MAAMC,EAAQ9C,EACd5J,OAAOK,OAAOL,OAAOiK,OAAOyC,EAAM1D,cAA2C,QAChEa,KAEb7J,OAAOK,OAAOqM,KDLf,GAGO,gBAEGC,EAAA,EAUF,YAAYC,G,UAKlB3I,MAAM2I,GAXS,KAAAC,UAAa,EACpB,mBAYR3M,KAAKqL,OAAS,IAAIpF,EAAWyG,EAAKxG,KAAMlG,KAAKoI,KAAKwE,QAClD5M,KAAK6M,UAAY,IAAI3F,EAAUlH,KAAK+K,QAAQtG,KAAKqI,GAAWA,EAAOxB,YACnE3H,EAAA,cAAoB3D,KACnB,SAAU,a,EAIXA,K,EAAK,E,EAEJ,WAAaA,KAAK+M,aAAaC,aAC7BC,MAAMC,IACR,MAAMC,EAAkBnN,KAAK+M,aAAaK,OAAOC,MAAM,KAAKnK,QAC3D,CAACoK,EAAMC,IAAaD,EAAKC,IACzBL,EAAWlN,KAAK+M,aAAaC,SAU9B,OAPAhN,KAAK2M,KAAO,IAAIQ,EAAgBT,EAAKxG,KAAKsH,wBAC1C7J,EAAA,cAAoB3D,KAAwB,QAMrCA,KAAK2M,Q,2CAAA,cAOb5I,MAAMxD,QACN,MAAMkN,EAAW3N,OAAOK,OAAO,CAC9BuN,aAAc,GACdC,KAAM,K,QAGP3N,KAAKqL,OAAO9K,c,EAKNP,K,EAAK,E,2CACXA,KAAK2M,KAAKpM,QACVP,KAAKoI,KAAKwF,iBAAgB,CAACC,EAAMC,KAChC,MAAMC,EAAM/N,KAAKgO,uBAAuBH,EAAKrF,OAAO,GACpDxI,KAAKoI,KAAK6F,MAAMJ,EAAKrF,MAAOuF,GAC5BN,EAASE,KAAKG,GAASC,KAIxB/N,KAAKuK,MAAMvI,SAASyI,GAASA,EAAKlK,UAClC,MAAM2N,EAAclO,KAAKoI,KAAKwE,OAAOuB,eACpCnO,KAAKuK,MAAM9F,KAAKgG,GAASA,EAAKG,QAAQ9J,SACtCd,KAAKoI,KAAKgG,YAWX,OATApO,KAAKuK,MAAMvI,SAAQ,CAACyI,EAAM4D,KACzB5D,EAAKG,QAAQ5I,SAAQ,CAACsM,EAAQC,KAC7B,MAAM/F,EAAQ0F,EAAYG,GAAYE,GACtCD,EAAO/N,MAAMiI,GACbiF,EAASC,aAAaY,EAAOhD,UAAY9C,QAG3CxI,KAAK6M,UAAUtM,QAERkN,EAmBA,uBAAuBjF,EAAcgG,GAA6B,GAGzExO,KAAKoI,KAAK6F,MAAMzF,EAAOvE,EAAA,oBAEvB,IAAIiB,EAAQlF,KAAKoI,KACfqG,mBAAmBjG,GACnB/D,KAAKoJ,GAASA,EAAKlO,MACnBQ,SAGF,GAAIqO,EAAmB,CACtB,MAAME,EAAUzK,EAAA,uBAChBiB,EAAQA,EAAMsF,QAAQ7K,GAAQA,IAAQ+O,IAASvO,SAEhD,OAAOH,KAAK2M,KAAKgC,sBAAsBzJ,GAYhC,kBAAkB0J,GAlJ3B,MAmJE,IAAIC,EAAgB7O,KAAKqL,OAAO5E,EAAEC,IAAM1G,KAAKqL,OAAOyD,cACpD,GAAID,GAAiB,EACpB,OAAOD,EAER,KAAOC,EAAgB,GAAG,CACzB,IAAIhB,EACJ,GACCA,EAAO7N,KAAKoI,KAAKC,OAAOrI,KAAKoI,KAAK2G,wBAElClB,EAAKmB,QAAUtH,EAAA,WAKhB,MAAMuH,EAAc3I,EAAA,oCACpB,GAAK5F,KAAKC,SAAW2F,EAAA,0BAA+B,CACnD,IAAI4I,EAAYN,EAAQf,EAAKrF,YACX,IAAd0G,EAEHA,EAAU7D,QAAU,SAAA6D,EAAU7D,QAAV,EAAoB,GAAK4D,EAE7CL,EAAQf,EAAKrF,OAAS,CACrB6C,OAAQwC,EAAKxC,OAAS4D,GAIzBJ,GAAiBI,EAElB,OAAOL,EAKD,mBAAmBO,EAAsBC,GAC/C,MAAMC,EAAYrP,KAAK+K,QAAQoE,EAAIE,WACnC,GAAIF,EAAIG,eAAiBD,EAAUE,UAAUD,aAC5C,OAED,MAAME,EAAUxP,KAAKoI,KAAKC,OAAO8G,EAAIM,UACrC,GAAMzP,KAAK0P,SAAWpJ,EAAA,kBAClBkJ,EAAQR,QAAUtH,EAAA,UAMrB,YAJA1H,KAAK2P,kBAAkB,CACtBC,SAAUP,EAAUE,UAAUM,kBAC9BR,UAAWF,EAAIE,WACbD,GAGJ,MAAMU,EAAeX,EAAIY,WAAarI,EAAA,iBAChCsI,EACHX,EAAUhE,OACTmE,EAAQnE,QAAUgE,EAAUjE,SAAW9E,EAAA,oCAAyC,IAChFwJ,EAAc9P,KAAKqL,OAAO5E,EAAEK,YAAY0I,GAAW,GACvD,GAAIM,GAAeE,EAAuB,EAOzC,YAJAhQ,KAAK2P,kBAAkB,CACtBC,SAAUP,EAAUE,UAAUM,kBAC9BR,UAAWF,EAAIE,WACbD,GAKJ,MAAMvC,EAAY7M,KAAK6M,UAAU9K,QAAQsN,EAAU/D,UACnDuB,EAAUrF,qBAAuBgI,EAAQnE,OACzCwB,EAAUtF,WAAW4H,EAAIY,WAAa,EAGtC/P,KAAK2P,kBAA4C,CAChDN,UAAWF,EAAIE,UACfU,SAAUZ,EAAIY,SACdhF,QAAS,EACPsE,EAAU/D,UAAW,CACrBD,OAAQ2E,EACRxH,MAAOgH,EAAQhH,QAGjBpC,MAAOpG,KAAKiQ,kBAAkB,EAC5Bd,EAAIM,UAAW,GACfpE,OAAQ,GACLrL,KAAKgO,uBAAuBwB,EAAQhH,WAGvC4G,GAIM,eACT5G,EAAcoG,EACdsB,GAAoC,GAGpC,MAAMrC,EAAO7N,KAAKoI,KAAKC,OAAOG,QACP,IAAnBoG,EAAQvD,SACXrL,KAAKqL,OAAO8E,IAAIvB,EAAQvD,OAASwC,EAAKxC,QAClCuD,EAAQvD,QAAU,EACrBrL,KAAKqL,OAAOjF,MAAMgK,OAAO5H,GAEzBxI,KAAKqL,OAAOjF,MAAM9D,IAAIkG,EAAOqF,IAG/B9J,MAAMsM,eAAe7H,EAAOoG,EAASsB,IAjO7B,eAuOOI,MAAA,KAKAC,sBAAT,SACN7D,GAGA,MAAM8D,EAAgB,GAEhBC,EAAqC3Q,OAAOK,OAAO,CACxDuQ,SAAU,EAAG9J,eAAgB,EAAGL,qBAAsB,EACtDoK,OAAQ,EAAGnD,uBAAwB,EAAGzC,QAAS,IAE1C6F,EAAwB,GAC9B,UAAWC,KAAaJ,EAAgB,CAEnCK,MADUpE,EAAKmE,IAElBD,EAAc7P,KAAK8P,GAGjBD,EAAc9P,QACjB0P,EAAIzP,KAAK,oCAAsC6P,GAGhD,MAAMG,EAAW9M,EAAA,0BAA6ByI,EAAKiE,QAC7CK,EAAYzE,EAAA,gBAAmBG,EAAKgE,UA4B1C,YA3BiB,IAAbK,EACHP,EAAIzP,KAAK,6BAA6B2L,EAAKiE,yBACnB,IAAdK,EACVR,EAAIzP,KAAK,gCAAgC2L,EAAKgE,sBAE1CK,EAASlM,gBAAkBmM,EAAUC,oBACxCT,EAAIzP,KAAK,8JAM0CmQ,MAAjDC,SAASzE,EAAKc,wBACjBgD,EAAIzP,KAAK,wDACF2L,EAAKc,6CAEZd,EAAKc,uBAAyB9M,KAAK0Q,IAAI,EAAGC,WACzC3E,EAAKc,yBAUAgD,GAIT1Q,OAAOK,OAAOmQ,GACdxQ,OAAOK,OAAOmQ,EAAY1M,YEtT1B,SAQO,MAAM0N,UAA2DhB,EAOhE,YACNiB,EACAC,GAEAzN,MAAM,CACL0N,KAAM,CACLC,gBAAiBC,EAAA,oBACjBC,eAAgBA,EAAA,EAChBlI,YAAa,CAAC9B,EAAM1B,IAASwD,EAAYX,GAAGnB,EAAqB1B,GACjEqL,oBAEDrL,MACCwB,EAAA,oBAAyB8J,GAClBA,GAERK,YAAaL,EAASzG,QAAQP,QAAOsH,GAAoB,UAAfA,EAAE7I,WAAsBxE,KAAIqN,GAAKA,EAAExG,aAE9ExL,OAAOM,KAAKJ,MAWN,WAAW+R,EAAwBC,KAAmBtF,GAC5D,OAAOhE,WAAWqJ,EAAUC,EAAQtF,GAI9B,cAAcuF,GACpBC,aAAaD,IAGfnS,OAAOK,OAAOmR,GACdxR,OAAOK,OAAOmR,EAAY1N,Y,aC1D1B,IAAIa,EAAM,CACT,eAAgB,CACf,GACA,EACA,KAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,cAAe,CACd,IACA,EACA,KAED,cAAe,CACd,IACA,EACA,KAED,cAAe,CACd,IACA,EACA,KAED,aAAc,CACb,GACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,MAGF,SAAS0N,EAAoBhD,GAC5B,IAAIiD,EAAoBC,EAAE5N,EAAK0K,GAC9B,OAAOmD,QAAQC,UAAUtF,MAAK,KAC7B,IAAIuF,EAAI,IAAI5M,MAAM,uBAAyBuJ,EAAM,KAEjD,MADAqD,EAAEC,KAAO,mBACHD,KAIR,IAAIE,EAAMjO,EAAI0K,GAAM/H,EAAKsL,EAAI,GAC7B,OAAON,EAAoBI,EAAEE,EAAI,IAAIzF,MAAK,IAClCmF,EAAoBO,EAAEvL,EAAa,GAATsL,EAAI,MAGvCP,EAAoB9H,KAAO,IAAOvK,OAAOuK,KAAK5F,GAC9C0N,EAAoB/K,GAAK,GACzB4F,EAAO4F,QAAUT","file":"chunk/game/offline.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/game/online.css b/client/chunk/game/online.css new file mode 100644 index 00000000..879f21a7 --- /dev/null +++ b/client/chunk/game/online.css @@ -0,0 +1,2 @@ +._2N_eu47KtEpZi5d2CowzkM{contain:content;color:var(--colour-tileFg);height:fit-content;width:fit-content;padding:.4em;text-rendering:optimizeSpeed}._3JbtPbIjLTUiQJTU8n-H7C{--colour-spotlight:var(--colour-mainBg);contain:size}._3u8M-CC4Px9o6vllq-e_Uk{pointer-events:auto;box-sizing:border-box;border:var(--border-width) solid transparent;border-radius:var(--border-radius);z-index:11;border-color:var(--colour-tileBd);contain:strict;transition:background-color .7s ease-in-out}._1QzcWwOXzKGRJ08E7Atc6o,._2BjCVl5m4MP1W-F8Z9wQNx{will-change:transform}._3JbtPbIjLTUiQJTU8n-H7C[data-face=me]>._3u8M-CC4Px9o6vllq-e_Uk{z-index:21;will-change:transform}._3e386DsWFKSsP26EIeKIUv{z-index:12;background-color:red;opacity:.2}._3JbtPbIjLTUiQJTU8n-H7C[data-downed=no] ._3e386DsWFKSsP26EIeKIUv{visibility:hidden}@keyframes _3csK2auwtiV8TtCo1YGszT{0%{transform:scale(1.1)}37%{transform:scale(1.3)}}._2BjCVl5m4MP1W-F8Z9wQNx{z-index:10;background-image:radial-gradient(farthest-side,transparent 21%,46%,var(--colour-spotlight));padding:1400%;border:100vmax solid var(--colour-spotlight)}._1QzcWwOXzKGRJ08E7Atc6o{z-index:20;background-image:radial-gradient(farthest-side,transparent 15%,var(--colour-spotlight));padding:1700%;border:100vmax solid var(--colour-spotlight);opacity:.92}@media print{._1QzcWwOXzKGRJ08E7Atc6o,._2BjCVl5m4MP1W-F8Z9wQNx{visibility:hidden}}._3JbtPbIjLTUiQJTU8n-H7C[data-face=me]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceMe)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=meOppo]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceMeOppo)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=teammate]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceTeammate)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=opponent]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceOpponent)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=teammate][data-downed=team]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceImtlTeammate)}._3JbtPbIjLTUiQJTU8n-H7C[data-face=opponent][data-downed=team]>._3u8M-CC4Px9o6vllq-e_Uk{background-color:var(--colour-pFaceImtlOpponent)}._3sIxemHPd1QgnRpmKBX9zJ{contain:strict;display:grid;grid-template-columns:repeat(var(--euclid2-grid-width),1.67em);grid-auto-rows:1.67em}._3sIxemHPd1QgnRpmKBX9zJ>*{margin:5%;scroll-snap-align:center}._3bZJ4fE4oboFoXnIoxvMoC{height:1.67em;width:1.67em;rx:.4em;stroke-width:.18em;fill:var(--colour-tileBg);stroke:var(--colour-tileBg)}._1RIAliHGAPUZnmLFKbeJR0{pointer-events:none;alignment-baseline:central;text-anchor:middle;fill:var(--colour-tileFg)} +/*# sourceMappingURL=online.css.map*/ \ No newline at end of file diff --git a/client/chunk/game/online.css.map b/client/chunk/game/online.css.map new file mode 100644 index 00000000..9484d379 --- /dev/null +++ b/client/chunk/game/online.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://capswalk/./src/base/floor/visible/grid.m.css","webpack://capswalk/./src/base/game/player/player.m.css","webpack://capswalk/./src/base/floor/impl/Euclid2/style.m.css"],"names":[],"mappings":"AACA,yBACC,eAAmB,CACnB,0BAAgC,CAChC,kBAAuB,CACvB,iBAAuB,CACvB,YAAiB,CACjB,4BACD,CCPA,yBAOC,uCAAwC,CACxC,YACD,CACA,yBACC,mBAAuB,CACvB,qBAAsB,CACtB,4CAA6C,CAC7C,kCAAmC,CAGnC,UAAkB,CAClB,iCAAoC,CACpC,cAAsB,CACtB,2CALD,CAOA,kDAEC,qBACD,CACA,gEACC,UAAkB,CAMlB,qBACD,CACA,yBACC,UAAW,CACX,oBAAqB,CACrB,UACD,CACA,kEACC,iBACD,CASI,mCACF,GAAK,oBAAuB,CAC7B,IAAM,oBAAuB,CAC9B,CAQA,yBACC,UAAW,CACX,2FAGC,CACD,aAAiB,CACjB,4CACD,CACA,yBACC,UAAW,CACX,uFAGC,CACD,aAAiB,CACjB,4CAAiD,CACjD,WACD,CACA,aAIC,kDACC,iBACD,CACD,CAGA,gEAEC,sCACD,CACA,oEAEC,0CACD,CACA,sEAEC,4CACD,CACA,sEAEC,4CACD,CACA,wFAEC,gDACD,CACA,wFAEC,gDACD,CCnHA,yBACC,cAAe,CACf,YAAa,CACb,8DAAgE,CAChE,qBACD,CACA,2BACC,SAAU,CACV,wBACD,CAEA,yBACC,aAAc,CACd,YAAa,CACb,OAAS,CACT,kBAAoB,CACpB,yBAA0B,CAC1B,2BACD,CAEA,yBACC,mBAAoB,CACpB,0BAA2B,CAC3B,kBAAmB,CACnB,yBACD","file":"chunk/game/online.css","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/game/online.js b/client/chunk/game/online.js index f1f7588e..b849b7c0 100644 --- a/client/chunk/game/online.js +++ b/client/chunk/game/online.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[775],{92:(e,t,s)=>{"use strict";s.r(t),s.d(t,{OnlineGame:()=>E});var i=s(903),o=s(804),r=s(242),a=s(753),c=s(688);class E extends c.R{constructor(e,t,s){super(r.lA.Type.ONLINE,{onGameBecomeOver:e,tileClass:r.gx,playerStatusCtor:r.Ko},s),Object.defineProperty(this,"socket",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.socket=t,this._ctorBrowserGame(),this.socket.on(a.a.EVENT_NAME.MOVEMENT,this.executePlayerMoveEvent.bind(this)),this.socket.on(a.a.EVENT_NAME.BUBBLE,this.executePlayerBubbleEvent.bind(this)),this.socket.on(o.JD.RESET,(e=>(0,i.mG)(this,void 0,void 0,(function*(){yield this.reset(),this.deserializeResetState(e),this.socket.emit(o.JD.UNPAUSE)})))),this.socket.emit(o.JD.RESET)}_createArtifPlayer(e){return new r.J5(this,e)}processMoveRequest(e){this.socket.emit(a.a.EVENT_NAME.MOVEMENT,e)}processBubbleRequest(e){this.socket.emit(a.a.EVENT_NAME.BUBBLE,e)}}r.RQ.applyMixins(E,[r.qM]),Object.freeze(E),Object.freeze(E.prototype)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[775],{102:(e,s,t)=>{"use strict";t.r(s),t.d(s,{OnlineGame:()=>p});var a=t(495),r=t(61),i=t(52),c=t(46),n=t(783),o=t(702);(0,r.Z)();class p extends o.S{constructor(e,s,t,r){super({impl:{gridClassLookup:i.T.getImplementation,OperatorPlayer:c.i,RobotPlayer:(e,s)=>new n.J(e,s),onGameBecomeOver:s},desc:t,operatorIds:r}),this.ws=e,Object.seal(this),this.ws.send(JSON.stringify([a.JD.RESET]))}wsMessageCb(e){const[s,...t]=JSON.parse(e.data);switch(s){case a.JD.IN_GAME:this.commitStateChange(t[0]);break;case a.JD.RESET:this.reset(),this.deserializeResetState(t[0]),this.ws.send(JSON.stringify([a.JD.UNPAUSE]))}}processMoveRequest(e,s){this.ws.send(JSON.stringify([a.JD.IN_GAME,e]))}}Object.freeze(p),Object.freeze(p.prototype)}}]); //# sourceMappingURL=online.js.map \ No newline at end of file diff --git a/client/chunk/game/online.js.map b/client/chunk/game/online.js.map index fbde639a..b529a840 100644 --- a/client/chunk/game/online.js.map +++ b/client/chunk/game/online.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/client/game/OnlineGame.ts"],"names":["OnlineGame","onGameBecomeOver","gameSocket","gameDesc","super","tileClass","playerStatusCtor","this","socket","_ctorBrowserGame","on","executePlayerMoveEvent","bind","executePlayerBubbleEvent","ser","reset","deserializeResetState","emit","desc","Object","freeze","prototype"],"mappings":"iLAmBO,MAAMA,UACL,IAsBP,YACCC,EACAC,EACAC,GAEAC,MACC,iBAAkB,CAClBH,mBACAI,UAAW,KACXC,iBAAkB,MACfH,GAnBL,qC,yDAqBCI,KAAKC,OAASN,EACdK,KAAKE,mBAWLF,KAAKC,OAAOE,GACX,wBACAH,KAAKI,uBAAuBC,KAAKL,OAElCA,KAAKC,OAAOE,GACX,sBACAH,KAAKM,yBAAyBD,KAAKL,OAEpCA,KAAKC,OAAOE,GACX,YACOI,IAA0B,8CAC1BP,KAAKQ,QACXR,KAAKS,sBAAsBF,GAG3BP,KAAKC,OAAOS,KAAK,mBAGnBV,KAAKC,OAAOS,KAAK,YAWR,mBAAmBC,GAC5B,OAAO,IAAI,KAAOX,KAAMW,GAWlB,mBAAmBA,GACzBX,KAAKC,OAAOS,KAAK,wBAAuCC,GAUlD,qBAAqBA,GAC3BX,KAAKC,OAAOS,KAAK,sBAAqCC,IAIxD,iBAAoBlB,EAAY,CAAC,OACjCmB,OAAOC,OAAOpB,GACdmB,OAAOC,OAAOpB,EAAWqB","file":"chunk/game/online.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/client/game/OnlineGame.ts"],"names":["OnlineGame","socket","onGameBecomeOver","gameDesc","operatorIds","super","impl","gridClassLookup","OperatorPlayer","RobotPlayer","game","desc","this","ws","Object","seal","send","JSON","stringify","ev","evName","body","parse","data","commitStateChange","reset","deserializeResetState","freeze","prototype"],"mappings":"2LAMA,SAQO,MAAMA,UAA0D,IAQ/D,YACNC,EACAC,EACAC,EACAC,GAEAC,MAAM,CACLC,KAAM,CACLC,gBAAiB,sBACjBC,eAAgB,EAAF,EACdC,YAAa,CAACC,EAAMC,IAAS,IAAI,IAAOD,EAAMC,GAC9CT,oBAEDS,KAAMR,EACNC,gBAEDQ,KAAKC,GAAKZ,EACVa,OAAOC,KAAKH,MACZA,KAAKC,GAAGG,KAAKC,KAAKC,UAAU,CAAC,cAIvB,YAAYC,GAClB,MAAOC,KAAWC,GAAQJ,KAAKK,MAAMH,EAAGI,MACxC,OAAQH,GAAA,KACF,aAAgBR,KAAKY,kBAAkBH,EAAK,IAAK,WACjD,WACJT,KAAKa,QACLb,KAAKc,sBAAsBL,EAAK,IAGhCT,KAAKC,GAAGG,KAAKC,KAAKC,UAAU,CAAC,iBAYzB,mBAAmBP,EAAuBV,GAChDW,KAAKC,GAAGG,KAAKC,KAAKC,UAAU,CAAC,aAAgBP,MAG/CG,OAAOa,OAAO3B,GACdc,OAAOa,OAAO3B,EAAW4B","file":"chunk/game/online.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Chinese-ts.js b/client/chunk/lang/Chinese-ts.js index 136bdf8c..b44dcf64 100644 --- a/client/chunk/lang/Chinese-ts.js +++ b/client/chunk/lang/Chinese-ts.js @@ -1 +1 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[330],{216:()=>{}}]); \ No newline at end of file +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[330],{83:()=>{}}]); \ No newline at end of file diff --git a/client/chunk/lang/Emote-ts.js b/client/chunk/lang/Emote-ts.js index f3ba91e6..626bf306 100644 --- a/client/chunk/lang/Emote-ts.js +++ b/client/chunk/lang/Emote-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[858],{655:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Emote:()=>c});var c,n=s(115);!function(e){class t extends n.U{}e.GitHub=t,Object.freeze(t),Object.freeze(t.prototype)}(c||(c={})),Object.freeze(c)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[858],{985:(e,t,c)=>{"use strict";c.r(t),c.d(t,{Emote:()=>s});var s,a=c(208);!function(e){class t extends a.U{}e.GitHub=t,Object.freeze(t),Object.freeze(t.prototype)}(s||(s={})),Object.freeze(s)}}]); //# sourceMappingURL=Emote-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Emote-ts.js.map b/client/chunk/lang/Emote-ts.js.map index ccccca52..1448de13 100644 --- a/client/chunk/lang/Emote-ts.js.map +++ b/client/chunk/lang/Emote-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Emote.ts"],"names":["Emote","GitHub","Object","freeze","prototype"],"mappings":"gIAMiBA,E,UAAjB,SAAiBA,GAKhB,MAAaC,UAAe,KAAf,EAAAA,OAAM,EAEnBC,OAAOC,OAAOF,GACdC,OAAOC,OAAOF,EAAOG,WARtB,CAAiBJ,MAAK,KAUtBE,OAAOC,OAAOH","file":"chunk/lang/Emote-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Emote.ts"],"names":["Emote","GitHub","Object","freeze","prototype"],"mappings":"kIAMiBA,E,UAAV,SAAU,GAKT,gBAAqB,KAArB,EAAMC,SAEbC,OAAOC,OAAOF,GACdC,OAAOC,OAAOF,EAAOG,WARf,CAAUJ,MAAA,KAUjBE,OAAOC,OAAOH","file":"chunk/lang/Emote-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/English-ts.js b/client/chunk/lang/English-ts.js index 43a5e524..b3a37067 100644 --- a/client/chunk/lang/English-ts.js +++ b/client/chunk/lang/English-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[184],{891:(t,e,n)=>{"use strict";n.r(e),n.d(e,{English:()=>r});var r,c=n(115);!function(t){class e extends c.U{constructor(t){super("engl-low",t)}static BUILD(){return c.U.BuildUtils.WORD_FOR_WORD(t.LETTER_FREQUENCY)}}t.Lowercase=e,Object.freeze(e),Object.freeze(e.prototype);class n extends c.U{constructor(t){super("engl-mix",t)}static BUILD(){let e={};const n=n=>{e=Object.entries(t.LETTER_FREQUENCY).reduce(((t,[e,r])=>{const c=n(e);return t[c]={seq:c,weight:r},t}),e)};return n((t=>t.toLowerCase())),n((t=>t.toUpperCase())),e}}let r,s;t.MixedCase=n,Object.freeze(n),Object.freeze(n.prototype),function(e){class n extends c.U{constructor(t){super("engl-cell-enc",t)}static BUILD(){return Object.entries(t.LETTER_FREQUENCY).reduce(((t,[e,n],c)=>(t[e]={seq:r[c],weight:n},t)),{})}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);const r=Object.freeze([3,3,3,3,3,4,3,4].flatMap(((t,e)=>{const n=[],r=(1+e).toString();for(let e=r;e.length<=t;e+=r)n.push(e);return n})))}(r=t.OldCellphone||(t.OldCellphone={})),Object.freeze(r),t.LETTER_FREQUENCY=Object.freeze(JSON.parse('{\n\t\t"a": 8.167, "b": 1.492, "c": 2.202, "d": 4.253,\n\t\t"e":12.702, "f": 2.228, "g": 2.015, "h": 6.094,\n\t\t"i": 6.966, "j": 0.153, "k": 1.292, "l": 4.025,\n\t\t"m": 2.406, "n": 6.749, "o": 7.507, "p": 1.929,\n\t\t"q": 0.095, "r": 5.987, "s": 6.327, "t": 9.356,\n\t\t"u": 2.758, "v": 0.978, "w": 2.560, "x": 0.150,\n\t\t"y": 1.994, "z": 0.077\n\t}')),t.LETTER_FREQUENCY_EXT=Object.freeze(Object.assign((()=>{const t={".":65.3,",":61.3,'"':26.7,"'":24.3,"-":15.3,"?":5.6,":":3.4,"!":3.3,";":3.2};for(let e=0;e<10;e++)t[e.toString()]=10;let e=0;for(const n in t)e+=t[n];for(const n in t)t[n]*=8/e;return t})(),t.LETTER_FREQUENCY)),function(e){class n extends c.U{constructor(t){super("mors-enc",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict))n[r]={seq:c,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);class r extends c.U{constructor(t){super("mors-dec",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict))n[c.replace(/\./g,"•").replace(/\-/g,"−")]={seq:r,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Decode=r,Object.freeze(r),Object.freeze(r.prototype),e.Dict=Object.freeze(JSON.parse('{\n\t\t\t"0": "-----", "5": ".....",\n\t\t\t"1": ".----", "6": "-....",\n\t\t\t"2": "..---", "7": "--...",\n\t\t\t"3": "...--", "8": "---..",\n\t\t\t"4": "....-", "9": "----.",\n\n\t\t\t"a": ".-" , "n": "-." ,\n\t\t\t"b": "-..." , "o": "---" ,\n\t\t\t"c": "-.-." , "p": ".--." ,\n\t\t\t"d": "-.." , "q": "--.-" ,\n\t\t\t"e": "." , "r": ".-." ,\n\t\t\t"f": "..-." , "s": "..." ,\n\t\t\t"g": "--." , "t": "-" ,\n\t\t\t"h": "...." , "u": "..-" ,\n\t\t\t"i": ".." , "v": "...-" ,\n\t\t\t"j": ".---" , "w": ".--" ,\n\t\t\t"k": "-.-" , "x": "-..-" ,\n\t\t\t"l": ".-.." , "y": "-.--" ,\n\t\t\t"m": "--" , "z": "--.." ,\n\n\t\t\t".": ".-.-.-",\n\t\t\t",": "--..--",\n\t\t\t"?": "..--..",\n\t\t\t"!": "-.-.--",\n\t\t\t"-": "-....-"\n\t\t}'))}(s=t.Morse||(t.Morse={})),Object.freeze(s)}(r||(r={})),Object.freeze(r)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[184],{825:(t,e,n)=>{"use strict";n.r(e),n.d(e,{English:()=>r});var r,c=n(208);!function(t){class e extends c.U{constructor(t){super("engl-low",t)}static BUILD(){return c.U.BuildUtils.WORD_FOR_WORD(t.LETTER_FREQUENCY)}}t.Lowercase=e,Object.freeze(e),Object.freeze(e.prototype);class n extends c.U{constructor(t){super("engl-mix",t)}static BUILD(){let e={};const n=n=>{e=Object.entries(t.LETTER_FREQUENCY).freeze().reduce(((t,[e,r])=>{const c=n(e);return t[c]={seq:c,weight:r},t}),e)};return n((t=>t.toLowerCase())),n((t=>t.toUpperCase())),e}}let r,s;t.MixedCase=n,Object.freeze(n),Object.freeze(n.prototype),function(e){class n extends c.U{constructor(t){super("engl-cell-enc",t)}static BUILD(){return Object.entries(t.LETTER_FREQUENCY).freeze().reduce(((t,[e,n],c)=>(t[e]={seq:r[c],weight:n},t)),{})}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);const r=[3,3,3,3,3,4,3,4].flatMap(((t,e)=>{const n=[],r=(1+e).toString();for(let e=r;e.length<=t;e+=r)n.push(e);return n})).freeze()}(r=t.OldCellphone||(t.OldCellphone={})),Object.freeze(r),t.LETTER_FREQUENCY=Object.freeze(JSON.parse('{\n\t\t"a": 8.167, "b": 1.492, "c": 2.202, "d": 4.253,\n\t\t"e":12.702, "f": 2.228, "g": 2.015, "h": 6.094,\n\t\t"i": 6.966, "j": 0.153, "k": 1.292, "l": 4.025,\n\t\t"m": 2.406, "n": 6.749, "o": 7.507, "p": 1.929,\n\t\t"q": 0.095, "r": 5.987, "s": 6.327, "t": 9.356,\n\t\t"u": 2.758, "v": 0.978, "w": 2.560, "x": 0.150,\n\t\t"y": 1.994, "z": 0.077\n\t}')),t.LETTER_FREQUENCY_EXT=Object.freeze(Object.assign((()=>{const t={".":65.3,",":61.3,'"':26.7,"'":24.3,"-":15.3,"?":5.6,":":3.4,"!":3.3,";":3.2};for(let e=0;e<10;e++)t[e.toString()]=10;let e=0;for(const n in t)e+=t[n];for(const n in t)t[n]*=8/e;return t})(),t.LETTER_FREQUENCY)),function(e){class n extends c.U{constructor(t){super("mors-enc",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict).freeze())n[r]={seq:c,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);class r extends c.U{constructor(t){super("mors-dec",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict).freeze())n[c.replace(/\./g,"•").replace(/\-/g,"−")]={seq:r,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Decode=r,Object.freeze(r),Object.freeze(r.prototype),e.Dict=Object.freeze(JSON.parse('{\n\t\t\t"0": "-----", "5": ".....",\n\t\t\t"1": ".----", "6": "-....",\n\t\t\t"2": "..---", "7": "--...",\n\t\t\t"3": "...--", "8": "---..",\n\t\t\t"4": "....-", "9": "----.",\n\n\t\t\t"a": ".-" , "n": "-." ,\n\t\t\t"b": "-..." , "o": "---" ,\n\t\t\t"c": "-.-." , "p": ".--." ,\n\t\t\t"d": "-.." , "q": "--.-" ,\n\t\t\t"e": "." , "r": ".-." ,\n\t\t\t"f": "..-." , "s": "..." ,\n\t\t\t"g": "--." , "t": "-" ,\n\t\t\t"h": "...." , "u": "..-" ,\n\t\t\t"i": ".." , "v": "...-" ,\n\t\t\t"j": ".---" , "w": ".--" ,\n\t\t\t"k": "-.-" , "x": "-..-" ,\n\t\t\t"l": ".-.." , "y": "-.--" ,\n\t\t\t"m": "--" , "z": "--.." ,\n\n\t\t\t".": ".-.-.-",\n\t\t\t",": "--..--",\n\t\t\t"?": "..--..",\n\t\t\t"!": "-.-.--",\n\t\t\t"-": "-....-"\n\t\t}'))}(s=t.Morse||(t.Morse={})),Object.freeze(s)}(r||(r={})),Object.freeze(r)}}]); //# sourceMappingURL=English-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/English-ts.js.map b/client/chunk/lang/English-ts.js.map index 6a26cba1..cc7dd3f3 100644 --- a/client/chunk/lang/English-ts.js.map +++ b/client/chunk/lang/English-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/English.ts"],"names":["English","Lowercase","weightScaling","super","LETTER_FREQUENCY","Object","freeze","prototype","MixedCase","initializer","addMappings","charSeqTransform","entries","reduce","accumulator","_char","weight","char","seq","cs","toLowerCase","toUpperCase","OldCellphone","Morse","Encode","index","NUMPAD","flatMap","val","idx","button","numpadKey","toString","str","length","push","JSON","parse","LETTER_FREQUENCY_EXT","assign","freq","\"","i","sum","key","dict","plain","cipher","Dict","Decode","replace"],"mappings":"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","file":"chunk/lang/English-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/English.ts"],"names":["English","weightScaling","super","LETTER_FREQUENCY","Lowercase","Object","freeze","prototype","initializer","addMappings","charSeqTransform","entries","reduce","accumulator","_char","weight","char","seq","cs","toLowerCase","toUpperCase","OldCellphone","Morse","MixedCase","index","NUMPAD","Encode","flatMap","val","idx","button","numpadKey","toString","str","length","push","JSON","parse","LETTER_FREQUENCY_EXT","assign","freq","\"","i","sum","key","dict","plain","cipher","Dict","replace","Decode"],"mappings":"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","file":"chunk/lang/English-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Japanese-ts.js b/client/chunk/lang/Japanese-ts.js index ee0815d6..53130b0d 100644 --- a/client/chunk/lang/Japanese-ts.js +++ b/client/chunk/lang/Japanese-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[410],{800:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Japanese:()=>i});var i,s=n(115);!function(t){class e extends s.U{constructor(t){super("japn-hir",t)}static BUILD(){return e.INITIALIZER}}Object.defineProperty(e,"INITIALIZER",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze(JSON.parse('{\n\t\t\t"の": { "seq": "no", "weight": 1918313 },\n\t\t\t"に": { "seq": "ni", "weight": 1108840 },\n\t\t\t"た": { "seq": "ta", "weight": 1067566},\n\t\t\t"い": { "seq": "i", "weight": 1060284 },\n\t\t\t"は": { "seq": "ha", "weight": 937811 },\n\t\t\t"を": { "seq": "wo", "weight": 936356 },\n\t\t\t"と": { "seq": "to", "weight": 927938 },\n\t\t\t"る": { "seq": "ru", "weight": 916652 },\n\t\t\t"が": { "seq": "ga", "weight": 860742 },\n\t\t\t"し": { "seq": "shi","weight": 848132 },\n\t\t\t"で": { "seq": "de", "weight": 764834 },\n\t\t\t"て": { "seq": "te", "weight": 758316 },\n\t\t\t"な": { "seq": "na", "weight": 720156 },\n\t\t\t"か": { "seq": "ka", "weight": 537294 },\n\t\t\t"れ": { "seq": "re", "weight": 450805 },\n\t\t\t"ら": { "seq": "ra", "weight": 42329 },\n\t\t\t"も": { "seq": "mo", "weight": 396142 },\n\t\t\t"う": { "seq": "u", "weight": 352965 },\n\t\t\t"す": { "seq": "su", "weight": 340654 },\n\t\t\t"り": { "seq": "ri", "weight": 333999 },\n\t\t\t"こ": { "seq": "ko", "weight": 312227 },\n\t\t\t"だ": { "seq": "da", "weight": 280911 },\n\t\t\t"ま": { "seq": "ma", "weight": 278599 },\n\t\t\t"さ": { "seq": "sa", "weight": 258960 },\n\t\t\t"き": { "seq": "ki", "weight": 233505 },\n\t\t\t"め": { "seq": "me", "weight": 223806 },\n\t\t\t"く": { "seq": "ku", "weight": 221960 },\n\t\t\t"あ": { "seq": "a" , "weight": 204256 },\n\t\t\t"け": { "seq": "ke", "weight": 199362 },\n\t\t\t"ど": { "seq": "do", "weight": 196555 },\n\t\t\t"ん": { "seq": "nn", "weight": 190068 },\n\t\t\t"え": { "seq": "e" , "weight": 163664 },\n\t\t\t"よ": { "seq": "yo", "weight": 154206 },\n\t\t\t"つ": { "seq": "tsu","weight": 153999 },\n\t\t\t"や": { "seq": "ya", "weight": 146156 },\n\t\t\t"そ": { "seq": "so", "weight": 131611 },\n\t\t\t"わ": { "seq": "wa", "weight": 123077 },\n\t\t\t"ち": { "seq": "chi","weight": 99183 },\n\t\t\t"み": { "seq": "mi", "weight": 89264 },\n\t\t\t"せ": { "seq": "se", "weight": 83444 },\n\t\t\t"ろ": { "seq": "ro", "weight": 73467 },\n\t\t\t"ば": { "seq": "ba", "weight": 72228 },\n\t\t\t"お": { "seq": "o", "weight": 65870 },\n\t\t\t"じ": { "seq": "ji", "weight": 56857 },\n\t\t\t"べ": { "seq": "be", "weight": 56005 },\n\t\t\t"ず": { "seq": "zu", "weight": 53256 },\n\t\t\t"げ": { "seq": "ge", "weight": 49126 },\n\t\t\t"ほ": { "seq": "ho", "weight": 48752 },\n\t\t\t"へ": { "seq": "he", "weight": 47013 },\n\t\t\t"び": { "seq": "bi", "weight": 32312 },\n\t\t\t"む": { "seq": "mu", "weight": 31212 },\n\t\t\t"ご": { "seq": "go", "weight": 26965 },\n\t\t\t"ね": { "seq": "ne", "weight": 23490 },\n\t\t\t"ぶ": { "seq": "bu", "weight": 23280 },\n\t\t\t"ぐ": { "seq": "gu", "weight": 21549 },\n\t\t\t"ぎ": { "seq": "gi", "weight": 19865 },\n\t\t\t"ひ": { "seq": "hi", "weight": 19148 },\n\t\t\t"づ": { "seq": "du", "weight": 13125 },\n\t\t\t"ぼ": { "seq": "bo", "weight": 12402 },\n\t\t\t"ざ": { "seq": "za", "weight": 12108 },\n\t\t\t"ふ": { "seq": "fu", "weight": 11606 },\n\t\t\t"ぞ": { "seq": "zo", "weight": 10047 },\n\t\t\t"ゆ": { "seq": "yu", "weight": 8486 },\n\t\t\t"ぜ": { "seq": "ze", "weight": 6893 },\n\t\t\t"ぬ": { "seq": "nu", "weight": 5124 },\n\t\t\t"ぱ": { "seq": "pa", "weight": 4349 },\n\t\t\t"ゅ": { "seq": "yu", "weight": 2755 },\n\t\t\t"ぴ": { "seq": "pi", "weight": 1608 },\n\t\t\t"ぽ": { "seq": "po", "weight": 1315 },\n\t\t\t"ぷ": { "seq": "pu", "weight": 986 },\n\t\t\t"ぺ": { "seq": "pe", "weight": 477 },\n\t\t\t"ぢ": { "seq": "di", "weight": 82 }\n\t\t}'))}),t.Hiragana=e,Object.freeze(e),Object.freeze(e.prototype);class n extends s.U{constructor(t){super("japn-kat",t)}static BUILD(){return n.INITIALIZER}}Object.defineProperty(n,"INITIALIZER",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze(JSON.parse('{\n\t\t\t"ン": { "seq": "nn", "weight": 290948 },\n\t\t\t"ル": { "seq": "ru", "weight": 189442 },\n\t\t\t"ス": { "seq": "su", "weight": 178214 },\n\t\t\t"ト": { "seq": "to", "weight": 162802 },\n\t\t\t"ア": { "seq": "a", "weight": 127845 },\n\t\t\t"イ": { "seq": "i", "weight": 120807 },\n\t\t\t"ラ": { "seq": "ra", "weight": 117203 },\n\t\t\t"リ": { "seq": "ri", "weight": 106744 },\n\t\t\t"ク": { "seq": "ku", "weight": 98209 },\n\t\t\t"カ": { "seq": "ka", "weight": 82982 },\n\t\t\t"シ": { "seq": "shi","weight": 80626 },\n\t\t\t"タ": { "seq": "ta", "weight": 75319 },\n\t\t\t"ロ": { "seq": "ro", "weight": 75301 },\n\t\t\t"ド": { "seq": "do", "weight": 74257 },\n\t\t\t"ジ": { "seq": "ji", "weight": 61171 },\n\t\t\t"フ": { "seq": "fu", "weight": 61115 },\n\t\t\t"レ": { "seq": "re", "weight": 60608 },\n\t\t\t"メ": { "seq": "me", "weight": 60230 },\n\t\t\t"コ": { "seq": "ko", "weight": 58724 },\n\t\t\t"マ": { "seq": "ma", "weight": 56123 },\n\t\t\t"プ": { "seq": "pu", "weight": 54159 },\n\t\t\t"テ": { "seq": "te", "weight": 53404 },\n\t\t\t"ム": { "seq": "mu", "weight": 50758 },\n\t\t\t"チ": { "seq": "chi","weight": 48437 },\n\t\t\t"バ": { "seq": "ba", "weight": 44970 },\n\t\t\t"ビ": { "seq": "bi", "weight": 44462 },\n\t\t\t"グ": { "seq": "gu", "weight": 40433 },\n\t\t\t"キ": { "seq": "ki", "weight": 39608 },\n\t\t\t"ウ": { "seq": "u", "weight": 39323 },\n\t\t\t"サ": { "seq": "sa", "weight": 39202 },\n\t\t\t"ニ": { "seq": "ni", "weight": 38711 },\n\t\t\t"ナ": { "seq": "na", "weight": 38047 },\n\t\t\t"エ": { "seq": "e", "weight": 36458 },\n\t\t\t"ブ": { "seq": "bu", "weight": 35920 },\n\t\t\t"パ": { "seq": "pa", "weight": 35416 },\n\t\t\t"セ": { "seq": "se", "weight": 34883 },\n\t\t\t"オ": { "seq": "o", "weight": 34718 },\n\t\t\t"デ": { "seq": "de", "weight": 32665 },\n\t\t\t"ミ": { "seq": "mi", "weight": 29262 },\n\t\t\t"ャ": { "seq": "ya", "weight": 28144 },\n\t\t\t"ボ": { "seq": "bo", "weight": 26651 },\n\t\t\t"ダ": { "seq": "da", "weight": 26396 },\n\t\t\t"ツ": { "seq": "tsu","weight": 24541 },\n\t\t\t"ポ": { "seq": "ho", "weight": 23742 },\n\t\t\t"ベ": { "seq": "be", "weight": 22755 },\n\t\t\t"ネ": { "seq": "ne", "weight": 22462 },\n\t\t\t"ガ": { "seq": "ga", "weight": 22061 },\n\t\t\t"ハ": { "seq": "ha", "weight": 21839 },\n\t\t\t"ワ": { "seq": "wa", "weight": 21784 },\n\t\t\t"ソ": { "seq": "so", "weight": 20784 },\n\t\t\t"ケ": { "seq": "ke", "weight": 20633 },\n\t\t\t"モ": { "seq": "ho", "weight": 20070 },\n\t\t\t"ノ": { "seq": "no", "weight": 19572 },\n\t\t\t"ズ": { "seq": "zu", "weight": 19240 },\n\t\t\t"ピ": { "seq": "pi", "weight": 18692 },\n\t\t\t"ホ": { "seq": "ho", "weight": 18204 },\n\t\t\t"ペ": { "seq": "pe", "weight": 14881 },\n\t\t\t"ゴ": { "seq": "go", "weight": 13931 },\n\t\t\t"ヤ": { "seq": "ya", "weight": 12526 },\n\t\t\t"ギ": { "seq": "gi", "weight": 10732 },\n\t\t\t"ヨ": { "seq": "yo", "weight": 10318 },\n\t\t\t"ザ": { "seq": "za", "weight": 10144 },\n\t\t\t"ァ": { "seq": "a", "weight": 10121 },\n\t\t\t"ゼ": { "seq": "ze", "weight": 7689 },\n\t\t\t"ヒ": { "seq": "hi", "weight": 7289 },\n\t\t\t"ヘ": { "seq": "he", "weight": 7129 },\n\t\t\t"ユ": { "seq": "yo", "weight": 6653 },\n\t\t\t"ゲ": { "seq": "ge", "weight": 6481 },\n\t\t\t"ォ": { "seq": "o", "weight": 6245 },\n\t\t\t"ヌ": { "seq": "nu", "weight": 2897 },\n\t\t\t"ゾ": { "seq": "zo", "weight": 2640 },\n\t\t\t"ヴ": { "seq": "vu", "weight": 1145 },\n\t\t\t"ヂ": { "seq": "di", "weight": 149 },\n\t\t\t"ヅ": { "seq": "du", "weight": 127 },\n\t\t\t"ヲ": { "seq": "wo", "weight": 122 }\n\t\t}'))}),t.Katakana=n,Object.freeze(n),Object.freeze(n.prototype)}(i||(i={})),Object.freeze(i)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[410],{885:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Japanese:()=>w});var i=s(208);const h=JSON.parse('{"の":{"seq":"no","weight":1918313},"に":{"seq":"ni","weight":1108840},"た":{"seq":"ta","weight":1067566},"い":{"seq":"i","weight":1060284},"は":{"seq":"ha","weight":937811},"を":{"seq":"wo","weight":936356},"と":{"seq":"to","weight":927938},"る":{"seq":"ru","weight":916652},"が":{"seq":"ga","weight":860742},"し":{"seq":"shi","weight":848132},"で":{"seq":"de","weight":764834},"て":{"seq":"te","weight":758316},"な":{"seq":"na","weight":720156},"か":{"seq":"ka","weight":537294},"れ":{"seq":"re","weight":450805},"ら":{"seq":"ra","weight":42329},"も":{"seq":"mo","weight":396142},"う":{"seq":"u","weight":352965},"す":{"seq":"su","weight":340654},"り":{"seq":"ri","weight":333999},"こ":{"seq":"ko","weight":312227},"だ":{"seq":"da","weight":280911},"ま":{"seq":"ma","weight":278599},"さ":{"seq":"sa","weight":258960},"き":{"seq":"ki","weight":233505},"め":{"seq":"me","weight":223806},"く":{"seq":"ku","weight":221960},"あ":{"seq":"a","weight":204256},"け":{"seq":"ke","weight":199362},"ど":{"seq":"do","weight":196555},"ん":{"seq":"nn","weight":190068},"え":{"seq":"e","weight":163664},"よ":{"seq":"yo","weight":154206},"つ":{"seq":"tsu","weight":153999},"や":{"seq":"ya","weight":146156},"そ":{"seq":"so","weight":131611},"わ":{"seq":"wa","weight":123077},"ち":{"seq":"chi","weight":99183},"み":{"seq":"mi","weight":89264},"せ":{"seq":"se","weight":83444},"ろ":{"seq":"ro","weight":73467},"ば":{"seq":"ba","weight":72228},"お":{"seq":"o","weight":65870},"じ":{"seq":"ji","weight":56857},"べ":{"seq":"be","weight":56005},"ず":{"seq":"zu","weight":53256},"げ":{"seq":"ge","weight":49126},"ほ":{"seq":"ho","weight":48752},"へ":{"seq":"he","weight":47013},"び":{"seq":"bi","weight":32312},"む":{"seq":"mu","weight":31212},"ご":{"seq":"go","weight":26965},"ね":{"seq":"ne","weight":23490},"ぶ":{"seq":"bu","weight":23280},"ぐ":{"seq":"gu","weight":21549},"ぎ":{"seq":"gi","weight":19865},"ひ":{"seq":"hi","weight":19148},"づ":{"seq":"du","weight":13125},"ぼ":{"seq":"bo","weight":12402},"ざ":{"seq":"za","weight":12108},"ふ":{"seq":"fu","weight":11606},"ぞ":{"seq":"zo","weight":10047},"ゆ":{"seq":"yu","weight":8486},"ぜ":{"seq":"ze","weight":6893},"ぬ":{"seq":"nu","weight":5124},"ぱ":{"seq":"pa","weight":4349},"ゅ":{"seq":"yu","weight":2755},"ぴ":{"seq":"pi","weight":1608},"ぽ":{"seq":"po","weight":1315},"ぷ":{"seq":"pu","weight":986},"ぺ":{"seq":"pe","weight":477},"ぢ":{"seq":"di","weight":82}}'),g=JSON.parse('{"ン":{"seq":"nn","weight":290948},"ル":{"seq":"ru","weight":189442},"ス":{"seq":"su","weight":178214},"ト":{"seq":"to","weight":162802},"ア":{"seq":"a","weight":127845},"イ":{"seq":"i","weight":120807},"ラ":{"seq":"ra","weight":117203},"リ":{"seq":"ri","weight":106744},"ク":{"seq":"ku","weight":98209},"カ":{"seq":"ka","weight":82982},"シ":{"seq":"shi","weight":80626},"タ":{"seq":"ta","weight":75319},"ロ":{"seq":"ro","weight":75301},"ド":{"seq":"do","weight":74257},"ジ":{"seq":"ji","weight":61171},"フ":{"seq":"fu","weight":61115},"レ":{"seq":"re","weight":60608},"メ":{"seq":"me","weight":60230},"コ":{"seq":"ko","weight":58724},"マ":{"seq":"ma","weight":56123},"プ":{"seq":"pu","weight":54159},"テ":{"seq":"te","weight":53404},"ム":{"seq":"mu","weight":50758},"チ":{"seq":"chi","weight":48437},"バ":{"seq":"ba","weight":44970},"ビ":{"seq":"bi","weight":44462},"グ":{"seq":"gu","weight":40433},"キ":{"seq":"ki","weight":39608},"ウ":{"seq":"u","weight":39323},"サ":{"seq":"sa","weight":39202},"ニ":{"seq":"ni","weight":38711},"ナ":{"seq":"na","weight":38047},"エ":{"seq":"e","weight":36458},"ブ":{"seq":"bu","weight":35920},"パ":{"seq":"pa","weight":35416},"セ":{"seq":"se","weight":34883},"オ":{"seq":"o","weight":34718},"デ":{"seq":"de","weight":32665},"ミ":{"seq":"mi","weight":29262},"ャ":{"seq":"ya","weight":28144},"ボ":{"seq":"bo","weight":26651},"ダ":{"seq":"da","weight":26396},"ツ":{"seq":"tsu","weight":24541},"ポ":{"seq":"ho","weight":23742},"ベ":{"seq":"be","weight":22755},"ネ":{"seq":"ne","weight":22462},"ガ":{"seq":"ga","weight":22061},"ハ":{"seq":"ha","weight":21839},"ワ":{"seq":"wa","weight":21784},"ソ":{"seq":"so","weight":20784},"ケ":{"seq":"ke","weight":20633},"モ":{"seq":"ho","weight":20070},"ノ":{"seq":"no","weight":19572},"ズ":{"seq":"zu","weight":19240},"ピ":{"seq":"pi","weight":18692},"ホ":{"seq":"ho","weight":18204},"ペ":{"seq":"pe","weight":14881},"ゴ":{"seq":"go","weight":13931},"ヤ":{"seq":"ya","weight":12526},"ギ":{"seq":"gi","weight":10732},"ヨ":{"seq":"yo","weight":10318},"ザ":{"seq":"za","weight":10144},"ァ":{"seq":"a","weight":10121},"ゼ":{"seq":"ze","weight":7689},"ヒ":{"seq":"hi","weight":7289},"ヘ":{"seq":"he","weight":7129},"ユ":{"seq":"yo","weight":6653},"ゲ":{"seq":"ge","weight":6481},"ォ":{"seq":"o","weight":6245},"ヌ":{"seq":"nu","weight":2897},"ゾ":{"seq":"zo","weight":2640},"ヴ":{"seq":"vu","weight":1145},"ヂ":{"seq":"di","weight":149},"ヅ":{"seq":"du","weight":127},"ヲ":{"seq":"wo","weight":122}}');var w;!function(e){const t=class extends i.U{constructor(e){super("japn-hir",e)}static BUILD(){return t.INITIALIZER}};let s=t;s.INITIALIZER=Object.freeze(h),e.Hiragana=s,Object.freeze(s),Object.freeze(s.prototype);const w=class extends i.U{constructor(e){super("japn-kat",e)}static BUILD(){return w.INITIALIZER}};let q=w;q.INITIALIZER=Object.freeze(g),e.Katakana=q,Object.freeze(q),Object.freeze(q.prototype)}(w||(w={})),Object.freeze(w)}}]); //# sourceMappingURL=Japanese-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Japanese-ts.js.map b/client/chunk/lang/Japanese-ts.js.map index e6db5afd..eb8be738 100644 --- a/client/chunk/lang/Japanese-ts.js.map +++ b/client/chunk/lang/Japanese-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Japanese.ts"],"names":["Japanese","Hiragana","weightScaling","super","INITIALIZER","Object","freeze","JSON","parse","prototype","Katakana"],"mappings":"mIASiBA,E,UAAjB,SAAiBA,GAQhB,MAAaC,UAAiB,IA6F7B,YAAmBC,GAClBC,MAAM,WAAYD,GAEZ,eACN,OAAOD,EAASG,aAxFjB,uC,gDAA4BC,OAAOC,OAA4CC,KAAKC,MAEpF,64GAXY,EAAAP,SAAQ,EAqGrBI,OAAOC,OAAOL,GACdI,OAAOC,OAAOL,EAASQ,WAOvB,MAAaC,UAAiB,IA6F7B,YAAmBR,GAClBC,MAAM,WAAYD,GAEZ,eACN,OAAOQ,EAASN,aA5FjB,uC,gDAA4BC,OAAOC,OAA4CC,KAAKC,MAEpF,m9GAPY,EAAAE,SAAQ,EAqGrBL,OAAOC,OAAOI,GACdL,OAAOC,OAAOI,EAASD,WA3NxB,CAAiBT,MAAQ,KA6NzBK,OAAOC,OAAON","file":"chunk/lang/Japanese-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Japanese.ts"],"names":["Japanese","Lang","weightScaling","super","INITIALIZER","Object","freeze","Hiragana","prototype","Katakana"],"mappings":"qyJAUO,IAAUA,GAAV,SAAU,GAQT,sBAAuBC,EAAA,EAatB,YAAYC,GAClBC,MAAM,WAAYD,GAAA,eAGlB,OAAO,EAASE,cAjBX,UASQA,YAAcC,OAAOC,OAClC,GAVK,EAAMC,WAqBbF,OAAOC,OAAOC,GACdF,OAAOC,OAAOC,EAASC,WAOhB,sBAAuBP,EAAA,EAStB,YAAYC,GAClBC,MAAM,WAAYD,GAAA,eAGlB,OAAO,EAASE,cAbX,UAKQA,YAAcC,OAAOC,OAClC,GANK,EAAMG,WAiBbJ,OAAOC,OAAOG,GACdJ,OAAOC,OAAOG,EAASD,WAvDjB,CAAUR,MAAA,KAyDjBK,OAAOC,OAAON","file":"chunk/lang/Japanese-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Korean-ts.js b/client/chunk/lang/Korean-ts.js index 4e68714b..a2aa303d 100644 --- a/client/chunk/lang/Korean-ts.js +++ b/client/chunk/lang/Korean-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[227],{3:(e,a,r)=>{"use strict";r.r(a),r.d(a,{Korean:()=>o});var o,m=r(115);!function(e){class a extends m.U{constructor(e){super("kore-dub",e)}static BUILD(){return t(((e,r,o)=>[e,r,o].flatMap((e=>e.atoms.split(""))).map((e=>a.DUB_KEYBOARD[e])).join("")))}}Object.defineProperty(a,"DUB_KEYBOARD",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({"":"",ㅂ:"q",ㅈ:"w",ㄷ:"e",ㄱ:"r",ㅅ:"t",ㅛ:"y",ㅕ:"u",ㅑ:"i",ㅐ:"o",ㅔ:"p",ㅁ:"a",ㄴ:"s",ㅇ:"d",ㄹ:"f",ㅎ:"g",ㅗ:"h",ㅓ:"j",ㅏ:"k",ㅣ:"l",ㅋ:"z",ㅌ:"x",ㅊ:"c",ㅍ:"v",ㅠ:"b",ㅜ:"n",ㅡ:"m",ㅃ:"Q",ㅉ:"W",ㄸ:"E",ㄲ:"R",ㅆ:"T",ㅒ:"O",ㅖ:"P"})}),e.Dubeolsik=a,Object.freeze(a),Object.freeze(a.prototype);class r extends m.U{constructor(e){super("kore-sub",e)}static BUILD(){return t(((e,a,o)=>r.SEB_KEYBOARD.INITIALS[e.value]+r.SEB_KEYBOARD.MEDIALS[a.value]+r.SEB_KEYBOARD.FINALS[o.value]))}}Object.defineProperty(r,"SEB_KEYBOARD",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({FINALS:{"":"",ㅎ:"1",ㅆ:"2",ㅂ:"3",ㅅ:"q",ㄹ:"w",ㅇ:"a",ㄴ:"s",ㅁ:"z",ㄱ:"x",ㄲ:"!",ㄺ:"@",ㅈ:"#",ㄿ:"$",ㄾ:"%",ㅍ:"Q",ㅌ:"W",ㄵ:"E",ㅀ:"R",ㄽ:"T",ㄷ:"A",ㄶ:"S",ㄼ:"D",ㄻ:"F",ㅊ:"Z",ㅄ:"X",ㅋ:"C",ㄳ:"V"},MEDIALS:{ㅛ:"4",ㅠ:"5",ㅑ:"6",ㅖ:"7",ㅢ:"8",ㅕ:"e",ㅐ:"r",ㅓ:"t",ㅣ:"d",ㅏ:"f",ㅡ:"g",ㅔ:"c",ㅗ:"v",ㅜ:"b",ㅒ:"G",ㅘ:"vf",ㅙ:"vr",ㅚ:"vd",ㅝ:"bt",ㅞ:"bc",ㅟ:"bd"},INITIALS:{ㅋ:"0",ㄹ:"y",ㄷ:"u",ㅁ:"i",ㅊ:"o",ㅍ:"p",ㄴ:"h",ㅇ:"j",ㄱ:"k",ㅈ:"l",ㅂ:";",ㅌ:"'",ㅅ:"n",ㅎ:"m",ㄲ:"!",ㄸ:"uu",ㅃ:";;",ㅆ:"nn",ㅉ:"l"}})}),e.Sebeolsik=r,Object.freeze(r),Object.freeze(r.prototype);class o extends m.U{constructor(e){super("kore-rom",e)}static BUILD(){return t(((e,a,r)=>e.roman+a.roman+r.roman))}}e.Romanization=o,Object.freeze(o),Object.freeze(o.prototype);const t=e=>{const a={};return n.forEach(((r,o)=>{s.forEach(((m,t)=>{u.forEach(((n,l)=>{let f=o;f=s.length*f+t,f=u.length*f+l;const v=String.fromCharCode(44032+f);a[v]={seq:e(r,m,n),weight:r.freq*m.freq*n.freq}}))}))})),a},n=Object.freeze([{value:"ㄱ",atoms:"ㄱ",roman:"g",freq:2.508206},{value:"ㄲ",atoms:"ㄱㄱ",roman:"kk",freq:.139215},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:1.278464},{value:"ㄷ",atoms:"ㄷ",roman:"d",freq:1.715174},{value:"ㄸ",atoms:"ㄷㄷ",roman:"tt",freq:.155508},{value:"ㄹ",atoms:"ㄹ",roman:"r",freq:1.30699},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.920276},{value:"ㅂ",atoms:"ㅂ",roman:"b",freq:.768992},{value:"ㅃ",atoms:"ㅂㅂ",roman:"pp",freq:.034349},{value:"ㅅ",atoms:"ㅅ",roman:"s",freq:1.620272},{value:"ㅆ",atoms:"ㅅㅅ",roman:"ss",freq:.062508},{value:"ㅇ",atoms:"ㅇ",roman:"-",freq:4.509884},{value:"ㅈ",atoms:"ㅈ",roman:"j",freq:1.603205},{value:"ㅉ",atoms:"ㅈㅈ",roman:"jj",freq:.043767},{value:"ㅊ",atoms:"ㅊ",roman:"ch",freq:.428943},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:.103017},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.228492},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.212015},{value:"ㅎ",atoms:"ㅎ",roman:"h",freq:1.360725}]),s=Object.freeze([{value:"ㅏ",atoms:"ㅏ",roman:"a",freq:4.559484},{value:"ㅐ",atoms:"ㅐ",roman:"ae",freq:.970054},{value:"ㅑ",atoms:"ㅑ",roman:"ya",freq:.150865},{value:"ㅒ",atoms:"ㅒ",roman:"yae",freq:.008922},{value:"ㅓ",atoms:"ㅓ",roman:"eo",freq:2.231959},{value:"ㅔ",atoms:"ㅔ",roman:"e",freq:.932004},{value:"ㅕ",atoms:"ㅕ",roman:"yeo",freq:1.000171},{value:"ㅖ",atoms:"ㅖ",roman:"ye",freq:.105095},{value:"ㅗ",atoms:"ㅗ",roman:"o",freq:2.040807},{value:"ㅘ",atoms:"ㅗㅏ",roman:"wa",freq:.38506},{value:"ㅙ",atoms:"ㅗㅐ",roman:"wae",freq:.02655},{value:"ㅚ",atoms:"ㅗㅣ",roman:"oe",freq:.236245},{value:"ㅛ",atoms:"ㅛ",roman:"yo",freq:.223892},{value:"ㅜ",atoms:"ㅜ",roman:"u",freq:1.402448},{value:"ㅝ",atoms:"ㅜㅓ",roman:"wo",freq:.135821},{value:"ㅞ",atoms:"ㅜㅔ",roman:"we",freq:.004818},{value:"ㅟ",atoms:"ㅜㅣ",roman:"wi",freq:.112462},{value:"ㅠ",atoms:"ㅠ",roman:"yu",freq:.111584},{value:"ㅡ",atoms:"ㅡ",roman:"eu",freq:2.727101},{value:"ㅢ",atoms:"ㅡㅣ",roman:"ui",freq:.425688},{value:"ㅣ",atoms:"ㅣ",roman:"i",freq:3.208973}]),u=Object.freeze([{value:"",atoms:"",roman:"",freq:17.06119},{value:"ㄱ",atoms:"ㄱ",roman:"k",freq:1.109483},{value:"ㄲ",atoms:"ㄱㄱ",roman:"k",freq:.016359},{value:"ㄳ",atoms:"ㄱㅅ",roman:"kt",freq:962e-6},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:3.580456},{value:"ㄵ",atoms:"ㄴㅈ",roman:"nt",freq:.007522},{value:"ㄶ",atoms:"ㄴㅎ",roman:"nt",freq:.081892},{value:"ㄷ",atoms:"ㄷ",roman:"t",freq:.049969},{value:"ㄹ",atoms:"ㄹ",roman:"l",freq:2.094454},{value:"ㄺ",atoms:"ㄹㄱ",roman:"lk",freq:.019761},{value:"ㄻ",atoms:"ㄹㅁ",roman:"lm",freq:.011711},{value:"ㄼ",atoms:"ㄹㅂ",roman:"lp",freq:.005885},{value:"ㄽ",atoms:"ㄹㅅ",roman:"lt",freq:13e-6},{value:"ㄾ",atoms:"ㄹㅌ",roman:"lt",freq:353e-6},{value:"ㄿ",atoms:"ㄹㅍ",roman:"lp",freq:21e-5},{value:"ㅀ",atoms:"ㄹㅎ",roman:"lt",freq:.00815},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.697015},{value:"ㅂ",atoms:"ㅂ",roman:"p",freq:.360526},{value:"ㅄ",atoms:"ㅂㅅ",roman:"pt",freq:.069739},{value:"ㅅ",atoms:"ㅅ",roman:"t",freq:.308934},{value:"ㅆ",atoms:"ㅅㅅ",roman:"t",freq:.590913},{value:"ㅇ",atoms:"ㅇ",roman:"ng",freq:1.66395},{value:"ㅈ",atoms:"ㅈ",roman:"t",freq:.046297},{value:"ㅊ",atoms:"ㅊ",roman:"t",freq:.026808},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:814e-6},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.068318},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.045664},{value:"ㅎ",atoms:"ㅎ",roman:"t",freq:.002595}])}(o||(o={})),Object.freeze(o)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[227],{969:(e,a,r)=>{"use strict";r.r(a),r.d(a,{Korean:()=>o});var o,m=r(208);!function(e){const a=class extends m.U{constructor(e){super("kore-dub",e)}static BUILD(){return n(((e,r,o)=>[e,r,o].flatMap((e=>e.atoms.split(""))).freeze().map((e=>a.DUB_KEYBOARD[e])).join("")))}};let r=a;r.DUB_KEYBOARD=Object.freeze({"":"",ㅂ:"q",ㅈ:"w",ㄷ:"e",ㄱ:"r",ㅅ:"t",ㅛ:"y",ㅕ:"u",ㅑ:"i",ㅐ:"o",ㅔ:"p",ㅁ:"a",ㄴ:"s",ㅇ:"d",ㄹ:"f",ㅎ:"g",ㅗ:"h",ㅓ:"j",ㅏ:"k",ㅣ:"l",ㅋ:"z",ㅌ:"x",ㅊ:"c",ㅍ:"v",ㅠ:"b",ㅜ:"n",ㅡ:"m",ㅃ:"Q",ㅉ:"W",ㄸ:"E",ㄲ:"R",ㅆ:"T",ㅒ:"O",ㅖ:"P"}),e.Dubeolsik=r,Object.freeze(r),Object.freeze(r.prototype);const o=class extends m.U{constructor(e){super("kore-sub",e)}static BUILD(){return n(((e,a,r)=>o.SEB_KEYBOARD.INITIALS[e.value]+o.SEB_KEYBOARD.MEDIALS[a.value]+o.SEB_KEYBOARD.FINALS[r.value]))}};let t=o;t.SEB_KEYBOARD=Object.freeze({FINALS:{"":"",ㅎ:"1",ㅆ:"2",ㅂ:"3",ㅅ:"q",ㄹ:"w",ㅇ:"a",ㄴ:"s",ㅁ:"z",ㄱ:"x",ㄲ:"!",ㄺ:"@",ㅈ:"#",ㄿ:"$",ㄾ:"%",ㅍ:"Q",ㅌ:"W",ㄵ:"E",ㅀ:"R",ㄽ:"T",ㄷ:"A",ㄶ:"S",ㄼ:"D",ㄻ:"F",ㅊ:"Z",ㅄ:"X",ㅋ:"C",ㄳ:"V"},MEDIALS:{ㅛ:"4",ㅠ:"5",ㅑ:"6",ㅖ:"7",ㅢ:"8",ㅕ:"e",ㅐ:"r",ㅓ:"t",ㅣ:"d",ㅏ:"f",ㅡ:"g",ㅔ:"c",ㅗ:"v",ㅜ:"b",ㅒ:"G",ㅘ:"vf",ㅙ:"vr",ㅚ:"vd",ㅝ:"bt",ㅞ:"bc",ㅟ:"bd"},INITIALS:{ㅋ:"0",ㄹ:"y",ㄷ:"u",ㅁ:"i",ㅊ:"o",ㅍ:"p",ㄴ:"h",ㅇ:"j",ㄱ:"k",ㅈ:"l",ㅂ:";",ㅌ:"'",ㅅ:"n",ㅎ:"m",ㄲ:"!",ㄸ:"uu",ㅃ:";;",ㅆ:"nn",ㅉ:"l"}}),e.Sebeolsik=t,Object.freeze(t),Object.freeze(t.prototype);class s extends m.U{constructor(e){super("kore-rom",e)}static BUILD(){return n(((e,a,r)=>e.roman+a.roman+r.roman))}}e.Romanization=s,Object.freeze(s),Object.freeze(s.prototype);const n=e=>{const a={};return l.forEach(((r,o)=>{u.forEach(((m,t)=>{f.forEach(((s,n)=>{let l=o;l=u.length*l+t,l=f.length*l+n;const v=String.fromCharCode(44032+l);a[v]={seq:e(r,m,s),weight:r.freq*m.freq*s.freq}}))}))})),a},l=Object.freeze([{value:"ㄱ",atoms:"ㄱ",roman:"g",freq:2.508206},{value:"ㄲ",atoms:"ㄱㄱ",roman:"kk",freq:.139215},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:1.278464},{value:"ㄷ",atoms:"ㄷ",roman:"d",freq:1.715174},{value:"ㄸ",atoms:"ㄷㄷ",roman:"tt",freq:.155508},{value:"ㄹ",atoms:"ㄹ",roman:"r",freq:1.30699},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.920276},{value:"ㅂ",atoms:"ㅂ",roman:"b",freq:.768992},{value:"ㅃ",atoms:"ㅂㅂ",roman:"pp",freq:.034349},{value:"ㅅ",atoms:"ㅅ",roman:"s",freq:1.620272},{value:"ㅆ",atoms:"ㅅㅅ",roman:"ss",freq:.062508},{value:"ㅇ",atoms:"ㅇ",roman:"-",freq:4.509884},{value:"ㅈ",atoms:"ㅈ",roman:"j",freq:1.603205},{value:"ㅉ",atoms:"ㅈㅈ",roman:"jj",freq:.043767},{value:"ㅊ",atoms:"ㅊ",roman:"ch",freq:.428943},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:.103017},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.228492},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.212015},{value:"ㅎ",atoms:"ㅎ",roman:"h",freq:1.360725}]),u=Object.freeze([{value:"ㅏ",atoms:"ㅏ",roman:"a",freq:4.559484},{value:"ㅐ",atoms:"ㅐ",roman:"ae",freq:.970054},{value:"ㅑ",atoms:"ㅑ",roman:"ya",freq:.150865},{value:"ㅒ",atoms:"ㅒ",roman:"yae",freq:.008922},{value:"ㅓ",atoms:"ㅓ",roman:"eo",freq:2.231959},{value:"ㅔ",atoms:"ㅔ",roman:"e",freq:.932004},{value:"ㅕ",atoms:"ㅕ",roman:"yeo",freq:1.000171},{value:"ㅖ",atoms:"ㅖ",roman:"ye",freq:.105095},{value:"ㅗ",atoms:"ㅗ",roman:"o",freq:2.040807},{value:"ㅘ",atoms:"ㅗㅏ",roman:"wa",freq:.38506},{value:"ㅙ",atoms:"ㅗㅐ",roman:"wae",freq:.02655},{value:"ㅚ",atoms:"ㅗㅣ",roman:"oe",freq:.236245},{value:"ㅛ",atoms:"ㅛ",roman:"yo",freq:.223892},{value:"ㅜ",atoms:"ㅜ",roman:"u",freq:1.402448},{value:"ㅝ",atoms:"ㅜㅓ",roman:"wo",freq:.135821},{value:"ㅞ",atoms:"ㅜㅔ",roman:"we",freq:.004818},{value:"ㅟ",atoms:"ㅜㅣ",roman:"wi",freq:.112462},{value:"ㅠ",atoms:"ㅠ",roman:"yu",freq:.111584},{value:"ㅡ",atoms:"ㅡ",roman:"eu",freq:2.727101},{value:"ㅢ",atoms:"ㅡㅣ",roman:"ui",freq:.425688},{value:"ㅣ",atoms:"ㅣ",roman:"i",freq:3.208973}]),f=Object.freeze([{value:"",atoms:"",roman:"",freq:17.06119},{value:"ㄱ",atoms:"ㄱ",roman:"k",freq:1.109483},{value:"ㄲ",atoms:"ㄱㄱ",roman:"k",freq:.016359},{value:"ㄳ",atoms:"ㄱㅅ",roman:"kt",freq:962e-6},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:3.580456},{value:"ㄵ",atoms:"ㄴㅈ",roman:"nt",freq:.007522},{value:"ㄶ",atoms:"ㄴㅎ",roman:"nt",freq:.081892},{value:"ㄷ",atoms:"ㄷ",roman:"t",freq:.049969},{value:"ㄹ",atoms:"ㄹ",roman:"l",freq:2.094454},{value:"ㄺ",atoms:"ㄹㄱ",roman:"lk",freq:.019761},{value:"ㄻ",atoms:"ㄹㅁ",roman:"lm",freq:.011711},{value:"ㄼ",atoms:"ㄹㅂ",roman:"lp",freq:.005885},{value:"ㄽ",atoms:"ㄹㅅ",roman:"lt",freq:13e-6},{value:"ㄾ",atoms:"ㄹㅌ",roman:"lt",freq:353e-6},{value:"ㄿ",atoms:"ㄹㅍ",roman:"lp",freq:21e-5},{value:"ㅀ",atoms:"ㄹㅎ",roman:"lt",freq:.00815},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.697015},{value:"ㅂ",atoms:"ㅂ",roman:"p",freq:.360526},{value:"ㅄ",atoms:"ㅂㅅ",roman:"pt",freq:.069739},{value:"ㅅ",atoms:"ㅅ",roman:"t",freq:.308934},{value:"ㅆ",atoms:"ㅅㅅ",roman:"t",freq:.590913},{value:"ㅇ",atoms:"ㅇ",roman:"ng",freq:1.66395},{value:"ㅈ",atoms:"ㅈ",roman:"t",freq:.046297},{value:"ㅊ",atoms:"ㅊ",roman:"t",freq:.026808},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:814e-6},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.068318},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.045664},{value:"ㅎ",atoms:"ㅎ",roman:"t",freq:.002595}])}(o||(o={})),Object.freeze(o)}}]); //# sourceMappingURL=Korean-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Korean-ts.js.map b/client/chunk/lang/Korean-ts.js.map index 41a20dc1..96ca7aef 100644 --- a/client/chunk/lang/Korean-ts.js.map +++ b/client/chunk/lang/Korean-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Korean.ts"],"names":["Korean","Dubeolsik","weightScaling","super","INITIALIZE","ij","mj","fj","flatMap","jamos","atoms","split","map","atom","DUB_KEYBOARD","join","Object","freeze","prototype","Sebeolsik","SEB_KEYBOARD","INITIALS","value","MEDIALS","FINALS","Romanization","roman","seqBuilder","forwardDict","forEach","initialJamo","initialIdx","medialJamo","medialIdx","finalJamo","finalIdx","offset","length","char","String","fromCharCode","seq","weight","freq"],"mappings":"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","file":"chunk/lang/Korean-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Korean.ts"],"names":["Korean","weightScaling","super","INITIALIZE","ij","mj","fj","flatMap","jamos","atoms","split","freeze","map","atom","DUB_KEYBOARD","join","Object","Dubeolsik","prototype","SEB_KEYBOARD","INITIALS","value","MEDIALS","FINALS","Sebeolsik","roman","Romanization","seqBuilder","forwardDict","forEach","initialJamo","initialIdx","medialJamo","medialIdx","finalJamo","finalIdx","offset","length","char","String","fromCharCode","seq","weight","freq"],"mappings":"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","file":"chunk/lang/Korean-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Ngrams-ts.js b/client/chunk/lang/Ngrams-ts.js index 55e33fdd..a0bcf2d5 100644 --- a/client/chunk/lang/Ngrams-ts.js +++ b/client/chunk/lang/Ngrams-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[273],{492:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Ngrams:()=>o});var r=a(115);const i=JSON.parse('{"in":22.964,"th":22.691,"er":20.307,"re":18.511,"he":18.141,"an":17.958,"on":17.113,"es":16.579,"or":14.649,"te":13.789,"at":13.731,"ti":13.599,"st":13.411,"en":13.17,"nt":12.217,"ar":11.712,"to":11.677,"nd":11.586,"al":10.907,"it":10.354,"se":9.908,"ed":9.797,"is":9.63,"ea":9.529,"ng":9.313,"ou":9.013,"le":8.949,"co":8.941,"me":8.68,"ne":8.249,"ri":8.203,"ro":7.939,"de":7.894,"ra":7.859,"io":7.813,"ic":7.778,"li":7.706,"of":7.657,"as":7.419,"et":7.293,"ve":7.22,"ta":7.213,"si":7.066,"ha":7.019,"ma":6.858,"ec":6.786,"om":6.519,"ce":6.469,"el":6.461,"ll":6.236,"ca":6.126,"ur":6.125,"la":6.01,"ch":5.821,"hi":5.799,"di":5.673,"ho":5.628,"fo":5.578,"ns":5.529,"ot":5.522,"ac":5.45,"na":5.423,"rs":5.365,"so":5.36,"pr":5.326,"rt":5.31,"sa":5.304,"ss":5.294,"us":5.226,"no":5.216,"il":5.213,"ts":5.106,"em":5.072,"ct":4.923,"ge":4.855,"lo":4.831,"ee":4.676,"be":4.635,"tr":4.599,"ni":4.32,"pe":4.28,"ie":4.247,"pa":4.241,"nc":4.214,"po":4.038,"ol":4.012,"da":3.966,"ad":3.952,"vi":3.942,"un":3.916,"am":3.901,"ut":3.833,"wi":3.66,"mo":3.636,"sh":3.632,"yo":3.452,"ai":3.422,"ew":3.407,"ow":3.402,"os":3.376,"fi":3.365,"ep":3.311,"tt":3.274,"mi":3.252,"op":3.25,"ia":3.244,"we":3.19,"ag":3.137,"su":3.12,"id":3.05,"do":3.016,"oo":2.988,"ir":2.903,"sp":2.898,"pl":2.896,"sc":2.876,"ay":2.853,"wa":2.831,"ig":2.769,"ei":2.749,"ry":2.738,"ly":2.734,"tu":2.694,"ul":2.683,"iv":2.646,"im":2.636,"ab":2.621,"ty":2.592,"ci":2.575,"ap":2.564,"ev":2.551,"eo":2.516,"ef":2.511,"od":2.48,"fr":2.46,"rd":2.45,"bo":2.433,"rc":2.432,"mp":2.429,"ga":2.417,"bl":2.411,"ke":2.405,"ds":2.404,"ck":2.347,"oc":2.329,"ba":2.321,"ls":2.309,"rm":2.306,"fe":2.289,"ex":2.275,"ft":2.244,"av":2.164,"eb":2.158,"ld":2.152,"wh":2.051,"gh":2.051,"gr":2.049,"gi":2.045,"wo":2.005,"ov":2.004,"cl":1.982,"rn":1.969,"bu":1.968,"eg":1.961,"fa":1.947,"go":1.877,"dt":1.87,"lt":1.858,"uc":1.823,"if":1.815,"ys":1.801,"ht":1.794,"du":1.745,"va":1.714,"um":1.705,"cr":1.691,"pp":1.682,"by":1.679,"pi":1.64,"cu":1.629,"og":1.625,"up":1.599,"ff":1.521,"nf":1.487,"bi":1.484,"ki":1.468,"au":1.467,"lu":1.467,"ob":1.451,"ru":1.444,"ue":1.441,"rr":1.441,"ey":1.434,"ip":1.411,"qu":1.411,"oa":1.402,"ua":1.401,"ms":1.395,"tw":1.383,"mm":1.34}');var n=a.t(i,2);const s=JSON.parse('{"the":28.751,"ing":15.313,"and":15.216,"ion":13.975,"tio":11.453,"ent":11.181,"for":9.201,"ati":8.864,"ter":7.576,"ate":6.996,"ers":6.453,"res":5.92,"her":5.889,"est":5.657,"com":5.647,"pro":5.586,"ere":5.36,"all":5.351,"int":5.342,"men":5.337,"you":5.258,"ons":5.171,"our":5.159,"con":5.023,"are":4.962,"tha":4.892,"ver":4.872,"ess":4.817,"thi":4.681,"rea":4.652,"sta":4.528,"tin":4.392,"hat":4.254,"ist":4.246,"ect":4.244,"ort":4.223,"ear":4.221,"ine":4.187,"age":4.185,"his":4.086,"ted":3.994,"ont":3.989,"nce":3.921,"sto":3.877,"ith":3.867,"nte":3.807,"sin":3.782,"tor":3.777,"ore":3.736,"lin":3.706,"ive":3.671,"ite":3.595,"wit":3.57,"not":3.524,"nth":3.512,"tra":3.43,"ome":3.43,"ica":3.427,"per":3.412,"art":3.381,"ste":3.351,"cti":3.302,"oft":3.261,"oth":3.246,"ice":3.227,"out":3.19,"ill":3.101,"ide":3.068,"eth":3.068,"ies":3.066,"one":3.059,"ser":3.025,"eco":3.024,"era":3.003,"str":2.999,"eve":2.975,"din":2.945,"rat":2.927,"ona":2.924,"ces":2.92,"edi":2.907,"iti":2.898,"eri":2.891,"ran":2.832,"san":2.811,"ity":2.794,"oun":2.785,"nal":2.767,"use":2.748,"ure":2.737,"rin":2.728,"ame":2.726,"act":2.725,"igh":2.723,"ese":2.713,"ave":2.71,"sti":2.709,"nts":2.698,"hes":2.685,"sit":2.673,"der":2.664,"fth":2.66,"les":2.65,"man":2.643,"ant":2.637,"ind":2.622,"new":2.574,"pri":2.573,"ree":2.57,"ble":2.557,"ast":2.555,"nta":2.551,"tur":2.541,"por":2.534,"ght":2.525,"ain":2.523,"anc":2.511,"cha":2.51,"eas":2.502,"par":2.483,"ove":2.48,"nde":2.452,"rom":2.451,"rec":2.449,"ert":2.442,"lan":2.442,"cal":2.438,"sof":2.414,"can":2.403,"orm":2.385,"tes":2.379,"ost":2.368,"cat":2.352,"son":2.349,"tic":2.334,"end":2.333,"hea":2.332,"ina":2.329,"red":2.326,"wor":2.324,"ber":2.31,"lic":2.305,"han":2.304,"mat":2.302,"tat":2.287,"hin":2.282,"nes":2.275,"pre":2.272,"sho":2.261,"ren":2.258,"ein":2.258,"eme":2.242,"ric":2.239,"ust":2.234,"fro":2.232,"rth":2.231,"inc":2.231,"eat":2.23,"ase":2.216,"nti":2.212,"ard":2.21,"rch":2.197,"ndi":2.195,"lea":2.187,"tan":2.177,"ssi":2.17,"nin":2.147,"min":2.133,"ail":2.126,"omp":2.122,"ins":2.106,"cou":2.1,"ell":2.096,"erv":2.095,"tal":2.093,"enc":2.092,"ass":2.089,"tth":2.08,"lle":2.071,"ele":2.052,"mor":2.05,"ean":2.039,"sth":2.033,"tem":2.032,"sea":2.026,"rma":2.019,"als":2.008,"und":2.005,"pla":2.004,"ple":2.002,"eal":1.992,"rie":1.985,"ema":1.973,"ali":1.949,"nda":1.946,"ack":1.942,"hen":1.938,"ial":1.937,"ord":1.929,"ana":1.927,"arc":1.923,"ori":1.905,"che":1.891,"tho":1.887,"eof":1.886,"lis":1.886,"dis":1.877,"een":1.876,"car":1.876,"ngt":1.875,"ire":1.869,"ead":1.866,"eto":1.854,"ene":1.853,"att":1.848,"nto":1.846,"omm":1.844,"pos":1.838,"abl":1.832,"lat":1.832,"nds":1.819,"dat":1.813,"lit":1.81,"gra":1.802,"mes":1.796,"hec":1.793,"kin":1.791,"esa":1.786,"vie":1.784,"ote":1.776,"dth":1.776,"ern":1.776,"sio":1.774,"ono":1.773,"esi":1.755,"inf":1.748,"mer":1.746,"nfo":1.744,"hav":1.739,"mar":1.738,"chi":1.735,"ten":1.724,"uni":1.714,"ime":1.713,"nat":1.711,"des":1.711,"hou":1.708,"rit":1.699,"tim":1.697,"den":1.686,"sco":1.682,"ans":1.682,"hel":1.675,"nst":1.67,"rti":1.668,"rep":1.668,"eso":1.666,"tot":1.66,"any":1.656,"tri":1.651,"ret":1.637,"fin":1.634,"spe":1.634,"duc":1.633,"ntr":1.629,"mbe":1.628,"usi":1.619,"tiv":1.619,"ner":1.618,"ous":1.614,"was":1.612,"hem":1.602,"ens":1.601,"ale":1.591,"day":1.59,"unt":1.587,"tte":1.586,"ngs":1.571,"tre":1.567,"ral":1.564,"rou":1.563,"sed":1.562,"nge":1.56,"edt":1.559,"wil":1.559,"ini":1.546,"nit":1.543,"ora":1.538,"har":1.535,"tof":1.523,"las":1.52,"mon":1.517,"ton":1.516,"ile":1.514,"ope":1.511,"fre":1.507,"ors":1.498,"ven":1.497,"eli":1.494,"uct":1.493,"shi":1.493,"abo":1.491,"ook":1.487,"gin":1.486,"evi":1.483,"ang":1.483,"ary":1.478,"ond":1.476,"rac":1.471,"app":1.47,"ses":1.461,"sen":1.459,"own":1.458,"ani":1.458,"dit":1.458,"iss":1.455,"efo":1.454,"ork":1.451,"ndt":1.447,"tel":1.445,"sse":1.439,"log":1.438,"hei":1.435,"epr":1.43,"isi":1.43,"rel":1.428,"mai":1.427,"off":1.423,"top":1.42,"tis":1.416,"iew":1.416,"cen":1.412,"net":1.41,"cia":1.408,"low":1.402,"nan":1.4,"erm":1.399,"vel":1.396,"has":1.395,"wer":1.394,"onl":1.393,"oul":1.392,"ose":1.389,"dto":1.389,"ade":1.387,"ake":1.387,"hot":1.385,"let":1.379,"cre":1.37,"war":1.366,"oll":1.363,"ery":1.36,"fic":1.358,"gen":1.344,"ien":1.343,"lar":1.337,"oli":1.335,"vid":1.334,"rev":1.333,"mpl":1.333,"ach":1.33,"ari":1.328,"its":1.327,"ish":1.326,"ndo":1.324,"ews":1.324,"ili":1.323,"vic":1.321,"eda":1.31,"lec":1.309,"bou":1.309,"spo":1.304,"ult":1.304,"rvi":1.303,"but":1.303,"tar":1.301,"nga":1.301,"hom":1.3,"fer":1.299,"sel":1.297,"acc":1.289,"ick":1.287,"hep":1.286,"eed":1.286,"ges":1.283,"ian":1.28,"sec":1.278,"gre":1.278,"ory":1.275,"rig":1.273,"tai":1.268,"rst":1.267,"cor":1.263,"pag":1.26,"rre":1.254,"dre":1.245,"ela":1.244,"ata":1.243,"emo":1.241,"alt":1.24}');var o,c=a.t(s,2);Object.freeze(n),Object.freeze(c),function(e){class t extends r.U{constructor(e){super("ngram2",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(n)}}e.Ngram2=t,Object.freeze(t),Object.freeze(t.prototype);class a extends r.U{constructor(e){super("ngram3",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(c)}}e.Ngram3=a,Object.freeze(a),Object.freeze(a.prototype)}(o||(o={})),Object.freeze(o)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[273],{755:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Ngrams:()=>o});var r=a(208);const i=JSON.parse('{"in":22.964,"th":22.691,"er":20.307,"re":18.511,"he":18.141,"an":17.958,"on":17.113,"es":16.579,"or":14.649,"te":13.789,"at":13.731,"ti":13.599,"st":13.411,"en":13.17,"nt":12.217,"ar":11.712,"to":11.677,"nd":11.586,"al":10.907,"it":10.354,"se":9.908,"ed":9.797,"is":9.63,"ea":9.529,"ng":9.313,"ou":9.013,"le":8.949,"co":8.941,"me":8.68,"ne":8.249,"ri":8.203,"ro":7.939,"de":7.894,"ra":7.859,"io":7.813,"ic":7.778,"li":7.706,"of":7.657,"as":7.419,"et":7.293,"ve":7.22,"ta":7.213,"si":7.066,"ha":7.019,"ma":6.858,"ec":6.786,"om":6.519,"ce":6.469,"el":6.461,"ll":6.236,"ca":6.126,"ur":6.125,"la":6.01,"ch":5.821,"hi":5.799,"di":5.673,"ho":5.628,"fo":5.578,"ns":5.529,"ot":5.522,"ac":5.45,"na":5.423,"rs":5.365,"so":5.36,"pr":5.326,"rt":5.31,"sa":5.304,"ss":5.294,"us":5.226,"no":5.216,"il":5.213,"ts":5.106,"em":5.072,"ct":4.923,"ge":4.855,"lo":4.831,"ee":4.676,"be":4.635,"tr":4.599,"ni":4.32,"pe":4.28,"ie":4.247,"pa":4.241,"nc":4.214,"po":4.038,"ol":4.012,"da":3.966,"ad":3.952,"vi":3.942,"un":3.916,"am":3.901,"ut":3.833,"wi":3.66,"mo":3.636,"sh":3.632,"yo":3.452,"ai":3.422,"ew":3.407,"ow":3.402,"os":3.376,"fi":3.365,"ep":3.311,"tt":3.274,"mi":3.252,"op":3.25,"ia":3.244,"we":3.19,"ag":3.137,"su":3.12,"id":3.05,"do":3.016,"oo":2.988,"ir":2.903,"sp":2.898,"pl":2.896,"sc":2.876,"ay":2.853,"wa":2.831,"ig":2.769,"ei":2.749,"ry":2.738,"ly":2.734,"tu":2.694,"ul":2.683,"iv":2.646,"im":2.636,"ab":2.621,"ty":2.592,"ci":2.575,"ap":2.564,"ev":2.551,"eo":2.516,"ef":2.511,"od":2.48,"fr":2.46,"rd":2.45,"bo":2.433,"rc":2.432,"mp":2.429,"ga":2.417,"bl":2.411,"ke":2.405,"ds":2.404,"ck":2.347,"oc":2.329,"ba":2.321,"ls":2.309,"rm":2.306,"fe":2.289,"ex":2.275,"ft":2.244,"av":2.164,"eb":2.158,"ld":2.152,"wh":2.051,"gh":2.051,"gr":2.049,"gi":2.045,"wo":2.005,"ov":2.004,"cl":1.982,"rn":1.969,"bu":1.968,"eg":1.961,"fa":1.947,"go":1.877,"dt":1.87,"lt":1.858,"uc":1.823,"if":1.815,"ys":1.801,"ht":1.794,"du":1.745,"va":1.714,"um":1.705,"cr":1.691,"pp":1.682,"by":1.679,"pi":1.64,"cu":1.629,"og":1.625,"up":1.599,"ff":1.521,"nf":1.487,"bi":1.484,"ki":1.468,"au":1.467,"lu":1.467,"ob":1.451,"ru":1.444,"ue":1.441,"rr":1.441,"ey":1.434,"ip":1.411,"qu":1.411,"oa":1.402,"ua":1.401,"ms":1.395,"tw":1.383,"mm":1.34}');var n=a.t(i,2);const s=JSON.parse('{"the":28.751,"ing":15.313,"and":15.216,"ion":13.975,"tio":11.453,"ent":11.181,"for":9.201,"ati":8.864,"ter":7.576,"ate":6.996,"ers":6.453,"res":5.92,"her":5.889,"est":5.657,"com":5.647,"pro":5.586,"ere":5.36,"all":5.351,"int":5.342,"men":5.337,"you":5.258,"ons":5.171,"our":5.159,"con":5.023,"are":4.962,"tha":4.892,"ver":4.872,"ess":4.817,"thi":4.681,"rea":4.652,"sta":4.528,"tin":4.392,"hat":4.254,"ist":4.246,"ect":4.244,"ort":4.223,"ear":4.221,"ine":4.187,"age":4.185,"his":4.086,"ted":3.994,"ont":3.989,"nce":3.921,"sto":3.877,"ith":3.867,"nte":3.807,"sin":3.782,"tor":3.777,"ore":3.736,"lin":3.706,"ive":3.671,"ite":3.595,"wit":3.57,"not":3.524,"nth":3.512,"tra":3.43,"ome":3.43,"ica":3.427,"per":3.412,"art":3.381,"ste":3.351,"cti":3.302,"oft":3.261,"oth":3.246,"ice":3.227,"out":3.19,"ill":3.101,"ide":3.068,"eth":3.068,"ies":3.066,"one":3.059,"ser":3.025,"eco":3.024,"era":3.003,"str":2.999,"eve":2.975,"din":2.945,"rat":2.927,"ona":2.924,"ces":2.92,"edi":2.907,"iti":2.898,"eri":2.891,"ran":2.832,"san":2.811,"ity":2.794,"oun":2.785,"nal":2.767,"use":2.748,"ure":2.737,"rin":2.728,"ame":2.726,"act":2.725,"igh":2.723,"ese":2.713,"ave":2.71,"sti":2.709,"nts":2.698,"hes":2.685,"sit":2.673,"der":2.664,"fth":2.66,"les":2.65,"man":2.643,"ant":2.637,"ind":2.622,"new":2.574,"pri":2.573,"ree":2.57,"ble":2.557,"ast":2.555,"nta":2.551,"tur":2.541,"por":2.534,"ght":2.525,"ain":2.523,"anc":2.511,"cha":2.51,"eas":2.502,"par":2.483,"ove":2.48,"nde":2.452,"rom":2.451,"rec":2.449,"ert":2.442,"lan":2.442,"cal":2.438,"sof":2.414,"can":2.403,"orm":2.385,"tes":2.379,"ost":2.368,"cat":2.352,"son":2.349,"tic":2.334,"end":2.333,"hea":2.332,"ina":2.329,"red":2.326,"wor":2.324,"ber":2.31,"lic":2.305,"han":2.304,"mat":2.302,"tat":2.287,"hin":2.282,"nes":2.275,"pre":2.272,"sho":2.261,"ren":2.258,"ein":2.258,"eme":2.242,"ric":2.239,"ust":2.234,"fro":2.232,"rth":2.231,"inc":2.231,"eat":2.23,"ase":2.216,"nti":2.212,"ard":2.21,"rch":2.197,"ndi":2.195,"lea":2.187,"tan":2.177,"ssi":2.17,"nin":2.147,"min":2.133,"ail":2.126,"omp":2.122,"ins":2.106,"cou":2.1,"ell":2.096,"erv":2.095,"tal":2.093,"enc":2.092,"ass":2.089,"tth":2.08,"lle":2.071,"ele":2.052,"mor":2.05,"ean":2.039,"sth":2.033,"tem":2.032,"sea":2.026,"rma":2.019,"als":2.008,"und":2.005,"pla":2.004,"ple":2.002,"eal":1.992,"rie":1.985,"ema":1.973,"ali":1.949,"nda":1.946,"ack":1.942,"hen":1.938,"ial":1.937,"ord":1.929,"ana":1.927,"arc":1.923,"ori":1.905,"che":1.891,"tho":1.887,"eof":1.886,"lis":1.886,"dis":1.877,"een":1.876,"car":1.876,"ngt":1.875,"ire":1.869,"ead":1.866,"eto":1.854,"ene":1.853,"att":1.848,"nto":1.846,"omm":1.844,"pos":1.838,"abl":1.832,"lat":1.832,"nds":1.819,"dat":1.813,"lit":1.81,"gra":1.802,"mes":1.796,"hec":1.793,"kin":1.791,"esa":1.786,"vie":1.784,"ote":1.776,"dth":1.776,"ern":1.776,"sio":1.774,"ono":1.773,"esi":1.755,"inf":1.748,"mer":1.746,"nfo":1.744,"hav":1.739,"mar":1.738,"chi":1.735,"ten":1.724,"uni":1.714,"ime":1.713,"nat":1.711,"des":1.711,"hou":1.708,"rit":1.699,"tim":1.697,"den":1.686,"sco":1.682,"ans":1.682,"hel":1.675,"nst":1.67,"rti":1.668,"rep":1.668,"eso":1.666,"tot":1.66,"any":1.656,"tri":1.651,"ret":1.637,"fin":1.634,"spe":1.634,"duc":1.633,"ntr":1.629,"mbe":1.628,"usi":1.619,"tiv":1.619,"ner":1.618,"ous":1.614,"was":1.612,"hem":1.602,"ens":1.601,"ale":1.591,"day":1.59,"unt":1.587,"tte":1.586,"ngs":1.571,"tre":1.567,"ral":1.564,"rou":1.563,"sed":1.562,"nge":1.56,"edt":1.559,"wil":1.559,"ini":1.546,"nit":1.543,"ora":1.538,"har":1.535,"tof":1.523,"las":1.52,"mon":1.517,"ton":1.516,"ile":1.514,"ope":1.511,"fre":1.507,"ors":1.498,"ven":1.497,"eli":1.494,"uct":1.493,"shi":1.493,"abo":1.491,"ook":1.487,"gin":1.486,"evi":1.483,"ang":1.483,"ary":1.478,"ond":1.476,"rac":1.471,"app":1.47,"ses":1.461,"sen":1.459,"own":1.458,"ani":1.458,"dit":1.458,"iss":1.455,"efo":1.454,"ork":1.451,"ndt":1.447,"tel":1.445,"sse":1.439,"log":1.438,"hei":1.435,"epr":1.43,"isi":1.43,"rel":1.428,"mai":1.427,"off":1.423,"top":1.42,"tis":1.416,"iew":1.416,"cen":1.412,"net":1.41,"cia":1.408,"low":1.402,"nan":1.4,"erm":1.399,"vel":1.396,"has":1.395,"wer":1.394,"onl":1.393,"oul":1.392,"ose":1.389,"dto":1.389,"ade":1.387,"ake":1.387,"hot":1.385,"let":1.379,"cre":1.37,"war":1.366,"oll":1.363,"ery":1.36,"fic":1.358,"gen":1.344,"ien":1.343,"lar":1.337,"oli":1.335,"vid":1.334,"rev":1.333,"mpl":1.333,"ach":1.33,"ari":1.328,"its":1.327,"ish":1.326,"ndo":1.324,"ews":1.324,"ili":1.323,"vic":1.321,"eda":1.31,"lec":1.309,"bou":1.309,"spo":1.304,"ult":1.304,"rvi":1.303,"but":1.303,"tar":1.301,"nga":1.301,"hom":1.3,"fer":1.299,"sel":1.297,"acc":1.289,"ick":1.287,"hep":1.286,"eed":1.286,"ges":1.283,"ian":1.28,"sec":1.278,"gre":1.278,"ory":1.275,"rig":1.273,"tai":1.268,"rst":1.267,"cor":1.263,"pag":1.26,"rre":1.254,"dre":1.245,"ela":1.244,"ata":1.243,"emo":1.241,"alt":1.24}');var o,c=a.t(s,2);Object.freeze(n),Object.freeze(c),function(e){class t extends r.U{constructor(e){super("ngram2",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(n)}}e.Ngram2=t,Object.freeze(t),Object.freeze(t.prototype);class a extends r.U{constructor(e){super("ngram3",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(c)}}e.Ngram3=a,Object.freeze(a),Object.freeze(a.prototype)}(o||(o={})),Object.freeze(o)}}]); //# sourceMappingURL=Ngrams-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Ngrams-ts.js.map b/client/chunk/lang/Ngrams-ts.js.map index 8c974aa8..62e49d56 100644 --- a/client/chunk/lang/Ngrams-ts.js.map +++ b/client/chunk/lang/Ngrams-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Ngrams.ts"],"names":["Ngrams","Object","freeze","Ngram2","Lang","weightScaling","super","prototype","Ngram3"],"mappings":"+/NAQiBA,E,WALjBC,OAAOC,OAAO,GACdD,OAAOC,OAAO,GAId,SAAiBF,GAKhB,MAAaG,UAAeC,EAAA,EAC3B,YAAmBC,GAClBC,MAAM,SAAUD,GAEV,eACN,OAAOD,EAAA,2BAA8B,IAL1B,EAAAD,OAAM,EASnBF,OAAOC,OAAOC,GACdF,OAAOC,OAAOC,EAAOI,WAKrB,MAAaC,UAAeJ,EAAA,EAC3B,YAAmBC,GAClBC,MAAM,SAAUD,GAEV,eACN,OAAOD,EAAA,2BAA8B,IAL1B,EAAAI,OAAM,EASnBP,OAAOC,OAAOM,GACdP,OAAOC,OAAOM,EAAOD,WA9BtB,CAAiBP,MAAM,KAgCvBC,OAAOC,OAAOF","file":"chunk/lang/Ngrams-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Ngrams.ts"],"names":["Ngrams","Object","freeze","Lang","weightScaling","super","Ngram2","prototype","Ngram3"],"mappings":"igOAQiBA,E,WALjBC,OAAOC,OAAO,GACdD,OAAOC,OAAO,GAIP,SAAU,GAKT,gBAAqBC,EAAA,EACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,OAAOD,EAAA,2BAA8B,IALhC,EAAMG,SASbL,OAAOC,OAAOI,GACdL,OAAOC,OAAOI,EAAOC,WAKd,gBAAqBJ,EAAA,EACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,OAAOD,EAAA,2BAA8B,IALhC,EAAMK,SASbP,OAAOC,OAAOM,GACdP,OAAOC,OAAOM,EAAOD,WA9Bf,CAAUP,MAAA,KAgCjBC,OAAOC,OAAOF","file":"chunk/lang/Ngrams-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Numpad-ts.js b/client/chunk/lang/Numpad-ts.js index f3d6ef76..a19c8404 100644 --- a/client/chunk/lang/Numpad-ts.js +++ b/client/chunk/lang/Numpad-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[683],{193:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Numpad:()=>r});var r,c=s(115);!function(e){class t extends c.U{constructor(e){super("numpad",e)}static BUILD(){const e={};for(let t=0;t<100;t++){const s=t.toString().padStart(2,"0");e[s]={seq:s,weight:1}}return e}}e.Numpad=t,Object.freeze(t),Object.freeze(t.prototype)}(r||(r={})),Object.freeze(r)}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[683],{444:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Numpad:()=>c});var c,r=s(208);!function(e){class t extends r.U{constructor(e){super("numpad",e)}static BUILD(){const e={};for(let t=0;t<100;t++){const s=t.toString().padStart(2,"0");e[s]={seq:s,weight:1}}return e}}e.Numpad=t,Object.freeze(t),Object.freeze(t.prototype)}(c||(c={})),Object.freeze(c)}}]); //# sourceMappingURL=Numpad-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Numpad-ts.js.map b/client/chunk/lang/Numpad-ts.js.map index 9621d7b6..21cdc87b 100644 --- a/client/chunk/lang/Numpad-ts.js.map +++ b/client/chunk/lang/Numpad-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Numpad.ts"],"names":["Numpad","weightScaling","super","dict","i","str","toString","padStart","seq","weight","Object","freeze","prototype"],"mappings":"iIAEiBA,E,UAAjB,SAAiB,GAIhB,MAAaA,UAAe,IAC3B,YAAmBC,GAClBC,MAAM,SAAUD,GAEV,eACN,MAAME,EAA4C,GAClD,IAAK,IAAIC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC7B,MAAMC,EAAMD,EAAEE,WAAWC,SAAS,EAAE,KACpCJ,EAAKE,GAAO,CAAEG,IAAKH,EAAKI,OAAQ,GAEjC,OAAON,GAVI,EAAAH,OAAM,EAcnBU,OAAOC,OAAOX,GACdU,OAAOC,OAAOX,EAAOY,WAnBtB,CAAiBZ,MAAM,KAqBvBU,OAAOC,OAAOX","file":"chunk/lang/Numpad-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Numpad.ts"],"names":["Numpad","weightScaling","super","dict","i","str","toString","padStart","seq","weight","Object","freeze","prototype"],"mappings":"mIAEiBA,E,UAAV,SAAU,GAIT,gBAAqB,IACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,MAAME,EAAgC,GACtC,QAASC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC7B,MAAMC,EAAMD,EAAEE,WAAWC,SAAS,EAAE,KACpCJ,EAAKE,GAAO,CAAEG,IAAKH,EAAKI,OAAQ,GAEjC,OAAON,GAVF,EAAMH,OAAA,EAcbU,OAAOC,OAAO,GACdD,OAAOC,OAAO,EAAOC,WAnBf,CAAUZ,MAAA,KAqBjBU,OAAOC,OAAOX","file":"chunk/lang/Numpad-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/Shell-ts.js b/client/chunk/lang/Shell-ts.js index e63f7e04..dd4486a6 100644 --- a/client/chunk/lang/Shell-ts.js +++ b/client/chunk/lang/Shell-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[159],{521:(e,t,c)=>{"use strict";var r;c.r(t),c.d(t,{Shell:()=>r}),function(e){e.UnixAndShell=Object.freeze(["env","chroot","fg","bg","ps","jobs","kill","source","xargs","test","time","echo","printf","cd","pwd","ls","find","grep","mkdir","rm","mv","cp","chmod","ln","touch","cat","tac","head","tail","nl","od","more","less","sort","uniq","file","cksum","wc","awk","sed"]),e.Other=Object.freeze(["vim","vi","nano","tig","perl"]),e.Git=Object.freeze(["init","clone","fetch","merge","push","status","diff","add","restore","commit","switch","branch","worktree","gc","fsck","prune","log"])}(r||(r={}))}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[159],{25:(e,c,t)=>{"use strict";var r,s;t.r(c),t.d(c,{Shell:()=>r}),(s=r||(r={})).UnixAndShell=Object.freeze(["env","chroot","fg","bg","ps","jobs","kill","source","xargs","test","time","echo","printf","cd","pwd","ls","find","grep","mkdir","rm","mv","cp","chmod","ln","touch","cat","tac","head","tail","nl","od","more","less","sort","uniq","file","cksum","wc","awk","sed"]),s.Other=Object.freeze(["vim","vi","nano","tig","perl"]),s.Git=Object.freeze(["init","clone","fetch","merge","push","status","diff","add","restore","commit","switch","branch","worktree","gc","fsck","prune","log"])}}]); //# sourceMappingURL=Shell-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/Shell-ts.js.map b/client/chunk/lang/Shell-ts.js.map index b89f4199..33b11e04 100644 --- a/client/chunk/lang/Shell-ts.js.map +++ b/client/chunk/lang/Shell-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/Shell.ts"],"names":["Shell","UnixAndShell","Object","freeze","Other","Git"],"mappings":"gGAMO,IAAUA,E,4BAAjB,SAAiBA,GACH,EAAAC,aAAeC,OAAOC,OAAc,CAGhD,MAAO,SAAU,KAAM,KAAM,KAAM,OAAQ,OAC3C,SAAU,QAAS,OAAgC,OACnD,OAAQ,SAER,KAAM,MACN,KAAuB,OAAQ,OAC/B,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,QAE1C,MAAO,MAAO,OAAQ,OAAQ,KAAM,KACpC,OAAQ,OAER,OAAQ,OACR,OAAQ,QAAS,KACjB,MAAO,QAEK,EAAAC,MAAQF,OAAOC,OAAc,CACzC,MAAO,KAAM,OACb,MACA,SAEY,EAAAE,IAAMH,OAAOC,OAAc,CACvC,OAAQ,QAAS,QAAS,QAAS,OACnC,SAAU,OAAQ,MAAO,UAAW,SACpC,SAAU,SAAU,WACpB,KAAM,OAAQ,QACd,QA7BF,CAAiBH,MAAK","file":"chunk/lang/Shell-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/Shell.ts"],"names":["Shell","UnixAndShell","Object","freeze","Other","Git"],"mappings":"iGAMO,IAAUA,EAAA,E,6BAAA,EAAAA,MAAA,KACHC,aAAeC,OAAOC,OAAc,CAGhD,MAAO,SAAU,KAAM,KAAM,KAAM,OAAQ,OAC3C,SAAU,QAAS,OAAgC,OACnD,OAAQ,SAER,KAAM,MACN,KAAuB,OAAQ,OAC/B,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,QAE1C,MAAO,MAAO,OAAQ,OAAQ,KAAM,KACpC,OAAQ,OAER,OAAQ,OACR,OAAQ,QAAS,KACjB,MAAO,QAEK,EAAAC,MAAQF,OAAOC,OAAc,CACzC,MAAO,KAAM,OACb,MACA,SAEY,EAAAE,IAAMH,OAAOC,OAAc,CACvC,OAAQ,QAAS,QAAS,QAAS,OACnC,SAAU,OAAQ,MAAO,UAAW,SACpC,SAAU,SAAU,WACpB,KAAM,OAAQ,QACd","file":"chunk/lang/Shell-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/chunk/lang/defs-Chinese-ts.js b/client/chunk/lang/defs-Chinese-ts.js index 9d1420ae..3598dd4a 100644 --- a/client/chunk/lang/defs-Chinese-ts.js +++ b/client/chunk/lang/defs-Chinese-ts.js @@ -1 +1 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[704],{958:()=>{}}]); \ No newline at end of file +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[704],{711:()=>{}}]); \ No newline at end of file diff --git a/client/chunk/lang/defs-English100-ts.js b/client/chunk/lang/defs-English100-ts.js index 681d93fa..be4943fb 100644 --- a/client/chunk/lang/defs-English100-ts.js +++ b/client/chunk/lang/defs-English100-ts.js @@ -1,2 +1,2 @@ -(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[885],{213:(e,o,t)=>{"use strict";t.r(o),t.d(o,{default:()=>a});const a=["the","be","to","of","and","a","in","that","have","I","it","for","not","on","with","he","as","you","do","at","this","but","his","by","from","they","we","say","her","she","or","an","will","my","one","all","would","there","their","what","so","up","out","if","about","who","get","which","go","me","when","make","can","like","time","no","just","him","know","take","people","into","year","your","good","some","could","them","see","other","than","then","now","look","only","come","its","over","think","also","back","after","use","two","how","our","work","first","well","way","even","new","want","because","any","these","give","day","most","us"]}}]); +(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[885],{589:(e,o,t)=>{"use strict";t.r(o),t.d(o,{default:()=>a});const a=["the","be","to","of","and","a","in","that","have","I","it","for","not","on","with","he","as","you","do","at","this","but","his","by","from","they","we","say","her","she","or","an","will","my","one","all","would","there","their","what","so","up","out","if","about","who","get","which","go","me","when","make","can","like","time","no","just","him","know","take","people","into","year","your","good","some","could","them","see","other","than","then","now","look","only","come","its","over","think","also","back","after","use","two","how","our","work","first","well","way","even","new","want","because","any","these","give","day","most","us"]}}]); //# sourceMappingURL=defs-English100-ts.js.map \ No newline at end of file diff --git a/client/chunk/lang/defs-English100-ts.js.map b/client/chunk/lang/defs-English100-ts.js.map index d572da3c..b092615f 100644 --- a/client/chunk/lang/defs-English100-ts.js.map +++ b/client/chunk/lang/defs-English100-ts.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/lang/impl/defs/English100.ts"],"names":[],"mappings":"8HACA,SACA,MACA,KACA,KACA,KACA,MACA,IACA,KACA,OACA,OACA,IACA,KACA,MACA,MACA,KACA,OACA,KACA,KACA,MACA,KACA,KACA,OACA,MACA,MACA,KACA,OACA,OACA,KACA,MACA,MACA,MACA,KACA,KACA,OACA,KACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,KACA,MACA,KACA,QACA,MACA,MACA,QACA,KACA,KACA,OACA,OACA,MACA,OACA,OACA,KACA,OACA,MACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,MACA,OACA,QACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,OACA,QACA,OACA,MACA,OACA,MACA,OACA,UACA,MACA,QACA,OACA,MACA,OACA","file":"chunk/lang/defs-English100-ts.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/lang/impl/defs/English100.ts"],"names":[],"mappings":"gIACA,SACA,MACA,KACA,KACA,KACA,MACA,IACA,KACA,OACA,OACA,IACA,KACA,MACA,MACA,KACA,OACA,KACA,KACA,MACA,KACA,KACA,OACA,MACA,MACA,KACA,OACA,OACA,KACA,MACA,MACA,MACA,KACA,KACA,OACA,KACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,KACA,MACA,KACA,QACA,MACA,MACA,QACA,KACA,KACA,OACA,OACA,MACA,OACA,OACA,KACA,OACA,MACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,MACA,OACA,QACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,OACA,QACA,OACA,MACA,OACA,MACA,OACA,UACA,MACA,QACA,OACA,MACA,OACA","file":"chunk/lang/defs-English100-ts.js","sourceRoot":""} \ No newline at end of file diff --git a/client/css-common.css.map b/client/css-common.css.map index acde9d98..d473047c 100644 --- a/client/css-common.css.map +++ b/client/css-common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/style/general.css","webpack://snakey3/./src/style/common.css"],"names":[],"mappings":"AAEA,WACC,qCACD,CACA,yBACC,KACC,qBACD,CACD,CAEA,MACC,sBAAuB,CACvB,uDAIC,CACD,eAAoB,CACpB,0BAAoC,CACpC,iBAAsB,CACtB,iCACD,CAEA,KACC,QACD,CAEA,UACC,kBACD,CAEA,EACC,oBAAqB,CACrB,2BAA4B,CAC5B,0CACD,CACA,oBACC,SAAW,CACX,UACD,CACA,0BACC,4BACD,CACA,0BACC,+BAAoC,CACpC,kBAAoB,CACpB,4BACD,CACA,2BACC,iBACD,CAEA,MACC,gBACD,CACA,OACC,YAAmB,CACnB,aAAmB,CACnB,SAAe,CACf,qCACD,CACA,gBACC,UACD,CACA,MACC,YAAuB,CACvB,kBAAuB,CACvB,qBACD,CCnEA,aACC,iBAAkB,CAClB,KAAM,CAAE,OAAQ,CAAE,QAAS,CAAE,MAAO,CACpC,sBACD,CAEA,sBACC,gBAAwB,CACxB,qBAAwB,CACxB,wBAAwB,CACxB,oBACD,CAEA,iBACC,mBAA+B,CAC/B,sBAA0B,CAC1B,oBAA0B,CAC1B,oBAA0B,CAC1B,kBACD,CACA,gBACC,iBACD,CACA,kBACC,iBACD,CAMA,gBACC,qCAAsC,CACtC,sBAAuB,CACvB,2DAGD,CACA,kBACC,cAAsB,CACtB,iBACD,CACA,0CACC,SACD,CACA,kDACC,mBACD,CACA,qCACC,kCAAoC,CACpC,qBAA8B,CAC9B,mCAAwC,CACxC,0BAAwC,CACxC,qCAAwC,CACxC,2BACD,CAEA,2CACC,YAAoB,CACpB,iCAAoC,CACpC,2EACD,CACA,8DACC,qBAA+B,CAC/B,UACD,CACA,qCACC,GACC,6BAAkC,CAClC,qCACD,CACA,GACC,+BAAwC,CACxC,qCACD,CACD","file":"css-common.css","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/style/general.css","webpack://capswalk/./src/style/common.css"],"names":[],"mappings":"AAEA,WACC,qCACD,CACA,yBACC,KACC,qBACD,CACD,CAEA,MACC,sBAAuB,CACvB,uDAIC,CACD,eAAoB,CACpB,0BAAoC,CACpC,iBAAsB,CACtB,iCACD,CAEA,KACC,QACD,CAEA,UACC,kBACD,CAEA,EACC,oBAAqB,CACrB,2BAA4B,CAC5B,0CACD,CACA,oBACC,SAAW,CACX,UACD,CACA,0BACC,4BACD,CACA,0BACC,+BAAoC,CACpC,kBAAoB,CACpB,4BACD,CACA,2BACC,iBACD,CAEA,MACC,gBACD,CACA,OACC,YAAmB,CACnB,aAAmB,CACnB,SAAe,CACf,qCACD,CACA,gBACC,UACD,CACA,MACC,YAAuB,CACvB,kBAAuB,CACvB,qBACD,CCnEA,aACC,iBAAkB,CAClB,KAAM,CAAE,OAAQ,CAAE,QAAS,CAAE,MAAO,CACpC,sBACD,CAEA,sBACC,gBAAwB,CACxB,qBAAwB,CACxB,wBAAwB,CACxB,oBACD,CAEA,iBACC,mBAA+B,CAC/B,sBAA0B,CAC1B,oBAA0B,CAC1B,oBAA0B,CAC1B,kBACD,CACA,gBACC,iBACD,CACA,kBACC,iBACD,CAMA,gBACC,qCAAsC,CACtC,sBAAuB,CACvB,2DAGD,CACA,kBACC,cAAsB,CACtB,iBACD,CACA,0CACC,SACD,CACA,kDACC,mBACD,CACA,qCACC,kCAAoC,CACpC,qBAA8B,CAC9B,mCAAwC,CACxC,0BAAwC,CACxC,qCAAwC,CACxC,2BACD,CAEA,2CACC,YAAoB,CACpB,iCAAoC,CACpC,2EACD,CACA,8DACC,qBAA+B,CAC/B,UACD,CACA,qCACC,GACC,6BAAkC,CAClC,qCACD,CACA,GACC,+BAAwC,CACxC,qCACD,CACD","file":"css-common.css","sourceRoot":""} \ No newline at end of file diff --git a/client/css-common.js b/client/css-common.js index 11715e0a..ef0eab45 100644 --- a/client/css-common.js +++ b/client/css-common.js @@ -1,2 +1,2 @@ -var snakey3;snakey3=(()=>{"use strict";var e,t,r,n,a,o,s,l={22:(e,t,r)=>{r.r(t)}},i={};function u(e){if(i[e])return i[e].exports;var t=i[e]={exports:{}};return l[e](t,t.exports,u),t.exports}return u.m=l,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,u.t=function(r,n){if(1&n&&(r=this(r)),8&n)return r;if("object"==typeof r&&r){if(4&n&&r.__esModule)return r;if(16&n&&"function"==typeof r.then)return r}var a=Object.create(null);u.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&n&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>o[e]=()=>r[e]));return o.default=()=>r,u.d(a,o),a},u.d=(e,t)=>{for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.f={},u.e=e=>Promise.all(Object.keys(u.f).reduce(((t,r)=>(u.f[r](e,t),t)),[])),u.u=e=>826===e?"index.js":"chunk/"+({68:"game-css",159:"lang/Shell-ts",184:"lang/English-ts",227:"lang/Korean-ts",273:"lang/Ngrams-ts",330:"lang/Chinese-ts",410:"lang/Japanese-ts",683:"lang/Numpad-ts",704:"lang/defs-Chinese-ts",755:"game/offline",775:"game/online",858:"lang/Emote-ts",885:"lang/defs-English100-ts"}[e]||e)+".js",u.miniCssF=e=>280===e?"css-common.css":826===e?"index.css":"chunk/"+({68:"game-css",159:"lang/Shell-ts",184:"lang/English-ts",227:"lang/Korean-ts",273:"lang/Ngrams-ts",330:"lang/Chinese-ts",410:"lang/Japanese-ts",683:"lang/Numpad-ts",704:"lang/defs-Chinese-ts",755:"game/offline",775:"game/online",858:"lang/Emote-ts",885:"lang/defs-English100-ts"}[e]||e)+".css",u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},n="snakey3:",u.l=(e,t,a)=>{if(r[e])r[e].push(t);else{var o,s;if(void 0!==a)for(var l=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(c);var a=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),a&&a.forEach((e=>e(n))),t)return t(n)},c=setTimeout(d.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=d.bind(null,o.onerror),o.onload=d.bind(null,o.onload),s&&document.head.appendChild(o)}},u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.H={},u.G=e=>{Object.keys(u.H).map((t=>{u.H[t](e)}))},u.p="./",a=e=>new Promise(((t,r)=>{var n=u.miniCssF(e),a=u.p+n;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n{var a=document.createElement("link");a.setAttribute("disable","true"),a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=o=>{if(a.onerror=a.onload=null,"load"===o.type)r();else{var s=o&&("load"===o.type?"missing":o.type),l=o&&o.target&&o.target.href||t,i=new Error("Loading CSS chunk "+e+" failed.\n("+l+")");i.code="CSS_CHUNK_LOAD_FAILED",i.type=s,i.request=l,a.parentNode.removeChild(a),n(i)}},a.href=t,document.head.appendChild(a)})(e,a,t,r)})),o={280:0},u.f.miniCss=(e,t)=>{o[e]?t.push(o[e]):0!==o[e]&&{68:1,826:1}[e]&&t.push(o[e]=a(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))},(()=>{var e={280:0},t=[[22]];u.f.j=(t,r)=>{var n=u.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise(((r,a)=>{n=e[t]=[r,a]}));r.push(n[2]=a);var o=u.p+u.u(t),s=new Error;u.l(o,(r=>{if(u.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,n[1](s)}}),"chunk-"+t)}},u.H.j=t=>{if(!u.o(e,t)||void 0===e[t]){e[t]=null;var r=document.createElement("link");r.charset="utf-8",u.nc&&r.setAttribute("nonce",u.nc),r.rel="preload",r.as="script",r.href=u.p+u.u(t),document.head.appendChild(r)}};var r=()=>{};function n(){for(var r,n=0;n{}),r}u.x=()=>{u.x=()=>{},o=o.slice();for(var e=0;e{for(var a,o,[l,i,f,d]=n,c=0,g=[];c{for(var t=s[e],r=0;Array.isArray(t)&&r{"use strict";var e,t,r,n,a,o,l={768:(e,t,r)=>{r.r(t)}},s={};function i(e){if(s[e])return s[e].exports;var t=s[e]={exports:{}};return l[e](t,t.exports,i),t.exports}i.m=l,i.x=e=>{},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(r,n){if(1&n&&(r=this(r)),8&n)return r;if("object"==typeof r&&r){if(4&n&&r.__esModule)return r;if(16&n&&"function"==typeof r.then)return r}var a=Object.create(null);i.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var l=2&n&&r;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach((e=>o[e]=()=>r[e]));return o.default=()=>r,i.d(a,o),a},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>826===e?"index.js":"chunk/"+({122:"colour-schemes",159:"lang/Shell-ts",184:"lang/English-ts",227:"lang/Korean-ts",273:"lang/Ngrams-ts",330:"lang/Chinese-ts",410:"lang/Japanese-ts",683:"lang/Numpad-ts",704:"lang/defs-Chinese-ts",755:"game/offline",775:"game/online",858:"lang/Emote-ts",885:"lang/defs-English100-ts"}[e]||e)+".js",i.miniCssF=e=>826===e?"index.css":"chunk/"+{122:"colour-schemes",755:"game/offline",775:"game/online"}[e]+".css",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},n="capswalk:",i.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var l,s;if(void 0!==a)for(var u=document.getElementsByTagName("script"),d=0;d{l.onerror=l.onload=null,clearTimeout(p);var a=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach((e=>e(n))),t)return t(n)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),s&&document.head.appendChild(l)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="./",a=e=>new Promise(((t,r)=>{var n=i.miniCssF(e),a=i.p+n;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n{var a=document.createElement("link");a.setAttribute("disable","true"),a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=o=>{if(a.onerror=a.onload=null,"load"===o.type)r();else{var l=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.href||t,i=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");i.code="CSS_CHUNK_LOAD_FAILED",i.type=l,i.request=s,a.parentNode.removeChild(a),n(i)}},a.href=t,document.head.appendChild(a)})(e,a,t,r)})),o={280:0},i.f.miniCss=(e,t)=>{o[e]?t.push(o[e]):0!==o[e]&&{122:1,755:1,775:1,826:1}[e]&&t.push(o[e]=a(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))},(()=>{var e={280:0},t=[[768]];i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise(((r,a)=>{n=e[t]=[r,a]}));r.push(n[2]=a);var o=i.p+i.u(t),l=new Error;i.l(o,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,n[1](l)}}),"chunk-"+t,t)}};var r=e=>{},n=(n,a)=>{for(var o,l,[s,u,d,f]=a,c=0,p=[];c{}),r}a.forEach(n.bind(null,0)),a.push=n.bind(null,a.push.bind(a));var l=i.x;i.x=()=>(i.x=l||(e=>{}),(r=o)())})();var u=i.x();capswalk=u})(); //# sourceMappingURL=css-common.js.map \ No newline at end of file diff --git a/client/css-common.js.map b/client/css-common.js.map index a1cc4a3f..b41b18f8 100644 --- a/client/css-common.js.map +++ b/client/css-common.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/webpack/runtime/create fake namespace object","webpack://snakey3/webpack/runtime/load script","webpack://snakey3/webpack/runtime/css loading","webpack://snakey3/webpack/runtime/chunk preload trigger","webpack://snakey3/webpack/bootstrap","webpack://snakey3/webpack/startup","webpack://snakey3/webpack/runtime/define property getters","webpack://snakey3/webpack/runtime/ensure chunk","webpack://snakey3/webpack/runtime/get javascript chunk filename","webpack://snakey3/webpack/runtime/get mini-css chunk filename","webpack://snakey3/webpack/runtime/global","webpack://snakey3/webpack/runtime/hasOwnProperty shorthand","webpack://snakey3/webpack/runtime/make namespace object","webpack://snakey3/webpack/runtime/chunk preload function","webpack://snakey3/webpack/runtime/publicPath","webpack://snakey3/webpack/runtime/jsonp chunk loading"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","chunkToChildrenMap","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","__webpack_modules__","m","Object","getPrototypeOf","obj","__proto__","t","value","mode","this","__esModule","then","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","undefined","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","H","G","map","p","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","linkTag","errorType","realHref","err","Error","code","request","createStylesheet","280","miniCss","installedChunks","deferredModules","j","installedChunkData","promise","error","realSrc","message","name","link","as","checkDeferredModules","checkDeferredModulesImpl","result","deferredModule","fulfilled","depId","splice","x","chunkLoadingGlobal","slice","webpackJsonpCallback","data","chunkIds","moreModules","runtime","executeModules","resolves","parentChunkLoadingFunction","shift","apply","self","preload","chunks","Array","isArray"],"mappings":"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","file":"css-common.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/webpack/runtime/create fake namespace object","webpack://capswalk/webpack/runtime/load script","webpack://capswalk/webpack/runtime/css loading","webpack://capswalk/webpack/bootstrap","webpack://capswalk/webpack/runtime/define property getters","webpack://capswalk/webpack/runtime/ensure chunk","webpack://capswalk/webpack/runtime/get javascript chunk filename","webpack://capswalk/webpack/runtime/get mini-css chunk filename","webpack://capswalk/webpack/runtime/hasOwnProperty shorthand","webpack://capswalk/webpack/runtime/make namespace object","webpack://capswalk/webpack/runtime/publicPath","webpack://capswalk/webpack/runtime/jsonp chunk loading","webpack://capswalk/webpack/startup"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","__webpack_modules__","m","x","Object","getPrototypeOf","obj","t","value","mode","this","__esModule","then","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","miniCssF","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","undefined","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","linkTag","errorType","realHref","err","Error","code","request","createStylesheet","280","miniCss","installedChunks","deferredModules","j","installedChunkData","promise","error","realSrc","message","name","checkDeferredModules","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","executeModules","resolves","shift","apply","chunkLoadingGlobal","self","checkDeferredModulesImpl","result","deferredModule","fulfilled","depId","splice","startup","__webpack_exports__"],"mappings":"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","file":"css-common.js","sourceRoot":""} \ No newline at end of file diff --git a/client/index.css b/client/index.css index 1f41c45e..cdd1a8f8 100644 --- a/client/index.css +++ b/client/index.css @@ -1,2 +1,2 @@ -@media print{:root{--colour-mainFg:#000!important;--colour-mainBg:#fff!important;--colour-tileFg:#000!important;--colour-tileBg:#fff!important;--colour-tileBd:#000!important;--colour-healthFg:#000!important;--colour-healthBg:#fff!important;--colour-pFaceMe:grey!important;--colour-pFaceMeOppo:grey!important;--colour-pFaceTeammate:grey!important;--colour-pFaceImtlTeammate:grey!important;--colour-pFaceOpponent:grey!important;--colour-pFaceImtlOpponent:grey!important}}[data-sk-colour-scheme=snakey]{--colour-mainFg:#e9eef3;--colour-mainBg:#3f5e77;--colour-tileFg:#e9eef3;--colour-tileBg:#2e3b48;--colour-tileBd:#fff;--colour-healthFg:#21352e;--colour-healthBg:#4edf8f;--colour-pFaceMe:#35e7ff;--colour-pFaceMeOppo:#937ad8;--colour-pFaceTeammate:#f8d150;--colour-pFaceImtlTeammate:#f8d150;--colour-pFaceOpponent:#ec4daf;--colour-pFaceImtlOpponent:#e23fa3}#all-screens-container{display:contents}.sk-screen{contain:strict;position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.sk-screen:not([data-current]){display:none}#background{z-index:-10000;display:initial;background-color:var(--colour-mainBg)}#screen-texture,#screen-tint{pointer-events:none;z-index:10000;display:initial}#screen-tint{opacity:0;transition-property:opacity,background-color;transition-duration:333ms;transition-timing-function:ease-in-out;background-color:var(--colour-mainBg)}#screen-texture{background-size:13.5rem;mix-blend-mode:overlay;background-color:#919191;background-image:url(images/textures/cheap_diagonal_fabric.png);background-blend-mode:color-burn;filter:contrast(2.3)}.style-m_this_2fw8L{display:flex}.style-m_nav_3bXQ_{--spacing:6px;--border-radius:1rem;height:30em;max-height:80vmin;width:30em;max-width:80vmin;display:grid;grid-template:"pofl pofl pofl ponl" 3fr "htpl htpl htpl hths" 1fr "colr colr colr . " 1fr "repo bugs . . " 1fr/1fr 1fr 1fr 3fr}.style-m_nav_3bXQ_>*{border-style:double!important}.style-m_nav--play-offline_27pYK{grid-area:pofl}.style-m_nav--play-online_1cZmp{grid-area:ponl}.style-m_nav--how-to-play_29Ok3{grid-area:htpl}.style-m_nav--how-to-host_1Me42{grid-area:hths}.style-m_nav--colour-scheme_31wBm{grid-area:colr}.style-m_nav--goto-repo_2mwhS{grid-area:repo;text-decoration:none}.style-m_nav--report-issue_QdLSQ{grid-area:bugs;text-decoration:none}[data-sk-colour-scheme=smooth-stone]{--colour-mainFg:#c3c5ce;--colour-mainBg:#72888d;--colour-tileFg:#a2b6bb;--colour-tileBg:#546164;--colour-tileBd:#fff;--colour-healthFg:#21352e;--colour-healthBg:#398f5a;--colour-pFaceMe:#43aec9;--colour-pFaceMeOppo:#5a5f9c;--colour-pFaceTeammate:#bdae58;--colour-pFaceImtlTeammate:#f8df50;--colour-pFaceOpponent:#a34e59;--colour-pFaceImtlOpponent:#e23fa3}[data-sk-colour-scheme=murky-dive]{--colour-mainFg:#c3c5ce;--colour-mainBg:#336465;--colour-tileFg:#e7efef;--colour-tileBg:#283e3f;--colour-tileBd:#fff;--colour-healthFg:#1d3633;--colour-healthBg:#37dfc6;--colour-pFaceMe:#03f9ed;--colour-pFaceMeOppo:#898697;--colour-pFaceTeammate:#fba;--colour-pFaceImtlTeammate:#ffcabd;--colour-pFaceOpponent:#ff4f6c;--colour-pFaceImtlOpponent:#ff6d85}.style-m_this_2usro{display:grid;justify-content:center;align-content:center}.style-m_this_2usro .screen--prev-button{position:absolute;margin:.7em;padding:.5em;border-radius:.5em}.style-m_this_2usro .skpickone-m_this_1P7KX{--padding:0.5em;gap:var(--padding);padding:var(--padding);border:.3em solid var(--colour-tileBd);border-radius:1.45em}.style-m_opt_2GxiP{--swatch-square-dimensions:2em;contain:content;display:grid;grid-template-columns:auto repeat(7,var(--swatch-square-dimensions));align-items:center;gap:.35em;padding:.3em;border:.2em solid var(--colour-mainBg);border-radius:.9em;color:var(--colour-mainFg);background-color:var(--colour-mainBg)}.style-m_opt_2GxiP[aria-active-descendant=true]{border-color:var(--colour-tile-Bd);border-style:dotted}.style-m_opt_2GxiP[aria-selected=true]{text-decoration:none;border-color:var(--colour-tile-Bd)}.style-m_opt_2GxiP>*{height:var(--swatch-square-dimensions);box-sizing:border-box;border:.2em solid var(--colour-tileBd);border-radius:.45em}.style-m_opt-label_2nPC6{height:auto;padding:.3em .7em;text-align:end}.style-m_opt-label--author_3LTv3{font-size:.6em;padding-bottom:.3em}.style-m_opt_2GxiP>:first-child{color:var(--colour-tileFg);background-color:var(--colour-tileBg);border:none}.style-m_opt_2GxiP>:nth-child(2){color:var(--colour-healthFg);background-color:var(--colour-healthBg)}.style-m_opt_2GxiP>:nth-child(3){background-color:var(--colour-pFaceMe)}.style-m_opt_2GxiP>:nth-child(4){background-color:var(--colour-pFaceMeOppo)}.style-m_opt_2GxiP>:nth-child(5){background-color:var(--colour-pFaceTeammate)}.style-m_opt_2GxiP>:nth-child(6){background-color:var(--colour-pFaceImtlTeammate)}.style-m_opt_2GxiP>:nth-child(7){background-color:var(--colour-pFaceOpponent)}.style-m_opt_2GxiP>:nth-child(8){background-color:var(--colour-pFaceImtlOpponent)}.skpickone-m_this_1P7KX{display:flex;flex-direction:column;align-items:stretch;overflow-x:hidden;overflow-y:auto;border-color:var(--colour-tileBd);text-align:start}.skpickone-m_this_1P7KX:focus{outline:none}.skpickone-m_opt_3w8x7{overflow:hidden hidden;cursor:default;transition-property:opacity;transition-duration:.35s;transition-timing-function:ease-out}.skpickone-m_this_1P7KX:focus .skpickone-m_opt_3w8x7:not([aria-active-descendant=true]):not([aria-selected=true]){opacity:.4}.skpickone-m_opt_3w8x7[aria-selected=true]{text-decoration:underline}.skpickone-m_this_1P7KX[aria-invalid=true]{border-style:dotted;border-width:.3rem}.style-m_this_18T-R{display:grid;justify-content:center;justify-items:center;align-content:center;align-items:center;gap:1em}.style-m_this_18T-R .screen--next-button,.style-m_this_18T-R .screen--prev-button{padding:.3em .7em;font-size:2em}.style-m_lang-weight-exagg_3vawC{width:100%}.style-m_this_1euFn{display:grid;grid-template:"controls main players" 100%/minmax(auto,1fr) auto minmax(auto,1fr)}.style-m_grid-wrapper_2jXbc{grid-area:main;contain:content;box-sizing:border-box;height:100%;padding:1rem 0}.style-m_controls-bar_fLS47{--spacing:0.3rem;--border-radius:0.7rem;--track-size:5rem;position:sticky;top:0;grid-area:controls;display:grid;grid-auto-rows:var(--track-size);grid-template-columns:minmax(var(--track-size),1fr);justify-items:stretch;align-items:stretch;font-size:80%}.style-m_controls-bar_fLS47>*{padding:.35em}.style-m_players-bar_BDHhb{grid-area:players}@media screen and (max-aspect-ratio:1/1){.style-m_this_1euFn{align-content:flex-start;grid-template:"main" calc(100vh - 7.5rem) "controls" max-content "players" auto/1fr}.style-m_grid-wrapper_2jXbc{padding:1rem 1rem 0}.style-m_controls-bar_fLS47{grid-template-columns:repeat(3,var(--track-size));grid-template-rows:var(--track-size)}}.grid-m_this_3RnyB{contain:content;height:100%;display:grid;align-content:center}.grid-m_scroll-outer_3To0V,.grid-m_this_3RnyB{position:relative}.grid-m_scroll-outer_3To0V{contain:style;overflow:auto auto;scroll-snap-type:both;scrollbar-width:none;box-sizing:border-box;border:5px double var(--colour-tileBd);border-radius:15px}.grid-m_scroll-outer_3To0V::-webkit-scrollbar{width:0;height:0}.grid-m_pause-overlay_3RB2_{pointer-events:none;contain:strict;cursor:pointer;position:fixed;padding:3em;border-radius:inherit;color:#fff;visibility:hidden;z-index:2}@media screen{.grid-m_this_3RnyB:focus{outline:none}}.style-m_content-wrapper_3PpQN{--spacing:0.2em;--border-radius:1.2em;height:27em;max-height:80vh;width:27em;max-width:90vw;display:grid;gap:7%;grid-template:"host-url host-url" 2fr "group-name group-name" 2fr "passphrase passphrase" 2fr "prev next" 1fr/1fr 1fr}.style-m_content-wrapper_3PpQN>label{display:grid;grid-template-rows:1fr 2fr;grid-column:1/3}.style-m_this_1mSAZ .screen--prev-button{grid-area:prev}.style-m_this_1mSAZ .screen--next-button{grid-area:next}.style-m_this_1Rjcs{display:grid;justify-items:center;align-content:center}.style-m_client-info-section_2hDNO{--spacing:0.2em;--border-radius:0.8em;gap:.2em;margin:.2em;height:6em;max-height:80vh;width:15em;display:grid;grid-template-rows:1fr 1fr}.style-m_teams-section_2eDnz{display:grid}.style-m_player_2jAbJ{max-width:20em;display:grid;grid-template-columns:3em 2em 1fr}.style-m_player_2jAbJ *{pointer-events:none}.style-m_player__name_3esbS{justify-self:start;padding-inline-start:.5em}.style-m_this_1Rjcs .screen--next-button:disabled{display:none} +@media print{:root{--colour-mainFg:#000!important;--colour-mainBg:#fff!important;--colour-tileFg:#000!important;--colour-tileBg:#fff!important;--colour-tileBd:#000!important;--colour-healthFg:#000!important;--colour-healthBg:#fff!important;--colour-pFaceMe:grey!important;--colour-pFaceMeOppo:grey!important;--colour-pFaceTeammate:grey!important;--colour-pFaceImtlTeammate:grey!important;--colour-pFaceOpponent:grey!important;--colour-pFaceImtlOpponent:grey!important}}[data-sk-colour-scheme=default]{--colour-mainFg:#e9eef3;--colour-mainBg:#3f5e77;--colour-tileFg:#e9eef3;--colour-tileBg:#2e3b48;--colour-tileBd:#fff;--colour-healthFg:#21352e;--colour-healthBg:#4edf8f;--colour-pFaceMe:#35e7ff;--colour-pFaceMeOppo:#937ad8;--colour-pFaceTeammate:#f8d150;--colour-pFaceImtlTeammate:#f8d150;--colour-pFaceOpponent:#ec4daf;--colour-pFaceImtlOpponent:#e23fa3}#all-screens-container{display:contents}.screen{contain:strict;position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}#background{z-index:-10000;display:initial;background-color:var(--colour-mainBg)}#screen-texture,#screen-tint{pointer-events:none;z-index:10000;display:initial}#screen-tint{opacity:0;transition-property:opacity,background-color;transition-duration:333ms;transition-timing-function:ease-in-out;background-color:var(--colour-mainBg)}#screen-texture{background-size:13.5rem;mix-blend-mode:overlay;background-color:#919191;background-image:url(images/textures/cheap_diagonal_fabric.png);background-blend-mode:color-burn;filter:contrast(2.3)}._2fw8LavR89kQmI-ujd84Oc{display:flex}._3bXQ_T8CN61h-XuM1Q5CKO{--spacing:6px;--border-radius:1rem;height:30em;max-height:80vmin;width:30em;max-width:80vmin;display:grid;grid-template:"pofl pofl pofl ponl" 3fr "htpl htpl htpl hths" 1fr "colr colr colr . " 1fr "repo bugs . . " 1fr/1fr 1fr 1fr 3fr}._3bXQ_T8CN61h-XuM1Q5CKO>*{border-style:double!important}._27pYKLXKIhEkDPRBq7FQkG{grid-area:pofl}._1cZmpRlPlHZasyAk0suiYy{grid-area:ponl}._29Ok3ZNcVG4aBK7f28U0Vl{grid-area:htpl}._1Me42uM4lSoh2869wVFjJD{grid-area:hths}._31wBmMbr_vhgM4lM1jary6{grid-area:colr}._2mwhS0oLTAcnpq5YWXg7cq{grid-area:repo;text-decoration:none}.QdLSQUx8gcAov0d1PYNgJ{grid-area:bugs;text-decoration:none}._3tt0mEYF2K12deMBmuiflg{display:flex;flex-direction:column;align-items:stretch;overflow-x:hidden;overflow-y:auto;border-color:var(--colour-tileBd);text-align:start}._3tt0mEYF2K12deMBmuiflg:focus{outline:none}.aq-ZO_N3w-UH9VTYF60rL{overflow:hidden hidden;cursor:default;transition-property:opacity;transition-duration:.35s;transition-timing-function:ease-out}._3tt0mEYF2K12deMBmuiflg:focus .aq-ZO_N3w-UH9VTYF60rL:not([aria-active-descendant=true]):not([aria-selected=true]){opacity:.4}.aq-ZO_N3w-UH9VTYF60rL[aria-selected=true]{text-decoration:underline}._3tt0mEYF2K12deMBmuiflg[aria-invalid=true]{border-style:dotted;border-width:.3rem}._2usroyHG0lbElLvXa_iy5{display:grid;justify-content:center;align-content:center}._2usroyHG0lbElLvXa_iy5 .screen--prev-button{position:absolute;margin:.7em;padding:.5em;border-radius:.5em}._2usroyHG0lbElLvXa_iy5 ._3tt0mEYF2K12deMBmuiflg{--padding:0.5em;gap:var(--padding);padding:var(--padding);border:.3em solid var(--colour-tileBd);border-radius:1.45em}._2GxiPlklote2AuXecWhETZ{--swatch-square-dimensions:2em;contain:content;display:grid;grid-template-columns:auto repeat(7,var(--swatch-square-dimensions));align-items:center;gap:.35em;padding:.3em;border:.2em solid var(--colour-mainBg);border-radius:.9em;color:var(--colour-mainFg);background-color:var(--colour-mainBg)}._2GxiPlklote2AuXecWhETZ[aria-active-descendant=true]{border-color:var(--colour-tile-Bd);border-style:dotted}._2GxiPlklote2AuXecWhETZ[aria-selected=true]{text-decoration:none;border-color:var(--colour-tile-Bd)}._2GxiPlklote2AuXecWhETZ>*{height:var(--swatch-square-dimensions);box-sizing:border-box;border:.2em solid var(--colour-tileBd);border-radius:.45em}._2nPC6c6ioUh-4gkJ5-JWNj{height:auto;padding:.3em .7em;text-align:end}._3LTv36NFPFb2DvxJ2eWKcb{font-size:.6em;padding-bottom:.3em}._2GxiPlklote2AuXecWhETZ>:first-child{color:var(--colour-tileFg);background-color:var(--colour-tileBg);border:none}._2GxiPlklote2AuXecWhETZ>:nth-child(2){color:var(--colour-healthFg);background-color:var(--colour-healthBg)}._2GxiPlklote2AuXecWhETZ>:nth-child(3){background-color:var(--colour-pFaceMe)}._2GxiPlklote2AuXecWhETZ>:nth-child(4){background-color:var(--colour-pFaceMeOppo)}._2GxiPlklote2AuXecWhETZ>:nth-child(5){background-color:var(--colour-pFaceTeammate)}._2GxiPlklote2AuXecWhETZ>:nth-child(6){background-color:var(--colour-pFaceImtlTeammate)}._2GxiPlklote2AuXecWhETZ>:nth-child(7){background-color:var(--colour-pFaceOpponent)}._2GxiPlklote2AuXecWhETZ>:nth-child(8){background-color:var(--colour-pFaceImtlOpponent)}._18T-RiVnTQugnMDE5W5g2S{display:grid;justify-content:center;justify-items:center;align-content:center;align-items:center;gap:1em}._18T-RiVnTQugnMDE5W5g2S .screen--next-button,._18T-RiVnTQugnMDE5W5g2S .screen--prev-button{padding:.3em .7em;font-size:2em}._3vawCmM619VS6F2hL-NerD{width:100%}._1euFnazUyfYf-c6qSiUhez{display:grid;grid-template:"controls main players" 100%/minmax(auto,1fr) auto minmax(auto,1fr)}._2jXbc7jisQYh8dGHBjQfoB{grid-area:main;contain:content;box-sizing:border-box;height:100%;padding:1rem 0}.fLS47QhRkscn0NK-vdINf{--spacing:0.3rem;--border-radius:0.7rem;--track-size:5rem;position:sticky;top:0;grid-area:controls;display:grid;grid-auto-rows:var(--track-size);grid-template-columns:minmax(var(--track-size),1fr);justify-items:stretch;align-items:stretch;font-size:80%}.fLS47QhRkscn0NK-vdINf>*{padding:.35em}.BDHhbE0AQjge5tlj2Z3_O{grid-area:players}@media screen and (max-aspect-ratio:1/1){._1euFnazUyfYf-c6qSiUhez{align-content:flex-start;grid-template:"main" calc(100vh - 7.5rem) "controls" max-content "players" auto/1fr}._2jXbc7jisQYh8dGHBjQfoB{padding:1rem 1rem 0}.fLS47QhRkscn0NK-vdINf{grid-template-columns:repeat(3,var(--track-size));grid-template-rows:var(--track-size)}}._3RnyB-FPnRJq2VQ-jJ1Fdy{contain:content;height:100%;display:grid;align-content:center}._3RnyB-FPnRJq2VQ-jJ1Fdy,._3To0VmRGhvAChHm1UecO55{position:relative}._3To0VmRGhvAChHm1UecO55{contain:style;overflow:auto auto;scroll-snap-type:both;scrollbar-width:none;box-sizing:border-box;border:5px double var(--colour-tileBd);border-radius:15px}._3To0VmRGhvAChHm1UecO55::-webkit-scrollbar{width:0;height:0}._3RB2_LMTHSqVD3X5arzyV{contain:strict;cursor:pointer;position:fixed;padding:3em;border-radius:inherit;color:#fff;visibility:hidden;z-index:2}@media screen{._3RnyB-FPnRJq2VQ-jJ1Fdy:focus{outline:none}}._3PpQNPHVO6NTNpgwU79ERL{--spacing:0.2em;--border-radius:1.2em;height:27em;max-height:80vh;width:27em;max-width:90vw;display:grid;gap:7%;grid-template:"host-url host-url" 2fr "group-name group-name" 2fr "passphrase passphrase" 2fr "prev next" 1fr/1fr 1fr}._3PpQNPHVO6NTNpgwU79ERL>label{display:grid;grid-template-rows:1fr 2fr;grid-column:1/3}._1mSAZ0WI6Dl-lgWbZngYuh .screen--prev-button{grid-area:prev}._1mSAZ0WI6Dl-lgWbZngYuh .screen--next-button{grid-area:next}._1RjcsAfyK_99UIm77cgsi1{display:grid;justify-items:center;align-content:center}._2hDNOGQoaqlmP3PIE18QwQ{--spacing:0.2em;--border-radius:0.8em;gap:.2em;margin:.2em;height:6em;max-height:80vh;width:15em;display:grid;grid-template-rows:1fr 1fr}._2eDnztFQPAJnFHoqcX6Rt8{display:grid}._2jAbJY6xTuqckSRVnOPwG4{max-width:20em;display:grid;grid-template-columns:3em 2em 1fr}._2jAbJY6xTuqckSRVnOPwG4 *{pointer-events:none}._3esbSTakuS113N38hp7-V4{justify-self:start;padding-inline-start:.5em}._1RjcsAfyK_99UIm77cgsi1 .screen--next-button:disabled{display:none} /*# sourceMappingURL=index.css.map*/ \ No newline at end of file diff --git a/client/index.css.map b/client/index.css.map index a8295cd3..2786f510 100644 --- a/client/index.css.map +++ b/client/index.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/style/snakey.css","webpack://snakey3/./src/style/layers.css","webpack://snakey3/./src/client/screen/impl/Home/style.m.css","webpack://snakey3/./src/client/screen/impl/ColourCtrl/schemes/smooth-stone.css","webpack://snakey3/./src/client/screen/impl/ColourCtrl/schemes/murky-dive.css","webpack://snakey3/./src/client/screen/impl/ColourCtrl/style.m.css","webpack://snakey3/./src/client/utils/skpickone.m.css","webpack://snakey3/./src/client/screen/impl/Setup/style.m.css","webpack://snakey3/./src/client/screen/impl/Play/style.m.css","webpack://snakey3/./src/client/screen/impl/Play/grid.m.css","webpack://snakey3/./src/client/screen/impl/GroupJoiner/style.m.css","webpack://snakey3/./src/client/screen/impl/GroupLobby/style.m.css"],"names":[],"mappings":"AAAA,aAAe,MACd,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,gCAAmC,CACnC,gCAAmC,CACnC,+BAAiC,CACjC,mCAAqC,CACrC,qCAAuC,CACvC,yCAA2C,CAC3C,qCAAuC,CACvC,yCACD,CAAC,CACD,+BACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,8BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD,CC5BA,uBACC,gBACD,CAEA,WAMC,cAAkB,CAClB,iBAAoB,CACpB,KAAM,CAAE,OAAQ,CAAE,QAAS,CAAE,MAAO,CACpC,aACD,CACA,+BACC,YACD,CAWA,YAIC,cAAsB,CACtB,eAAuB,CACvB,qCACD,CACA,6BACC,mBAAoB,CACpB,aAAqB,CACrB,eACD,CACA,aACC,SAAmB,CACnB,4CAA8C,CAC9C,yBAA4B,CAC5B,sCAAuC,CACvC,qCACD,CACA,gBACC,uBAAwB,CACxB,sBAAuB,CACvB,wBAAyB,CAEzB,+DAAyE,CACzE,gCAAiC,CACjC,oBACD,CCxDA,oBACC,YACD,CAEA,mBACC,aAAc,CACd,oBAAqB,CACrB,WAAY,CAAE,iBAAkB,CAChC,UAAY,CAAE,gBAAkB,CAChC,YAAoB,CACpB,qIAMD,CACA,qBACC,6BACD,CACA,iCAAsB,cAAiB,CACvC,gCAAsB,cAAiB,CACvC,gCAAsB,cAAiB,CACvC,gCAAsB,cAAiB,CACvC,kCAAsB,cAAiB,CACvC,8BAAsB,cAAe,CAAE,oBAAuB,CAC9D,iCAAsB,cAAe,CAAE,oBAAuB,CC3B9D,qCACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,8BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD,CCdA,mCACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,2BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD,CCVA,oBACC,YAAa,CACb,sBAAuB,CACvB,oBACD,CAEA,yCACC,iBAAkB,CAClB,WAAa,CACb,YAAc,CACd,kBACD,CAEA,4CACC,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,sCAAwC,CACxC,oBACD,CAEA,mBACC,8BAA+B,CAC/B,eAAgB,CAChB,YAAa,CACb,oEAAsE,CACtE,kBAAmB,CAEnB,SAAW,CACX,YAAc,CACd,sCAAwC,CACxC,kBAAoB,CAEpB,0BAA2B,CAC3B,qCACD,CACA,gDACC,kCAAmC,CACnC,mBACD,CACA,uCACC,oBAAqB,CACrB,kCACD,CAEA,qBACC,sCAAuC,CACvC,qBAAsB,CACtB,sCAAwC,CACxC,mBACD,CAEA,yBACC,WAAY,CACZ,iBAAoB,CACpB,cACD,CAGA,iCACC,cAAgB,CAChB,mBACD,CAEA,gCACC,0BAA2B,CAC3B,qCAAsC,CACtC,WACD,CACA,iCACC,4BAA6B,CAC7B,uCACD,CACA,iCACC,sCACD,CACA,iCACC,0CACD,CACA,iCACC,4CACD,CACA,iCACC,gDACD,CACA,iCACC,4CACD,CACA,iCACC,gDACD,CC7FA,wBACC,YAAoB,CACpB,qBAAsB,CACtB,mBAAuB,CACvB,iBAAsB,CACtB,eAAoB,CAEpB,iCAAoC,CACpC,gBACD,CACA,8BACC,YACD,CAEA,uBACC,sBAAyB,CACzB,cAAmB,CACnB,2BAA4B,CAC5B,wBAA0B,CAC1B,mCACD,CACA,kHACC,UACD,CACA,2CACC,yBACD,CAEA,2CACC,mBAAoB,CACpB,kBACD,CC/BA,oBACC,YAAa,CACb,sBAAuB,CACvB,oBAAqB,CACrB,oBAAqB,CACrB,kBAAmB,CACnB,OACD,CAEA,kFAEC,iBAAoB,CACpB,aACD,CAKA,iCACC,UACD,CCpBA,oBACC,YAAoB,CACpB,iFAKD,CACA,4BACC,cAAoB,CACpB,eAAuB,CACvB,qBAA0B,CAC1B,WAAoB,CACpB,cACD,CACA,4BACC,gBAAsB,CACtB,sBAAsB,CACtB,iBAAoB,CACpB,eAAsB,CACtB,KAAiB,CAEjB,kBAAwB,CACxB,YAAoB,CACpB,gCAAiC,CACjC,mDAAqD,CACrD,qBAAuB,CACvB,mBAAuB,CACvB,aACD,CACA,8BACC,aACD,CACA,2BACC,iBACD,CACA,yCACC,oBACC,wBAAyB,CACzB,mFAKD,CACA,4BAEC,mBACD,CACA,4BAEC,iDAAoD,CACpD,oCACD,CACD,CCtDA,mBAMC,eAAuB,CACvB,WAAoB,CAEpB,YAAoB,CACpB,oBAMD,CACA,8CAEC,iBACD,CAQA,2BACC,aAAqB,CACrB,kBAAyB,CAEzB,qBAAsB,CACtB,oBAAqB,CACrB,qBAA0B,CAC1B,sCAA+C,CAC/C,kBACD,CACA,8CACC,OAAW,CACX,QACD,CAEA,4BACC,mBAAoB,CACpB,cAAsB,CACtB,cAAuB,CACvB,cAAqB,CACrB,WAAmB,CACnB,qBAAuB,CACvB,UAAqB,CACrB,iBAAsB,CAGtB,SAFD,CAKA,cACC,yBACC,YACD,CACD,CC3DA,+BACC,eAAsB,CACtB,qBAAsB,CACtB,WAAY,CAAE,eAAgB,CAC9B,UAAY,CAAE,cAAgB,CAC9B,YAAoB,CAEpB,MAAoB,CACpB,6HAMD,CACA,qCACC,YAAoB,CACpB,0BAA6B,CAC7B,eACD,CAYA,yCACC,cACD,CACA,yCACC,cACD,CCvCA,oBACC,YAAoB,CACpB,oBAAsB,CACtB,oBACD,CAEA,mCACC,eAAsB,CACtB,qBAAsB,CACtB,QAAU,CAAE,WAAa,CACzB,UAAY,CAAE,eAAgB,CAC9B,UAAY,CACZ,YAAoB,CACpB,0BACD,CAEA,6BACC,YACD,CAKA,sBACC,cAAe,CACf,YAAa,CACb,iCACD,CACA,wBACC,mBACD,CACA,4BACC,kBAAmB,CACnB,yBACD,CAEA,kDACC,YACD","file":"index.css","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/style/default.css","webpack://capswalk/./src/style/layers.css","webpack://capswalk/./src/client/screen/impl/Home/style.m.css","webpack://capswalk/./src/client/utils/pickone.m.css","webpack://capswalk/./src/client/screen/impl/ColourCtrl/style.m.css","webpack://capswalk/./src/client/screen/impl/Setup/style.m.css","webpack://capswalk/./src/client/screen/impl/Play/style.m.css","webpack://capswalk/./src/client/screen/impl/Play/grid.m.css","webpack://capswalk/./src/client/screen/impl/GroupJoiner/style.m.css","webpack://capswalk/./src/client/screen/impl/GroupLobby/style.m.css"],"names":[],"mappings":"AAAA,aAAe,MACd,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,8BAAiC,CACjC,gCAAmC,CACnC,gCAAmC,CACnC,+BAAiC,CACjC,mCAAqC,CACrC,qCAAuC,CACvC,yCAA2C,CAC3C,qCAAuC,CACvC,yCACD,CAAC,CACD,gCACC,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CACxB,oBAAwB,CACxB,yBAA0B,CAC1B,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAC7B,8BAA+B,CAC/B,kCAAmC,CACnC,8BAA+B,CAC/B,kCACD,CC5BA,uBACC,gBACD,CAEA,QAMC,cAAkB,CAClB,cAAiB,CACjB,KAAM,CAAE,OAAQ,CAAE,QAAS,CAAE,MAAO,CACpC,aACD,CAWA,YAIC,cAAsB,CACtB,eAAuB,CACvB,qCACD,CACA,6BACC,mBAAoB,CACpB,aAAqB,CACrB,eACD,CACA,aACC,SAAmB,CACnB,4CAA8C,CAC9C,yBAA4B,CAC5B,sCAAuC,CACvC,qCACD,CACA,gBACC,uBAAwB,CACxB,sBAAuB,CACvB,wBAAyB,CAEzB,+DAAyE,CACzE,gCAAiC,CACjC,oBACD,CCrDA,yBACC,YACD,CAEA,yBACC,aAAc,CACd,oBAAqB,CACrB,WAAY,CAAE,iBAAkB,CAChC,UAAY,CAAE,gBAAkB,CAChC,YAAoB,CACpB,qIAMD,CACA,2BACC,6BACD,CACA,yBAAsB,cAAiB,CACvC,yBAAsB,cAAiB,CACvC,yBAAsB,cAAiB,CACvC,yBAAsB,cAAiB,CACvC,yBAAsB,cAAiB,CACvC,yBAAsB,cAAe,CAAE,oBAAuB,CAC9D,uBAAsB,cAAe,CAAE,oBAAuB,CC1B9D,yBACC,YAAoB,CACpB,qBAAsB,CACtB,mBAAuB,CACvB,iBAAsB,CACtB,eAAoB,CAEpB,iCAAoC,CACpC,gBACD,CACA,+BACC,YACD,CAEA,uBACC,sBAAyB,CACzB,cAAmB,CACnB,2BAA4B,CAC5B,wBAA0B,CAC1B,mCACD,CACA,mHACC,UACD,CACA,2CACC,yBACD,CAEA,4CACC,mBAAoB,CACpB,kBACD,CC5BA,wBACC,YAAa,CACb,sBAAuB,CACvB,oBACD,CAEA,6CACC,iBAAkB,CAClB,WAAa,CACb,YAAc,CACd,kBACD,CAEA,iDACC,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,sCAAwC,CACxC,oBACD,CAEA,yBACC,8BAA+B,CAC/B,eAAgB,CAChB,YAAa,CACb,oEAAsE,CACtE,kBAAmB,CAEnB,SAAW,CACX,YAAc,CACd,sCAAwC,CACxC,kBAAoB,CAEpB,0BAA2B,CAC3B,qCACD,CACA,sDACC,kCAAmC,CACnC,mBACD,CACA,6CACC,oBAAqB,CACrB,kCACD,CAEA,2BACC,sCAAuC,CACvC,qBAAsB,CACtB,sCAAwC,CACxC,mBACD,CAEA,yBACC,WAAY,CACZ,iBAAoB,CACpB,cACD,CAGA,yBACC,cAAgB,CAChB,mBACD,CAEA,sCACC,0BAA2B,CAC3B,qCAAsC,CACtC,WACD,CACA,uCACC,4BAA6B,CAC7B,uCACD,CACA,uCACC,sCACD,CACA,uCACC,0CACD,CACA,uCACC,4CACD,CACA,uCACC,gDACD,CACA,uCACC,4CACD,CACA,uCACC,gDACD,CC7FA,yBACC,YAAa,CACb,sBAAuB,CACvB,oBAAqB,CACrB,oBAAqB,CACrB,kBAAmB,CACnB,OACD,CAEA,4FAEC,iBAAoB,CACpB,aACD,CAKA,yBACC,UACD,CCpBA,yBACC,YAAoB,CACpB,iFAKD,CACA,yBACC,cAAoB,CACpB,eAAuB,CACvB,qBAA0B,CAC1B,WAAoB,CACpB,cACD,CACA,uBACC,gBAAsB,CACtB,sBAAsB,CACtB,iBAAoB,CACpB,eAAsB,CACtB,KAAiB,CAEjB,kBAAwB,CACxB,YAAoB,CACpB,gCAAiC,CACjC,mDAAqD,CACrD,qBAAuB,CACvB,mBAAuB,CACvB,aACD,CACA,yBACC,aACD,CACA,uBACC,iBACD,CACA,yCACC,yBACC,wBAAyB,CACzB,mFAKD,CACA,yBAEC,mBACD,CACA,uBAEC,iDAAoD,CACpD,oCACD,CACD,CCtDA,yBAMC,eAAuB,CACvB,WAAoB,CAEpB,YAAoB,CACpB,oBAMD,CACA,kDAEC,iBACD,CAQA,yBACC,aAAqB,CACrB,kBAAyB,CAEzB,qBAAsB,CACtB,oBAAqB,CACrB,qBAA0B,CAC1B,sCAA+C,CAC/C,kBACD,CACA,4CACC,OAAW,CACX,QACD,CAEA,wBACC,cAAsB,CACtB,cAAuB,CACvB,cAAqB,CACrB,WAAmB,CACnB,qBAAuB,CACvB,UAAqB,CACrB,iBAAsB,CAGtB,SAFD,CAKA,cACC,+BACC,YACD,CACD,CC1DA,yBACC,eAAsB,CACtB,qBAAsB,CACtB,WAAY,CAAE,eAAgB,CAC9B,UAAY,CAAE,cAAgB,CAC9B,YAAoB,CAEpB,MAAoB,CACpB,6HAMD,CACA,+BACC,YAAoB,CACpB,0BAA6B,CAC7B,eACD,CAYA,8CACC,cACD,CACA,8CACC,cACD,CCvCA,yBACC,YAAoB,CACpB,oBAAsB,CACtB,oBACD,CAEA,yBACC,eAAsB,CACtB,qBAAsB,CACtB,QAAU,CAAE,WAAa,CACzB,UAAY,CAAE,eAAgB,CAC9B,UAAY,CACZ,YAAoB,CACpB,0BACD,CAEA,yBACC,YACD,CAKA,yBACC,cAAe,CACf,YAAa,CACb,iCACD,CACA,2BACC,mBACD,CACA,yBACC,kBAAmB,CACnB,yBACD,CAEA,uDACC,YACD","file":"index.css","sourceRoot":""} \ No newline at end of file diff --git a/client/index.html b/client/index.html index 19e7c796..68b12556 100644 --- a/client/index.html +++ b/client/index.html @@ -1,9 +1,12 @@ -snakey3
\ No newline at end of file + else { root.dataset["skColourScheme"] = "default"; } + }
\ No newline at end of file diff --git a/client/index.js b/client/index.js index 07f5359a..e6ec42dd 100644 --- a/client/index.js +++ b/client/index.js @@ -1,2 +1,2 @@ -var snakey3;snakey3=(self.webpackChunksnakey3=self.webpackChunksnakey3||[]).push([[826],{632:(e,t,s)=>{"use strict";s.d(t,{R:()=>r});const n=Object.freeze({enumerable:!1}),i=Object.freeze({writable:!1});var r;!function(e){let t;function s(e,t,s){t.forEach((t=>{Object.defineProperty(e,t,s)}))}e.applyMixins=function(e,t){t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((s=>{Object.defineProperty(e.prototype,s,Object.getOwnPropertyDescriptor(t.prototype,s))}))}))},e.deepFreeze=function e(t){return function(t){for(const s of Object.getOwnPropertyNames(t)){const n=t[s];"object"==typeof n&&e(n)}Object.freeze(t)}(t),t},function(e){let t;!function(e){e.access=function(e,t,s){s.enumerable=!1},e.cyclic=function(e,t,s){s.enumerable=!1}}(t=e.NonEnumerable||(e.NonEnumerable={}))}(t=e.Decor||(e.Decor={})),e.protoNoEnum=function(e,...t){t.forEach((t=>{Object.defineProperty(e.prototype,t,n)}))},e.instNoEnum=function(e,...t){s(e,t,n)},e.propNoWrite=function(e,...t){s(e,t,i)},e.prependComment=function(e,t){e.parentNode.insertBefore(document.createComment(" "+t+" "),e)},e.camelCaseTransforms=function(e){const t=e.replace(/[A-Z]/g,(e=>" "+e.toLowerCase()));return Object.freeze({spaceyLowercase:t,spaceyUppercase:t.toUpperCase(),spaceyCapitalized:t.split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(" ")})},e.mkEl=function(e,t,s){const n=document.createElement(e);try{Object.seal(n)}catch(e){}return t.length&&n.classList.add(...t),"button"===e?n.type="button":"a"===e&&(n.rel="noopener"),void 0!==s&&Object.assign(n,s),n}}(r||(r={})),Object.freeze(r)},912:(e,t,s)=>{"use strict";s.d(t,{Y:()=>n});var n,i=s(632);!function(e){let t,s,n,i;e.GLOBAL_IDS={PUBLIC_GAME_HOST_URLS:"public-game-hosts-list",CURRENT_HOST_GROUPS:"current-host-groups-list"},function(e){e.Class={TEXT_SELECT_DISABLED:"text-select-disabled",FILL_PARENT:"fill-parent",CENTER_CONTENTS:"center-contents",STACK_CONTENTS:"stack-contents",INPUT_GROUP:"sk-input-group",INPUT_GROUP_ITEM:"sk-input-group-item"},e.Dataset={COLOUR_SCHEME:"skColourScheme"}}(t=e.General||(e.General={})),function(e){e.Dataset={HEALTH:"health"}}(s=e.Tile||(e.Tile={})),function(e){e.Dataset={DOWNED:{KEY:"downed",VALUES:{TEAM:"team",SELF:"self",NO:"no"}},FACE_SWATCH:"face"}}(n=e.Player||(e.Player={})),function(e){let t;e.Id={ALL_SCREENS:"all-screens-container",SCREEN_TINT:"screen-tint"},e.Class={BASE:"sk-screen",NAV_NEXT:"screen--next-button",NAV_PREV:"screen--prev-button"},e.Dataset={CURRENT:"current"},function(e){let t;!function(e){e.Id={LANG_WEIGHT_EXAGGERATION_LIST:"screen-setup--lang-weight-exaggeration-list"}}(t=e.Setup||(e.Setup={}))}(t=e.Impl||(e.Impl={}))}(i=e.Screen||(e.Screen={}))}(n||(n={})),i.R.deepFreeze(n)},804:(e,t,s)=>{"use strict";s.d(t,{b4:()=>n,ZA:()=>i,m4:()=>r,JD:()=>a});class n{}!function(e){let t;e.PROTOCOL="http://",e.DEFAULT_PORT=80,function(e){e.GROUP_JOINER="/joiner.",e.GROUP_LOBBY_PREFIX="/group.",e.GROUP_GAME_PREFIX="/group-game."}(t=e.Nsps||(e.Nsps={}))}(n||(n={})),Object.freeze(n),Object.freeze(n.prototype);class i{}var r,a;!function(e){let t,s,n,i;!function(e){let t;!function(e){e.EVENT_NAME="group-lobby-user-info-change"}(t=e.UserInfoChange||(e.UserInfoChange={}))}(t=e.Socket||(e.Socket={})),function(e){e.REGEXP=/(?:[a-zA-Z0-9:-]+)/,e.MaxLength=30}(s=e.Name||(e.Name={})),function(e){e.REGEXP=/(?:[a-zA-Z0-9:-]*)/,e.MaxLength=30}(n=e.Passphrase||(e.Passphrase={})),e.GameServerReconnectionAttempts=2,e.DEFAULT_TTL=20,function(e){e.EVENT_NAME="group-exist";class t{constructor(e,t){Object.defineProperty(this,"groupName",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"passphrase",{enumerable:!0,configurable:!0,writable:!0,value:t})}}let s;e.RequestCreate=t,function(e){let t;!function(e){e.OKAY="okay",e.NOPE="nope"}(t=e.Response||(e.Response={}))}(t=e.RequestCreate||(e.RequestCreate={})),function(e){e.IN_LOBBY="in-lobby",e.IN_GAME="in-game",e.DELETE="delete"}(s=e.Status||(e.Status={}))}(i=e.Exist||(e.Exist={}))}(i||(i={})),Object.freeze(i),Object.freeze(i.prototype),function(e){e.CREATE_GAME="group-game-create"}(r||(r={})),function(e){e.CREATE_GAME="game-create",e.RESET="game-reset",e.UNPAUSE="game-unpause",e.PAUSE="game-pause",e.RETURN_TO_LOBBY="game-return-to-lobby"}(a||(a={}))},532:(e,t,s)=>{"use strict";s.d(t,{Uo:()=>c,J5:()=>l,Bl:()=>o});var n=s(632);const i=Object.freeze({IDENT:e=>e,LOWER:e=>e.toLowerCase()}),r={"engl-low":{module:"English",export:"Lowercase",numLeaves:26,remapFunc:i.LOWER,displayName:"English Lowercase (qwerty)",blurb:""},"engl-mix":{module:"English",export:"MixedCase",numLeaves:52,remapFunc:i.IDENT,displayName:"English Mixed-Case (Querty)",blurb:""},"japn-hir":{module:"Japanese",export:"Hiragana",numLeaves:71,remapFunc:i.LOWER,displayName:"Japanese Hiragana",blurb:""},"japn-kat":{module:"Japanese",export:"Katakana",numLeaves:69,remapFunc:i.LOWER,displayName:"Japanese Katakana",blurb:""},"kore-dub":{module:"Korean",export:"Dubeolsik",numLeaves:8778,remapFunc:i.IDENT,displayName:"Korean Dubeolsik (두벌식 키보드)",blurb:"The most common keyboard layout, and South Korea's only Hangul standard since 1969. Consonants are on the left, and vowels on the right."},"kore-sub":{module:"Korean",export:"Sebeolsik",numLeaves:10206,remapFunc:i.IDENT,displayName:"Korean Sebeolsik (세벌식 최종 키보드)",blurb:"Another Hangul keyboard layout used in South Korea, and the final Sebeolsik layout designed by Dr. Kong Byung Woo, hence the name. Syllable-initial consonants are on the right, final consonants on the left, and vowels in the middle. It is more ergonomic than the dubeolsik, but not widely used."},"kore-rom":{module:"Korean",export:"Romanization",numLeaves:3990,remapFunc:i.LOWER,displayName:"Korean Revised Romanization",blurb:"The Revised Romanization of Korean (국어의 로마자 표기법; 國語의 로마字 表記法) is the official South Korean language romanization system. It was developed by the National Academy of the Korean Language from 1995, and was released on 7 July 2000 by South Korea's Ministry of Culture and Tourism"},"engl-cell-enc":{module:"English",export:"OldCellphone.Encode",numLeaves:8,remapFunc:i.IDENT,displayName:"Old Cellphone Keyboard",blurb:""},"mors-enc":{module:"English",export:"Morse.Encode",numLeaves:20,remapFunc:e=>e,displayName:"Morse Encoder",blurb:""},"mors-dec":{module:"English",export:"Morse.Decode",numLeaves:41,remapFunc:i.LOWER,displayName:"Morse Decoder",blurb:""},ngram2:{module:"Ngrams",export:"Ngram2",numLeaves:200,remapFunc:i.LOWER,displayName:"English Bigrams",blurb:""},ngram3:{module:"Ngrams",export:"Ngram3",numLeaves:401,remapFunc:i.LOWER,displayName:"English Trigrams",blurb:""},numpad:{module:"Numpad",export:"Numpad",numLeaves:100,remapFunc:i.LOWER,displayName:"Number Pad",blurb:""}};Object.entries(r).forEach((([e,t])=>{t.id=e})),n.R.deepFreeze(r);const a=r,o=Object.freeze({behavior:"smooth",block:"center",inline:"center"});class l{}!function(e){let t,s,n;e.Family=Object.freeze({HUMAN:"HUMAN",CHASER:"CHASER"}),e.Family,function(e){e.NULL=void 0}(t=e.Id||(e.Id={})),function(e){e.REGEXP=/[ a-zA-Z0-9:-]+/,e.MAX_LENGTH=15}(s=e.Username||(e.Username={})),function(e){e.LOREM_IPSUM="lorem-ipsum"}(n=e.Avatar||(e.Avatar={})),function(e){const t=Object.values(e).filter((e=>"string"==typeof e));e.GET_RANDOM=function(){return t[Math.floor(Math.random()*t.length)]}}(n=e.Avatar||(e.Avatar={})),e.MoveType=Object.freeze({NORMAL:"NORMAL",BOOST:"BOOST"}),e.MoveType}(l||(l={})),Object.freeze(l),Object.freeze(l.prototype);class c{}!function(e){let t,s,n;!function(e){e.REGEXP=new RegExp("^[a-zA-Z0-9!@#$%^&*()-_=+;:'\"\\|,.<>/?]+$")}(t=e.Seq||(e.Seq={})),function(e){e.NULL=Object.freeze({char:"",seq:""})}(s=e.CharSeqPair||(e.CharSeqPair={})),function(e){e.MAX=4}(n=e.WeightExaggeration||(e.WeightExaggeration={})),e.CHAR_HIT_COUNT_SEED_CEILING=5,e.FrontendDescs=a,e.GET_FRONTEND_DESC_BY_ID=function(t){return e.FrontendDescs[t]}}(c||(c={})),Object.freeze(c),Object.freeze(c.prototype)},825:(e,t,s)=>{"use strict";var n;s.d(t,{l:()=>n}),function(e){let t,s;!function(e){e.SERVER="SERVER",e.ONLINE="ONLINE",e.OFFLINE="OFFLINE"}(t=e.Type||(e.Type={})),Object.freeze(t),function(e){e.PLAYING="PLAYING",e.PAUSED="PAUSED",e.OVER="OVER"}(s=e.Status||(e.Status={})),Object.freeze(s),e.K=Object.freeze({HEALTH_UPDATE_CHANCE:.1,AVERAGE_HEALTH_TO_SPAWN_ON_TILE:1,PORTION_OF_MOVES_THAT_ARE_BOOST:.4,HEALTH_COST_OF_BOOST(e,t){const s=t(this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/e);return this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/s/this.PORTION_OF_MOVES_THAT_ARE_BOOST},HEALTH_EFFECT_FOR_DOWNED_PLAYER:.6,EVENT_RECORD_WRAPPING_BUFFER_LENGTH:50,EVENT_RECORD_FORWARD_WINDOW_LENGTH:25})}(n||(n={})),Object.freeze(n)},897:(e,t,s)=>{"use strict";s.r(t),s.d(t,{OmHooks:()=>l.Y,game:()=>X,screen:()=>K,top:()=>q});var n,i,r,a=s(903),o=s(632),l=s(912),c=s(532);!function(e){let t;function s(e,t){const s={};return Object.keys(t).forEach((t=>{Object.defineProperty(s,t,{enumerable:!0,get:()=>{const s=e.getItem(t);return null===s?void 0:JSON.parse(s)},set:s=>{e.setItem(t,JSON.stringify(s))}})})),Object.freeze(s),s}e.Local=s(localStorage,{musicVolume:1,sfxVolume:1,colourSchemeId:"",colourSchemeStyleLiteral:"",gamePresetId:"",username:"",avatar:""}),e.getLastUserInfo=function(){var t,s;return Object.freeze({username:null!==(t=e.Local.username)&&void 0!==t?t:"unnamed player",teamId:0,avatar:null!==(s=e.Local.avatar)&&void 0!==s?s:c.J5.Avatar.GET_RANDOM()})},e.Session=s(localStorage,Object.freeze({})),function(e){let t;e.DB_NAME="snakeyDB",function(e){e.STORE_NAME="userGamePresets"}(t=e.UserGamePresetStore||(e.UserGamePresetStore={})),Object.freeze(t)}(t=e.IDB||(e.IDB={})),Object.freeze(t)}(n||(n={})),Object.freeze(n);const u=l.Y.Screen.Class;class d{constructor(e,t,s,n){Object.defineProperty(this,"screenId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"screenNames",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"top",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.set(this,void 0),Object.defineProperty(this,"baseElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.set(this,void 0),Object.defineProperty(this,"nav",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestGoToScreen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.screenId=e,this.screenNames=o.R.camelCaseTransforms(e),this.top=t,(0,a.YH)(this,i,s),this.requestGoToScreen=n,this.baseElem=o.R.mkEl("div",[u.BASE]),(0,a.YH)(this,r,!1),this.nav=Object.freeze({prev:o.R.mkEl("button",[]),next:o.R.mkEl("button",[])}),o.R.propNoWrite(this,"screenId","top","baseElem","nav","requestGoToScreen"),this.nav.prev.classList.add(u.NAV_PREV),this.nav.next.classList.add(u.NAV_NEXT),this.nav.prev.textContent="Back",this.nav.next.textContent="Next",this.nav.prev.onclick=t=>{const s=d.NavTree,n=s[this.screenId];s[n.prev].href===n.href?this.requestGoToScreen(d.NavTree[e].prev,{}):window.history.back()}}_enter(e,t){var s;return(0,a.mG)(this,void 0,void 0,(function*(){if(document.title=`${this.screenNames.spaceyCapitalized} | ${this.top.defaultDocTitle}`,e===d.NavDir.FORWARD){const e=new window.URL(window.location.href),t=e.hash=d.NavTree[this.screenId].href,n=[{screenId:this.screenId},"",e.href];(null===(s=window.history.state)||void 0===s?void 0:s.screenId)!==t&&(d.NavTree[this.screenId].prev===this.screenId?history.replaceState(...n):history.pushState(...n))}(0,a.Q_)(this,r)||(this._lazyLoad(),(0,a.Q_)(this,i).appendChild(this.baseElem),o.R.prependComment(this.baseElem,`${this.screenNames.spaceyUppercase} SCREEN`),this.baseElem.setAttribute("aria-label",this.screenNames.spaceyCapitalized+" Screen"),(0,a.YH)(this,r,!0)),yield this._abstractOnBeforeEnter(e,t)}))}_leave(e){return!!this._abstractOnBeforeLeave(e)}_onAfterEnter(){this.baseElem.dataset[l.Y.Screen.Dataset.CURRENT]="",this.baseElem.setAttribute("aria-hidden","false")}_onAfterLeave(){delete this.baseElem.dataset[l.Y.Screen.Dataset.CURRENT],this.baseElem.setAttribute("aria-hidden","true")}getRecommendedFocusElem(){}_abstractOnBeforeEnter(e,t){return(0,a.mG)(this,void 0,void 0,(function*(){}))}_abstractOnBeforeLeave(e){return!0}}i=new WeakMap,r=new WeakMap,function(e){let t,s;!function(e){e.HOME="home",e.HOW_TO_PLAY="howToPlay",e.HOW_TO_HOST="howToHost",e.COLOUR_CTRL="colourControl",e.SETUP_OFFLINE="setupOffline",e.PLAY_OFFLINE="playOffline",e.GROUP_JOINER="groupJoiner",e.SETUP_ONLINE="setupOnline",e.GROUP_LOBBY="groupLobby",e.PLAY_ONLINE="playOnline"}(t=e.Id||(e.Id={})),Object.freeze(t),e.NavTree=Object.freeze({[t.HOME]:{prev:t.HOME,href:t.HOME},[t.HOW_TO_PLAY]:{prev:t.HOME,href:t.HOW_TO_PLAY},[t.HOW_TO_HOST]:{prev:t.HOME,href:t.HOW_TO_HOST},[t.COLOUR_CTRL]:{prev:t.HOME,href:t.COLOUR_CTRL},[t.SETUP_OFFLINE]:{prev:t.HOME,href:t.SETUP_OFFLINE},[t.PLAY_OFFLINE]:{prev:t.SETUP_OFFLINE,href:t.SETUP_OFFLINE},[t.GROUP_JOINER]:{prev:t.HOME,href:t.GROUP_JOINER},[t.GROUP_LOBBY]:{prev:t.GROUP_JOINER,href:t.GROUP_JOINER},[t.SETUP_ONLINE]:{prev:t.GROUP_LOBBY,href:t.GROUP_JOINER},[t.PLAY_ONLINE]:{prev:t.GROUP_LOBBY,href:t.GROUP_JOINER}}),function(e){e.FORWARD="forward",e.BACKWARD="backward"}(s=e.NavDir||(e.NavDir={})),e.GET_NAV_DIR=function(t){const{curr:s,dest:n}=t;if(void 0===s)return e.NavDir.FORWARD;let i=s;for(;i!==e.NavTree[i].prev;)if(i=e.NavTree[i].prev,i===n)return e.NavDir.BACKWARD;return e.NavDir.FORWARD}}(d||(d={})),Object.freeze(d),Object.freeze(d.prototype);const p={this:"style-m_this_2fw8L",nav:"style-m_nav_3bXQ_","nav--play-offline":"style-m_nav--play-offline_27pYK","nav--play-online":"style-m_nav--play-online_1cZmp","nav--how-to-play":"style-m_nav--how-to-play_29Ok3","nav--how-to-host":"style-m_nav--how-to-host_1Me42","nav--colour-scheme":"style-m_nav--colour-scheme_31wBm","nav--goto-repo":"style-m_nav--goto-repo_2mwhS","nav--report-issue":"style-m_nav--report-issue_QdLSQ"};class h extends d{constructor(){super(...arguments),Object.defineProperty(this,"navElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_lazyLoad(){this.baseElem.classList.add(l.Y.General.Class.CENTER_CONTENTS,p.this);const e=this.navElem=o.R.mkEl("div",[l.Y.General.Class.TEXT_SELECT_DISABLED,l.Y.General.Class.INPUT_GROUP,p.nav]);e.setAttribute("role","navigation"),e.addEventListener("pointerleave",(()=>{var t;(null===(t=document.activeElement)||void 0===t?void 0:t.parentElement)===e&&document.activeElement.blur()}));const t=(t,s)=>{t.classList.add(l.Y.General.Class.CENTER_CONTENTS,l.Y.General.Class.INPUT_GROUP_ITEM,s.cssClass),t.textContent=s.text,t.addEventListener("pointerenter",(()=>{window.requestAnimationFrame((e=>{t.focus()}))})),e.appendChild(t)};[{text:"Offline Single-player",cssClass:p["nav--play-offline"],screenId:d.Id.SETUP_OFFLINE},{text:"Online Multi-player",cssClass:p["nav--play-online"],screenId:d.Id.GROUP_JOINER},{text:"How To Play",cssClass:p["nav--how-to-play"],screenId:d.Id.HOW_TO_PLAY},{text:"How To Host",cssClass:p["nav--how-to-host"],screenId:d.Id.HOW_TO_HOST},{text:"Colour Schemes",cssClass:p["nav--colour-scheme"],screenId:d.Id.COLOUR_CTRL}].map((e=>Object.freeze(e))).forEach((e=>{const s=o.R.mkEl("button",[]);s.onclick=e.screenId instanceof Function?e.screenId:()=>{this.requestGoToScreen(e.screenId,{})},t(s,e)})),[{text:"Visit\nRepo",cssClass:p["nav--goto-repo"],href:new window.URL("https://github.com/david-fong/snakey3")},{text:"Report\nIssue",cssClass:p["nav--report-issue"],href:new window.URL("https://github.com/david-fong/snakey3/issues")}].map((e=>Object.freeze(e))).forEach((e=>{const s=o.R.mkEl("a",[],{href:e.href.toString(),target:"_blank"});t(s,e)})),this.baseElem.appendChild(e)}}Object.freeze(h),Object.freeze(h.prototype);class m extends d{_lazyLoad(){}}Object.freeze(m),Object.freeze(m.prototype);class b extends d{_lazyLoad(){}}!function(e){e.INSTRUCTIONS_STEPS=Object.freeze(["$ npm install 'https://github.com/david-fong/snakey3#gh-pages'","$ npm run start","send the url to your friends"])}(b||(b={})),Object.freeze(b),Object.freeze(b.prototype);var E,v,O,_;class f{constructor(){Object.defineProperty(this,"baseElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),E.set(this,void 0),v.set(this,void 0),O.set(this,void 0);const e=o.R.mkEl("div",["skpickone-m_this_1P7KX"],{tabIndex:0});e.setAttribute("role","listbox"),e.addEventListener("keydown",this._onKeyDown.bind(this)),e.addEventListener("pointerenter",(t=>{window.requestAnimationFrame((t=>{e.focus()}))})),this.baseElem=e,this.options=[]}addOption(e){this.options.push(e),this.baseElem.appendChild(e.baseElem),e.baseElem.addEventListener("pointerenter",this.hoverOpt.bind(this,e)),e.baseElem.addEventListener("click",this.selectOpt.bind(this,e,!0)),e._registerParent(this._onOptDisabledChange.bind(this))}hoverOpt(e){var t;this.hoveredOpt!==e&&(null===(t=this.hoveredOpt)||void 0===t||t.baseElem.setAttribute("aria-active-descendant","false"),(0,a.YH)(this,v,e),this.hoveredOpt.baseElem.setAttribute("aria-active-descendant","true"))}selectOpt(e,t=!0){var s;if(!e)throw new Error("opt must be defined");this.hoverOpt(e),this.confirmedOpt!==e&&(null===(s=this.confirmedOpt)||void 0===s||s.baseElem.setAttribute("aria-selected","false"),(0,a.YH)(this,E,e),this.confirmedOpt.baseElem.setAttribute("aria-selected","true"),t&&this._onSelectOpt(e))}get confirmedOpt(){return(0,a.Q_)(this,E)}get hoveredOpt(){return(0,a.Q_)(this,v)}_onOptDisabledChange(e){this.confirmedOpt===e&&(this._isValid=!e.disabled)}set _isValid(e){this._isValid!==e&&(this.baseElem.setAttribute("aria-invalid",e?"false":"true"),(0,a.YH)(this,O,e))}get _isValid(){return(0,a.Q_)(this,O)}_onKeyDown(e){if(" "===e.key||"Enter"===e.key)return this.selectOpt(this.hoveredOpt),e.preventDefault(),!1;{const t=this.options.indexOf(this.hoveredOpt);if("ArrowDown"===e.key||"Down"===e.key)for(let s=t+1;s=0;s--){const t=this.options[s];if(!t.disabled)return this.hoverOpt(t),e.preventDefault(),!1}}return!0}}E=new WeakMap,v=new WeakMap,O=new WeakMap,function(e){var t,s;t=new WeakMap,s=new WeakMap,e._Option=class{constructor(){Object.defineProperty(this,"baseElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.set(this,void 0),s.set(this,void 0),(this.baseElem=o.R.mkEl("div",["skpickone-m_opt_3w8x7"])).setAttribute("role","option"),(0,a.YH)(this,t,!1)}_registerParent(e){(0,a.YH)(this,s,e)}get disabled(){return(0,a.Q_)(this,t)}set disabled(e){this.disabled!==e&&(this.baseElem.setAttribute("aria-disabled",e?"true":"false"),(0,a.YH)(this,t,e),(0,a.Q_)(this,s).call(this,this))}},Object.freeze(e),Object.freeze(e.prototype)}(f||(f={})),Object.freeze(f),Object.freeze(f.prototype);class g extends d{constructor(){super(...arguments),Object.defineProperty(this,"sel",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_lazyLoad(){this.baseElem.classList.add("style-m_this_2usro"),this.baseElem.appendChild(this.nav.prev);const e=this.sel=new g.PickOne(this.top.storage.Local,this.top.transition);o.R.propNoWrite(this,"sel"),this.baseElem.appendChild(e.baseElem);const t=this.top.storage.Local.colourSchemeId;t&&this.sel.selectOpt(this.sel.getOptById(t),!1)}}!function(e){var t,s,n;class i extends f{constructor(e,r){var o;super(),t.set(this,void 0),s.set(this,void 0),n.set(this,void 0),(0,a.YH)(this,t,!0),(0,a.YH)(this,s,e),(0,a.YH)(this,n,r),_.Schemes.forEach((e=>{this.addOption(new i.Option(e))})),this.selectOpt(this.getOptById(null!==(o=(0,a.Q_)(this,s).colourSchemeId)&&void 0!==o?o:"snakey"),!1)}_onHoverOpt(e){}_onSelectOpt(e){(0,a.Q_)(this,s).colourSchemeId=e.desc.id,(0,a.Q_)(this,s).colourSchemeStyleLiteral=e.cssLiteral;const i=(0,a.Q_)(this,t);(0,a.YH)(this,t,!1),(0,a.Q_)(this,n).do({intermediateTransitionTrigger:()=>{document.documentElement.dataset[l.Y.General.Dataset.COLOUR_SCHEME]=e.desc.id;const t=document.documentElement.style;if(i)for(const e of _.Swatch){const s="--colour-"+e;t.setProperty(s,"")}}})}getOptById(e){return this.options.find((t=>t.desc.id===e))}}t=new WeakMap,s=new WeakMap,n=new WeakMap,e.PickOne=i,function(e){class t extends f._Option{constructor(e){super(),Object.defineProperty(this,"desc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cssLiteral",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.desc=e;const s=this.baseElem;s.classList.add("style-m_opt_2GxiP"),s.dataset[l.Y.General.Dataset.COLOUR_SCHEME]=e.id;const n=o.R.mkEl("span",["style-m_opt-label_2nPC6"]);n.appendChild(o.R.mkEl("div",["style-m_opt-label--title_3GbE2"],{textContent:e.displayName})),n.appendChild(o.R.mkEl("div",["style-m_opt-label--author_3LTv3"],{textContent:"by "+e.author})),s.appendChild(n);for(let e=0;eObject.freeze(e))))}(_||(_={})),Object.freeze(_);class y extends d{constructor(){super(...arguments),Object.defineProperty(this,"langSel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"langWeightExaggeration",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_lazyLoad(){this.baseElem.classList.add("style-m_this_18T-R"),this.baseElem.appendChild(this.nav.prev),this.langSel=new y.LangPickOne,this.baseElem.appendChild(this.langSel.baseElem),this._createLangWeightExaggerationInput(),o.R.propNoWrite(this,"langSel","langWeightExaggeration"),this.baseElem.appendChild(this.nav.next),this._loadLastUsedPreset()}_createLangWeightExaggerationInput(){const e=this.langWeightExaggeration=o.R.mkEl("input",["style-m_lang-weight-exagg_3vawC"],{type:"range",min:"0",max:c.Uo.WeightExaggeration.MAX.toString(),step:"any",value:"1"});{const e=o.R.mkEl("datalist",[]);e.id=l.Y.Screen.Impl.Setup.Id.LANG_WEIGHT_EXAGGERATION_LIST,[{val:0,label:"0"},{val:1,label:"1"}].forEach((t=>{e.appendChild(o.R.mkEl("option",[],{value:t.val.toString(),label:t.label}))})),this.baseElem.appendChild(e)}e.setAttribute("list",l.Y.Screen.Impl.Setup.Id.LANG_WEIGHT_EXAGGERATION_LIST),this.baseElem.appendChild(e)}getRecommendedFocusElem(){return this.nav.next}_loadLastUsedPreset(){this.top.storage.Local.gamePresetId}parseArgsFromGui(){const e=Object.assign({},y.DEFAULT_PRESET());return e.langId=this.langSel.confirmedOpt.desc.id,e.langWeightExaggeration=parseFloat(this.langWeightExaggeration.value),e}}!function(e){e.DEFAULT_PRESET=()=>({coordSys:"EUCLID2",gridDimensions:{height:21,width:21},averageFreeHealthPerTile:1/45,langWeightExaggeration:1,langId:"engl-low",playerDescs:[{isALocalOperator:!1,familyId:"CHASER",teamId:1,clientId:void 0,username:"chaser1",avatar:void 0,noCheckGameOver:!0,familyArgs:{}},{isALocalOperator:!1,familyId:"CHASER",teamId:1,clientId:void 0,username:"chaser2",avatar:void 0,noCheckGameOver:!0,familyArgs:{fearDistance:6,bloodThirstDistance:5,healthReserve:5,keyPressesPerSecond:1.8}}]});class t extends f{constructor(){super(),this.baseElem.classList.add("style-m_lang-sel_2PZpD"),Object.values(c.Uo.FrontendDescs).forEach((e=>{this.addOption(new t.Option(e))})),this.selectOpt(this.options[0])}_onHoverOpt(e){}_onSelectOpt(e){}}e.LangPickOne=t,function(e){class t extends f._Option{constructor(e){super(),Object.defineProperty(this,"desc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.desc=e,this.baseElem.textContent=e.displayName}}e.Option=t,Object.freeze(t),Object.freeze(t.prototype)}(t=e.LangPickOne||(e.LangPickOne={}))}(y||(y={})),Object.freeze(y),Object.freeze(y.prototype);class T extends y{_lazyLoad(){super._lazyLoad(),this.nav.next.onclick=e=>{const t=this.parseArgsFromGui();this.requestGoToScreen(d.Id.PLAY_OFFLINE,t)}}parseArgsFromGui(){const e=super.parseArgsFromGui();return e.playerDescs.splice(e.playerDescs.length,0,{isALocalOperator:!0,familyId:"HUMAN",teamId:0,clientId:void 0,username:"hello1",avatar:void 0,noCheckGameOver:!1,familyArgs:{}},{isALocalOperator:!0,familyId:"HUMAN",teamId:1,clientId:void 0,username:"hello2",avatar:void 0,noCheckGameOver:!1,familyArgs:{}}),e}}Object.freeze(T),Object.freeze(T.prototype);var N=s(825);var S,L,R,I;class P extends d{constructor(){super(...arguments),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playersBar",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"btn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),S.set(this,void 0),Object.defineProperty(this,"wantsAutoPlayPause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"askConfirmBeforeLeave",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),L.set(this,void 0),R.set(this,void 0),I.set(this,void 0)}_lazyLoad(){this.baseElem.classList.add(l.Y.General.Class.CENTER_CONTENTS,"style-m_this_1euFn");const e=P.createGridWrapper();this.grid=Object.freeze({base:e.top,implHost:e.implHost,pauseOl:e.pauseOl}),o.R.propNoWrite(this,"grid"),o.R.prependComment(this.grid.implHost,"grid impl host"),this.grid.implHost.appendChild(document.createComment("grid impl")),this.baseElem.appendChild(e.top),e.pauseOl.addEventListener("focus",(e=>{const t=this.currentGame;void 0!==t&&t.status===N.l.Status.PAUSED&&(this.grid.base.focus(),this._reqStatusPlaying())})),this._initializeControlsBar(),this._initializePlayersBar(),(0,a.YH)(this,L,(()=>{if(this.wantsAutoPlayPause)if(document.hidden){if(void 0===(0,a.Q_)(this,I)){const e=this.currentGame;(void 0===e||void 0!==e&&e.status!==N.l.Status.OVER)&&this._reqStatusPaused()}}else"page-hide"===(0,a.Q_)(this,I)&&this._reqStatusPlaying()})),(0,a.YH)(this,R,this._gridKeyDownCallback.bind(this))}_abstractOnBeforeEnter(e,t){return(0,a.mG)(this,void 0,void 0,(function*(){document.addEventListener("visibilitychange",(0,a.Q_)(this,L)),this.btn.pause.disabled=!0,this._statusBecomePaused();const e=(0,a.YH)(this,S,yield this._createNewGame(t));yield e.reset(),this.grid.implHost.appendChild(e.htmlElements.grid),this.playersBar.appendChild(e.htmlElements.playersBar),this.btn.pause.onclick=this._reqStatusPlaying.bind(this),this.btn.pause.disabled=!1,this.wantsAutoPlayPause&&setTimeout((()=>{document.hidden||this._reqStatusPlaying()}),500),this.grid.base.addEventListener("keydown",(0,a.Q_)(this,R),{capture:!0})}))}_abstractOnBeforeLeave(e){if(this.askConfirmBeforeLeave&&!this.top.confirm("Are you sure you would like to leave?"))return!1;document.removeEventListener("visibilitychange",(0,a.Q_)(this,L)),this.currentGame.statusBecomeOver();for(const e of Object.values(this.currentGame.htmlElements))e.textContent="",e.remove();return this.grid.base.removeEventListener("keydown",(0,a.Q_)(this,R)),(0,a.YH)(this,S,void 0),!0}get currentGame(){return(0,a.Q_)(this,S)}get probeCurrentGame(){return(0,a.Q_)(this,S)}_gridKeyDownCallback(e){if(e.stopPropagation(),!e.isTrusted)return!0;const t=this.currentGame;if(e.ctrlKey&&" "===e.key&&!e.repeat){const e=t.operators;t.setCurrentOperator((1+e.indexOf(t.currentOperator))%e.length)}else t.currentOperator.processKeyboardInput(e);return" "!==e.key||(e.preventDefault(),!1)}_reqStatusPlaying(){this._statusBecomePlaying()}_reqStatusPaused(){this._statusBecomePaused()}_statusBecomePlaying(){this.currentGame.statusBecomePlaying(),this.btn.pause.textContent="Pause",this.grid.pauseOl.style.visibility="hidden",(0,a.YH)(this,I,void 0),this.btn.pause.onclick=this._reqStatusPaused.bind(this),this.btn.reset.disabled=!0,this.grid.base.focus()}_statusBecomePaused(){var e;null===(e=this.currentGame)||void 0===e||e.statusBecomePaused(),this.btn.pause.textContent="Unpause",this.grid.pauseOl.style.visibility="visible",(0,a.YH)(this,I,document.hidden?"page-hide":"other"),this.btn.pause.onclick=this._reqStatusPlaying.bind(this),this.btn.reset.disabled=!1}_onGameBecomeOver(){this.btn.pause.disabled=!0,this.btn.reset.disabled=!1}_resetGame(){this.currentGame.reset(),this.btn.pause.disabled=!1,this.wantsAutoPlayPause&&this._reqStatusPlaying()}_initializeControlsBar(){const e=o.R.mkEl("div",[l.Y.General.Class.CENTER_CONTENTS,l.Y.General.Class.INPUT_GROUP,"style-m_controls-bar_fLS47"]);function t(t,s){return(s=null!=s?s:o.R.mkEl("button",[])).classList.add(l.Y.General.Class.INPUT_GROUP_ITEM),s.textContent=t,s.addEventListener("pointerenter",(e=>{s.focus()})),e.appendChild(s),s}e.setAttribute("role","menu"),e.addEventListener("pointerleave",(e=>{this.grid.base.focus()})),t("",this.nav.prev),this.btn=Object.freeze({pause:t(""),reset:t("Reset")}),o.R.propNoWrite(this,"btn"),this.btn.reset.onclick=this._resetGame.bind(this),this.baseElem.appendChild(e)}_initializePlayersBar(){const e=this.playersBar=o.R.mkEl("div",["style-m_players-bar_BDHhb"]);o.R.propNoWrite(this,"playersBar"),this.baseElem.appendChild(e)}}S=new WeakMap,L=new WeakMap,R=new WeakMap,I=new WeakMap,function(e){e.createGridWrapper=function(){const e=l.Y.General.Class,t=o.R.mkEl("div",["style-m_grid-wrapper_2jXbc"]);t.setAttribute("role","presentation");const s=o.R.mkEl("div",[e.TEXT_SELECT_DISABLED,"grid-m_this_3RnyB"],{tabIndex:0});s.setAttribute("role","textbox"),s.setAttribute("aria-label","Game Grid");const n=o.R.mkEl("div",["grid-m_scroll-outer_3To0V"]);n.setAttribute("role","presentation");const i=o.R.mkEl("div",[e.FILL_PARENT,e.CENTER_CONTENTS,"grid-m_pause-overlay_3RB2_"],{});return i.appendChild(o.R.mkEl("div",[],{textContent:"(Click to Unpause)"})),n.appendChild(i),s.appendChild(n),t.appendChild(s),Object.freeze({top:t,grid:s,intersectionRoot:n,implHost:n,pauseOl:i})}}(P||(P={})),o.R.protoNoEnum(P,"probeCurrentGame","_statusBecomePlaying","_statusBecomePaused"),o.R.instNoEnum(P,"createGridWrapper"),Object.freeze(P),Object.freeze(P.prototype);class C extends P{constructor(){super(...arguments),Object.defineProperty(this,"wantsAutoPlayPause",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"askConfirmBeforeLeave",{enumerable:!0,configurable:!0,writable:!0,value:!0})}_lazyLoad(){super._lazyLoad(),this.nav.prev.innerHTML="Return To Setup"}_createNewGame(e){return(0,a.mG)(this,void 0,void 0,(function*(){return new((yield Promise.all([s.e(68),s.e(133),s.e(755)]).then(s.bind(s,765))).OfflineGame)(this._onGameBecomeOver.bind(this),e)}))}}Object.freeze(C),Object.freeze(C.prototype);var k=s(804);var w,A;class G extends d{constructor(){super(...arguments),w.set(this,void 0),Object.defineProperty(this,"in",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"groupNameDataList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),A.set(this,!1)}get clientIsGroupHost(){return(0,a.Q_)(this,A)}get loginInfo(){if(void 0===this.in)throw new Error("never");return Object.freeze({name:this.in.groupName.value,passphrase:this.in.passphrase.value})}_lazyLoad(){this.baseElem.classList.add(l.Y.General.Class.CENTER_CONTENTS,"style-m_this_1mSAZ");const e=this._initializeFormContents(),t=this._initializeHostUrlHandlers();this._initializeGroupNameHandlers(t),this._initializePassphraseHandlers(),this.nav.next.onclick=e=>{s()};const s=()=>{this.requestGoToScreen(d.Id.GROUP_LOBBY,{})};this._setFormState(H.CHOOSING_HOST),this.baseElem.appendChild(e)}getRecommendedFocusElem(){return void 0!==this.groupSocket?this.in.groupName:this.in.hostUrl}get state(){return(0,a.Q_)(this,w)}_setFormState(e){if(this.state!==e){if(e===H.IN_GROUP){if(this.state!==H.CHOOSING_GROUP)throw new Error("never");this.in.passphrase.disabled=!0,this.nav.next.disabled=!1,this.nav.next.focus()}else this.nav.next.disabled=!0,this.in.passphrase.value="",e===H.CHOOSING_HOST?(this.in.groupName.disabled=!0,this.in.groupName.value="",this.groupNameDataList.textContent="",this.in.passphrase.disabled=!0,this.in.hostUrl.focus()):e===H.CHOOSING_GROUP&&(this.in.groupName.disabled=!1,this.in.passphrase.disabled=!1,(0,a.YH)(this,A,!1),this.in.groupName.focus());(0,a.YH)(this,w,e)}}_initializeHostUrlHandlers(){const e=this.top,t=this.in.hostUrl,s=()=>(0,a.mG)(this,void 0,void 0,(function*(){var s,n;if(!t.value||!t.validity.valid)return;const i=new window.URL(t.value);if((null===(s=this.groupSocket)||void 0===s?void 0:s.io.opts.hostname)===i.hostname)return void(this.groupSocket.connected&&this._setFormState(H.CHOOSING_GROUP));null===(n=this.joinerSocket)||void 0===n||n.disconnect();const r=yield this.top.sockets.joinerSocketConnect({serverUrl:i});r.on("connect",(()=>{this._setFormState(H.CHOOSING_GROUP),r.on(k.ZA.Exist.EVENT_NAME,this._onNotifyGroupExist.bind(this))})).on("connect_error",(e=>{this.top.toast("Unable to connected to the specified server.")})).on("disconnect",(s=>{"io server disconnect"===s&&(this._setFormState(H.CHOOSING_HOST),t.value="",e.toast("The server disconnected you from the group joiner."))}))}));return t.oninput=e=>this._setFormState(H.CHOOSING_HOST),t.onkeydown=e=>{e.isTrusted&&"Enter"===e.key&&s()},t.onpaste=e=>{e.isTrusted&&window.setTimeout((()=>s()),0)},t.onchange=e=>{e.isTrusted&&s()},s}_onNotifyGroupExist(e){if(e===k.ZA.Exist.RequestCreate.Response.NOPE)return void this.top.toast(`The server rejected your request to create a new group "${this.in.groupName.value}".`);if(e===k.ZA.Exist.RequestCreate.Response.OKAY)return this.top.toast(`server accepted request to create new group "${this.in.groupName.value}".`),this.top.toast("connecting to new group..."),void this._attemptToJoinExistingGroup();const t=this.groupNameDataList,s=Array.from(t.children);Object.entries(e).forEach((([e,n])=>{const i=s.find((t=>t.value===e))||(e=>{const n=o.R.mkEl("option",[],{value:e});for(const e of s)if(n.value.localeCompare(e.value)<0){t.insertBefore(n,e);break}return n.parentElement||t.appendChild(n),n})(e);switch(n){case k.ZA.Exist.Status.IN_LOBBY:i.textContent="In Lobby";break;case k.ZA.Exist.Status.IN_GAME:i.textContent="In Game";break;case k.ZA.Exist.Status.DELETE:i.remove()}}))}_initializeGroupNameHandlers(e){const t=this.in.groupName,s=()=>{t.value&&t.validity.valid&&(this.state===H.IN_GROUP?this.nav.next.focus():this.in.passphrase.focus())};this.in.groupName.oninput=t=>(0,a.mG)(this,void 0,void 0,(function*(){t.isTrusted&&(this.state===H.IN_GROUP&&(yield e()),this.in.passphrase.value="",(0,a.YH)(this,A,!1))})),t.onkeydown=e=>{e.isTrusted&&"Enter"===e.key&&s()},t.onchange=e=>{e.isTrusted&&s()}}_initializePassphraseHandlers(){const e=()=>(0,a.mG)(this,void 0,void 0,(function*(){if(this.in.passphrase.validity.valid)return void 0!==this.groupSocket&&this.groupSocket.nsp===k.b4.Nsps.GROUP_LOBBY_PREFIX+this.in.groupName.value?this.groupSocket.connected?(this._setFormState(H.IN_GROUP),void this.nav.next.focus()):void 0:void(Array.from(this.groupNameDataList.children).some((e=>e.value===this.in.groupName.value))?((0,a.YH)(this,A,!1),this._attemptToJoinExistingGroup()):((0,a.YH)(this,A,!0),this.joinerSocket.emit(k.ZA.Exist.EVENT_NAME,new k.ZA.Exist.RequestCreate(this.in.groupName.value,this.in.passphrase.value))))}));this.in.passphrase.onkeydown=t=>{t.isTrusted&&"Enter"===t.key&&e()}}_attemptToJoinExistingGroup(){var e;null===(e=this.groupSocket)||void 0===e||e.disconnect();const t=this.top,s=n.getLastUserInfo();this.top.sockets.groupSocketConnect(this.in.groupName.value,{passphrase:this.in.passphrase.value,userInfo:s}).on("connect",(()=>{this._setFormState(H.IN_GROUP)})).on("connect_error",(e=>{this._setFormState(H.CHOOSING_GROUP),t.toast("Unable to connect to the specified group.")})).on("disconnect",(e=>{this._setFormState(H.CHOOSING_GROUP),"io server disconnect"===e&&(t.toast("The server disconnected you from your group."),this.top.currentScreen!==this?this.requestGoToScreen(d.Id.GROUP_JOINER,{}):this.in.passphrase.focus())}))}get joinerSocket(){return this.top.sockets.joinerSocket}get groupSocket(){return this.top.sockets.groupSocket}_initializeFormContents(){this.in={};const e=o.R.mkEl("div",[l.Y.General.Class.INPUT_GROUP,"style-m_content-wrapper_3PpQN"],{});function t(t,s){const n=o.R.mkEl("input",[l.Y.General.Class.INPUT_GROUP_ITEM,s],{type:"text",autocomplete:"off",spellcheck:!1}),i=o.R.mkEl("label",[],{textContent:t});return i.appendChild(n),e.appendChild(i),n}this.nav.prev.classList.add(l.Y.General.Class.INPUT_GROUP_ITEM),e.appendChild(this.nav.prev);{const e=this.in.hostUrl=Object.assign(t("Host URL","style-m_host-url_1TIpa"),{type:"url",maxLength:128,autocomplete:"on",required:!0});e.setAttribute("list",l.Y.GLOBAL_IDS.PUBLIC_GAME_HOST_URLS);const s=G.SUGGEST_HOST(this.top.webpageHostType);if(s){const t=o.R.mkEl("option",[],{value:s.value,textContent:s.description});document.getElementById(l.Y.GLOBAL_IDS.PUBLIC_GAME_HOST_URLS).insertAdjacentElement("afterbegin",t),e.value=t.value}}{const e=this.in.groupName=Object.assign(t("Group Name","style-m_group-name_1JfrT"),{pattern:k.ZA.Name.REGEXP.source,minLength:1,maxLength:k.ZA.Name.MaxLength,autocomplete:"on",required:!0}),s=this.groupNameDataList=o.R.mkEl("datalist",[],{id:l.Y.GLOBAL_IDS.CURRENT_HOST_GROUPS});this.baseElem.appendChild(s),e.setAttribute("list",s.id)}{const e=this.in.passphrase=t("Group Passphrase","style-m_passphrase_2tjc3");e.pattern=k.ZA.Passphrase.REGEXP.source,e.maxLength=k.ZA.Passphrase.MaxLength}return this.nav.next.classList.add(l.Y.General.Class.INPUT_GROUP_ITEM),e.appendChild(this.nav.next),o.R.propNoWrite(this,"in","groupNameDataList"),Object.freeze(this.in),e}}w=new WeakMap,A=new WeakMap,function(e){let t;!function(e){e.CHOOSING_HOST="choosing-host",e.CHOOSING_GROUP="choosing-group",e.IN_GROUP="in-group"}(t=e.State||(e.State={})),e.SUGGEST_HOST=function(e){switch(e){case"github":return;case"filesystem":return{value:"localhost:"+k.b4.DEFAULT_PORT,description:"dev shortcut :)"};case"sk-server":return{value:window.location.origin,description:"this page's server"};default:return}}}(G||(G={}));const H=G.State;Object.freeze(G),Object.freeze(G.prototype);class U extends y{_lazyLoad(){super._lazyLoad(),this.nav.next.textContent="Start Game",this.nav.next.onclick=e=>{const t=this.parseArgsFromGui();this.top.clientIsGroupHost&&this.top.sockets.groupSocket.emit(k.m4.CREATE_GAME,t)}}}Object.freeze(U),Object.freeze(U.prototype);class j extends d{constructor(){super(...arguments),Object.defineProperty(this,"_players",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"teamsElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"teamElems",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"in",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}get socket(){return this.top.sockets.groupSocket}_lazyLoad(){this.baseElem.classList.add("style-m_this_1Rjcs"),this._players=new Map,this._createInputs(),this.nav.prev.textContent="Return To Joiner",this.teamsElem=o.R.mkEl("div",["style-m_teams-section_2eDnz"]),this.baseElem.appendChild(this.teamsElem),this.teamElems=new Map,o.R.propNoWrite(this,"_players","teamsElem","teamElems","in");{const e=this.nav.next;e.textContent="Setup Game",e.onclick=()=>{this.requestGoToScreen(d.Id.SETUP_ONLINE,{})},this.baseElem.appendChild(e)}}_createInputs(){var e;const t=o.R.mkEl("div",[l.Y.General.Class.INPUT_GROUP,"style-m_client-info-section_2hDNO"]),s=o.R.mkEl("input",[l.Y.General.Class.INPUT_GROUP_ITEM],{type:"text",minLength:1,maxLength:c.J5.Username.MAX_LENGTH,pattern:c.J5.Username.REGEXP.source,spellcheck:!1,value:null!==(e=this.top.storage.Local.username)&&void 0!==e?e:"",onchange:this._submitInputs.bind(this)});t.appendChild(s);const n=o.R.mkEl("input",[l.Y.General.Class.INPUT_GROUP_ITEM],{type:"number",inputMode:"numeric",min:"0",max:"0",step:"1",value:"0",onchange:this._submitInputs.bind(this)});n.classList.add(),t.appendChild(n);const i=o.R.mkEl("select",[]);this.in=Object.freeze({username:s,teamId:n,avatar:i}),this.baseElem.appendChild(t)}_submitInputs(){this.in.username.validity.valid&&this.in.teamId.validity.valid&&(this.top.storage.Local.username=this.in.username.value,this.top.storage.Local.avatar=this.in.avatar.value,this.socket.emit(k.ZA.Socket.UserInfoChange.EVENT_NAME,{username:this.in.username.value,teamId:parseInt(this.in.teamId.value),avatar:c.J5.Avatar.LOREM_IPSUM}))}_abstractOnBeforeEnter(e,t){return(0,a.mG)(this,void 0,void 0,(function*(){"forward"===e&&(this.nav.next.disabled=!this.top.clientIsGroupHost,this._players.clear(),this.teamElems.clear(),this.teamsElem.textContent="",this._submitInputs(),this.socket.off(k.ZA.Socket.UserInfoChange.EVENT_NAME).on(k.ZA.Socket.UserInfoChange.EVENT_NAME,this._onUserInfoChange.bind(this))),this.socket.once(k.m4.CREATE_GAME,(()=>{const e=this.top.groupLoginInfo;console.log("group create game socket. now waiting for ctor args. "),this.top.sockets.gameSocketConnect(e.name,{passphrase:e.passphrase}).once(k.JD.CREATE_GAME,(e=>{this.requestGoToScreen(d.Id.PLAY_ONLINE,e)}))}))}))}getRecommendedFocusElem(){let e=this.in.username.validity.valid?this.in.teamId.validity.valid?void 0:this.in.teamId:this.in.username;return void 0===e&&(e=this.top.clientIsGroupHost?this.nav.next:this.in.teamId),e}_abstractOnBeforeLeave(e){return e===d.NavDir.BACKWARD&&this.socket.off(k.m4.CREATE_GAME),!0}_onUserInfoChange(e){Object.entries(e).forEach((([e,t])=>{const s=this._players.get(e);if(!s||1!==this.teamElems.get(s.teamId).childElementCount||void 0!==t&&t.teamId===s.teamId||(this.teamElems.get(s.teamId).remove(),this.teamElems.delete(s.teamId)),t&&!this.teamElems.has(t.teamId)){const e=o.R.mkEl("div",["style-m_team_1OhAw"]);this.teamElems.set(t.teamId,e),e.onclick=e=>{this.in.teamId.value=t.teamId.toString()},this.teamsElem.appendChild(e)}if(void 0===t)s.base.remove(),this._players.delete(e);else if(void 0===s){const s=new j.UserInfo(t);this._players.set(e,s),this.teamElems.get(t.teamId).appendChild(s.base)}else s.update(t)})),this.in.teamId.max=Object.keys(this._players).length.toString()}}!function(e){var t,s,n;t=new WeakMap,s=new WeakMap,n=new WeakMap,e.UserInfo=class{constructor(e){t.set(this,void 0),s.set(this,void 0),n.set(this,void 0),Object.defineProperty(this,"base",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"el",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.base=o.R.mkEl("div",["style-m_player_2jAbJ"]);const i=()=>{const e=o.R.mkEl("div",[]);return this.base.appendChild(e),e};this.el=Object.freeze({username:i(),teamId:i(),avatar:i()}),this.el.username.classList.add("style-m_player__name_3esbS"),this.username=e.username,this.teamId=e.teamId,o.R.propNoWrite(this,"base","el")}update(e){this.username=e.username,this.teamId=e.teamId,this.avatar=e.avatar}get username(){return(0,a.Q_)(this,t)}set username(e){this.el.username.textContent=e,(0,a.YH)(this,t,e)}get teamId(){return(0,a.Q_)(this,s)}set teamId(e){this.el.teamId.textContent=e.toString(),(0,a.YH)(this,s,e)}get avatar(){return(0,a.Q_)(this,n)}set avatar(e){(0,a.YH)(this,n,e),this.el.avatar}}}(j||(j={})),o.R.protoNoEnum(j,"_createInputs","_submitInputs"),Object.freeze(j),Object.freeze(j.prototype);class x extends P{constructor(){super(...arguments),Object.defineProperty(this,"askConfirmBeforeLeave",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"wantsAutoPlayPause",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get socket(){return this.top.sockets.gameSocket}_lazyLoad(){super._lazyLoad(),this.nav.prev.innerHTML="Return To Lobby"}_abstractOnBeforeLeave(e){const t=super._abstractOnBeforeLeave(e);return t&&void 0!==this.socket&&(this.socket.emit(k.JD.RETURN_TO_LOBBY),this.socket.offAny(),this.socket.disconnect()),t}_reqStatusPlaying(){this.socket.emit(k.JD.UNPAUSE)}_reqStatusPaused(){this.socket.emit(k.JD.PAUSE)}_createNewGame(e){return(0,a.mG)(this,void 0,void 0,(function*(){const t=new((yield Promise.all([s.e(68),s.e(133),s.e(775)]).then(s.bind(s,92))).OnlineGame)(this._onGameBecomeOver.bind(this),this.top.sockets.gameSocket,e);return this.socket.on(k.JD.UNPAUSE,(()=>{this._statusBecomePlaying()})).on(k.JD.PAUSE,(()=>{this._statusBecomePaused()})).on(k.JD.RETURN_TO_LOBBY,(e=>{void 0===e&&this.nav.prev.click()})),Promise.resolve(t)}))}_onGameBecomeOver(){super._onGameBecomeOver()}}var z,M,D,B,F;Object.freeze(x),Object.freeze(x.prototype);class W{constructor(e,t){Object.defineProperty(this,"dict",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),z.set(this,void 0),M.set(this,void 0),(0,a.YH)(this,M,e.transition),t.setAttribute("role","presentation");const s=d.Id,n=e,i=t,r=Object.freeze(this.goToScreen.bind(this));this.dict=Object.freeze({[s.HOME]:new h(s.HOME,n,i,r),[s.HOW_TO_PLAY]:new m(s.HOW_TO_PLAY,n,i,r),[s.HOW_TO_HOST]:new b(s.HOW_TO_HOST,n,i,r),[s.COLOUR_CTRL]:new g(s.COLOUR_CTRL,n,i,r),[s.SETUP_OFFLINE]:new T(s.SETUP_OFFLINE,n,i,r),[s.PLAY_OFFLINE]:new C(s.PLAY_OFFLINE,n,i,r),[s.GROUP_JOINER]:new G(s.GROUP_JOINER,n,i,r),[s.SETUP_ONLINE]:new U(s.SETUP_ONLINE,n,i,r),[s.GROUP_LOBBY]:new j(s.GROUP_LOBBY,n,i,r),[s.PLAY_ONLINE]:new x(s.PLAY_ONLINE,n,i,r)}),o.R.propNoWrite(this,"dict");const l=d.NavTree[window.location.hash.slice(1)];window.setTimeout((()=>{var e;this.goToScreen(null!==(e=null==l?void 0:l.href)&&void 0!==e?e:d.Id.HOME,{})}),75),window.addEventListener("popstate",(e=>{this.goToScreen(window.history.state.screenId,{})}))}goToScreen(e,t){return(0,a.mG)(this,void 0,void 0,(function*(){const s=this.currentScreen,n=this.dict[e];(0,a.YH)(this,z,n);const i=d.GET_NAV_DIR({curr:null==s?void 0:s.screenId,dest:e});return!(void 0!==s&&!s._leave(i)||(yield(0,a.Q_)(this,M).do({beforeUnblurAwait:n._enter(i,t),beforeUnblur:()=>{var e;null==s||s._onAfterLeave(),n._onAfterEnter(),null===(e=n.getRecommendedFocusElem())||void 0===e||e.focus()}}),0))}))}get currentScreen(){return(0,a.Q_)(this,z)}}z=new WeakMap,M=new WeakMap,Object.freeze(W),Object.freeze(W.prototype);class Y{constructor(){Object.defineProperty(this,"baseElem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),D.set(this,void 0),this.baseElem=document.getElementById(l.Y.Screen.Id.SCREEN_TINT),(0,a.YH)(this,D,void 0),o.R.propNoWrite(this,"baseElem")}do(e){var t;return(0,a.YH)(this,D,(null!==(t=(0,a.Q_)(this,D))&&void 0!==t?t:Promise.resolve()).then((()=>this._atomicDo(e)))),(0,a.Q_)(this,D)}_atomicDo(e){return(0,a.mG)(this,void 0,void 0,(function*(){const t=this.baseElem.style;yield this._triggerCssTransition((()=>{t.pointerEvents="all",t.opacity="1.0"})),void 0!==e.intermediateTransitionTrigger&&(yield this._triggerCssTransition((()=>{e.intermediateTransitionTrigger()}))),yield e.beforeUnblurAwait,void 0!==e.beforeUnblur&&e.beforeUnblur(),yield this._triggerCssTransition((()=>{t.pointerEvents="none",t.opacity="0.0"}))}))}_triggerCssTransition(e){return new Promise(((t,s)=>{this.baseElem.addEventListener("transitionend",(()=>t()),{once:!0}),e()}))}}D=new WeakMap,o.R.protoNoEnum(Y,"_atomicDo","_triggerCssTransition"),Object.freeze(Y),Object.freeze(Y.prototype);class Q{constructor(){B.set(this,void 0),(0,a.YH)(this,B,{joiner:void 0,group:void 0,game:void 0})}get joinerSocket(){return(0,a.Q_)(this,B).joiner}get groupSocket(){return(0,a.Q_)(this,B).group}get gameSocket(){return(0,a.Q_)(this,B).game}joinerSocketConnect(e){return(0,a.mG)(this,void 0,void 0,(function*(){const t=new((yield s.e(307).then(s.t.bind(s,307,23))).default.Manager)(e.serverUrl.toString(),{reconnectionAttempts:k.ZA.GameServerReconnectionAttempts,autoConnect:!1,transports:["websocket"]}).socket(k.b4.Nsps.GROUP_JOINER);return this._registerSocket(t,"joiner"),t.connect()}))}groupSocketConnect(e,t){return this._groupSocketHelper("group",e,t).connect()}gameSocketConnect(e,t){if(void 0===e||void 0===t.passphrase)throw new TypeError("never");return this._groupSocketHelper("game",e,t).connect()}_groupSocketHelper(e,t,s){let n;switch(e){case"group":n=k.b4.Nsps.GROUP_LOBBY_PREFIX;break;case"game":n=k.b4.Nsps.GROUP_GAME_PREFIX;break;default:throw new TypeError("never")}const i=this.joinerSocket.io.socket(n+t,{auth:s});return this._registerSocket(i,e),i}_registerSocket(e,t){(0,a.Q_)(this,B)[t]=e;const s=()=>{e.offAny(),(0,a.Q_)(this,B)[t]=void 0};e.on("connect_error",(e=>{console.warn(e),s()})).on("disconnect",(e=>{"io server disconnect"!==e&&"io client disconnect"!==e||(console.info(e),s())}))}}B=new WeakMap,o.R.protoNoEnum(Q,"joinerSocketConnect","groupSocketConnect","gameSocketConnect","_groupSocketHelper","_registerSocket"),Object.freeze(Q),Object.freeze(Q.prototype);class J{constructor(){Object.defineProperty(this,"defaultDocTitle",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"webpageHostType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"storage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"transition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),F.set(this,void 0),Object.defineProperty(this,"sockets",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.defaultDocTitle=document.title,this.webpageHostType=window.location.hostname.match(/github\.io/)?J.WebpageHostType.GITHUB:window.location.protocol.startsWith("file")?J.WebpageHostType.FILESYSTEM:J.WebpageHostType.SNAKEY_SERVER,o.R.propNoWrite(this,"defaultDocTitle","webpageHostType"),this.storage=n,this.sockets=new Q,this.transition=new Y,o.R.propNoWrite(this,"storage","sockets","transition");const e=document.getElementById(l.Y.Screen.Id.ALL_SCREENS);if(!e)throw new Error("never");o.R.prependComment(e,"ALL SCREENS CONTAINER"),(0,a.YH)(this,F,new W(this,e)),o.R.propNoWrite(this)}get clientIsGroupHost(){return(0,a.Q_)(this,F).dict.groupJoiner.clientIsGroupHost}get groupLoginInfo(){return(0,a.Q_)(this,F).dict.groupJoiner.loginInfo}toast(e){console.info(e)}confirm(e){return window.confirm(e)}get game(){var e;return null!==(e=(0,a.Q_)(this,F).dict.playOffline.probeCurrentGame)&&void 0!==e?e:(0,a.Q_)(this,F).dict.playOnline.probeCurrentGame}get currentScreen(){return(0,a.Q_)(this,F).currentScreen}}F=new WeakMap,function(e){let t;!function(e){e.GITHUB="github",e.FILESYSTEM="filesystem",e.SNAKEY_SERVER="sk-server"}(t=e.WebpageHostType||(e.WebpageHostType={}))}(J||(J={})),Object.freeze(J),Object.freeze(J.prototype),[Object,Array,Map,Set,WeakMap,WeakSet,String,Number,RegExp,HTMLElement,HTMLDivElement,HTMLSpanElement,HTMLPreElement,HTMLButtonElement,HTMLInputElement,HTMLSelectElement,HTMLOptionElement,HTMLScriptElement,HTMLStyleElement,HTMLLinkElement,HTMLAnchorElement,HTMLDocument,HTMLIFrameElement,HTMLCanvasElement].forEach((e=>{Object.freeze(e),Object.freeze(null==e?void 0:e.prototype)}));const V=new J,q=void 0;function K(){return V.currentScreen}function X(){return V.game}console.info("%c🩺 welcome! 🐍","font:700 2.3em /1.5 monospace; margin:0.4em; border:0.3em solid black;padding:0.4em; color:white; background-color:#3f5e77; border-radius:0.7em; "),V.webpageHostType===J.WebpageHostType.GITHUB&&"serviceWorker"in navigator&&window.addEventListener("load",(function(){navigator.serviceWorker.register("/ServiceWorker.js").then((e=>{console.info("ServiceWorker registration successful with scope: ",e.scope)}),(e=>{console.info("ServiceWorker registration failed: ",e)}))}))},903:(e,t,s)=>{"use strict";function n(e,t,s,n){return new(s||(s=Promise))((function(i,r){function a(e){try{l(n.next(e))}catch(e){r(e)}}function o(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,o)}l((n=n.apply(e,t||[])).next())}))}function i(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function r(e,t,s){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,s),s}s.d(t,{mG:()=>n,Q_:()=>i,YH:()=>r}),Object.create,Object.create}},0,[[897,280]]]); +var capswalk;(self.webpackChunkcapswalk=self.webpackChunkcapswalk||[]).push([[826],{164:(e,t,s)=>{"use strict";s.d(t,{R:()=>i});const a=Object.freeze({enumerable:!1}),r=Object.freeze({writable:!1});var i;!function(e){function t(e){for(const s of Object.getOwnPropertyNames(e)){const a=e[s];null!==a&&"object"==typeof a&&t(a)}Object.freeze(e)}function s(e,t,...s){for(const a of s)Object.defineProperty(t,a,e)}let i;var n;e.deepFreeze=function(e){return t(e),e},e.hasProp=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.protoNoEnum=function(e,...t){Object.getOwnPropertyNames(e.prototype).freeze(),t.forEach((t=>{Object.defineProperty(e.prototype,t,a)}))},e.instNoEnum=s.bind(null,a),e.propNoWrite=s.bind(null,r),e.camelCaseTransforms=function(e){const t=e.replace(/[A-Z]/g,(e=>" "+e.toLowerCase()));return Object.freeze({spaceyLowercase:t,spaceyUppercase:t.toUpperCase(),spaceyCapitalized:t.split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(" ")})},(n=i=e.Web||(e.Web={})).prependComment=function(e,t){e.parentNode.insertBefore(document.createComment(" "+t+" "),e)},n.adoptStyleSheet=function(t,s){t.appendChild(e.html("link",[],{rel:"stylesheet",href:s}))},n._makeSmartStorage=function(e,t,s){const a={};return Object.keys(s).forEach((e=>{const s=""+e;Object.defineProperty(a,e,{enumerable:!0,get:()=>{const e=t.getItem(s);return null===e?void 0:JSON.parse(e)},set:e=>{t.setItem(s,JSON.stringify(e))}})})),a},e.html=function(e,t,s){const a=document.createElement(e);try{Object.seal(a)}catch(e){}return(null==t?void 0:t.length)&&a.classList.add(...t),"button"===e?a.type="button":"a"===e&&(a.rel="noopener"),void 0!==s&&Object.assign(a,s),a},e.svg=function(e,t,s){const a=document.createElementNS("http://www.w3.org/2000/svg",e);return Object.seal(a),(null==t?void 0:t.length)&&a.classList.add(...t),void 0!==s&&Object.assign(a,s),a}}(i||(i={})),Object.freeze(i)},495:(e,t,s)=>{"use strict";s.d(t,{ZA:()=>a,oU:()=>r,m4:()=>i,JD:()=>n}),new WeakMap;class a{}var r,i,n,o;!function(e){let t;var s;let a;var r;(s=t=e.Name||(e.Name={})).REGEXP=/^(?:[a-zA-Z0-9:-]+)$/,s.MaxLength=30,(r=a=e.Passphrase||(e.Passphrase={})).REGEXP=/^(?:[a-zA-Z0-9:-]*)$/,r.MaxLength=30,e.GameServerReconnectionAttempts=2,e.DEFAULT_TTL=20}(a||(a={})),Object.freeze(a),Object.freeze(a.prototype),function(e){let t,s,a;(t=e.Create||(e.Create={})).NAME="joiner/create",function(e){let t;var s;e.NAME="joiner/exist",(s=t=e.Status||(e.Status={})).IN_LOBBY="in-lobby",s.IN_GAME="in-game",s.DELETE="delete"}(s=e.Exist||(e.Exist={})),(a=e.TryJoin||(e.TryJoin={})).NAME="joiner/try-join"}(r||(r={})),Object.freeze(r),function(e){let t;(t=e.UserInfo||(e.UserInfo={})).NAME="group/user-info-change",e.CREATE_GAME="group/create-game"}(i||(i={})),Object.freeze(i),(o=n||(n={})).RESET="game/reset",o.UNPAUSE="game/unpause",o.PAUSE="game/pause",o.IN_GAME="game/ingame",o.RETURN_TO_LOBBY="game/return-to-lobby"},139:(e,t,s)=>{"use strict";s.d(t,{Uo:()=>l,J5:()=>o});var a=s(164);const r=Object.freeze({IDENT:e=>e,LOWER:e=>e.toLowerCase()}),i={"engl-low":{module:"English",export:"Lowercase",isolatedMinOpts:25,remapFunc:r.LOWER,displayName:"English Lowercase (qwerty)",blurb:""},"engl-mix":{module:"English",export:"MixedCase",isolatedMinOpts:51,remapFunc:r.IDENT,displayName:"English Mixed-Case (Querty)",blurb:""},"japn-hir":{module:"Japanese",export:"Hiragana",isolatedMinOpts:70,remapFunc:r.LOWER,displayName:"Japanese Hiragana",blurb:""},"japn-kat":{module:"Japanese",export:"Katakana",isolatedMinOpts:68,remapFunc:r.LOWER,displayName:"Japanese Katakana",blurb:""},"kore-dub":{module:"Korean",export:"Dubeolsik",isolatedMinOpts:8690,remapFunc:r.IDENT,displayName:"Korean Dubeolsik (두벌식 키보드)",blurb:"The most common keyboard layout, and South Korea's only Hangul standard since 1969. Consonants are on the left, and vowels on the right."},"kore-sub":{module:"Korean",export:"Sebeolsik",isolatedMinOpts:10179,remapFunc:r.IDENT,displayName:"Korean Sebeolsik (세벌식 최종 키보드)",blurb:"Another Hangul keyboard layout used in South Korea, and the final Sebeolsik layout designed by Dr. Kong Byung Woo, hence the name. Syllable-initial consonants are on the right, final consonants on the left, and vowels in the middle. It is more ergonomic than the dubeolsik, but not widely used."},"kore-rom":{module:"Korean",export:"Romanization",isolatedMinOpts:3960,remapFunc:r.LOWER,displayName:"Korean Revised Romanization",blurb:"The Revised Romanization of Korean (국어의 로마자 표기법; 國語의 로마字 表記法) is the official South Korean language romanization system. It was developed by the National Academy of the Korean Language from 1995, and was released on 7 July 2000 by South Korea's Ministry of Culture and Tourism"},"engl-cell-enc":{module:"English",export:"OldCellphone.Encode",isolatedMinOpts:7,remapFunc:r.IDENT,displayName:"Old Cellphone Keyboard",blurb:""},"mors-enc":{module:"English",export:"Morse.Encode",isolatedMinOpts:10,remapFunc:e=>e,displayName:"Morse Encoder",blurb:""},"mors-dec":{module:"English",export:"Morse.Decode",isolatedMinOpts:40,remapFunc:r.LOWER,displayName:"Morse Decoder",blurb:""},ngram2:{module:"Ngrams",export:"Ngram2",isolatedMinOpts:199,remapFunc:r.LOWER,displayName:"English Bigrams",blurb:""},ngram3:{module:"Ngrams",export:"Ngram3",isolatedMinOpts:400,remapFunc:r.LOWER,displayName:"English Trigrams",blurb:""},numpad:{module:"Numpad",export:"Numpad",isolatedMinOpts:100,remapFunc:r.LOWER,displayName:"Number Pad",blurb:""}};Object.entries(i).forEach((([e,t])=>{t.id=e})),a.R.deepFreeze(i);const n=i;Object.freeze({behavior:"smooth",block:"center",inline:"center"});class o{}!function(e){let t,s;var a;let r;e.Family=Object.freeze({HUMAN:"HUMAN",CHASER:"CHASER"}),e.Family,(t=e.Id||(e.Id={})).NULL=-1,(a=s=e.Username||(e.Username={})).REGEXP=/[ a-zA-Z0-9:-]+/,a.MAX_LENGTH=15,(r=e.Avatar||(e.Avatar={})).LOREM_IPSUM="lorem-ipsum",function(e){const t=Object.values(e).filter((e=>"string"==typeof e));e.GET_RANDOM=function(){return t[Math.floor(Math.random()*t.length)]}}(r=e.Avatar||(e.Avatar={}))}(o||(o={})),Object.freeze(o);class l{}!function(e){let t,s,a;(t=e.Seq||(e.Seq={})).REGEXP=new RegExp("^[a-zA-Z0-9!@#$%^&*()-_=+;:'\"\\|,.<>/?]+$"),(s=e.CharSeqPair||(e.CharSeqPair={})).NULL=Object.freeze({char:"",seq:""}),(a=e.WeightExaggeration||(e.WeightExaggeration={})).MAX=4,e.CHAR_HIT_COUNT_SEED_CEILING=5,e.FrontendDescs=n,e.GET_FRONTEND_DESC_BY_ID=function(t){return e.FrontendDescs[t]}}(l||(l={})),Object.freeze(l),Object.freeze(l.prototype)},892:(e,t,s)=>{"use strict";var a;s.d(t,{l:()=>a}),function(e){let t;var s;(s=t=e.Status||(e.Status={})).PLAYING="PLAYING",s.PAUSED="PAUSED",s.OVER="OVER",Object.freeze(t),e.K=Object.freeze({_HEALTH_UPDATE_CHANCE:.1,AVERAGE_HEALTH_TO_SPAWN_ON_TILE:1,PORTION_OF_MOVES_THAT_ARE_BOOST:.4,_HEALTH_COST_OF_BOOST(e,t){const s=t(this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/e);return this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/s/this.PORTION_OF_MOVES_THAT_ARE_BOOST},HEALTH_EFFECT_FOR_DOWNED_PLAYER:.6,_REQUEST_BUFFER_LENGTH:5,_ROBOT_PRIORITY_MAX_REUSES:4})}(a||(a={})),Object.freeze(a)},783:(e,t,s)=>{"use strict";s.d(t,{J:()=>v});var a,r=s(164),i=s(892),n=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},o=(e,t,s,a)=>(n(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);class l{constructor(){a.set(this,0),this.length=0}get lastRejectId(){return n(this,e=a,"read from private field"),e.get(this);var e}reset(e){o(this,a,0),this.length=0,this.predictedCoord=e}get isFull(){return this.length===i.l.K._REQUEST_BUFFER_LENGTH}signRequest(e){return this.length++,this.predictedCoord=e.moveDest,e}getNextRejectId(){return(this.lastRejectId+Math.floor(99*Math.random()))%100}reject(e,t){o(this,a,e),this.length=0,this.predictedCoord=t}acceptOldest(){this.length--}}a=new WeakMap,Object.freeze(l),Object.freeze(l.prototype);var h,c,d=s(139),p=s(56),u=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},m=(e,t,s)=>(u(e,t,"read from private field"),s?s.call(e):t.get(e)),E=(e,t,s,a)=>(u(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);const O=class extends d.J5{constructor(e,t){super(),h.set(this,void 0),c.set(this,0),this.prevCoord=void 0,this.playerId=t.playerId,this.familyId=t.familyId,this.teamId=t.teamId,this.username=t.username,this.avatar=t.avatar,this.game=e,this.reqBuffer=new l,r.R.instNoEnum(this,"game"),r.R.propNoWrite(this,"game","playerId","familyId","teamId","username","avatar","reqBuffer"),new.target===O&&Object.seal(this)}get team(){return this.game.teams[this.teamId]}get coord(){return m(this,h)}get health(){return m(this,c)}get isDowned(){return this.health<0}isTeamedWith(e){return this.team.members.includes(e)}onTeamsBootstrapped(){}reset(e){E(this,h,e),this.prevCoord=e,this.game.grid.write(e,{occId:this.playerId}),E(this,c,0),this.reqBuffer.reset(e)}onGamePlaying(){}onGamePaused(){}onGameOver(){}makeMovementRequest(e,t){this.reqBuffer.isFull||this.game.processMoveRequest(this.reqBuffer.signRequest({initiator:this.playerId,lastRejectId:this.reqBuffer.lastRejectId,moveType:t,moveDest:e}))}setCoord(e){this.prevCoord=this.coord,E(this,h,e)}set health(e){const t=this.isDowned;if(E(this,c,e),t||!this.isDowned)return;const s=this.team,a=this.game.teams;if(s.elimOrder===p.S.ElimOrder.STANDING&&s.members.every((e=>e.isDowned))){const e=1+a.filter((e=>e.elimOrder!==p.S.ElimOrder.STANDING)).length;s.elimOrder=1+a.filter((e=>e.elimOrder!==p.S.ElimOrder.STANDING)).length,e===a.length&&this.game.statusBecomeOver()}}};let v=O;h=new WeakMap,c=new WeakMap,function(e){let t;e.MoveType=Object.freeze({NORMAL:"NORMAL",BOOST:"BOOST"}),e.MoveType,(t=e.CtorArgs||(e.CtorArgs={})).finalize=function(t){const s=t.players,a=Array.from(new Set(s.map((e=>e.teamId)))).sort(((e,t)=>e-t)).reduce(((e,t,s)=>(e[t]=s,e)),[]);t.players=s.slice().sort(((e,t)=>a[e.teamId]-a[t.teamId])).freeze().map(((t,s)=>{var r;return Object.assign({},t,{playerId:s,teamId:a[t.teamId],avatar:null!=(r=t.avatar)?r:e.Avatar.GET_RANDOM()})})).freeze()},Object.freeze(t)}(v||(v={})),r.R.protoNoEnum(v,"onGamePlaying","onGamePaused","onGameOver","onTeamsBootstrapped"),Object.freeze(v),Object.freeze(v.prototype)},56:(e,t,s)=>{"use strict";s.d(t,{S:()=>r});var a=s(164);class r{constructor(e,t){if(this.id=e,this.members=t,this.elimOrder=r.ElimOrder.STANDING,a.R.propNoWrite(this,"id","members"),Object.seal(this),0===t.length)throw new Error("Teams must have at least one member.")}reset(){this.elimOrder=r.ElimOrder.STANDING}}!function(e){let t;(t=e.ElimOrder||(e.ElimOrder={})).STANDING=0}(r||(r={})),Object.freeze(r),Object.freeze(r.prototype)},811:(e,t,s)=>{"use strict";s.r(t),s.d(t,{game:()=>Je,screen:()=>Fe,top:()=>We}),s(768);var a,r=s(164);!function(e){let t;var s;let a,r;e.ID={PUBLIC_GAME_SERVER_URLS:"public-game-hosts-list",CURRENT_HOST_GROUPS:"current-host-groups-list"},(s=t=e.General||(e.General={})).Class={TEXT_SELECT_DISABLED:"text-select-disabled",FILL_PARENT:"fill-parent",CENTER_CONTENTS:"center-contents",STACK_CONTENTS:"stack-contents",INPUT_GROUP:"sk-input-group",INPUT_GROUP_ITEM:"sk-input-group-item"},s.Dataset={COLOUR_SCHEME:"skColourScheme"},(a=e.Player||(e.Player={})).Dataset={DOWNED:{KEY:"downed",VALUES:{TEAM:"team",SELF:"self",NO:"no"}},FACE_SWATCH:"face"},function(e){let t;e.Id={ALL_SCREENS:"all-screens-container",SCREEN_TINT:"screen-tint"},e.Class={BASE:"screen",NAV_NEXT:"screen--next-button",NAV_PREV:"screen--prev-button"},e.Dataset={CURRENT:"current"},function(e){let t;(t=e.Setup||(e.Setup={})).Id={LANG_WEIGHT_EXAGGERATION_LIST:"screen-setup--lang-weight-exaggeration-list"}}(t=e.Impl||(e.Impl={}))}(r=e.Screen||(e.Screen={}))}(a||(a={})),r.R.deepFreeze(a);var i,n=s(139);!function(e){let t;e.Local=r.R.Web._makeSmartStorage("capswalk",localStorage,{musicVolume:1,sfxVolume:1,colourSchemeId:"",colourSchemeStyleLiteral:"",gamePresetId:"",username:"",avatar:""}),e.getLastUserInfo=function(){var t,s;return Object.freeze({username:null!=(t=e.Local.username)?t:"unnamed player",teamId:0,avatar:null!=(s=e.Local.avatar)?s:n.J5.Avatar.GET_RANDOM()})},e.Session=r.R.Web._makeSmartStorage("capswalk",localStorage,Object.freeze({})),function(e){let t;e.DB_NAME="capswalk_db",(t=e.UserGamePresetStore||(e.UserGamePresetStore={})).STORE_NAME="userGamePresets",Object.freeze(t)}(t=e.IDB||(e.IDB={})),Object.freeze(t)}(i||(i={})),Object.freeze(i);var o,l,h=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},c=(e,t,s)=>(h(e,t,"read from private field"),s?s.call(e):t.get(e)),d=(e,t,s,a)=>(h(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);const p=a.Screen.Class,u=class{constructor(e,t){o.set(this,void 0),this.baseElem=r.R.html("div",[p.BASE]),l.set(this,!1),this.screenId=t,this.screenNames=r.R.camelCaseTransforms(t),this.top=e.toplevel,d(this,o,e.parentElem),this.requestGoToScreen=e.goToScreen,this.nav=Object.freeze({prev:r.R.html("button"),next:r.R.html("button")}),r.R.propNoWrite(this,"screenId","top","baseElem","nav","requestGoToScreen"),this.nav.prev.classList.add(p.NAV_PREV),this.nav.next.classList.add(p.NAV_NEXT),this.nav.prev.textContent="Back",this.nav.next.textContent="Next",this.nav.prev.onclick=e=>{const s=u.NavTree,a=s[this.screenId];s[a.prev].href===a.href?this.requestGoToScreen(u.NavTree[t].prev,{}):window.history.back()}}lazyLoad(){c(this,l)||(this._lazyLoad(),this.baseElem.setAttribute("aria-label",this.screenNames.spaceyCapitalized+" Screen"),d(this,l,!0))}async _enter(e,t){var s;if(document.title=`${this.screenNames.spaceyCapitalized} | ${this.top.defaultDocTitle}`,e===u.NavDir.FORWARD){const e=new window.URL(window.location.href),t=e.hash=u.NavTree[this.screenId].href,a=[{screenId:this.screenId},"",e.href];(null==(s=window.history.state)?void 0:s.screenId)!==t&&(u.NavTree[this.screenId].prev===this.screenId?history.replaceState(...a):history.pushState(...a))}this.lazyLoad(),await this._abstractOnBeforeEnter(e,t)}_leave(e){return!!this._abstractOnBeforeLeave(e)}_onAfterEnter(){this.baseElem.dataset[a.Screen.Dataset.CURRENT]="",c(this,o).appendChild(this.baseElem)}_onAfterLeave(){delete this.baseElem.dataset[a.Screen.Dataset.CURRENT],this.baseElem.remove()}getRecommendedFocusElem(){}async _abstractOnBeforeEnter(e,t){}_abstractOnBeforeLeave(e){return!0}};let m=u;o=new WeakMap,l=new WeakMap,function(e){let t;var s;let a;var i;(s=t=e.Id||(e.Id={})).HOME="home",s.HOW_TO_PLAY="how-to-play",s.HOW_TO_HOST="how-to-host",s.COLOUR_CTRL="colour-control",s.SETUP_OFFLINE="setup-offline",s.PLAY_OFFLINE="play-offline",s.GROUP_JOINER="group-joiner",s.SETUP_ONLINE="setup-online",s.GROUP_LOBBY="group-lobby",s.PLAY_ONLINE="play-online",Object.freeze(t),e.NavTree=r.R.deepFreeze({[t.HOME]:{prev:t.HOME,href:t.HOME},[t.HOW_TO_PLAY]:{prev:t.HOME,href:t.HOW_TO_PLAY},[t.HOW_TO_HOST]:{prev:t.HOME,href:t.HOW_TO_HOST},[t.COLOUR_CTRL]:{prev:t.HOME,href:t.COLOUR_CTRL},[t.SETUP_OFFLINE]:{prev:t.HOME,href:t.SETUP_OFFLINE},[t.PLAY_OFFLINE]:{prev:t.SETUP_OFFLINE,href:t.SETUP_OFFLINE},[t.GROUP_JOINER]:{prev:t.HOME,href:t.GROUP_JOINER},[t.GROUP_LOBBY]:{prev:t.GROUP_JOINER,href:t.GROUP_JOINER},[t.SETUP_ONLINE]:{prev:t.GROUP_LOBBY,href:t.GROUP_JOINER},[t.PLAY_ONLINE]:{prev:t.GROUP_LOBBY,href:t.GROUP_JOINER}}),(i=a=e.NavDir||(e.NavDir={})).FORWARD="forward",i.BACKWARD="backward",e.GET_NAV_DIR=function(t){const{curr:s,dest:a}=t;if(void 0===s)return e.NavDir.FORWARD;let r=s;for(;r!==e.NavTree[r].prev;)if(r=e.NavTree[r].prev,r===a)return e.NavDir.BACKWARD;return e.NavDir.FORWARD}}(m||(m={})),Object.freeze(m),Object.freeze(m.prototype);const E={this:"_2fw8LavR89kQmI-ujd84Oc",nav:"_3bXQ_T8CN61h-XuM1Q5CKO","nav--play-offline":"_27pYKLXKIhEkDPRBq7FQkG","nav--play-online":"_1cZmpRlPlHZasyAk0suiYy","nav--how-to-play":"_29Ok3ZNcVG4aBK7f28U0Vl","nav--how-to-host":"_1Me42uM4lSoh2869wVFjJD","nav--colour-scheme":"_31wBmMbr_vhgM4lM1jary6","nav--goto-repo":"_2mwhS0oLTAcnpq5YWXg7cq","nav--report-issue":"QdLSQUx8gcAov0d1PYNgJ"};class O extends m{_lazyLoad(){Object.freeze(this),this.baseElem.classList.add(a.General.Class.CENTER_CONTENTS,E.this);const e=r.R.html("div",[a.General.Class.TEXT_SELECT_DISABLED,a.General.Class.INPUT_GROUP,E.nav]);e.setAttribute("role","navigation"),e.addEventListener("pointerleave",(()=>{var t;(null==(t=document.activeElement)?void 0:t.parentElement)===e&&document.activeElement.blur()}));const t=(t,s)=>{t.classList.add(a.General.Class.CENTER_CONTENTS,a.General.Class.INPUT_GROUP_ITEM,s.cssClass),t.textContent=s.text,t.addEventListener("pointerenter",(()=>{window.requestAnimationFrame((e=>{t.focus()}))})),e.appendChild(t)};[{text:"Offline Single-player",cssClass:E["nav--play-offline"],screenId:m.Id.SETUP_OFFLINE},{text:"Online Multi-player",cssClass:E["nav--play-online"],screenId:m.Id.GROUP_JOINER},{text:"How To Play",cssClass:E["nav--how-to-play"],screenId:m.Id.HOW_TO_PLAY},{text:"How To Host",cssClass:E["nav--how-to-host"],screenId:m.Id.HOW_TO_HOST},{text:"Colour Schemes",cssClass:E["nav--colour-scheme"],screenId:m.Id.COLOUR_CTRL}].map((e=>Object.freeze(e))).forEach((e=>{const s=r.R.html("button");s.onclick=e.screenId instanceof Function?e.screenId:()=>{this.requestGoToScreen(e.screenId,{})},t(s,e)})),[{text:"Visit\nRepo",cssClass:E["nav--goto-repo"],href:new window.URL("https://github.com/david-fong/capswalk")},{text:"Report\nIssue",cssClass:E["nav--report-issue"],href:new window.URL("https://github.com/david-fong/capswalk/issues")}].map((e=>Object.freeze(e))).forEach((e=>{const s=r.R.html("a",[],{href:e.href.toString(),target:"_blank"});t(s,e)})),this.baseElem.appendChild(e)}}Object.freeze(O),Object.freeze(O.prototype);class v extends m{_lazyLoad(){Object.freeze(this)}}Object.freeze(v),Object.freeze(v.prototype);class f extends m{_lazyLoad(){Object.freeze(this)}}(f||(f={})).INSTRUCTIONS_STEPS=Object.freeze(["$ npm install 'https://github.com/david-fong/capswalk#gh-pages'","$ npm run start","send the url to your friends"]),Object.freeze(f),Object.freeze(f.prototype);const b=JSON.parse('[{"id":"default","displayName":"Default","author":"N.W."},{"id":"smooth-stone","displayName":"Smooth Stone","author":"Dav"},{"id":"murky-dive","displayName":"Murky Dive","author":"Stressed Dav"}]');var _=s.t(b,2);var g,N,S,T,y,R,I=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},L=(e,t,s)=>(I(e,t,"read from private field"),s?s.call(e):t.get(e)),w=(e,t,s,a)=>(I(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);class C{constructor(){g.set(this,void 0),N.set(this,void 0),S.set(this,void 0);const e=r.R.html("div",["_3tt0mEYF2K12deMBmuiflg"],{tabIndex:0});e.setAttribute("role","listbox"),e.addEventListener("keydown",this._onKeyDown.bind(this)),e.addEventListener("pointerenter",(t=>{window.requestAnimationFrame((t=>{e.focus()}))})),this.baseElem=e,this.options=[]}addOption(e){this.options.push(e),this.baseElem.appendChild(e.baseElem),e.baseElem.addEventListener("pointerenter",this.hoverOpt.bind(this,e)),e.baseElem.addEventListener("click",this.selectOpt.bind(this,e,!0)),e._registerParent(this._onOptDisabledChange.bind(this))}hoverOpt(e){var t;this.hoveredOpt!==e&&(null==(t=this.hoveredOpt)||t.baseElem.setAttribute("aria-active-descendant","false"),w(this,N,e),this.hoveredOpt.baseElem.setAttribute("aria-active-descendant","true"))}selectOpt(e,t=!0){var s;if(!e)throw new Error("opt must be defined");this.hoverOpt(e),this.confirmedOpt!==e&&(null==(s=this.confirmedOpt)||s.baseElem.setAttribute("aria-selected","false"),w(this,g,e),this.confirmedOpt.baseElem.setAttribute("aria-selected","true"),t&&this._onSelectOpt(e))}get confirmedOpt(){return L(this,g)}get hoveredOpt(){return L(this,N)}_onOptDisabledChange(e){this.confirmedOpt===e&&(this._isValid=!e.disabled)}set _isValid(e){this._isValid!==e&&(this.baseElem.setAttribute("aria-invalid",e?"false":"true"),w(this,S,e))}get _isValid(){return L(this,S)}_onKeyDown(e){if(" "===e.key||"Enter"===e.key)return this.selectOpt(this.hoveredOpt),e.preventDefault(),!1;{const t=this.options.indexOf(this.hoveredOpt);if("ArrowDown"===e.key||"Down"===e.key)for(let s=t+1;s=0;s--){const t=this.options[s];if(!t.disabled)return this.hoverOpt(t),e.preventDefault(),!1}}return!0}}g=new WeakMap,N=new WeakMap,S=new WeakMap,T=C||(C={}),y=new WeakMap,R=new WeakMap,T._Option=class{constructor(){y.set(this,void 0),R.set(this,void 0),(this.baseElem=r.R.html("div",["aq-ZO_N3w-UH9VTYF60rL"])).setAttribute("role","option"),w(this,y,!1)}_registerParent(e){w(this,R,e)}get disabled(){return L(this,y)}set disabled(e){this.disabled!==e&&(this.baseElem.setAttribute("aria-disabled",e?"true":"false"),w(this,y,e),L(this,R).call(this,this))}},Object.freeze(T),Object.freeze(T.prototype),Object.freeze(C),Object.freeze(C.prototype);var P,A,G=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},U=(e,t,s)=>(G(e,t,"read from private field"),s?s.call(e):t.get(e)),M=(e,t,s,a)=>(G(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);class j extends m{_lazyLoad(){s(649)("./undefined.css"),this.baseElem.classList.add("_2usroyHG0lbElLvXa_iy5"),this.baseElem.appendChild(this.nav.prev);const e=this.sel=new j.PickOne(this.top.storage.Local,this.top.transition);r.R.propNoWrite(this,"sel"),this.baseElem.appendChild(e.baseElem);const t=this.top.storage.Local.colourSchemeId;t&&this.sel.selectOpt(this.sel.getOptById(t),!1)}}!function(e){var t,s,i;const n=class extends C{constructor(e,a){var r;super(),t.set(this,void 0),s.set(this,void 0),i.set(this,void 0),M(this,t,!0),M(this,s,e),M(this,i,a),P.Schemes.forEach((e=>{this.addOption(new n.Option(e))})),this.selectOpt(this.getOptById(null!=(r=U(this,s).colourSchemeId)?r:"default"),!1)}_onHoverOpt(e){}_onSelectOpt(e){U(this,s).colourSchemeId=e.desc.id,U(this,s).colourSchemeStyleLiteral=e.cssLiteral;const r=U(this,t);M(this,t,!1),U(this,i).do({intermediateTransitionTrigger:()=>{document.documentElement.dataset[a.General.Dataset.COLOUR_SCHEME]=e.desc.id;const t=document.documentElement.style;if(r)for(const e of P.Swatch){const s="--colour-"+e;t.setProperty(s,"")}}})}getOptById(e){return this.options.find((t=>t.desc.id===e))}};let o=n;t=new WeakMap,s=new WeakMap,i=new WeakMap,e.PickOne=o,function(e){class t extends C._Option{constructor(e){super(),this.desc=e;const s=this.baseElem;s.classList.add("_2GxiPlklote2AuXecWhETZ"),s.dataset[a.General.Dataset.COLOUR_SCHEME]=e.id;const i=r.R.html("span",["_2nPC6c6ioUh-4gkJ5-JWNj"]);i.appendChild(r.R.html("div",["_3GbE2mb1TyXrO0uwR4Wbal"],{textContent:e.displayName})),i.appendChild(r.R.html("div",["_3LTv36NFPFb2DvxJ2eWKcb"],{textContent:"by "+e.author})),s.appendChild(i);for(let e=0;e{e.appendChild(r.R.html("option",[],{value:t.val.toString(),label:t.label}))})),this.baseElem.appendChild(e)}e.setAttribute("list",a.Screen.Impl.Setup.Id.LANG_WEIGHT_EXAGGERATION_LIST),this.baseElem.appendChild(e)}getRecommendedFocusElem(){return this.nav.next}_loadLastUsedPreset(){this.top.storage.Local.gamePresetId,this.top.storage.IDB.UserGamePresetStore}parseArgsFromGui(){const e=Object.assign({},z.DEFAULT_PRESET());return e.langId=this.langSel.confirmedOpt.desc.id,e.langWeightExaggeration=parseFloat(this.langWeightExaggeration.value),e}}!function(e){e.DEFAULT_PRESET=()=>({coordSys:"W_EUCLID2",gridDimensions:{height:10,width:10},averageHealthPerTile:1/45,langWeightExaggeration:1,langId:"engl-low",players:[{familyId:"CHASER",teamId:1,username:"chaser1",avatar:n.J5.Avatar.GET_RANDOM(),familyArgs:{}},{familyId:"CHASER",teamId:1,username:"chaser2",avatar:n.J5.Avatar.GET_RANDOM(),familyArgs:{fearDistance:6,bloodThirstDistance:5,healthReserve:5,keyPressesPerSecond:1.8}}]});class t extends C{constructor(){super(),this.baseElem.classList.add("_2PZpDhMzEe7lio-sMdv4SB"),Object.values(n.Uo.FrontendDescs).forEach((e=>{this.addOption(new t.Option(e))})),this.selectOpt(this.options[0])}_onHoverOpt(e){}_onSelectOpt(e){}}e.LangPickOne=t,function(e){class t extends C._Option{constructor(e){super(),this.desc=e,this.baseElem.textContent=e.displayName}}e.Option=t,Object.freeze(t),Object.freeze(t.prototype)}(t=e.LangPickOne||(e.LangPickOne={})),Object.freeze(t),Object.freeze(t.prototype)}(z||(z={})),Object.freeze(z),Object.freeze(z.prototype);class D extends z{_lazyLoad(){super._lazyLoad(),Object.freeze(this),this.nav.next.onclick=e=>{const t=this.parseArgsFromGui();this.requestGoToScreen(m.Id.PLAY_OFFLINE,[t])}}parseArgsFromGui(){const e=super.parseArgsFromGui();return e.players.splice(e.players.length,0,{familyId:"HUMAN",teamId:0,socket:void 0,username:"hello1",avatar:k.J.Avatar.LOREM_IPSUM,familyArgs:{}},{familyId:"HUMAN",teamId:1,socket:void 0,username:"hello2",avatar:k.J.Avatar.LOREM_IPSUM,familyArgs:{}}),e}}Object.freeze(D),Object.freeze(D.prototype);var x=s(892);var H,B,W,F,J=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},q=(e,t,s)=>(J(e,t,"read from private field"),s?s.call(e):t.get(e)),Y=(e,t,s,a)=>(J(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);const V=class extends m{constructor(){super(...arguments),this.playersBar=r.R.html("div",["BDHhbE0AQjge5tlj2Z3_O"]),H.set(this,void 0),B.set(this,void 0),W.set(this,void 0),F.set(this,void 0)}_lazyLoad(){this.baseElem.classList.add(a.General.Class.CENTER_CONTENTS,"_1euFnazUyfYf-c6qSiUhez");const e=V.createGridWrapper();this.grid=Object.freeze({base:e.top,implHost:e.implHost,pauseOl:e.pauseOl}),r.R.propNoWrite(this,"grid","playersBar"),r.R.Web.prependComment(this.grid.implHost,"grid impl host"),this.grid.implHost.appendChild(document.createComment("grid impl")),this.baseElem.appendChild(e.top),e.pauseOl.addEventListener("click",(e=>{const t=this.currentGame;void 0!==t&&t.status===x.l.Status.PAUSED&&(this.grid.base.focus(),this._reqStatusPlaying())})),this._initializeControlsBar(),this._initializePlayersBar(),Y(this,B,(()=>{if(this.wantsAutoPlayPause)if(document.hidden){if(void 0===q(this,F)){const e=this.currentGame;(void 0===e||void 0!==e&&e.status!==x.l.Status.OVER)&&this._reqStatusPaused()}}else"page-hide"===q(this,F)&&this._reqStatusPlaying()})),Y(this,W,this._gridKeyDownCallback.bind(this))}async _abstractOnBeforeEnter(e,t){document.addEventListener("visibilitychange",q(this,B)),this.btn.pause.disabled=!0,this._statusBecomePaused();const s=Y(this,H,await this._createNewGame(t));await s.reset(),this.grid.implHost.appendChild(s.grid.baseElem),this.btn.pause.onclick=this._reqStatusPlaying.bind(this),this.btn.pause.disabled=!1,this.wantsAutoPlayPause&&setTimeout((()=>{document.hidden||this._reqStatusPlaying()}),500),this.grid.base.addEventListener("keydown",q(this,W),{capture:!0})}_abstractOnBeforeLeave(e){if(this.askConfirmBeforeLeave&&!this.top.confirm("Are you sure you would like to leave?"))return!1;document.removeEventListener("visibilitychange",q(this,B)),this.currentGame.statusBecomeOver();for(const e of[this.currentGame.grid.baseElem])e.textContent="",e.remove();return this.grid.base.removeEventListener("keydown",q(this,W)),Y(this,H,void 0),!0}get currentGame(){return q(this,H)}get probeCurrentGame(){return q(this,H)}_gridKeyDownCallback(e){if(e.stopPropagation(),!e.isTrusted)return!0;const t=this.currentGame;if(e.ctrlKey&&" "===e.key&&!e.repeat){const e=t.operators;t.setCurrentOperator((1+e.indexOf(t.currentOperator))%e.length)}else t.currentOperator.processKeyboardInput(e);return" "!==e.key||(e.preventDefault(),!1)}_reqStatusPlaying(){this._statusBecomePlaying()}_reqStatusPaused(){this._statusBecomePaused()}_statusBecomePlaying(){this.currentGame.statusBecomePlaying(),this.btn.pause.textContent="Pause",this.grid.pauseOl.style.visibility="hidden",Y(this,F,void 0),this.btn.pause.onclick=this._reqStatusPaused.bind(this),this.btn.reset.disabled=!0,this.grid.base.focus()}_statusBecomePaused(){var e;null==(e=this.currentGame)||e.statusBecomePaused(),this.btn.pause.textContent="Unpause",this.grid.pauseOl.style.visibility="visible",Y(this,F,document.hidden?"page-hide":"other"),this.btn.pause.onclick=this._reqStatusPlaying.bind(this),this.btn.reset.disabled=!1}_onGameBecomeOver(){this.btn.pause.disabled=!0,this.btn.reset.disabled=!1}_resetGame(){this.currentGame.reset(),this.btn.pause.disabled=!1,this.wantsAutoPlayPause&&this._reqStatusPlaying()}_initializeControlsBar(){const e=r.R.html("div",[a.General.Class.CENTER_CONTENTS,a.General.Class.INPUT_GROUP,"fLS47QhRkscn0NK-vdINf"]);function t(t,s){return(s=null!=s?s:r.R.html("button")).classList.add(a.General.Class.INPUT_GROUP_ITEM),s.textContent=t,s.addEventListener("pointerenter",(e=>{s.focus()})),e.appendChild(s),s}e.setAttribute("role","menu"),e.addEventListener("pointerleave",(e=>{this.grid.base.focus()})),t("",this.nav.prev),this.btn=Object.freeze({pause:t(""),reset:t("Reset")}),r.R.propNoWrite(this,"btn"),this.btn.reset.onclick=this._resetGame.bind(this),this.baseElem.appendChild(e)}_initializePlayersBar(){r.R.propNoWrite(this),this.baseElem.appendChild(this.playersBar)}};let K=V;H=new WeakMap,B=new WeakMap,W=new WeakMap,F=new WeakMap,(K||(K={})).createGridWrapper=function(){const e=a.General.Class,t=r.R.html("div",["_2jXbc7jisQYh8dGHBjQfoB"]);t.setAttribute("role","presentation");const s=r.R.html("div",[e.TEXT_SELECT_DISABLED,"_3RnyB-FPnRJq2VQ-jJ1Fdy"],{tabIndex:0});s.setAttribute("role","textbox"),s.setAttribute("aria-label","Game Grid");const i=r.R.html("div",["_3To0VmRGhvAChHm1UecO55"]);i.setAttribute("role","presentation");const n=r.R.html("div",[e.FILL_PARENT,e.CENTER_CONTENTS,"_3RB2_LMTHSqVD3X5arzyV"],{});return n.appendChild(r.R.html("div",[],{textContent:"(Click to Unpause)"})),i.appendChild(n),s.appendChild(i),t.appendChild(s),Object.freeze({top:t,grid:s,intersectionRoot:i,implHost:i,pauseOl:n})},r.R.protoNoEnum(K,"probeCurrentGame","_statusBecomePlaying","_statusBecomePaused"),r.R.instNoEnum(K,"createGridWrapper"),Object.freeze(K),Object.freeze(K.prototype);class X extends K{constructor(){super(...arguments),this.wantsAutoPlayPause=!0,this.askConfirmBeforeLeave=!0}_lazyLoad(){super._lazyLoad(),Object.freeze(this),this.nav.prev.innerHTML="Return To Setup"}async _createNewGame(e){return new((await Promise.all([s.e(5),s.e(755)]).then(s.bind(s,303))).OfflineGame)(this._onGameBecomeOver.bind(this),e[0])}}Object.freeze(X),Object.freeze(X.prototype);var Z=s(495);var Q,$=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)};class ee extends m{constructor(){super(...arguments),Q.set(this,void 0),this.groupNameDataList=r.R.html("datalist",[],{id:a.ID.CURRENT_HOST_GROUPS})}get state(){return $(this,e=Q,"read from private field"),e.get(this);var e}_lazyLoad(){this.baseElem.classList.add(a.General.Class.CENTER_CONTENTS,"_1mSAZ0WI6Dl-lgWbZngYuh");const e=this._initFormContents();this.baseElem.appendChild(this.groupNameDataList),this.nav.prev.classList.add(a.General.Class.INPUT_GROUP_ITEM),this.nav.next.classList.add(a.General.Class.INPUT_GROUP_ITEM),e.appendChild(this.nav.prev),e.appendChild(this.nav.next),this.nav.next.onclick=e=>{this.requestGoToScreen(m.Id.GROUP_LOBBY,{})},this._setFormState(te.CHOOSING_SERVER),this.baseElem.appendChild(e)}_setFormState(e){if(this.state!==e){if(this.in.passphrase.disabled=!0,e===te.IN_GROUP){if(this.state!==te.CHOOSING_GROUP)throw new Error("never");this.nav.next.disabled=!1,this.nav.next.focus()}else this.nav.next.disabled=!0,this.in.passphrase.value="",e===te.CHOOSING_SERVER?(this.in.groupName.disabled=!0,this.in.groupName.value="",this.groupNameDataList.textContent="",this.in.serverUrl.focus()):e===te.CHOOSING_GROUP&&(this.in.groupName.disabled=!1,this.in.passphrase.disabled=!1,this.in.groupName.focus());var t,s;s=e,$(this,t=Q,"write to private field"),t.set(this,s)}}_initFormContents(){const e=r.R.html("div",[a.General.Class.INPUT_GROUP,"_3PpQNPHVO6NTNpgwU79ERL"],{});function t(t,s){const i=r.R.html("input",[a.General.Class.INPUT_GROUP_ITEM,s],{type:"text",autocomplete:"off",spellcheck:!1}),n=r.R.html("label",[],{textContent:t});return n.appendChild(i),e.appendChild(n),i}this.in=Object.freeze({serverUrl:Object.assign(t("Server URL","NgHzGx-miZPI-3fgl2oSY"),{type:"url",maxLength:128,autocomplete:"on",required:!0}),groupName:Object.assign(t("Group Name","_1JfrTGHJVK3NgMBs8AnnXZ"),{pattern:Z.ZA.Name.REGEXP.source,minLength:1,maxLength:Z.ZA.Name.MaxLength,autocomplete:"on",required:!0}),passphrase:Object.assign(t("Group Passphrase","_2tjc31lyon2RB1Ww3pt47Y"),{pattern:Z.ZA.Passphrase.REGEXP.source,maxLength:Z.ZA.Passphrase.MaxLength})}),this.in.groupName.setAttribute("list",a.ID.CURRENT_HOST_GROUPS);{this.in.serverUrl.setAttribute("list",a.ID.PUBLIC_GAME_SERVER_URLS);const e=He.SiteServerTypeSuggestedGameServer[this.top.siteServerType];if(e){const t=r.R.html("option",[],{value:e.value,textContent:e.description});document.getElementById(a.ID.PUBLIC_GAME_SERVER_URLS).insertAdjacentElement("afterbegin",t),this.in.serverUrl.value=t.value}}return r.R.propNoWrite(this,"in","groupNameDataList"),e}}Q=new WeakMap,function(e){let t;var s;(s=t=e.State||(e.State={})).CHOOSING_SERVER="choosing-server",s.CHOOSING_GROUP="choosing-group",s.IN_GROUP="in-group"}(ee||(ee={}));const te=ee.State;Object.freeze(ee),Object.freeze(ee.prototype);var se,ae,re,ie=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},ne=(e,t,s)=>(ie(e,t,"read from private field"),s?s.call(e):t.get(e)),oe=(e,t,s,a)=>(ie(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);class le extends ee{constructor(){super(...arguments),se.set(this,!1),ae.set(this,!1),re.set(this,void 0)}get isHost(){return ne(this,ae)}get ws(){return this.top.webSocket}_lazyLoad(){super._lazyLoad(),oe(this,re,(e=>{const[t,...s]=JSON.parse(e.data);switch(t){case Z.oU.Create.NAME:this._onCreateResponse(s[0]);break;case Z.oU.Exist.NAME:this._onNotifyGroupExist(s[0]);break;case Z.oU.TryJoin.NAME:this._setFormState(he.IN_GROUP);break;case Z.m4.CREATE_GAME:this.requestGoToScreen(m.Id.PLAY_ONLINE,[s[0],s[1]])}}));const e=this._initServerUrlCbs();this._initGroupNameCbs(e),this._initPassphraseCbs(),Object.seal(this)}getRecommendedFocusElem(){return void 0===this.ws?this.in.serverUrl:this.in.groupName}_initServerUrlCbs(){const e=this.top,t=this.in.serverUrl;t.addEventListener("input",(e=>{this._setFormState(he.CHOOSING_SERVER)}));const s=()=>{t.value&&t.validity.valid&&(void 0===this.ws||new URL(this.ws.url).hostname!==new URL(t.value).hostname?(this.top.setWebSocket(new WebSocket(t.value)),this.ws.addEventListener("open",(e=>{this._setFormState(he.CHOOSING_GROUP)})),this.ws.addEventListener("message",ne(this,re)),this.ws.addEventListener("close",(t=>{this.top.setWebSocket(void 0),this._setFormState(he.CHOOSING_SERVER),e.toast("You disconnected you from the server."),this.top.currentScreen!==this&&this.requestGoToScreen(m.Id.GROUP_JOINER,{})}),{once:!0})):ne(this,se)&&this._setFormState(he.CHOOSING_GROUP))};return t.addEventListener("keydown",(e=>{e.isTrusted&&"Enter"===e.key&&s()})),t.addEventListener("paste",(e=>{e.isTrusted&&window.setTimeout((()=>s()),0)})),t.addEventListener("change",(e=>{e.isTrusted&&s()})),s}_onCreateResponse(e){return e?(this.top.toast(`server accepted request to create new group "${this.in.groupName.value}".`),this.top.toast("connecting to new group..."),void this._attemptToJoinExistingGroup()):(oe(this,se,!0),void this.top.toast(`The server rejected your request to create a new group "${this.in.groupName.value}".`))}_onNotifyGroupExist(e){const t=e=>{const t=r.R.html("option",[],{value:e});for(const e of s)if(t.value.localeCompare(e.value)<0){this.groupNameDataList.insertBefore(t,e);break}return t.parentElement||this.groupNameDataList.appendChild(t),t},s=Array.from(this.groupNameDataList.children);Object.entries(e).freeze().forEach((([e,a])=>{var r;const i=null!=(r=s.find((t=>t.value===e)))?r:t(e);switch(a){case Z.oU.Exist.Status.IN_LOBBY:i.textContent="In Lobby";break;case Z.oU.Exist.Status.IN_GAME:i.textContent="In Game";break;case Z.oU.Exist.Status.DELETE:i.remove()}}))}_initGroupNameCbs(e){const t=this.in.groupName;t.addEventListener("input",(t=>{t.isTrusted&&(this.state===he.IN_GROUP&&e(),this.in.passphrase.value="",oe(this,ae,!1))}));const s=()=>{t.value&&t.validity.valid&&(this.state===he.IN_GROUP?this.nav.next.focus():this.in.passphrase.focus())};t.addEventListener("keydown",(e=>{e.isTrusted&&"Enter"===e.key&&s()})),t.addEventListener("change",(e=>{e.isTrusted&&s()}))}_initPassphraseCbs(){const e=()=>{if(!this.in.passphrase.validity.valid)return;ne(this,se)&&this._setFormState(he.IN_GROUP);const e=this.in.groupName.value;Array.from(this.groupNameDataList.children).some((t=>t.value===e))?(oe(this,ae,!1),this._attemptToJoinExistingGroup()):(oe(this,ae,!0),this.ws.send(JSON.stringify([Z.oU.Create.NAME,Object.freeze({groupName:this.in.groupName.value,passphrase:this.in.passphrase.value})])))};this.in.passphrase.addEventListener("keydown",(t=>{t.isTrusted&&"Enter"===t.key&&e()}))}_attemptToJoinExistingGroup(){this.ws.send(JSON.stringify([Z.oU.TryJoin.NAME,{groupName:this.in.groupName.value,passphrase:this.in.passphrase.value,userInfo:i.getLastUserInfo()}]))}}se=new WeakMap,ae=new WeakMap,re=new WeakMap;const he=ee.State;Object.freeze(le),Object.freeze(le.prototype);class ce extends z{_lazyLoad(){super._lazyLoad(),Object.freeze(this),this.nav.next.textContent="Start Game",this.nav.next.onclick=e=>{const t=this.parseArgsFromGui();this.top.clientIsGroupHost&&this.top.webSocket.send(JSON.stringify([Z.m4.CREATE_GAME,t]))}}}Object.freeze(ce),Object.freeze(ce.prototype);var de,pe=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},ue=(e,t,s)=>(pe(e,t,"read from private field"),s?s.call(e):t.get(e)),me=(e,t,s,a)=>(pe(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);const Ee=class extends m{constructor(){super(...arguments),this.players=new Map,this.teamsElem=r.R.html("div",["_2eDnztFQPAJnFHoqcX6Rt8"]),this.teamElems=new Map,de.set(this,void 0)}get ws(){return this.top.webSocket}_lazyLoad(){this.baseElem.classList.add("_1RjcsAfyK_99UIm77cgsi1"),this._createInputs(),me(this,de,(e=>{const[t,...s]=JSON.parse(e.data);switch(t){case Z.m4.UserInfo.NAME:this._onUserInfoChange(s[0])}})),Object.freeze(this),this.nav.prev.textContent="Return To Joiner",this.baseElem.appendChild(this.teamsElem),r.R.propNoWrite(this,"players","teamsElem","teamElems","in");{const e=this.nav.next;e.textContent="Setup Game",e.onclick=()=>{this.requestGoToScreen(m.Id.SETUP_ONLINE,{})},this.baseElem.appendChild(e)}}_createInputs(){var e;const t=r.R.html("div",[a.General.Class.INPUT_GROUP,"_2hDNOGQoaqlmP3PIE18QwQ"]),s=r.R.html("input",[a.General.Class.INPUT_GROUP_ITEM],{type:"text",minLength:1,maxLength:n.J5.Username.MAX_LENGTH,pattern:n.J5.Username.REGEXP.source,spellcheck:!1,value:null!=(e=this.top.storage.Local.username)?e:"",onchange:this._submitInputs.bind(this)});t.appendChild(s);const i=r.R.html("input",[a.General.Class.INPUT_GROUP_ITEM],{type:"number",inputMode:"numeric",min:"0",max:"0",step:"1",value:"0",onchange:this._submitInputs.bind(this)});i.classList.add(),t.appendChild(i);const o=r.R.html("select");this.in=Object.freeze({username:s,teamId:i,avatar:o}),this.baseElem.appendChild(t)}_submitInputs(){if(!this.in.username.validity.valid||!this.in.teamId.validity.valid)return;const e=this.top.storage.Local;e.username=this.in.username.value,e.avatar=this.in.avatar.value;const t={username:this.in.username.value,teamId:parseInt(this.in.teamId.value),avatar:n.J5.Avatar.LOREM_IPSUM};this.ws.send(JSON.stringify([Z.m4.UserInfo.NAME,t]))}async _abstractOnBeforeEnter(e,t){"forward"===e&&(this.nav.next.disabled=!this.top.clientIsGroupHost,this.players.clear(),this.teamElems.clear(),this.teamsElem.textContent="",this._submitInputs(),this.ws.addEventListener("message",ue(this,de)))}getRecommendedFocusElem(){let e=this.in.username.validity.valid?this.in.teamId.validity.valid?void 0:this.in.teamId:this.in.username;return void 0===e&&(e=this.top.clientIsGroupHost?this.nav.next:this.in.teamId),e}_abstractOnBeforeLeave(e){return e===m.NavDir.BACKWARD&&this.ws.removeEventListener("message",ue(this,de)),!0}_onUserInfoChange(e){Object.freeze(Object.entries(e)).forEach((([e,t])=>{const s=this.players.get(e);if(!s||1!==this.teamElems.get(s.teamId).childElementCount||null!==t&&t.teamId===s.teamId||(this.teamElems.get(s.teamId).remove(),this.teamElems.delete(s.teamId)),t&&!this.teamElems.has(t.teamId)){const e=r.R.html("div",["_1OhAwynz14tlCVrxxglqWC"]);this.teamElems.set(t.teamId,e),e.onclick=e=>{this.in.teamId.value=t.teamId.toString()},this.teamsElem.appendChild(e)}if(null===t)s.base.remove(),this.players.delete(e);else if(void 0===s){const s=new Ee.UserInfo(t);this.players.set(e,s),this.teamElems.get(t.teamId).appendChild(s.base)}else s.update(t)})),this.in.teamId.max=Object.keys(this.players).length.toString()}};let Oe=Ee;var ve,fe,be,_e;de=new WeakMap,ve=Oe||(Oe={}),fe=new WeakMap,be=new WeakMap,_e=new WeakMap,ve.UserInfo=class{constructor(e){fe.set(this,void 0),be.set(this,void 0),_e.set(this,void 0),this.base=r.R.html("div",["_2jAbJY6xTuqckSRVnOPwG4"]);const t=()=>{const e=r.R.html("div");return this.base.appendChild(e),e};this.el=Object.freeze({username:t(),teamId:t(),avatar:t()}),this.el.username.classList.add("_3esbSTakuS113N38hp7-V4"),this.username=e.username,this.teamId=e.teamId,r.R.propNoWrite(this,"base","el")}update(e){this.username=e.username,this.teamId=e.teamId,this.avatar=e.avatar}get username(){return ue(this,fe)}set username(e){this.el.username.textContent=e,me(this,fe,e)}get teamId(){return ue(this,be)}set teamId(e){this.el.teamId.textContent=e.toString(),me(this,be,e)}get avatar(){return ue(this,_e)}set avatar(e){me(this,_e,e),this.el.avatar}},r.R.protoNoEnum(Oe,"_createInputs","_submitInputs"),Object.freeze(Oe),Object.freeze(Oe.prototype);var ge,Ne=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},Se=(e,t,s)=>(Ne(e,t,"read from private field"),s?s.call(e):t.get(e));class Te extends K{constructor(){super(...arguments),this.askConfirmBeforeLeave=!1,this.wantsAutoPlayPause=!1,ge.set(this,void 0)}get ws(){return this.top.webSocket}_lazyLoad(){var e,t;super._lazyLoad(),Object.freeze(this),this.nav.prev.innerHTML="Return To Lobby",t=e=>{const[t,...s]=JSON.parse(e.data);switch(t){case Z.JD.UNPAUSE:this._statusBecomePlaying();break;case Z.JD.PAUSE:this._statusBecomePaused();break;case Z.JD.RETURN_TO_LOBBY:void 0===s[0]&&this.nav.prev.click();break;default:this.currentGame.wsMessageCb(e)}},Ne(this,e=ge,"write to private field"),e.set(this,t),Object.seal(this)}_abstractOnBeforeLeave(e){const t=super._abstractOnBeforeLeave(e);return t&&void 0!==this.ws&&(this.ws.send(JSON.stringify([Z.JD.RETURN_TO_LOBBY])),this.ws.removeEventListener("message",Se(this,ge))),t}_reqStatusPlaying(){this.ws.send(JSON.stringify([Z.JD.UNPAUSE]))}_reqStatusPaused(){this.ws.send(JSON.stringify([Z.JD.PAUSE]))}async _createNewGame(e){const[t,a]=e,r=new((await Promise.all([s.e(5),s.e(775)]).then(s.bind(s,102))).OnlineGame)(this.top.webSocket,this._onGameBecomeOver.bind(this),t,a);return this.ws.addEventListener("message",Se(this,ge)),Promise.resolve(r)}}ge=new WeakMap,Object.freeze(Te),Object.freeze(Te.prototype);var ye,Re,Ie=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},Le=(e,t,s)=>(Ie(e,t,"read from private field"),s?s.call(e):t.get(e)),we=(e,t,s,a)=>(Ie(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);class Ce{constructor(e,t){ye.set(this,void 0),Re.set(this,void 0),we(this,Re,e.transition),t.setAttribute("role","presentation");const s=m.Id,a=Object.freeze({toplevel:e,parentElem:t,goToScreen:Object.freeze(this.goToScreen.bind(this))});this.dict=Object.freeze({[s.HOME]:new O(a,s.HOME),[s.HOW_TO_PLAY]:new v(a,s.HOW_TO_PLAY),[s.HOW_TO_HOST]:new f(a,s.HOW_TO_HOST),[s.COLOUR_CTRL]:new j(a,s.COLOUR_CTRL),[s.SETUP_OFFLINE]:new D(a,s.SETUP_OFFLINE),[s.PLAY_OFFLINE]:new X(a,s.PLAY_OFFLINE),[s.GROUP_JOINER]:new le(a,s.GROUP_JOINER),[s.SETUP_ONLINE]:new ce(a,s.SETUP_ONLINE),[s.GROUP_LOBBY]:new Oe(a,s.GROUP_LOBBY),[s.PLAY_ONLINE]:new Te(a,s.PLAY_ONLINE)}),r.R.propNoWrite(this,"dict"),Object.seal(this);const i=m.NavTree[window.location.hash.slice(1)];window.setTimeout((()=>{var e;this.goToScreen(null!=(e=null==i?void 0:i.href)?e:m.Id.HOME,{})})),window.addEventListener("popstate",(e=>{this.goToScreen(window.history.state.screenId,{})}))}async goToScreen(e,t){const s=this.currentScreen,a=this.dict[e];if(s===a)throw new Error("never");we(this,ye,a);const r=m.GET_NAV_DIR({curr:null==s?void 0:s.screenId,dest:e});return!(void 0!==s&&!s._leave(r)||(await Le(this,Re).do({whileBeforeUnblur:a._enter(r,t),beforeUnblur:()=>{var t;switch(e){case m.Id.GROUP_JOINER:this.dict[m.Id.GROUP_LOBBY].lazyLoad()}null==s||s._onAfterLeave(),a._onAfterEnter(),null==(t=a.getRecommendedFocusElem())||t.focus()}}),0))}get currentScreen(){return Le(this,ye)}}ye=new WeakMap,Re=new WeakMap,Object.freeze(Ce),Object.freeze(Ce.prototype);var Pe,Ae=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},Ge=(e,t,s)=>(Ae(e,t,"read from private field"),s?s.call(e):t.get(e));class Ue{constructor(){this.baseElem=document.getElementById(a.Screen.Id.SCREEN_TINT),Pe.set(this,Promise.resolve()),this.baseElem.tabIndex=-1,this.baseElem.addEventListener("keydown",(e=>{e.preventDefault()}),{capture:!0}),r.R.propNoWrite(this,"baseElem"),Object.seal(this)}do(e){var t,s,a;return t=this,s=Pe,a=Ge(this,Pe).then((()=>this._atomicDo(e))),Ae(t,s,"write to private field"),s.set(t,a),Ge(this,Pe)}async _atomicDo(e){const t=document.activeElement;this.baseElem.focus();const s=this.baseElem.style;await this._cssTransition((function(){s.pointerEvents="all",s.opacity="1.0"})),void 0!==e.intermediateTransitionTrigger&&await this._cssTransition((()=>{e.intermediateTransitionTrigger()})),await e.whileBeforeUnblur,t instanceof HTMLElement&&t.focus(),void 0!==e.beforeUnblur&&e.beforeUnblur(),await this._cssTransition((function(){s.pointerEvents="none",s.opacity="0.0"})),this.baseElem.blur()}_cssTransition(e){return new Promise((t=>{this.baseElem.addEventListener("transitionend",(()=>t()),{once:!0}),e()}))}}Pe=new WeakMap,r.R.protoNoEnum(Ue,"_atomicDo","_cssTransition"),Object.freeze(Ue),Object.freeze(Ue.prototype);var Me,je,ke=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},ze=(e,t,s)=>(ke(e,t,"read from private field"),s?s.call(e):t.get(e)),De=(e,t,s,a)=>(ke(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s);const xe=class{constructor(){Me.set(this,void 0),je.set(this,void 0),this.defaultDocTitle=document.title,this.siteServerType=window.location.hostname.match(/github\.io/)?xe.SiteServerType.GITHUB:window.location.protocol.startsWith("file")?xe.SiteServerType.FILESYSTEM:xe.SiteServerType.DEDICATED,r.R.propNoWrite(this,"defaultDocTitle","siteServerType"),this.storage=i,De(this,je,void 0),this.transition=new Ue,r.R.propNoWrite(this,"storage","transition");const e=document.getElementById(a.Screen.Id.ALL_SCREENS);if(!e)throw new Error("never");r.R.Web.prependComment(e,"ALL SCREENS CONTAINER"),De(this,Me,new Ce(this,e)),r.R.propNoWrite(this),Object.seal(this)}get webSocket(){return ze(this,je)}setWebSocket(e){void 0!==this.webSocket&&this.webSocket.close(),De(this,je,e)}get clientIsGroupHost(){return ze(this,Me).dict["group-joiner"].isHost}toast(e){console.info(e)}confirm(e){return window.confirm(e)}get game(){var e;return null!=(e=ze(this,Me).dict["play-offline"].probeCurrentGame)?e:ze(this,Me).dict["play-online"].probeCurrentGame}get currentScreen(){return ze(this,Me).currentScreen}};let He=xe;Me=new WeakMap,je=new WeakMap,function(e){let t;var s;(s=t=e.SiteServerType||(e.SiteServerType={})).GITHUB="github",s.FILESYSTEM="filesystem",s.DEDICATED="dedicated",e.SiteServerTypeSuggestedGameServer=r.R.deepFreeze({[t.GITHUB]:void 0,[t.FILESYSTEM]:{value:"ws://localhost",description:"dev shortcut :)"},[t.DEDICATED]:{value:(()=>{const e=new URL(window.location.origin);return e.protocol="ws",e.toString()})(),description:"this page's server"}})}(He||(He={})),Object.freeze(He),Object.freeze(He.prototype),["Object","String","Number","RegExp","Date","Array","Map","Set","WeakMap","WeakSet","URL","HTMLElement","HTMLDivElement","HTMLSpanElement","HTMLPreElement","HTMLButtonElement","HTMLInputElement","HTMLSelectElement","HTMLOptionElement","HTMLScriptElement","HTMLStyleElement","HTMLLinkElement","HTMLAnchorElement","HTMLDocument","HTMLIFrameElement","HTMLCanvasElement"].forEach((e=>{Object.defineProperty(globalThis,e,{enumerable:!0,writable:!1,configurable:!1}),Object.freeze(globalThis[e]),Object.freeze(globalThis[e].prototype)}));const Be=new He,We=void 0;function Fe(){return Be.currentScreen}function Je(){return Be.game}console.info("%c🩺 welcome! 🐍","font:700 2.3em /1.5 monospace; margin:0.4em; border:0.3em solid black;padding:0.4em; color:white; background-color:#3f5e77; border-radius:0.7em; ")},649:(e,t,s)=>{var a={"./murky-dive.css":115,"./smooth-stone.css":622};function r(e){return i(e).then(s)}function i(e){return s.e(122).then((()=>{if(!s.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}))}r.keys=()=>Object.keys(a),r.resolve=i,r.id=649,e.exports=r}},0,[[811,280]]]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/client/index.js.br b/client/index.js.br index b9834fa1..a0bf2cb1 100644 Binary files a/client/index.js.br and b/client/index.js.br differ diff --git a/client/index.js.map b/client/index.js.map index b840939a..a7ead8b2 100644 --- a/client/index.js.map +++ b/client/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://snakey3/./src/base/defs/JsUtils.ts","webpack://snakey3/./src/base/defs/OmHooks.ts","webpack://snakey3/./src/base/defs/OnlineDefs.ts","webpack://snakey3/./src/base/defs/LangDefs.ts","webpack://snakey3/./src/base/defs/TypeDefs.ts","webpack://snakey3/./src/base/game/Game.ts","webpack://snakey3/./src/base/defs/StorageHooks.ts","webpack://snakey3/./src/client/screen/SkScreen.ts","webpack://snakey3/./src/client/screen/impl/Home/style.m.css?add1","webpack://snakey3/./src/client/screen/impl/Home/Screen.ts","webpack://snakey3/./src/client/screen/impl/HowToPlay.ts","webpack://snakey3/./src/client/screen/impl/HowToHost.ts","webpack://snakey3/./src/client/screen/impl/ColourCtrl/Screen.ts","webpack://snakey3/./src/client/utils/SkPickOne.ts","webpack://snakey3/./src/client/utils/skpickone.m.css?0d87","webpack://snakey3/./src/client/screen/impl/ColourCtrl/style.m.css?a640","webpack://snakey3/./src/client/screen/impl/Setup/_Screen.ts","webpack://snakey3/./src/client/screen/impl/Setup/style.m.css?a98e","webpack://snakey3/./src/client/screen/impl/Setup/Offline.ts","webpack://snakey3/./src/client/screen/impl/Play/_Screen.ts","webpack://snakey3/./src/client/screen/impl/Play/style.m.css?b975","webpack://snakey3/./src/client/screen/impl/Play/grid.m.css?61e4","webpack://snakey3/./src/client/screen/impl/Play/Offline.ts","webpack://snakey3/./src/client/screen/impl/GroupJoiner/Screen.ts","webpack://snakey3/./src/client/screen/impl/GroupJoiner/style.m.css?2673","webpack://snakey3/./src/client/screen/impl/Setup/Online.ts","webpack://snakey3/./src/client/screen/impl/GroupLobby/Screen.ts","webpack://snakey3/./src/client/screen/impl/GroupLobby/style.m.css?f07f","webpack://snakey3/./src/client/screen/impl/Play/Online.ts","webpack://snakey3/./src/client/screen/AllSkScreens.ts","webpack://snakey3/./src/client/screen/ScreenTransition.ts","webpack://snakey3/./src/client/SkSockets.ts","webpack://snakey3/./src/client/TopLevel.ts","webpack://snakey3/./src/client/index.ts","webpack://snakey3/./node_modules/.pnpm/tslib@2.0.3/node_modules/tslib/tslib.es6.js"],"names":["NO_ENUM","Object","freeze","enumerable","NO_WRITE","writable","JsUtils","Decor","_configProp","inst","propNames","descriptor","forEach","propName","defineProperty","applyMixins","derivedCtor","baseCtors","baseCtor","getOwnPropertyNames","prototype","name","getOwnPropertyDescriptor","deepFreeze","obj","key","val","_deepFreeze","NonEnumerable","access","target","propertyKey","cyclic","protoNoEnum","ctor","instNoEnum","propNoWrite","prependComment","node","commentStr","parentNode","insertBefore","document","createComment","camelCaseTransforms","camelCaseName","spaceyLowercase","replace","letter","toLowerCase","spaceyUppercase","toUpperCase","spaceyCapitalized","split","map","word","charAt","substring","join","mkEl","tagName","classNames","domProperties","el","createElement","seal","e","length","classList","add","type","rel","undefined","assign","OmHooks","General","Tile","Player","Screen","GLOBAL_IDS","PUBLIC_GAME_HOST_URLS","CURRENT_HOST_GROUPS","Class","TEXT_SELECT_DISABLED","FILL_PARENT","CENTER_CONTENTS","STACK_CONTENTS","INPUT_GROUP","INPUT_GROUP_ITEM","Dataset","COLOUR_SCHEME","HEALTH","DOWNED","KEY","VALUES","TEAM","SELF","NO","FACE_SWATCH","Impl","Id","ALL_SCREENS","SCREEN_TINT","BASE","NAV_NEXT","NAV_PREV","CURRENT","Setup","LANG_WEIGHT_EXAGGERATION_LIST","SkServer","Nsps","PROTOCOL","DEFAULT_PORT","Group","GroupEv","GameEv","Socket","Name","Passphrase","Exist","UserInfoChange","EVENT_NAME","REGEXP","MaxLength","GameServerReconnectionAttempts","DEFAULT_TTL","RequestCreate","groupName","passphrase","Status","Response","REMAP","IDENT","input","LOWER","Descs","module","export","numLeaves","remapFunc","displayName","blurb","entries","id","desc","SCROLL_INTO_CENTER","behavior","block","inline","Username","Avatar","Family","HUMAN","CHASER","NULL","MAX_LENGTH","_values","values","filter","GET_RANDOM","Math","floor","random","MoveType","NORMAL","BOOST","Lang","Seq","CharSeqPair","WeightExaggeration","RegExp","char","seq","MAX","CHAR_HIT_COUNT_SEED_CEILING","FrontendDescs","GET_FRONTEND_DESC_BY_ID","langId","Game","Type","K","HEALTH_UPDATE_CHANCE","AVERAGE_HEALTH_TO_SPAWN_ON_TILE","PORTION_OF_MOVES_THAT_ARE_BOOST","averageHealthPerTile","gridGetDiameter","patchDiameter","this","HEALTH_EFFECT_FOR_DOWNED_PLAYER","EVENT_RECORD_WRAPPING_BUFFER_LENGTH","EVENT_RECORD_FORWARD_WINDOW_LENGTH","StorageHooks","IDB","_makeSmartStorage","storage","example","smart","keys","get","getItem","JSON","parse","set","setItem","stringify","Local","localStorage","musicVolume","sfxVolume","colourSchemeId","colourSchemeStyleLiteral","gamePresetId","username","avatar","getLastUserInfo","teamId","Session","UserGamePresetStore","DB_NAME","STORE_NAME","OMHC","SkScreen","screenId","toplevel","parentElem","requestGoToScreen","screenNames","top","baseElem","nav","prev","next","textContent","onclick","ev","tree","NavTree","thisNav","href","window","history","back","navDir","args","title","defaultDocTitle","NavDir","FORWARD","location","URL","newHistoryRoot","hash","state","replaceState","pushState","_lazyLoad","appendChild","setAttribute","_abstractOnBeforeEnter","_abstractOnBeforeLeave","dataset","HOME","HOW_TO_PLAY","HOW_TO_HOST","COLOUR_CTRL","SETUP_OFFLINE","PLAY_OFFLINE","GROUP_JOINER","GROUP_LOBBY","SETUP_ONLINE","PLAY_ONLINE","GET_NAV_DIR","_args","curr","dest","BACKWARD","HomeScreen","navElem","addEventListener","activeElement","parentElement","blur","addToNav","elem","cssClass","text","requestAnimationFrame","time","focus","button","Function","a","toString","HowToPlayScreen","HowToHostScreen","INSTRUCTIONS_STEPS","Colour","SkPickOne","base","tabIndex","_onKeyDown","bind","options","opt","push","hoverOpt","selectOpt","_registerParent","_onOptDisabledChange","hoveredOpt","doCallback","Error","confirmedOpt","_onSelectOpt","_isValid","disabled","newIsValid","preventDefault","hoverOptIndex","indexOf","i","_Option","onDisabledChange","newDisabled","ColourCtrlScreen","sel","PickOne","transition","lastUsedSchemeId","getOptById","super","Schemes","schemeDesc","addOption","Option","cssLiteral","firstTime","do","intermediateTransitionTrigger","documentElement","docStyle","style","swatchName","Swatch","varString","setProperty","searchId","find","label","author","NUM_PREVIEW_SLOTS","body","computedStyle","getComputedStyle","getPropertyValue","scheme","_SetupScreen","langSel","LangPickOne","_createLangWeightExaggerationInput","_loadLastUsedPreset","lwe","langWeightExaggeration","min","max","step","value","list","tickDesc","DEFAULT_PRESET","parseFloat","coordSys","gridDimensions","height","width","averageFreeHealthPerTile","playerDescs","isALocalOperator","familyId","clientId","noCheckGameOver","familyArgs","fearDistance","bloodThirstDistance","healthReserve","keyPressesPerSecond","SetupOfflineScreen","parseArgsFromGui","splice","_PlayScreen","_gridHtml","createGridWrapper","grid","implHost","pauseOl","game","currentGame","status","_reqStatusPlaying","_initializeControlsBar","_initializePlayersBar","wantsAutoPlayPause","hidden","_reqStatusPaused","_gridKeyDownCallback","btn","pause","_statusBecomePaused","_createNewGame","reset","htmlElements","playersBar","setTimeout","capture","askConfirmBeforeLeave","confirm","removeEventListener","statusBecomeOver","remove","stopPropagation","isTrusted","ctrlKey","repeat","operators","setCurrentOperator","currentOperator","processKeyboardInput","_statusBecomePlaying","statusBecomePlaying","visibility","statusBecomePaused","controlsBar","createControlButton","buttonText","_resetGame","CSS_FX","scrollOuter","intersectionRoot","PlayOfflineScreen","innerHTML","ctorArgs","OfflineGame","_onGameBecomeOver","GroupJoinerScreen","in","contentWrapper","_initializeFormContents","huiSubmit","_initializeHostUrlHandlers","_initializeGroupNameHandlers","_initializePassphraseHandlers","contentWrapperSubmit","_setFormState","State","CHOOSING_HOST","groupSocket","hostUrl","newState","IN_GROUP","CHOOSING_GROUP","groupNameDataList","submitInput","validity","valid","gameServerUrl","io","hostname","connected","joinerSocket","disconnect","sock","sockets","joinerSocketConnect","serverUrl","on","_onNotifyGroupExist","error","toast","reason","oninput","onkeydown","onpaste","onchange","response","_attemptToJoinExistingGroup","dataList","dataListArr","Array","from","children","optElem","newOpt","otherOpt","localeCompare","makeOption","hostUrlInputSubmit","some","emit","userInfo","groupSocketConnect","currentScreen","createGenericTextInput","labelText","classStr","autocomplete","spellcheck","maxLength","required","suggestedHostDesc","SUGGEST_HOST","webpageHostType","suggestOpt","description","getElementById","insertAdjacentElement","nspsName","pattern","minLength","nspsList","pass","origin","SetupOnlineScreen","clientIsGroupHost","GroupLobbyScreen","_players","Map","_createInputs","teamsElem","teamElems","goSetup","uname","_submitInputs","inputMode","socket","parseInt","clear","off","_onUserInfoChange","once","login","groupLoginInfo","console","log","gameSocketConnect","gameCtorArgs","elemToFocus","res","socketId","childElementCount","delete","has","teamElem","UserInfo","update","mkDiv","div","newUsername","newTeamId","newAvatar","PlayOnlineScreen","gameSocket","leaveConfirmed","offAny","OnlineGame","click","Promise","resolve","AllSkScreens","t","p","g","goToScreen","dict","isr","slice","destId","currScreen","destScreen","_leave","beforeUnblurAwait","_enter","beforeUnblur","_onAfterLeave","_onAfterEnter","getRecommendedFocusElem","ScreenTransition","request","then","_atomicDo","gdStyle","_triggerCssTransition","pointerEvents","opacity","transitionTriggerFunc","reject","SkSockets","joiner","group","default","Manager","reconnectionAttempts","autoConnect","transports","_registerSocket","connect","auth","_groupSocketHelper","TypeError","_category","nspsPrefix","byeBye","warn","info","TopLevel","match","WebpageHostType","GITHUB","protocol","startsWith","FILESYSTEM","SNAKEY_SERVER","allScreensElem","groupJoiner","loginInfo","message","probeCurrentGame","Set","WeakMap","WeakSet","String","Number","HTMLElement","HTMLDivElement","HTMLSpanElement","HTMLPreElement","HTMLButtonElement","HTMLInputElement","HTMLSelectElement","HTMLOptionElement","HTMLScriptElement","HTMLStyleElement","HTMLLinkElement","HTMLAnchorElement","HTMLDocument","HTMLIFrameElement","HTMLCanvasElement","intrinsic","_top","screen","navigator","serviceWorker","register","registration","scope","err","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","result","done","apply","__classPrivateFieldGet","receiver","privateMap","__classPrivateFieldSet","create"],"mappings":"qIACA,MAAMA,EAAWC,OAAOC,OAAc,CAAEC,YAAY,IAC9CC,EAAWH,OAAOC,OAAc,CAAEG,UAAU,IAE3C,IAAUC,GAAjB,SAAiBA,GAqChB,IAAiBC,EAqEjB,SAASC,EACRC,EAASC,EAA6BC,GAEtCD,EAAUE,SAASC,IAQlBZ,OAAOa,eAAeL,EAAMI,EAAUF,MA9GxB,EAAAI,YAAhB,SAA4BC,EAAkBC,GAC7CA,EAAUL,SAASM,IAClBjB,OAAOkB,oBAAoBD,EAASE,WAAWR,SAASS,IACvDpB,OAAOa,eAAeE,EAAYI,UAAWC,EAC5CpB,OAAOqB,yBAAyBJ,EAASE,UAAWC,WAUxC,EAAAE,WAAhB,SAAgBA,EAAcC,GAE7B,OAED,SAAqBA,GACpB,IAAK,MAAMC,KAAOxB,OAAOkB,oBAAoBK,GAAM,CAClD,MAAME,EAAMF,EAAIC,GACG,iBAARC,GACVH,EAAWG,GAGbzB,OAAOC,OAAOsB,GAVdG,CAAYH,GACLA,GAcR,SAAiBjB,GAKhB,IAAiBqB,GAAjB,SAAiBA,GAMA,EAAAC,OAAhB,SACCC,EACAC,EACApB,GAEAA,EAAWR,YAAa,GAMT,EAAA6B,OAAhB,SACCF,EACAC,EACApB,GAEAA,EAAWR,YAAa,GAtB1B,CAAiByB,EAAA,EAAAA,gBAAA,EAAAA,cAAa,KAL/B,CAAiBrB,EAAA,EAAAA,QAAA,EAAAA,MAAK,KAkCN,EAAA0B,YAAhB,SACCC,KACGxB,GAKHA,EAAUE,SAASC,IAOlBZ,OAAOa,eAAeoB,EAAKd,UAAWP,EAAUb,OAMlC,EAAAmC,WAAhB,SACC1B,KACGC,GAEHF,EAAYC,EAAMC,EAAWV,IAId,EAAAoC,YAAhB,SACC3B,KACGC,GAEHF,EAAYC,EAAMC,EAAWN,IAqBd,EAAAiC,eAAhB,SAA+BC,EAAmBC,GACjDD,EAAKE,WAAYC,aAAaC,SAASC,cAAc,IAAMJ,EAAa,KAAMD,IAW/D,EAAAM,oBAAhB,SAAoCC,GACnC,MAAMC,EAAkBD,EAAcE,QAAQ,UAAWC,GAAW,IAAMA,EAAOC,gBACjF,OAAOhD,OAAOC,OAAgC,CAC7C4C,kBACAI,gBAAiBJ,EAAgBK,cACjCC,kBAAmBN,EAAgBO,MAAM,KAAKC,KAAKC,GAClDA,EAAKC,OAAO,GAAGL,cAAgBI,EAAKE,UAAU,KAC7CC,KAAK,QAgBO,EAAAC,KAAhB,SAICC,EACAC,EACAC,GAEA,MAAMC,EAAKrB,SAASsB,cAAcJ,GAClC,IAAM3D,OAAOgE,KAAKF,GAAO,MAAOG,IAiBhC,OAhBIL,EAAWM,QACdJ,EAAGK,UAAUC,OAAOR,GAGL,WAAZD,EACFG,EAAyBO,KAAO,SACX,MAAZV,IACTG,EAAyBQ,IAAM,iBAMXC,IAAlBV,GACH7D,OAAOwE,OAAOV,EAAID,GAEZC,GAzLT,CAAiBzD,MAAO,KA4LxBL,OAAOC,OAAOI,I,gDCtLGoE,E,UAAjB,SAAiBA,GAUjB,IAAiBC,EAcAC,EAMAC,EASAC,EArCJ,EAAAC,WAAoB,CAChCC,sBAAwB,yBACxBC,oBAAwB,4BAMzB,SAAiBN,GACH,EAAAO,MAAe,CAC3BC,qBAAsB,uBACtBC,YAAoB,cACpBC,gBAAoB,kBACpBC,eAAoB,iBACpBC,YAAoB,iBACpBC,iBAAoB,uBAER,EAAAC,QAAiB,CAC7BC,cAAe,kBAVjB,CAAiBf,EAAA,EAAAA,UAAA,EAAAA,QAAO,KAcxB,SAAiBC,GACH,EAAAa,QAAiB,CAC7BE,OAAQ,UAFV,CAAiBf,EAAA,EAAAA,OAAA,EAAAA,KAAI,KAMrB,SAAiBC,GACH,EAAAY,QAAiB,CAC7BG,OAAQ,CAAEC,IAAK,SAAUC,OAAe,CACvCC,KAAM,OAAQC,KAAM,OAAQC,GAAI,OAEjCC,YAAa,QALf,CAAiBrB,EAAA,EAAAA,SAAA,EAAAA,OAAM,KASvB,SAAiBC,GAahB,IAAiBqB,EAZJ,EAAAC,GAAY,CACxBC,YAAgB,wBAChBC,YAAgB,eAEJ,EAAApB,MAAe,CAC3BqB,KAAgB,YAChBC,SAAgB,sBAChBC,SAAgB,uBAEJ,EAAAhB,QAAiB,CAC7BiB,QAAgB,WAEjB,SAAiBP,GAChB,IAAiBQ,GAAjB,SAAiBA,GACH,EAAAP,GAAY,CACxBQ,8BAA+B,+CAFjC,CAAiBD,EAAA,EAAAA,QAAA,EAAAA,MAAK,KADvB,CAAiBR,EAAA,EAAAA,OAAA,EAAAA,KAAI,KAbtB,CAAiBrB,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAvCvB,CAAiBJ,MAAO,KA6DxB,eAAmBA,I,wECnEZ,MAAemC,IACtB,SAAiBA,GAOhB,IAAkBC,EANL,EAAAC,SAAW,UACX,EAAAC,aAAe,GAK5B,SAAkBF,GACjB,0BACA,+BACA,mCAHD,CAAkBA,EAAA,EAAAA,OAAA,EAAAA,KAAI,KAPvB,CAAiBD,MAAQ,KAazB5G,OAAOC,OAAO2G,GACd5G,OAAOC,OAAO2G,EAASzF,WAKhB,MAAe6F,GAoFtB,IAAkBC,EASAC,GA5FlB,SAAiBF,GAShB,IAAiBG,EAmBAC,EAKAC,EAQAC,GAhCjB,SAAiBH,GAEhB,IAAiBI,GAAjB,SAAiBA,GAKH,EAAAC,WAAa,+BAL3B,CAAiBD,EAAA,EAAAA,iBAAA,EAAAA,eAAc,KAFhC,CAAiBJ,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAmBvB,SAAiBC,GACH,EAAAK,OAAS,qBACT,EAAAC,UAAY,GAF1B,CAAiBN,EAAA,EAAAA,OAAA,EAAAA,KAAI,KAKrB,SAAiBC,GACH,EAAAI,OAAS,qBACT,EAAAC,UAAY,GAF1B,CAAiBL,EAAA,EAAAA,aAAA,EAAAA,WAAU,KAKd,EAAAM,+BAAiC,EACjC,EAAAC,YAAc,GAE3B,SAAiBN,GACH,EAAAE,WAAa,cAS1B,MAAaK,EACZ,YACiBC,EACAC,G,wFADAD,I,yFACAC,KAgBlB,IAAkBC,EAnBL,EAAAH,cAAa,EAM1B,SAAiBA,GAChB,IAAkBI,GAAlB,SAAkBA,GACjB,cACA,cAFD,CAAkBA,EAAA,EAAAA,WAAA,EAAAA,SAAQ,KAD3B,CAAiBJ,EAAA,EAAAA,gBAAA,EAAAA,cAAa,KAa9B,SAAkBG,GACjB,sBACA,oBACA,kBAHD,CAAkBA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KA7BzB,CAAiBV,EAAA,EAAAA,QAAA,EAAAA,MAAK,KAzCvB,CAAiBN,MAAK,KA6EtBhH,OAAOC,OAAO+G,GACdhH,OAAOC,OAAO+G,EAAM7F,WAKpB,SAAkB8F,GAIjB,kCAJD,CAAkBA,MAAO,KASzB,SAAkBC,GAGjB,4BAQA,qBAOA,yBAIA,qBAQA,yCA9BD,CAAkBA,MAAM,M,4EC7FxB,MAAMgB,EAAQlI,OAAOC,OAAc,CAClCkI,MAAQC,GAA0BA,EAClCC,MAAQD,GAA0BA,EAAMpF,gBAuBnCsF,EAAe,CACpB,WAAkB,CACjBC,OAAQ,UAAWC,OAAQ,YAAaC,UAAW,GACnDC,UAAWR,EAAMG,MACjBM,YAAa,6BACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,UAAWC,OAAQ,YAAaC,UAAW,GACnDC,UAAWR,EAAMC,MACjBQ,YAAa,8BACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,WAAYC,OAAQ,WAAYC,UAAW,GACnDC,UAAWR,EAAMG,MACjBM,YAAa,oBACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,WAAYC,OAAQ,WAAYC,UAAW,GACnDC,UAAWR,EAAMG,MACjBM,YAAa,oBACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,SAAUC,OAAQ,YAAaC,UAAW,KAClDC,UAAWR,EAAMC,MACjBQ,YAAa,6BACbC,MAAO,4IAIR,WAAkB,CACjBL,OAAQ,SAAUC,OAAQ,YAAaC,UAAW,MAClDC,UAAWR,EAAMC,MACjBQ,YAAa,gCACbC,MAAO,0SAMR,WAAkB,CACjBL,OAAQ,SAAUC,OAAQ,eAAgBC,UAAW,KACrDC,UAAWR,EAAMG,MACjBM,YAAa,8BACbC,MAAO,wRAMR,gBAAuB,CACtBL,OAAQ,UAAWC,OAAQ,sBAAuBC,UAAW,EAC7DC,UAAWR,EAAMC,MACjBQ,YAAa,yBACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,UAAWC,OAAQ,eAAgBC,UAAW,GACtDC,UAAYN,GAAmBA,EAC/BO,YAAa,gBACbC,MAAO,IAER,WAAkB,CACjBL,OAAQ,UAAWC,OAAQ,eAAgBC,UAAW,GACtDC,UAAWR,EAAMG,MACjBM,YAAa,gBACbC,MAAO,IAER,OAAgB,CACfL,OAAQ,SAAUC,OAAQ,SAAUC,UAAW,IAC/CC,UAAWR,EAAMG,MACjBM,YAAa,kBACbC,MAAO,IAER,OAAgB,CACfL,OAAQ,SAAUC,OAAQ,SAAUC,UAAW,IAC/CC,UAAWR,EAAMG,MACjBM,YAAa,mBACbC,MAAO,IAER,OAAgB,CACfL,OAAQ,SAAUC,OAAQ,SAAUC,UAAW,IAC/CC,UAAWR,EAAMG,MACjBM,YAAa,aACbC,MAAO,KAGT5I,OAAO6I,QAAQP,GAAO3H,SAAQ,EAAEmI,EAAGC,MAClCA,EAAKD,GAAKA,KAEXzI,EAAA,aAAmBiI,GACnB,UC5IaU,EAAqBhJ,OAAOC,OAAc,CACtDgJ,SAAU,SACVC,MAAU,SACVC,OAAU,WAQJ,MAAevE,IACtB,SAAiBA,GAmBhB,IAAiBuB,EASAiD,EAgBLC,EApCC,EAAAC,OAAStJ,OAAOC,OAAc,CAC1CsJ,MAAQ,QACRC,OAAQ,WAET,EAAAF,OAOA,SAAiBnD,GAIH,EAAAsD,UAAOlF,EAJrB,CAAiB4B,EAAA,EAAAA,KAAA,EAAAA,GAAE,KASnB,SAAiBiD,GAYH,EAAA3B,OAAS,kBACT,EAAAiC,WAAa,GAb3B,CAAiBN,EAAA,EAAAA,WAAA,EAAAA,SAAQ,KAgBzB,SAAYC,GACX,4BADD,CAAYA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAGlB,SAAiBA,GAChB,MAAMM,EAAU3J,OAAO4J,OAAOP,GAAQQ,QAAQ5F,GAAmB,iBAANA,IAG3C,EAAA6F,WAAhB,WACC,OAAOH,EAAQI,KAAKC,MAAMD,KAAKE,SAAWN,EAAQzF,UALpD,CAAiBmF,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAqBV,EAAAa,SAAWlK,OAAOC,OAAc,CAC5CkK,OAAQ,SACRC,MAAQ,UAET,EAAAF,SAxED,CAAiBtF,MAAM,KA0EvB5E,OAAOC,OAAO2E,GACd5E,OAAOC,OAAO2E,EAAOzD,WAMd,MAAekJ,IACtB,SAAiBA,GAShB,IAAiBC,EAmBAC,EAeAC,GAlCjB,SAAiBF,GAUH,EAAA7C,OAAS,IAAIgD,OAAO,8CAVlC,CAAiBH,EAAA,EAAAA,MAAA,EAAAA,IAAG,KAmBpB,SAAiBC,GAMH,EAAAd,KAAOzJ,OAAOC,OAAc,CACxCyK,KAAM,GACNC,IAAM,KARR,CAAiBJ,EAAA,EAAAA,cAAA,EAAAA,YAAW,KAe5B,SAAiBC,GAKH,EAAAI,IAAM,EALpB,CAAiBJ,EAAA,EAAAA,qBAAA,EAAAA,mBAAkB,KAWtB,EAAAK,4BAA8B,EAI9B,EAAAC,cAAgB,EASb,EAAAC,wBAAhB,SAAwCC,GACvC,OAAO,EAAAF,cAAcE,IApEvB,CAAiBX,MAAI,KAuErBrK,OAAOC,OAAOoK,GACdrK,OAAOC,OAAOoK,EAAKlJ,Y,2BC9IZ,IAAU8J,E,iBAAjB,SAAiBA,GAEhB,IAAYC,EAqFAlD,GArFZ,SAAYkD,GACX,kBACA,kBACA,oBAHD,CAAYA,EAAA,EAAAA,OAAA,EAAAA,KAAI,KAShBlL,OAAOC,OAAOiL,GA4Ed,SAAYlD,GACX,oBACA,kBACA,cAHD,CAAYA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAKlBhI,OAAOC,OAAO+H,GAKD,EAAAmD,EAAInL,OAAOC,OAAc,CAQrCmL,qBAAsB,GAQtBC,gCAAiC,EAYjCC,gCAAiC,GAYjC,qBACCC,EACAC,GASA,MACMC,EAAgBD,EADJE,KAAKL,gCAAkCE,GAczD,OALGG,KAAKL,gCAAkCI,EAKNC,KAAKJ,iCAc1CK,gCAAiC,GAUjCC,oCAAqC,GAKrCC,mCAAoC,KA/LtC,CAAiBZ,MAAI,KAsMrBjL,OAAOC,OAAOgL,I,iGC3NGa,E,yCAAjB,SAAiBA,GAsChB,IAAiBC,EAgBjB,SAASC,EAA+DC,EAAkBC,GACzF,MAAMC,EAAW,GAejB,OAdCnM,OAAOoM,KAAKF,GAAUvL,SAASa,IAE/BxB,OAAOa,eAAesL,EAAO3K,EAAK,CACjCtB,YAAY,EACZmM,IAAK,KACJ,MAAM5K,EAAMwK,EAAQK,QAAQ9K,GAC5B,OAAgB,OAARC,OAAgB8C,EAAYgI,KAAKC,MAAM/K,IAEhDgL,IAAMhL,IACLwK,EAAQS,QAAQlL,EAAK+K,KAAKI,UAAUlL,UAIvCzB,OAAOC,OAAOkM,GACPA,EAnEK,EAAAS,MAAQZ,EAAkBa,aAAc,CACpDC,YAAa,EACbC,UAAW,EAKXC,eAAgB,GAOhBC,yBAA0B,GAE1BC,aAAc,GAEdC,SAAU,GACVC,OAAQ,KAGO,EAAAC,gBAAhB,W,QACC,OAAOrN,OAAOC,OAAwB,CACrCkN,SAAwB,QAAhB,EAAE,EAAAP,MAAMO,gBAAQ,QAAI,iBAC5BG,OAAQ,EACRF,OAAoB,QAAd,EAAE,EAAAR,MAAMQ,cAAM,QAAI,4BAMb,EAAAG,QAAUvB,EAAkBa,aAAc7M,OAAOC,OAAO,KAGrE,SAAiB8L,GAOhB,IAAiByB,EAJJ,EAAAC,QAAU,WAIvB,SAAiBD,GACH,EAAAE,WAAa,kBAD3B,CAAiBF,EAAA,EAAAA,sBAAA,EAAAA,oBAAmB,KAGpCxN,OAAOC,OAAOuN,GAVf,CAAiBzB,EAAA,EAAAA,MAAA,EAAAA,IAAG,KAYpB/L,OAAOC,OAAO8L,GAlDf,CAAiBD,MAAY,KAyE7B9L,OAAOC,OAAO6L,GCxDd,MAAM6B,EAAOlJ,EAAA,eASN,MAAemJ,EAiCrB,YACCC,EACAC,EACAC,EACAC,GAnCD,uC,yDACA,0C,yDAEA,kC,yDAEA,mBAEA,uC,yDAEA,mBAEA,kC,yDAYA,gD,yDAcCtC,KAAKmC,SAAqBA,EAC1BnC,KAAKuC,YAAqB5N,EAAA,sBAA4BwN,GACtDnC,KAAKwC,IAAqBJ,GAC1B,QAAApC,KAAI,EAAsBqC,GAC1BrC,KAAKsC,kBAAqBA,EAC1BtC,KAAKyC,SAAqB9N,EAAA,OAAa,MAAO,CAACsN,EAAKrH,QACpD,QAAAoF,KAAI,GAAsB,GAC1BA,KAAK0C,IAAMpO,OAAOC,OAAO,CACxBoO,KAAMhO,EAAA,OAAa,SAAU,IAC7BiO,KAAMjO,EAAA,OAAa,SAAU,MAE9BA,EAAA,cAAoBqL,KACnB,WAAY,MAAO,WAAY,MAAO,qBAEvCA,KAAK0C,IAAIC,KAAKlK,UAAUC,IAAIuJ,EAAKnH,UACjCkF,KAAK0C,IAAIE,KAAKnK,UAAUC,IAAIuJ,EAAKpH,UACjCmF,KAAK0C,IAAIC,KAAKE,YAAc,OAC5B7C,KAAK0C,IAAIE,KAAKC,YAAc,OAG5B7C,KAAK0C,IAAIC,KAAKG,QAAWC,IACxB,MAAMC,EAAOd,EAASe,QAChBC,EAAUF,EAAKhD,KAAKmC,UACtBa,EAAKE,EAAQP,MAAMQ,OAASD,EAAQC,KACvCnD,KAAKsC,kBAAkBJ,EAASe,QAAQd,GAAUQ,KAAM,IAExDS,OAAOC,QAAQC,QAQL,OACZC,EACAC,G,qDAGA,GADAzM,SAAS0M,MAAQ,GAAGzD,KAAKuC,YAAY9K,uBAAuBuI,KAAKwC,IAAIkB,kBACjEH,IAAWrB,EAASyB,OAAOC,QAAS,CACvC,MAAMC,EAAW,IAAIT,OAAOU,IAAIV,OAAOS,SAASV,MAC1CY,EAAiBF,EAASG,KAAO9B,EAASe,QAAQjD,KAAKmC,UAAUgB,KACjEK,EAAoD,CAAC,CAAErB,SAAUnC,KAAKmC,UAAY,GAAI0B,EAASV,OAC7E,QAApB,EAAAC,OAAOC,QAAQY,aAAK,eAAE9B,YAAa4B,IAClC7B,EAASe,QAAQjD,KAAKmC,UAAUQ,OAAS3C,KAAKmC,SAEjDkB,QAAQa,gBAAgBV,GAExBH,QAAQc,aAAaX,KAInB,QAAAxD,KAAA,KACJA,KAAKoE,aACL,QAAApE,KAAA,GAAiBqE,YAAYrE,KAAKyC,UAClC9N,EAAA,iBAAuBqL,KAAKyC,SAAU,GAAGzC,KAAKuC,YAAYhL,0BAC1DyI,KAAKyC,SAAS6B,aAAa,aAActE,KAAKuC,YAAY9K,kBAAoB,YAC9E,QAAAuI,KAAI,GAAkB,UAEjBA,KAAKuE,uBAAuBhB,EAAQC,MAQpC,OAAOD,GACb,QAAIvD,KAAKwE,uBAAuBjB,GAS1B,gBACNvD,KAAKyC,SAASgC,QAAQ1L,EAAA,0BAAkC,GACxDiH,KAAKyC,SAAS6B,aAAa,cAAe,SAMpC,uBACCtE,KAAKyC,SAASgC,QAAQ1L,EAAA,0BAC7BiH,KAAKyC,SAAS6B,aAAa,cAAe,QAKpC,2BAiBS,uBACff,EACAC,G,mDAkBS,uBAAuBD,GAChC,OAAO,G,4BAIT,SAAiBrB,GAEhB,IAAYzH,EA4FMkJ,GA5FlB,SAAYlJ,GAEX,cACA,0BACA,0BACA,8BAEA,+BACA,6BAEA,6BACA,6BACA,2BACA,2BAbD,CAAYA,EAAA,EAAAA,KAAA,EAAAA,GAAE,KAgBdnG,OAAOC,OAAOkG,GA0CD,EAAAwI,QAAU3O,OAAOC,OAAc,CAC3C,CAAEkG,EAAGiK,MAAiB,CAAE/B,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGiK,MACzD,CAAEjK,EAAGkK,aAAiB,CAAEhC,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGkK,aACzD,CAAElK,EAAGmK,aAAiB,CAAEjC,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGmK,aACzD,CAAEnK,EAAGoK,aAAiB,CAAElC,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGoK,aAEzD,CAAEpK,EAAGqK,eAAiB,CAAEnC,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGqK,eACzD,CAAErK,EAAGsK,cAAiB,CAAEpC,KAAMlI,EAAGqK,cAAe3B,KAAM1I,EAAGqK,eAEzD,CAAErK,EAAGuK,cAAiB,CAAErC,KAAMlI,EAAGiK,KAAevB,KAAM1I,EAAGuK,cACzD,CAAEvK,EAAGwK,aAAiB,CAAEtC,KAAMlI,EAAGuK,aAAe7B,KAAM1I,EAAGuK,cACzD,CAAEvK,EAAGyK,cAAiB,CAAEvC,KAAMlI,EAAGwK,YAAe9B,KAAM1I,EAAGuK,cACzD,CAAEvK,EAAG0K,aAAiB,CAAExC,KAAMlI,EAAGwK,YAAe9B,KAAM1I,EAAGuK,gBAsB1D,SAAkBrB,GACjB,oBACA,sBAFD,CAAkBA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAIR,EAAAyB,YAAhB,SAA4BC,GAC3B,MAAM,KAAEC,EAAI,KAAEC,GAASF,EACvB,QAAaxM,IAATyM,EAAoB,OAAOpD,EAASyB,OAAOC,QAC/C,IAAIjB,EAAO2C,EACX,KAAO3C,IAAST,EAASe,QAAQN,GAAMA,MAEtC,GADAA,EAAYT,EAASe,QAAQN,GAAMA,KAC/BA,IAAS4C,EAAM,OAAOrD,EAASyB,OAAO6B,SAQ3C,OAAOtD,EAASyB,OAAOC,SAhHzB,CAAiB1B,MAAQ,KAmHzB5N,OAAOC,OAAO2N,GACd5N,OAAOC,OAAO2N,EAASzM,WChUvB,SAAgB,KAAO,qBAAqB,IAAM,oBAAoB,oBAAoB,kCAAkC,mBAAmB,iCAAiC,mBAAmB,iCAAiC,mBAAmB,iCAAiC,qBAAqB,mCAAmC,iBAAiB,+BAA+B,oBAAoB,mCCM7Y,MAAMgQ,UAAmBvD,EAAhC,c,oBAEC,sC,yDAKU,YACTlC,KAAKyC,SAAShK,UAAUC,IACvBK,EAAA,gCACA,QAGD,MAAM2J,EAEH1C,KAAK0F,QACL/Q,EAAA,OAAa,MAAO,CACrBoE,EAAA,qCACAA,EAAA,4BACA,QAEF2J,EAAI4B,aAAa,OAAQ,cACzB5B,EAAIiD,iBAAiB,gBAAgB,K,OACV,QAAtB,EAAA5O,SAAS6O,qBAAa,eAAEC,iBAAkBnD,GAC5C3L,SAAS6O,cAA8BE,UAG1C,MAAMC,EAAW,CAACC,EAAmB3I,KACpC2I,EAAKvN,UAAUC,IACdK,EAAA,gCACAA,EAAA,iCACAsE,EAAK4I,UAEND,EAAKnD,YAAcxF,EAAK6I,KACxBF,EAAKL,iBAAiB,gBAAgB,KACrCvC,OAAO+C,uBAAuBC,IAC7BJ,EAAKK,cAKP3D,EAAI2B,YAAY2B,IAKT,CAAC,CACRE,KAAS,wBACTD,SAAU,uBACV9D,SAAUD,EAASzH,GAAGqK,eACrB,CACDoB,KAAS,sBACTD,SAAU,sBACV9D,SAAUD,EAASzH,GAAGuK,cACrB,CACDkB,KAAS,cACTD,SAAU,sBACV9D,SAAUD,EAASzH,GAAGkK,aACrB,CACDuB,KAAS,cACTD,SAAU,sBACV9D,SAAUD,EAASzH,GAAGmK,aACrB,CACDsB,KAAS,iBACTD,SAAU,wBACV9D,SAAUD,EAASzH,GAAGoK,cAEtBlN,KAII0F,GAAS/I,OAAOC,OAAO8I,KAC3BpI,SAASoI,IACT,MAAMiJ,EAAS3R,EAAA,OAAa,SAAU,IACtC2R,EAAOxD,QAAWzF,EAAK8E,oBAAoBoE,SAAYlJ,EAAK8E,SAAW,KAGtEnC,KAAKsC,kBAAkBjF,EAAK8E,SAAyB,KAEtD4D,EAASO,EAAQjJ,MAGV,CAAC,CACR6I,KAAS,cACTD,SAAU,oBACV9C,KAAU,IAAIC,OAAOU,IAAI,0CACxB,CACDoC,KAAS,gBACTD,SAAU,uBACV9C,KAAU,IAAIC,OAAOU,IAAI,kDAEzBnM,KAII0F,GAAS/I,OAAOC,OAAO8I,KAC3BpI,SAASoI,IACT,MAAMmJ,EAAI7R,EAAA,OAAa,IAAK,GAAI,CAC/BwO,KAAO9F,EAAS,KAAEoJ,WAElBtQ,OAAQ,WAET4P,EAASS,EAAGnJ,MAGb2C,KAAKyC,SAAS4B,YAAY3B,IAG5BpO,OAAOC,OAAOkR,GACdnR,OAAOC,OAAOkR,EAAWhQ,WC9GlB,MAAMiR,UAAwBxE,EAK1B,cAIX5N,OAAOC,OAAOmS,GACdpS,OAAOC,OAAOmS,EAAgBjR,WCVvB,MAAMkR,UAAwBzE,EAK1B,eAIX,SAAiByE,GAEH,EAAAC,mBAAqBtS,OAAOC,OAAc,CACtD,iEACA,kBACA,iCALF,CAAiBoS,MAAe,KAQhCrS,OAAOC,OAAOoS,GACdrS,OAAOC,OAAOoS,EAAgBlR,W,UCmIboR,EC9IV,MAAeC,EAUrB,cARA,uC,yDAEA,sC,yDAEA,mBACA,mBACA,mBAGC,MAAMC,EAAOpS,EAAA,OAAa,MAAO,CCvBZ,0BDuB6B,CACjDqS,SAAU,IAEXD,EAAKzC,aAAa,OAAQ,WAC1ByC,EAAKpB,iBAAiB,UAAW3F,KAAKiH,WAAWC,KAAKlH,OACtD+G,EAAKpB,iBAAiB,gBAAiB5C,IACtCK,OAAO+C,uBAAuBC,IAE7BW,EAAKV,cAGPrG,KAAKyC,SAAWsE,EAEhB/G,KAAKmH,QAAU,GAGT,UAAUC,GAChBpH,KAAKmH,QAAQE,KAAKD,GAClBpH,KAAKyC,SAAS4B,YAAY+C,EAAI3E,UAC9B2E,EAAI3E,SAASkD,iBAAiB,eAAgB3F,KAAKsH,SAASJ,KAAKlH,KAAMoH,IACvEA,EAAI3E,SAASkD,iBAAiB,QAAS3F,KAAKuH,UAAUL,KAAKlH,KAAMoH,GAAK,IACtEA,EAAII,gBAAgBxH,KAAKyH,qBAAqBP,KAAKlH,OAG7C,SAASoH,G,MACXpH,KAAK0H,aAAeN,IAER,QAAf,EAAApH,KAAK0H,kBAAU,SAAEjF,SAAS6B,aAAa,yBAA0B,UACjE,QAAAtE,KAAI,EAAeoH,GACnBpH,KAAK0H,WAAWjF,SAAS6B,aAAa,yBAA0B,SAK3D,UAAU8C,EAAQO,GAAsB,G,MAC9C,IAAKP,EAAK,MAAM,IAAIQ,MAAM,uBAE1B5H,KAAKsH,SAASF,GAEVpH,KAAK6H,eAAiBT,IAER,QAAjB,EAAApH,KAAK6H,oBAAY,SAAEpF,SAAS6B,aAAa,gBAAiB,UAC1D,QAAAtE,KAAI,EAAiBoH,GACrBpH,KAAK6H,aAAapF,SAAS6B,aAAa,gBAAiB,QACrDqD,GACH3H,KAAK8H,aAAaV,IAarB,mBACC,OAAO,QAAApH,KAAA,GAER,iBACC,OAAO,QAAAA,KAAA,GAGA,qBAAqBoH,GACxBpH,KAAK6H,eAAiBT,IACzBpH,KAAK+H,UAAYX,EAAIY,UAIvB,aAAqBC,GAChBjI,KAAK+H,WAAaE,IACrBjI,KAAKyC,SAAS6B,aAAa,eAAiB2D,EAAa,QAAS,SAClE,QAAAjI,KAAI,EAAYiI,IAIlB,eACC,OAAO,QAAAjI,KAAA,GAGA,WAAW+C,GAClB,GAAe,MAAXA,EAAGjN,KAA0B,UAAXiN,EAAGjN,IAGxB,OAFAkK,KAAKuH,UAAUvH,KAAK0H,YACpB3E,EAAGmF,kBACI,EACD,CACN,MAAMC,EAAgBnI,KAAKmH,QAAQiB,QAAQpI,KAAK0H,YAChD,GAAe,cAAX3E,EAAGjN,KAAkC,SAAXiN,EAAGjN,IAChC,IAAK,IAAIuS,EAAIF,EAAgB,EAAGE,EAAKrI,KAAKmH,QAAc,OAAGkB,IAAK,CAC/D,MAAMjB,EAAMpH,KAAKmH,QAAQkB,GACzB,IAAIjB,EAAIY,SAGR,OAFAhI,KAAKsH,SAASF,GACdrE,EAAGmF,kBACI,OAEF,GAAe,YAAXnF,EAAGjN,KAAgC,OAAXiN,EAAGjN,IACrC,IAAK,IAAIuS,EAAIF,EAAgB,EAAGE,GAAK,EAAGA,IAAK,CAC5C,MAAMjB,EAAMpH,KAAKmH,QAAQkB,GACzB,IAAIjB,EAAIY,SAGR,OAFAhI,KAAKsH,SAASF,GACdrE,EAAGmF,kBACI,GAIV,OAAO,G,0CAGT,SAAiBpB,G,oCAKM,EAAAwB,QAAtB,MAIC,cAHA,uC,yDACA,mBACA,oBAEctI,KAAKyC,SAAW9N,EAAA,OAAa,MAAO,CC/IE,2BDgJ9C2P,aAAa,OAAQ,WAC1B,QAAAtE,KAAI,GAAa,GAEX,gBAAoCuI,IAC1C,QAAAvI,KAAI,EAAiCuI,GAEtC,eACC,OAAO,QAAAvI,KAAA,GAER,aAAoBwI,GACfxI,KAAKgI,WAAaQ,IACrBxI,KAAKyC,SAAS6B,aAAa,gBAAkBkE,EAAc,OAAS,UACpE,QAAAxI,KAAI,EAAawI,IACjB,QAAAxI,KAAA,QAAAA,KAAmCA,SAItC1L,OAAOC,OAAOuS,GACdxS,OAAOC,OAAOuS,EAAUrR,WA7BzB,CAAiBqR,MAAS,KA+B1BxS,OAAOC,OAAOuS,GACdxS,OAAOC,OAAOuS,EAAUrR,WD7JjB,MAAMgT,UAAyBvG,EAAtC,c,oBAEC,kC,yDAKU,YACTlC,KAAKyC,SAAShK,UAAUC,IGhBH,sBHiBrBsH,KAAKyC,SAAS4B,YAAYrE,KAAK0C,IAAIC,MAEnC,MAAM+F,EAEH1I,KAAK0I,IACL,IAAID,EAAiBE,QACtB3I,KAAKwC,IAAIjC,QAAQW,MACjBlB,KAAKwC,IAAIoG,YAEXjU,EAAA,cAAoBqL,KAA0B,OAC9CA,KAAKyC,SAAS4B,YAAYqE,EAAIjG,UAK9B,MAAMoG,EAAmB7I,KAAKwC,IAAIjC,QAAQW,MAAMI,eAC5CuH,GACH7I,KAAK0I,IAAInB,UAAUvH,KAAK0I,IAAII,WAAWD,IAAoB,KAI9D,SAAiBJ,G,UAIhB,MAAaE,UAAgB7B,EAM5B,YACCvG,EACAqI,G,MAEAG,QARD,mBACA,mBACA,oBAOC,QAAA/I,KAAI,GAAc,IAClB,QAAAA,KAAI,EAAYO,IAChB,QAAAP,KAAI,EAAe4I,GAEnB/B,EAAOmC,QAAQ/T,SAASgU,IACvBjJ,KAAKkJ,UAAU,IAAIP,EAAQQ,OAAOF,OAEnCjJ,KAAKuH,UAAUvH,KAAK8I,WACS,QADC,GAC7B,QAAA9I,KAAA,GAAcsB,sBAAc,QAAI,WAC7B,GAGE,YAAY8F,IAIZ,aAAaA,IACnB,QAAApH,KAAA,GAAcsB,eAAiB8F,EAAI/J,KAAKD,IACxC,QAAA4C,KAAA,GAAcuB,yBAA2B6F,EAAIgC,WAC7C,MAAMC,GAAY,QAAArJ,KAAA,IAClB,QAAAA,KAAI,GAAc,IAElB,QAAAA,KAAA,GAAiBsJ,GAAG,CACnBC,8BAA+B,KAC9BxS,SAASyS,gBAAgB/E,QAAQ1L,EAAA,iCAAyCqO,EAAI/J,KAAKD,GAEnF,MAAMqM,EAAW1S,SAASyS,gBAAgBE,MAC1C,GAAIL,EACH,IAAK,MAAMM,KAAc9C,EAAO+C,OAAQ,CACvC,MAAMC,EAAY,YAAcF,EAChCF,EAASK,YAAYD,EAAW,QAO9B,WAAWE,GACjB,OAAO/J,KAAKmH,QAAQ6C,MAAM5C,GAAQA,EAAI/J,KAAKD,KAAO2M,K,0CAjDvC,EAAApB,QAAO,EAoDpB,SAAiBA,GAGhB,MAAaQ,UAAerC,EAAUwB,QAMrC,YAAmBjL,GAClB0L,QALD,mC,yDAEA,yC,yDAIC/I,KAAK3C,KAAOA,EACZ,MAAM0J,EAAO/G,KAAKyC,SAClBsE,EAAKtO,UAAUC,IG3G+B,qBH4G9CqO,EAAKtC,QAAQ1L,EAAA,iCAAyCsE,EAAKD,GAE3D,MAAM6M,EAAQtV,EAAA,OAAa,OAAQ,CG9G2C,4BH+G7EsV,EAAM5F,YAAY1P,EAAA,OAAa,MAAO,CG/GoF,kCH+GvD,CAClEkO,YAAaxF,EAAKJ,eAGpBgN,EAAM5F,YAAY1P,EAAA,OAAa,MAAO,CGnH0I,mCHmH5G,CACnEkO,YAAa,MAAQxF,EAAK6M,UAE3BnD,EAAK1C,YAAY4F,GAEjB,IAAK,IAAI5B,EAAI,EAAGA,EAAIc,EAAOgB,kBAAoB,EAAG9B,IACjDtB,EAAK1C,YAAY1P,EAAA,OAAa,OAAQ,KAIvCoC,SAASqT,KAAK/F,YAAY0C,GAC1B,IAAIqC,EAAa,GACjB,MAAMiB,EAAgBjH,OAAOkH,iBAAiBvD,GAC9C,IAAK,MAAM4C,KAAc9C,EAAO+C,OAAQ,CACvC,MAAMC,EAAY,YAAcF,EAChCP,GAAcS,EAAY,IAAMQ,EAAcE,iBAAiBV,GAAa,IAE7E7J,KAAKoJ,WAAaA,GAnCP,EAAAD,OAAM,EAsCnB,SAAiBA,GAIH,EAAAgB,kBAAoB,EAJlC,CAAiBhB,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAMvB7U,OAAOC,OAAO4U,GACd7U,OAAOC,OAAO4U,EAAO1T,WAhDtB,CAAiBkT,EAAA,EAAAA,UAAA,EAAAA,QAAO,KAkDxBrU,OAAOC,OAAOoU,GACdrU,OAAOC,OAAOoU,EAAQlT,WA3GvB,CAAiBgT,MAAgB,KA6GjCnU,OAAOC,OAAOkU,GACdnU,OAAOC,OAAOkU,EAAiBhT,WAM/B,SAAiBoR,GACH,EAAA+C,OAAStV,OAAOC,OAAc,CAC1C,SAAU,SACV,SAAU,SAAU,SACpB,WAAY,WACZ,UAAW,cACX,gBAAiB,oBACjB,gBAAiB,sBAEL,EAAAyU,QAAU1U,OAAOC,OAAsB,CAAE,CACrD6I,GAAI,SACJH,YAAa,SACbiN,OAAQ,QACN,CACF9M,GAAI,eACJH,YAAa,eACbiN,OAAQ,OACN,CACF9M,GAAI,aACJH,YAAa,aACbiN,OAAQ,iBAENvS,KAAK6S,GAAWlW,OAAOC,OAAOiW,MAtBlC,CAAiB3D,MAAM,KAiCvBvS,OAAOC,OAAOsS,GIzKP,MAAe4D,UAAuFvI,EAA7G,c,oBAEC,sC,yDACA,qD,yDAKU,YACTlC,KAAKyC,SAAShK,UAAUC,IC3BH,sBD4BrBsH,KAAKyC,SAAS4B,YAAYrE,KAAK0C,IAAIC,MAInC3C,KAAK0K,QAAU,IAAID,EAAaE,YAChC3K,KAAKyC,SAAS4B,YAAYrE,KAAK0K,QAAQjI,UAEvCzC,KAAK4K,qCAELjW,EAAA,cAAoBqL,KAA2B,UAAW,0BAE1DA,KAAKyC,SAAS4B,YAAYrE,KAAK0C,IAAIE,MACnC5C,KAAK6K,sBAGE,qCACP,MAAMC,EAEH9K,KAAK+K,uBACLpW,EAAA,OAAa,QAAS,CC/CyE,mCD+C3C,CACrDgE,KAAM,QACNqS,IAAK,IACLC,IAAK,uCACLC,KAAM,MACNC,MAAO,MAET,CACC,MAAMC,EAAOzW,EAAA,OAAa,WAAY,IACtCyW,EAAKhO,GAAKrE,EAAA,qDACV,CAAC,CAAChD,IAAI,EAAEkU,MAAM,KAAM,CAAClU,IAAI,EAAEkU,MAAM,MAAMhV,SAASoW,IAC/CD,EAAK/G,YAAY1P,EAAA,OAAa,SAAU,GAAI,CAC3CwW,MAAOE,EAAStV,IAAI0Q,WACpBwD,MAAOoB,EAASpB,YAGlBjK,KAAKyC,SAAS4B,YAAY+G,GAE3BN,EAAIxG,aAAa,OAAQvL,EAAA,sDACzBiH,KAAKyC,SAAS4B,YAAYyG,GAMpB,0BACN,OAAO9K,KAAK0C,IAAIE,KAMT,sBAEkB5C,KAAKwC,IAAIjC,QAAQW,MAAMM,aASvC,mBAET,MAAMgC,EACHlP,OAAOwE,OAAO,GAAI2R,EAAaa,kBAIlC,OAFA9H,EAAKlE,OAASU,KAAK0K,QAAQ7C,aAAaxK,KAAKD,GAC7CoG,EAAKuH,uBAAyBQ,WAAWvL,KAAK+K,uBAAuBI,OAC9D3H,IAGT,SAAiBiH,GAEH,EAAAa,eAAiB,KAA8D,CAC3FE,SAAU,UACVC,eAAgB,CACfC,OAAQ,GACRC,MAAQ,IAETC,yBAA0B,EAAM,GAChCb,uBAAwB,EACxBzL,OAAQ,WACRuM,YAAgE,CAAC,CAChEC,kBAAkB,EAClBC,SAAY,SACZnK,OAAY,EACZoK,cAAYnT,EACZ4I,SAAY,UACZC,YAAY7I,EACZoT,iBAAiB,EACjBC,WAAY,IACV,CACFJ,kBAAkB,EAClBC,SAAY,SACZnK,OAAY,EACZoK,cAAYnT,EACZ4I,SAAY,UACZC,YAAY7I,EACZoT,iBAAiB,EACjBC,WAAY,CACXC,aAAc,EACdC,oBAAqB,EACrBC,cAAe,EACfC,oBAAqB,SAMxB,MAAa3B,UAAoB7D,EAChC,cACCiC,QACA/I,KAAKyC,SAAShK,UAAUC,IC7I4B,0BD8IpDpE,OAAO4J,OAAO,oBAAoBjJ,SAASoI,IAC1C2C,KAAKkJ,UAAU,IAAIyB,EAAYxB,OAAO9L,OAEvC2C,KAAKuH,UAAUvH,KAAKmH,QAAQ,IAEtB,YAAYC,IAGZ,aAAaA,KAZR,EAAAuD,YAAW,EAgBxB,SAAiBA,GAGhB,MAAaxB,UAAerC,EAAUwB,QAIrC,YAAmBjL,GAClB0L,QAHD,mC,yDAIC/I,KAAK3C,KAAOA,EACZ2C,KAAKyC,SAASI,YAAcxF,EAAKJ,aAPtB,EAAAkM,OAAM,EAUnB7U,OAAOC,OAAO4U,GACd7U,OAAOC,OAAO4U,EAAO1T,WAdtB,CAAiBkV,EAAA,EAAAA,cAAA,EAAAA,YAAW,KAtD7B,CAAiBF,MAAY,KAuE7BnW,OAAOC,OAAOkW,GACdnW,OAAOC,OAAOkW,EAAahV,WEhKpB,MAAM8W,UAA2B9B,EAE7B,YACT1B,MAAM3E,YAENpE,KAAK0C,IAAIE,KAAKE,QAAWC,IACxB,MAAMS,EAAOxD,KAAKwM,mBAClBxM,KAAKsC,kBAAkBJ,EAASzH,GAAGsK,aAAcvB,IAIzC,mBAET,MAAMA,EAAOuF,MAAMyD,mBAsBnB,OAnBChJ,EAAKqI,YAAsBY,OAAOjJ,EAAKqI,YAAYrT,OAAQ,EAAG,CAC9DsT,kBAAkB,EAClBC,SAAY,QACZnK,OAAY,EACZoK,cAAYnT,EACZ4I,SAAY,SACZC,YAAY7I,EACZoT,iBAAiB,EACjBC,WAAY,IACV,CACFJ,kBAAkB,EAClBC,SAAY,QACZnK,OAAY,EACZoK,cAAYnT,EACZ4I,SAAY,SACZC,YAAY7I,EACZoT,iBAAiB,EACjBC,WAAY,KAEN1I,GAKTlP,OAAOC,OAAOgY,GACdjY,OAAOC,OAAOgY,EAAmB9W,W,yBCpC1B,MAAeiX,UAIZxK,EAJV,c,oBASC,mC,yDAOA,yC,yDAEA,kC,yDAsBA,mBAEA,iD,yDAEA,oD,yDAKA,mBAKA,mBAIA,mBAMU,YACTlC,KAAKyC,SAAShK,UAAUC,IACvBK,EAAA,gCCnFoB,sBDuFrB,MAAM4T,EAAYD,EAAYE,oBAE9B5M,KAAK6M,KAAOvY,OAAOC,OAAO,CACzBwS,KAAM4F,EAAUnK,IAChBsK,SAAUH,EAAUG,SACpBC,QAASJ,EAAUI,UAEpBpY,EAAA,cAAoBqL,KAA4B,QAChDrL,EAAA,iBAAuBqL,KAAK6M,KAAKC,SAAU,kBAC3C9M,KAAK6M,KAAKC,SAASzI,YAAYtN,SAASC,cAAc,cAEtDgJ,KAAKyC,SAAS4B,YAAYsI,EAAUnK,KACpCmK,EAAUI,QAAQpH,iBAAiB,SAAU5C,IAC5C,MAAMiK,EAAOhN,KAAKiN,iBACLpU,IAATmU,GAAsBA,EAAKE,SAAW3N,EAAA,kBACzCS,KAAK6M,KAAK9F,KAAKV,QACfrG,KAAKmN,wBAsBPnN,KAAKoN,yBACLpN,KAAKqN,yBAGL,QAAArN,KAAI,GAAuB,KAC1B,GAAKA,KAAKsN,mBACV,GAAIvW,SAASwW,QACZ,QAA0B1U,KAAtB,QAAAmH,KAAA,GAAiC,CACpC,MAAMgN,EAAOhN,KAAKiN,kBACLpU,IAATmU,QAAgCnU,IAATmU,GAAsBA,EAAKE,SAAW3N,EAAA,gBAChES,KAAKwN,wBAImB,eAAtB,QAAAxN,KAAA,IAAqCA,KAAKmN,wBAIhD,QAAAnN,KAAI,EAAkBA,KAAKyN,qBAAqBvG,KAAKlH,OAMtC,uBACfuD,EACAC,G,+CAEAzM,SAAS4O,iBAAiB,oBAAoB,QAAA3F,KAAA,IAC9CA,KAAK0N,IAAIC,MAAM3F,UAAW,EAC1BhI,KAAK4N,sBAEL,MAAMZ,GAAO,QAAAhN,KAAI,QAAsBA,KAAK6N,eAC3CrK,UAEKwJ,EAAKc,QAIX9N,KAAK6M,KAAKC,SAASzI,YAAY2I,EAAKe,aAAalB,MACjD7M,KAAKgO,WAAW3J,YAAY2I,EAAKe,aAAaC,YAG9ChO,KAAK0N,IAAIC,MAAM7K,QAAU9C,KAAKmN,kBAAkBjG,KAAKlH,MACrDA,KAAK0N,IAAIC,MAAM3F,UAAW,EACtBhI,KAAKsN,oBACRW,YAAW,KACLlX,SAASwW,QAAUvN,KAAKmN,sBAC3B,KAGJnN,KAAK6M,KAAK9F,KAAKpB,iBAAiB,WAAW,QAAA3F,KAAA,GAAqB,CAG/DkO,SAAS,OAOD,uBAAuB3K,GAChC,GAAIvD,KAAKmO,wBAA0BnO,KAAKwC,IAAI4L,QAAQ,yCACnD,OAAO,EAERrX,SAASsX,oBAAoB,oBAAoB,QAAArO,KAAA,IAKjDA,KAAKiN,YAAYqB,mBACjB,IAAK,MAAMtI,KAAQ1R,OAAO4J,OAAO8B,KAAKiN,YAAYc,cAIjD/H,EAAKnD,YAAc,GACnBmD,EAAKuI,SAIN,OAFAvO,KAAK6M,KAAK9F,KAAKsH,oBAAoB,WAAW,QAAArO,KAAA,KAC9C,QAAAA,KAAI,OAAgBnH,IACb,EAIR,kBACC,OAAO,QAAAmH,KAAA,GAMR,uBACC,OAAO,QAAAA,KAAA,GAiBA,qBAAqB+C,GAE5B,GADAA,EAAGyL,mBACEzL,EAAG0L,UAAW,OAAO,EAC1B,MAAMzB,EAAOhN,KAAKiN,YAClB,GAAIlK,EAAG2L,SAAsB,MAAX3L,EAAGjN,MAAgBiN,EAAG4L,OAAQ,CAM/C,MAAMC,EAAY5B,EAAK4B,UACvB5B,EAAK6B,oBACH,EAAID,EAAUxG,QAAQ4E,EAAK8B,kBAC1BF,EAAUpW,aAMbwU,EAAK8B,gBAAgBC,qBAAqBhM,GAE3C,MAAe,MAAXA,EAAGjN,MAENiN,EAAGmF,kBACI,GAKC,oBACTlI,KAAKgP,uBAGI,mBACThP,KAAK4N,sBAGI,uBACT5N,KAAKiN,YAAYgC,sBACjBjP,KAAK0N,IAAIC,MAAM9K,YAAc,QAC7B7C,KAAK6M,KAAKE,QAAQrD,MAAMwF,WAAa,UACrC,QAAAlP,KAAI,OAAgBnH,GAEpBmH,KAAK0N,IAAIC,MAAM7K,QAAU9C,KAAKwN,iBAAiBtG,KAAKlH,MACpDA,KAAK0N,IAAII,MAAM9F,UAAW,EAE1BhI,KAAK6M,KAAK9F,KAAKV,QAGN,sB,MACO,QAAhB,EAAArG,KAAKiN,mBAAW,SAAEkC,qBAClBnP,KAAK0N,IAAIC,MAAM9K,YAAc,UAC7B7C,KAAK6M,KAAKE,QAAQrD,MAAMwF,WAAa,WACrC,QAAAlP,KAAI,EAAgBjJ,SAASwW,OAAS,YAAc,SAEpDvN,KAAK0N,IAAIC,MAAM7K,QAAU9C,KAAKmN,kBAAkBjG,KAAKlH,MACrDA,KAAK0N,IAAII,MAAM9F,UAAW,EAMjB,oBACThI,KAAK0N,IAAIC,MAAM3F,UAAW,EAC1BhI,KAAK0N,IAAII,MAAM9F,UAAW,EAQjB,aACThI,KAAKiN,YAAYa,QACjB9N,KAAK0N,IAAIC,MAAM3F,UAAW,EACtBhI,KAAKsN,oBACRtN,KAAKmN,oBAQC,yBACP,MAAMiC,EAAcza,EAAA,OAAa,MAAO,CACvCoE,EAAA,gCACAA,EAAA,4BCjUoG,+BDsUrG,SAASsW,EACRC,EACAhJ,GAWA,OATAA,EAASA,UAAU3R,EAAA,OAAa,SAAU,KAGnC8D,UAAUC,IAAIK,EAAA,kCACrBuN,EAAOzD,YAAcyM,EACrBhJ,EAAOX,iBAAiB,gBAAiB5C,IACxCuD,EAAQD,WAET+I,EAAY/K,YAAYiC,GACjBA,EAfR8I,EAAY9K,aAAa,OAAQ,QAiBjC8K,EAAYzJ,iBAAiB,gBAAiB5C,IAC7C/C,KAAK6M,KAAK9F,KAAKV,WAGFgJ,EAAoB,qBAAsBrP,KAAK0C,IAAIC,MAIjE3C,KAAK0N,IAAMpZ,OAAOC,OAAO,CACxBoZ,MAAO0B,EAAoB,IAC3BvB,MAAOuB,EAAoB,WAE5B1a,EAAA,cAAoBqL,KAA4B,OAChDA,KAAK0N,IAAII,MAAMhL,QAAU9C,KAAKuP,WAAWrI,KAAKlH,MAE9CA,KAAKyC,SAAS4B,YAAY+K,GAGnB,wBACP,MAAMpB,EAEHhO,KAAKgO,WACLrZ,EAAA,OAAa,MAAO,CC3WyH,8BD4WhJA,EAAA,cAAoBqL,KAA4B,cAChDA,KAAKyC,SAAS4B,YAAY2J,I,wDAG5B,SAAiBtB,GAGA,EAAAE,kBAAhB,WAOC,MAAM4C,EAASzW,EAAA,gBACTgO,EAAOpS,EAAA,OAAa,MAAO,CC3XwB,+BD4XzDoS,EAAKzC,aAAa,OAAQ,gBAE1B,MAAMuI,EAAOlY,EAAA,OAAa,MAAO,CAGhC6a,EAAOhW,qBEjYa,qBFmYlB,CAAEwN,SAAU,IACf6F,EAAKvI,aAAa,OAAQ,WAC1BuI,EAAKvI,aAAa,aAAc,aAGhC,MAAMmL,EAAc9a,EAAA,OAAa,MAAO,CExYgB,8BF4YxD8a,EAAYnL,aAAa,OAAQ,gBAEjC,MAAMyI,EAAUpY,EAAA,OAAa,MAAO,CACnC6a,EAAO/V,YACP+V,EAAO9V,gBEhZ4F,8BFkZjG,IAeH,OAdAqT,EAAQ1I,YAAY1P,EAAA,OAAa,MAAO,GAAI,CAC3CkO,YAAa,wBAEd4M,EAAYpL,YAAY0I,GASxBF,EAAKxI,YAAYoL,GACjB1I,EAAK1C,YAAYwI,GACVvY,OAAOC,OAAyD,CACtEiO,IAAKuE,EACL8F,OACA6C,iBAAkBD,EAClB3C,SAAU2C,EACV1C,QAASA,KAtDZ,CAAiBL,MAAW,KA0D5B/X,EAAA,cAAoB+X,EACnB,mBACA,uBAAwB,uBAEzB/X,EAAA,aAAmB+X,EAAa,qBAChCpY,OAAOC,OAAOmY,GACdpY,OAAOC,OAAOmY,EAAYjX,WGvanB,MAAMka,UAA0BjD,EAAvC,c,oBAWC,iD,iDAAwC,IAIxC,oD,iDAA2C,IAKjC,YACT3D,MAAM3E,YACNpE,KAAK0C,IAAIC,KAAKiN,UAAY,uBAOX,eAAeC,G,+CAE9B,OAAO,WAAW,8DAGfC,aAAY9P,KAAK+P,kBAAkB7I,KAAKlH,MAAO6P,OAGpDvb,OAAOC,OAAOob,GACdrb,OAAOC,OAAOob,EAAkBla,W,qBCnCzB,MAAMua,UAA0B9N,EAAvC,c,oBAEC,mBAEA,iC,yDAKA,gD,yDAEA,YAA8B,GAC9B,wBACC,OAAO,QAAAlC,KAAA,GAKR,gBACC,QAAgBnH,IAAZmH,KAAKiQ,GACR,MAAM,IAAIrI,MAAM,SAEjB,OAAOtT,OAAOC,OAAO,CACpBmB,KAAMsK,KAAKiQ,GAAG7T,UAAU+O,MACxB9O,WAAY2D,KAAKiQ,GAAG5T,WAAW8O,QAOvB,YACTnL,KAAKyC,SAAShK,UAAUC,IACvBK,EAAA,gCC7CoB,sBDgDrB,MAAMmX,EAAiBlQ,KAAKmQ,0BACtBC,EAAYpQ,KAAKqQ,6BACvBrQ,KAAKsQ,6BAA6BF,GAClCpQ,KAAKuQ,gCAGLvQ,KAAK0C,IAAIE,KAAKE,QAAWC,IAGxByN,KAED,MAAMA,EAAuB,KAG5BxQ,KAAKsC,kBAAkBJ,EAASzH,GAAGwK,YAAa,KAEjDjF,KAAKyQ,cAAcC,EAAMC,eACzB3Q,KAAKyC,SAAS4B,YAAY6L,GAMpB,0BACN,YAA6BrX,IAArBmH,KAAK4Q,YAA6B5Q,KAAKiQ,GAAG7T,UAAY4D,KAAKiQ,GAAGY,QAGvE,YACC,OAAO,QAAA7Q,KAAA,GAQA,cAAc8Q,GACrB,GAAI9Q,KAAKiE,QAAU6M,EAAnB,CAEA,GAAIA,IAAaJ,EAAMK,SAAU,CAChC,GAAI/Q,KAAKiE,QAAUyM,EAAMM,eACxB,MAAM,IAAIpJ,MAAM,SAEjB5H,KAAKiQ,GAAG5T,WAAW2L,UAAW,EAC9BhI,KAAK0C,IAAIE,KAAKoF,UAAW,EACzBhI,KAAK0C,IAAIE,KAAKyD,aAGdrG,KAAK0C,IAAIE,KAAKoF,UAAW,EACzBhI,KAAKiQ,GAAG5T,WAAW8O,MAAQ,GAEvB2F,IAAaJ,EAAMC,eACtB3Q,KAAKiQ,GAAG7T,UAAU4L,UAAc,EAChChI,KAAKiQ,GAAG7T,UAAU+O,MAAc,GAEhCnL,KAAKiR,kBAAkBpO,YAAc,GACrC7C,KAAKiQ,GAAG5T,WAAW2L,UAAa,EAChChI,KAAKiQ,GAAGY,QAAQxK,SAENyK,IAAaJ,EAAMM,iBAC7BhR,KAAKiQ,GAAG7T,UAAU4L,UAAc,EAChChI,KAAKiQ,GAAG5T,WAAW2L,UAAa,GAChC,QAAAhI,KAAI,GAA4B,GAChCA,KAAKiQ,GAAG7T,UAAUiK,UAGpB,QAAArG,KAAI,EAAU8Q,IAKP,6BACP,MAAMtO,EAAMxC,KAAKwC,IACX9F,EAAQsD,KAAKiQ,GAAGY,QAChBK,EAAc,KAA2B,wC,QAE9C,IAAKxU,EAAMyO,QAAUzO,EAAMyU,SAASC,MAAO,OAQ3C,MAAMC,EAAgB,IAAIjO,OAAOU,IAAIpH,EAAMyO,OAC3C,IAAoB,QAAhB,EAAAnL,KAAK4Q,mBAAW,eAAEU,GAAU,KAAEC,YAAaF,EAAcE,SAM5D,YALIvR,KAAK4Q,YAAaY,WACrBxR,KAAKyQ,cAAcC,EAAMM,iBAMV,QAAjB,EAAAhR,KAAKyR,oBAAY,SAAEC,aACnB,MAAMC,QAAa3R,KAAKwC,IAAIoP,QAAQC,oBAAoB,CACvDC,UAAWT,IACRM,EACHI,GAAG,WAAW,KACd/R,KAAKyQ,cAAcC,EAAMM,gBAEzBW,EAAKI,GAAG,sBAAwB/R,KAAKgS,oBAAoB9K,KAAKlH,UAE9D+R,GAAG,iBAAkBE,IACrBjS,KAAKwC,IAAI0P,MAAM,mDAEfH,GAAG,cAAeI,IACH,yBAAXA,IACHnS,KAAKyQ,cAAcC,EAAMC,eACzBjU,EAAMyO,MAAQ,GACd3I,EAAI0P,MAAM,6DAeb,OAVAxV,EAAM0V,QAAWrP,GAAO/C,KAAKyQ,cAAcC,EAAMC,eACjDjU,EAAM2V,UAAatP,IAAaA,EAAG0L,WAAwB,UAAX1L,EAAGjN,KAClDob,KAEDxU,EAAM4V,QAAWvP,IACZA,EAAG0L,WAAWrL,OAAO6K,YAAW,IAAMiD,KAAe,IAE1DxU,EAAM6V,SAAYxP,IACbA,EAAG0L,WAAWyC,KAEZA,EAIA,oBAAoBsB,GAC3B,GAAIA,IAAa,uCAGhB,YAFAxS,KAAKwC,IAAI0P,MACP,2DAAyBlS,KAAKiQ,GAAG7T,UAAU+O,WAG9C,GAAIqH,IAAa,uCAIhB,OAHAxS,KAAKwC,IAAI0P,MAAM,gDAAiDlS,KAAKiQ,GAAG7T,UAAU+O,WAClFnL,KAAKwC,IAAI0P,MAAM,mCACflS,KAAKyS,8BAGN,MAeMC,EAAW1S,KAAKiR,kBAChB0B,EAAcC,MAAMC,KAAKH,EAASI,UACxCxe,OAAO6I,QAAQqV,GAAUvd,SAAQ,EAAEmH,EAAW8Q,MAC7C,MAAM6F,EACHJ,EAAY3I,MAAM5C,GAA2BA,EAAI+D,QAAU/O,KAnB5C,CAACA,IAGnB,MAAM4W,EAASre,EAAA,OAAa,SAAU,GAAI,CAAEwW,MAAO/O,IACnD,IAAK,MAAM6W,KAAYN,EACtB,GAAIK,EAAO7H,MAAM+H,cAAcD,EAAS9H,OAAS,EAAG,CACnDuH,EAAS5b,aAAakc,EAAQC,GAC9B,MAMF,OAHKD,EAAOnN,eACX6M,EAASrO,YAAY2O,GAEfA,GAOHG,CAAW/W,GACf,OAAQ8Q,GACR,KAAK,2BACJ6F,EAAQlQ,YAAc,WACtB,MACD,KAAK,0BACJkQ,EAAQlQ,YAAc,UACtB,MACD,KAAK,yBACJkQ,EAAQxE,aAQH,6BAA6B6E,GACpC,MAAM1W,EAAQsD,KAAKiQ,GAAG7T,UAChB8U,EAAc,KACdxU,EAAMyO,OAAUzO,EAAMyU,SAASC,QAChCpR,KAAKiE,QAAUyM,EAAMK,SACxB/Q,KAAK0C,IAAIE,KAAKyD,QAEdrG,KAAKiQ,GAAG5T,WAAWgK,UAGrBrG,KAAKiQ,GAAG7T,UAAUgW,QAAiBrP,IAAO,wCACpCA,EAAG0L,YACJzO,KAAKiE,QAAUyM,EAAMK,iBAClBqC,KAGPpT,KAAKiQ,GAAG5T,WAAW8O,MAAQ,IAC3B,QAAAnL,KAAI,GAAsB,OAE3BtD,EAAM2V,UAAatP,IACdA,EAAG0L,WAAwB,UAAX1L,EAAGjN,KAAiBob,KAEzCxU,EAAM6V,SAAYxP,IACbA,EAAG0L,WAAWyC,KAMZ,gCACP,MAAMA,EAAc,KAA2B,wCAC9C,GAAKlR,KAAKiQ,GAAG5T,WAAW8U,SAASC,MAEjC,YAAyBvY,IAArBmH,KAAK4Q,aACL5Q,KAAK4Q,YAAiB,MAAM,6BAAmC5Q,KAAKiQ,GAAG7T,UAAU+O,MAEhFnL,KAAK4Q,YAAaY,WACrBxR,KAAKyQ,cAAcC,EAAMK,eACzB/Q,KAAK0C,IAAIE,KAAKyD,cAGd,OAImBuM,MAAMC,KAAK7S,KAAKiR,kBAAkB6B,UACrDO,MAAMjM,GAAQA,EAAI+D,QAAUnL,KAAKiQ,GAAG7T,UAAU+O,UAE/C,QAAAnL,KAAI,GAAsB,GAC1BA,KAAKyS,iCAEL,QAAAzS,KAAI,GAAsB,GAC1BA,KAAKyR,aAAc6B,KAAK,sBACvB,IAAI,yBACHtT,KAAKiQ,GAAG7T,UAAU+O,MAClBnL,KAAKiQ,GAAG5T,WAAW8O,aAKvBnL,KAAKiQ,GAAG5T,WAAWgW,UAAatP,IAAaA,EAAG0L,WAAwB,UAAX1L,EAAGjN,KAC/Dob,KAOM,8B,MACS,QAAhB,EAAAlR,KAAK4Q,mBAAW,SAAEc,aAClB,MAAMlP,EAAMxC,KAAKwC,IACX+Q,EAAWnT,EAAauB,kBACjB3B,KAAKwC,IAAIoP,QAAQ4B,mBAC7BxT,KAAKiQ,GAAG7T,UAAU+O,MAAO,CACxB9O,WAAY2D,KAAKiQ,GAAG5T,WAAW8O,MAC/BoI,aAGDxB,GAAG,WAAW,KACd/R,KAAKyQ,cAAcC,EAAMK,aAEzBgB,GAAG,iBAAkBE,IACrBjS,KAAKyQ,cAAcC,EAAMM,gBACzBxO,EAAI0P,MAAM,gDAEVH,GAAG,cAAeI,IAClBnS,KAAKyQ,cAAcC,EAAMM,gBACV,yBAAXmB,IACH3P,EAAI0P,MAAM,gDACNlS,KAAKwC,IAAIiR,gBAAkBzT,KAC9BA,KAAKsC,kBAAkBJ,EAASzH,GAAGuK,aAAc,IAEjDhF,KAAKiQ,GAAG5T,WAAWgK,YAMvB,mBACC,OAAOrG,KAAKwC,IAAIoP,QAAQH,aAEzB,kBACC,OAAOzR,KAAKwC,IAAIoP,QAAQhB,YAMjB,0BAEP5Q,KAAKiQ,GAAK,GACV,MAAMC,EAAiBvb,EAAA,OAAa,MAAiB,CACpDoE,EAAA,4BCjV2D,iCDmVzD,IAOH,SAAS2a,EAAuBC,EAAmBC,GAClD,MAAMlX,EAAQ/H,EAAA,OAAa,QAAS,CAACoE,EAAA,iCAAwC6a,GAAW,CACvFjb,KAAM,OACNkb,aAAc,MACdC,YAAY,IAGP7J,EAAQtV,EAAA,OAAa,QAAS,GAAI,CAAEkO,YAAa8Q,IAGvD,OAFA1J,EAAM5F,YAAY3H,GAClBwT,EAAe7L,YAAY4F,GACpBvN,EAbRsD,KAAK0C,IAAIC,KAAKlK,UAAUC,IAAIK,EAAA,kCAC5BmX,EAAe7L,YAAYrE,KAAK0C,IAAIC,MAanC,CAEA,MAAMkO,EAAU7Q,KAAKiQ,GAAGY,QACtBvc,OAAOwE,OAAO4a,EAAuB,WCxW+D,0BDwWJ,CACjG/a,KAAM,MACNob,UAAW,IACXF,aAAc,KACdG,UAAU,IAEXnD,EAAQvM,aAAa,OAAQvL,EAAA,oCAC7B,MAAMkb,EAAoBjE,EAAkBkE,aAAalU,KAAKwC,IAAI2R,iBAClE,GAAIF,EAAmB,CACtB,MAAMG,EAAazf,EAAA,OAAa,SAAU,GAAI,CAC7CwW,MAAO8I,EAAkB9I,MACzBtI,YAAaoR,EAAkBI,cAEftd,SAASud,eAAevb,EAAA,oCAChCwb,sBAAsB,aAAcH,GAC7CvD,EAAQ1F,MAAQiJ,EAAWjJ,OAE5B,CAEA,MAAMqJ,EAAWxU,KAAKiQ,GAAG7T,UACvB9H,OAAOwE,OAAO4a,EAAuB,aC5XqG,4BD6XjH,CAC1Be,QAAS,wBACTC,UAAW,EACXX,UAAW,oBACXF,aAAc,KACdG,UAAU,IAELW,EAEH3U,KAAKiR,kBACLtc,EAAA,OAAa,WAAY,GAAI,CAAEyI,GAAIrE,EAAA,mCACtCiH,KAAKyC,SAAS4B,YAAYsQ,GAC1BH,EAASlQ,aAAa,OAAQqQ,EAASvX,IACvC,CACA,MAAMwX,EAEH5U,KAAKiQ,GAAG5T,WACRqX,EAAuB,mBC9Y0J,4BD+YpLkB,EAAKH,QAAY,8BACjBG,EAAKb,UAAY,0BAOlB,OALC/T,KAAK0C,IAAIE,KAAKnK,UAAUC,IAAIK,EAAA,kCAC5BmX,EAAe7L,YAAYrE,KAAK0C,IAAIE,MAErCjO,EAAA,cAAoBqL,KAA2B,KAAM,qBACrD1L,OAAOC,OAAOyL,KAAKiQ,IACZC,G,4BAGT,SAAiBF,GAChB,IAAYU,GAAZ,SAAYA,GACX,gCACA,kCACA,sBAHD,CAAYA,EAAA,EAAAA,QAAA,EAAAA,MAAK,KAQD,EAAAwD,aAAhB,SAA6BC,GAI5B,OAAQA,GACP,IAAK,SAIJ,OACD,IAAK,aAIJ,MAAO,CACNhJ,MAAO,aAAe,kBACtBkJ,YAAa,mBAEf,IAAK,YAMJ,MAAO,CACNlJ,MAAO/H,OAAOS,SAASgR,OACvBR,YAAa,sBAEf,QACC,SAtCJ,CAAiBrE,MAAiB,KA0ClC,MAAMU,EAAQV,EAAkBU,MAEhCpc,OAAOC,OAAOyb,GACd1b,OAAOC,OAAOyb,EAAkBva,WE5bzB,MAAMqf,UAA0BrK,EAK5B,YACT1B,MAAM3E,YAENpE,KAAK0C,IAAIE,KAAKC,YAAc,aAC5B7C,KAAK0C,IAAIE,KAAKE,QAAWC,IACxB,MAAMS,EAAOxD,KAAKwM,mBACdxM,KAAKwC,IAAIuS,mBACZ/U,KAAKwC,IAAIoP,QAAQhB,YAAa0C,KAAK,iBAAqB9P,KAK5DlP,OAAOC,OAAOugB,GACdxgB,OAAOC,OAAOugB,EAAkBrf,WClBzB,MAAMuf,UAAyB9S,EAAtC,c,oBAKC,uC,yDACA,wC,yDACA,wC,yDAEA,iC,yDAMA,aACC,OAAOlC,KAAKwC,IAAIoP,QAAQhB,YAMf,YACT5Q,KAAKyC,SAAShK,UAAUC,IClCH,sBDoCrBsH,KAAKiV,SAAW,IAAIC,IACpBlV,KAAKmV,gBACLnV,KAAK0C,IAAIC,KAAKE,YAAc,mBAG5B7C,KAAKoV,UAAYzgB,EAAA,OAAa,MAAO,CCzC+E,gCD0CpHqL,KAAKyC,SAAS4B,YAAYrE,KAAKoV,WAG/BpV,KAAKqV,UAAY,IAAIH,IAErBvgB,EAAA,cAAoBqL,KACnB,WAAY,YAAa,YAAa,MAGvC,CAAC,MAAMsV,EAAUtV,KAAK0C,IAAIE,KAC1B0S,EAAQzS,YAAc,aACtByS,EAAQxS,QAAU,KACjB9C,KAAKsC,kBAAkBJ,EAASzH,GAAGyK,aAAc,KAElDlF,KAAKyC,SAAS4B,YAAYiR,IAKnB,gB,MACP,MAAMvO,EAAOpS,EAAA,OAAa,MAAO,CAChCoE,EAAA,4BC/D+D,sCDmE1Dwc,EAAQ5gB,EAAA,OAAa,QAAS,CAACoE,EAAA,kCAAyC,CAC7EJ,KAAY,OACZ+b,UAAY,EACZX,UAAY,yBACZU,QAAY,4BACZX,YAAY,EACZ3I,MAA2C,QAAtC,EAAOnL,KAAKwC,IAAIjC,QAAQW,MAAMO,gBAAQ,QAAI,GAC/C8Q,SAAYvS,KAAKwV,cAActO,KAAKlH,QAErC+G,EAAK1C,YAAYkR,GAEjB,MAAM3T,EAASjN,EAAA,OAAa,QAAS,CAACoE,EAAA,kCAAyC,CAC9EJ,KAAM,SAAU8c,UAAW,UAC3BzK,IAAK,IAAKC,IAAK,IAAKC,KAAM,IAAKC,MAAO,IACtCoH,SAAUvS,KAAKwV,cAActO,KAAKlH,QAEnC4B,EAAOnJ,UAAUC,MACjBqO,EAAK1C,YAAYzC,GAEjB,MAAMF,EAAS/M,EAAA,OAAa,SAAU,IAItCqL,KAAKiQ,GAAK3b,OAAOC,OAA+B,CAC/CkN,SAAU8T,EACV3T,SACAF,WAED1B,KAAKyC,SAAS4B,YAAY0C,GAEnB,gBACF/G,KAAKiQ,GAAGxO,SAAS0P,SAASC,OAAUpR,KAAKiQ,GAAGrO,OAAOuP,SAASC,QAGjEpR,KAAKwC,IAAIjC,QAAQW,MAAMO,SAAWzB,KAAKiQ,GAAGxO,SAAS0J,MACnDnL,KAAKwC,IAAIjC,QAAQW,MAAMQ,OAAW1B,KAAKiQ,GAAGvO,OAAOyJ,MACjDnL,KAAK0V,OAAOpC,KAAK,sCAAyE,CACzF7R,SAAUzB,KAAKiQ,GAAGxO,SAAS0J,MAC3BvJ,OAAQ+T,SAAS3V,KAAKiQ,GAAGrO,OAAOuJ,OAChCzJ,OAAQ,2BAOM,uBACf6B,EACAC,G,+CAEe,YAAXD,IACHvD,KAAK0C,IAAIE,KAAKoF,UAAYhI,KAAKwC,IAAIuS,kBACnC/U,KAAKiV,SAASW,QACd5V,KAAKqV,UAAUO,QACf5V,KAAKoV,UAAUvS,YAAc,GAC7B7C,KAAKwV,gBAELxV,KAAK0V,OACJG,IAAI,uCACJ9D,GAAI,sCACJ/R,KAAK8V,kBAAkB5O,KAAKlH,QAI9BA,KAAK0V,OAAOK,KACX,kBACA,KACC,MAAMC,EAAQhW,KAAKwC,IAAIyT,eACvBC,QAAQC,IAAI,yDACCnW,KAAKwC,IAAIoP,QAAQwE,kBAC7BJ,EAAMtgB,KACN,CAAE2G,WAAY2Z,EAAM3Z,aAEhB0Z,KAAK,kBAAqBM,IAC9BrW,KAAKsC,kBAAkBJ,EAASzH,GAAG0K,YAAakR,YAiB7C,0BACN,IAAIC,EACCtW,KAAKiQ,GAAGxO,SAAS0P,SAASC,MAC1BpR,KAAKiQ,GAAGrO,OAAOuP,SAASC,WAC1BvY,EADqCmH,KAAKiQ,GAAGrO,OADR5B,KAAKiQ,GAAGxO,SAMhD,YAHoB5I,IAAhByd,IACHA,EAAetW,KAAKwC,IAAqB,kBAAIxC,KAAK0C,IAAIE,KAAO5C,KAAKiQ,GAAGrO,QAE/D0U,EAME,uBAAuB/S,GAMhC,OAHIA,IAAWrB,EAASyB,OAAO6B,UAC9BxF,KAAK0V,OAAOG,IAAI,mBAEV,EAKA,kBAAkBU,GACzBjiB,OAAO6I,QAAQoZ,GAAKthB,SAAQ,EAAEuhB,EAAUnZ,MACvC,MAAMkW,EAAWvT,KAAKiV,SAAStU,IAAI6V,GAWnC,IARIjD,GAC2D,IAA3DvT,KAAKqV,UAAU1U,IAAI4S,EAAS3R,QAAS6U,wBAC3B5d,IAATwE,GAAsBA,EAAKuE,SAAW2R,EAAS3R,SACnD5B,KAAKqV,UAAU1U,IAAI4S,EAAS3R,QAAS2M,SACrCvO,KAAKqV,UAAUqB,OAAOnD,EAAS3R,SAI5BvE,IAAS2C,KAAKqV,UAAUsB,IAAItZ,EAAKuE,QAAS,CAC7C,MAAMgV,EAAWjiB,EAAA,OAAa,MAAO,CCrMkH,uBDsMvJqL,KAAKqV,UAAUtU,IAAI1D,EAAKuE,OAAQgV,GAChCA,EAAS9T,QAAWC,IACnB/C,KAAKiQ,GAAGrO,OAAOuJ,MAAQ9N,EAAKuE,OAAO6E,YAEpCzG,KAAKoV,UAAU/Q,YAAYuS,GAG5B,QAAa/d,IAATwE,EAEHkW,EAAUxM,KAAKwH,SACfvO,KAAKiV,SAASyB,OAAOF,QACf,QAAiB3d,IAAb0a,EAAwB,CAElC,MAAMA,EAAW,IAAIyB,EAAiB6B,SAASxZ,GAC/C2C,KAAKiV,SAASlU,IAAIyV,EAAUjD,GAC5BvT,KAAKqV,UAAU1U,IAAItD,EAAKuE,QAASyC,YAAYkP,EAASxM,WAGtDwM,EAASuD,OAAOzZ,MAGlB2C,KAAKiQ,GAAGrO,OAAOqJ,IAAM3W,OAAOoM,KAAKV,KAAKiV,UAAUzc,OAAOiO,aAGzD,SAAiBuO,G,oDAGH,EAAA6B,SAAb,MAYC,YAAmBxZ,GAXnB,mBACA,mBACA,mBAEA,mC,yDACA,iC,yDAOC2C,KAAK+G,KAAOpS,EAAA,OAAa,MAAO,CC9OsJ,yBD+OtL,MAAMoiB,EAAQ,KACb,MAAMC,EAAMriB,EAAA,OAAa,MAAO,IAEhC,OADAqL,KAAK+G,KAAK1C,YAAY2S,GACfA,GAERhX,KAAK5H,GAAK9D,OAAOC,OAAuB,CACvCkN,SAAUsV,IACVnV,OAAUmV,IACVrV,OAAUqV,MAEX/W,KAAK5H,GAAGqJ,SAAShJ,UAAUC,ICzPiM,8BD0P5NsH,KAAKyB,SAAWpE,EAAKoE,SACrBzB,KAAK4B,OAASvE,EAAKuE,OACnBjN,EAAA,cAAoBqL,KAAkB,OAAQ,MAGxC,OAAO3C,GACb2C,KAAKyB,SAAWpE,EAAKoE,SACrBzB,KAAK4B,OAAWvE,EAAKuE,OACrB5B,KAAK0B,OAAWrE,EAAKqE,OAGtB,eACC,OAAO,QAAA1B,KAAA,GAER,aAAoBiX,GACnBjX,KAAK5H,GAAGqJ,SAASoB,YAAcoU,GAC/B,QAAAjX,KAAI,EAAaiX,GAGlB,aACC,OAAO,QAAAjX,KAAA,GAER,WAAkBkX,GACjBlX,KAAK5H,GAAGwJ,OAAOiB,YAAcqU,EAAUzQ,YACvC,QAAAzG,KAAI,EAAWkX,GAGhB,aACC,OAAO,QAAAlX,KAAA,GAER,WAAkBmX,IACjB,QAAAnX,KAAI,EAAWmX,GACfnX,KAAK5H,GAAGsJ,SA5DX,CAAiBsT,MAAgB,KAgEjCrgB,EAAA,cAAoBqgB,EAAkB,gBAAiB,iBACvD1gB,OAAOC,OAAOygB,GACd1gB,OAAOC,OAAOygB,EAAiBvf,WEpRxB,MAAM2hB,UAAyB1K,EAAtC,c,oBAIC,oD,iDAA2C,IAW3C,iD,iDAAwC,IAExC,aACC,OAAO1M,KAAKwC,IAAIoP,QAAQyF,WAMf,YACTtO,MAAM3E,YACNpE,KAAK0C,IAAIC,KAAKiN,UAAY,uBAMjB,uBAAuBrM,GAChC,MAAM+T,EAAiBvO,MAAMvE,uBAAuBjB,GASpD,OARI+T,QACiBze,IAAhBmH,KAAK0V,SAER1V,KAAK0V,OAAOpC,KAAK,sBACjBtT,KAAK0V,OAAO6B,SACZvX,KAAK0V,OAAOhE,cAGP4F,EAME,oBACTtX,KAAK0V,OAAOpC,KAAK,cAMR,mBACTtT,KAAK0V,OAAOpC,KAAK,YAMF,eAAezD,G,+CAC9B,MAAM7C,EAAO,WAAW,6DAGrBwK,YACFxX,KAAK+P,kBAAkB7I,KAAKlH,MAC5BA,KAAKwC,IAAIoP,QAAQyF,WACjBxH,GAkBD,OAhBA7P,KAAK0V,OACJ3D,GAAG,cAAgB,KACnB/R,KAAKgP,0BAEL+C,GAAG,YAAc,KACjB/R,KAAK4N,yBAELmE,GAAG,sBAAyByE,SACX3d,IAAb2d,GAGHxW,KAAK0C,IAAIC,KAAK8U,WAKTC,QAAQC,QAAQ3K,MAMd,oBACTjE,MAAMgH,qB,cAKRzb,OAAOC,OAAO6iB,GACd9iB,OAAOC,OAAO6iB,EAAiB3hB,WC5FxB,MAAMmiB,EAQZ,YAAmBpV,EAAeC,GANlC,mC,yDAEA,mBAEA,oBAGC,QAAAzC,KAAI,EAAqBwC,EAAIoG,YAC7BnG,EAAS6B,aAAa,OAAQ,gBAI9B,MAAM7J,EAAKyH,EAASzH,GACdod,EAAIrV,EACJsV,EAAIrV,EACJsV,EAAIzjB,OAAOC,OAAOyL,KAAKgY,WAAW9Q,KAAKlH,OAC7CA,KAAKiY,KAAO3jB,OAAOC,OAAO,CAGzB,CAAEkG,EAAGiK,MAAiB,IAAYe,EAAWhL,EAAGiK,KAAcmT,EAAEC,EAAEC,GAClE,CAAEtd,EAAGkK,aAAiB,IAAO+B,EAAgBjM,EAAGkK,YAAckT,EAAEC,EAAEC,GAClE,CAAEtd,EAAGmK,aAAiB,IAAO+B,EAAgBlM,EAAGmK,YAAciT,EAAEC,EAAEC,GAClE,CAAEtd,EAAGoK,aAAiB,IAAM4D,EAAiBhO,EAAGoK,YAAcgT,EAAEC,EAAEC,GAClE,CAAEtd,EAAGqK,eAAiB,IAAIyH,EAAmB9R,EAAGqK,cAAc+S,EAAEC,EAAEC,GAClE,CAAEtd,EAAGsK,cAAiB,IAAK4K,EAAkBlV,EAAGsK,aAAc8S,EAAEC,EAAEC,GAClE,CAAEtd,EAAGuK,cAAiB,IAAKgL,EAAkBvV,EAAGuK,aAAc6S,EAAEC,EAAEC,GAClE,CAAEtd,EAAGyK,cAAiB,IAAK4P,EAAkBra,EAAGyK,aAAc2S,EAAEC,EAAEC,GAClE,CAAEtd,EAAGwK,aAAiB,IAAM+P,EAAiBva,EAAGwK,YAAc4S,EAAEC,EAAEC,GAClE,CAAEtd,EAAG0K,aAAiB,IAAMiS,EAAiB3c,EAAG0K,YAAc0S,EAAEC,EAAEC,KAEnEpjB,EAAA,cAAoBqL,KAAsB,QAG1C,MAAMkY,EAAMhW,EAASe,QAAQG,OAAOS,SAASG,KAAKmU,MAAM,IACxD/U,OAAO6K,YAAW,K,MACjBjO,KAAKgY,WAAoB,QAAV,EAACE,aAAG,EAAHA,EAAK/U,YAAI,QAAIjB,EAASzH,GAAGiK,KAAM,MAC7C,IAOHtB,OAAOuC,iBAAiB,YAAa5C,IAGpC/C,KAAKgY,WAAW5U,OAAOC,QAAQY,MAAM9B,SAAU,OASpC,WAEZiW,EACAvI,G,+CAEA,MAAMwI,EAAarY,KAAKyT,cAClB6E,EAAatY,KAAKiY,KAAKG,IAI7B,QAAApY,KAAI,EAAkBsY,GAEtB,MAAM/U,EAASrB,EAASkD,YAAY,CACnCE,KAAM+S,aAAU,EAAVA,EAAYlW,SAClBoD,KAAM6S,IAEP,aAAoBvf,IAAfwf,IAA6BA,EAAWE,OAAOhV,WAK7C,QAAAvD,KAAA,GAAuBsJ,GAAG,CAC/BkP,kBAAoBF,EAAWG,OAAqBlV,EAAQsM,GAC5D6I,aAAc,K,MACbL,WAAYM,gBACZL,EAAWM,gBACyB,QAApC,EAAAN,EAAWO,iCAAyB,SAAExS,WAGjC,OAKT,oBACC,OAAO,QAAArG,KAAA,I,4BAGT1L,OAAOC,OAAOqjB,GACdtjB,OAAOC,OAAOqjB,EAAaniB,WC/GpB,MAAMqjB,EAWZ,cAJA,uC,yDAEA,mBAGC9Y,KAAKyC,SAAW1L,SAASud,eAAevb,EAAA,0BACxC,QAAAiH,KAAI,OAAmBnH,GACvBlE,EAAA,cAAoBqL,KAA0B,YAOxC,GAAG+Y,G,MAIT,OAHA,QAAA/Y,KAAI,GAAmB,0CAAyB0X,QAAQC,WAAWqB,MAAK,IAChEhZ,KAAKiZ,UAAUF,OAEhB,QAAA/Y,KAAA,GAUM,UAAU+Y,G,+CACvB,MAAMG,EAAUlZ,KAAKyC,SAASiH,YACxB1J,KAAKmZ,uBAAsB,KAChCD,EAAQE,cAAgB,MACxBF,EAAQG,QAAU,cAE2BxgB,IAA1CkgB,EAAQxP,sCACLvJ,KAAKmZ,uBAAsB,KAChCJ,EAAQxP,0CAGJwP,EAAQP,uBACe3f,IAAzBkgB,EAAQL,cACXK,EAAQL,qBAEH1Y,KAAKmZ,uBAAsB,KAChCD,EAAQE,cAAgB,OACxBF,EAAQG,QAAU,YAOZ,sBAAsBC,GAC7B,OAAO,IAAI5B,SAAc,CAACC,EAAS4B,KAClCvZ,KAAKyC,SAASkD,iBAAiB,iBAAiB,IAAMgS,KAAW,CAAE5B,MAAM,IACzEuD,Q,cAsBH3kB,EAAA,cAAoBmkB,EAAkB,YAAa,yBACnDxkB,OAAOC,OAAOukB,GACdxkB,OAAOC,OAAOukB,EAAiBrjB,WCjFxB,MAAM+jB,EAIZ,cAFA,oBAGC,QAAAxZ,KAAI,EAAS,CACZyZ,YAAQ5gB,EACR6gB,WAAQ7gB,EACRmU,UAAQnU,IAIV,mBAAgD,OAAO,QAAAmH,KAAA,GAAWyZ,OAClE,kBAAgD,OAAO,QAAAzZ,KAAA,GAAW0Z,MAClE,iBAAgD,OAAO,QAAA1Z,KAAA,GAAWgN,KAKrD,oBAAoBxJ,G,+CAChC,MASMkS,EATU,WAAY,mCAGlBiE,QAA4BC,SAAQpW,EAAKsO,UAAUrL,WAAY,CAExEoT,qBAAsB,oCACtBC,aAAa,EACbC,WAAY,CAAC,eAESrE,OAAO,wBAE9B,OADA1V,KAAKga,gBAAgBtE,EAAQ,UACtBA,EAAOuE,aAKR,mBACN7d,EACA8d,GAEA,OAAOla,KAAKma,mBAAmB,QAAS/d,EAAW8d,GAAMD,UAKnD,kBACN7d,EACA8d,GAEA,QAAkBrhB,IAAduD,QAA+CvD,IAApBqhB,EAAK7d,WACnC,MAAM,IAAI+d,UAAU,SAErB,OAAOpa,KAAKma,mBAAmB,OAAQ/d,EAAW8d,GAAMD,UAKjD,mBACPI,EACAje,EACA8d,GAEA,IAAII,EACJ,OAAQD,GACP,IAAK,QAASC,EAAa,6BAAkC,MAC7D,IAAM,OAAQA,EAAa,4BAAkC,MAC7D,QAAS,MAAM,IAAIF,UAAU,SAE9B,MAAM1E,EAAS1V,KAAKyR,aAAcH,GAAGoE,OAAO4E,EAAale,EAAW,CAAC8d,SAErE,OADAla,KAAKga,gBAAgBtE,EAAQ2E,GACtB3E,EAKA,gBAAgBA,EAAgBhgB,IACvC,QAAAsK,KAAA,GAAWtK,GAAQggB,EACnB,MAAM6E,EAAS,KACd7E,EAAO6B,UACP,QAAAvX,KAAA,GAAWtK,QAAQmD,GAEpB6c,EACC3D,GAAG,iBAAkBE,IACrBiE,QAAQsE,KAAKvI,GACbsI,OAEAxI,GAAG,cAAeI,IACH,yBAAXA,GACW,yBAAXA,IACH+D,QAAQuE,KAAKtI,GACboI,S,cAKJ5lB,EAAA,cAAoB6kB,EACnB,sBAAuB,qBAAsB,oBAC7C,qBAAsB,mBAEvBllB,OAAOC,OAAOilB,GACdllB,OAAOC,OAAOilB,EAAU/jB,WC9FjB,MAAMilB,EA8BZ,cA5BA,8C,yDAEA,8C,yDAEA,sC,yDAEA,yC,yDAKA,mBAKA,sC,yDAaC1a,KAAK0D,gBAAkB3M,SAAS0M,MAChCzD,KAAKmU,gBACA/Q,OAAOS,SAAS0N,SAASoJ,MAAM,cAC3BD,EAASE,gBAAgBC,OACtBzX,OAAOS,SAASiX,SAASC,WAAW,QACvCL,EAASE,gBAAgBI,WAEzBN,EAASE,gBAAgBK,cAGlCtmB,EAAA,cAAoBqL,KAAkB,kBAAmB,mBAEzDA,KAAKO,QAAUH,EACfJ,KAAK4R,QAAU,IAAI4H,EACnBxZ,KAAK4I,WAAa,IAAIkQ,EACtBnkB,EAAA,cAAoBqL,KAAkB,UAAW,UAAW,cAE5D,MAAMkb,EAAiBnkB,SAASud,eAAevb,EAAA,yBAC/C,IAAKmiB,EAAkB,MAAM,IAAItT,MAAM,SACvCjT,EAAA,iBAAuBumB,EAAgB,0BACvC,QAAAlb,KAAI,EAAe,IAAI4X,EAAa5X,KAAMkb,IAK1CvmB,EAAA,cAAoBqL,MAlCrB,wBACC,OAAO,QAAAA,KAAA,GAAiBiY,KAAKkD,YAAYpG,kBAE1C,qBACC,OAAO,QAAA/U,KAAA,GAAiBiY,KAAKkD,YAAYC,UAmCnC,MAAMC,GAEZnF,QAAQuE,KAAKY,GAEP,QAAQA,GAEd,OAAOjY,OAAOgL,QAAQiN,GASvB,W,MACC,OAA2D,QAAnD,WAAArb,KAAA,GAAiBiY,KAAgB,YAAEqD,wBAAgB,SACtD,QAAAtb,KAAA,GAAiBiY,KAAe,WAAGqD,iBAOzC,oBACC,OAAO,QAAAtb,KAAA,GAAiByT,e,cAG1B,SAAiBiH,GAChB,IAAkBE,GAAlB,SAAkBA,GACjB,kBACA,0BACA,4BAHD,CAAkBA,EAAA,EAAAA,kBAAA,EAAAA,gBAAe,KADlC,CAAiBF,MAAQ,KAOzBpmB,OAAOC,OAAOmmB,GACdpmB,OAAOC,OAAOmmB,EAASjlB,WC7GvB,CACCnB,OAAQse,MAAOsC,IAAKqG,IAAKC,QAASC,QAClCC,OAAQC,OAAQ5c,OAChB6c,YAAaC,eAAgBC,gBAAiBC,eAC9CC,kBAAmBC,iBAAkBC,kBAAmBC,kBACxDC,kBAAmBC,iBAAkBC,gBAAiBC,kBACtDC,aAAcC,kBAAmBC,mBAEjCznB,SAAS0nB,IACTroB,OAAOC,OAAOooB,GACdroB,OAAOC,OAAOooB,aAAS,EAATA,EAAWlnB,cAY1B,MAAMmnB,EAAO,IAAIlC,EACJ,OAAM,EAIZ,SAASmC,IACf,OAAOD,EAAKnJ,cAEN,SAASzG,IACf,OAAO4P,EAAK5P,KAGbkJ,QAAQuE,KAAK,mBAAoB,qJAQ7BmC,EAAKzI,kBAAoBuG,EAASE,gBAAgBC,QAAU,kBAAmBiC,WAClF1Z,OAAOuC,iBAAiB,QAAQ,WAE/BmX,UAAUC,cAAcC,SAAS,qBAAqBhE,MACrDiE,IACA/G,QAAQuE,KAAK,qDAAsDwC,EAAaC,UAEhFC,IACAjH,QAAQuE,KAAK,sCAAuC0C,U,2BCYhD,SAASC,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAI7F,WAAU,SAAUC,EAAS4B,GAC/C,SAASkE,EAAUtS,GAAS,IAAMD,EAAKsS,EAAU5a,KAAKuI,IAAW,MAAO5S,GAAKghB,EAAOhhB,IACpF,SAASmlB,EAASvS,GAAS,IAAMD,EAAKsS,EAAiB,MAAErS,IAAW,MAAO5S,GAAKghB,EAAOhhB,IACvF,SAAS2S,EAAKyS,GAJlB,IAAexS,EAIawS,EAAOC,KAAOjG,EAAQgG,EAAOxS,QAJ1CA,EAIyDwS,EAAOxS,MAJhDA,aAAiBoS,EAAIpS,EAAQ,IAAIoS,GAAE,SAAU5F,GAAWA,EAAQxM,OAIT6N,KAAKyE,EAAWC,GAClGxS,GAAMsS,EAAYA,EAAUK,MAAMR,EAASC,GAAc,KAAK1a,WA4I/D,SAASkb,EAAuBC,EAAUC,GAC7C,IAAKA,EAAWrH,IAAIoH,GAChB,MAAM,IAAI3D,UAAU,kDAExB,OAAO4D,EAAWrd,IAAIod,GAGnB,SAASE,EAAuBF,EAAUC,EAAY7S,GACzD,IAAK6S,EAAWrH,IAAIoH,GAChB,MAAM,IAAI3D,UAAU,kDAGxB,OADA4D,EAAWjd,IAAIgd,EAAU5S,GAClBA,E,oCAxHkB7W,OAAO4pB,OA0FX5pB,OAAO4pB,S","file":"index.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://capswalk/./src/base/defs/JsUtils.ts","webpack://capswalk/./src/base/defs/OnlineDefs.ts","webpack://capswalk/./src/base/defs/LangDefs.ts","webpack://capswalk/./src/base/defs/TypeDefs.ts","webpack://capswalk/./src/base/game/Game.ts","webpack://capswalk/./src/base/game/player/RequestBuffer.ts","webpack://capswalk/./src/base/game/player/Player.ts","webpack://capswalk/./src/base/game/player/Team.ts","webpack://capswalk/./src/base/defs/OmHooks.ts","webpack://capswalk/./src/client/StorageHooks.ts","webpack://capswalk/./src/client/screen/BaseScreen.ts","webpack://capswalk/./src/client/screen/impl/Home/style.m.css?fda2","webpack://capswalk/./src/client/screen/impl/Home/Screen.ts","webpack://capswalk/./src/client/screen/impl/HowToPlay.ts","webpack://capswalk/./src/client/screen/impl/HowToHost.ts","webpack://capswalk/./src/client/screen/impl/ColourCtrl/style.m.css?249a","webpack://capswalk/./src/client/utils/PickOne.ts","webpack://capswalk/./src/client/utils/pickone.m.css?0d8c","webpack://capswalk/./src/client/screen/impl/ColourCtrl/Screen.ts","webpack://capswalk/./src/client/screen/impl/Setup/_Screen.ts","webpack://capswalk/./src/client/screen/impl/Setup/style.m.css?be82","webpack://capswalk/./src/client/screen/impl/Setup/Offline.ts","webpack://capswalk/./src/client/screen/impl/Play/_Screen.ts","webpack://capswalk/./src/client/screen/impl/Play/style.m.css?081e","webpack://capswalk/./src/client/screen/impl/Play/grid.m.css?08c2","webpack://capswalk/./src/client/screen/impl/Play/Offline.ts","webpack://capswalk/./src/client/screen/impl/GroupJoiner/ScreenInitEl.ts","webpack://capswalk/./src/client/screen/impl/GroupJoiner/style.m.css?7896","webpack://capswalk/./src/client/screen/impl/GroupJoiner/Screen.ts","webpack://capswalk/./src/client/screen/impl/Setup/Online.ts","webpack://capswalk/./src/client/screen/impl/GroupLobby/Screen.ts","webpack://capswalk/./src/client/screen/impl/GroupLobby/style.m.css?5c3f","webpack://capswalk/./src/client/screen/impl/Play/Online.ts","webpack://capswalk/./src/client/screen/AllScreens.ts","webpack://capswalk/./src/client/screen/ScreenTransition.ts","webpack://capswalk/./src/client/TopLevel.ts","webpack://capswalk/./src/client/index.ts","webpack://capswalk/./src/client/colours/schemes|lazy-once|/^/.*/.css$/|chunkName: colour-schemes|groupOptions: {}|namespace object"],"names":["NO_ENUM","Object","freeze","enumerable","NO_WRITE","writable","JsUtils","obj","key","getOwnPropertyNames","val","_deepFreeze","descriptor","inst","propNames","propName","defineProperty","Web","deepFreeze","hasProp","prototype","hasOwnProperty","call","protoNoEnum","ctor","forEach","instNoEnum","_configProp","bind","propNoWrite","camelCaseTransforms","camelCaseName","spaceyLowercase","replace","letter","toLowerCase","spaceyUppercase","toUpperCase","spaceyCapitalized","split","map","word","charAt","substring","join","prependComment","node","commentStr","parentNode","insertBefore","document","createComment","adoptStyleSheet","root","href","appendChild","html","rel","_makeSmartStorage","localPrefix","storage","example","smart","keys","internalKey","get","getItem","JSON","parse","set","setItem","stringify","tagName","classNames","domProps","el","createElement","seal","e","length","classList","add","type","assign","svg","createElementNS","WeakMap","JoinerEv","GroupEv","GameEv","Name","Passphrase","REGEXP","MaxLength","GameServerReconnectionAttempts","DEFAULT_TTL","Group","Create","Exist","TryJoin","NAME","Status","UserInfo","CREATE_GAME","REMAP","IDENT","input","LOWER","Descs","module","export","isolatedMinOpts","remapFunc","displayName","blurb","entries","id","desc","behavior","block","inline","Id","Username","Avatar","Family","HUMAN","CHASER","NULL","MAX_LENGTH","_values","values","filter","GET_RANDOM","Math","floor","random","Player","Seq","CharSeqPair","WeightExaggeration","RegExp","char","seq","MAX","CHAR_HIT_COUNT_SEED_CEILING","FrontendDescs","GET_FRONTEND_DESC_BY_ID","langId","Lang","Game","K","_HEALTH_UPDATE_CHANCE","averageHealthPerTile","gridGetDiameter","patchDiameter","this","AVERAGE_HEALTH_TO_SPAWN_ON_TILE","PORTION_OF_MOVES_THAT_ARE_BOOST","_REQUEST_BUFFER_LENGTH","_ROBOT_PRIORITY_MAX_REUSES","RequestBuffer","coord","predictedCoord","req","moveDest","lastRejectId","rejectId","realCoord","game","super","prevCoord","playerId","familyId","teamId","username","avatar","reqBuffer","teams","health","other","team","members","includes","grid","write","occId","reset","dest","isFull","processMoveRequest","signRequest","initiator","moveType","newHealth","oldIsDowned","isDowned","elimOrder","Team","every","player","numNonStandingTeams","statusBecomeOver","CtorArgs","MoveType","NORMAL","BOOST","finalize","gameDesc","playerDescs","players","teamIdCleaner","Array","from","Set","sort","a","b","reduce","prev","originalId","squashedId","slice","pda","pdb","playerDesc","index","ElimOrder","STANDING","Error","OmHooks","General","Screen","ID","PUBLIC_GAME_SERVER_URLS","CURRENT_HOST_GROUPS","Class","TEXT_SELECT_DISABLED","FILL_PARENT","CENTER_CONTENTS","STACK_CONTENTS","INPUT_GROUP","INPUT_GROUP_ITEM","Dataset","COLOUR_SCHEME","DOWNED","KEY","VALUES","TEAM","SELF","NO","FACE_SWATCH","Impl","ALL_SCREENS","SCREEN_TINT","BASE","NAV_NEXT","NAV_PREV","CURRENT","Setup","LANG_WEIGHT_EXAGGERATION_LIST","StorageHooks","IDB","Local","localStorage","musicVolume","sfxVolume","colourSchemeId","colourSchemeStyleLiteral","gamePresetId","getLastUserInfo","Session","UserGamePresetStore","DB_NAME","STORE_NAME","OMHC","ctx","screenId","baseElem","screenNames","top","toplevel","parentElem","requestGoToScreen","goToScreen","nav","next","textContent","onclick","ev","tree","NavTree","thisNav","window","history","back","_lazyLoad","setAttribute","navDir","args","title","defaultDocTitle","NavDir","FORWARD","location","URL","nextHistRoot","hash","state","replaceState","pushState","lazyLoad","_abstractOnBeforeEnter","_abstractOnBeforeLeave","dataset","remove","HOME","HOW_TO_PLAY","HOW_TO_HOST","COLOUR_CTRL","SETUP_OFFLINE","PLAY_OFFLINE","GROUP_JOINER","GROUP_LOBBY","SETUP_ONLINE","PLAY_ONLINE","GET_NAV_DIR","_args","curr","BACKWARD","BaseScreen","HomeScreen","addEventListener","activeElement","parentElement","blur","addToNav","elem","cssClass","text","requestAnimationFrame","time","focus","button","Function","toString","target","HowToPlayScreen","HowToHostScreen","INSTRUCTIONS_STEPS","base","tabIndex","_onKeyDown","options","opt","push","hoverOpt","selectOpt","_registerParent","_onOptDisabledChange","hoveredOpt","doCallback","confirmedOpt","_onSelectOpt","_isValid","disabled","newIsValid","preventDefault","hoverOptIndex","indexOf","i","_Option","onDisabledChange","newDisabled","Colour","ColourCtrlScreen","sel","PickOne","transition","lastUsedSchemeId","getOptById","Schemes","schemeDesc","addOption","Option","cssLiteral","firstTime","do","intermediateTransitionTrigger","documentElement","docStyle","style","swatchName","Swatch","varString","setProperty","searchId","find","label","author","NUM_PREVIEW_SLOTS","body","computedStyle","getComputedStyle","getPropertyValue","langSel","_SetupScreen","LangPickOne","_createLangWeightExaggerationInput","_loadLastUsedPreset","lwe","langWeightExaggeration","min","max","step","value","list","tickDesc","DEFAULT_PRESET","parseFloat","coordSys","gridDimensions","height","width","familyArgs","fearDistance","bloodThirstDistance","healthReserve","keyPressesPerSecond","SetupOfflineScreen","parseArgsFromGui","splice","socket","playersBar","_gridHtml","createGridWrapper","implHost","pauseOl","currentGame","status","_reqStatusPlaying","_initializeControlsBar","_initializePlayersBar","wantsAutoPlayPause","hidden","_reqStatusPaused","_gridKeyDownCallback","btn","pause","_statusBecomePaused","_createNewGame","setTimeout","capture","askConfirmBeforeLeave","confirm","removeEventListener","stopPropagation","isTrusted","ctrlKey","repeat","operators","setCurrentOperator","currentOperator","processKeyboardInput","_statusBecomePlaying","statusBecomePlaying","visibility","statusBecomePaused","controlsBar","buttonText","createControlButton","_resetGame","_PlayScreen","CSS_FX","scrollOuter","intersectionRoot","PlayOfflineScreen","innerHTML","OfflineGame","_onGameBecomeOver","groupNameDataList","contentWrapper","_initFormContents","_setFormState","State","CHOOSING_SERVER","newState","in","passphrase","IN_GROUP","CHOOSING_GROUP","groupName","serverUrl","labelText","classStr","autocomplete","spellcheck","_mkInput","maxLength","required","pattern","minLength","suggest","TopLevel","SiteServerTypeSuggestedGameServer","siteServerType","suggestOpt","description","getElementById","insertAdjacentElement","_GroupJoinerScreenInitEl","GroupJoinerScreen","webSocket","evName","data","_onCreateResponse","_onNotifyGroupExist","huiSubmit","_initServerUrlCbs","_initGroupNameCbs","_initPassphraseCbs","ws","submitInput","validity","valid","url","hostname","setWebSocket","WebSocket","toast","currentScreen","once","accepted","_attemptToJoinExistingGroup","changes","mkOpt","newOpt","otherOpt","dataListArr","localeCompare","children","serverUrlInputSubmit","some","send","userInfo","SetupOnlineScreen","clientIsGroupHost","Map","teamsElem","teamElems","_createInputs","_onUserInfoChange","goSetup","uname","onchange","_submitInputs","inputMode","parseInt","clear","res","uid","childElementCount","delete","has","teamElem","update","GroupLobbyScreen","mkDiv","div","newUsername","newTeamId","newAvatar","PlayOnlineScreen","click","wsMessageCb","leaveConfirmed","ctorArgs","operatorIds","OnlineGame","Promise","resolve","AllScreens","dict","isr","destId","currScreen","destScreen","_leave","whileBeforeUnblur","_enter","beforeUnblur","_onAfterLeave","_onAfterEnter","getRecommendedFocusElem","ScreenTransition","request","then","_atomicDo","oldFocusEl","_cssTransition","pointerEvents","opacity","HTMLElement","trigger","match","SiteServerType","GITHUB","protocol","startsWith","FILESYSTEM","DEDICATED","allScreensElem","newSocket","close","isHost","message","console","info","probeCurrentGame","origin","globalThis","configurable","_top","screen","webpackAsyncContext","webpackAsyncContextResolve","__webpack_require__","o","code","exports"],"mappings":"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","file":"index.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index a4125eca..baebc459 100644 --- a/package.json +++ b/package.json @@ -9,24 +9,24 @@ "server/" ], "scripts": { - "start": "node server/index.js" + "start": "node --disable-proto=delete server/index.js" }, "engines": { - "node": "12.x" + "node": "14.x" }, - "name": "snakey3", + "name": "capswalk", + "license": "LicenseRef-LICENSE.md", "author": "David Fong (https://github.com/david-fong)", "description": "A multiplayer typing game for learning written languages.", "keywords": [ "typing", "game" ], - "version": "0.9.0", + "version": "0.10.0", "dependencies": { "express": "=4.17.1", - "express-static-gzip": "=2.1.0", - "socket.io": "=3.0.4", - "tslib": "=2.0.3" + "express-static-gzip": "=2.1.1", + "ws": "=7.4.3" }, - "repository": "github:david-fong/snakey3/tree/dist" + "repository": "github:david-fong/capswalk/tree/dist" } \ No newline at end of file diff --git a/server/chunk/lang/Chinese-ts.js b/server/chunk/lang/Chinese-ts.js index 9996ebc3..a8c31da1 100644 --- a/server/chunk/lang/Chinese-ts.js +++ b/server/chunk/lang/Chinese-ts.js @@ -1 +1 @@ -exports.id=330,exports.ids=[330],exports.modules={216:()=>{}}; \ No newline at end of file +exports.id=330,exports.ids=[330],exports.modules={83:()=>{}}; \ No newline at end of file diff --git a/server/chunk/lang/Emote-ts.js b/server/chunk/lang/Emote-ts.js index 2ec07806..ee5be306 100644 --- a/server/chunk/lang/Emote-ts.js +++ b/server/chunk/lang/Emote-ts.js @@ -1,2 +1,2 @@ -exports.id=858,exports.ids=[858],exports.modules={655:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Emote:()=>s});var s,o=r(115);!function(e){class t extends o.U{}e.GitHub=t,Object.freeze(t),Object.freeze(t.prototype)}(s||(s={})),Object.freeze(s)}}; +exports.id=858,exports.ids=[858],exports.modules={985:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Emote:()=>s});var s,o=r(208);!function(e){class t extends o.U{}e.GitHub=t,Object.freeze(t),Object.freeze(t.prototype)}(s||(s={})),Object.freeze(s)}}; //# sourceMappingURL=Emote-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Emote-ts.js.map b/server/chunk/lang/Emote-ts.js.map index ee7c3a72..c416f6f3 100644 --- a/server/chunk/lang/Emote-ts.js.map +++ b/server/chunk/lang/Emote-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Emote-ts.js","sources":["../chunk/lang/Emote-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Emote.ts?"],"names":["Emote","GitHub","Object","freeze","prototype"],"mappings":"6GAMiBA,E,UAAV,SAAU,GAKT,gBAAqB,KAArB,EAAMC,SAEbC,OAAOC,OAAOF,GACdC,OAAOC,OAAOF,EAAOG,WARf,CAAUJ,MAAA,KAUjBE,OAAOC,OAAOH","file":"chunk/lang/Emote-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\n\r\n\r\n/**\r\n *\r\n */\r\nexport namespace Emote {\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\texport class GitHub extends Lang {\r\n\t}\r\n\tObject.freeze(GitHub);\r\n\tObject.freeze(GitHub.prototype);\r\n}\r\nObject.freeze(Emote);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/English-ts.js b/server/chunk/lang/English-ts.js index 8ed48b2b..da4c4b90 100644 --- a/server/chunk/lang/English-ts.js +++ b/server/chunk/lang/English-ts.js @@ -1,2 +1,2 @@ -exports.id=184,exports.ids=[184],exports.modules={891:(t,e,n)=>{"use strict";n.r(e),n.d(e,{English:()=>r});var r,c=n(115);!function(t){class e extends c.U{constructor(t){super("engl-low",t)}static BUILD(){return c.U.BuildUtils.WORD_FOR_WORD(t.LETTER_FREQUENCY)}}t.Lowercase=e,Object.freeze(e),Object.freeze(e.prototype);class n extends c.U{constructor(t){super("engl-mix",t)}static BUILD(){let e={};const n=n=>{e=Object.entries(t.LETTER_FREQUENCY).reduce(((t,[e,r])=>{const c=n(e);return t[c]={seq:c,weight:r},t}),e)};return n((t=>t.toLowerCase())),n((t=>t.toUpperCase())),e}}let r,s;t.MixedCase=n,Object.freeze(n),Object.freeze(n.prototype),function(e){class n extends c.U{constructor(t){super("engl-cell-enc",t)}static BUILD(){return Object.entries(t.LETTER_FREQUENCY).reduce(((t,[e,n],c)=>(t[e]={seq:r[c],weight:n},t)),{})}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);const r=Object.freeze([3,3,3,3,3,4,3,4].flatMap(((t,e)=>{const n=[],r=(1+e).toString();for(let e=r;e.length<=t;e+=r)n.push(e);return n})))}(r=t.OldCellphone||(t.OldCellphone={})),Object.freeze(r),t.LETTER_FREQUENCY=Object.freeze(JSON.parse('{\n\t\t"a": 8.167, "b": 1.492, "c": 2.202, "d": 4.253,\n\t\t"e":12.702, "f": 2.228, "g": 2.015, "h": 6.094,\n\t\t"i": 6.966, "j": 0.153, "k": 1.292, "l": 4.025,\n\t\t"m": 2.406, "n": 6.749, "o": 7.507, "p": 1.929,\n\t\t"q": 0.095, "r": 5.987, "s": 6.327, "t": 9.356,\n\t\t"u": 2.758, "v": 0.978, "w": 2.560, "x": 0.150,\n\t\t"y": 1.994, "z": 0.077\n\t}')),t.LETTER_FREQUENCY_EXT=Object.freeze(Object.assign((()=>{const t={".":65.3,",":61.3,'"':26.7,"'":24.3,"-":15.3,"?":5.6,":":3.4,"!":3.3,";":3.2};for(let e=0;e<10;e++)t[e.toString()]=10;let e=0;for(const n in t)e+=t[n];for(const n in t)t[n]*=8/e;return t})(),t.LETTER_FREQUENCY)),function(e){class n extends c.U{constructor(t){super("mors-enc",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict))n[r]={seq:c,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);class r extends c.U{constructor(t){super("mors-dec",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict))n[c.replace(/\./g,"•").replace(/\-/g,"−")]={seq:r,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Decode=r,Object.freeze(r),Object.freeze(r.prototype),e.Dict=Object.freeze(JSON.parse('{\n\t\t\t"0": "-----", "5": ".....",\n\t\t\t"1": ".----", "6": "-....",\n\t\t\t"2": "..---", "7": "--...",\n\t\t\t"3": "...--", "8": "---..",\n\t\t\t"4": "....-", "9": "----.",\n\n\t\t\t"a": ".-" , "n": "-." ,\n\t\t\t"b": "-..." , "o": "---" ,\n\t\t\t"c": "-.-." , "p": ".--." ,\n\t\t\t"d": "-.." , "q": "--.-" ,\n\t\t\t"e": "." , "r": ".-." ,\n\t\t\t"f": "..-." , "s": "..." ,\n\t\t\t"g": "--." , "t": "-" ,\n\t\t\t"h": "...." , "u": "..-" ,\n\t\t\t"i": ".." , "v": "...-" ,\n\t\t\t"j": ".---" , "w": ".--" ,\n\t\t\t"k": "-.-" , "x": "-..-" ,\n\t\t\t"l": ".-.." , "y": "-.--" ,\n\t\t\t"m": "--" , "z": "--.." ,\n\n\t\t\t".": ".-.-.-",\n\t\t\t",": "--..--",\n\t\t\t"?": "..--..",\n\t\t\t"!": "-.-.--",\n\t\t\t"-": "-....-"\n\t\t}'))}(s=t.Morse||(t.Morse={})),Object.freeze(s)}(r||(r={})),Object.freeze(r)}}; +exports.id=184,exports.ids=[184],exports.modules={825:(t,e,n)=>{"use strict";n.r(e),n.d(e,{English:()=>r});var r,c=n(208);!function(t){class e extends c.U{constructor(t){super("engl-low",t)}static BUILD(){return c.U.BuildUtils.WORD_FOR_WORD(t.LETTER_FREQUENCY)}}t.Lowercase=e,Object.freeze(e),Object.freeze(e.prototype);class n extends c.U{constructor(t){super("engl-mix",t)}static BUILD(){let e={};const n=n=>{e=Object.entries(t.LETTER_FREQUENCY).freeze().reduce(((t,[e,r])=>{const c=n(e);return t[c]={seq:c,weight:r},t}),e)};return n((t=>t.toLowerCase())),n((t=>t.toUpperCase())),e}}let r,s;t.MixedCase=n,Object.freeze(n),Object.freeze(n.prototype),function(e){class n extends c.U{constructor(t){super("engl-cell-enc",t)}static BUILD(){return Object.entries(t.LETTER_FREQUENCY).freeze().reduce(((t,[e,n],c)=>(t[e]={seq:r[c],weight:n},t)),{})}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);const r=[3,3,3,3,3,4,3,4].flatMap(((t,e)=>{const n=[],r=(1+e).toString();for(let e=r;e.length<=t;e+=r)n.push(e);return n})).freeze()}(r=t.OldCellphone||(t.OldCellphone={})),Object.freeze(r),t.LETTER_FREQUENCY=Object.freeze(JSON.parse('{\n\t\t"a": 8.167, "b": 1.492, "c": 2.202, "d": 4.253,\n\t\t"e":12.702, "f": 2.228, "g": 2.015, "h": 6.094,\n\t\t"i": 6.966, "j": 0.153, "k": 1.292, "l": 4.025,\n\t\t"m": 2.406, "n": 6.749, "o": 7.507, "p": 1.929,\n\t\t"q": 0.095, "r": 5.987, "s": 6.327, "t": 9.356,\n\t\t"u": 2.758, "v": 0.978, "w": 2.560, "x": 0.150,\n\t\t"y": 1.994, "z": 0.077\n\t}')),t.LETTER_FREQUENCY_EXT=Object.freeze(Object.assign((()=>{const t={".":65.3,",":61.3,'"':26.7,"'":24.3,"-":15.3,"?":5.6,":":3.4,"!":3.3,";":3.2};for(let e=0;e<10;e++)t[e.toString()]=10;let e=0;for(const n in t)e+=t[n];for(const n in t)t[n]*=8/e;return t})(),t.LETTER_FREQUENCY)),function(e){class n extends c.U{constructor(t){super("mors-enc",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict).freeze())n[r]={seq:c,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Encode=n,Object.freeze(n),Object.freeze(n.prototype);class r extends c.U{constructor(t){super("mors-dec",t)}static BUILD(){const n={};for(const[r,c]of Object.entries(e.Dict).freeze())n[c.replace(/\./g,"•").replace(/\-/g,"−")]={seq:r,weight:t.LETTER_FREQUENCY_EXT[r]};return n}}e.Decode=r,Object.freeze(r),Object.freeze(r.prototype),e.Dict=Object.freeze(JSON.parse('{\n\t\t\t"0": "-----", "5": ".....",\n\t\t\t"1": ".----", "6": "-....",\n\t\t\t"2": "..---", "7": "--...",\n\t\t\t"3": "...--", "8": "---..",\n\t\t\t"4": "....-", "9": "----.",\n\n\t\t\t"a": ".-" , "n": "-." ,\n\t\t\t"b": "-..." , "o": "---" ,\n\t\t\t"c": "-.-." , "p": ".--." ,\n\t\t\t"d": "-.." , "q": "--.-" ,\n\t\t\t"e": "." , "r": ".-." ,\n\t\t\t"f": "..-." , "s": "..." ,\n\t\t\t"g": "--." , "t": "-" ,\n\t\t\t"h": "...." , "u": "..-" ,\n\t\t\t"i": ".." , "v": "...-" ,\n\t\t\t"j": ".---" , "w": ".--" ,\n\t\t\t"k": "-.-" , "x": "-..-" ,\n\t\t\t"l": ".-.." , "y": "-.--" ,\n\t\t\t"m": "--" , "z": "--.." ,\n\n\t\t\t".": ".-.-.-",\n\t\t\t",": "--..--",\n\t\t\t"?": "..--..",\n\t\t\t"!": "-.-.--",\n\t\t\t"-": "-....-"\n\t\t}'))}(s=t.Morse||(t.Morse={})),Object.freeze(s)}(r||(r={})),Object.freeze(r)}}; //# sourceMappingURL=English-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/English-ts.js.map b/server/chunk/lang/English-ts.js.map index a07edcb7..ca271a2e 100644 --- a/server/chunk/lang/English-ts.js.map +++ b/server/chunk/lang/English-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/English-ts.js","sources":["../chunk/lang/English-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/English.ts?"],"names":["English","weightScaling","super","LETTER_FREQUENCY","Lowercase","Object","freeze","prototype","initializer","addMappings","charSeqTransform","entries","reduce","accumulator","_char","weight","char","seq","cs","toLowerCase","toUpperCase","OldCellphone","Morse","MixedCase","index","NUMPAD","Encode","flatMap","val","idx","button","numpadKey","toString","str","length","push","JSON","parse","LETTER_FREQUENCY_EXT","assign","freq","\"","i","sum","key","dict","plain","cipher","Dict","replace","Decode"],"mappings":"+GAIiBA,E,UAAV,SAAU,GAOT,gBAAwB,IAGvB,YAAYC,GAClBC,MAAM,WAAYD,GAAA,eAGlB,OAAO,6BAA8B,EAAAE,mBAPhC,EAAMC,YAWbC,OAAOC,OAAOF,GACdC,OAAOC,OAAOF,EAAUG,WAQjB,gBAAwB,IACvB,YAAYN,GAClBC,MAAM,WAAYD,GAAA,eAGlB,IAAIO,EAAuC,GAC3C,MAAMC,EAAeC,IACpBF,EAAcH,OAAOM,QAAQ,EAAAR,kBAAkBG,SAASM,QACvD,CAACC,GAAcC,EAAMC,MACpB,MAAMC,EAAkBN,EAAiBI,GAEzC,OADAD,EAAYG,GAAQ,CAAEC,IAAKD,EAAMD,UAC1BF,IAERL,IAKF,OAFAC,GAAaS,GAAOA,EAAGC,gBACvBV,GAAaS,GAAOA,EAAGE,gBAChBZ,GAQF,IAAUa,EAwEAC,EAlGV,EAAMC,YAsBblB,OAAOC,OAAOiB,GACdlB,OAAOC,OAAOiB,EAAUhB,WAGjB,SAAU,GAIT,gBAAqB,IACpB,YAAYN,GAClBC,MAAM,gBAAiBD,GAAA,eAGvB,OAAOI,OAAOM,QAAQ,EAAAR,kBAAkBG,SAASM,QAChD,CAACC,GAAcG,EAAKD,GAASS,KAC5BX,EAAYG,GAAQ,CAAEC,IAAKQ,EAAOD,GAAST,UACpCF,IACL,KATC,EAAMa,SAcbrB,OAAOC,OAAOoB,GACdrB,OAAOC,OAAOoB,EAAOnB,WAErB,MAAMkB,EAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC5BE,SAAQ,CAACC,EAAKC,KACd,MAAMC,EAAS,GACTC,GAAa,EAAEF,GAAKG,WAC1B,QAASC,EAAMF,EAAWE,EAAIC,QAAUN,EAAKK,GAAOF,EACnDD,EAAOK,KAAKF,GAEb,OAAOH,KAEPxB,SA9BI,CAAUe,EAAA,EAAAA,eAAA,EAAAA,aAAA,KAgCjBhB,OAAOC,OAAOe,GAMD,EAAAlB,iBAAmBE,OAAOC,OAA8B8B,KAAKC,MAAM,qWASnE,EAAAC,qBAAuBjC,OAAOC,OAAOD,OAAOkC,OACvD,MACA,MAAMC,EAA+B,CACpC,IAAK,KAAM,IAAK,KAAMC,IAAM,KAAM,IAAK,KAAM,IAAK,KAClD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAEpC,QAASC,EAAI,EAAGA,EAAI,GAAIA,IACvBF,EAAKE,EAAEV,YAAc,GAEtB,IAAIW,EAAM,EACV,UAAWC,KAAOJ,EACjBG,GAAOH,EAAKI,GAEb,UAAWA,KAAOJ,EACjBA,EAAKI,IAA6B,EAAID,EAIvC,OAAOH,GAjBP,GAmBD,EAAArC,mBAKM,SAAU,GAIT,gBAAqB,IACpB,YAAYF,GAClBC,MAAM,WAAYD,GAAA,eAGlB,MAAM4C,EAAgC,GACtC,UAAYC,EAAMC,KAAW1C,OAAOM,QAAQ,EAAAqC,MAAM1C,SACjDuC,EAAKC,GAAS,CAAE7B,IAAK8B,EAAQhC,OAAQ,EAAQuB,qBAAqBQ,IAEnE,OAAOD,GATF,EAAMnB,SAabrB,OAAOC,OAAOoB,GACdrB,OAAOC,OAAOoB,EAAOnB,WAMd,gBAAqB,IACpB,YAAYN,GAClBC,MAAM,WAAYD,GAAA,eAGlB,MAAM4C,EAAgC,GACtC,UAAYC,EAAMC,KAAW1C,OAAOM,QAAQ,EAAAqC,MAAM1C,SAEjDuC,EADcE,EAAOE,QAAQ,MAAM,KAAKA,QAAQ,MAAM,MACxC,CAAEhC,IAAK6B,EAAO/B,OAAQ,EAAQuB,qBAAqBQ,IAElE,OAAOD,GAVF,EAAMK,SAcb7C,OAAOC,OAAO4C,GACd7C,OAAOC,OAAO4C,EAAO3C,WAGR,EAAAyC,KAAO3C,OAAOC,OAA8B8B,KAAKC,MAAM,ovBA1C9D,CAAUf,EAAA,EAAAA,QAAA,EAAAA,MAAA,KA0EjBjB,OAAOC,OAAOgB,GAvMR,CAAUtB,MAAA,KAyMjBK,OAAOC,OAAON","file":"chunk/lang/English-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\n\r\n/**\r\n */\r\nexport namespace English {\r\n\r\n\t/**\r\n\t * Lowercase (QWERTY)\r\n\t *\r\n\t * https://wikipedia.org/wiki/Keyboard_layout#QWERTY\r\n\t */\r\n\texport class Lowercase extends Lang {\r\n\t\t// TODO.learn see https://wikipedia.org/wiki/Keyboard_layout#Dvorak\r\n\t\t// and https://wikipedia.org/wiki/Keyboard_layout#Colemak\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"engl-low\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn Lang.BuildUtils.WORD_FOR_WORD(LETTER_FREQUENCY);\r\n\t\t}\r\n\t}\r\n\tLowercase as Lang.ClassIf;\r\n\tObject.freeze(Lowercase);\r\n\tObject.freeze(Lowercase.prototype);\r\n\r\n\r\n\t/**\r\n\t * Mixed-Case (QWERTY)\r\n\t *\r\n\t * https://wikipedia.org/wiki/Keyboard_layout#QWERTY\r\n\t */\r\n\texport class MixedCase extends Lang {\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"engl-mix\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\tlet initializer: Lang.WeightedForwardMap = {};\r\n\t\t\tconst addMappings = (charSeqTransform: (cs: string) => string): void => {\r\n\t\t\t\tinitializer = Object.entries(LETTER_FREQUENCY).freeze().reduce(\r\n\t\t\t\t\t(accumulator, [_char,weight]) => {\r\n\t\t\t\t\t\tconst char: Lang.Char = charSeqTransform(_char);\r\n\t\t\t\t\t\taccumulator[char] = { seq: char, weight };\r\n\t\t\t\t\t\treturn accumulator;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinitializer,\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\taddMappings((cs) => cs.toLowerCase());\r\n\t\t\taddMappings((cs) => cs.toUpperCase());\r\n\t\t\treturn initializer;\r\n\t\t}\r\n\t}\r\n\tMixedCase as Lang.ClassIf;\r\n\tObject.freeze(MixedCase);\r\n\tObject.freeze(MixedCase.prototype);\r\n\r\n\r\n\texport namespace OldCellphone {\r\n\t\t/**\r\n\t\t * You see letters and type as if on an old cellphone's numeric keypad.\r\n\t\t */\r\n\t\texport class Encode extends Lang {\r\n\t\t\tpublic constructor(weightScaling: number) {\r\n\t\t\t\tsuper(\"engl-cell-enc\", weightScaling);\r\n\t\t\t}\r\n\t\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\t\treturn Object.entries(LETTER_FREQUENCY).freeze().reduce(\r\n\t\t\t\t\t(accumulator, [char,weight], index) => {\r\n\t\t\t\t\t\taccumulator[char] = { seq: NUMPAD[index]!, weight };\r\n\t\t\t\t\t\treturn accumulator;\r\n\t\t\t\t\t}, {},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\tEncode as Lang.ClassIf;\r\n\t\tObject.freeze(Encode);\r\n\t\tObject.freeze(Encode.prototype);\r\n\r\n\t\tconst NUMPAD = [3,3,3,3,3,4,3,4]\r\n\t\t\t.flatMap((val, idx) => {\r\n\t\t\t\tconst button = [];\r\n\t\t\t\tconst numpadKey = (1+idx).toString();\r\n\t\t\t\tfor (let str = numpadKey; str.length <= val; str += numpadKey) {\r\n\t\t\t\t\tbutton.push(str);\r\n\t\t\t\t}\r\n\t\t\t\treturn button;\r\n\t\t\t})\r\n\t\t\t.freeze();\r\n\t}\r\n\tObject.freeze(OldCellphone);\r\n\r\n\r\n\t/**\r\n\t * Values obtained from https://wikipedia.org/wiki/Letter_frequency\r\n\t */\r\n\texport const LETTER_FREQUENCY = Object.freeze(>JSON.parse(`{\r\n\t\t\"a\": 8.167, \"b\": 1.492, \"c\": 2.202, \"d\": 4.253,\r\n\t\t\"e\":12.702, \"f\": 2.228, \"g\": 2.015, \"h\": 6.094,\r\n\t\t\"i\": 6.966, \"j\": 0.153, \"k\": 1.292, \"l\": 4.025,\r\n\t\t\"m\": 2.406, \"n\": 6.749, \"o\": 7.507, \"p\": 1.929,\r\n\t\t\"q\": 0.095, \"r\": 5.987, \"s\": 6.327, \"t\": 9.356,\r\n\t\t\"u\": 2.758, \"v\": 0.978, \"w\": 2.560, \"x\": 0.150,\r\n\t\t\"y\": 1.994, \"z\": 0.077\r\n\t}`));\r\n\texport const LETTER_FREQUENCY_EXT = Object.freeze(Object.assign(\r\n\t\t(() => {\r\n\t\t\tconst freq: Record = {\r\n\t\t\t\t\".\": 65.3, \",\": 61.3, \"\\\"\": 26.7, \"'\": 24.3, \"-\": 15.3,\r\n\t\t\t\t\"?\": 5.6, \":\": 3.4, \"!\": 3.3, \";\": 3.2,\r\n\t\t\t};\r\n\t\t\tfor (let i = 0; i < 10; i++) {\r\n\t\t\t\tfreq[i.toString()] = 10; // TODO.learn what's a good value to use here?\r\n\t\t\t}\r\n\t\t\tlet sum = 0;\r\n\t\t\tfor (const key in freq) {\r\n\t\t\t\tsum += freq[key]!;\r\n\t\t\t}\r\n\t\t\tfor (const key in freq) {\r\n\t\t\t\tfreq[key as keyof typeof freq] *= 8 / sum;\r\n\t\t\t\t// ^ above constant: 8 is between the 3rd and 4th top\r\n\t\t\t\t// frequencies of alphabet letters in LETTER_FREQUENCY.\r\n\t\t\t}\r\n\t\t\treturn freq;\r\n\t\t})(),\r\n\t\tLETTER_FREQUENCY,\r\n\t));\r\n\r\n\t/**\r\n\t */\r\n\texport namespace Morse {\r\n\t\t/**\r\n\t\t * You see letters and numbers and you type sequences of dots and dashes.\r\n\t\t */\r\n\t\texport class Encode extends Lang {\r\n\t\t\tpublic constructor(weightScaling: number) {\r\n\t\t\t\tsuper(\"mors-enc\", weightScaling);\r\n\t\t\t}\r\n\t\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\t\tconst dict: Lang.WeightedForwardMap = {};\r\n\t\t\t\tfor (const [plain,cipher] of Object.entries(Dict).freeze()) {\r\n\t\t\t\t\tdict[plain] = { seq: cipher, weight: English.LETTER_FREQUENCY_EXT[plain]! };\r\n\t\t\t\t}\r\n\t\t\t\treturn dict;\r\n\t\t\t}\r\n\t\t}\r\n\t\tEncode as Lang.ClassIf;\r\n\t\tObject.freeze(Encode);\r\n\t\tObject.freeze(Encode.prototype);\r\n\r\n\r\n\t\t/**\r\n\t\t * You see dots and dashes and you type alphanumeric characters.\r\n\t\t */\r\n\t\texport class Decode extends Lang {\r\n\t\t\tpublic constructor(weightScaling: number) {\r\n\t\t\t\tsuper(\"mors-dec\", weightScaling);\r\n\t\t\t}\r\n\t\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\t\tconst dict: Lang.WeightedForwardMap = {};\r\n\t\t\t\tfor (const [plain,cipher] of Object.entries(Dict).freeze()) {\r\n\t\t\t\t\tconst morse = cipher.replace(/\\./g,\"•\").replace(/\\-/g,\"−\");\r\n\t\t\t\t\tdict[morse] = { seq: plain, weight: English.LETTER_FREQUENCY_EXT[plain]! };\r\n\t\t\t\t}\r\n\t\t\t\treturn dict;\r\n\t\t\t}\r\n\t\t}\r\n\t\tDecode as Lang.ClassIf;\r\n\t\tObject.freeze(Decode);\r\n\t\tObject.freeze(Decode.prototype);\r\n\r\n\t\t// Also see https://en.wikipedia.org/wiki/Prosigns_for_Morse_code\r\n\t\texport const Dict = Object.freeze(>JSON.parse(`{\r\n\t\t\t\"0\": \"-----\", \"5\": \".....\",\r\n\t\t\t\"1\": \".----\", \"6\": \"-....\",\r\n\t\t\t\"2\": \"..---\", \"7\": \"--...\",\r\n\t\t\t\"3\": \"...--\", \"8\": \"---..\",\r\n\t\t\t\"4\": \"....-\", \"9\": \"----.\",\r\n\r\n\t\t\t\"a\": \".-\" , \"n\": \"-.\" ,\r\n\t\t\t\"b\": \"-...\" , \"o\": \"---\" ,\r\n\t\t\t\"c\": \"-.-.\" , \"p\": \".--.\" ,\r\n\t\t\t\"d\": \"-..\" , \"q\": \"--.-\" ,\r\n\t\t\t\"e\": \".\" , \"r\": \".-.\" ,\r\n\t\t\t\"f\": \"..-.\" , \"s\": \"...\" ,\r\n\t\t\t\"g\": \"--.\" , \"t\": \"-\" ,\r\n\t\t\t\"h\": \"....\" , \"u\": \"..-\" ,\r\n\t\t\t\"i\": \"..\" , \"v\": \"...-\" ,\r\n\t\t\t\"j\": \".---\" , \"w\": \".--\" ,\r\n\t\t\t\"k\": \"-.-\" , \"x\": \"-..-\" ,\r\n\t\t\t\"l\": \".-..\" , \"y\": \"-.--\" ,\r\n\t\t\t\"m\": \"--\" , \"z\": \"--..\" ,\r\n\r\n\t\t\t\".\": \".-.-.-\",\r\n\t\t\t\",\": \"--..--\",\r\n\t\t\t\"?\": \"..--..\",\r\n\t\t\t\"!\": \"-.-.--\",\r\n\t\t\t\"-\": \"-....-\"\r\n\t\t}`));\r\n\t\t// \"/\": \"-..-.\",\r\n\t\t// \"@\": \".--.-.\",\r\n\t\t// \"(\": \"-.--.\",\r\n\t\t// \")\": \"-.--.-\"\r\n\t}\r\n\tObject.freeze(Morse);\r\n}\r\nObject.freeze(English);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/Japanese-ts.js b/server/chunk/lang/Japanese-ts.js index 3c91cee4..2b124b04 100644 --- a/server/chunk/lang/Japanese-ts.js +++ b/server/chunk/lang/Japanese-ts.js @@ -1,2 +1,2 @@ -exports.id=410,exports.ids=[410],exports.modules={800:(t,e,i)=>{"use strict";i.r(e),i.d(e,{Japanese:()=>n});var n,s=i(115);!function(t){class e extends s.U{constructor(t){super("japn-hir",t)}static BUILD(){return e.INITIALIZER}}Object.defineProperty(e,"INITIALIZER",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze(JSON.parse('{\n\t\t\t"の": { "seq": "no", "weight": 1918313 },\n\t\t\t"に": { "seq": "ni", "weight": 1108840 },\n\t\t\t"た": { "seq": "ta", "weight": 1067566},\n\t\t\t"い": { "seq": "i", "weight": 1060284 },\n\t\t\t"は": { "seq": "ha", "weight": 937811 },\n\t\t\t"を": { "seq": "wo", "weight": 936356 },\n\t\t\t"と": { "seq": "to", "weight": 927938 },\n\t\t\t"る": { "seq": "ru", "weight": 916652 },\n\t\t\t"が": { "seq": "ga", "weight": 860742 },\n\t\t\t"し": { "seq": "shi","weight": 848132 },\n\t\t\t"で": { "seq": "de", "weight": 764834 },\n\t\t\t"て": { "seq": "te", "weight": 758316 },\n\t\t\t"な": { "seq": "na", "weight": 720156 },\n\t\t\t"か": { "seq": "ka", "weight": 537294 },\n\t\t\t"れ": { "seq": "re", "weight": 450805 },\n\t\t\t"ら": { "seq": "ra", "weight": 42329 },\n\t\t\t"も": { "seq": "mo", "weight": 396142 },\n\t\t\t"う": { "seq": "u", "weight": 352965 },\n\t\t\t"す": { "seq": "su", "weight": 340654 },\n\t\t\t"り": { "seq": "ri", "weight": 333999 },\n\t\t\t"こ": { "seq": "ko", "weight": 312227 },\n\t\t\t"だ": { "seq": "da", "weight": 280911 },\n\t\t\t"ま": { "seq": "ma", "weight": 278599 },\n\t\t\t"さ": { "seq": "sa", "weight": 258960 },\n\t\t\t"き": { "seq": "ki", "weight": 233505 },\n\t\t\t"め": { "seq": "me", "weight": 223806 },\n\t\t\t"く": { "seq": "ku", "weight": 221960 },\n\t\t\t"あ": { "seq": "a" , "weight": 204256 },\n\t\t\t"け": { "seq": "ke", "weight": 199362 },\n\t\t\t"ど": { "seq": "do", "weight": 196555 },\n\t\t\t"ん": { "seq": "nn", "weight": 190068 },\n\t\t\t"え": { "seq": "e" , "weight": 163664 },\n\t\t\t"よ": { "seq": "yo", "weight": 154206 },\n\t\t\t"つ": { "seq": "tsu","weight": 153999 },\n\t\t\t"や": { "seq": "ya", "weight": 146156 },\n\t\t\t"そ": { "seq": "so", "weight": 131611 },\n\t\t\t"わ": { "seq": "wa", "weight": 123077 },\n\t\t\t"ち": { "seq": "chi","weight": 99183 },\n\t\t\t"み": { "seq": "mi", "weight": 89264 },\n\t\t\t"せ": { "seq": "se", "weight": 83444 },\n\t\t\t"ろ": { "seq": "ro", "weight": 73467 },\n\t\t\t"ば": { "seq": "ba", "weight": 72228 },\n\t\t\t"お": { "seq": "o", "weight": 65870 },\n\t\t\t"じ": { "seq": "ji", "weight": 56857 },\n\t\t\t"べ": { "seq": "be", "weight": 56005 },\n\t\t\t"ず": { "seq": "zu", "weight": 53256 },\n\t\t\t"げ": { "seq": "ge", "weight": 49126 },\n\t\t\t"ほ": { "seq": "ho", "weight": 48752 },\n\t\t\t"へ": { "seq": "he", "weight": 47013 },\n\t\t\t"び": { "seq": "bi", "weight": 32312 },\n\t\t\t"む": { "seq": "mu", "weight": 31212 },\n\t\t\t"ご": { "seq": "go", "weight": 26965 },\n\t\t\t"ね": { "seq": "ne", "weight": 23490 },\n\t\t\t"ぶ": { "seq": "bu", "weight": 23280 },\n\t\t\t"ぐ": { "seq": "gu", "weight": 21549 },\n\t\t\t"ぎ": { "seq": "gi", "weight": 19865 },\n\t\t\t"ひ": { "seq": "hi", "weight": 19148 },\n\t\t\t"づ": { "seq": "du", "weight": 13125 },\n\t\t\t"ぼ": { "seq": "bo", "weight": 12402 },\n\t\t\t"ざ": { "seq": "za", "weight": 12108 },\n\t\t\t"ふ": { "seq": "fu", "weight": 11606 },\n\t\t\t"ぞ": { "seq": "zo", "weight": 10047 },\n\t\t\t"ゆ": { "seq": "yu", "weight": 8486 },\n\t\t\t"ぜ": { "seq": "ze", "weight": 6893 },\n\t\t\t"ぬ": { "seq": "nu", "weight": 5124 },\n\t\t\t"ぱ": { "seq": "pa", "weight": 4349 },\n\t\t\t"ゅ": { "seq": "yu", "weight": 2755 },\n\t\t\t"ぴ": { "seq": "pi", "weight": 1608 },\n\t\t\t"ぽ": { "seq": "po", "weight": 1315 },\n\t\t\t"ぷ": { "seq": "pu", "weight": 986 },\n\t\t\t"ぺ": { "seq": "pe", "weight": 477 },\n\t\t\t"ぢ": { "seq": "di", "weight": 82 }\n\t\t}'))}),t.Hiragana=e,Object.freeze(e),Object.freeze(e.prototype);class i extends s.U{constructor(t){super("japn-kat",t)}static BUILD(){return i.INITIALIZER}}Object.defineProperty(i,"INITIALIZER",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze(JSON.parse('{\n\t\t\t"ン": { "seq": "nn", "weight": 290948 },\n\t\t\t"ル": { "seq": "ru", "weight": 189442 },\n\t\t\t"ス": { "seq": "su", "weight": 178214 },\n\t\t\t"ト": { "seq": "to", "weight": 162802 },\n\t\t\t"ア": { "seq": "a", "weight": 127845 },\n\t\t\t"イ": { "seq": "i", "weight": 120807 },\n\t\t\t"ラ": { "seq": "ra", "weight": 117203 },\n\t\t\t"リ": { "seq": "ri", "weight": 106744 },\n\t\t\t"ク": { "seq": "ku", "weight": 98209 },\n\t\t\t"カ": { "seq": "ka", "weight": 82982 },\n\t\t\t"シ": { "seq": "shi","weight": 80626 },\n\t\t\t"タ": { "seq": "ta", "weight": 75319 },\n\t\t\t"ロ": { "seq": "ro", "weight": 75301 },\n\t\t\t"ド": { "seq": "do", "weight": 74257 },\n\t\t\t"ジ": { "seq": "ji", "weight": 61171 },\n\t\t\t"フ": { "seq": "fu", "weight": 61115 },\n\t\t\t"レ": { "seq": "re", "weight": 60608 },\n\t\t\t"メ": { "seq": "me", "weight": 60230 },\n\t\t\t"コ": { "seq": "ko", "weight": 58724 },\n\t\t\t"マ": { "seq": "ma", "weight": 56123 },\n\t\t\t"プ": { "seq": "pu", "weight": 54159 },\n\t\t\t"テ": { "seq": "te", "weight": 53404 },\n\t\t\t"ム": { "seq": "mu", "weight": 50758 },\n\t\t\t"チ": { "seq": "chi","weight": 48437 },\n\t\t\t"バ": { "seq": "ba", "weight": 44970 },\n\t\t\t"ビ": { "seq": "bi", "weight": 44462 },\n\t\t\t"グ": { "seq": "gu", "weight": 40433 },\n\t\t\t"キ": { "seq": "ki", "weight": 39608 },\n\t\t\t"ウ": { "seq": "u", "weight": 39323 },\n\t\t\t"サ": { "seq": "sa", "weight": 39202 },\n\t\t\t"ニ": { "seq": "ni", "weight": 38711 },\n\t\t\t"ナ": { "seq": "na", "weight": 38047 },\n\t\t\t"エ": { "seq": "e", "weight": 36458 },\n\t\t\t"ブ": { "seq": "bu", "weight": 35920 },\n\t\t\t"パ": { "seq": "pa", "weight": 35416 },\n\t\t\t"セ": { "seq": "se", "weight": 34883 },\n\t\t\t"オ": { "seq": "o", "weight": 34718 },\n\t\t\t"デ": { "seq": "de", "weight": 32665 },\n\t\t\t"ミ": { "seq": "mi", "weight": 29262 },\n\t\t\t"ャ": { "seq": "ya", "weight": 28144 },\n\t\t\t"ボ": { "seq": "bo", "weight": 26651 },\n\t\t\t"ダ": { "seq": "da", "weight": 26396 },\n\t\t\t"ツ": { "seq": "tsu","weight": 24541 },\n\t\t\t"ポ": { "seq": "ho", "weight": 23742 },\n\t\t\t"ベ": { "seq": "be", "weight": 22755 },\n\t\t\t"ネ": { "seq": "ne", "weight": 22462 },\n\t\t\t"ガ": { "seq": "ga", "weight": 22061 },\n\t\t\t"ハ": { "seq": "ha", "weight": 21839 },\n\t\t\t"ワ": { "seq": "wa", "weight": 21784 },\n\t\t\t"ソ": { "seq": "so", "weight": 20784 },\n\t\t\t"ケ": { "seq": "ke", "weight": 20633 },\n\t\t\t"モ": { "seq": "ho", "weight": 20070 },\n\t\t\t"ノ": { "seq": "no", "weight": 19572 },\n\t\t\t"ズ": { "seq": "zu", "weight": 19240 },\n\t\t\t"ピ": { "seq": "pi", "weight": 18692 },\n\t\t\t"ホ": { "seq": "ho", "weight": 18204 },\n\t\t\t"ペ": { "seq": "pe", "weight": 14881 },\n\t\t\t"ゴ": { "seq": "go", "weight": 13931 },\n\t\t\t"ヤ": { "seq": "ya", "weight": 12526 },\n\t\t\t"ギ": { "seq": "gi", "weight": 10732 },\n\t\t\t"ヨ": { "seq": "yo", "weight": 10318 },\n\t\t\t"ザ": { "seq": "za", "weight": 10144 },\n\t\t\t"ァ": { "seq": "a", "weight": 10121 },\n\t\t\t"ゼ": { "seq": "ze", "weight": 7689 },\n\t\t\t"ヒ": { "seq": "hi", "weight": 7289 },\n\t\t\t"ヘ": { "seq": "he", "weight": 7129 },\n\t\t\t"ユ": { "seq": "yo", "weight": 6653 },\n\t\t\t"ゲ": { "seq": "ge", "weight": 6481 },\n\t\t\t"ォ": { "seq": "o", "weight": 6245 },\n\t\t\t"ヌ": { "seq": "nu", "weight": 2897 },\n\t\t\t"ゾ": { "seq": "zo", "weight": 2640 },\n\t\t\t"ヴ": { "seq": "vu", "weight": 1145 },\n\t\t\t"ヂ": { "seq": "di", "weight": 149 },\n\t\t\t"ヅ": { "seq": "du", "weight": 127 },\n\t\t\t"ヲ": { "seq": "wo", "weight": 122 }\n\t\t}'))}),t.Katakana=i,Object.freeze(i),Object.freeze(i.prototype)}(n||(n={})),Object.freeze(n)}}; +exports.id=410,exports.ids=[410],exports.modules={885:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Japanese:()=>w});var i=s(208);const h=JSON.parse('{"の":{"seq":"no","weight":1918313},"に":{"seq":"ni","weight":1108840},"た":{"seq":"ta","weight":1067566},"い":{"seq":"i","weight":1060284},"は":{"seq":"ha","weight":937811},"を":{"seq":"wo","weight":936356},"と":{"seq":"to","weight":927938},"る":{"seq":"ru","weight":916652},"が":{"seq":"ga","weight":860742},"し":{"seq":"shi","weight":848132},"で":{"seq":"de","weight":764834},"て":{"seq":"te","weight":758316},"な":{"seq":"na","weight":720156},"か":{"seq":"ka","weight":537294},"れ":{"seq":"re","weight":450805},"ら":{"seq":"ra","weight":42329},"も":{"seq":"mo","weight":396142},"う":{"seq":"u","weight":352965},"す":{"seq":"su","weight":340654},"り":{"seq":"ri","weight":333999},"こ":{"seq":"ko","weight":312227},"だ":{"seq":"da","weight":280911},"ま":{"seq":"ma","weight":278599},"さ":{"seq":"sa","weight":258960},"き":{"seq":"ki","weight":233505},"め":{"seq":"me","weight":223806},"く":{"seq":"ku","weight":221960},"あ":{"seq":"a","weight":204256},"け":{"seq":"ke","weight":199362},"ど":{"seq":"do","weight":196555},"ん":{"seq":"nn","weight":190068},"え":{"seq":"e","weight":163664},"よ":{"seq":"yo","weight":154206},"つ":{"seq":"tsu","weight":153999},"や":{"seq":"ya","weight":146156},"そ":{"seq":"so","weight":131611},"わ":{"seq":"wa","weight":123077},"ち":{"seq":"chi","weight":99183},"み":{"seq":"mi","weight":89264},"せ":{"seq":"se","weight":83444},"ろ":{"seq":"ro","weight":73467},"ば":{"seq":"ba","weight":72228},"お":{"seq":"o","weight":65870},"じ":{"seq":"ji","weight":56857},"べ":{"seq":"be","weight":56005},"ず":{"seq":"zu","weight":53256},"げ":{"seq":"ge","weight":49126},"ほ":{"seq":"ho","weight":48752},"へ":{"seq":"he","weight":47013},"び":{"seq":"bi","weight":32312},"む":{"seq":"mu","weight":31212},"ご":{"seq":"go","weight":26965},"ね":{"seq":"ne","weight":23490},"ぶ":{"seq":"bu","weight":23280},"ぐ":{"seq":"gu","weight":21549},"ぎ":{"seq":"gi","weight":19865},"ひ":{"seq":"hi","weight":19148},"づ":{"seq":"du","weight":13125},"ぼ":{"seq":"bo","weight":12402},"ざ":{"seq":"za","weight":12108},"ふ":{"seq":"fu","weight":11606},"ぞ":{"seq":"zo","weight":10047},"ゆ":{"seq":"yu","weight":8486},"ぜ":{"seq":"ze","weight":6893},"ぬ":{"seq":"nu","weight":5124},"ぱ":{"seq":"pa","weight":4349},"ゅ":{"seq":"yu","weight":2755},"ぴ":{"seq":"pi","weight":1608},"ぽ":{"seq":"po","weight":1315},"ぷ":{"seq":"pu","weight":986},"ぺ":{"seq":"pe","weight":477},"ぢ":{"seq":"di","weight":82}}'),g=JSON.parse('{"ン":{"seq":"nn","weight":290948},"ル":{"seq":"ru","weight":189442},"ス":{"seq":"su","weight":178214},"ト":{"seq":"to","weight":162802},"ア":{"seq":"a","weight":127845},"イ":{"seq":"i","weight":120807},"ラ":{"seq":"ra","weight":117203},"リ":{"seq":"ri","weight":106744},"ク":{"seq":"ku","weight":98209},"カ":{"seq":"ka","weight":82982},"シ":{"seq":"shi","weight":80626},"タ":{"seq":"ta","weight":75319},"ロ":{"seq":"ro","weight":75301},"ド":{"seq":"do","weight":74257},"ジ":{"seq":"ji","weight":61171},"フ":{"seq":"fu","weight":61115},"レ":{"seq":"re","weight":60608},"メ":{"seq":"me","weight":60230},"コ":{"seq":"ko","weight":58724},"マ":{"seq":"ma","weight":56123},"プ":{"seq":"pu","weight":54159},"テ":{"seq":"te","weight":53404},"ム":{"seq":"mu","weight":50758},"チ":{"seq":"chi","weight":48437},"バ":{"seq":"ba","weight":44970},"ビ":{"seq":"bi","weight":44462},"グ":{"seq":"gu","weight":40433},"キ":{"seq":"ki","weight":39608},"ウ":{"seq":"u","weight":39323},"サ":{"seq":"sa","weight":39202},"ニ":{"seq":"ni","weight":38711},"ナ":{"seq":"na","weight":38047},"エ":{"seq":"e","weight":36458},"ブ":{"seq":"bu","weight":35920},"パ":{"seq":"pa","weight":35416},"セ":{"seq":"se","weight":34883},"オ":{"seq":"o","weight":34718},"デ":{"seq":"de","weight":32665},"ミ":{"seq":"mi","weight":29262},"ャ":{"seq":"ya","weight":28144},"ボ":{"seq":"bo","weight":26651},"ダ":{"seq":"da","weight":26396},"ツ":{"seq":"tsu","weight":24541},"ポ":{"seq":"ho","weight":23742},"ベ":{"seq":"be","weight":22755},"ネ":{"seq":"ne","weight":22462},"ガ":{"seq":"ga","weight":22061},"ハ":{"seq":"ha","weight":21839},"ワ":{"seq":"wa","weight":21784},"ソ":{"seq":"so","weight":20784},"ケ":{"seq":"ke","weight":20633},"モ":{"seq":"ho","weight":20070},"ノ":{"seq":"no","weight":19572},"ズ":{"seq":"zu","weight":19240},"ピ":{"seq":"pi","weight":18692},"ホ":{"seq":"ho","weight":18204},"ペ":{"seq":"pe","weight":14881},"ゴ":{"seq":"go","weight":13931},"ヤ":{"seq":"ya","weight":12526},"ギ":{"seq":"gi","weight":10732},"ヨ":{"seq":"yo","weight":10318},"ザ":{"seq":"za","weight":10144},"ァ":{"seq":"a","weight":10121},"ゼ":{"seq":"ze","weight":7689},"ヒ":{"seq":"hi","weight":7289},"ヘ":{"seq":"he","weight":7129},"ユ":{"seq":"yo","weight":6653},"ゲ":{"seq":"ge","weight":6481},"ォ":{"seq":"o","weight":6245},"ヌ":{"seq":"nu","weight":2897},"ゾ":{"seq":"zo","weight":2640},"ヴ":{"seq":"vu","weight":1145},"ヂ":{"seq":"di","weight":149},"ヅ":{"seq":"du","weight":127},"ヲ":{"seq":"wo","weight":122}}');var w;!function(e){const t=class extends i.U{constructor(e){super("japn-hir",e)}static BUILD(){return t.INITIALIZER}};let s=t;s.INITIALIZER=Object.freeze(h),e.Hiragana=s,Object.freeze(s),Object.freeze(s.prototype);const w=class extends i.U{constructor(e){super("japn-kat",e)}static BUILD(){return w.INITIALIZER}};let q=w;q.INITIALIZER=Object.freeze(g),e.Katakana=q,Object.freeze(q),Object.freeze(q.prototype)}(w||(w={})),Object.freeze(w)}}; //# sourceMappingURL=Japanese-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Japanese-ts.js.map b/server/chunk/lang/Japanese-ts.js.map index 32dd1a49..22dbc73e 100644 --- a/server/chunk/lang/Japanese-ts.js.map +++ b/server/chunk/lang/Japanese-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Japanese-ts.js","sources":["../chunk/lang/Japanese-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Japanese.ts?"],"names":["Japanese","Lang","weightScaling","super","INITIALIZER","Object","freeze","Hiragana","prototype","Katakana"],"mappings":"gxJAUO,IAAUA,GAAV,SAAU,GAQT,sBAAuBC,EAAA,EAatB,YAAYC,GAClBC,MAAM,WAAYD,GAAA,eAGlB,OAAO,EAASE,cAjBX,UASQA,YAAcC,OAAOC,OAClC,GAVK,EAAMC,WAqBbF,OAAOC,OAAOC,GACdF,OAAOC,OAAOC,EAASC,WAOhB,sBAAuBP,EAAA,EAStB,YAAYC,GAClBC,MAAM,WAAYD,GAAA,eAGlB,OAAO,EAASE,cAbX,UAKQA,YAAcC,OAAOC,OAClC,GANK,EAAMG,WAiBbJ,OAAOC,OAAOG,GACdJ,OAAOC,OAAOG,EAASD,WAvDjB,CAAUR,MAAA,KAyDjBK,OAAOC,OAAON","file":"chunk/lang/Japanese-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\nimport JapnHirInitializer from \"./defs/japn-hir.json5\";\r\nimport JapnKatInitializer from \"./defs/japn-kat.json5\";\r\n\r\n/**\r\n * Japanese\r\n *\r\n * A namespace grouping implementations of {@link Japanese.Hiragana}\r\n * and {@link Japanese.Katakana} alphabets.\r\n */\r\nexport namespace Japanese {\r\n\r\n\t// TODO.impl https://wikipedia.org/wiki/Keyboard_layout#Japanese\r\n\t// add INITIALIZER entry field \"kana\", make hiragana a namespace\r\n\t// and separate romanization class from kana-keyboard class.\r\n\t/**\r\n\t * Hiragana\r\n\t */\r\n\texport class Hiragana extends Lang {\r\n\t\t/**\r\n\t\t * Values obtained from page 18 of the below pdf (p.499 of text)\r\n\t\t * https://link.springer.com/content/pdf/10.3758/BF03200819.pdf\r\n\t\t *\r\n\t\t * alternate unused source:\r\n\t\t * https://gawron.sdsu.edu/crypto/japanese_models/hir_freq.html\r\n\t\t * (https://gawron.sdsu.edu/crypto/lectures/hiragana.html)\r\n\t\t */\r\n\t\tpublic static INITIALIZER = Object.freeze(\r\n\t\t\tJapnHirInitializer as Lang.WeightedForwardMap\r\n\t\t);\r\n\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"japn-hir\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn Hiragana.INITIALIZER;\r\n\t\t}\r\n\t}\r\n\tHiragana as Lang.ClassIf;\r\n\tObject.freeze(Hiragana);\r\n\tObject.freeze(Hiragana.prototype);\r\n\r\n\r\n\r\n\t/**\r\n\t * Katakana\r\n\t */\r\n\texport class Katakana extends Lang {\r\n\t\t/**\r\n\t\t * Values obtained from page 19 of the below pdf (p.500 of text)\r\n\t\t * https://link.springer.com/content/pdf/10.3758/BF03200819.pdf\r\n\t\t */\r\n\t\tpublic static INITIALIZER = Object.freeze(\r\n\t\t\tJapnKatInitializer as Lang.WeightedForwardMap\r\n\t\t);\r\n\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"japn-kat\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn Katakana.INITIALIZER;\r\n\t\t}\r\n\t}\r\n\tKatakana as Lang.ClassIf;\r\n\tObject.freeze(Katakana);\r\n\tObject.freeze(Katakana.prototype);\r\n}\r\nObject.freeze(Japanese);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/Korean-ts.js b/server/chunk/lang/Korean-ts.js index a4a29a9e..e6c6f3cb 100644 --- a/server/chunk/lang/Korean-ts.js +++ b/server/chunk/lang/Korean-ts.js @@ -1,2 +1,2 @@ -exports.id=227,exports.ids=[227],exports.modules={3:(e,a,r)=>{"use strict";r.r(a),r.d(a,{Korean:()=>o});var o,m=r(115);!function(e){class a extends m.U{constructor(e){super("kore-dub",e)}static BUILD(){return t(((e,r,o)=>[e,r,o].flatMap((e=>e.atoms.split(""))).map((e=>a.DUB_KEYBOARD[e])).join("")))}}Object.defineProperty(a,"DUB_KEYBOARD",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({"":"",ㅂ:"q",ㅈ:"w",ㄷ:"e",ㄱ:"r",ㅅ:"t",ㅛ:"y",ㅕ:"u",ㅑ:"i",ㅐ:"o",ㅔ:"p",ㅁ:"a",ㄴ:"s",ㅇ:"d",ㄹ:"f",ㅎ:"g",ㅗ:"h",ㅓ:"j",ㅏ:"k",ㅣ:"l",ㅋ:"z",ㅌ:"x",ㅊ:"c",ㅍ:"v",ㅠ:"b",ㅜ:"n",ㅡ:"m",ㅃ:"Q",ㅉ:"W",ㄸ:"E",ㄲ:"R",ㅆ:"T",ㅒ:"O",ㅖ:"P"})}),e.Dubeolsik=a,Object.freeze(a),Object.freeze(a.prototype);class r extends m.U{constructor(e){super("kore-sub",e)}static BUILD(){return t(((e,a,o)=>r.SEB_KEYBOARD.INITIALS[e.value]+r.SEB_KEYBOARD.MEDIALS[a.value]+r.SEB_KEYBOARD.FINALS[o.value]))}}Object.defineProperty(r,"SEB_KEYBOARD",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({FINALS:{"":"",ㅎ:"1",ㅆ:"2",ㅂ:"3",ㅅ:"q",ㄹ:"w",ㅇ:"a",ㄴ:"s",ㅁ:"z",ㄱ:"x",ㄲ:"!",ㄺ:"@",ㅈ:"#",ㄿ:"$",ㄾ:"%",ㅍ:"Q",ㅌ:"W",ㄵ:"E",ㅀ:"R",ㄽ:"T",ㄷ:"A",ㄶ:"S",ㄼ:"D",ㄻ:"F",ㅊ:"Z",ㅄ:"X",ㅋ:"C",ㄳ:"V"},MEDIALS:{ㅛ:"4",ㅠ:"5",ㅑ:"6",ㅖ:"7",ㅢ:"8",ㅕ:"e",ㅐ:"r",ㅓ:"t",ㅣ:"d",ㅏ:"f",ㅡ:"g",ㅔ:"c",ㅗ:"v",ㅜ:"b",ㅒ:"G",ㅘ:"vf",ㅙ:"vr",ㅚ:"vd",ㅝ:"bt",ㅞ:"bc",ㅟ:"bd"},INITIALS:{ㅋ:"0",ㄹ:"y",ㄷ:"u",ㅁ:"i",ㅊ:"o",ㅍ:"p",ㄴ:"h",ㅇ:"j",ㄱ:"k",ㅈ:"l",ㅂ:";",ㅌ:"'",ㅅ:"n",ㅎ:"m",ㄲ:"!",ㄸ:"uu",ㅃ:";;",ㅆ:"nn",ㅉ:"l"}})}),e.Sebeolsik=r,Object.freeze(r),Object.freeze(r.prototype);class o extends m.U{constructor(e){super("kore-rom",e)}static BUILD(){return t(((e,a,r)=>e.roman+a.roman+r.roman))}}e.Romanization=o,Object.freeze(o),Object.freeze(o.prototype);const t=e=>{const a={};return n.forEach(((r,o)=>{s.forEach(((m,t)=>{l.forEach(((n,u)=>{let f=o;f=s.length*f+t,f=l.length*f+u;const v=String.fromCharCode(44032+f);a[v]={seq:e(r,m,n),weight:r.freq*m.freq*n.freq}}))}))})),a},n=Object.freeze([{value:"ㄱ",atoms:"ㄱ",roman:"g",freq:2.508206},{value:"ㄲ",atoms:"ㄱㄱ",roman:"kk",freq:.139215},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:1.278464},{value:"ㄷ",atoms:"ㄷ",roman:"d",freq:1.715174},{value:"ㄸ",atoms:"ㄷㄷ",roman:"tt",freq:.155508},{value:"ㄹ",atoms:"ㄹ",roman:"r",freq:1.30699},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.920276},{value:"ㅂ",atoms:"ㅂ",roman:"b",freq:.768992},{value:"ㅃ",atoms:"ㅂㅂ",roman:"pp",freq:.034349},{value:"ㅅ",atoms:"ㅅ",roman:"s",freq:1.620272},{value:"ㅆ",atoms:"ㅅㅅ",roman:"ss",freq:.062508},{value:"ㅇ",atoms:"ㅇ",roman:"-",freq:4.509884},{value:"ㅈ",atoms:"ㅈ",roman:"j",freq:1.603205},{value:"ㅉ",atoms:"ㅈㅈ",roman:"jj",freq:.043767},{value:"ㅊ",atoms:"ㅊ",roman:"ch",freq:.428943},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:.103017},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.228492},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.212015},{value:"ㅎ",atoms:"ㅎ",roman:"h",freq:1.360725}]),s=Object.freeze([{value:"ㅏ",atoms:"ㅏ",roman:"a",freq:4.559484},{value:"ㅐ",atoms:"ㅐ",roman:"ae",freq:.970054},{value:"ㅑ",atoms:"ㅑ",roman:"ya",freq:.150865},{value:"ㅒ",atoms:"ㅒ",roman:"yae",freq:.008922},{value:"ㅓ",atoms:"ㅓ",roman:"eo",freq:2.231959},{value:"ㅔ",atoms:"ㅔ",roman:"e",freq:.932004},{value:"ㅕ",atoms:"ㅕ",roman:"yeo",freq:1.000171},{value:"ㅖ",atoms:"ㅖ",roman:"ye",freq:.105095},{value:"ㅗ",atoms:"ㅗ",roman:"o",freq:2.040807},{value:"ㅘ",atoms:"ㅗㅏ",roman:"wa",freq:.38506},{value:"ㅙ",atoms:"ㅗㅐ",roman:"wae",freq:.02655},{value:"ㅚ",atoms:"ㅗㅣ",roman:"oe",freq:.236245},{value:"ㅛ",atoms:"ㅛ",roman:"yo",freq:.223892},{value:"ㅜ",atoms:"ㅜ",roman:"u",freq:1.402448},{value:"ㅝ",atoms:"ㅜㅓ",roman:"wo",freq:.135821},{value:"ㅞ",atoms:"ㅜㅔ",roman:"we",freq:.004818},{value:"ㅟ",atoms:"ㅜㅣ",roman:"wi",freq:.112462},{value:"ㅠ",atoms:"ㅠ",roman:"yu",freq:.111584},{value:"ㅡ",atoms:"ㅡ",roman:"eu",freq:2.727101},{value:"ㅢ",atoms:"ㅡㅣ",roman:"ui",freq:.425688},{value:"ㅣ",atoms:"ㅣ",roman:"i",freq:3.208973}]),l=Object.freeze([{value:"",atoms:"",roman:"",freq:17.06119},{value:"ㄱ",atoms:"ㄱ",roman:"k",freq:1.109483},{value:"ㄲ",atoms:"ㄱㄱ",roman:"k",freq:.016359},{value:"ㄳ",atoms:"ㄱㅅ",roman:"kt",freq:962e-6},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:3.580456},{value:"ㄵ",atoms:"ㄴㅈ",roman:"nt",freq:.007522},{value:"ㄶ",atoms:"ㄴㅎ",roman:"nt",freq:.081892},{value:"ㄷ",atoms:"ㄷ",roman:"t",freq:.049969},{value:"ㄹ",atoms:"ㄹ",roman:"l",freq:2.094454},{value:"ㄺ",atoms:"ㄹㄱ",roman:"lk",freq:.019761},{value:"ㄻ",atoms:"ㄹㅁ",roman:"lm",freq:.011711},{value:"ㄼ",atoms:"ㄹㅂ",roman:"lp",freq:.005885},{value:"ㄽ",atoms:"ㄹㅅ",roman:"lt",freq:13e-6},{value:"ㄾ",atoms:"ㄹㅌ",roman:"lt",freq:353e-6},{value:"ㄿ",atoms:"ㄹㅍ",roman:"lp",freq:21e-5},{value:"ㅀ",atoms:"ㄹㅎ",roman:"lt",freq:.00815},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.697015},{value:"ㅂ",atoms:"ㅂ",roman:"p",freq:.360526},{value:"ㅄ",atoms:"ㅂㅅ",roman:"pt",freq:.069739},{value:"ㅅ",atoms:"ㅅ",roman:"t",freq:.308934},{value:"ㅆ",atoms:"ㅅㅅ",roman:"t",freq:.590913},{value:"ㅇ",atoms:"ㅇ",roman:"ng",freq:1.66395},{value:"ㅈ",atoms:"ㅈ",roman:"t",freq:.046297},{value:"ㅊ",atoms:"ㅊ",roman:"t",freq:.026808},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:814e-6},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.068318},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.045664},{value:"ㅎ",atoms:"ㅎ",roman:"t",freq:.002595}])}(o||(o={})),Object.freeze(o)}}; +exports.id=227,exports.ids=[227],exports.modules={969:(e,a,r)=>{"use strict";r.r(a),r.d(a,{Korean:()=>o});var o,m=r(208);!function(e){const a=class extends m.U{constructor(e){super("kore-dub",e)}static BUILD(){return n(((e,r,o)=>[e,r,o].flatMap((e=>e.atoms.split(""))).freeze().map((e=>a.DUB_KEYBOARD[e])).join("")))}};let r=a;r.DUB_KEYBOARD=Object.freeze({"":"",ㅂ:"q",ㅈ:"w",ㄷ:"e",ㄱ:"r",ㅅ:"t",ㅛ:"y",ㅕ:"u",ㅑ:"i",ㅐ:"o",ㅔ:"p",ㅁ:"a",ㄴ:"s",ㅇ:"d",ㄹ:"f",ㅎ:"g",ㅗ:"h",ㅓ:"j",ㅏ:"k",ㅣ:"l",ㅋ:"z",ㅌ:"x",ㅊ:"c",ㅍ:"v",ㅠ:"b",ㅜ:"n",ㅡ:"m",ㅃ:"Q",ㅉ:"W",ㄸ:"E",ㄲ:"R",ㅆ:"T",ㅒ:"O",ㅖ:"P"}),e.Dubeolsik=r,Object.freeze(r),Object.freeze(r.prototype);const o=class extends m.U{constructor(e){super("kore-sub",e)}static BUILD(){return n(((e,a,r)=>o.SEB_KEYBOARD.INITIALS[e.value]+o.SEB_KEYBOARD.MEDIALS[a.value]+o.SEB_KEYBOARD.FINALS[r.value]))}};let t=o;t.SEB_KEYBOARD=Object.freeze({FINALS:{"":"",ㅎ:"1",ㅆ:"2",ㅂ:"3",ㅅ:"q",ㄹ:"w",ㅇ:"a",ㄴ:"s",ㅁ:"z",ㄱ:"x",ㄲ:"!",ㄺ:"@",ㅈ:"#",ㄿ:"$",ㄾ:"%",ㅍ:"Q",ㅌ:"W",ㄵ:"E",ㅀ:"R",ㄽ:"T",ㄷ:"A",ㄶ:"S",ㄼ:"D",ㄻ:"F",ㅊ:"Z",ㅄ:"X",ㅋ:"C",ㄳ:"V"},MEDIALS:{ㅛ:"4",ㅠ:"5",ㅑ:"6",ㅖ:"7",ㅢ:"8",ㅕ:"e",ㅐ:"r",ㅓ:"t",ㅣ:"d",ㅏ:"f",ㅡ:"g",ㅔ:"c",ㅗ:"v",ㅜ:"b",ㅒ:"G",ㅘ:"vf",ㅙ:"vr",ㅚ:"vd",ㅝ:"bt",ㅞ:"bc",ㅟ:"bd"},INITIALS:{ㅋ:"0",ㄹ:"y",ㄷ:"u",ㅁ:"i",ㅊ:"o",ㅍ:"p",ㄴ:"h",ㅇ:"j",ㄱ:"k",ㅈ:"l",ㅂ:";",ㅌ:"'",ㅅ:"n",ㅎ:"m",ㄲ:"!",ㄸ:"uu",ㅃ:";;",ㅆ:"nn",ㅉ:"l"}}),e.Sebeolsik=t,Object.freeze(t),Object.freeze(t.prototype);class s extends m.U{constructor(e){super("kore-rom",e)}static BUILD(){return n(((e,a,r)=>e.roman+a.roman+r.roman))}}e.Romanization=s,Object.freeze(s),Object.freeze(s.prototype);const n=e=>{const a={};return l.forEach(((r,o)=>{u.forEach(((m,t)=>{f.forEach(((s,n)=>{let l=o;l=u.length*l+t,l=f.length*l+n;const v=String.fromCharCode(44032+l);a[v]={seq:e(r,m,s),weight:r.freq*m.freq*s.freq}}))}))})),a},l=Object.freeze([{value:"ㄱ",atoms:"ㄱ",roman:"g",freq:2.508206},{value:"ㄲ",atoms:"ㄱㄱ",roman:"kk",freq:.139215},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:1.278464},{value:"ㄷ",atoms:"ㄷ",roman:"d",freq:1.715174},{value:"ㄸ",atoms:"ㄷㄷ",roman:"tt",freq:.155508},{value:"ㄹ",atoms:"ㄹ",roman:"r",freq:1.30699},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.920276},{value:"ㅂ",atoms:"ㅂ",roman:"b",freq:.768992},{value:"ㅃ",atoms:"ㅂㅂ",roman:"pp",freq:.034349},{value:"ㅅ",atoms:"ㅅ",roman:"s",freq:1.620272},{value:"ㅆ",atoms:"ㅅㅅ",roman:"ss",freq:.062508},{value:"ㅇ",atoms:"ㅇ",roman:"-",freq:4.509884},{value:"ㅈ",atoms:"ㅈ",roman:"j",freq:1.603205},{value:"ㅉ",atoms:"ㅈㅈ",roman:"jj",freq:.043767},{value:"ㅊ",atoms:"ㅊ",roman:"ch",freq:.428943},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:.103017},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.228492},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.212015},{value:"ㅎ",atoms:"ㅎ",roman:"h",freq:1.360725}]),u=Object.freeze([{value:"ㅏ",atoms:"ㅏ",roman:"a",freq:4.559484},{value:"ㅐ",atoms:"ㅐ",roman:"ae",freq:.970054},{value:"ㅑ",atoms:"ㅑ",roman:"ya",freq:.150865},{value:"ㅒ",atoms:"ㅒ",roman:"yae",freq:.008922},{value:"ㅓ",atoms:"ㅓ",roman:"eo",freq:2.231959},{value:"ㅔ",atoms:"ㅔ",roman:"e",freq:.932004},{value:"ㅕ",atoms:"ㅕ",roman:"yeo",freq:1.000171},{value:"ㅖ",atoms:"ㅖ",roman:"ye",freq:.105095},{value:"ㅗ",atoms:"ㅗ",roman:"o",freq:2.040807},{value:"ㅘ",atoms:"ㅗㅏ",roman:"wa",freq:.38506},{value:"ㅙ",atoms:"ㅗㅐ",roman:"wae",freq:.02655},{value:"ㅚ",atoms:"ㅗㅣ",roman:"oe",freq:.236245},{value:"ㅛ",atoms:"ㅛ",roman:"yo",freq:.223892},{value:"ㅜ",atoms:"ㅜ",roman:"u",freq:1.402448},{value:"ㅝ",atoms:"ㅜㅓ",roman:"wo",freq:.135821},{value:"ㅞ",atoms:"ㅜㅔ",roman:"we",freq:.004818},{value:"ㅟ",atoms:"ㅜㅣ",roman:"wi",freq:.112462},{value:"ㅠ",atoms:"ㅠ",roman:"yu",freq:.111584},{value:"ㅡ",atoms:"ㅡ",roman:"eu",freq:2.727101},{value:"ㅢ",atoms:"ㅡㅣ",roman:"ui",freq:.425688},{value:"ㅣ",atoms:"ㅣ",roman:"i",freq:3.208973}]),f=Object.freeze([{value:"",atoms:"",roman:"",freq:17.06119},{value:"ㄱ",atoms:"ㄱ",roman:"k",freq:1.109483},{value:"ㄲ",atoms:"ㄱㄱ",roman:"k",freq:.016359},{value:"ㄳ",atoms:"ㄱㅅ",roman:"kt",freq:962e-6},{value:"ㄴ",atoms:"ㄴ",roman:"n",freq:3.580456},{value:"ㄵ",atoms:"ㄴㅈ",roman:"nt",freq:.007522},{value:"ㄶ",atoms:"ㄴㅎ",roman:"nt",freq:.081892},{value:"ㄷ",atoms:"ㄷ",roman:"t",freq:.049969},{value:"ㄹ",atoms:"ㄹ",roman:"l",freq:2.094454},{value:"ㄺ",atoms:"ㄹㄱ",roman:"lk",freq:.019761},{value:"ㄻ",atoms:"ㄹㅁ",roman:"lm",freq:.011711},{value:"ㄼ",atoms:"ㄹㅂ",roman:"lp",freq:.005885},{value:"ㄽ",atoms:"ㄹㅅ",roman:"lt",freq:13e-6},{value:"ㄾ",atoms:"ㄹㅌ",roman:"lt",freq:353e-6},{value:"ㄿ",atoms:"ㄹㅍ",roman:"lp",freq:21e-5},{value:"ㅀ",atoms:"ㄹㅎ",roman:"lt",freq:.00815},{value:"ㅁ",atoms:"ㅁ",roman:"m",freq:.697015},{value:"ㅂ",atoms:"ㅂ",roman:"p",freq:.360526},{value:"ㅄ",atoms:"ㅂㅅ",roman:"pt",freq:.069739},{value:"ㅅ",atoms:"ㅅ",roman:"t",freq:.308934},{value:"ㅆ",atoms:"ㅅㅅ",roman:"t",freq:.590913},{value:"ㅇ",atoms:"ㅇ",roman:"ng",freq:1.66395},{value:"ㅈ",atoms:"ㅈ",roman:"t",freq:.046297},{value:"ㅊ",atoms:"ㅊ",roman:"t",freq:.026808},{value:"ㅋ",atoms:"ㅋ",roman:"k",freq:814e-6},{value:"ㅌ",atoms:"ㅌ",roman:"t",freq:.068318},{value:"ㅍ",atoms:"ㅍ",roman:"p",freq:.045664},{value:"ㅎ",atoms:"ㅎ",roman:"t",freq:.002595}])}(o||(o={})),Object.freeze(o)}}; //# sourceMappingURL=Korean-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Korean-ts.js.map b/server/chunk/lang/Korean-ts.js.map index 2b3ddb2e..405c3285 100644 --- a/server/chunk/lang/Korean-ts.js.map +++ b/server/chunk/lang/Korean-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Korean-ts.js","sources":["../chunk/lang/Korean-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Korean.ts?"],"names":["Korean","weightScaling","super","INITIALIZE","ij","mj","fj","flatMap","jamos","atoms","split","freeze","map","atom","DUB_KEYBOARD","join","Object","Dubeolsik","prototype","SEB_KEYBOARD","INITIALS","value","MEDIALS","FINALS","Sebeolsik","roman","Romanization","seqBuilder","forwardDict","forEach","initialJamo","initialIdx","medialJamo","medialIdx","finalJamo","finalIdx","offset","length","char","String","fromCharCode","seq","weight","freq"],"mappings":"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","file":"chunk/lang/Korean-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\n\r\n\r\n/**\r\n * # Korean\r\n *\r\n * [Frequency data](https://www.koreascience.or.kr/article/JAKO201514751644957.page).\r\n * Another paper (that I didn't use): https://www.koreascience.or.kr/article/JAKO201507158233900.page\r\n *\r\n * I have normalized jamo frequency values to an average value of one.\r\n * In the above data sources there is no data for when a character has\r\n * no final jamo. I looked at [this](https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Korean_5800)\r\n * to make an estimate for that value.\r\n *\r\n * https://wikipedia.org/wiki/Hangul_consonant_and_vowel_tables#Hangul_syllables\r\n * https://wikipedia.org/wiki/Korean_language_and_computers#Hangul_in_Unicode\r\n * https://wikipedia.org/wiki/Hangul_Jamo_(Unicode_block)\r\n */\r\nexport namespace Korean {\r\n\r\n\t/**\r\n\t * # Dubeolsik (3-row layout)\r\n\t *\r\n\t * https://wikipedia.org/wiki/Keyboard_layout#Dubeolsik\r\n\t * https://www.branah.com/korean\r\n\t */\r\n\texport class Dubeolsik extends Lang {\r\n\t\tprivate static readonly DUB_KEYBOARD = Object.freeze({\r\n\t\t\t\"\": \"\",\r\n\t\t\t\"ㅂ\": \"q\", \"ㅈ\": \"w\", \"ㄷ\": \"e\", \"ㄱ\": \"r\", \"ㅅ\": \"t\",\r\n\t\t\t\"ㅛ\": \"y\", \"ㅕ\": \"u\", \"ㅑ\": \"i\", \"ㅐ\": \"o\", \"ㅔ\": \"p\",\r\n\t\t\t\"ㅁ\": \"a\", \"ㄴ\": \"s\", \"ㅇ\": \"d\", \"ㄹ\": \"f\", \"ㅎ\": \"g\",\r\n\t\t\t\"ㅗ\": \"h\", \"ㅓ\": \"j\", \"ㅏ\": \"k\", \"ㅣ\": \"l\",\r\n\t\t\t\"ㅋ\": \"z\", \"ㅌ\": \"x\", \"ㅊ\": \"c\", \"ㅍ\": \"v\", \"ㅠ\": \"b\",\r\n\t\t\t\"ㅜ\": \"n\", \"ㅡ\": \"m\",\r\n\t\t\t\"ㅃ\": \"Q\", \"ㅉ\": \"W\", \"ㄸ\": \"E\", \"ㄲ\": \"R\", \"ㅆ\": \"T\",\r\n\t\t\t\"ㅒ\": \"O\", \"ㅖ\": \"P\",\r\n\t\t});\r\n\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"kore-dub\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn INITIALIZE((ij, mj, fj) => {\r\n\t\t\t\ttype Atoms = Array;\r\n\t\t\t\tconst atoms = ([ij, mj, fj].flatMap((jamos) => jamos.atoms.split(\"\")) as Atoms).freeze();\r\n\t\t\t\treturn atoms.map((atom) => Dubeolsik.DUB_KEYBOARD[atom]).join(\"\");\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tDubeolsik as Lang.ClassIf;\r\n\tObject.freeze(Dubeolsik);\r\n\tObject.freeze(Dubeolsik.prototype);\r\n\r\n\r\n\t/**\r\n\t * # Sebeolsik (5-row layout)\r\n\t *\r\n\t * \\*Note: the branah link below is to an earlier version of\r\n\t * Sebeolsik, [Sebeolsik 390](https://wikipedia.org/wiki/Keyboard_layout#Sebeolsik_390).\r\n\t *\r\n\t * https://wikipedia.org/wiki/Keyboard_layout#Sebeolsik_Final\r\n\t * https://www.branah.com/sebeolsik\r\n\t */\r\n\texport class Sebeolsik extends Lang {\r\n\t\tprivate static readonly SEB_KEYBOARD = Object.freeze({\r\n\t\t\t// Finals and consonant clusters are found on the left.\r\n\t\t\tFINALS: {\r\n\t\t\t\t\"\": \"\",\r\n\t\t\t\t\"ㅎ\": \"1\", \"ㅆ\": \"2\", \"ㅂ\": \"3\", // 1-row\r\n\t\t\t\t\"ㅅ\": \"q\", \"ㄹ\": \"w\", // q-row\r\n\t\t\t\t\"ㅇ\": \"a\", \"ㄴ\": \"s\", // a-row\r\n\t\t\t\t\"ㅁ\": \"z\", \"ㄱ\": \"x\", // z-row\r\n\t\t\t\t\"ㄲ\": \"!\", \"ㄺ\": \"@\", \"ㅈ\": \"#\", \"ㄿ\": \"$\", \"ㄾ\": \"%\", // !-row\r\n\t\t\t\t\"ㅍ\": \"Q\", \"ㅌ\": \"W\", \"ㄵ\": \"E\", \"ㅀ\": \"R\", \"ㄽ\": \"T\", // Q-row\r\n\t\t\t\t\"ㄷ\": \"A\", \"ㄶ\": \"S\", \"ㄼ\": \"D\", \"ㄻ\": \"F\", // A-row\r\n\t\t\t\t\"ㅊ\": \"Z\", \"ㅄ\": \"X\", \"ㅋ\": \"C\", \"ㄳ\": \"V\", // Z-row\r\n\t\t\t},\r\n\t\t\t// Medials are found in the middle.\r\n\t\t\tMEDIALS: {\r\n\t\t\t\t\"ㅛ\": \"4\", \"ㅠ\": \"5\", \"ㅑ\": \"6\", \"ㅖ\": \"7\", \"ㅢ\": \"8\", // \"ㅜ\": \"9\",\r\n\t\t\t\t\"ㅕ\": \"e\", \"ㅐ\": \"r\", \"ㅓ\": \"t\", // q-row\r\n\t\t\t\t\"ㅣ\": \"d\", \"ㅏ\": \"f\", \"ㅡ\": \"g\", // a-row\r\n\t\t\t\t\"ㅔ\": \"c\", \"ㅗ\": \"v\", \"ㅜ\": \"b\", // z-row\r\n\t\t\t\t\"ㅒ\": \"G\",\r\n\t\t\t\t// Things that don't have dedicated keys:\r\n\t\t\t\t\"ㅘ\": \"vf\", \"ㅙ\": \"vr\", \"ㅚ\": \"vd\", \"ㅝ\": \"bt\", \"ㅞ\": \"bc\", \"ㅟ\": \"bd\",\r\n\t\t\t},\r\n\t\t\t// Initials are found on the right.\r\n\t\t\tINITIALS: {\r\n\t\t\t\t\"ㅋ\": \"0\", // 1-row\r\n\t\t\t\t\"ㄹ\": \"y\", \"ㄷ\": \"u\", \"ㅁ\": \"i\", \"ㅊ\": \"o\", \"ㅍ\": \"p\", // q-row\r\n\t\t\t\t\"ㄴ\": \"h\", \"ㅇ\": \"j\", \"ㄱ\": \"k\", \"ㅈ\": \"l\", \"ㅂ\": \";\", \"ㅌ\": \"'\", // a-row\r\n\t\t\t\t\"ㅅ\": \"n\", \"ㅎ\": \"m\", // z-row\r\n\t\t\t\t\"ㄲ\": \"!\", // !-row\r\n\t\t\t\t// NOTE: If we included numbers, this is where they would go.\r\n\t\t\t\t// Things that don't have dedicated keys:\r\n\t\t\t\t\"ㄸ\": \"uu\", \"ㅃ\": \";;\", \"ㅆ\": \"nn\", \"ㅉ\": \"l\",\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"kore-sub\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn INITIALIZE((ij, mj, fj) => {\r\n\t\t\t\treturn Sebeolsik.SEB_KEYBOARD.INITIALS[ij.value]\r\n\t\t\t\t\t+ Sebeolsik.SEB_KEYBOARD.MEDIALS[mj.value]\r\n\t\t\t\t\t+ Sebeolsik.SEB_KEYBOARD.FINALS[fj.value];\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tSebeolsik as Lang.ClassIf;\r\n\tObject.freeze(Sebeolsik);\r\n\tObject.freeze(Sebeolsik.prototype);\r\n\r\n\r\n\t/**\r\n\t * # Korean Romanization\r\n\t *\r\n\t * https://wikipedia.org/wiki/Revised_Romanization_of_Korean#Transcription_rules\r\n\t * https://wikipedia.org/wiki/Romanization_of_Korean#Systems\r\n\t * https://www.korean.go.kr/front_eng/roman/roman_01.do\r\n\t */\r\n\texport class Romanization extends Lang {\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"kore-rom\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn INITIALIZE((ij, mj, fj) => {\r\n\t\t\t\treturn ij.roman + mj.roman + fj.roman;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tRomanization as Lang.ClassIf;\r\n\tObject.freeze(Romanization);\r\n\tObject.freeze(Romanization.prototype);\r\n\r\n\r\n\tconst UNICODE_HANGUL_SYLLABLES_BASE = 0xAC00;\r\n\r\n\ttype JamoDesc = Readonly<{\r\n\t\tvalue: string; // not used. for readability.\r\n\t\tatoms: string; // used for keyboard mapping.\r\n\t\troman: string;\r\n\t}>;\r\n\r\n\t/**\r\n\t * Helper for each implementation's constructors.\r\n\t *\r\n\t * @param seqBuilder - Return a {@link Lang.Seq} based on the three\r\n\t * parts of a syllable (passed in to this as parameters).\r\n\t * @returns A transformation of initializer information to a form\r\n\t * suitable for consumption by the {@link Lang} constructor.\r\n\t */\r\n\tconst INITIALIZE = (\r\n\t\tseqBuilder: SeqBuilder,\r\n\t): Lang.WeightedForwardMap => {\r\n\t\tconst forwardDict: Lang.WeightedForwardMap = {};\r\n\t\tINITIALS.forEach((initialJamo, initialIdx) => {\r\n\t\t\tMEDIALS.forEach((medialJamo, medialIdx) => {\r\n\t\t\t\tFINALS.forEach((finalJamo, finalIdx) => {\r\n\t\t\t\t\t// base + f + F(m + Mi)\r\n\t\t\t\t\tlet offset = initialIdx;\r\n\t\t\t\t\toffset = MEDIALS.length * offset + medialIdx;\r\n\t\t\t\t\toffset = FINALS.length * offset + finalIdx;\r\n\t\t\t\t\tconst char = String.fromCharCode(UNICODE_HANGUL_SYLLABLES_BASE + offset);\r\n\t\t\t\t\tforwardDict[char] = {\r\n\t\t\t\t\t\tseq: seqBuilder(initialJamo, medialJamo, finalJamo),\r\n\t\t\t\t\t\tweight: initialJamo.freq * medialJamo.freq * finalJamo.freq,\r\n\t\t\t\t\t\t// TODO.impl remove the above fallback once weights dict gets implemented.\r\n\t\t\t\t\t\t// Also then fix the internal `averageWeight` argument in each implementation.\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn forwardDict;\r\n\t};\r\n\ttype SeqBuilder = { (\r\n\t\tij: typeof INITIALS[number],\r\n\t\tmj: typeof MEDIALS[number],\r\n\t\tfj: typeof FINALS[number],\r\n\t): Lang.Seq, };\r\n\r\n\t/**\r\n\t * # Initial Jamo (Choseong)\r\n\t */\r\n\tconst INITIALS = Object.freeze([\r\n\t\t{ value: \"ㄱ\", atoms: \"ㄱ\", roman: \"g\" , freq: 2.508206 },\r\n\t\t{ value: \"ㄲ\", atoms: \"ㄱㄱ\", roman: \"kk\", freq: 0.139215 },\r\n\t\t{ value: \"ㄴ\", atoms: \"ㄴ\", roman: \"n\" , freq: 1.278464 },\r\n\t\t{ value: \"ㄷ\", atoms: \"ㄷ\", roman: \"d\" , freq: 1.715174 },\r\n\t\t{ value: \"ㄸ\", atoms: \"ㄷㄷ\", roman: \"tt\", freq: 0.155508 },\r\n\t\t{ value: \"ㄹ\", atoms: \"ㄹ\", roman: \"r\" , freq: 1.306990 },\r\n\t\t{ value: \"ㅁ\", atoms: \"ㅁ\", roman: \"m\" , freq: 0.920276 },\r\n\t\t{ value: \"ㅂ\", atoms: \"ㅂ\", roman: \"b\" , freq: 0.768992 },\r\n\t\t{ value: \"ㅃ\", atoms: \"ㅂㅂ\", roman: \"pp\", freq: 0.034349 },\r\n\t\t{ value: \"ㅅ\", atoms: \"ㅅ\", roman: \"s\" , freq: 1.620272 },\r\n\t\t{ value: \"ㅆ\", atoms: \"ㅅㅅ\", roman: \"ss\", freq: 0.062508 },\r\n\t\t{ value: \"ㅇ\", atoms: \"ㅇ\", roman: \"-\" , freq: 4.509884 }, // TODO.learn \"-\" ? see wikipedia\r\n\t\t{ value: \"ㅈ\", atoms: \"ㅈ\", roman: \"j\" , freq: 1.603205 },\r\n\t\t{ value: \"ㅉ\", atoms: \"ㅈㅈ\", roman: \"jj\", freq: 0.043767 },\r\n\t\t{ value: \"ㅊ\", atoms: \"ㅊ\", roman: \"ch\", freq: 0.428943 },\r\n\t\t{ value: \"ㅋ\", atoms: \"ㅋ\", roman: \"k\" , freq: 0.103017 },\r\n\t\t{ value: \"ㅌ\", atoms: \"ㅌ\", roman: \"t\" , freq: 0.228492 },\r\n\t\t{ value: \"ㅍ\", atoms: \"ㅍ\", roman: \"p\" , freq: 0.212015 },\r\n\t\t{ value: \"ㅎ\", atoms: \"ㅎ\", roman: \"h\" , freq: 1.360725 },\r\n\t]);\r\n\tINITIALS as TU.RoArr; // type-check\r\n\r\n\t/**\r\n\t * # Medial Jamo (Jungseong)\r\n\t */\r\n\tconst MEDIALS = Object.freeze([\r\n\t\t{ value: \"ㅏ\", atoms: \"ㅏ\", roman: \"a\" , freq: 4.559484 },\r\n\t\t{ value: \"ㅐ\", atoms: \"ㅐ\", roman: \"ae\" , freq: 0.970054 },\r\n\t\t{ value: \"ㅑ\", atoms: \"ㅑ\", roman: \"ya\" , freq: 0.150865 },\r\n\t\t{ value: \"ㅒ\", atoms: \"ㅒ\", roman: \"yae\", freq: 0.008922 },\r\n\t\t{ value: \"ㅓ\", atoms: \"ㅓ\", roman: \"eo\" , freq: 2.231959 },\r\n\t\t{ value: \"ㅔ\", atoms: \"ㅔ\", roman: \"e\" , freq: 0.932004 },\r\n\t\t{ value: \"ㅕ\", atoms: \"ㅕ\", roman: \"yeo\", freq: 1.000171 },\r\n\t\t{ value: \"ㅖ\", atoms: \"ㅖ\", roman: \"ye\" , freq: 0.105095 },\r\n\t\t{ value: \"ㅗ\", atoms: \"ㅗ\", roman: \"o\" , freq: 2.040807 },\r\n\t\t{ value: \"ㅘ\", atoms: \"ㅗㅏ\", roman: \"wa\" , freq: 0.385060 },\r\n\t\t{ value: \"ㅙ\", atoms: \"ㅗㅐ\", roman: \"wae\", freq: 0.026550 },\r\n\t\t{ value: \"ㅚ\", atoms: \"ㅗㅣ\", roman: \"oe\" , freq: 0.236245 },\r\n\t\t{ value: \"ㅛ\", atoms: \"ㅛ\", roman: \"yo\" , freq: 0.223892 },\r\n\t\t{ value: \"ㅜ\", atoms: \"ㅜ\", roman: \"u\" , freq: 1.402448 },\r\n\t\t{ value: \"ㅝ\", atoms: \"ㅜㅓ\", roman: \"wo\" , freq: 0.135821 },\r\n\t\t{ value: \"ㅞ\", atoms: \"ㅜㅔ\", roman: \"we\" , freq: 0.004818 },\r\n\t\t{ value: \"ㅟ\", atoms: \"ㅜㅣ\", roman: \"wi\" , freq: 0.112462 },\r\n\t\t{ value: \"ㅠ\", atoms: \"ㅠ\", roman: \"yu\" , freq: 0.111584 },\r\n\t\t{ value: \"ㅡ\", atoms: \"ㅡ\", roman: \"eu\" , freq: 2.727101 },\r\n\t\t{ value: \"ㅢ\", atoms: \"ㅡㅣ\", roman: \"ui\" , freq: 0.425688 },\r\n\t\t{ value: \"ㅣ\", atoms: \"ㅣ\", roman: \"i\" , freq: 3.208973 },\r\n\t]);\r\n\tMEDIALS as TU.RoArr; // type-check\r\n\r\n\t/**\r\n\t * # Final Jamo (Jongseong)\r\n\t */\r\n\tconst FINALS = Object.freeze([\r\n\t\t{ value: \"\", atoms: \"\", roman: \"\" , freq: 17.061190 },\r\n\t\t{ value: \"ㄱ\", atoms: \"ㄱ\", roman: \"k\" , freq: 1.109483 },\r\n\t\t{ value: \"ㄲ\", atoms: \"ㄱㄱ\", roman: \"k\" , freq: 0.016359 },\r\n\t\t{ value: \"ㄳ\", atoms: \"ㄱㅅ\", roman: \"kt\", freq: 0.000962 },\r\n\t\t{ value: \"ㄴ\", atoms: \"ㄴ\", roman: \"n\" , freq: 3.580456 },\r\n\t\t{ value: \"ㄵ\", atoms: \"ㄴㅈ\", roman: \"nt\", freq: 0.007522 },\r\n\t\t{ value: \"ㄶ\", atoms: \"ㄴㅎ\", roman: \"nt\", freq: 0.081892 },\r\n\t\t{ value: \"ㄷ\", atoms: \"ㄷ\", roman: \"t\" , freq: 0.049969 },\r\n\t\t{ value: \"ㄹ\", atoms: \"ㄹ\", roman: \"l\" , freq: 2.094454 },\r\n\t\t{ value: \"ㄺ\", atoms: \"ㄹㄱ\", roman: \"lk\", freq: 0.019761 },\r\n\t\t{ value: \"ㄻ\", atoms: \"ㄹㅁ\", roman: \"lm\", freq: 0.011711 },\r\n\t\t{ value: \"ㄼ\", atoms: \"ㄹㅂ\", roman: \"lp\", freq: 0.005885 },\r\n\t\t{ value: \"ㄽ\", atoms: \"ㄹㅅ\", roman: \"lt\", freq: 0.000013 },\r\n\t\t{ value: \"ㄾ\", atoms: \"ㄹㅌ\", roman: \"lt\", freq: 0.000353 },\r\n\t\t{ value: \"ㄿ\", atoms: \"ㄹㅍ\", roman: \"lp\", freq: 0.000210 },\r\n\t\t{ value: \"ㅀ\", atoms: \"ㄹㅎ\", roman: \"lt\", freq: 0.008150 },\r\n\t\t{ value: \"ㅁ\", atoms: \"ㅁ\", roman: \"m\" , freq: 0.697015 },\r\n\t\t{ value: \"ㅂ\", atoms: \"ㅂ\", roman: \"p\" , freq: 0.360526 },\r\n\t\t{ value: \"ㅄ\", atoms: \"ㅂㅅ\", roman: \"pt\", freq: 0.069739 },\r\n\t\t{ value: \"ㅅ\", atoms: \"ㅅ\", roman: \"t\" , freq: 0.308934 },\r\n\t\t{ value: \"ㅆ\", atoms: \"ㅅㅅ\", roman: \"t\" , freq: 0.590913 },\r\n\t\t{ value: \"ㅇ\", atoms: \"ㅇ\", roman: \"ng\", freq: 1.663950 },\r\n\t\t{ value: \"ㅈ\", atoms: \"ㅈ\", roman: \"t\" , freq: 0.046297 },\r\n\t\t{ value: \"ㅊ\", atoms: \"ㅊ\", roman: \"t\" , freq: 0.026808 },\r\n\t\t{ value: \"ㅋ\", atoms: \"ㅋ\", roman: \"k\" , freq: 0.000814 },\r\n\t\t{ value: \"ㅌ\", atoms: \"ㅌ\", roman: \"t\" , freq: 0.068318 },\r\n\t\t{ value: \"ㅍ\", atoms: \"ㅍ\", roman: \"p\" , freq: 0.045664 },\r\n\t\t{ value: \"ㅎ\", atoms: \"ㅎ\", roman: \"t\" , freq: 0.002595 },\r\n\t]);\r\n\tFINALS as TU.RoArr; // type-check\r\n}\r\nObject.freeze(Korean);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/Ngrams-ts.js b/server/chunk/lang/Ngrams-ts.js index ab0e63f9..12d9053f 100644 --- a/server/chunk/lang/Ngrams-ts.js +++ b/server/chunk/lang/Ngrams-ts.js @@ -1,2 +1,2 @@ -exports.id=273,exports.ids=[273],exports.modules={492:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Ngrams:()=>n});var r=a(115);const i=JSON.parse('{"in":22.964,"th":22.691,"er":20.307,"re":18.511,"he":18.141,"an":17.958,"on":17.113,"es":16.579,"or":14.649,"te":13.789,"at":13.731,"ti":13.599,"st":13.411,"en":13.17,"nt":12.217,"ar":11.712,"to":11.677,"nd":11.586,"al":10.907,"it":10.354,"se":9.908,"ed":9.797,"is":9.63,"ea":9.529,"ng":9.313,"ou":9.013,"le":8.949,"co":8.941,"me":8.68,"ne":8.249,"ri":8.203,"ro":7.939,"de":7.894,"ra":7.859,"io":7.813,"ic":7.778,"li":7.706,"of":7.657,"as":7.419,"et":7.293,"ve":7.22,"ta":7.213,"si":7.066,"ha":7.019,"ma":6.858,"ec":6.786,"om":6.519,"ce":6.469,"el":6.461,"ll":6.236,"ca":6.126,"ur":6.125,"la":6.01,"ch":5.821,"hi":5.799,"di":5.673,"ho":5.628,"fo":5.578,"ns":5.529,"ot":5.522,"ac":5.45,"na":5.423,"rs":5.365,"so":5.36,"pr":5.326,"rt":5.31,"sa":5.304,"ss":5.294,"us":5.226,"no":5.216,"il":5.213,"ts":5.106,"em":5.072,"ct":4.923,"ge":4.855,"lo":4.831,"ee":4.676,"be":4.635,"tr":4.599,"ni":4.32,"pe":4.28,"ie":4.247,"pa":4.241,"nc":4.214,"po":4.038,"ol":4.012,"da":3.966,"ad":3.952,"vi":3.942,"un":3.916,"am":3.901,"ut":3.833,"wi":3.66,"mo":3.636,"sh":3.632,"yo":3.452,"ai":3.422,"ew":3.407,"ow":3.402,"os":3.376,"fi":3.365,"ep":3.311,"tt":3.274,"mi":3.252,"op":3.25,"ia":3.244,"we":3.19,"ag":3.137,"su":3.12,"id":3.05,"do":3.016,"oo":2.988,"ir":2.903,"sp":2.898,"pl":2.896,"sc":2.876,"ay":2.853,"wa":2.831,"ig":2.769,"ei":2.749,"ry":2.738,"ly":2.734,"tu":2.694,"ul":2.683,"iv":2.646,"im":2.636,"ab":2.621,"ty":2.592,"ci":2.575,"ap":2.564,"ev":2.551,"eo":2.516,"ef":2.511,"od":2.48,"fr":2.46,"rd":2.45,"bo":2.433,"rc":2.432,"mp":2.429,"ga":2.417,"bl":2.411,"ke":2.405,"ds":2.404,"ck":2.347,"oc":2.329,"ba":2.321,"ls":2.309,"rm":2.306,"fe":2.289,"ex":2.275,"ft":2.244,"av":2.164,"eb":2.158,"ld":2.152,"wh":2.051,"gh":2.051,"gr":2.049,"gi":2.045,"wo":2.005,"ov":2.004,"cl":1.982,"rn":1.969,"bu":1.968,"eg":1.961,"fa":1.947,"go":1.877,"dt":1.87,"lt":1.858,"uc":1.823,"if":1.815,"ys":1.801,"ht":1.794,"du":1.745,"va":1.714,"um":1.705,"cr":1.691,"pp":1.682,"by":1.679,"pi":1.64,"cu":1.629,"og":1.625,"up":1.599,"ff":1.521,"nf":1.487,"bi":1.484,"ki":1.468,"au":1.467,"lu":1.467,"ob":1.451,"ru":1.444,"ue":1.441,"rr":1.441,"ey":1.434,"ip":1.411,"qu":1.411,"oa":1.402,"ua":1.401,"ms":1.395,"tw":1.383,"mm":1.34}');var o=a.t(i,2);const s=JSON.parse('{"the":28.751,"ing":15.313,"and":15.216,"ion":13.975,"tio":11.453,"ent":11.181,"for":9.201,"ati":8.864,"ter":7.576,"ate":6.996,"ers":6.453,"res":5.92,"her":5.889,"est":5.657,"com":5.647,"pro":5.586,"ere":5.36,"all":5.351,"int":5.342,"men":5.337,"you":5.258,"ons":5.171,"our":5.159,"con":5.023,"are":4.962,"tha":4.892,"ver":4.872,"ess":4.817,"thi":4.681,"rea":4.652,"sta":4.528,"tin":4.392,"hat":4.254,"ist":4.246,"ect":4.244,"ort":4.223,"ear":4.221,"ine":4.187,"age":4.185,"his":4.086,"ted":3.994,"ont":3.989,"nce":3.921,"sto":3.877,"ith":3.867,"nte":3.807,"sin":3.782,"tor":3.777,"ore":3.736,"lin":3.706,"ive":3.671,"ite":3.595,"wit":3.57,"not":3.524,"nth":3.512,"tra":3.43,"ome":3.43,"ica":3.427,"per":3.412,"art":3.381,"ste":3.351,"cti":3.302,"oft":3.261,"oth":3.246,"ice":3.227,"out":3.19,"ill":3.101,"ide":3.068,"eth":3.068,"ies":3.066,"one":3.059,"ser":3.025,"eco":3.024,"era":3.003,"str":2.999,"eve":2.975,"din":2.945,"rat":2.927,"ona":2.924,"ces":2.92,"edi":2.907,"iti":2.898,"eri":2.891,"ran":2.832,"san":2.811,"ity":2.794,"oun":2.785,"nal":2.767,"use":2.748,"ure":2.737,"rin":2.728,"ame":2.726,"act":2.725,"igh":2.723,"ese":2.713,"ave":2.71,"sti":2.709,"nts":2.698,"hes":2.685,"sit":2.673,"der":2.664,"fth":2.66,"les":2.65,"man":2.643,"ant":2.637,"ind":2.622,"new":2.574,"pri":2.573,"ree":2.57,"ble":2.557,"ast":2.555,"nta":2.551,"tur":2.541,"por":2.534,"ght":2.525,"ain":2.523,"anc":2.511,"cha":2.51,"eas":2.502,"par":2.483,"ove":2.48,"nde":2.452,"rom":2.451,"rec":2.449,"ert":2.442,"lan":2.442,"cal":2.438,"sof":2.414,"can":2.403,"orm":2.385,"tes":2.379,"ost":2.368,"cat":2.352,"son":2.349,"tic":2.334,"end":2.333,"hea":2.332,"ina":2.329,"red":2.326,"wor":2.324,"ber":2.31,"lic":2.305,"han":2.304,"mat":2.302,"tat":2.287,"hin":2.282,"nes":2.275,"pre":2.272,"sho":2.261,"ren":2.258,"ein":2.258,"eme":2.242,"ric":2.239,"ust":2.234,"fro":2.232,"rth":2.231,"inc":2.231,"eat":2.23,"ase":2.216,"nti":2.212,"ard":2.21,"rch":2.197,"ndi":2.195,"lea":2.187,"tan":2.177,"ssi":2.17,"nin":2.147,"min":2.133,"ail":2.126,"omp":2.122,"ins":2.106,"cou":2.1,"ell":2.096,"erv":2.095,"tal":2.093,"enc":2.092,"ass":2.089,"tth":2.08,"lle":2.071,"ele":2.052,"mor":2.05,"ean":2.039,"sth":2.033,"tem":2.032,"sea":2.026,"rma":2.019,"als":2.008,"und":2.005,"pla":2.004,"ple":2.002,"eal":1.992,"rie":1.985,"ema":1.973,"ali":1.949,"nda":1.946,"ack":1.942,"hen":1.938,"ial":1.937,"ord":1.929,"ana":1.927,"arc":1.923,"ori":1.905,"che":1.891,"tho":1.887,"eof":1.886,"lis":1.886,"dis":1.877,"een":1.876,"car":1.876,"ngt":1.875,"ire":1.869,"ead":1.866,"eto":1.854,"ene":1.853,"att":1.848,"nto":1.846,"omm":1.844,"pos":1.838,"abl":1.832,"lat":1.832,"nds":1.819,"dat":1.813,"lit":1.81,"gra":1.802,"mes":1.796,"hec":1.793,"kin":1.791,"esa":1.786,"vie":1.784,"ote":1.776,"dth":1.776,"ern":1.776,"sio":1.774,"ono":1.773,"esi":1.755,"inf":1.748,"mer":1.746,"nfo":1.744,"hav":1.739,"mar":1.738,"chi":1.735,"ten":1.724,"uni":1.714,"ime":1.713,"nat":1.711,"des":1.711,"hou":1.708,"rit":1.699,"tim":1.697,"den":1.686,"sco":1.682,"ans":1.682,"hel":1.675,"nst":1.67,"rti":1.668,"rep":1.668,"eso":1.666,"tot":1.66,"any":1.656,"tri":1.651,"ret":1.637,"fin":1.634,"spe":1.634,"duc":1.633,"ntr":1.629,"mbe":1.628,"usi":1.619,"tiv":1.619,"ner":1.618,"ous":1.614,"was":1.612,"hem":1.602,"ens":1.601,"ale":1.591,"day":1.59,"unt":1.587,"tte":1.586,"ngs":1.571,"tre":1.567,"ral":1.564,"rou":1.563,"sed":1.562,"nge":1.56,"edt":1.559,"wil":1.559,"ini":1.546,"nit":1.543,"ora":1.538,"har":1.535,"tof":1.523,"las":1.52,"mon":1.517,"ton":1.516,"ile":1.514,"ope":1.511,"fre":1.507,"ors":1.498,"ven":1.497,"eli":1.494,"uct":1.493,"shi":1.493,"abo":1.491,"ook":1.487,"gin":1.486,"evi":1.483,"ang":1.483,"ary":1.478,"ond":1.476,"rac":1.471,"app":1.47,"ses":1.461,"sen":1.459,"own":1.458,"ani":1.458,"dit":1.458,"iss":1.455,"efo":1.454,"ork":1.451,"ndt":1.447,"tel":1.445,"sse":1.439,"log":1.438,"hei":1.435,"epr":1.43,"isi":1.43,"rel":1.428,"mai":1.427,"off":1.423,"top":1.42,"tis":1.416,"iew":1.416,"cen":1.412,"net":1.41,"cia":1.408,"low":1.402,"nan":1.4,"erm":1.399,"vel":1.396,"has":1.395,"wer":1.394,"onl":1.393,"oul":1.392,"ose":1.389,"dto":1.389,"ade":1.387,"ake":1.387,"hot":1.385,"let":1.379,"cre":1.37,"war":1.366,"oll":1.363,"ery":1.36,"fic":1.358,"gen":1.344,"ien":1.343,"lar":1.337,"oli":1.335,"vid":1.334,"rev":1.333,"mpl":1.333,"ach":1.33,"ari":1.328,"its":1.327,"ish":1.326,"ndo":1.324,"ews":1.324,"ili":1.323,"vic":1.321,"eda":1.31,"lec":1.309,"bou":1.309,"spo":1.304,"ult":1.304,"rvi":1.303,"but":1.303,"tar":1.301,"nga":1.301,"hom":1.3,"fer":1.299,"sel":1.297,"acc":1.289,"ick":1.287,"hep":1.286,"eed":1.286,"ges":1.283,"ian":1.28,"sec":1.278,"gre":1.278,"ory":1.275,"rig":1.273,"tai":1.268,"rst":1.267,"cor":1.263,"pag":1.26,"rre":1.254,"dre":1.245,"ela":1.244,"ata":1.243,"emo":1.241,"alt":1.24}');var n,c=a.t(s,2);Object.freeze(o),Object.freeze(c),function(e){class t extends r.U{constructor(e){super("ngram2",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(o)}}e.Ngram2=t,Object.freeze(t),Object.freeze(t.prototype);class a extends r.U{constructor(e){super("ngram3",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(c)}}e.Ngram3=a,Object.freeze(a),Object.freeze(a.prototype)}(n||(n={})),Object.freeze(n)}}; +exports.id=273,exports.ids=[273],exports.modules={755:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Ngrams:()=>n});var r=a(208);const i=JSON.parse('{"in":22.964,"th":22.691,"er":20.307,"re":18.511,"he":18.141,"an":17.958,"on":17.113,"es":16.579,"or":14.649,"te":13.789,"at":13.731,"ti":13.599,"st":13.411,"en":13.17,"nt":12.217,"ar":11.712,"to":11.677,"nd":11.586,"al":10.907,"it":10.354,"se":9.908,"ed":9.797,"is":9.63,"ea":9.529,"ng":9.313,"ou":9.013,"le":8.949,"co":8.941,"me":8.68,"ne":8.249,"ri":8.203,"ro":7.939,"de":7.894,"ra":7.859,"io":7.813,"ic":7.778,"li":7.706,"of":7.657,"as":7.419,"et":7.293,"ve":7.22,"ta":7.213,"si":7.066,"ha":7.019,"ma":6.858,"ec":6.786,"om":6.519,"ce":6.469,"el":6.461,"ll":6.236,"ca":6.126,"ur":6.125,"la":6.01,"ch":5.821,"hi":5.799,"di":5.673,"ho":5.628,"fo":5.578,"ns":5.529,"ot":5.522,"ac":5.45,"na":5.423,"rs":5.365,"so":5.36,"pr":5.326,"rt":5.31,"sa":5.304,"ss":5.294,"us":5.226,"no":5.216,"il":5.213,"ts":5.106,"em":5.072,"ct":4.923,"ge":4.855,"lo":4.831,"ee":4.676,"be":4.635,"tr":4.599,"ni":4.32,"pe":4.28,"ie":4.247,"pa":4.241,"nc":4.214,"po":4.038,"ol":4.012,"da":3.966,"ad":3.952,"vi":3.942,"un":3.916,"am":3.901,"ut":3.833,"wi":3.66,"mo":3.636,"sh":3.632,"yo":3.452,"ai":3.422,"ew":3.407,"ow":3.402,"os":3.376,"fi":3.365,"ep":3.311,"tt":3.274,"mi":3.252,"op":3.25,"ia":3.244,"we":3.19,"ag":3.137,"su":3.12,"id":3.05,"do":3.016,"oo":2.988,"ir":2.903,"sp":2.898,"pl":2.896,"sc":2.876,"ay":2.853,"wa":2.831,"ig":2.769,"ei":2.749,"ry":2.738,"ly":2.734,"tu":2.694,"ul":2.683,"iv":2.646,"im":2.636,"ab":2.621,"ty":2.592,"ci":2.575,"ap":2.564,"ev":2.551,"eo":2.516,"ef":2.511,"od":2.48,"fr":2.46,"rd":2.45,"bo":2.433,"rc":2.432,"mp":2.429,"ga":2.417,"bl":2.411,"ke":2.405,"ds":2.404,"ck":2.347,"oc":2.329,"ba":2.321,"ls":2.309,"rm":2.306,"fe":2.289,"ex":2.275,"ft":2.244,"av":2.164,"eb":2.158,"ld":2.152,"wh":2.051,"gh":2.051,"gr":2.049,"gi":2.045,"wo":2.005,"ov":2.004,"cl":1.982,"rn":1.969,"bu":1.968,"eg":1.961,"fa":1.947,"go":1.877,"dt":1.87,"lt":1.858,"uc":1.823,"if":1.815,"ys":1.801,"ht":1.794,"du":1.745,"va":1.714,"um":1.705,"cr":1.691,"pp":1.682,"by":1.679,"pi":1.64,"cu":1.629,"og":1.625,"up":1.599,"ff":1.521,"nf":1.487,"bi":1.484,"ki":1.468,"au":1.467,"lu":1.467,"ob":1.451,"ru":1.444,"ue":1.441,"rr":1.441,"ey":1.434,"ip":1.411,"qu":1.411,"oa":1.402,"ua":1.401,"ms":1.395,"tw":1.383,"mm":1.34}');var o=a.t(i,2);const s=JSON.parse('{"the":28.751,"ing":15.313,"and":15.216,"ion":13.975,"tio":11.453,"ent":11.181,"for":9.201,"ati":8.864,"ter":7.576,"ate":6.996,"ers":6.453,"res":5.92,"her":5.889,"est":5.657,"com":5.647,"pro":5.586,"ere":5.36,"all":5.351,"int":5.342,"men":5.337,"you":5.258,"ons":5.171,"our":5.159,"con":5.023,"are":4.962,"tha":4.892,"ver":4.872,"ess":4.817,"thi":4.681,"rea":4.652,"sta":4.528,"tin":4.392,"hat":4.254,"ist":4.246,"ect":4.244,"ort":4.223,"ear":4.221,"ine":4.187,"age":4.185,"his":4.086,"ted":3.994,"ont":3.989,"nce":3.921,"sto":3.877,"ith":3.867,"nte":3.807,"sin":3.782,"tor":3.777,"ore":3.736,"lin":3.706,"ive":3.671,"ite":3.595,"wit":3.57,"not":3.524,"nth":3.512,"tra":3.43,"ome":3.43,"ica":3.427,"per":3.412,"art":3.381,"ste":3.351,"cti":3.302,"oft":3.261,"oth":3.246,"ice":3.227,"out":3.19,"ill":3.101,"ide":3.068,"eth":3.068,"ies":3.066,"one":3.059,"ser":3.025,"eco":3.024,"era":3.003,"str":2.999,"eve":2.975,"din":2.945,"rat":2.927,"ona":2.924,"ces":2.92,"edi":2.907,"iti":2.898,"eri":2.891,"ran":2.832,"san":2.811,"ity":2.794,"oun":2.785,"nal":2.767,"use":2.748,"ure":2.737,"rin":2.728,"ame":2.726,"act":2.725,"igh":2.723,"ese":2.713,"ave":2.71,"sti":2.709,"nts":2.698,"hes":2.685,"sit":2.673,"der":2.664,"fth":2.66,"les":2.65,"man":2.643,"ant":2.637,"ind":2.622,"new":2.574,"pri":2.573,"ree":2.57,"ble":2.557,"ast":2.555,"nta":2.551,"tur":2.541,"por":2.534,"ght":2.525,"ain":2.523,"anc":2.511,"cha":2.51,"eas":2.502,"par":2.483,"ove":2.48,"nde":2.452,"rom":2.451,"rec":2.449,"ert":2.442,"lan":2.442,"cal":2.438,"sof":2.414,"can":2.403,"orm":2.385,"tes":2.379,"ost":2.368,"cat":2.352,"son":2.349,"tic":2.334,"end":2.333,"hea":2.332,"ina":2.329,"red":2.326,"wor":2.324,"ber":2.31,"lic":2.305,"han":2.304,"mat":2.302,"tat":2.287,"hin":2.282,"nes":2.275,"pre":2.272,"sho":2.261,"ren":2.258,"ein":2.258,"eme":2.242,"ric":2.239,"ust":2.234,"fro":2.232,"rth":2.231,"inc":2.231,"eat":2.23,"ase":2.216,"nti":2.212,"ard":2.21,"rch":2.197,"ndi":2.195,"lea":2.187,"tan":2.177,"ssi":2.17,"nin":2.147,"min":2.133,"ail":2.126,"omp":2.122,"ins":2.106,"cou":2.1,"ell":2.096,"erv":2.095,"tal":2.093,"enc":2.092,"ass":2.089,"tth":2.08,"lle":2.071,"ele":2.052,"mor":2.05,"ean":2.039,"sth":2.033,"tem":2.032,"sea":2.026,"rma":2.019,"als":2.008,"und":2.005,"pla":2.004,"ple":2.002,"eal":1.992,"rie":1.985,"ema":1.973,"ali":1.949,"nda":1.946,"ack":1.942,"hen":1.938,"ial":1.937,"ord":1.929,"ana":1.927,"arc":1.923,"ori":1.905,"che":1.891,"tho":1.887,"eof":1.886,"lis":1.886,"dis":1.877,"een":1.876,"car":1.876,"ngt":1.875,"ire":1.869,"ead":1.866,"eto":1.854,"ene":1.853,"att":1.848,"nto":1.846,"omm":1.844,"pos":1.838,"abl":1.832,"lat":1.832,"nds":1.819,"dat":1.813,"lit":1.81,"gra":1.802,"mes":1.796,"hec":1.793,"kin":1.791,"esa":1.786,"vie":1.784,"ote":1.776,"dth":1.776,"ern":1.776,"sio":1.774,"ono":1.773,"esi":1.755,"inf":1.748,"mer":1.746,"nfo":1.744,"hav":1.739,"mar":1.738,"chi":1.735,"ten":1.724,"uni":1.714,"ime":1.713,"nat":1.711,"des":1.711,"hou":1.708,"rit":1.699,"tim":1.697,"den":1.686,"sco":1.682,"ans":1.682,"hel":1.675,"nst":1.67,"rti":1.668,"rep":1.668,"eso":1.666,"tot":1.66,"any":1.656,"tri":1.651,"ret":1.637,"fin":1.634,"spe":1.634,"duc":1.633,"ntr":1.629,"mbe":1.628,"usi":1.619,"tiv":1.619,"ner":1.618,"ous":1.614,"was":1.612,"hem":1.602,"ens":1.601,"ale":1.591,"day":1.59,"unt":1.587,"tte":1.586,"ngs":1.571,"tre":1.567,"ral":1.564,"rou":1.563,"sed":1.562,"nge":1.56,"edt":1.559,"wil":1.559,"ini":1.546,"nit":1.543,"ora":1.538,"har":1.535,"tof":1.523,"las":1.52,"mon":1.517,"ton":1.516,"ile":1.514,"ope":1.511,"fre":1.507,"ors":1.498,"ven":1.497,"eli":1.494,"uct":1.493,"shi":1.493,"abo":1.491,"ook":1.487,"gin":1.486,"evi":1.483,"ang":1.483,"ary":1.478,"ond":1.476,"rac":1.471,"app":1.47,"ses":1.461,"sen":1.459,"own":1.458,"ani":1.458,"dit":1.458,"iss":1.455,"efo":1.454,"ork":1.451,"ndt":1.447,"tel":1.445,"sse":1.439,"log":1.438,"hei":1.435,"epr":1.43,"isi":1.43,"rel":1.428,"mai":1.427,"off":1.423,"top":1.42,"tis":1.416,"iew":1.416,"cen":1.412,"net":1.41,"cia":1.408,"low":1.402,"nan":1.4,"erm":1.399,"vel":1.396,"has":1.395,"wer":1.394,"onl":1.393,"oul":1.392,"ose":1.389,"dto":1.389,"ade":1.387,"ake":1.387,"hot":1.385,"let":1.379,"cre":1.37,"war":1.366,"oll":1.363,"ery":1.36,"fic":1.358,"gen":1.344,"ien":1.343,"lar":1.337,"oli":1.335,"vid":1.334,"rev":1.333,"mpl":1.333,"ach":1.33,"ari":1.328,"its":1.327,"ish":1.326,"ndo":1.324,"ews":1.324,"ili":1.323,"vic":1.321,"eda":1.31,"lec":1.309,"bou":1.309,"spo":1.304,"ult":1.304,"rvi":1.303,"but":1.303,"tar":1.301,"nga":1.301,"hom":1.3,"fer":1.299,"sel":1.297,"acc":1.289,"ick":1.287,"hep":1.286,"eed":1.286,"ges":1.283,"ian":1.28,"sec":1.278,"gre":1.278,"ory":1.275,"rig":1.273,"tai":1.268,"rst":1.267,"cor":1.263,"pag":1.26,"rre":1.254,"dre":1.245,"ela":1.244,"ata":1.243,"emo":1.241,"alt":1.24}');var n,c=a.t(s,2);Object.freeze(o),Object.freeze(c),function(e){class t extends r.U{constructor(e){super("ngram2",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(o)}}e.Ngram2=t,Object.freeze(t),Object.freeze(t.prototype);class a extends r.U{constructor(e){super("ngram3",e)}static BUILD(){return r.U.BuildUtils.WORD_FOR_WORD(c)}}e.Ngram3=a,Object.freeze(a),Object.freeze(a.prototype)}(n||(n={})),Object.freeze(n)}}; //# sourceMappingURL=Ngrams-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Ngrams-ts.js.map b/server/chunk/lang/Ngrams-ts.js.map index d62f38ad..cf734caf 100644 --- a/server/chunk/lang/Ngrams-ts.js.map +++ b/server/chunk/lang/Ngrams-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Ngrams-ts.js","sources":["../chunk/lang/Ngrams-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Ngrams.ts?"],"names":["Ngrams","Object","freeze","Lang","weightScaling","super","Ngram2","prototype","Ngram3"],"mappings":"4+NAQiBA,E,WALjBC,OAAOC,OAAO,GACdD,OAAOC,OAAO,GAIP,SAAU,GAKT,gBAAqBC,EAAA,EACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,OAAOD,EAAA,2BAA8B,IALhC,EAAMG,SASbL,OAAOC,OAAOI,GACdL,OAAOC,OAAOI,EAAOC,WAKd,gBAAqBJ,EAAA,EACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,OAAOD,EAAA,2BAA8B,IALhC,EAAMK,SASbP,OAAOC,OAAOM,GACdP,OAAOC,OAAOM,EAAOD,WA9Bf,CAAUP,MAAA,KAgCjBC,OAAOC,OAAOF","file":"chunk/lang/Ngrams-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\nimport * as Ngram2Dict from \"./defs/ngram2.json\";\r\nimport * as Ngram3Dict from \"./defs/ngram3.json\";\r\nObject.freeze(Ngram2Dict);\r\nObject.freeze(Ngram3Dict);\r\n\r\n/**\r\n */\r\nexport namespace Ngrams {\r\n\r\n\t/**\r\n\t * # English Bigrams\r\n\t */\r\n\texport class Ngram2 extends Lang {\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"ngram2\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn Lang.BuildUtils.WORD_FOR_WORD(Ngram2Dict);\r\n\t\t}\r\n\t}\r\n\tNgram2 as Lang.ClassIf;\r\n\tObject.freeze(Ngram2);\r\n\tObject.freeze(Ngram2.prototype);\r\n\r\n\t/**\r\n\t * # English Trigrams\r\n\t */\r\n\texport class Ngram3 extends Lang {\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"ngram3\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\treturn Lang.BuildUtils.WORD_FOR_WORD(Ngram3Dict);\r\n\t\t}\r\n\t}\r\n\tNgram3 as Lang.ClassIf;\r\n\tObject.freeze(Ngram3);\r\n\tObject.freeze(Ngram3.prototype);\r\n}\r\nObject.freeze(Ngrams);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/Numpad-ts.js b/server/chunk/lang/Numpad-ts.js index 83cf71e0..ef44795d 100644 --- a/server/chunk/lang/Numpad-ts.js +++ b/server/chunk/lang/Numpad-ts.js @@ -1,2 +1,2 @@ -exports.id=683,exports.ids=[683],exports.modules={193:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Numpad:()=>s});var s,o=r(115);!function(e){class t extends o.U{constructor(e){super("numpad",e)}static BUILD(){const e={};for(let t=0;t<100;t++){const r=t.toString().padStart(2,"0");e[r]={seq:r,weight:1}}return e}}e.Numpad=t,Object.freeze(t),Object.freeze(t.prototype)}(s||(s={})),Object.freeze(s)}}; +exports.id=683,exports.ids=[683],exports.modules={444:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Numpad:()=>s});var s,o=r(208);!function(e){class t extends o.U{constructor(e){super("numpad",e)}static BUILD(){const e={};for(let t=0;t<100;t++){const r=t.toString().padStart(2,"0");e[r]={seq:r,weight:1}}return e}}e.Numpad=t,Object.freeze(t),Object.freeze(t.prototype)}(s||(s={})),Object.freeze(s)}}; //# sourceMappingURL=Numpad-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Numpad-ts.js.map b/server/chunk/lang/Numpad-ts.js.map index b3b0da96..e05fd971 100644 --- a/server/chunk/lang/Numpad-ts.js.map +++ b/server/chunk/lang/Numpad-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Numpad-ts.js","sources":["../chunk/lang/Numpad-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Numpad.ts?"],"names":["Numpad","weightScaling","super","dict","i","str","toString","padStart","seq","weight","Object","freeze","prototype"],"mappings":"8GAEiBA,E,UAAV,SAAU,GAIT,gBAAqB,IACpB,YAAYC,GAClBC,MAAM,SAAUD,GAAA,eAGhB,MAAME,EAAgC,GACtC,QAASC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC7B,MAAMC,EAAMD,EAAEE,WAAWC,SAAS,EAAE,KACpCJ,EAAKE,GAAO,CAAEG,IAAKH,EAAKI,OAAQ,GAEjC,OAAON,GAVF,EAAMH,OAAA,EAcbU,OAAOC,OAAO,GACdD,OAAOC,OAAO,EAAOC,WAnBf,CAAUZ,MAAA,KAqBjBU,OAAOC,OAAOX","file":"chunk/lang/Numpad-ts.js","sourcesContent":["import { Lang } from \"../Lang\";\r\n\r\nexport namespace Numpad {\r\n\t/**\r\n\t * # Number Pad\r\n\t */\r\n\texport class Numpad extends Lang {\r\n\t\tpublic constructor(weightScaling: number) {\r\n\t\t\tsuper(\"numpad\", weightScaling);\r\n\t\t}\r\n\t\tpublic static BUILD(): Lang.WeightedForwardMap {\r\n\t\t\tconst dict: Lang.WeightedForwardMap = {};\r\n\t\t\tfor (let i = 0; i < 100; i++) {\r\n\t\t\t\tconst str = i.toString().padStart(2,\"0\");\r\n\t\t\t\tdict[str] = { seq: str, weight: 1 };\r\n\t\t\t}\r\n\t\t\treturn dict;\r\n\t\t}\r\n\t}\r\n\tNumpad as Lang.ClassIf;\r\n\tObject.freeze(Numpad);\r\n\tObject.freeze(Numpad.prototype);\r\n}\r\nObject.freeze(Numpad);"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/Shell-ts.js b/server/chunk/lang/Shell-ts.js index 73b12720..ad9ec0c6 100644 --- a/server/chunk/lang/Shell-ts.js +++ b/server/chunk/lang/Shell-ts.js @@ -1,2 +1,2 @@ -exports.id=159,exports.ids=[159],exports.modules={521:(e,t,r)=>{"use strict";var s;r.r(t),r.d(t,{Shell:()=>s}),function(e){e.UnixAndShell=Object.freeze(["env","chroot","fg","bg","ps","jobs","kill","source","xargs","test","time","echo","printf","cd","pwd","ls","find","grep","mkdir","rm","mv","cp","chmod","ln","touch","cat","tac","head","tail","nl","od","more","less","sort","uniq","file","cksum","wc","awk","sed"]),e.Other=Object.freeze(["vim","vi","nano","tig","perl"]),e.Git=Object.freeze(["init","clone","fetch","merge","push","status","diff","add","restore","commit","switch","branch","worktree","gc","fsck","prune","log"])}(s||(s={}))}}; +exports.id=159,exports.ids=[159],exports.modules={25:(e,t,r)=>{"use strict";var s,c;r.r(t),r.d(t,{Shell:()=>s}),(c=s||(s={})).UnixAndShell=Object.freeze(["env","chroot","fg","bg","ps","jobs","kill","source","xargs","test","time","echo","printf","cd","pwd","ls","find","grep","mkdir","rm","mv","cp","chmod","ln","touch","cat","tac","head","tail","nl","od","more","less","sort","uniq","file","cksum","wc","awk","sed"]),c.Other=Object.freeze(["vim","vi","nano","tig","perl"]),c.Git=Object.freeze(["init","clone","fetch","merge","push","status","diff","add","restore","commit","switch","branch","worktree","gc","fsck","prune","log"])}}; //# sourceMappingURL=Shell-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/Shell-ts.js.map b/server/chunk/lang/Shell-ts.js.map index 8acc47dc..da172ef7 100644 --- a/server/chunk/lang/Shell-ts.js.map +++ b/server/chunk/lang/Shell-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/Shell-ts.js","sources":["../chunk/lang/Shell-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/Shell.ts?"],"names":["Shell","UnixAndShell","Object","freeze","Other","Git"],"mappings":"4EAMO,IAAUA,EAAA,E,6BAAA,EAAAA,MAAA,KACHC,aAAeC,OAAOC,OAAc,CAGhD,MAAO,SAAU,KAAM,KAAM,KAAM,OAAQ,OAC3C,SAAU,QAAS,OAAgC,OACnD,OAAQ,SAER,KAAM,MACN,KAAuB,OAAQ,OAC/B,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,QAE1C,MAAO,MAAO,OAAQ,OAAQ,KAAM,KACpC,OAAQ,OAER,OAAQ,OACR,OAAQ,QAAS,KACjB,MAAO,QAEK,EAAAC,MAAQF,OAAOC,OAAc,CACzC,MAAO,KAAM,OACb,MACA,SAEY,EAAAE,IAAMH,OAAOC,OAAc,CACvC,OAAQ,QAAS,QAAS,QAAS,OACnC,SAAU,OAAQ,MAAO,UAAW,SACpC,SAAU,SAAU,WACpB,KAAM,OAAQ,QACd","file":"chunk/lang/Shell-ts.js","sourcesContent":["\r\n/**\r\n * ```sh\r\n * >_\r\n * ```\r\n */\r\nexport namespace Shell {\r\n\texport const UnixAndShell = Object.freeze([\r\n\t\t// \"uname\", \"users\", \"whoami\", \"df\", \"du\", \"uptime\",\r\n\t\t// \"date\", \"cal\",\r\n\t\t\"env\", \"chroot\", \"fg\", \"bg\", \"ps\", \"jobs\", \"kill\",\r\n\t\t\"source\", \"xargs\", \"test\", /* \"timeout\", \"yes\", */ \"time\",\r\n\t\t\"echo\", \"printf\",\r\n\r\n\t\t\"cd\", \"pwd\",\r\n\t\t\"ls\", /* \"dirname\", */ \"find\", \"grep\",\r\n\t\t\"mkdir\", \"rm\", \"mv\", \"cp\", \"chmod\", \"ln\", \"touch\",\r\n\r\n\t\t\"cat\", \"tac\", \"head\", \"tail\", \"nl\", \"od\",\r\n\t\t\"more\", \"less\",\r\n\t\t// \"cut\", \"paste\", \"expand\", \"unexpand\", \"fold\",\r\n\t\t\"sort\", \"uniq\",\r\n\t\t\"file\", \"cksum\", \"wc\",\r\n\t\t\"awk\", \"sed\",\r\n\t]);\r\n\texport const Other = Object.freeze([\r\n\t\t\"vim\", \"vi\", \"nano\",\r\n\t\t\"tig\",\r\n\t\t\"perl\",\r\n\t]);\r\n\texport const Git = Object.freeze([\r\n\t\t\"init\", \"clone\", \"fetch\", \"merge\", \"push\",\r\n\t\t\"status\", \"diff\", \"add\", \"restore\", \"commit\",\r\n\t\t\"switch\", \"branch\", \"worktree\",\r\n\t\t\"gc\", \"fsck\", \"prune\",\r\n\t\t\"log\",\r\n\t]);\r\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/defs-Chinese-ts.js b/server/chunk/lang/defs-Chinese-ts.js index 63eb111e..2427e562 100644 --- a/server/chunk/lang/defs-Chinese-ts.js +++ b/server/chunk/lang/defs-Chinese-ts.js @@ -1,2 +1 @@ -exports.id=704,exports.ids=[704],exports.modules={958:()=>{}}; -//# sourceMappingURL=defs-Chinese-ts.js.map \ No newline at end of file +exports.id=704,exports.ids=[704],exports.modules={711:()=>{}}; \ No newline at end of file diff --git a/server/chunk/lang/defs-Chinese-ts.js.map b/server/chunk/lang/defs-Chinese-ts.js.map deleted file mode 100644 index 99bad2ce..00000000 --- a/server/chunk/lang/defs-Chinese-ts.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chunk/lang/defs-Chinese-ts.js","sources":["../chunk/lang/defs-Chinese-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/server/chunk/lang/defs-English100-ts.js b/server/chunk/lang/defs-English100-ts.js index 088f0016..e121d6e7 100644 --- a/server/chunk/lang/defs-English100-ts.js +++ b/server/chunk/lang/defs-English100-ts.js @@ -1,2 +1,2 @@ -exports.id=885,exports.ids=[885],exports.modules={213:(e,o,t)=>{"use strict";t.r(o),t.d(o,{default:()=>a});const a=["the","be","to","of","and","a","in","that","have","I","it","for","not","on","with","he","as","you","do","at","this","but","his","by","from","they","we","say","her","she","or","an","will","my","one","all","would","there","their","what","so","up","out","if","about","who","get","which","go","me","when","make","can","like","time","no","just","him","know","take","people","into","year","your","good","some","could","them","see","other","than","then","now","look","only","come","its","over","think","also","back","after","use","two","how","our","work","first","well","way","even","new","want","because","any","these","give","day","most","us"]}}; +exports.id=885,exports.ids=[885],exports.modules={589:(e,o,t)=>{"use strict";t.r(o),t.d(o,{default:()=>a});const a=["the","be","to","of","and","a","in","that","have","I","it","for","not","on","with","he","as","you","do","at","this","but","his","by","from","they","we","say","her","she","or","an","will","my","one","all","would","there","their","what","so","up","out","if","about","who","get","which","go","me","when","make","can","like","time","no","just","him","know","take","people","into","year","your","good","some","could","them","see","other","than","then","now","look","only","come","its","over","think","also","back","after","use","two","how","our","work","first","well","way","even","new","want","because","any","these","give","day","most","us"]}}; //# sourceMappingURL=defs-English100-ts.js.map \ No newline at end of file diff --git a/server/chunk/lang/defs-English100-ts.js.map b/server/chunk/lang/defs-English100-ts.js.map index 35b9dbf2..085549b8 100644 --- a/server/chunk/lang/defs-English100-ts.js.map +++ b/server/chunk/lang/defs-English100-ts.js.map @@ -1 +1 @@ -{"version":3,"file":"chunk/lang/defs-English100-ts.js","sources":["../chunk/lang/defs-English100-ts.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[".././src/base/lang/impl/defs/English100.ts?"],"names":[],"mappings":"2GACA,SACA,MACA,KACA,KACA,KACA,MACA,IACA,KACA,OACA,OACA,IACA,KACA,MACA,MACA,KACA,OACA,KACA,KACA,MACA,KACA,KACA,OACA,MACA,MACA,KACA,OACA,OACA,KACA,MACA,MACA,MACA,KACA,KACA,OACA,KACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,KACA,MACA,KACA,QACA,MACA,MACA,QACA,KACA,KACA,OACA,OACA,MACA,OACA,OACA,KACA,OACA,MACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,MACA,OACA,QACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,OACA,QACA,OACA,MACA,OACA,MACA,OACA,UACA,MACA,QACA,OACA,MACA,OACA","file":"chunk/lang/defs-English100-ts.js","sourcesContent":["// Source: https://en.wikipedia.org/wiki/Most_common_words_in_English\r\nexport default [\r\n\"the\",\r\n\"be\",\r\n\"to\",\r\n\"of\",\r\n\"and\",\r\n\"a\",\r\n\"in\",\r\n\"that\",\r\n\"have\",\r\n\"I\",\r\n\"it\",\r\n\"for\",\r\n\"not\",\r\n\"on\",\r\n\"with\",\r\n\"he\",\r\n\"as\",\r\n\"you\",\r\n\"do\",\r\n\"at\",\r\n\"this\",\r\n\"but\",\r\n\"his\",\r\n\"by\",\r\n\"from\",\r\n\"they\",\r\n\"we\",\r\n\"say\",\r\n\"her\",\r\n\"she\",\r\n\"or\",\r\n\"an\",\r\n\"will\",\r\n\"my\",\r\n\"one\",\r\n\"all\",\r\n\"would\",\r\n\"there\",\r\n\"their\",\r\n\"what\",\r\n\"so\",\r\n\"up\",\r\n\"out\",\r\n\"if\",\r\n\"about\",\r\n\"who\",\r\n\"get\",\r\n\"which\",\r\n\"go\",\r\n\"me\",\r\n\"when\",\r\n\"make\",\r\n\"can\",\r\n\"like\",\r\n\"time\",\r\n\"no\",\r\n\"just\",\r\n\"him\",\r\n\"know\",\r\n\"take\",\r\n\"people\",\r\n\"into\",\r\n\"year\",\r\n\"your\",\r\n\"good\",\r\n\"some\",\r\n\"could\",\r\n\"them\",\r\n\"see\",\r\n\"other\",\r\n\"than\",\r\n\"then\",\r\n\"now\",\r\n\"look\",\r\n\"only\",\r\n\"come\",\r\n\"its\",\r\n\"over\",\r\n\"think\",\r\n\"also\",\r\n\"back\",\r\n\"after\",\r\n\"use\",\r\n\"two\",\r\n\"how\",\r\n\"our\",\r\n\"work\",\r\n\"first\",\r\n\"well\",\r\n\"way\",\r\n\"even\",\r\n\"new\",\r\n\"want\",\r\n\"because\",\r\n\"any\",\r\n\"these\",\r\n\"give\",\r\n\"day\",\r\n\"most\",\r\n\"us\",\r\n]"],"sourceRoot":""} \ No newline at end of file diff --git a/server/index.js b/server/index.js index 33cdc2e3..ccabe451 100644 --- a/server/index.js +++ b/server/index.js @@ -1,2 +1,2 @@ -var snakey3;snakey3=(()=>{var e,t,r,s={632:(e,t,r)=>{"use strict";r.d(t,{R:()=>a});const s=Object.freeze({enumerable:!1}),i=Object.freeze({writable:!1});var a;!function(e){let t;function r(e,t,r){t.forEach((t=>{Object.defineProperty(e,t,r)}))}e.applyMixins=function(e,t){t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((r=>{Object.defineProperty(e.prototype,r,Object.getOwnPropertyDescriptor(t.prototype,r))}))}))},e.deepFreeze=function e(t){return function(t){for(const r of Object.getOwnPropertyNames(t)){const s=t[r];"object"==typeof s&&e(s)}Object.freeze(t)}(t),t},function(e){let t;!function(e){e.access=function(e,t,r){r.enumerable=!1},e.cyclic=function(e,t,r){r.enumerable=!1}}(t=e.NonEnumerable||(e.NonEnumerable={}))}(t=e.Decor||(e.Decor={})),e.protoNoEnum=function(e,...t){t.forEach((t=>{Object.defineProperty(e.prototype,t,s)}))},e.instNoEnum=function(e,...t){r(e,t,s)},e.propNoWrite=function(e,...t){r(e,t,i)},e.prependComment=function(e,t){e.parentNode.insertBefore(document.createComment(" "+t+" "),e)},e.camelCaseTransforms=function(e){const t=e.replace(/[A-Z]/g,(e=>" "+e.toLowerCase()));return Object.freeze({spaceyLowercase:t,spaceyUppercase:t.toUpperCase(),spaceyCapitalized:t.split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(" ")})},e.mkEl=function(e,t,r){const s=document.createElement(e);try{Object.seal(s)}catch(e){}return t.length&&s.classList.add(...t),"button"===e?s.type="button":"a"===e&&(s.rel="noopener"),void 0!==r&&Object.assign(s,r),s}}(a||(a={})),Object.freeze(a)},532:(e,t,r)=>{"use strict";r.d(t,{Uo:()=>l,J5:()=>n});var s=r(632);const i=Object.freeze({IDENT:e=>e,LOWER:e=>e.toLowerCase()}),a={"engl-low":{module:"English",export:"Lowercase",numLeaves:26,remapFunc:i.LOWER,displayName:"English Lowercase (qwerty)",blurb:""},"engl-mix":{module:"English",export:"MixedCase",numLeaves:52,remapFunc:i.IDENT,displayName:"English Mixed-Case (Querty)",blurb:""},"japn-hir":{module:"Japanese",export:"Hiragana",numLeaves:71,remapFunc:i.LOWER,displayName:"Japanese Hiragana",blurb:""},"japn-kat":{module:"Japanese",export:"Katakana",numLeaves:69,remapFunc:i.LOWER,displayName:"Japanese Katakana",blurb:""},"kore-dub":{module:"Korean",export:"Dubeolsik",numLeaves:8778,remapFunc:i.IDENT,displayName:"Korean Dubeolsik (두벌식 키보드)",blurb:"The most common keyboard layout, and South Korea's only Hangul standard since 1969. Consonants are on the left, and vowels on the right."},"kore-sub":{module:"Korean",export:"Sebeolsik",numLeaves:10206,remapFunc:i.IDENT,displayName:"Korean Sebeolsik (세벌식 최종 키보드)",blurb:"Another Hangul keyboard layout used in South Korea, and the final Sebeolsik layout designed by Dr. Kong Byung Woo, hence the name. Syllable-initial consonants are on the right, final consonants on the left, and vowels in the middle. It is more ergonomic than the dubeolsik, but not widely used."},"kore-rom":{module:"Korean",export:"Romanization",numLeaves:3990,remapFunc:i.LOWER,displayName:"Korean Revised Romanization",blurb:"The Revised Romanization of Korean (국어의 로마자 표기법; 國語의 로마字 表記法) is the official South Korean language romanization system. It was developed by the National Academy of the Korean Language from 1995, and was released on 7 July 2000 by South Korea's Ministry of Culture and Tourism"},"engl-cell-enc":{module:"English",export:"OldCellphone.Encode",numLeaves:8,remapFunc:i.IDENT,displayName:"Old Cellphone Keyboard",blurb:""},"mors-enc":{module:"English",export:"Morse.Encode",numLeaves:20,remapFunc:e=>e,displayName:"Morse Encoder",blurb:""},"mors-dec":{module:"English",export:"Morse.Decode",numLeaves:41,remapFunc:i.LOWER,displayName:"Morse Decoder",blurb:""},ngram2:{module:"Ngrams",export:"Ngram2",numLeaves:200,remapFunc:i.LOWER,displayName:"English Bigrams",blurb:""},ngram3:{module:"Ngrams",export:"Ngram3",numLeaves:401,remapFunc:i.LOWER,displayName:"English Trigrams",blurb:""},numpad:{module:"Numpad",export:"Numpad",numLeaves:100,remapFunc:i.LOWER,displayName:"Number Pad",blurb:""}};Object.entries(a).forEach((([e,t])=>{t.id=e})),s.R.deepFreeze(a);const o=a;Object.freeze({behavior:"smooth",block:"center",inline:"center"});class n{}!function(e){let t,r,s;e.Family=Object.freeze({HUMAN:"HUMAN",CHASER:"CHASER"}),e.Family,function(e){e.NULL=void 0}(t=e.Id||(e.Id={})),function(e){e.REGEXP=/[ a-zA-Z0-9:-]+/,e.MAX_LENGTH=15}(r=e.Username||(e.Username={})),function(e){e.LOREM_IPSUM="lorem-ipsum"}(s=e.Avatar||(e.Avatar={})),function(e){const t=Object.values(e).filter((e=>"string"==typeof e));e.GET_RANDOM=function(){return t[Math.floor(Math.random()*t.length)]}}(s=e.Avatar||(e.Avatar={})),e.MoveType=Object.freeze({NORMAL:"NORMAL",BOOST:"BOOST"}),e.MoveType}(n||(n={})),Object.freeze(n),Object.freeze(n.prototype);class l{}!function(e){let t,r,s;!function(e){e.REGEXP=new RegExp("^[a-zA-Z0-9!@#$%^&*()-_=+;:'\"\\|,.<>/?]+$")}(t=e.Seq||(e.Seq={})),function(e){e.NULL=Object.freeze({char:"",seq:""})}(r=e.CharSeqPair||(e.CharSeqPair={})),function(e){e.MAX=4}(s=e.WeightExaggeration||(e.WeightExaggeration={})),e.CHAR_HIT_COUNT_SEED_CEILING=5,e.FrontendDescs=o,e.GET_FRONTEND_DESC_BY_ID=function(t){return e.FrontendDescs[t]}}(l||(l={})),Object.freeze(l),Object.freeze(l.prototype)},115:(e,t,r)=>{"use strict";r.d(t,{U:()=>l});var s,i=r(632),a=r(532),o=r(780);!function(e){var t;class r{constructor(){Object.defineProperty(this,"seq",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"children",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"carryHits",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.children=[],i.R.propNoWrite(this,"children")}reset(){for(const e of this.children)e.reset();this.carryHits=0}_finalize(){Object.freeze(this.children);for(const e of this.children)e._finalize()}getLeaves(){const e=[];return this._rGetLeaves(e),e}_rGetLeaves(e){if(this.children.length)for(const t of this.children)t._rGetLeaves(e);else e.push(this)}simpleView(){return this.children}static CREATE_TREE_MAP(t,a){var o;const l=e.GET_SCALE_WEIGHT_FUNC(a,t),c=new Map;Object.entries(t).forEach((([e,{seq:t,weight:r}])=>{const s=new n(e,l(r)),i=c.get(t);void 0!==i?i.push(s):c.set(t,[s])}));const h=new r;i.R.propNoWrite(h,"children");let u=h;for(const[e,t]of Array.from(c).sort((([e],[t])=>ee.carryHits-t.carryHits}),e.ParentNode=r,i.R.protoNoEnum(r,"_finalize","_rGetLeaves"),Object.freeze(r),Object.freeze(r.prototype);class s extends r{constructor(e,r,s){super(),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seq",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.set(this,void 0),this.seq=r,(0,o.__classPrivateFieldSet)(this,t,s),this.parent=e,i.R.propNoWrite(this,"seq","parent")}_finalize(){Object.freeze((0,o.__classPrivateFieldGet)(this,t)),super._finalize()}reset(){super.reset();for(const e of(0,o.__classPrivateFieldGet)(this,t))e.reset(),this.incrHits(e,Math.random()*a.Uo.CHAR_HIT_COUNT_SEED_CEILING)}chooseOnePair(){let e=(0,o.__classPrivateFieldGet)(this,t)[0];for(const r of(0,o.__classPrivateFieldGet)(this,t))r.hitse.simpleView()));return Object.assign(Object.create(null),{seq:this.seq,chars:1===e.length?e[0]:e,kids:this.children.map((e=>e.simpleView()))})}}function l(e,t){if(0===e)return e=>1;if(1===e)return e=>e;const r=Object.values(t),s=r.reduce(((e,t)=>e+t.weight),0)/r.length;return t=>Math.pow(t/s,e)}t=new WeakMap,Object.defineProperty(s,"PATH_CMP",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>e.ownHits-t.ownHits}),e.ChildNode=s,i.R.protoNoEnum(s,"_finalize","_rIncrHits"),Object.freeze(s),Object.freeze(s.prototype),e.GET_SCALE_WEIGHT_FUNC=l,Object.freeze(l)}(s||(s={})),Object.freeze(s);class n{constructor(e,t){Object.defineProperty(this,"char",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"weightInv",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hits",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.char=e,this.weightInv=1/t}reset(){this.hits=0}_incrementNumHits(){this.hits+=this.weightInv}simpleView(){return Object.assign(Object.create(null),{char:this.char})}}Object.defineProperty(n,"CMP",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>e.hits-t.hits}),Object.freeze(n),Object.freeze(n.prototype);class l extends a.Uo{constructor(e,t){super(),Object.defineProperty(this,"frontendDesc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"treeMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"leafNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.frontendDesc=l.GET_FRONTEND_DESC_BY_ID(e),this.treeMap=s.ParentNode.CREATE_TREE_MAP(Object.getPrototypeOf(this).constructor.BUILD(),t),this.leafNodes=this.treeMap.getLeaves(),i.R.propNoWrite(this,"frontendDesc","treeMap","leafNodes")}get numLeaves(){return this.leafNodes.length}reset(){this.treeMap.reset()}getNonConflictingChar(e){this.leafNodes.sort(s.ParentNode.LEAF_CMP);e:for(const t of this.leafNodes){let r=t;for(let s=t;s;s=s.parent){const t=e.find((e=>e.startsWith(s.seq)));if(t){if(t.length>s.seq.length)break;continue e}s.ownHits(e[t]={seq:t,weight:r},e)),{})}}(t=e.BuildUtils||(e.BuildUtils={}))}(l||(l={})),Object.freeze(l),Object.freeze(l.prototype)},816:(e,t,r)=>{"use strict";r.r(t),r.d(t,{server:()=>ie});const s=require("os"),i=require("path"),a=require("http"),o=require("express"),n=require("express-static-gzip"),l=require("socket.io");var c,h,u,d=r(632),m=r(780);class p{}!function(e){let t;e.PROTOCOL="http://",e.DEFAULT_PORT=80,function(e){e.GROUP_JOINER="/joiner.",e.GROUP_LOBBY_PREFIX="/group.",e.GROUP_GAME_PREFIX="/group-game."}(t=e.Nsps||(e.Nsps={}))}(p||(p={})),Object.freeze(p),Object.freeze(p.prototype);class f{}!function(e){let t,r,s,i;!function(e){let t;!function(e){e.EVENT_NAME="group-lobby-user-info-change"}(t=e.UserInfoChange||(e.UserInfoChange={}))}(t=e.Socket||(e.Socket={})),function(e){e.REGEXP=/(?:[a-zA-Z0-9:-]+)/,e.MaxLength=30}(r=e.Name||(e.Name={})),function(e){e.REGEXP=/(?:[a-zA-Z0-9:-]*)/,e.MaxLength=30}(s=e.Passphrase||(e.Passphrase={})),e.GameServerReconnectionAttempts=2,e.DEFAULT_TTL=20,function(e){e.EVENT_NAME="group-exist";class t{constructor(e,t){Object.defineProperty(this,"groupName",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"passphrase",{enumerable:!0,configurable:!0,writable:!0,value:t})}}let r;e.RequestCreate=t,function(e){let t;!function(e){e.OKAY="okay",e.NOPE="nope"}(t=e.Response||(e.Response={}))}(t=e.RequestCreate||(e.RequestCreate={})),function(e){e.IN_LOBBY="in-lobby",e.IN_GAME="in-game",e.DELETE="delete"}(r=e.Status||(e.Status={}))}(i=e.Exist||(e.Exist={}))}(f||(f={})),Object.freeze(f),Object.freeze(f.prototype),function(e){e.CREATE_GAME="group-game-create"}(c||(c={})),function(e){e.CREATE_GAME="game-create",e.RESET="game-reset",e.UNPAUSE="game-unpause",e.PAUSE="game-pause",e.RETURN_TO_LOBBY="game-return-to-lobby"}(h||(h={})),function(e){let t,r;!function(e){e.SERVER="SERVER",e.ONLINE="ONLINE",e.OFFLINE="OFFLINE"}(t=e.Type||(e.Type={})),Object.freeze(t),function(e){e.PLAYING="PLAYING",e.PAUSED="PAUSED",e.OVER="OVER"}(r=e.Status||(e.Status={})),Object.freeze(r),e.K=Object.freeze({HEALTH_UPDATE_CHANCE:.1,AVERAGE_HEALTH_TO_SPAWN_ON_TILE:1,PORTION_OF_MOVES_THAT_ARE_BOOST:.4,HEALTH_COST_OF_BOOST(e,t){const r=t(this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/e);return this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/r/this.PORTION_OF_MOVES_THAT_ARE_BOOST},HEALTH_EFFECT_FOR_DOWNED_PLAYER:.6,EVENT_RECORD_WRAPPING_BUFFER_LENGTH:50,EVENT_RECORD_FORWARD_WINDOW_LENGTH:25})}(u||(u={})),Object.freeze(u);var b,g,v,E,_,y,O,P,N,w,T,I=r(532);class R{constructor(e){Object.defineProperty(this,"coord",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),b.set(this,void 0),g.set(this,void 0),v.set(this,void 0),E.set(this,void 0),Object.defineProperty(this,"lastKnownUpdateId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.coord=e,d.R.propNoWrite(this,"coord"),(0,m.__classPrivateFieldSet)(this,b,I.J5.Id.NULL)}reset(){this.evictOccupant(),this.lastKnownUpdateId=0,this.freeHealth=0,this.setLangCharSeqPair(I.Uo.CharSeqPair.NULL)}_setOccupant(e,t){(0,m.__classPrivateFieldSet)(this,b,e)}get isOccupied(){return this.occupantId!==I.J5.Id.NULL}evictOccupant(){(0,m.__classPrivateFieldSet)(this,b,I.J5.Id.NULL)}get occupantId(){return(0,m.__classPrivateFieldGet)(this,b)}get freeHealth(){return(0,m.__classPrivateFieldGet)(this,g)}set freeHealth(e){(0,m.__classPrivateFieldSet)(this,g,e)}setLangCharSeqPair(e){(0,m.__classPrivateFieldSet)(this,v,e.char),(0,m.__classPrivateFieldSet)(this,E,e.seq)}get langChar(){return(0,m.__classPrivateFieldGet)(this,v)}get langSeq(){return(0,m.__classPrivateFieldGet)(this,E)}}b=new WeakMap,g=new WeakMap,v=new WeakMap,E=new WeakMap,Object.freeze(R),Object.freeze(R.prototype);class j{constructor(e){_.set(this,void 0),(0,m.__classPrivateFieldSet)(this,_,e),Object.freeze(this)}get _source(){return(0,m.__classPrivateFieldGet)(this,_)}at(...e){return(0,m.__classPrivateFieldGet)(this,_)._getTileAt(...e)}destsFrom(...e){return new A((0,m.__classPrivateFieldGet)(this,_)._getTileDestsFrom(...e))}sourcesTo(...e){return new A((0,m.__classPrivateFieldGet)(this,_)._getTileSourcesTo(...e))}}_=new WeakMap,Object.freeze(j),Object.freeze(j.prototype);class A{constructor(e){Object.defineProperty(this,"contents",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.seal(this)}get occupied(){return this.contents=this.contents.filter((e=>e.isOccupied)),this}get unoccupied(){return this.contents=this.contents.filter((e=>!e.isOccupied)),this}get get(){return this.contents}}Object.freeze(A),Object.freeze(A.prototype);class M{constructor(e){Object.defineProperty(this,"static",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dimensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.static=e.gridClass,this.dimensions=e.dimensions,this.tile=new j(this),d.R.propNoWrite(this,"static","dimensions","tile")}get area(){return this.static.getArea(this.dimensions)}reset(){this.forEachTile((e=>e.reset()))}getDestsFromSourcesTo(e){return Array.from(new Set(this.tile.sourcesTo(e).get.flatMap((e=>this.tile.destsFrom(e.coord).get))))}getRandomCoord(){return this.static.getRandomCoord(this.dimensions)}}(y=M||(M={})).getImplementation=e=>y._Constructors[e],function(e){e.EVENT_ID_REJECT=-1}(O||(O={})),Object.freeze(O),function(e){e.INITIAL_REQUEST_ID=-1,e.EVENT_NAME=Object.freeze({BUBBLE:"player-bubble",MOVEMENT:"player-movement"});class t{constructor(e,t){Object.defineProperty(this,"eventId",{enumerable:!0,configurable:!0,writable:!0,value:O.EVENT_ID_REJECT}),Object.defineProperty(this,"playerId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerLastAcceptedRequestId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"affectedNeighbours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.playerId=e,this.playerLastAcceptedRequestId=t}}e.Bubble=t,e.Movement=class extends t{constructor(e,t,r,s){super(e,t),Object.defineProperty(this,"newPlayerHealth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"destModDesc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tileHealthModDescs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerHealthModDescs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.destModDesc={coord:r.coord,lastKnownUpdateId:r.lastKnownUpdateId},this.moveType=s}}}(P||(P={})),Object.freeze(P);class S extends I.J5{constructor(e,t){if(super(),Object.defineProperty(this,"playerId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isALocalOperator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"game",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),N.set(this,void 0),Object.defineProperty(this,"tile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Math.trunc(t.playerId)!==t.playerId)throw new RangeError("Player ID's must be integer values.");this.playerId=t.playerId,this.isALocalOperator=t.isALocalOperator,this.game=e,this.status=new this.game._playerStatusCtor(this,t.noCheckGameOver),this.tile=new j(new S.TileGetterSource(this)),d.R.instNoEnum(this,"game"),d.R.propNoWrite(this,"playerId","isALocalOperator","game","status","tile")}_afterAllPlayersConstruction(){this.status._afterAllPlayersConstruction()}reset(e){(0,m.__classPrivateFieldSet)(this,N,e),this.hostTile._setOccupant(this.playerId,this.status.immigrantInfo)}get coord(){return this.hostTile.coord}get hostTile(){return(0,m.__classPrivateFieldGet)(this,N)}moveTo(e){this.hostTile.occupantId!==this.playerId||this.hostTile.evictOccupant(),e.isOccupied||((0,m.__classPrivateFieldSet)(this,N,e),e._setOccupant(this.playerId,this.status.immigrantInfo))}}N=new WeakMap,function(e){var t,r;class s{constructor(e){t.set(this,void 0),r.set(this,void 0),(0,m.__classPrivateFieldSet)(this,t,e),(0,m.__classPrivateFieldSet)(this,r,e.game.grid.tile._source)}_getTileAt(){return(0,m.__classPrivateFieldGet)(this,r)._getTileAt((0,m.__classPrivateFieldGet)(this,t).coord)}_getTileDestsFrom(){return(0,m.__classPrivateFieldGet)(this,r)._getTileDestsFrom((0,m.__classPrivateFieldGet)(this,t).coord)}_getTileSourcesTo(){return(0,m.__classPrivateFieldGet)(this,r)._getTileSourcesTo((0,m.__classPrivateFieldGet)(this,t).coord)}}t=new WeakMap,r=new WeakMap,e.TileGetterSource=s,Object.freeze(s),Object.freeze(s.prototype)}(S||(S={})),d.R.protoNoEnum(S,"_afterAllPlayersConstruction"),Object.freeze(S),Object.freeze(S.prototype);class C{constructor(e,t){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"members",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),w.set(this,void 0),0===t.length)throw new Error("Teams must have at least one member.");this.id=e,this.members=t,(0,m.__classPrivateFieldSet)(this,w,this.members.every((e=>e.status.noCheckGameOver))?C.ElimOrder.IMMORTAL:C.ElimOrder.STANDING),d.R.propNoWrite(this,"id","members")}reset(){this.elimOrder!==C.ElimOrder.IMMORTAL&&(this.elimOrder=C.ElimOrder.STANDING)}get elimOrder(){return(0,m.__classPrivateFieldGet)(this,w)}set elimOrder(e){if(this.elimOrder===C.ElimOrder.IMMORTAL)throw new TypeError("Cannot change the elimination status of an immortal team.");(0,m.__classPrivateFieldSet)(this,w,e)}}w=new WeakMap,function(e){let t;!function(e){e.IMMORTAL=-1,e.STANDING=0}(t=e.ElimOrder||(e.ElimOrder={}))}(C||(C={})),Object.freeze(C),Object.freeze(C.prototype);class F{constructor(e,t){Object.defineProperty(this,"player",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"noCheckGameOver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),T.set(this,void 0),this.player=e,this.noCheckGameOver=t,d.R.instNoEnum(this,"player")}reset(){this.health=0}_afterAllPlayersConstruction(){}get immigrantInfo(){}get health(){return(0,m.__classPrivateFieldGet)(this,T)}set health(e){const t=this.isDowned;if((0,m.__classPrivateFieldSet)(this,T,e),t||!this.isDowned||this.noCheckGameOver)return;const r=this.player.team,s=this.player.game.teams;if(r.elimOrder===C.ElimOrder.STANDING&&r.members.every((e=>e.status.noCheckGameOver||e.status.isDowned))){const e=1+s.filter((e=>e.elimOrder!==C.ElimOrder.STANDING)).length;r.elimOrder=1+s.filter((e=>e.elimOrder!==C.ElimOrder.STANDING&&e.elimOrder!==C.ElimOrder.IMMORTAL)).length,e===s.length&&this.player.game.statusBecomeOver()}}get isDowned(){return this.health<0}}T=new WeakMap,d.R.protoNoEnum(F,"_afterAllPlayersConstruction"),Object.freeze(F),Object.freeze(F.prototype);class L extends S{constructor(e,t){var r;super(e,t),Object.defineProperty(this,"familyId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"teamId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"username",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"avatar",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastAcceptedRequestId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestInFlight",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.familyId=t.familyId,this.teamId=t.teamId,this.username=t.username,this.avatar=null!==(r=t.avatar)&&void 0!==r?r:L.Avatar.GET_RANDOM(),d.R.propNoWrite(this,"familyId","teamId","username","avatar")}reset(e){super.reset(e),this.status.reset(),this.lastAcceptedRequestId=P.INITIAL_REQUEST_ID,this.requestInFlight=!1}_notifyGameNowPlaying(){}_notifyGameNowPaused(){}_notifyGameNowOver(){}makeMovementRequest(e,t){this.requestInFlight=!0,this.game.processMoveRequest(new P.Movement(this.playerId,this.lastAcceptedRequestId,e,t))}get team(){return this.game.teams[this.teamId]}isTeamedWith(e){return this.team.members.includes(e)}}!function(e){let t;!function(e){e.finalize=function(e){const t=Array.from(new Set(e.map((e=>e.teamId)))).sort(((e,t)=>e-t)).reduce(((e,t,r)=>(e[t]=r,e)),[]);return e.slice().sort(((e,r)=>t[e.teamId]-t[r.teamId])).map(((e,r)=>Object.assign({},e,{playerId:r,teamId:t[e.teamId]})))}}(t=e.CtorArgs||(e.CtorArgs={})),Object.freeze(t)}(L||(L={})),d.R.protoNoEnum(L,"_notifyGameNowPaused","_notifyGameNowPlaying","_notifyGameNowOver"),Object.freeze(L),Object.freeze(L.prototype);var x,G,D,z,H,k,U,q,B,W,V,K,J=r(115);!function(e){let t;!function(e){e.EUCLID2="EUCLID2",e.BEEHIVE="BEEHIVE"}(t=e.System||(e.System={})),e.equals=function(e,t){return e._equals(t)}}(x||(x={})),Object.freeze(x);class Y extends L{constructor(e,t){super(e,t),Object.defineProperty(this,"_nextMovementTimerMultiplier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_scheduledMovementCallbackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_notifyGameNowPlaying(){super._notifyGameNowPlaying(),this.delayedMovementContinue()}_notifyGameNowPaused(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}_notifyGameNowOver(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}movementContinue(){const e=this.computeDesiredDest();this._nextMovementTimerMultiplier=this.game.grid.tile.at(e).langSeq.length,this.makeMovementRequest(this.game.grid.getUntToward(e,this.coord),this.getNextMoveType()),this.delayedMovementContinue()}delayedMovementContinue(){this._scheduledMovementCallbackId=this.game.setTimeout(this.movementContinue.bind(this),this.computeNextMovementTimer()*this._nextMovementTimerMultiplier)}}!function(e){e.of=(t,r)=>{const s=r.familyId;return new e._Constructors[s](t,r)}}(Y||(Y={})),d.R.protoNoEnum(Y,"movementContinue");class ${constructor(e){Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const t=[];for(const r of e)t[r]=new $.Entry;this.entries=t,d.R.propNoWrite(this,"entries")}reset(){for(const e of this.entries)e.reset()}}!function(e){class t{constructor(){Object.defineProperty(this,"moveCounts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"totalHealthPickedUp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.moveCounts={}}reset(){this.totalHealthPickedUp=0,Object.getOwnPropertyNames(I.J5.MoveType).forEach((e=>{this.moveCounts[e]=0}))}}e.Entry=t,Object.freeze(t),Object.freeze(t.prototype)}($||($={})),Object.freeze($),Object.freeze($.prototype);class X{constructor(e,t,r){Object.defineProperty(this,"gameType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),G.set(this,void 0),Object.defineProperty(this,"langFrontend",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"players",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operators",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),D.set(this,void 0),Object.defineProperty(this,"teams",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),z.set(this,void 0),Object.defineProperty(this,"_playerStatusCtor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.gameType=e;const s=this._getGridImplementation(r.coordSys);this.grid=new s({gridClass:s,tileClass:t.tileClass,coordSys:r.coordSys,dimensions:r.gridDimensions}),(0,m.__classPrivateFieldSet)(this,G,t.onGameBecomeOver),this.langFrontend=I.Uo.GET_FRONTEND_DESC_BY_ID(r.langId),this._playerStatusCtor=t.playerStatusCtor,this.players=this.createPlayers(r),this.operators=Object.freeze(this.players.filter((e=>e.isALocalOperator)));{const e=[];if(this.players.forEach((t=>{e[t.teamId]||(e[t.teamId]=[]),e[t.teamId].push(t)})),this.teams=e.map(((e,t)=>new C(t,e))),this.teams.every((e=>e.id===C.ElimOrder.IMMORTAL)))throw new Error("All teams are immortal. The game will never end.")}d.R.propNoWrite(this,"gameType","grid","langFrontend","players","operators","teams","_playerStatusCtor"),this.players.forEach((e=>e._afterAllPlayersConstruction())),this.setCurrentOperator(0)}reset(){return(0,m.__awaiter)(this,void 0,void 0,(function*(){this.grid.reset(),(0,m.__classPrivateFieldSet)(this,z,u.Status.PAUSED)}))}createPlayers(e){const t=e.playerDescs=this.gameType===u.Type.ONLINE?e.playerDescs:L.CtorArgs.finalize(e.playerDescs);return Object.freeze(t.map((e=>e.familyId===L.Family.HUMAN?e.isALocalOperator?this._createOperatorPlayer(e):new L(this,e):this._createArtifPlayer(e))))}serializeResetState(){const e=[],t=this.players.map((e=>e.coord)),r=[];this.grid.forEachTile((t=>{t.lastKnownUpdateId++,e.push({char:t.langChar,seq:t.langSeq}),t.freeHealth&&r.push({coord:t.coord,health:t.freeHealth})}));const s={csps:e,playerCoords:t,healthCoords:r};return d.R.deepFreeze(s),s}deserializeResetState(e){d.R.deepFreeze(e),this.grid.forEachTile(((t,r)=>{t.setLangCharSeqPair(e.csps[r]),t.lastKnownUpdateId++})),e.playerCoords.forEach(((e,t)=>{this.players[t].reset(this.grid.tile.at(e))})),e.healthCoords.forEach((e=>{this.grid.tile.at(e.coord).freeHealth=e.health}))}get currentOperator(){return(0,m.__classPrivateFieldGet)(this,D)}setCurrentOperator(e){const t=this.operators[e];if(void 0===t)throw new Error("never");this.currentOperator!==t&&(t._notifyWillBecomeCurrent(),(0,m.__classPrivateFieldSet)(this,D,t))}get status(){return(0,m.__classPrivateFieldGet)(this,z)}statusBecomePlaying(){if(this.status!==u.Status.PLAYING){if(this.status!==u.Status.PAUSED)throw new Error("Can only resume a game that is currently paused.");this.players.forEach((e=>{e._notifyGameNowPlaying()})),(0,m.__classPrivateFieldSet)(this,z,u.Status.PLAYING)}else console.info("[statusBecomePlaying]: Game is already playing")}statusBecomePaused(){this.status!==u.Status.PAUSED?this.status!==u.Status.OVER&&(this.players.forEach((e=>{e._notifyGameNowPaused()})),(0,m.__classPrivateFieldSet)(this,z,u.Status.PAUSED)):console.info("[statusBecomePaused]: Game is already paused")}statusBecomeOver(){this.status!==u.Status.OVER&&(this.players.forEach((e=>{e._notifyGameNowOver()})),(0,m.__classPrivateFieldSet)(this,z,u.Status.OVER),(0,m.__classPrivateFieldGet)(this,G).call(this),console.info("game is over!"))}}G=new WeakMap,D=new WeakMap,z=new WeakMap,Object.freeze(X),Object.freeze(X.prototype);class Z extends X{constructor(e,t,r){super(e,t,r),Object.defineProperty(this,"eventRecordBitmap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),H.set(this,void 0),this.eventRecordBitmap=[],d.R.propNoWrite(this,"eventRecordBitmap")}reset(){const e=super.reset();return this.eventRecordBitmap.fill(!1,0,u.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH),(0,m.__classPrivateFieldSet)(this,H,0),e}get nextUnusedEventId(){return(0,m.__classPrivateFieldGet)(this,H)}_recordEvent(e){const t=e.eventId,r=t%u.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH;this.eventRecordBitmap[r]=!0,this.eventRecordBitmap[(t+u.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH-u.K.EVENT_RECORD_FORWARD_WINDOW_LENGTH)%u.K.EVENT_RECORD_WRAPPING_BUFFER_LENGTH]=!1,(0,m.__classPrivateFieldSet)(this,H,+(0,m.__classPrivateFieldGet)(this,H)+1)}executeTileModEvent(e,t=!0){d.R.deepFreeze(e);const r=this.grid.tile.at(e.coord);return r.lastKnownUpdateId>e.lastKnownUpdateId||(e.newCharSeqPair&&(r.setLangCharSeqPair(e.newCharSeqPair),t&&this.operators.filter((e=>e.tile.destsFrom().get.includes(r))).forEach((e=>e.seqBufferAcceptKey("")))),r.lastKnownUpdateId=e.lastKnownUpdateId,r.freeHealth=e.newFreeHealth),r}executePlayerMoveEvent(e){var t;d.R.deepFreeze(e);const r=this.players[e.playerId],s=e.playerLastAcceptedRequestId-r.lastAcceptedRequestId;if(e.eventId===O.EVENT_ID_REJECT)return void(0===s&&(r.requestInFlight=!1));this._recordEvent(e);const i=this.executeTileModEvent(e.destModDesc,r!==this.currentOperator);if(null===(t=e.tileHealthModDescs)||void 0===t||t.forEach((e=>{this.executeTileModEvent(e)})),!(s>1)){if(r.requestInFlight=!1,!(r===this.currentOperator?1===s:s<=1))throw new RangeError("never");r.status.health=e.newPlayerHealth.health,r.moveTo(i),r.lastAcceptedRequestId=e.playerLastAcceptedRequestId}}executePlayerBubbleEvent(e){this.players[e.playerId].requestInFlight=!1,e.eventId!==O.EVENT_ID_REJECT&&this._recordEvent(e)}}H=new WeakMap,d.R.protoNoEnum(Z,"nextUnusedEventId","_recordEvent"),Object.freeze(Z),Object.freeze(Z.prototype),function(e){class t{constructor(e){Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.x=e.x,this.y=e.y,Object.freeze(this)}_equals(e){return this.x===e.x&&this.y===e.y}round(){return new t({x:Math.round(this.x),y:Math.round(this.y)})}oneNorm(e){return this.sub(e).originOneNorm()}originOneNorm(){return Math.abs(this.x)+Math.abs(this.y)}infNorm(e){return this.sub(e).originInfNorm()}originInfNorm(){return Math.max(Math.abs(this.x),Math.abs(this.y))}axialAlignment(e){return this.sub(e).originAxialAlignment()}originAxialAlignment(){return Math.abs(Math.abs(this.x)-Math.abs(this.y))/(Math.abs(this.x)+Math.abs(this.y))}add(e){return new t({x:this.x+e.x,y:this.y+e.y})}sub(e){return new t({x:this.x-e.x,y:this.y-e.y})}mul(e){return new t({x:e*this.x,y:e*this.y})}}e.Coord=t,Object.freeze(t),Object.freeze(t.prototype);class r extends M{constructor(e){super(e),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const r=[];for(let s=0;sMath.random()-.5)).forEach((t=>e(t)))}getUntToward(e,t){const r=this.tile.destsFrom(t).unoccupied.get;if(0===r.length)return this.tile.at(t);if(1===r.length)return r[0];r.sort(((t,r)=>t.coord.oneNorm(e)-r.coord.oneNorm(e))).sort(((t,r)=>t.coord.infNorm(e)-r.coord.infNorm(e)));const s=r[0];for(let t=1;ts.coord.infNorm(e)){r.splice(t);break}if(1===r.length)return r[0];if(s.coord.x-t.x==0||s.coord.y-t.y==0){if(t.axialAlignment(t.sub(e))-.5>0)return s;r.shift()}return r[Math.floor(r.length*Math.random())]}getUntAwayFrom(e,t){return this.getUntToward(t.add(t.sub(e)),t)}getDestsFromSourcesTo(e){return this._getTileDestsFrom(e,2)}getRandomCoordAround(e,r){return new t({x:e.x+Math.trunc(2*r*(Math.random()-.5)),y:e.y+Math.trunc(2*r*(Math.random()-.5))})}_getTileAt(e){return this.grid[e.y][e.x]}_getTileDestsFrom(e,t=1){let r=e.y-t,s=e.y+t+1,i=e.x-t,a=e.x+t+1;return r>=this.dimensions.height||s<0||i>=this.dimensions.width||a<0?[]:this.grid.slice(Math.max(0,r),Math.min(this.dimensions.height,s)).flatMap((e=>e.slice(Math.max(0,i),Math.min(this.dimensions.width,a))))}_getTileSourcesTo(e,t=1){return this._getTileDestsFrom(e,t)}minMovesFromTo(e,t){return Math.min(Math.abs(t.x-e.x),Math.abs(t.y-e.y))}static getSpawnCoords(e,t){const s=[];return e.map((e=>{const i=[];for(;e>0;){let a;do{a=r.getRandomCoord(t)}while(s.find((e=>a._equals(e))));i.push(a),s.push(a),e--}return i}))}static getArea(e){return e.height*e.width}static getDiameterOfLatticePatchHavingArea(e){return Math.sqrt(e)}static getRandomCoord(e){const r=Math.floor(e.width*Math.random()),s=Math.floor(e.height*Math.random());return new t({x:r,y:s})}}Object.defineProperty(r,"SIZE_LIMITS",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({height:Object.freeze({min:11,max:51}),width:Object.freeze({min:11,max:51})})}),e.Grid=r,d.R.protoNoEnum(r,"_getTileAt","_getTileDestsFrom","_getTileSourcesTo"),Object.freeze(r),Object.freeze(r.prototype)}(k||(k={})),Object.freeze(k),function(e){class t{constructor(e){Object.defineProperty(this,"dash",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bash",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.dash=e.dash,this.bash=e.bash,Object.freeze(this)}_equals(e){return this.dash===e.dash&&this.bash===e.bash}round(){const e=Math.floor(this.dash),r=Math.floor(this.bash),s=e-this.dash,i=r-this.bash;return s>2*i?new t({dash:e+1,bash:r}):s<.5*i?new t({dash:e,bash:r+1}):Math.min(s,i)>.5?new t({dash:e+1,bash:r+1}):new t({dash:e,bash:r})}add(e){return new t({dash:this.dash+e.dash,bash:this.bash+e.bash})}sub(e){return new t({dash:this.dash-e.dash,bash:this.bash-e.bash})}mul(e){return new t({dash:e*this.dash,bash:e*this.bash})}}e.Coord=t,Object.freeze(t),Object.freeze(t.prototype);class r extends M{constructor(e){super(e),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.grid=Object.freeze(void 0)}static getAmbiguityThreshold(){return 18}static getSizeLimits(){return this.SIZE_LIMITS}forEachTile(e){let t=0;for(const r of this.grid)for(const s of r)e(s,t++)}shuffledForEachTile(e){this.grid.flat().sort(((e,t)=>Math.random()-.5)).forEach((t=>e(t)))}getUntToward(e,t){}getUntAwayFrom(e,t){return this.getUntToward(t.add(t.sub(e)),t)}getRandomCoordAround(e,t){}_getTileAt(e){}_getTileDestsFrom(e,t=1){}_getTileSourcesTo(e,t=1){}minMovesFromTo(e,t){}getDestsFromSourcesTo(e){return this._getTileDestsFrom(e,2)}static getSpawnCoords(e,t){}static getArea(e){const t=Math.min(e.fslash,e.bslash),r=Math.max(e.fslash,e.bslash),s=-1+e.dash+t;let i=2*t*(e.dash+s);return i+=(r-t-1)*s,i}static getDiameterOfLatticePatchHavingArea(e){if(e<.25)throw new RangeError("determinant of a radical will be strictly negative.");return 1+(-3+Math.sqrt(9-12*(1-e)))/6*2}static getRandomCoord(e){return new t(void 0)}}Object.defineProperty(r,"SIZE_LIMITS",{enumerable:!0,configurable:!0,writable:!0,value:Object.freeze({dash:Object.freeze({min:10,max:50}),bslash:Object.freeze({min:10,max:50}),fslash:Object.freeze({min:10,max:50})})}),e.Grid=r,d.R.protoNoEnum(r,"_getTileAt","_getTileDestsFrom","_getTileSourcesTo"),Object.freeze(r),Object.freeze(r.prototype)}(U||(U={})),Object.freeze(U);class Q extends Y{constructor(e,t){super(e,t),Object.defineProperty(this,"threatProximity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"targetProximity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"behaviour",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),q.set(this,void 0),this.behaviour=Object.freeze(Object.assign({},Q.Behaviour.DEFAULT,t.familyArgs)),this.grid=this.game.grid}_afterAllPlayersConstruction(){super._afterAllPlayersConstruction(),this.threatProximity=this.game.teams.filter((e=>e.id!==this.teamId)).flatMap((e=>e.members)),this.targetProximity=[...this.threatProximity],d.R.propNoWrite(this,"threatProximity","targetProximity","behaviour","grid")}reset(e){super.reset(e),(0,m.__classPrivateFieldSet)(this,q,this.coord)}moveTo(e){(0,m.__classPrivateFieldSet)(this,q,this.coord),super.moveTo(e)}computeDesiredDest(){this.threatProximity.sort(((e,t)=>this.grid.minMovesFromTo(e.coord,this.coord)-this.grid.minMovesFromTo(t.coord,this.coord)));for(const e of this.threatProximity){if(this.grid.minMovesFromTo(e.coord,this.coord)>this.behaviour.fearDistance)break;if(!e.status.isDowned&&e.status.health>this.status.health)return this.grid.getUntAwayFrom(e.coord,this.coord).coord}if(this.targetProximity.sort(((e,t)=>this.grid.minMovesFromTo(this.coord,e.coord)-this.grid.minMovesFromTo(this.coord,t.coord))),this.status.isDowned)for(const e of this.targetProximity){if(this.grid.minMovesFromTo(this.coord,e.coord)>this.behaviour.bloodThirstDistance)break;if(e.status.health{M._Constructors=Object.freeze({EUCLID2:k.Grid,BEEHIVE:U.Grid}),Object.freeze(M),Object.freeze(M.prototype);{const e=Y;e._Constructors=Object.freeze({CHASER:Q}),Object.freeze(e),Object.freeze(e.prototype)}})();class ee extends Z{constructor(e,t,s){super(e,t,s),Object.defineProperty(this,"averageFreeHealth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"averageFreeHealthPerTile",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"healthCostOfBoost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),B.set(this,void 0),W.set(this,void 0),Object.defineProperty(this,"lang",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),V.set(this,void 0),Object.defineProperty(this,"scoreInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.averageFreeHealth=s.averageFreeHealthPerTile*this.grid.area,this.averageFreeHealthPerTile=s.averageFreeHealthPerTile,this.healthCostOfBoost=u.K.HEALTH_COST_OF_BOOST(this.averageFreeHealthPerTile,this.grid.static.getDiameterOfLatticePatchHavingArea),(0,m.__classPrivateFieldSet)(this,W,new Set),this.scoreInfo=new $(this.players.map((e=>e.playerId))),d.R.propNoWrite(this,"averageFreeHealth","averageFreeHealthPerTile","healthCostOfBoost","scoreInfo"),(0,m.__classPrivateFieldSet)(this,V,r(59)(`./${this.langFrontend.module}.ts`).then((e=>{const t=this.langFrontend.export.split(".").reduce(((e,t)=>e[t]),e[this.langFrontend.module]);return this.lang=new t(s.langWeightExaggeration),d.R.propNoWrite(this,"lang"),this.grid.static.getAmbiguityThreshold(),this.lang})))}reset(){const e=Object.create(null,{reset:{get:()=>super.reset}});return(0,m.__awaiter)(this,void 0,void 0,(function*(){yield e.reset.call(this),(0,m.__classPrivateFieldSet)(this,B,0),(0,m.__classPrivateFieldGet)(this,W).clear(),yield(0,m.__classPrivateFieldGet)(this,V),this.lang.reset(),this.grid.shuffledForEachTile((e=>{e.setLangCharSeqPair(this.dryRunShuffleLangCharSeqAt(e))})),this.teams.forEach((e=>e.reset()));const t=this.grid.static.getSpawnCoords(this.teams.map((e=>e.members.length)),this.grid.dimensions);return this.teams.forEach(((e,r)=>{e.members.forEach(((e,s)=>{e.reset(this.grid.tile.at(t[r][s]))}))})),this.scoreInfo.reset(),Promise.resolve()}))}_createArtifPlayer(e){return Y.of(this,e)}dryRunShuffleLangCharSeqAt(e,t=!1){e.setLangCharSeqPair(J.U.CharSeqPair.NULL);let r=this.grid.getDestsFromSourcesTo(e.coord).map((e=>e.langSeq));if(t){const e=J.U.CharSeqPair.NULL.seq;r=r.filter((t=>t!==e))}return Object.freeze(r),this.lang.getNonConflictingChar(r)}get currentFreeHealth(){return(0,m.__classPrivateFieldGet)(this,B)}get freeHealthTiles(){return(0,m.__classPrivateFieldGet)(this,W)}dryRunSpawnFreeHealth(e){var t;let r=this.averageFreeHealth-this.currentFreeHealth;if(r<=0)return;const s=[];for(;r>0;){let i;do{i=this.grid.tile.at(this.grid.getRandomCoord())}while(i.isOccupied||s.find((e=>x.equals(i.coord,e.coord))));const a=u.K.AVERAGE_HEALTH_TO_SPAWN_ON_TILE;if(Math.random()x.equals(i.coord,e.coord))))?r.newFreeHealth=(null!==(t=r.newFreeHealth)&&void 0!==t?t:0)+a:s.push({coord:i.coord,lastKnownUpdateId:1+i.lastKnownUpdateId,newFreeHealth:i.freeHealth+a})}r-=a}return s}executeTileModEvent(e,t=!0){d.R.deepFreeze(e);const r=this.grid.tile.at(e.coord);return(0,m.__classPrivateFieldSet)(this,B,(0,m.__classPrivateFieldGet)(this,B)+(e.newFreeHealth-r.freeHealth)),0===e.newFreeHealth?(0,m.__classPrivateFieldGet)(this,W).delete(r):(0,m.__classPrivateFieldGet)(this,W).add(r),super.executeTileModEvent(e,t),r}managerCheckGamePlayingRequest(e){if(this.status!==u.Status.PLAYING)return;const t=this.players[e.playerId];if(!t)throw new Error("No such player exists.");if(e.playerLastAcceptedRequestId!==t.lastAcceptedRequestId)throw new RangeError(e.playerLastAcceptedRequestId{},tileClass:R,playerStatusCtor:F},e.gameDesc),Object.defineProperty(this,"namespace",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_groupHostClient",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"gameEvSocketListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_deleteExternalRefs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerSockets",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._groupHostClient=e.groupHostClient,this._deleteExternalRefs=e.deleteExternalRefs,d.R.instNoEnum(this,"operators","_deleteExternalRefs"),d.R.propNoWrite(this,"_groupHostClient","_deleteExternalRefs"),this.namespace=e.groupNsps.server.of(p.Nsps.GROUP_GAME_PREFIX+e.groupNsps.name.replace(p.Nsps.GROUP_LOBBY_PREFIX,"")),d.R.propNoWrite(this,"namespace"),this.gameEvSocketListeners=Object.freeze({[P.EVENT_NAME.MOVEMENT]:this.processMoveRequest.bind(this),[P.EVENT_NAME.BUBBLE]:this.processBubbleRequest.bind(this),[h.PAUSE]:this.statusBecomePaused.bind(this),[h.UNPAUSE]:this.statusBecomePlaying.bind(this)}),d.R.instNoEnum(this,"gameEvSocketListeners"),d.R.propNoWrite(this,"gameEvSocketListeners"),this._awaitGameSockets(e)}_getGridImplementation(e){return M.getImplementation(e)}_awaitGameSockets(e){const t=new Map,r=Array.from(e.groupNsps.sockets.values(),(e=>new Promise((r=>{t.set(e.client.id,r)}))));Promise.all(r).then((()=>{this.namespace.removeAllListeners("connect"),this._greetGameSockets(e.gameDesc)})).catch((e=>{setImmediate((()=>{throw e}))})),this.namespace.on("connect",(e=>{e.on("disconnect",(()=>{1===this.namespace.sockets.size&&this.terminate()})),t.get(e.client.id)()})),e.groupNsps.emit(c.CREATE_GAME)}_greetGameSockets(e){const t=e.playerDescs.filter((e=>e.familyId===L.Family.HUMAN));{const e=new Map(Array.from(this.namespace.sockets.values(),(e=>[e.client.id,e])));this.playerSockets=t.reduce(((t,r)=>{if(void 0===r.clientId)throw new Error("missing socket client for player with ID "+r.playerId);const s=e.get(r.clientId);if(void 0===s)throw new Error("never");return t.set(r.playerId,s),t}),new Map),d.R.propNoWrite(this,"playerSockets")}Promise.all(Array.from(this.namespace.sockets.values(),(e=>new Promise((t=>{e.once(h.RESET,(()=>{t()}))}))))).then((()=>{this.reset()}));for(const e of this.namespace.sockets.values())e.on(h.RETURN_TO_LOBBY,(()=>{e.client===this._groupHostClient?(this.statusBecomeOver(),e.broadcast.emit(h.RETURN_TO_LOBBY),this.terminate()):e.broadcast.emit(h.RETURN_TO_LOBBY,e.id)})),Object.entries(this.gameEvSocketListeners).forEach((([t,r])=>{e.on(t,r)}));for(const r of this.namespace.sockets.values())t.forEach((e=>{e.isALocalOperator=e.clientId===r.client.id})),r.emit(h.CREATE_GAME,e)}async reset(){Promise.all(Array.from(this.namespace.sockets.values(),(e=>new Promise((t=>{e.once(h.UNPAUSE,(()=>{t()}))}))))).then((()=>{this.statusBecomePlaying()}));const e=super.reset();return await e,this.namespace.emit(h.RESET,this.serializeResetState()),e}_createOperatorPlayer(e){throw new TypeError("This should never be called for a ServerGame.")}setCurrentOperator(e){}setTimeout(e,t,...r){return setTimeout(e,t,r).unref()}cancelTimeout(e){clearTimeout(e)}statusBecomePlaying(){super.statusBecomePlaying(),this.namespace.emit(h.UNPAUSE)}statusBecomePaused(){super.statusBecomePaused(),this.namespace.emit(h.PAUSE)}executePlayerMoveEvent(e){super.executePlayerMoveEvent(e),e.eventId===O.EVENT_ID_REJECT?this.playerSockets.get(e.playerId).emit(P.EVENT_NAME.MOVEMENT,e):this.namespace.emit(P.EVENT_NAME.MOVEMENT,e)}executePlayerBubbleEvent(e){super.executePlayerBubbleEvent(e),e.eventId===O.EVENT_ID_REJECT?this.playerSockets.get(e.playerId).emit(P.EVENT_NAME.BUBBLE,e):this.namespace.emit(P.EVENT_NAME.BUBBLE,e)}terminate(){for(const e of this.namespace.sockets.values())e.disconnect(),e.removeAllListeners();this.namespace.removeAllListeners(),this._deleteExternalRefs()}}d.R.protoNoEnum(te,"_awaitGameSockets","_greetGameSockets","_getGridImplementation","_createOperatorPlayer","setCurrentOperator"),Object.freeze(te),Object.freeze(te.prototype);class re extends f{constructor(e){super(),Object.defineProperty(this,"namespace",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"passphrase",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),K.set(this,void 0),Object.defineProperty(this,"_sessionHost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"socketListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_initialTtlTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_deleteExternalRefs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.namespace=e.namespace,this.name=e.name,this.passphrase=e.passphrase,(0,m.__classPrivateFieldSet)(this,K,void 0),this._deleteExternalRefs=e.deleteExternalRefs,this._initialTtlTimeout=setTimeout((()=>{0===this.namespace.sockets.size&&this.terminate()}),1e3*re.DEFAULT_TTL).unref(),this.socketListeners=Object.freeze({disconnect:(e,t)=>{if(e===this._sessionHost)return void this.terminate();if(1===this.namespace.sockets.size)return void this.terminate();const r={[e.id]:void 0};e.nsp.emit(re.Socket.UserInfoChange.EVENT_NAME,r)},[re.Socket.UserInfoChange.EVENT_NAME]:(e,t)=>{if("string"!=typeof t.username||"number"!=typeof t.teamId||"string"!=typeof t.avatar)return void console.log(`bad format: username: \`${t.username}\`, teamId: \`${t.teamId}\`, avatar: \`${t.avatar}\`.`);e.userInfo=t;const r={[e.id]:t};e.nsp.emit(re.Socket.UserInfoChange.EVENT_NAME,r)}}),d.R.instNoEnum(this,"socketListeners"),d.R.propNoWrite(this,"socketListeners"),this.namespace.use(((e,t)=>{e.handshake.auth.passphrase!==this.passphrase&&t(new Error("Incorrect passphrase"));const r=e.handshake.auth.userInfo;return void 0!==r&&0===r.teamId||t(new Error(`a socket attempted to connect to group \`${this.name}\` without providing userInfo.`)),t()})).on("connection",this.onConnection.bind(this))}onConnection(e){console.info(`socket connect (group): ${e.id}`),(0,m.__classPrivateFieldGet)(this,K)&&e.disconnect(),e.userInfo=e.handshake.auth.userInfo;{const t=re.Socket.UserInfoChange.EVENT_NAME;e.nsp.emit(t,{[e.id]:e.userInfo});const r={};for(const[e,t]of this.sockets.entries())r[e]=t.userInfo;e.emit(t,r)}1===e.nsp.sockets.size&&(clearTimeout(this._initialTtlTimeout),this._initialTtlTimeout=void 0,this._sessionHost=e,this.namespace.server.of(p.Nsps.GROUP_JOINER).emit(re.Exist.EVENT_NAME,{[this.name]:re.Exist.Status.IN_LOBBY}),e.on(c.CREATE_GAME,this._socketOnHostCreateGame.bind(this))),Object.entries(this.socketListeners).forEach((([t,r])=>{e.on(t,r.bind(this,e))}))}_socketOnHostCreateGame(e){const t=this._createGameInstance(e);t.length?console.info(t):(this.namespace.server.of(p.Nsps.GROUP_JOINER).emit(re.Exist.EVENT_NAME,{[this.name]:re.Exist.Status.IN_GAME}),console.info(`group ${this.name} new game`))}get isCurrentlyPlayingAGame(){return void 0!==(0,m.__classPrivateFieldGet)(this,K)}terminate(){function e(e){e.removeAllListeners("connect"),e.removeAllListeners("connection");for(const t of e.sockets.values())t.disconnect(!1),t.removeAllListeners();e.removeAllListeners(),e.server._nsps.delete(e.name)}void 0!==(0,m.__classPrivateFieldGet)(this,K)&&(e((0,m.__classPrivateFieldGet)(this,K).namespace),(0,m.__classPrivateFieldSet)(this,K,void 0));const t=this.namespace.server;e(this.namespace),this.namespace=void 0,this._deleteExternalRefs(),t.of(p.Nsps.GROUP_JOINER).emit(re.Exist.EVENT_NAME,{[this.name]:re.Exist.Status.DELETE}),console.info(`terminated group: \`${this.name}\``)}_createGameInstance(e){const t=[];return this.isCurrentlyPlayingAGame?(t.push("a game is already in session for this group"),t):(t.push(...ee.CHECK_VALID_CTOR_ARGS(e)),t.length?t:(e.playerDescs=[...e.playerDescs,...Array.from(this.sockets.values(),(e=>Object.freeze({isALocalOperator:!1,familyId:"HUMAN",teamId:e.userInfo.teamId,clientId:e.client.id,username:e.userInfo.username,avatar:e.userInfo.avatar,noCheckGameOver:!1,familyArgs:{}})))],(0,m.__classPrivateFieldSet)(this,K,new te({groupNsps:this.namespace,groupHostClient:this._sessionHost.client,deleteExternalRefs:()=>{(0,m.__classPrivateFieldSet)(this,K,void 0)},gameDesc:e})),[]))}get sockets(){return this.namespace.sockets}}K=new WeakMap,d.R.protoNoEnum(re,"_socketOnHostCreateGame"),Object.freeze(re),Object.freeze(re.prototype);class se extends p{constructor(e,t){var r;void 0===e&&(e=Number.parseInt(null!==(r=process.env.PORT)&&void 0!==r?r:se.DEFAULT_PORT.toString())),void 0===t&&(t=void 0),super(),Object.defineProperty(this,"http",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"app",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"io",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allGroups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_joinerSocketListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.app=o(),this.http=a.createServer({},this.app),this.io=new l.Server(this.http,{}),this.allGroups=new Map,d.R.propNoWrite(this,"http","app","io","allGroups");const s=i.resolve(__dirname,"../client");this.app.disable("x-powered-by"),this.app.use("/",n(s,{enableBrotli:!0,serveStatic:{setHeaders:(e,t,r)=>{e.setHeader("X-Content-Type-Options","nosniff"),"text/html"===o.static.mime.lookup(t)&&e.setHeader("Cache-Control","public, max-age=0")}}})),this.http.listen({port:e,host:t},(()=>{const t=this.http.address();console.info(`\n\nServer mounted to: \`${t.address}${t.port}\` using ${t.family}.\n`),console.info("This host can be reached at any of the following addresses:\n"),se.chooseIPAddress().sort().forEach((t=>{console.info(`${t}:${e}`)})),console.info("")})),this._joinerSocketListeners=Object.freeze({[re.Exist.EVENT_NAME]:(e,t)=>{!t.groupName||this.allGroups.has(t.groupName)||t.groupName.length>re.Name.MaxLength||!t.groupName.match(re.Name.REGEXP)||t.passphrase.length>re.Passphrase.MaxLength||!t.passphrase.match(re.Passphrase.REGEXP)?e.emit(re.Exist.EVENT_NAME,re.Exist.RequestCreate.Response.NOPE):(this.allGroups.set(t.groupName,new re(Object.freeze({namespace:this.io.of(se.Nsps.GROUP_LOBBY_PREFIX+t.groupName),name:t.groupName,passphrase:t.passphrase,deleteExternalRefs:()=>this.allGroups.delete(t.groupName)}))),e.emit(re.Exist.EVENT_NAME,re.Exist.RequestCreate.Response.OKAY))}}),d.R.instNoEnum(this,"_joinerSocketListeners"),d.R.propNoWrite(this,"_joinerSocketListeners"),this.io.of(se.Nsps.GROUP_JOINER).on("connection",this.onJoinerNspsConnection.bind(this))}onJoinerNspsConnection(e){console.info(`socket connect (server): ${e.id}`),e.emit(re.Exist.EVENT_NAME,(()=>{const e={};for(const[t,r]of this.allGroups)e[t]=r.isCurrentlyPlayingAGame?re.Exist.Status.IN_GAME:re.Exist.Status.IN_LOBBY;return e})()),Object.entries(this._joinerSocketListeners).forEach((([t,r])=>{e.on(t,r.bind(this,e))}))}}!function(e){e.chooseIPAddress=()=>Object.values(s.networkInterfaces()).flat().filter((e=>!e.internal)).map((e=>"IPv6"===e.family?`[${e.address}]`:e.address))}(se||(se={})),Object.freeze(se),Object.freeze(se.prototype);const ie=new se},59:(e,t,r)=>{var s={"./Chinese.ts":[216,7,330],"./Emote.ts":[655,9,858],"./English.ts":[891,9,184],"./Japanese.ts":[800,9,410],"./Korean.ts":[3,9,227],"./Ngrams.ts":[492,9,273],"./Numpad.ts":[193,9,683],"./Shell.ts":[521,9,159],"./defs/Chinese.ts":[958,7,704],"./defs/English100.ts":[213,9,885]};function i(e){if(!r.o(s,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=s[e],i=t[0];return r.e(t[2]).then((()=>r.t(i,16|t[1])))}i.keys=()=>Object.keys(s),i.id=59,e.exports=i},780:e=>{"use strict";e.exports=require("tslib")}},i={};function a(e){if(i[e])return i[e].exports;var t=i[e]={exports:{}};return s[e](t,t.exports,a),t.exports}return a.m=s,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(r,s){if(1&s&&(r=this(r)),8&s)return r;if("object"==typeof r&&r){if(4&s&&r.__esModule)return r;if(16&s&&"function"==typeof r.then)return r}var i=Object.create(null);a.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var n=2&s&&r;"object"==typeof n&&!~e.indexOf(n);n=t(n))Object.getOwnPropertyNames(n).forEach((e=>o[e]=()=>r[e]));return o.default=()=>r,a.d(i,o),i},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,r)=>(a.f[r](e,t),t)),[])),a.u=e=>"chunk/"+{159:"lang/Shell-ts",184:"lang/English-ts",227:"lang/Korean-ts",273:"lang/Ngrams-ts",330:"lang/Chinese-ts",410:"lang/Japanese-ts",683:"lang/Numpad-ts",704:"lang/defs-Chinese-ts",858:"lang/Emote-ts",885:"lang/defs-English100-ts"}[e]+".js",a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r={826:1},a.f.require=function(e,t){r[e]||(e=>{var t=e.modules,s=e.ids,i=e.runtime;for(var o in t)a.o(t,o)&&(a.m[o]=t[o]);i&&i(a);for(var n=0;n{var e,t,s,r={164:(e,t,s)=>{"use strict";s.d(t,{R:()=>i});const r=Object.freeze({enumerable:!1}),o=Object.freeze({writable:!1});var i;!function(e){function t(e){for(const s of Object.getOwnPropertyNames(e)){const r=e[s];null!==r&&"object"==typeof r&&t(r)}Object.freeze(e)}function s(e,t,...s){for(const r of s)Object.defineProperty(t,r,e)}let i;var a;e.deepFreeze=function(e){return t(e),e},e.hasProp=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.protoNoEnum=function(e,...t){Object.getOwnPropertyNames(e.prototype).freeze(),t.forEach((t=>{Object.defineProperty(e.prototype,t,r)}))},e.instNoEnum=s.bind(null,r),e.propNoWrite=s.bind(null,o),e.camelCaseTransforms=function(e){const t=e.replace(/[A-Z]/g,(e=>" "+e.toLowerCase()));return Object.freeze({spaceyLowercase:t,spaceyUppercase:t.toUpperCase(),spaceyCapitalized:t.split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(" ")})},(a=i=e.Web||(e.Web={})).prependComment=function(e,t){e.parentNode.insertBefore(document.createComment(" "+t+" "),e)},a.adoptStyleSheet=function(t,s){t.appendChild(e.html("link",[],{rel:"stylesheet",href:s}))},a._makeSmartStorage=function(e,t,s){const r={};return Object.keys(s).forEach((e=>{const s=""+e;Object.defineProperty(r,e,{enumerable:!0,get:()=>{const e=t.getItem(s);return null===e?void 0:JSON.parse(e)},set:e=>{t.setItem(s,JSON.stringify(e))}})})),r},e.html=function(e,t,s){const r=document.createElement(e);try{Object.seal(r)}catch(e){}return(null==t?void 0:t.length)&&r.classList.add(...t),"button"===e?r.type="button":"a"===e&&(r.rel="noopener"),void 0!==s&&Object.assign(r,s),r},e.svg=function(e,t,s){const r=document.createElementNS("http://www.w3.org/2000/svg",e);return Object.seal(r),(null==t?void 0:t.length)&&r.classList.add(...t),void 0!==s&&Object.assign(r,s),r}}(i||(i={})),Object.freeze(i)},387:()=>{Object.defineProperties(Array.prototype,{freeze:{value:function(){return Object.freeze(this)},enumerable:!0},seal:{value:function(){return Object.seal(this)},enumerable:!0}}),["Object","String","Number","RegExp","Date","Array","Map","Set","WeakMap","WeakSet"].forEach((e=>{Object.defineProperty(globalThis,e,{enumerable:!0,writable:!1,configurable:!1}),Object.freeze(globalThis[e]),Object.freeze(globalThis[e].prototype)}))},139:(e,t,s)=>{"use strict";s.d(t,{Uo:()=>h,J5:()=>n});var r=s(164);const o=Object.freeze({IDENT:e=>e,LOWER:e=>e.toLowerCase()}),i={"engl-low":{module:"English",export:"Lowercase",isolatedMinOpts:25,remapFunc:o.LOWER,displayName:"English Lowercase (qwerty)",blurb:""},"engl-mix":{module:"English",export:"MixedCase",isolatedMinOpts:51,remapFunc:o.IDENT,displayName:"English Mixed-Case (Querty)",blurb:""},"japn-hir":{module:"Japanese",export:"Hiragana",isolatedMinOpts:70,remapFunc:o.LOWER,displayName:"Japanese Hiragana",blurb:""},"japn-kat":{module:"Japanese",export:"Katakana",isolatedMinOpts:68,remapFunc:o.LOWER,displayName:"Japanese Katakana",blurb:""},"kore-dub":{module:"Korean",export:"Dubeolsik",isolatedMinOpts:8690,remapFunc:o.IDENT,displayName:"Korean Dubeolsik (두벌식 키보드)",blurb:"The most common keyboard layout, and South Korea's only Hangul standard since 1969. Consonants are on the left, and vowels on the right."},"kore-sub":{module:"Korean",export:"Sebeolsik",isolatedMinOpts:10179,remapFunc:o.IDENT,displayName:"Korean Sebeolsik (세벌식 최종 키보드)",blurb:"Another Hangul keyboard layout used in South Korea, and the final Sebeolsik layout designed by Dr. Kong Byung Woo, hence the name. Syllable-initial consonants are on the right, final consonants on the left, and vowels in the middle. It is more ergonomic than the dubeolsik, but not widely used."},"kore-rom":{module:"Korean",export:"Romanization",isolatedMinOpts:3960,remapFunc:o.LOWER,displayName:"Korean Revised Romanization",blurb:"The Revised Romanization of Korean (국어의 로마자 표기법; 國語의 로마字 表記法) is the official South Korean language romanization system. It was developed by the National Academy of the Korean Language from 1995, and was released on 7 July 2000 by South Korea's Ministry of Culture and Tourism"},"engl-cell-enc":{module:"English",export:"OldCellphone.Encode",isolatedMinOpts:7,remapFunc:o.IDENT,displayName:"Old Cellphone Keyboard",blurb:""},"mors-enc":{module:"English",export:"Morse.Encode",isolatedMinOpts:10,remapFunc:e=>e,displayName:"Morse Encoder",blurb:""},"mors-dec":{module:"English",export:"Morse.Decode",isolatedMinOpts:40,remapFunc:o.LOWER,displayName:"Morse Decoder",blurb:""},ngram2:{module:"Ngrams",export:"Ngram2",isolatedMinOpts:199,remapFunc:o.LOWER,displayName:"English Bigrams",blurb:""},ngram3:{module:"Ngrams",export:"Ngram3",isolatedMinOpts:400,remapFunc:o.LOWER,displayName:"English Trigrams",blurb:""},numpad:{module:"Numpad",export:"Numpad",isolatedMinOpts:100,remapFunc:o.LOWER,displayName:"Number Pad",blurb:""}};Object.entries(i).forEach((([e,t])=>{t.id=e})),r.R.deepFreeze(i);const a=i;Object.freeze({behavior:"smooth",block:"center",inline:"center"});class n{}!function(e){let t,s;var r;let o;e.Family=Object.freeze({HUMAN:"HUMAN",CHASER:"CHASER"}),e.Family,(t=e.Id||(e.Id={})).NULL=-1,(r=s=e.Username||(e.Username={})).REGEXP=/[ a-zA-Z0-9:-]+/,r.MAX_LENGTH=15,(o=e.Avatar||(e.Avatar={})).LOREM_IPSUM="lorem-ipsum",function(e){const t=Object.values(e).filter((e=>"string"==typeof e));e.GET_RANDOM=function(){return t[Math.floor(Math.random()*t.length)]}}(o=e.Avatar||(e.Avatar={}))}(n||(n={})),Object.freeze(n);class h{}!function(e){let t,s,r;(t=e.Seq||(e.Seq={})).REGEXP=new RegExp("^[a-zA-Z0-9!@#$%^&*()-_=+;:'\"\\|,.<>/?]+$"),(s=e.CharSeqPair||(e.CharSeqPair={})).NULL=Object.freeze({char:"",seq:""}),(r=e.WeightExaggeration||(e.WeightExaggeration={})).MAX=4,e.CHAR_HIT_COUNT_SEED_CEILING=5,e.FrontendDescs=a,e.GET_FRONTEND_DESC_BY_ID=function(t){return e.FrontendDescs[t]}}(h||(h={})),Object.freeze(h),Object.freeze(h.prototype)},208:(e,t,s)=>{"use strict";s.d(t,{U:()=>c});var r,o=s(164),i=s(139),a=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},n=(e,t,s)=>(a(e,t,"read from private field"),s?s.call(e):t.get(e));!function(e){var t;const s=class{constructor(e,s="",r){var o,i,n;t.set(this,[]),this.carryHits=0,Object.defineProperty(this,"parent",{enumerable:!0,value:e}),Object.defineProperty(this,"seq",{enumerable:!0,value:s}),Object.defineProperty(this,"children",{enumerable:!0,value:[]}),o=this,i=t,n=Object.freeze(r),a(o,i,"write to private field"),i.set(o,n),Object.seal(this)}get ownHits(){var e,t;return this.carryHits-(null!=(t=null==(e=this.parent)?void 0:e.carryHits)?t:0)}reset(){this.carryHits=0;for(const e of this.children)e.reset();for(const e of n(this,t))e.reset(),this.incrHits(e,Math.random()*i.Uo.CHAR_HIT_COUNT_SEED_CEILING)}getLeaves(){const e=[];return this._rGetLeaves(e),e.freeze()}_rGetLeaves(e){if(this.children.length)for(const t of this.children)t._rGetLeaves(e);else e.push(this)}chooseOnePair(){let e=n(this,t)[0];for(const s of n(this,t))s.hits{const r=new h(e,o(s)),a=i.get(t);void 0!==a?a.push(r):i.set(t,[r])}));const a=[];let n;for(const[e,t]of Array.from(i).seal().sort((([e],[t])=>e1;if(1===e)return e=>e;const s=Object.values(t),r=s.reduce(((e,t)=>e+t.weight),0)/s.length;return t=>Math.pow(t/r,e)}t=new WeakMap,r.LEAF_CMP=(e,t)=>e.carryHits-t.carryHits,e.Node=r,o.R.protoNoEnum(r,"_rGetLeaves","_rIncrHits"),Object.freeze(r),Object.freeze(r.prototype),e.GET_SCALE_WEIGHT_FUNC=c,Object.freeze(c)}(r||(r={})),Object.freeze(r);class h{constructor(e,t){this.char=e,this.hits=0,this.char=e,Object.defineProperty(this,"weightInv",{enumerable:!0,value:1/t}),Object.seal(this)}reset(){this.hits=0}_incrementNumHits(){this.hits+=this.weightInv}}Object.freeze(h),Object.freeze(h.prototype);class c extends i.Uo{constructor(e,t){super(),this.frontendDesc=c.GET_FRONTEND_DESC_BY_ID(e),this.treeRoots=r.Node.CREATE_TREE_MAP(Object.getPrototypeOf(this).constructor.BUILD(),t);const s=this.treeRoots.map((e=>e.getLeaves()));this.leafNodes=s.flat(),this.isolatedMinOpts=s.map((e=>e.length)).sort().slice(0,-1).reduce(((e,t)=>e+t),0),o.R.propNoWrite(this,"frontendDesc","treeRoots","leafNodes","isolatedMinOpts"),Object.seal(this)}reset(){for(const e of this.treeRoots)e.reset()}getNonConflictingChar(e){this.leafNodes.sort(r.Node.LEAF_CMP);e:for(const t of this.leafNodes){let s=t;for(let r=t;void 0!==r;r=r.parent){const t=e.find((e=>e.startsWith(r.seq)));if(t){if(t.length>r.seq.length)break;continue e}r.ownHits(e[t]={seq:t,weight:s},e)),{})}}(c||(c={})),Object.freeze(c),Object.freeze(c.prototype)},59:(e,t,s)=>{var r={"./Chinese.ts":[83,7,330],"./Emote.ts":[985,9,858],"./English.ts":[825,9,184],"./Japanese.ts":[885,9,410],"./Korean.ts":[969,9,227],"./Ngrams.ts":[755,9,273],"./Numpad.ts":[444,9,683],"./Shell.ts":[25,9,159],"./defs/Chinese.ts":[711,7,704],"./defs/English100.ts":[589,9,885]};function o(e){if(!s.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],o=t[0];return s.e(t[2]).then((()=>s.t(o,16|t[1])))}o.keys=()=>Object.keys(r),o.id=59,e.exports=o}},o={};function i(e){if(o[e])return o[e].exports;var t=o[e]={exports:{}};return r[e](t,t.exports,i),t.exports}i.m=r,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(s,r){if(1&r&&(s=this(s)),8&r)return s;if("object"==typeof s&&s){if(4&r&&s.__esModule)return s;if(16&r&&"function"==typeof s.then)return s}var o=Object.create(null);i.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var n=2&r&&s;"object"==typeof n&&!~e.indexOf(n);n=t(n))Object.getOwnPropertyNames(n).forEach((e=>a[e]=()=>s[e]));return a.default=()=>s,i.d(o,a),o},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>"chunk/"+{159:"lang/Shell-ts",184:"lang/English-ts",227:"lang/Korean-ts",273:"lang/Ngrams-ts",330:"lang/Chinese-ts",410:"lang/Japanese-ts",683:"lang/Numpad-ts",704:"lang/defs-Chinese-ts",858:"lang/Emote-ts",885:"lang/defs-English100-ts"}[e]+".js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s={826:1},i.f.require=function(e,t){s[e]||(e=>{var t=e.modules,r=e.ids,o=e.runtime;for(var a in t)i.o(t,a)&&(i.m[a]=t[a]);o&&o(i);for(var n=0;n{"use strict";i.r(a),i.d(a,{chooseIPAddress:()=>Le,wss:()=>ke}),i(387);const e=require("os");var t=i.n(e);const s=require("fs");var r=i.n(s);const o=require("path");var n=i.n(o);const h=require("http");var c=i.n(h);const d=require("express");var l=i.n(d);const u=require("express-static-gzip");var m=i.n(u);const p=require("ws");var f=i.n(p);function g(e){if(E.has(e))return E.get(e);throw new Error("never")}const E=new WeakMap;class O{}var y,b,v,N;!function(e){let t;var s;let r;var o;(s=t=e.Name||(e.Name={})).REGEXP=/^(?:[a-zA-Z0-9:-]+)$/,s.MaxLength=30,(o=r=e.Passphrase||(e.Passphrase={})).REGEXP=/^(?:[a-zA-Z0-9:-]*)$/,o.MaxLength=30,e.GameServerReconnectionAttempts=2,e.DEFAULT_TTL=20}(O||(O={})),Object.freeze(O),Object.freeze(O.prototype),function(e){let t,s,r;(t=e.Create||(e.Create={})).NAME="joiner/create",function(e){let t;var s;e.NAME="joiner/exist",(s=t=e.Status||(e.Status={})).IN_LOBBY="in-lobby",s.IN_GAME="in-game",s.DELETE="delete"}(s=e.Exist||(e.Exist={})),(r=e.TryJoin||(e.TryJoin={})).NAME="joiner/try-join"}(y||(y={})),Object.freeze(y),function(e){let t;(t=e.UserInfo||(e.UserInfo={})).NAME="group/user-info-change",e.CREATE_GAME="group/create-game"}(b||(b={})),Object.freeze(b),(N=v||(v={})).RESET="game/reset",N.UNPAUSE="game/unpause",N.PAUSE="game/pause",N.IN_GAME="game/ingame",N.RETURN_TO_LOBBY="game/return-to-lobby";var w,_=i(164),S=i(208);!function(e){let t;var s;(s=t=e.Status||(e.Status={})).PLAYING="PLAYING",s.PAUSED="PAUSED",s.OVER="OVER",Object.freeze(t),e.K=Object.freeze({_HEALTH_UPDATE_CHANCE:.1,AVERAGE_HEALTH_TO_SPAWN_ON_TILE:1,PORTION_OF_MOVES_THAT_ARE_BOOST:.4,_HEALTH_COST_OF_BOOST(e,t){const s=t(this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/e);return this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE/s/this.PORTION_OF_MOVES_THAT_ARE_BOOST},HEALTH_EFFECT_FOR_DOWNED_PLAYER:.6,_REQUEST_BUFFER_LENGTH:5,_ROBOT_PRIORITY_MAX_REUSES:4})}(w||(w={})),Object.freeze(w);var T,A=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},I=(e,t,s,r)=>(A(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);class j{constructor(){T.set(this,0),this.length=0}get lastRejectId(){return A(this,e=T,"read from private field"),e.get(this);var e}reset(e){I(this,T,0),this.length=0,this.predictedCoord=e}get isFull(){return this.length===w.K._REQUEST_BUFFER_LENGTH}signRequest(e){return this.length++,this.predictedCoord=e.moveDest,e}getNextRejectId(){return(this.lastRejectId+Math.floor(99*Math.random()))%100}reject(e,t){I(this,T,e),this.length=0,this.predictedCoord=t}acceptOldest(){this.length--}}T=new WeakMap,Object.freeze(j),Object.freeze(j.prototype);var M=i(139);class C{constructor(e,t){if(this.id=e,this.members=t,this.elimOrder=C.ElimOrder.STANDING,_.R.propNoWrite(this,"id","members"),Object.seal(this),0===t.length)throw new Error("Teams must have at least one member.")}reset(){this.elimOrder=C.ElimOrder.STANDING}}!function(e){let t;(t=e.ElimOrder||(e.ElimOrder={})).STANDING=0}(C||(C={})),Object.freeze(C),Object.freeze(C.prototype);var R,z,k=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},P=(e,t,s)=>(k(e,t,"read from private field"),s?s.call(e):t.get(e)),L=(e,t,s,r)=>(k(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);const D=class extends M.J5{constructor(e,t){super(),R.set(this,void 0),z.set(this,0),this.prevCoord=void 0,this.playerId=t.playerId,this.familyId=t.familyId,this.teamId=t.teamId,this.username=t.username,this.avatar=t.avatar,this.game=e,this.reqBuffer=new j,_.R.instNoEnum(this,"game"),_.R.propNoWrite(this,"game","playerId","familyId","teamId","username","avatar","reqBuffer"),new.target===D&&Object.seal(this)}get team(){return this.game.teams[this.teamId]}get coord(){return P(this,R)}get health(){return P(this,z)}get isDowned(){return this.health<0}isTeamedWith(e){return this.team.members.includes(e)}onTeamsBootstrapped(){}reset(e){L(this,R,e),this.prevCoord=e,this.game.grid.write(e,{occId:this.playerId}),L(this,z,0),this.reqBuffer.reset(e)}onGamePlaying(){}onGamePaused(){}onGameOver(){}makeMovementRequest(e,t){this.reqBuffer.isFull||this.game.processMoveRequest(this.reqBuffer.signRequest({initiator:this.playerId,lastRejectId:this.reqBuffer.lastRejectId,moveType:t,moveDest:e}))}setCoord(e){this.prevCoord=this.coord,L(this,R,e)}set health(e){const t=this.isDowned;if(L(this,z,e),t||!this.isDowned)return;const s=this.team,r=this.game.teams;if(s.elimOrder===C.ElimOrder.STANDING&&s.members.every((e=>e.isDowned))){const e=1+r.filter((e=>e.elimOrder!==C.ElimOrder.STANDING)).length;s.elimOrder=1+r.filter((e=>e.elimOrder!==C.ElimOrder.STANDING)).length,e===r.length&&this.game.statusBecomeOver()}}};let x=D;R=new WeakMap,z=new WeakMap,function(e){let t;e.MoveType=Object.freeze({NORMAL:"NORMAL",BOOST:"BOOST"}),e.MoveType,(t=e.CtorArgs||(e.CtorArgs={})).finalize=function(t){const s=t.players,r=Array.from(new Set(s.map((e=>e.teamId)))).sort(((e,t)=>e-t)).reduce(((e,t,s)=>(e[t]=s,e)),[]);t.players=s.slice().sort(((e,t)=>r[e.teamId]-r[t.teamId])).freeze().map(((t,s)=>{var o;return Object.assign({},t,{playerId:s,teamId:r[t.teamId],avatar:null!=(o=t.avatar)?o:e.Avatar.GET_RANDOM()})})).freeze()},Object.freeze(t)}(x||(x={})),_.R.protoNoEnum(x,"onGamePlaying","onGamePaused","onGameOver","onTeamsBootstrapped"),Object.freeze(x),Object.freeze(x.prototype);var H,U,G=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},B=(e,t,s)=>(G(e,t,"read from private field"),s?s.call(e):t.get(e)),F=(e,t,s,r)=>(G(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);class W{constructor(e,t){H.set(this,0),this.tiles=new Map;const s=w.K._HEALTH_COST_OF_BOOST(e.averageHealthPerTile,t.getLatticePatchDiameter);this.K=Object.freeze({avg:e.averageHealthPerTile*t.getArea(e.gridDimensions),avgPerTile:e.averageHealthPerTile,costOfBoost:e=>s/e.seq.length}),_.R.propNoWrite(this,"K"),Object.seal(this)}get currentAmount(){return B(this,H)}reset(){F(this,H,0),this.tiles.clear()}add(e){F(this,H,B(this,H)+e)}}H=new WeakMap,Object.freeze(W),Object.freeze(W.prototype);class q{constructor(e){const t=[];for(const s of e)t[s]=new q.Entry;this.entries=t,_.R.propNoWrite(this,"entries"),Object.seal(this)}reset(){for(const e of this.entries)e.reset()}}!function(e){class t{constructor(){this.moveCounts={}}reset(){this.totalHealthPickedUp=0,Object.getOwnPropertyNames(x.MoveType).forEach((e=>{this.moveCounts[e]=0}))}}e.Entry=t,Object.freeze(t),Object.freeze(t.prototype)}(q||(q={})),Object.freeze(q),Object.freeze(q.prototype);class J{constructor(e){Object.freeze(e),this.static=e.Grid,this.dimensions=e.dimensions,this.area=e.Grid.getArea(e.dimensions),_.R.propNoWrite(this,"static","dimensions")}reset(){this.forEach((e=>{this.write(e.coord,{occId:M.J5.Id.NULL,char:"",seq:"",health:0})}))}getAllAltDestsThan(e){return Array.from(new Set(this.tileSourcesTo(e).flatMap((e=>this.tileDestsFrom(e.coord)))))}getRandomCoord(){return this.static.getRandomCoord(this.dimensions)}static getSpawnCoords(e,t){const s=new Set;return e.map((e=>{const r=[];for(;e>0;){let o;do{o=this.getRandomCoord(t)}while(s.has(o));r.push(o),s.add(o),e--}return r.freeze()})).freeze()}}(U=J||(J={}))._Constructors={W_EUCLID2:void 0,BEEHIVE:void 0},U.getImplementation=e=>U._Constructors[e],Object.freeze(J),Object.freeze(J.prototype);var K,Y,$,X,V,Z=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},Q=(e,t,s)=>(Z(e,t,"read from private field"),s?s.call(e):t.get(e)),ee=(e,t,s,r)=>(Z(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);class te{constructor(e){K.set(this,void 0),Y.set(this,void 0),$.set(this,void 0);const{impl:t,desc:s,operatorIds:r}=e;Object.freeze(s),Object.freeze(s.players),s.players.forEach((e=>Object.freeze(e))),Object.freeze(r);const o=t.gridClassLookup(s.coordSys);this.grid=new o({Grid:o,system:s.coordSys,dimensions:s.gridDimensions,players:s.players}),ee(this,K,t.onGameBecomeOver),this.langFrontend=M.Uo.GET_FRONTEND_DESC_BY_ID(s.langId);const i=this._createPlayers(s,t,r);this.players=i.players,this.operators=i.operators;{const e=[];this.players.forEach((t=>{e[t.teamId]||(e[t.teamId]=[]),e[t.teamId].push(t)})),this.teams=e.map(((e,t)=>new C(t,e)))}_.R.propNoWrite(this,"grid","langFrontend","players","operators","teams"),this.players.forEach((e=>e.onTeamsBootstrapped())),this.setCurrentOperator(0)}reset(){this.grid.reset(),ee(this,$,w.Status.PAUSED)}_createPlayers(e,t,s){const r=e.players.map((e=>e.familyId===x.Family.HUMAN?s.includes(e.playerId)?new t.OperatorPlayer(this,e):new x(this,e):t.RobotPlayer(this,e))).freeze();return Object.freeze({players:r,operators:s.map((e=>r[e])).freeze()})}deserializeResetState(e){_.R.deepFreeze(e),this.grid.forEach(((t,s)=>{this.grid.write(t.coord,e.csps[s])})),e.playerCoords.forEach(((e,t)=>{this.players[t].reset(e)}))}get currentOperator(){return Q(this,Y)}setCurrentOperator(e){const t=this.operators[e];if(void 0===t)throw new Error("never");this.currentOperator!==t&&ee(this,Y,t)}get status(){return Q(this,$)}statusBecomePlaying(){if(this.status!==w.Status.PLAYING){if(this.status!==w.Status.PAUSED)throw new Error("Can only resume a game that is currently paused.");this.players.forEach((e=>{e.onGamePlaying()})),ee(this,$,w.Status.PLAYING)}else console.info("[statusBecomePlaying]: Game is already playing")}statusBecomePaused(){this.status!==w.Status.PAUSED?this.status!==w.Status.OVER&&(this.players.forEach((e=>{e.onGamePaused()})),ee(this,$,w.Status.PAUSED)):console.info("[statusBecomePaused]: Game is already paused")}statusBecomeOver(){this.status!==w.Status.OVER&&(this.players.forEach((e=>{e.onGameOver()})),ee(this,$,w.Status.OVER),Q(this,K).call(this),console.info("game is over!"))}commitTileMods(e,t,s=!0){const r=this.grid.tileAt(e);void 0!==t.seq&&s&&this.operators.forEach((e=>{this.grid.tileDestsFrom(e.coord).includes(r)&&e.seqBufferAcceptKey(void 0)})),this.grid.write(e,t)}commitStateChange(e,t){_.R.deepFreeze(e);const s=this.players[e.initiator];void 0===e.rejectId?(Object.entries(e.tiles).freeze().forEach((([e,t])=>{this.commitTileMods(parseInt(e),t)})),Object.entries(e.players).freeze().forEach((([e,t])=>{const s=this.players[parseInt(e)];s.reqBuffer.acceptOldest(),s.health=t.health,void 0!==t.coord&&(this.grid.write(s.coord,{occId:x.Id.NULL}),this.grid.write(t.coord,{occId:s.playerId}),s.setCoord(t.coord))}))):s.reqBuffer.reject(e.rejectId,s.coord)}}K=new WeakMap,Y=new WeakMap,$=new WeakMap,_.R.protoNoEnum(te,"_createPlayers"),Object.freeze(te),Object.freeze(te.prototype);class se{constructor(e,t){this.x=e,this.y=t,Object.freeze(this)}static from(e,t){return new se(t%e.width,Math.floor(t/e.width))}toCoord(e){return this.y*e.width+this.x}static distX(e,t,s){let r=Math.abs(t.x-s.x);return rMath.random()-.5)).freeze();for(const s of t)e(this._grid[s],s)}getUntToward(e,t){const s=this.tileDestsFrom(t).filter((e=>e.occId===M.J5.Id.NULL)).map((t=>{const s=this.iacCache[t.coord],r=this.iacCache[e];return{tile:t,iac:s,infNorm:se.infNorm(this.dimensions,s,r).norm,oneNorm:se.oneNorm(this.dimensions,s,r).norm}}));if(0===s.length)return this.tileAt(t);s.sort(((e,t)=>e.infNorm-t.infNorm)),s.length=3,s.sort(((e,t)=>e.oneNorm-t.oneNorm));const r=s[0];for(let e=1;er.infNorm){s.splice(e);break}if(1===s.length)return r.tile;if(r.infNorm===r.oneNorm){if(se.axialAlignment(this.dimensions,t,e)>.5)return r.tile;s.shift()}return s[Math.floor(s.length*Math.random())].tile}getUntAwayFrom(e,t){const s=this.iacCache[e],r=this.iacCache[t].iSub(s).mod(this.dimensions);return this._grid[r.toCoord(this.dimensions)]}getAllAltDestsThan(e){return this.tileDestsFrom(e,2)}getRandomCoordAround(e,t){const s=this.iacCache[e];return new se(s.x+Math.trunc(2*t*(Math.random()-.5)),s.y+Math.trunc(2*t*(Math.random()-.5))).mod(this.dimensions).toCoord(this.dimensions)}dist(e,t){return se.infNorm(this.dimensions,this.iacCache[e],this.iacCache[t]).norm}tileAt(e){return this._grid[e]}tileDestsFrom(e,t=1){const s=this.iacCache[e];let r=!1,o=!1;const i=this.dimensions.width,a=this.dimensions.height;let n=s.y-t;n<0&&(n+=a,o=!0);let h=s.x-t;h<0&&(h+=i,r=!0);let c=s.y+t+1;c>a&&(c-=a,o=!0);let d=s.x+t+1;d>i&&(d-=i,r=!0);const l=[];if(r){const e=n*i;l.push(...this._grid.slice(e,e+d)),o&&l.push(...this._grid.slice(0,d))}const u=o?a:c,m=2*t+1;for(let e=n;e2*r?new re({dash:e+1,bash:t}):s<.5*r?new re({dash:e,bash:t+1}):Math.min(s,r)>.5?new re({dash:e+1,bash:t+1}):new re({dash:e,bash:t})}add(e){return new re({dash:this.dash+e.dash,bash:this.bash+e.bash})}sub(e){return new re({dash:this.dash-e.dash,bash:this.bash-e.bash})}mul(e){return new re({dash:e*this.dash,bash:e*this.bash})}}Object.freeze(re),Object.freeze(re.prototype),function(e){const t=class extends J{constructor(e){super(e),this.grid=(void 0).freeze(),new.target===t&&Object.seal(this)}write(e,t){}forEach(e){let t=0;for(const s of this.grid)for(const r of s)e(r,t++)}forEachShuffled(e){}getUntToward(e,t){}getUntAwayFrom(e,t){}getAllAltDestsThan(e){return this.tileDestsFrom(e,2)}getRandomCoordAround(e,t){}dist(e,t){}tileAt(e){}tileDestsFrom(e,t=1){return[].freeze()}tileSourcesTo(e,t=1){}static getArea(e){const t=Math.min(e.fslash,e.bslash),s=Math.max(e.fslash,e.bslash),r=-1+e.dash+t;let o=2*t*(e.dash+r);return o+=(s-t-1)*r,o}static getLatticePatchDiameter(e){if(e<.25)throw new RangeError("determinant of a radical will be strictly negative.");return 1+(-3+Math.sqrt(9-12*(1-e)))/6*2}static getRandomCoord(e){return new re(void 0).toCoord()}};let s=t;s.ambiguityThreshold=18,s.SIZE_LIMITS=_.R.deepFreeze({dash:{min:10,max:50},bslash:{min:10,max:50},fslash:{min:10,max:50}}),s.sizeLimits=t.SIZE_LIMITS,e.Grid=s,_.R.protoNoEnum(s,"tileAt","tileDestsFrom","tileSourcesTo"),Object.freeze(s),Object.freeze(s.prototype)}(V||(V={})),Object.freeze(V);var oe=(e,t,s)=>(((e,t,s)=>{if(!t.has(e))throw TypeError("Cannot read from private field")})(e,t),s?s.call(e):t.get(e));class ie extends x{constructor(e,t){super(e,t),this._nextMovementTimerMultiplier=void 0,this._scheduledMovementCallbackId=void 0}onGamePlaying(){super.onGamePlaying(),this._delayedMovementContinue()}onGamePaused(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}onGameOver(){this.game.cancelTimeout(this._scheduledMovementCallbackId),this._scheduledMovementCallbackId=void 0}_movementContinue(){const e=this.computeDesiredDest();this._nextMovementTimerMultiplier=this.game.grid.tileAt(e).seq.length,this.makeMovementRequest(this.game.grid.getUntToward(e,this.coord).coord,this.getNextMoveType()),this._delayedMovementContinue()}_delayedMovementContinue(){this._scheduledMovementCallbackId=this.game.setTimeout(this._movementContinue.bind(this),this.computeNextMovementTimer()*this._nextMovementTimerMultiplier)}}!function(e){var t;e._Constructors={CHASER:void 0},e.of=(t,s)=>{const r=s.familyId;return new e._Constructors[r](t,s)};class s extends e{constructor(){super(...arguments),t.set(this,{which:0,reuses:0,target:void 0})}reset(e){super.reset(e),oe(this,t).which=0,oe(this,t).reuses=0,oe(this,t).target=void 0}computeDesiredDest(){const e=oe(this,t);if(void 0!==e.target&&e.reuses<=w.K._ROBOT_PRIORITY_MAX_REUSES){const t=this._behaviours[e.which].call(this,e.target);if(void 0!==t)return e.reuses++,t.dest}e.reuses=0;for(let t=0;te.id!==this.teamId)).flatMap((e=>e.members)).seal(),this.prey=[...this.pred].seal(),_.R.propNoWrite(this,"pred","prey")}_bhvrEvadePred(e){if(void 0!==e)return{dest:this.grid.getUntAwayFrom(this.game.players[e].coord,this.coord).coord};this.pred.sort(((e,t)=>this.grid.dist(e.coord,this.coord)-this.grid.dist(t.coord,this.coord)));for(const e of this.pred){if(this.grid.dist(e.coord,this.coord)>this.params.fearDistance)break;if(!e.isDowned&&e.health>this.health)return{dest:this.grid.getUntAwayFrom(e.coord,this.coord).coord,target:e.playerId}}}_bhvrChasePrey(e){if(void 0!==e)return{dest:this.game.players[e].coord};if(this.prey.sort(((e,t)=>this.grid.dist(this.coord,e.coord)-this.grid.dist(this.coord,t.coord))),this.isDowned)for(const e of this.prey){if(this.grid.dist(this.coord,e.coord)>this.params.bloodThirstDistance)break;if(e.health{if(!t.has(e))throw TypeError("Cannot "+s)};(()=>{Object.freeze(Object.assign(J._Constructors,{W_EUCLID2:X.Grid,BEEHIVE:V.Grid})),Object.freeze(J);{const e=ie;Object.freeze(Object.assign(e._Constructors,{CHASER:ae})),Object.freeze(e)}})();class de extends te{constructor(e){var t,s,r;super(e),this.lang=void 0,ne.set(this,void 0),this.health=new W(e.desc,this.grid.static),this.scoreInfo=new q(this.players.map((e=>e.playerId))),_.R.propNoWrite(this,"health","scoreInfo"),t=this,s=ne,r=i(59)(`./${this.langFrontend.module}.ts`).then((t=>{const s=this.langFrontend.export.split(".").reduce(((e,t)=>e[t]),t[this.langFrontend.module]);return this.lang=new s(e.desc.langWeightExaggeration),_.R.propNoWrite(this,"lang"),this.lang})),ce(t,s,"write to private field"),s.set(t,r)}async reset(){super.reset();const e=Object.freeze({playerCoords:[],csps:[]});var t,s;this.health.reset(),await(t=this,s=ne,ce(t,s,"read from private field"),s.get(t)),this.lang.reset(),this.grid.forEachShuffled(((t,s)=>{const r=this.dryRunShuffleLangCspAt(t.coord,!0);this.grid.write(t.coord,r),e.csps[s]=r})),this.teams.forEach((e=>e.reset()));const r=this.grid.static.getSpawnCoords(this.teams.map((e=>e.members.length)),this.grid.dimensions);return this.teams.forEach(((t,s)=>{t.members.forEach(((t,o)=>{const i=r[s][o];t.reset(i),e.playerCoords[t.playerId]=i}))})),this.scoreInfo.reset(),e}dryRunShuffleLangCspAt(e,t=!1){this.grid.write(e,S.U.CharSeqPair.NULL);let s=this.grid.getAllAltDestsThan(e).map((e=>e.seq)).freeze();if(t){const e=S.U.CharSeqPair.NULL.seq;s=s.filter((t=>t!==e)).freeze()}return this.lang.getNonConflictingChar(s)}dryRunSpawnHealth(e){var t;let s=this.health.K.avg-this.health.currentAmount;if(s<=0)return e;for(;s>0;){let r;do{r=this.grid.tileAt(this.grid.getRandomCoord())}while(r.occId!==x.Id.NULL);const o=w.K.AVERAGE_HEALTH_TO_SPAWN_ON_TILE;if(Math.random(){if(!t.has(e))throw TypeError("Cannot "+s)},pe=(e,t,s)=>(me(e,t,"read from private field"),s?s.call(e):t.get(e)),fe=(e,t,s,r)=>(me(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);function ge(e){const[t,...s]=JSON.parse(e.data),r=e.target;switch(t){case v.IN_GAME:this.processMoveRequest(s[0],r);break;case v.PAUSE:this.statusBecomePaused();break;case v.UNPAUSE:this.statusBecomePlaying();break;case v.RETURN_TO_LOBBY:if(r===this.groupHostSocket){this.statusBecomeOver();const e=JSON.stringify([v.RETURN_TO_LOBBY]);this.sockets.forEach((t=>{t!==r&&t.send(e)})),this._terminate()}else{const e=JSON.stringify([v.RETURN_TO_LOBBY,g(r)]);this.sockets.forEach((t=>{t!==r&&t.send(e)}))}}}class Ee extends de{constructor(e){super({impl:{gridClassLookup:J.getImplementation,OperatorPlayer:void 0,RobotPlayer:(e,t)=>ie.of(e,t),onGameBecomeOver:()=>{}},desc:(x.CtorArgs.finalize(e.gameDesc),e.gameDesc),operatorIds:[]}),le.set(this,void 0),ue.set(this,void 0),this.sockets=new Set(e.sockets),this.groupHostSocket=e.groupHostSocket,fe(this,le,e.deleteExternalRefs),_.R.instNoEnum(this,"operators"),_.R.propNoWrite(this,"groupHostSocket","sockets"),fe(this,ue,ge.bind(this)),Object.seal(this),this.sockets.forEach((e=>{e.addEventListener("message",pe(this,ue)),e.addEventListener("close",(()=>{1===this.sockets.size&&this._terminate()}),{once:!0})})),this._greetGameSockets(e.gameDesc)}get currentOperator(){throw new Error("never")}_greetGameSockets(e){const t=e.players.filter((e=>"HUMAN"===e.familyId)).freeze();Promise.all(Array.from(this.sockets,(e=>new Promise((t=>{e.addEventListener("message",(e=>{JSON.parse(e.data)[0]===v.RESET&&t()}),{once:!0})}))))).then((()=>this.reset())),this.sockets.forEach((s=>{const r=t.filter((e=>e.socket===s)).map((e=>e.playerId)).freeze(),o=JSON.stringify([b.CREATE_GAME,e,r]);s.send(o)}))}async reset(){Promise.all(Array.from(this.sockets,(e=>new Promise((t=>{e.addEventListener("message",(e=>{JSON.parse(e.data)[0]===v.UNPAUSE&&t()}),{once:!0})}))))).then((()=>{this.statusBecomePlaying()}));const e=await super.reset(),t=JSON.stringify([v.RESET,e]);return this.sockets.forEach((e=>e.send(t))),e}setCurrentOperator(e){}setTimeout(e,t,...s){return setTimeout(e,t,s).unref()}cancelTimeout(e){clearTimeout(e)}statusBecomePlaying(){super.statusBecomePlaying();const e=JSON.stringify([v.UNPAUSE]);this.sockets.forEach((t=>t.send(e)))}statusBecomePaused(){super.statusBecomePaused();const e=JSON.stringify([v.PAUSE]);this.sockets.forEach((t=>t.send(e)))}commitStateChange(e,t){if(super.commitStateChange(e),e.rejectId){const s=JSON.stringify([v.IN_GAME,e]);null==t||t.send(s)}else{const t=JSON.stringify([v.IN_GAME,e]);this.sockets.forEach((e=>e.send(t)))}}_terminate(){this.sockets.forEach((e=>{e.removeEventListener("message",pe(this,ue))})),pe(this,le).call(this)}}le=new WeakMap,ue=new WeakMap,_.R.protoNoEnum(Ee,"_greetGameSockets","setCurrentOperator","_terminate"),Object.freeze(Ee),Object.freeze(Ee.prototype);var Oe,ye,be,ve,Ne,we=(e,t,s)=>{if(!t.has(e))throw TypeError("Cannot "+s)},_e=(e,t,s)=>(we(e,t,"read from private field"),s?s.call(e):t.get(e)),Se=(e,t,s,r)=>(we(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s);const Te=class extends O{constructor(e){super(),Oe.set(this,void 0),this.sockets=new Map,ye.set(this,void 0),be.set(this,void 0),ve.set(this,void 0),Ne.set(this,void 0),Object.defineProperty(this,"wssBroadcast",{value:e.wssBroadcast}),this.name=e.name,this.passphrase=e.passphrase,_.R.propNoWrite(this,"name","passphrase"),Se(this,Oe,void 0),Se(this,be,e.deleteExternalRefs),Se(this,ye,setTimeout((()=>{0===this.sockets.size&&this.terminate()}),1e3*Te.DEFAULT_TTL).unref()),Se(this,ve,(e=>{const[t,...s]=JSON.parse(e.data);switch(t){case b.UserInfo.NAME:this._wsOnUserInfoChange(e.target,s[0]);break;case b.CREATE_GAME:e.target===this.groupHostSocket&&this._wsOnHostCreateGame(s[0])}})),Se(this,Ne,(e=>{if(e.target===this.groupHostSocket||1===this.sockets.size)return void this.terminate();this.sockets.delete(e.target);const t=JSON.stringify([b.UserInfo.NAME,{[g(e.target)]:null}]);this.sockets.forEach(((e,s)=>s.send(t)))}))}get isCurrentlyPlayingAGame(){return void 0!==_e(this,Oe)}admitSocket(e,t){if(!this.sockets.has(e)){console.info(`socket connect (group): ${g(e)}`),_e(this,Oe);{const s=b.UserInfo.NAME;{const r=JSON.stringify([s,{[g(e)]:t}]);this.sockets.forEach(((e,t)=>t.send(r)))}const r={};this.sockets.forEach(((e,t)=>{r[g(t)]=e})),e.send(JSON.stringify([s,r]))}0===this.sockets.size&&(clearTimeout(_e(this,ye)),Se(this,ye,void 0),this.groupHostSocket=e,this.wssBroadcast(y.Exist.NAME,{[this.name]:y.Exist.Status.IN_LOBBY})),e.addEventListener("close",_e(this,Ne)),e.addEventListener("message",_e(this,ve)),this.sockets.set(e,t)}}kickSocket(e){return!!this.sockets.delete(e)&&(e.removeEventListener("close",_e(this,Ne)),e.removeEventListener("message",_e(this,ve)),!0)}_wsOnUserInfoChange(e,t){if("string"!=typeof t.username||"number"!=typeof t.teamId||"string"!=typeof t.avatar)return void console.log(`bad format: username: \`${t.username}\`, teamId: \`${t.teamId}\`, avatar: \`${t.avatar}\`.`);this.sockets.set(e,t);const s=JSON.stringify([b.UserInfo.NAME,{[g(e)]:t}]);this.sockets.forEach(((e,t)=>t.send(s)))}_wsOnHostCreateGame(e){const t=this._createGameInstance(e);t.length?console.info(t):(this.wssBroadcast(y.Exist.NAME,{[this.name]:y.Exist.Status.IN_GAME}),console.info(`group ${this.name} new game`))}_createGameInstance(e){const t=[];return this.isCurrentlyPlayingAGame?(t.push("a game is already in session for this group"),t):(t.push(...de.CHECK_VALID_CTOR_ARGS(e)),t.length?t:(e.players=[...e.players,...Array.from(this.sockets.keys(),(e=>{const t=this.sockets.get(e);return Object.freeze({socket:e,familyId:"HUMAN",username:t.username,teamId:t.teamId,avatar:t.avatar,familyArgs:{}})}))].freeze(),Se(this,Oe,new Ee({sockets:this.sockets.keys(),groupHostSocket:this.groupHostSocket,deleteExternalRefs:()=>{Se(this,Oe,void 0)},gameDesc:e})),[]))}terminate(){for(const e of this.sockets.keys())e.removeEventListener("close",_e(this,Ne)),e.removeEventListener("message",_e(this,ve));void 0!==_e(this,Oe)&&Se(this,Oe,void 0),_e(this,be).call(this),this.wssBroadcast(y.Exist.NAME,{[this.name]:y.Exist.Status.DELETE}),console.info(`terminated group: \`${this.name}\``)}};let Ae=Te;Oe=new WeakMap,ye=new WeakMap,be=new WeakMap,ve=new WeakMap,Ne=new WeakMap,_.R.protoNoEnum(Ae,"_wsOnUserInfoChange","_wsOnHostCreateGame"),Object.freeze(Ae),Object.freeze(Ae.prototype);const Ie=new Map;function je(e){Ie.delete(e)}function Me(e,t){const s=JSON.stringify([e,t]);ke.clients.forEach((e=>e.send(s)))}function Ce(e){const[t,...s]=JSON.parse(e.data);switch(t){case y.Create.NAME:{let t=function(t){e.target.send(JSON.stringify([y.Create.NAME,t]))};const r=s[0];if(!function(e){return void 0!==e.groupName&&e.groupName.length<=Ae.Name.MaxLength&&Ae.Name.REGEXP.test(e.groupName)&&e.passphrase.length<=Ae.Passphrase.MaxLength&&Ae.Passphrase.REGEXP.test(e.passphrase)}(r)||Ie.has(r.groupName))return void t(!1);Ie.set(r.groupName,new Ae(Object.freeze({wssBroadcast:Me,name:r.groupName,passphrase:r.passphrase,deleteExternalRefs:je.bind(null,r.groupName)}))),t(!0);break}case y.TryJoin.NAME:{let t=function(t){e.target.send(JSON.stringify([y.TryJoin.NAME,t]))};const r=s[0],o=Ie.get(r.groupName);if(void 0===o||r.passphrase!==o.passphrase)return void t(!1);const i=r.userInfo;if(void 0===i||0!==i.teamId)throw new Error(`a socket attempted to connect to group \`${o.name}\` without providing userInfo.`);for(const t of Ie.values())if(t.kickSocket(e.target))break;o.admitSocket(e.target,i),t(!0);break}}}process.on("uncaughtException",(function(e){const t=n().resolve(__dirname,"../..");console.error("\n\n"),void 0!==e.stack&&(e.stack=e.stack.replace(new RegExp(t.replace(/\\/g,"\\\\"),"g"),":").split("\n").map((e=>{const t=e.indexOf("(");return t<0?e:e.substring(0,t)+" ".repeat(Math.max(0,35-t))+e.substring(t)})).join("\n"),r().writeSync(process.stderr.fd,e.stack)),console.error("\n\n"),process.exit(1)}));const Re=l()(),ze=c().createServer({},Re),ke=new(f().Server)({server:ze}),Pe=n().resolve(__dirname,"../client");Re.disable("x-powered-by").use("/",m()(Pe,{enableBrotli:!0,serveStatic:{setHeaders:(e,t,s)=>{e.setHeader("X-Content-Type-Options","nosniff"),"text/html"===l().static.mime.lookup(t)&&e.setHeader("Cache-Control","public, max-age=0")}}})),ke.on("connection",(function(e){const t=JSON.stringify([y.Exist.NAME,(()=>{const e={};for(const[t,s]of Ie)e[t]=s.isCurrentlyPlayingAGame?y.Exist.Status.IN_GAME:y.Exist.Status.IN_LOBBY;return e})()]);var s,r;s=e,r=`${Date.now().toString()}_${100*Math.random()%100}`,E.set(s,r),console.info(`socket connect (server): ${g(e)}`),e.send(t),e.addEventListener("message",Ce)})),ze.listen({port:443,host:"0.0.0.0"},(function(){const e=ze.address();console.info(`\n\nServer mounted to: \`${e.address}:${e.port}\` using ${e.family}.\nThis host can be reached at any of the following addresses:\n`),Le().sort().forEach((t=>{console.info(`${t}:${e.port}`)})),console.info("")}));const Le=()=>Object.values(t().networkInterfaces()).flat().filter((e=>!e.internal)).map((e=>"IPv6"===e.family?`[${e.address}]`:e.address))})(),capswalk=a})(); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/server/index.js.map b/server/index.js.map index 86e92824..487107d1 100644 --- a/server/index.js.map +++ b/server/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../index.js?"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/runtime/create fake namespace object?","../webpack/runtime/require chunk loading?",".././src/base/defs/JsUtils.ts?",".././src/base/defs/NodePlatformMods.ts?",".././src/base/defs/LangDefs.ts?",".././src/base/defs/TypeDefs.ts?",".././src/base/lang/LangSeqTreeNode.ts?",".././src/base/lang/Lang.ts?",".././src/base/lang/impl|lazy|/^/.*/.ts$/|chunkName: lang/[request]|groupOptions: {}|namespace object?","../webpack/bootstrap?","../webpack/runtime/compat get default export?","../webpack/runtime/define property getters?","../webpack/runtime/ensure chunk?","../webpack/runtime/get javascript chunk filename?","../webpack/runtime/hasOwnProperty shorthand?","../webpack/runtime/make namespace object?","../external \"os\"?","../external \"fs\"?","../external \"path\"?","../external \"http\"?","../external \"express\"?","../external \"express-static-gzip\"?","../external \"ws\"?",".././src/base/defs/OnlineDefs.ts?",".././src/base/game/Game.ts?",".././src/base/game/player/RequestBuffer.ts?",".././src/base/game/player/Team.ts?",".././src/base/game/player/Player.ts?",".././src/base/game/gameparts/HealthInfo.ts?",".././src/base/floor/Grid.ts?",".././src/base/game/gameparts/ScoreInfo.ts?",".././src/base/game/gameparts/GameMirror.ts?",".././src/base/floor/impl/Euclid2/System.ts?",".././src/base/floor/impl/Beehive/System.ts?",".././src/base/game/player/RobotPlayer.ts?",".././src/base/game/player/robots/Chaser.ts?",".././src/base/game/gameparts/GameManager.ts?",".././src/base/game/ctormaps/CmapManager.ts?",".././src/server/ServerGame.ts?",".././src/server/Group.ts?",".././src/server/joinerCb.ts?",".././src/server/index.ts?"],"names":["leafPrototypes","getProto","installedChunks","NO_ENUM","Object","freeze","enumerable","NO_WRITE","writable","JsUtils","obj","key","getOwnPropertyNames","val","_deepFreeze","descriptor","inst","propNames","propName","defineProperty","Web","deepFreeze","hasProp","prototype","hasOwnProperty","call","protoNoEnum","ctor","forEach","instNoEnum","_configProp","bind","propNoWrite","camelCaseTransforms","camelCaseName","spaceyLowercase","replace","letter","toLowerCase","spaceyUppercase","toUpperCase","spaceyCapitalized","split","map","word","charAt","substring","join","prependComment","node","commentStr","parentNode","insertBefore","document","createComment","adoptStyleSheet","root","href","appendChild","html","rel","_makeSmartStorage","localPrefix","storage","example","smart","keys","internalKey","get","getItem","JSON","parse","set","setItem","stringify","tagName","classNames","domProps","el","createElement","seal","e","length","classList","add","type","assign","svg","createElementNS","defineProperties","Array","value","this","globalThis","configurable","REMAP","IDENT","input","LOWER","Descs","module","export","isolatedMinOpts","remapFunc","displayName","blurb","entries","id","desc","behavior","block","inline","Id","Username","Avatar","Family","HUMAN","CHASER","NULL","REGEXP","MAX_LENGTH","_values","values","filter","GET_RANDOM","Math","floor","random","Player","Seq","CharSeqPair","WeightExaggeration","RegExp","char","seq","MAX","CHAR_HIT_COUNT_SEED_CEILING","FrontendDescs","GET_FRONTEND_DESC_BY_ID","langId","Lang","LangSeqTree","parent","characters","carryHits","child","children","reset","incrHits","leafNodes","_rGetLeaves","push","wgtChar","wc","hits","pair","wCharToHit","numTimes","_incrementNumHits","_rIncrHits","weightInv","forwardDict","weightScaling","scaleWeight","GET_SCALE_WEIGHT_FUNC","reverseDict","Map","weight","weightedChar","WeightedLangChar","chars","roots","from","sort","seqA","seqB","startsWith","newNode","ogWgt","averageWeight","reduce","sum","next","originalWeight","pow","LEAF_CMP","a","b","Node","frontendDescId","weightExaggeration","super","frontendDesc","treeRoots","CREATE_TREE_MAP","getPrototypeOf","constructor","BUILD","leaves","getLeaves","flat","l","slice","s","n","avoid","search_branch","leaf","hitNode","superSeq","find","avoidSeq","ownHits","chooseOnePair","Error","BuildUtils","WORD_FOR_WORD","seq2Weight","accumulator","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","code","ids","t","exports","__webpack_module_cache__","moduleId","__webpack_modules__","m","getter","__esModule","d","mode","ns","create","r","def","current","indexOf","definition","f","chunkId","all","promises","u","prop","Symbol","toStringTag","826","require","chunk","moreModules","modules","chunkIds","runtime","i","installChunk","SOCKET_ID","socket","_socketIds","has","WeakMap","JoinerEv","GroupEv","GameEv","Name","Passphrase","MaxLength","GameServerReconnectionAttempts","DEFAULT_TTL","Group","Create","Exist","TryJoin","NAME","Status","UserInfo","CREATE_GAME","Game","K","_HEALTH_UPDATE_CHANCE","averageHealthPerTile","gridGetDiameter","patchDiameter","AVERAGE_HEALTH_TO_SPAWN_ON_TILE","PORTION_OF_MOVES_THAT_ARE_BOOST","_REQUEST_BUFFER_LENGTH","_ROBOT_PRIORITY_MAX_REUSES","RequestBuffer","coord","predictedCoord","moveDest","lastRejectId","rejectId","realCoord","Team","members","elimOrder","ElimOrder","STANDING","game","prevCoord","playerId","familyId","teamId","username","avatar","reqBuffer","teams","health","other","team","includes","grid","write","occId","dest","isFull","processMoveRequest","signRequest","initiator","moveType","newHealth","oldIsDowned","isDowned","every","player","numNonStandingTeams","statusBecomeOver","CtorArgs","MoveType","NORMAL","BOOST","finalize","gameDesc","playerDescs","players","teamIdCleaner","Set","prev","originalId","squashedId","pda","pdb","playerDesc","index","HealthInfo","gridStatic","tiles","baseCostOfBoost","_HEALTH_COST_OF_BOOST","getLatticePatchDiameter","avg","getArea","gridDimensions","avgPerTile","costOfBoost","clear","amount","ScoreInfo","playerIds","Entry","entry","moveCounts","totalHealthPickedUp","static","Grid","dimensions","area","tile","originCoord","tileSourcesTo","flatMap","sourceToTarget","tileDestsFrom","getRandomCoord","teamSizes","avoidSet","numMembers","teamSpawnCoords","_Constructors","getImplementation","coordSys","WrappedEuclid2","Beehive","args","impl","operatorIds","gridClass","gridClassLookup","system","onGameBecomeOver","langFrontend","_createPlayers","operators","teammateArray","onTeamsBootstrapped","setCurrentOperator","PAUSED","implArgs","pDesc","OperatorPlayer","RobotPlayer","ser","csps","playerCoords","nextOperatorIndex","nextOperator","currentOperator","status","PLAYING","onGamePlaying","console","info","OVER","onGamePaused","onGameOver","changes","doCheckOperatorSeqBuffer","tileAt","op","seqBufferAcceptKey","commitTileMods","parseInt","pid","acceptOldest","setCoord","reject","GameMirror","IAC","x","y","width","dim","i1","i2","dist","abs","wrap","height","dX","distX","dY","distY","norm","wrapX","wrapY","max","_i1","_i2","sub","scalar","_grid","iacCache","consumer","indices","intendedDest","sourceCoord","options","tileIac","destIac","iac","infNorm","oneNorm","ta","tb","best","splice","axialAlignment","shift","_avoidCoord","_sourceCoord","iSub","mod","toCoord","_origin","radius","origin","trunc","source","W","H","dests","_t","b1","sliceLength","begin","sqrt","ambiguityThreshold","SIZE_LIMITS","min","sizeLimits","dash","bash","floorDash","floorBash","row","shorterSide","fslash","bslash","longerSide","RangeError","_nextMovementTimerMultiplier","_scheduledMovementCallbackId","_delayedMovementContinue","cancelTimeout","desiredDest","computeDesiredDest","makeMovementRequest","getUntToward","getNextMoveType","setTimeout","_movementContinue","computeNextMovementTimer","of","which","reuses","target","c","_behaviours","Decisive","Chaser","pred","prey","params","Behaviour","DEFAULT","familyArgs","iterator","cachedPred","getUntAwayFrom","pa","pb","fearDistance","cachedPrey","bloodThirstDistance","healthReserve","cachedHealthCoord","size","wanderingAimlessness","getRandomCoordAround","awayFunc","closestFht","closestFhtDistance","Infinity","fht","distance","keyPressesPerSecond","Robot","lang","scoreInfo","langModule","LangConstructor","nsps","langWeightExaggeration","resetSer","forEachShuffled","csp","dryRunShuffleLangCspAt","spawnPoints","getSpawnCoords","teamIndex","member","memberIndex","doCheckEmptyTiles","getAllAltDestsThan","nullSeq","getNonConflictingChar","healthToSpawn","currentAmount","healthToAdd","otherDesc","reqDest","commitStateChange","getNextRejectId","moveIsBoost","newPlayerHealthValue","HEALTH_EFFECT_FOR_DOWNED_PLAYER","dryRunSpawnHealth","delete","GameManager","CHECK_VALID_CTOR_ARGS","bad","requiredFields","missingFields","fieldName","field","langDesc","NaN","parseFloat","gameOnSocketMessage","ev","evName","data","IN_GAME","PAUSE","statusBecomePaused","UNPAUSE","statusBecomePlaying","RETURN_TO_LOBBY","groupHostSocket","sockets","send","_terminate","ServerGame","deleteExternalRefs","addEventListener","once","_greetGameSockets","humans","RESET","callback","millis","unref","handle","clearTimeout","removeEventListener","wssBroadcast","name","passphrase","terminate","_wsOnUserInfoChange","_wsOnHostCreateGame","ws","userInfo","EVENT_NAME","res","IN_LOBBY","log","ctorArgs","failureReasons","_createGameInstance","isCurrentlyPlayingAGame","DELETE","groups","eraseGroup","groupName","_data","wss","wsMessageCb","_res","_isReqValid","group","kickSocket","admitSocket","process","on","err","ROOT","__dirname","error","stack","frame","fn","repeat","stderr","fd","exit","app","server","CLIENT_ROOT","disable","use","enableBrotli","serveStatic","setHeaders","stat","setHeader","build","Date","now","toString","listen","port","host","address","family","chooseIPAddress","internal"],"mappings":"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","file":"index.js","sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(key => def[key] = () => value[key]);\n\t}\n\tdef['default'] = () => value;\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t826: 1\n};\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = function(chunkId, promises) {\n\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","\r\nconst NO_ENUM = Object.freeze({ enumerable: false });\r\nconst NO_WRITE = Object.freeze({ writable: false });\r\n\r\nexport namespace JsUtils {\r\n\r\n\t/** @requires obj must not contain cycles (circular references). */\r\n\texport function deepFreeze(obj: T): TU.DeepRo {\r\n\t\t_deepFreeze(obj);\r\n\t\treturn obj as TU.DeepRo;\r\n\t}\r\n\tfunction _deepFreeze(obj: any): void {\r\n\t\tfor (const key of Object.getOwnPropertyNames(obj)) {\r\n\t\t\tconst val = obj[key];\r\n\t\t\tif (val !== null && typeof val === \"object\") {\r\n\t\t\t\t_deepFreeze(val);\r\n\t\t\t}\r\n\t\t}\r\n\t\tObject.freeze(obj);\r\n\t}\r\n\r\n\t/** */\r\n\texport function hasProp(obj: T, key: K): boolean {\r\n\t\treturn Object.prototype.hasOwnProperty.call(obj, key);\r\n\t}\r\n\r\n\t/** */\r\n\texport function protoNoEnum(\r\n\t\tctor: {new(...args: any[]): T} | Function, // <- allow abstract classes\r\n\t\t...propNames: TU.RoArr | TU.RoArr\r\n\t): void {\r\n\t\tconst hasProps = Object.getOwnPropertyNames(ctor.prototype).freeze();\r\n\t\tpropNames.forEach((propName) => {\r\n\t\t\tif (DEF.DevAssert) {\r\n\t\t\t\tif (!hasProps.includes(propName as string)) {\r\n\t\t\t\t\tconst msg = `\\`${ctor.name}\\` prototype has no property named \\\"${propName}\\\"`;\r\n\t\t\t\t\tthrow new TypeError(msg); // Mismatched property name.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tObject.defineProperty(ctor.prototype, propName, NO_ENUM);\r\n\t\t});\r\n\t}\r\n\r\n\texport const instNoEnum = _configProp.bind(null, NO_ENUM) as _configProp;\r\n\texport const propNoWrite = _configProp.bind(null, NO_WRITE) as _configProp;\r\n\r\n\ttype _configProp = (inst: T, ...propNames: TU.RoArr | TU.RoArr) => void;\r\n\tfunction _configProp(\r\n\t\tdescriptor: PropertyDescriptor,\r\n\t\tinst: T, ...propNames: TU.RoArr\r\n\t): void {\r\n\t\tfor (const propName of propNames) {\r\n\t\t\tif (DEF.DevAssert) {\r\n\t\t\t\tconst hasProps = Object.getOwnPropertyNames(inst).freeze();\r\n\t\t\t\tif (!hasProps.includes(propName as string)) {\r\n\t\t\t\t\tconst msg = `\\`${(inst as any).__proto__.constructor.name}\\``\r\n\t\t\t\t\t+ ` instance has no property named \\\"${propName}\\\"`;\r\n\t\t\t\t\tthrow new TypeError(msg); // Mismatched property name.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tObject.defineProperty(inst, propName, descriptor);\r\n\t\t}\r\n\t}\r\n\r\n\texport type CamelCaseNameTransforms = Readonly<{\r\n\t\tspaceyLowercase: string;\r\n\t\tspaceyUppercase: string;\r\n\t\tspaceyCapitalized: string;\r\n\t}>;\r\n\t/**\r\n\t * Nothing ultra fancy. Does not handle Acronyms.\r\n\t */\r\n\texport function camelCaseTransforms(camelCaseName: string): CamelCaseNameTransforms {\r\n\t\tconst spaceyLowercase = camelCaseName.replace(/[A-Z]/g, (letter) => \" \" + letter.toLowerCase());\r\n\t\treturn Object.freeze({\r\n\t\t\tspaceyLowercase,\r\n\t\t\tspaceyUppercase: spaceyLowercase.toUpperCase(),\r\n\t\t\tspaceyCapitalized: spaceyLowercase.split(' ').map((word) =>\r\n\t\t\t\tword.charAt(0).toUpperCase() + word.substring(1)\r\n\t\t\t).join(' '),\r\n\t\t});\r\n\t}\r\n\r\n\texport namespace Web {\r\n\r\n\t\t/** A non-user-facing markup utility. */\r\n\t\texport function prependComment(node: HTMLElement, commentStr: string): void {\r\n\t\t\tnode.parentNode!.insertBefore(document.createComment(\" \" + commentStr + \" \"), node);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * This is dependant on the HtmlWebpackPlugin config.\r\n\t\t */\r\n\t\texport function adoptStyleSheet(root: Document | ShadowRoot, href: string): void {\r\n\t\t\t// if (\"adoptedStyleSheets\" in root) {\r\n\t\t\t// \tconst sheet = Array.from(document.styleSheets).find((sheet) => sheet.href?.endsWith(href));\r\n\t\t\t// \tif (sheet !== undefined) {\r\n\t\t\t// \t\t// TODO.build remove this any-casting when adoptedStyleSheets\r\n\t\t\t// \t\t// stops being experimental and makes it into the DOM spec.\r\n\t\t\t// \t\t(root as any).adoptedStyleSheets = [sheet];\r\n\t\t\t// \t\treturn;\r\n\t\t\t// \t}\r\n\t\t\t// }\r\n\t\t\t// The client's browser does not support adoptedStyleSheets :(\r\n\t\t\troot.appendChild(JsUtils.html(\"link\", [], {\r\n\t\t\t\trel: \"stylesheet\",\r\n\t\t\t\thref: href,\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @param localPrefix\r\n\t\t * Prefixes the storage keys on non-production builds. This is\r\n\t\t * to prevent key collisions on null origins such as `file://`.\r\n\t\t */\r\n\t\texport function _makeSmartStorage<\r\n\t\t\tT extends {[key : string]: string | number},\r\n\t\t>(\r\n\t\t\tlocalPrefix: string,\r\n\t\t\tstorage: Storage,\r\n\t\t\texample: T,\r\n\t\t): Partial {\r\n\t\t\tconst smart: T = {} as T;\r\n\t\t\t(Object.keys(example)).forEach((key) => {\r\n\t\t\t\tconst internalKey = (DEF.PRODUCTION ? \"\" : localPrefix + \".\") + key;\r\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\r\n\t\t\t\tObject.defineProperty(smart, key, {\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tget: () => {\r\n\t\t\t\t\t\tconst val = storage.getItem(internalKey);\r\n\t\t\t\t\t\treturn (val === null) ? undefined : JSON.parse(val);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tset: (val: boolean): void => {\r\n\t\t\t\t\t\tstorage.setItem(internalKey, JSON.stringify(val));\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\t// Sealing the object causes an error. Not sure why.\r\n\t\t\treturn smart;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A combiner for common operations surrounding `document.createElement`\r\n\t * with some custom HTML attribute defaults.\r\n\t *\r\n\t * - Calls `Object.seal` immediately on the created HTMLElement.\r\n\t * - If making a button, defaults the `type` to `button` instead of `submit`.\r\n\t * - If making an anchor, defaults the rel to `noopener`.\r\n\t */\r\n\texport function html(\r\n\t\ttagName: K,\r\n\t\tclassNames?: string[],\r\n\t\tdomProps?: Readonly>,\r\n\t): HTMLElementTagNameMap[K] {\r\n\t\tconst el = document.createElement(tagName);\r\n\t\ttry { Object.seal(el); } catch (e) {};\r\n\t\tif (classNames?.length) {\r\n\t\t\tel.classList.add(...classNames);\r\n\t\t}\r\n\r\n\t\tif (tagName === \"button\") {\r\n\t\t\t(el as HTMLButtonElement).type = \"button\"; // instead of \"submit\".\r\n\t\t} else if (tagName === \"a\") {\r\n\t\t\t(el as HTMLAnchorElement).rel = \"noopener\";\r\n\t\t\t// ^ Should already be the default on modern browsers when\r\n\t\t\t// `target === \"_blank\"`, but it doesn't hurt to set it\r\n\t\t\t// anyway. We're going stricter too.\r\n\t\t}\r\n\r\n\t\tif (domProps !== undefined) {\r\n\t\t\tObject.assign(el, domProps);\r\n\t\t}\r\n\t\treturn el;\r\n\t}\r\n\r\n\t/** */\r\n\texport function svg(\r\n\t\ttagName: K,\r\n\t\tclassNames?: string[],\r\n\t\tdomProps?: Readonly>,\r\n\t): SVGElementTagNameMap[K] {\r\n\t\tconst el = document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\r\n\t\tObject.seal(el);\r\n\t\tif (classNames?.length) {\r\n\t\t\tel.classList.add(...classNames);\r\n\t\t}\r\n\t\tif (domProps !== undefined) {\r\n\t\t\tObject.assign(el, domProps);\r\n\t\t}\r\n\t\treturn el;\r\n\t}\r\n}\r\nObject.freeze(JsUtils);","Object.defineProperties(Array.prototype, {\r\n\tfreeze: { value: function freeze() { return Object.freeze(this); }, enumerable: true, },\r\n\tseal: { value: function seal() { return Object.seal(this); }, enumerable: true },\r\n});\r\n// In-House `--frozen-intrinsics`:\r\n(<(keyof typeof globalThis)[]>[\r\n\t\"Object\", \"String\", \"Number\", \"RegExp\", \"Date\",\r\n\t\"Array\", \"Map\", \"Set\", \"WeakMap\", \"WeakSet\",\r\n])\r\n.forEach((key) => {\r\n\tObject.defineProperty(globalThis, key, {\r\n\t\tenumerable: true,\r\n\t\twritable: false,\r\n\t\tconfigurable: false,\r\n\t});\r\n\tObject.freeze((globalThis as any)[key]);\r\n\tObject.freeze((globalThis as any)[key].prototype);\r\n});","import { JsUtils } from \"defs/JsUtils\";\r\n\r\n/**\r\n *\r\n * This can be used, for example, for basic practical purposes like\r\n * changing all letters to lowercase for the English language, or for\r\n * more interesting things like mapping halves of the keyboard to a\r\n * binary-like value like the dots and dashes in morse, or zeros and\r\n * ones in binary. It could even be used for some crazy challenges like\r\n * remapping the alphabet by barrel-shifting it so that pressing \"a\"\r\n * produces \"b\", and \"b\" produces \"c\", and so on.\r\n *\r\n * The output should either equal the input (in cases that the input\r\n * is already relevant to the `Lang` at hand and is intended to be\r\n * taken as-is (ex. typing \"a\" produces / corresponds to \"a\" in\r\n * regular English), or in cases where the input is completely\r\n * irrelevant before and after remapping), or be a translation to\r\n * some character that is relevant to the `Lang` and hand, and that\r\n * matches against {@link SEQ_REGEXP}. This behaviour is mandated\r\n * by {@link OperatorPlayer#seqBufferAcceptKey}.\r\n *\r\n * @param input -\r\n * @returns\r\n */\r\nconst REMAP = Object.freeze({\r\n\tIDENT: (input: string): string => input,\r\n\tLOWER: (input: string): string => input.toLowerCase(),\r\n});\r\nREMAP as Readonly>;\r\n\r\nexport type Info = {\r\n\tid?: string;\r\n\t/** Pretty much a file name. */\r\n\tmodule: string;\r\n\t/** A property-access chain. */\r\n\texport: string;\r\n\tremapFunc: {(input: string): string};\r\n\t/** */\r\n\tisolatedMinOpts: number;\r\n\tdisplayName:string;\r\n\tblurb: string;\r\n};\r\n\r\n/**\r\n *\r\n */\r\nconst Descs = {\r\n\t\"engl-low\": {\r\n\t\tmodule: \"English\", export: \"Lowercase\", isolatedMinOpts: 25,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"English Lowercase (qwerty)\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"engl-mix\": {\r\n\t\tmodule: \"English\", export: \"MixedCase\", isolatedMinOpts: 51,\r\n\t\tremapFunc: REMAP.IDENT,\r\n\t\tdisplayName: \"English Mixed-Case (Querty)\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"japn-hir\": {\r\n\t\tmodule: \"Japanese\", export: \"Hiragana\", isolatedMinOpts: 70,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"Japanese Hiragana\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"japn-kat\": {\r\n\t\tmodule: \"Japanese\", export: \"Katakana\", isolatedMinOpts: 68,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"Japanese Katakana\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"kore-dub\": {\r\n\t\tmodule: \"Korean\", export: \"Dubeolsik\", isolatedMinOpts: 8690,\r\n\t\tremapFunc: REMAP.IDENT,\r\n\t\tdisplayName: \"Korean Dubeolsik (두벌식 키보드)\",\r\n\t\tblurb: \"The most common keyboard layout, and South Korea's only Hangul\"\r\n\t\t+ \" standard since 1969. Consonants are on the left, and vowels on\"\r\n\t\t+ \" the right.\",\r\n\t},\r\n\t\"kore-sub\": {\r\n\t\tmodule: \"Korean\", export: \"Sebeolsik\", isolatedMinOpts: 10179,\r\n\t\tremapFunc: REMAP.IDENT,\r\n\t\tdisplayName: \"Korean Sebeolsik (세벌식 최종 키보드)\",\r\n\t\tblurb: \"Another Hangul keyboard layout used in South Korea, and the\"\r\n\t\t+ \" final Sebeolsik layout designed by Dr. Kong Byung Woo, hence\"\r\n\t\t+ \" the name. Syllable-initial consonants are on the right, final\"\r\n\t\t+ \" consonants on the left, and vowels in the middle. It is more\"\r\n\t\t+ \" ergonomic than the dubeolsik, but not widely used.\",\r\n\t},\r\n\t\"kore-rom\": {\r\n\t\tmodule: \"Korean\", export: \"Romanization\", isolatedMinOpts: 3960,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"Korean Revised Romanization\",\r\n\t\tblurb: \"The Revised Romanization of Korean (국어의 로마자 표기법; 國語의 로마字\"\r\n\t\t+ \" 表記法) is the official South Korean language romanization system. It\"\r\n\t\t+ \" was developed by the National Academy of the Korean Language from 1995,\"\r\n\t\t+ \" and was released on 7 July 2000 by South Korea's Ministry of Culture\"\r\n\t\t+ \" and Tourism\",\r\n\t},\r\n\t\"engl-cell-enc\": {\r\n\t\tmodule: \"English\", export: \"OldCellphone.Encode\", isolatedMinOpts: 7,\r\n\t\tremapFunc: REMAP.IDENT,\r\n\t\tdisplayName: \"Old Cellphone Keyboard\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"mors-enc\": {\r\n\t\tmodule: \"English\", export: \"Morse.Encode\", isolatedMinOpts: 10,\r\n\t\tremapFunc: (input) => { return input; }, // TODO.impl\r\n\t\tdisplayName: \"Morse Encoder\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"mors-dec\": {\r\n\t\tmodule: \"English\", export: \"Morse.Decode\", isolatedMinOpts: 40,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"Morse Decoder\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"ngram2\": {\r\n\t\tmodule: \"Ngrams\", export: \"Ngram2\", isolatedMinOpts: 199,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"English Bigrams\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"ngram3\": {\r\n\t\tmodule: \"Ngrams\", export: \"Ngram3\", isolatedMinOpts: 400,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"English Trigrams\",\r\n\t\tblurb: \"\",\r\n\t},\r\n\t\"numpad\": {\r\n\t\tmodule: \"Numpad\", export: \"Numpad\", isolatedMinOpts: 100,\r\n\t\tremapFunc: REMAP.LOWER,\r\n\t\tdisplayName: \"Number Pad\",\r\n\t\tblurb: \"\",\r\n\t},\r\n};\r\nObject.entries(Descs).forEach(([id,desc]) => {\r\n\tdesc.id = id;\r\n});\r\nJsUtils.deepFreeze(Descs);\r\nexport default Descs;","import LangDescs from \"./LangDefs\";\r\nimport type { Info as LangInfo } from \"./LangDefs\";\r\n\r\nexport const SCROLL_INTO_CENTER = Object.freeze({\r\n\tbehavior: \"smooth\",\r\n\tblock: \"center\",\r\n\tinline: \"center\",\r\n});\r\nSCROLL_INTO_CENTER as ScrollIntoViewOptions;\r\n\r\n\r\n/**\r\n */\r\nexport abstract class Player { }\r\nexport namespace Player {\r\n\r\n\t/**\r\n\t * @enum\r\n\t * Each implementation of the {@link RobotPlayer} class must\r\n\t * have an entry here.\r\n\t */\r\n\texport type Family = keyof typeof Family;\r\n\texport const Family = Object.freeze({\r\n\t\tHUMAN: \"HUMAN\",\r\n\t\tCHASER: \"CHASER\",\r\n\t});\r\n\tFamily as {\r\n\t\t[ key in Family ]: key;\r\n\t};\r\n\r\n\t/**\r\n\t * See the main documentation in game/player/Player.\r\n\t */\r\n\texport type Id = number;\r\n\texport namespace Id {\r\n\t\texport const NULL = (-1);\r\n\t}\r\n\r\n\texport type Username = string;\r\n\texport namespace Username {\r\n\t\texport const REGEXP = /[ a-zA-Z0-9:-]+/;\r\n\t\texport const MAX_LENGTH = 15; // rather arbitrary choice.\r\n\t}\r\n\r\n\texport enum Avatar {\r\n\t\tLOREM_IPSUM = \"lorem-ipsum\",\r\n\t}\r\n\texport namespace Avatar {\r\n\t\tconst _values = Object.values(Avatar).filter((e) => typeof e === \"string\") as Avatar[];\r\n\t\t/**\r\n\t\t */\r\n\t\texport function GET_RANDOM(): Avatar {\r\n\t\t\treturn _values[Math.floor(Math.random() * _values.length)]!;\r\n\t\t}\r\n\t}\r\n\r\n\texport interface UserInfo {\r\n\t\treadonly username: Username;\r\n\t\treadonly teamId: number;\r\n\t\treadonly avatar: Avatar;\r\n\t}\r\n\r\n\t/**\r\n\t * See the main documentation in game/player/Player.\r\n\t */\r\n\texport type Health = number;\r\n}\r\nObject.freeze(Player);\r\n\r\n\r\n/**\r\n */\r\nexport abstract class Lang {}\r\nexport namespace Lang {\r\n\t/**\r\n\t * See the main documentation in game/lang/Lang\r\n\t */\r\n\texport type Char = string;\r\n\t/**\r\n\t * See the main documentation in game/lang/Lang\r\n\t */\r\n\texport type Seq = string;\r\n\texport namespace Seq {\r\n\t\t/**\r\n\t\t * The choice of this pattern is not out of necessity, but following\r\n\t\t * the mindset of spec designers when they mark something as reserved:\r\n\t\t * For the language implementations I have in mind, I don't see the\r\n\t\t * need to include characters other than these.\r\n\t\t *\r\n\t\t * Characters that must never be unmarked as reserved (state reason):\r\n\t\t * (currently none. update as needed)\r\n\t\t */\r\n\t\texport const REGEXP = new RegExp(\"^[a-zA-Z0-9!@#$%^&*()\\-_=+;:'\\\"\\\\|,.<>/?]+$\");\r\n\t}\r\n\t/**\r\n\t * See the main documentation in game/lang/Lang\r\n\t */\r\n\texport type CharSeqPair = {\r\n\t\treadonly char: Lang.Char,\r\n\t\treadonly seq: Lang.Seq,\r\n\t};\r\n\texport namespace CharSeqPair {\r\n\t\t/**\r\n\t\t * Used at the beginning of the shuffling operation.\r\n\t\t */\r\n\t\texport const NULL = Object.freeze({\r\n\t\t\tchar: \"\",\r\n\t\t\tseq: \"\",\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * See the main documentation in game/lang/Lang\r\n\t */\r\n\texport type WeightExaggeration = number;\r\n\texport namespace WeightExaggeration {\r\n\t\t/**\r\n\t\t * The choice of this value is somewhat up to taste.\r\n\t\t * It must be greater than one.\r\n\t\t */\r\n\t\texport const MAX = 4;\r\n\t}\r\n\t/**\r\n\t * The choice of the upper bound on the number of times\r\n\t * is rather arbitrary, but it should not be too small.\r\n\t */\r\n\texport const CHAR_HIT_COUNT_SEED_CEILING = 5;\r\n\r\n\t/**\r\n\t */\r\n\texport const FrontendDescs = LangDescs as Record;\r\n\r\n\texport type FrontendDesc = Readonly<{\r\n\t\tid: keyof typeof LangDescs;\r\n\t} & LangInfo>;\r\n\r\n\t/**\r\n\t * @returns `undefined` if no such language descriptor is found.\r\n\t */\r\n\texport function GET_FRONTEND_DESC_BY_ID(langId: FrontendDesc[\"id\"]): FrontendDesc | undefined {\r\n\t\treturn FrontendDescs[langId];\r\n\t}\r\n}\r\nObject.freeze(Lang);\r\nObject.freeze(Lang.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Lang as _Lang } from \"defs/TypeDefs\";\r\nimport type { Lang } from \"./Lang\";\r\ntype LangSorter = (a: T, b: T) => number;\r\n\r\n/** */\r\nexport namespace LangSeqTree {\r\n\r\n\t/** */\r\n\texport class Node {\r\n\r\n\t\tdeclare public readonly parent: Node | undefined;\r\n\t\tdeclare public readonly seq: Lang.Seq;\r\n\t\tdeclare protected readonly children: TU.RoArr;\r\n\t\treadonly #characters: TU.RoArr = [];\r\n\t\t/**\r\n\t\t * Equals this node's own weighted hit count plus all its ancestors'\r\n\t\t * weighted hit counts.\r\n\t\t */\r\n\t\tprotected carryHits: number = 0.0;\r\n\t\tpublic get ownHits(): number {\r\n\t\t\treturn this.carryHits - (this.parent?.carryHits ?? 0);\r\n\t\t}\r\n\r\n\t\t/** */\r\n\t\tprotected constructor(\r\n\t\t\tparent: Node | undefined,\r\n\t\t\tseq: Lang.Seq = \"\",\r\n\t\t\tcharacters: TU.RoArr,\r\n\t\t) {\r\n\t\t\tObject.defineProperty(this, \"parent\", { enumerable: true, value: parent });\r\n\t\t\tObject.defineProperty(this, \"seq\", { enumerable: true, value: seq });\r\n\t\t\tObject.defineProperty(this, \"children\", { enumerable: true, value: [] });\r\n\t\t\tthis.#characters = Object.freeze(characters);\r\n\t\t\tObject.seal(this); //🧊\r\n\t\t}\r\n\r\n\t\tpublic reset(): void {\r\n\t\t\t// Reset hit-counters on the way down.\r\n\t\t\tthis.carryHits = 0.0;\r\n\t\t\tfor (const child of this.children) child.reset();\r\n\r\n\t\t\t// On the way up, seed hit-counters (which get inherited downwards).\r\n\t\t\tfor (const char of this.#characters) {\r\n\t\t\t\tchar.reset();\r\n\t\t\t\tthis.incrHits(char, Math.random() * _Lang.CHAR_HIT_COUNT_SEED_CEILING);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic getLeaves(): TU.RoArr {\r\n\t\t\tconst leafNodes: Array = [];\r\n\t\t\tthis._rGetLeaves(leafNodes);\r\n\t\t\treturn leafNodes.freeze();\r\n\t\t}\r\n\t\tprotected _rGetLeaves(leafNodes: Array): void {\r\n\t\t\tif (this.children.length) {\r\n\t\t\t\tfor (const child of this.children) child._rGetLeaves(leafNodes);\r\n\t\t\t} else {\r\n\t\t\t\tleafNodes.push(this as Node);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @description\r\n\t\t * Incrementing the hit-count makes this node less likely to be\r\n\t\t * used for a shuffle-in. Shuffle-in option searching is easy to\r\n\t\t * taking the viewpoint of leaf-nodes, so this implementation is\r\n\t\t * geared toward indicating hit-count through leaf-nodes, hence\r\n\t\t * the bubble-down of hit-count incrementation.\r\n\t\t *\r\n\t\t * @returns\r\n\t\t * A character / sequence pair from this node that has been\r\n\t\t * selected the least according to the specified scheme.\r\n\t\t */\r\n\t\tpublic chooseOnePair(): Lang.CharSeqPair {\r\n\t\t\tlet wgtChar = this.#characters[0]!;\r\n\t\t\tfor (const wc of this.#characters) {\r\n\t\t\t\tif (wc.hits < wgtChar.hits) {\r\n\t\t\t\t\twgtChar = wc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconst pair: Lang.CharSeqPair = {\r\n\t\t\t\tchar: wgtChar.char,\r\n\t\t\t\tseq: this.seq,\r\n\t\t\t};\r\n\t\t\tthis.incrHits(wgtChar);\r\n\t\t\treturn pair;\r\n\t\t}\r\n\t\tprivate incrHits(wCharToHit: WeightedLangChar, numTimes: number = 1): void {\r\n\t\t\twCharToHit._incrementNumHits();\r\n\t\t\tthis._rIncrHits(wCharToHit.weightInv * numTimes);\r\n\t\t}\r\n\t\tprivate _rIncrHits(weightInv: number): void {\r\n\t\t\tthis.carryHits += weightInv;\r\n\t\t\tfor (const child of this.children) child._rIncrHits(weightInv);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @returns The root node of a new tree map.\r\n\t\t */\r\n\t\tpublic static CREATE_TREE_MAP(\r\n\t\t\tforwardDict: Lang.WeightedForwardMap,\r\n\t\t\tweightScaling: Lang.WeightExaggeration,\r\n\t\t): readonly Node[] {\r\n\t\t\tconst scaleWeight = LangSeqTree.GET_SCALE_WEIGHT_FUNC(weightScaling, forwardDict);\r\n\r\n\t\t\t// Reverse the map:\r\n\t\t\tconst reverseDict = new Map();\r\n\t\t\tObject.entries(forwardDict).freeze().forEach(([char, {seq, weight}]) => {\r\n\t\t\t\tconst weightedChar = new WeightedLangChar(\r\n\t\t\t\t\tchar, scaleWeight(weight),\r\n\t\t\t\t);\r\n\t\t\t\tconst chars = reverseDict.get(seq);\r\n\t\t\t\tif (chars !== undefined) {\r\n\t\t\t\t\t// The entry was already made:\r\n\t\t\t\t\tchars.push(weightedChar);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treverseDict.set(seq, [weightedChar]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst roots: Node[] = [];\r\n\t\t\tlet parent: Node | undefined = undefined; // a DFS cursor.\r\n\t\t\tfor (const [seq, chars] of\r\n\t\t\t\t// Sorting alphabetically enables DFS-ordered tree construction.\r\n\t\t\t\tArray.from(reverseDict).seal().sort(([seqA], [seqB]) => (seqA < seqB) ? -1 : 1).freeze()\r\n\t\t\t) /* no breaks */ {\r\n\t\t\t\twhile (parent !== undefined && !seq.startsWith(parent.seq)) {\r\n\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t}\r\n\t\t\t\tconst newNode: Node = new Node(parent, seq, chars);\r\n\t\t\t\tif (parent !== undefined) {\r\n\t\t\t\t\t(parent.children as Node[]).push(newNode);\r\n\t\t\t\t} else {\r\n\t\t\t\t\troots.push(newNode);\r\n\t\t\t\t}\r\n\t\t\t\tparent = newNode;\r\n\t\t\t}\r\n\t\t\treturn roots.freeze();\r\n\t\t}\r\n\r\n\t\tpublic static readonly LEAF_CMP: LangSorter = (a, b) => {\r\n\t\t\treturn a.carryHits - b.carryHits;\r\n\t\t};\r\n\t}\r\n\tJsUtils.protoNoEnum(Node, \"_rGetLeaves\", \"_rIncrHits\");\r\n\tObject.freeze(Node);\r\n\tObject.freeze(Node.prototype);\r\n\r\n\r\n\t/** */\r\n\texport function GET_SCALE_WEIGHT_FUNC(\r\n\t\tweightScaling: Lang.WeightExaggeration,\r\n\t\tforwardDict: Lang.WeightedForwardMap,\r\n\t): (ogWeight: number) => number {\r\n\t\tif (weightScaling === 0) return () => 1;\r\n\t\tif (weightScaling === 1) return (ogWgt: number) => ogWgt;\r\n\t\tconst values = Object.values(forwardDict);\r\n\t\tconst averageWeight = values.reduce((sum, next) => sum += next.weight, 0) / values.length;\r\n\t\treturn (originalWeight: number) => Math.pow(originalWeight / averageWeight, weightScaling);\r\n\t};\r\n\tObject.freeze(GET_SCALE_WEIGHT_FUNC);\r\n}\r\nObject.freeze(LangSeqTree);\r\n\r\n\r\n/**\r\n * Has no concept of an associated typeable sequence. Used to associate\r\n * a written character to a relative frequency of occurrence in samples\r\n * of writing, and to keep a counter for how many times this character\r\n * has been shuffled-in in the current game session.\r\n *\r\n * Not exported.\r\n */\r\nclass WeightedLangChar {\r\n\r\n\t/**\r\n\t * A weight is relative to weights of other unique characters in\r\n\t * the contextual language. Characters with relatively higher\r\n\t * weights will have relatively higher shuffle-in frequencies.\r\n\t *\r\n\t * Specifically, a character A with a weight N times that of some\r\n\t * other character B will, on average, be returned N times more\r\n\t * often by the `chooseOnePair` method than B.\r\n\t */\r\n\tdeclare public readonly weightInv: number;\r\n\r\n\t/** This value is weighted according to `weightInv`. */\r\n\tpublic hits: number = 0.0;\r\n\r\n\tpublic constructor(\r\n\t\tpublic readonly char: Lang.Char,\r\n\t\tweight: number,\r\n\t) {\r\n\t\tthis.char = char;\r\n\t\tObject.defineProperty(this, \"weightInv\", { enumerable: true, value: 1.0 / weight });\r\n\t\t// The above choice of a numerator is not behaviourally significant.\r\n\t\t// All that is required is that all single-mappings in a `Lang` use\r\n\t\t// a consistent value.\r\n\t\tObject.seal(this); //🧊\r\n\t}\r\n\tpublic reset(): void {\r\n\t\tthis.hits = 0.0;\r\n\t}\r\n\tpublic _incrementNumHits(): void {\r\n\t\tthis.hits += this.weightInv;\r\n\t}\r\n};\r\nObject.freeze(WeightedLangChar);\r\nObject.freeze(WeightedLangChar.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Lang as _Lang } from \"defs/TypeDefs\";\r\n\r\nimport { LangSeqTree } from \"./LangSeqTreeNode\";\r\n\r\n/**\r\n * A language is a map from a collection of unique characters to\r\n * corresponding key-sequences. the key-sequences may be non-unique.\r\n * (try searching up \"Chinese riddle where each syllable is pronounced\r\n * 'shi'\"). A character may have more than one corresponding sequence,\r\n * representing alternate \"spellings\" (ways of typing it).\r\n *\r\n * ### From Typeable Sequences to Written Characters\r\n *\r\n * To the game internals, the reverse thinking is more important: As\r\n * a map from typeable key-sequences to sets of language-unique written\r\n * characters (no character is mapped by multiple key-sequences). We\r\n * do not require support for retrieving the sequence corresponding to\r\n * a written character.\r\n *\r\n * ### Implementation Guide\r\n *\r\n * See the readme in [the implementations folder](./impl/readme.md)\r\n * for a guide on writing implementations of this class.\r\n */\r\nexport abstract class Lang extends _Lang {\r\n\r\n\tpublic readonly frontendDesc: Lang.FrontendDesc;\r\n\r\n\t/** A \"reverse\" map from `LangSeq`s to `LangChar`s. */\r\n\tprivate readonly treeRoots: readonly LangSeqTree.Node[];\r\n\r\n\t/**\r\n\t * A list of leaf nodes in `treeRoots` sorted in ascending order by\r\n\t * hit-count. Entries should never be removed or added. They will\r\n\t * always be sorted in ascending order of `carryHits`.\r\n\t */\r\n\tprivate readonly leafNodes: LangSeqTree.Node[];\r\n\r\n\t/**\r\n\t * The total number of leaf noes of all root nodes except the\r\n\t * root node with the most leaf nodes.\r\n\t */\r\n\tpublic readonly isolatedMinOpts: number;\r\n\r\n\t/** */\r\n\tprotected constructor(\r\n\t\tfrontendDescId: Lang.FrontendDesc[\"id\"],\r\n\t\tweightExaggeration: Lang.WeightExaggeration,\r\n\t) {\r\n\t\tsuper();\r\n\t\tthis.frontendDesc = Lang.GET_FRONTEND_DESC_BY_ID(frontendDescId)!;\r\n\t\tthis.treeRoots = LangSeqTree.Node.CREATE_TREE_MAP(\r\n\t\t\t(Object.getPrototypeOf(this).constructor as Lang.ClassIf).BUILD(),\r\n\t\t\tweightExaggeration,\r\n\t\t);\r\n\t\tconst leaves = this.treeRoots.map((root) => root.getLeaves());\r\n\t\tthis.leafNodes = leaves.flat();\r\n\t\tthis.isolatedMinOpts = leaves.map((l) => l.length).sort().slice(0,-1).reduce((s,n) => s+n, 0);\r\n\t\tJsUtils.propNoWrite(this as Lang, \"frontendDesc\", \"treeRoots\", \"leafNodes\", \"isolatedMinOpts\");\r\n\t\tObject.seal(this); //🧊\r\n\r\n\t\tif (DEF.DevAssert && this.isolatedMinOpts !== this.frontendDesc.isolatedMinOpts) {\r\n\t\t\tthrow new Error(`maintenance required: the frontend constant`\r\n\t\t\t+` for the language \"${this.frontendDesc.id}\" needs to`\r\n\t\t\t+` be updated to the correct, computed value, which is`\r\n\t\t\t+` \\`${this.isolatedMinOpts}\\`.`);\r\n\t\t}\r\n\t}\r\n\r\n\t/** */\r\n\tpublic reset(): void {\r\n\t\tfor (const root of this.treeRoots) {\r\n\t\t\troot.reset();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @returns\r\n\t * A random char in this language whose corresponding sequence is\r\n\t * not a prefix of any `Lang.Seq` in `avoid`, and vice versa. Ie.\r\n\t * They may share a common prefix as long as they are both longer\r\n\t * than the shared prefix.\r\n\t *\r\n\t * @description\r\n\t * This method is called to shuffle the char-seq pair at some tile\r\n\t * A. `avoid` should contain the lang-sequences from all tiles\r\n\t * reachable by a player occupying any tile B from which they can\r\n\t * also reach A (except for A itself).\r\n\t *\r\n\t * @param avoid\r\n\t * A collection of `Lang.Seq`s to avoid conflicts with when choosing\r\n\t * a `Lang.Char` to return. Empty-string entries are ignored. Freezing\r\n\t * may result in better performance.\r\n\t *\r\n\t * @requires\r\n\t * The number of leaves in an implementation's tree-structure must\r\n\t * be greater than the number of non-empty entries in\r\n\t * `avoid` for all expected combinations of internal state and\r\n\t * passed-arguments under which it could be called.\r\n\t */\r\n\tpublic getNonConflictingChar(\r\n\t\tavoid: TU.RoArr,\r\n\t): Lang.CharSeqPair {\r\n\t\t// Internal explainer: We must find characters from nodes that\r\n\t\t// are not descendants or ancestors of nodes in `avoid`. This\r\n\t\t// means that none of the ancestors or descendants of nodes in\r\n\t\t// `avoid` are also in `avoid`.\r\n\r\n\t\t// Start by sorting according to the desired balancing scheme:\r\n\t\tthis.leafNodes.sort(LangSeqTree.Node.LEAF_CMP);\r\n\r\n\t\tsearch_branch:\r\n\t\tfor (const leaf of this.leafNodes) {\r\n\t\t\tlet hitNode = leaf;\r\n\t\t\tfor (\r\n\t\t\t\tlet node: LangSeqTree.Node | undefined = leaf;\r\n\t\t\t\tnode !== undefined;\r\n\t\t\t\tnode = node.parent\r\n\t\t\t) {\r\n\t\t\t\tconst superSeq = avoid.find((avoidSeq) => avoidSeq.startsWith(node!.seq));\r\n\t\t\t\t// ^Using `find` is fine. There can only ever be one or none.\r\n\t\t\t\tif (superSeq) {\r\n\t\t\t\t\tif (superSeq.length > node.seq.length) {\r\n\t\t\t\t\t\t// Nothing shorter/upstream will work.\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Branch contains an avoid node.\r\n\t\t\t\t\t\tcontinue search_branch;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// Find the node with the lowest personal hit-count:\r\n\t\t\t\tif (node.ownHits < hitNode.ownHits) {\r\n\t\t\t\t\thitNode = node;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn hitNode.chooseOnePair();\r\n\t\t}\r\n\t\t// Enforced by UI and server:\r\n\t\tthrow new Error(\"never\");\r\n\t}\r\n}\r\nexport namespace Lang {\r\n\t/**\r\n\t * Every constructor function (class literal) implementing the\r\n\t * `Lang` class must implement this interface.\r\n\t */\r\n\texport interface ClassIf {\r\n\t\tnew (weightScaling: Lang.WeightExaggeration): Lang;\r\n\t\tBUILD(): WeightedForwardMap;\r\n\t};\r\n\t/**\r\n\t * Utility functions for implementations to use in their static\r\n\t * `.BUILD` function.\r\n\t */\r\n\texport namespace BuildUtils {\r\n\t\texport function WORD_FOR_WORD(seq2Weight: Record): Lang.WeightedForwardMap {\r\n\t\t\treturn Object.entries(seq2Weight).freeze().reduce(\r\n\t\t\t\t(accumulator, [char,weight]) => {\r\n\t\t\t\t\taccumulator[char] = { seq: char, weight };\r\n\t\t\t\t\treturn accumulator;\r\n\t\t\t\t}, {},\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An atomic unit in a written language that constitutes a single\r\n\t * character. It is completely unique in its language, and has a\r\n\t * single corresponding sequence (string) typeable on a keyboard.\r\n\t */\r\n\texport type Char = _Lang.Char;\r\n\r\n\t/**\r\n\t * A sequence of characters each matching {@link SEQ_REGEXP}\r\n\t * that represent the intermediate interface between an Operator\r\n\t * and a `LangChar`. The immediate interface is through the `Lang`\r\n\t * implementation's {@link Lang#remapKey} method.\r\n\t */\r\n\texport type Seq = _Lang.Seq;\r\n\r\n\t/**\r\n\t * A key-value pair containing a `LangChar` and its corresponding\r\n\t * `LangSeq`.\r\n\t */\r\n\texport type CharSeqPair = _Lang.CharSeqPair;\r\n\r\n\t/**\r\n\t * A map from written characters to their corresponding typeable\r\n\t * keyboard sequence and relative spawn weight.\r\n\t *\r\n\t * Shape that must be passed in to the static tree producer. The\r\n\t * `Record` type enforces the invariant that {@link Lang.Char}s are\r\n\t * unique in a {@link Lang}. \"CSP\" is short for {@link Lang.CharSeqPair}.\r\n\t */\r\n\texport type WeightedForwardMap = Record<\r\n\t\tLang.Char,\r\n\t\tReadonly<{seq: Lang.Seq, weight: number,}>\r\n\t>/* | Readonly> */;\r\n\r\n\t/**\r\n\t * A value used to scale the variance in weights. Passing zero will\r\n\t * cause all weights to be adjusted to equal the average weight.\r\n\t * Passing `1` will cause no adjustment to be made to the weights.\r\n\t * Passing a value greater than one will cause an exaggeration of\r\n\t * the weight distribution.\r\n\t */\r\n\texport type WeightExaggeration = _Lang.WeightExaggeration;\r\n\r\n\texport type FrontendDesc = _Lang.FrontendDesc;\r\n}\r\nObject.freeze(Lang);\r\nObject.freeze(Lang.prototype);","var map = {\n\t\"./Chinese.ts\": [\n\t\t83,\n\t\t7,\n\t\t330\n\t],\n\t\"./Emote.ts\": [\n\t\t985,\n\t\t9,\n\t\t858\n\t],\n\t\"./English.ts\": [\n\t\t825,\n\t\t9,\n\t\t184\n\t],\n\t\"./Japanese.ts\": [\n\t\t885,\n\t\t9,\n\t\t410\n\t],\n\t\"./Korean.ts\": [\n\t\t969,\n\t\t9,\n\t\t227\n\t],\n\t\"./Ngrams.ts\": [\n\t\t755,\n\t\t9,\n\t\t273\n\t],\n\t\"./Numpad.ts\": [\n\t\t444,\n\t\t9,\n\t\t683\n\t],\n\t\"./Shell.ts\": [\n\t\t25,\n\t\t9,\n\t\t159\n\t],\n\t\"./defs/Chinese.ts\": [\n\t\t711,\n\t\t7,\n\t\t704\n\t],\n\t\"./defs/English100.ts\": [\n\t\t589,\n\t\t9,\n\t\t885\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[2]).then(() => {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 59;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"chunk/\" + {\"159\":\"lang/Shell-ts\",\"184\":\"lang/English-ts\",\"227\":\"lang/Korean-ts\",\"273\":\"lang/Ngrams-ts\",\"330\":\"lang/Chinese-ts\",\"410\":\"lang/Japanese-ts\",\"683\":\"lang/Numpad-ts\",\"704\":\"lang/defs-Chinese-ts\",\"858\":\"lang/Emote-ts\",\"885\":\"lang/defs-English100-ts\"}[chunkId] + \".js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"os\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fs\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"path\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"http\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"express\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"express-static-gzip\");;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"ws\");;","import type { Player } from \"defs/TypeDefs\";\r\nimport type NodeWebSocket from \"ws\";\r\n\r\n/** Serverside-only. */\r\nexport function SOCKET_ID(socket: NodeWebSocket): string | never {\r\n\t// What has it got it its socketses?\r\n\t// STRING!? or NOTHING!\r\n\tif (_socketIds.has(socket)) {\r\n\t\treturn _socketIds.get(socket)!;\r\n\t} else {\r\n\t\tthrow new Error(\"never\");\r\n\t}\r\n}\r\nexport function SET_SOCKET_ID(socket: NodeWebSocket, id: string): void {\r\n\t_socketIds.set(socket, id);\r\n}\r\nconst _socketIds = new WeakMap();\r\n\r\n\r\n/** */\r\nexport abstract class Group { }\r\nexport namespace Group {\r\n\texport type Name = string;\r\n\texport namespace Name {\r\n\t\texport const REGEXP = /^(?:[a-zA-Z0-9:-]+)$/;\r\n\t\texport const MaxLength = 30;\r\n\t}\r\n\texport type Passphrase = string;\r\n\texport namespace Passphrase {\r\n\t\texport const REGEXP = /^(?:[a-zA-Z0-9:-]*)$/;\r\n\t\texport const MaxLength = 30;\r\n\t}\r\n\texport const GameServerReconnectionAttempts = 2;\r\n\texport const DEFAULT_TTL = 20; // seconds\r\n}\r\nObject.freeze(Group);\r\nObject.freeze(Group.prototype);\r\n\r\n\r\n/** */\r\nexport namespace JoinerEv {\r\n\t/** */\r\n\texport namespace Create {\r\n\t\texport const NAME = \"joiner/create\";\r\n\t\texport interface Req {\r\n\t\t\treadonly groupName: Group.Name,\r\n\t\t\treadonly passphrase: Group.Passphrase,\r\n\t\t}\r\n\t\texport type Res = boolean;\r\n\t}\r\n\t/** */\r\n\texport namespace Exist {\r\n\t\texport const NAME = \"joiner/exist\";\r\n\t\t/** Downstream only. */\r\n\t\texport type Sse = {\r\n\t\t\treadonly [groupName : string]: Status;\r\n\t\t};\r\n\t\texport const enum Status {\r\n\t\t\tIN_LOBBY = \"in-lobby\",\r\n\t\t\tIN_GAME = \"in-game\",\r\n\t\t\tDELETE = \"delete\",\r\n\t\t};\r\n\t}\r\n\t/** */\r\n\texport namespace TryJoin {\r\n\t\texport const NAME = \"joiner/try-join\";\r\n\t\texport interface Req {\r\n\t\t\treadonly groupName: Group.Name;\r\n\t\t\treadonly passphrase: Group.Passphrase;\r\n\t\t\treadonly userInfo: Player.UserInfo;\r\n\t\t}\r\n\t\texport type Res = boolean;\r\n\t}\r\n}\r\nObject.freeze(JoinerEv);\r\n\r\n\r\n/** */\r\nexport namespace GroupEv {\r\n\t/** */\r\n\texport namespace UserInfo {\r\n\t\texport const NAME = \"group/user-info-change\";\r\n\t\texport type Req = Player.UserInfo;\r\n\t\texport type Res = Record;\r\n\t}\r\n\r\n\t/** A broadcast originating from the group host. */\r\n\texport const CREATE_GAME = \"group/create-game\";\r\n}\r\nObject.freeze(GroupEv);\r\n\r\n\r\n/** */\r\nexport const enum GameEv {\r\n\t/**\r\n\t * Upon constructing a _new_ game, the server waits for all clients\r\n\t * to send this event to indicate that they have finished building\r\n\t * any necessary HTML, and are now ready to receive the serialized\r\n\t * reset-state.\r\n\t */\r\n\tRESET = \"game/reset\",\r\n\r\n\t/**\r\n\t * Client uses this event during reset procedure after receiving\r\n\t * the serialized reset-state to indicate that it is ready for\r\n\t * the game to be un-paused.\r\n\t */\r\n\tUNPAUSE = \"game/unpause\",\r\n\r\n\t/** */\r\n\tPAUSE = \"game/pause\",\r\n\r\n\t/** */\r\n\tIN_GAME = \"game/ingame\",\r\n\r\n\t/**\r\n\t * The server will send this event with no arguments to indicate\r\n\t * that everyone must now return to the lobby, or with a socket\r\n\t * ID as an argument to indicate that all players operated by\r\n\t * a client with that socket ID are out of the game.\r\n\t */\r\n\tRETURN_TO_LOBBY = \"game/return-to-lobby\",\r\n};","import type { Lang } from \"defs/TypeDefs\";\r\nimport type { Coord } from \"floor/Tile\";\r\nimport type { Grid } from \"floor/Grid\";\r\nimport type { Player } from \"./player/Player\";\r\nimport type { OperatorPlayer } from \"./player/OperatorPlayer\";\r\nimport type { GameMirror } from \"./gameparts/GameMirror\";\r\n\r\n/**\r\n * **Important** To be properly disposed of, a game must first have\r\n * either naturally ended, or be paused- both operations of which will\r\n * properly cancel all internal scheduled callbacks (the callbacks\r\n * refer to players, which refer to their game, which refers to a\r\n * whole lot of other things such as the language dictionary, which\r\n * in some cases may be quite large.)\r\n *\r\n * These classes perform the majority of management over {@link Tile}\r\n * and {@link Player} objects. As a design choice, players can only join\r\n * a game before it starts, and actions such as changing the language or\r\n * difficulty require a restart. These actions that require a restart will\r\n * all be exposed through a pre-game page.\r\n *\r\n * There are overlaps between what each implementation needs to do:\r\n * - Offline and Server games maintain and control the master-game-state.\r\n * - Offline and Client games display the game-state to an operator via browser and HTML.\r\n * - Client and Server games use network operations to communicate.\r\n */\r\nexport namespace Game {\r\n\r\n\t/**\r\n\t * Unlike CtorArgs, these are not passed as no-prototype objects\r\n\t * (possibly over the network) from the game manager to clients.\r\n\t * These are abstract handles to game-implementation-dependant\r\n\t * components.\r\n\t */\r\n\texport type ImplArgs = {\r\n\t\tgridClassLookup(coordSys: S): Grid.ClassIf;\r\n\t\tOperatorPlayer: typeof OperatorPlayer | undefined;\r\n\t\tRobotPlayer: (_this: GameMirror, desc: Player._CtorArgs[Player.RobotFamily]) => Player;\r\n\t\tonGameBecomeOver: () => void;\r\n\t};\r\n\r\n\tinterface _CtorArgsBase {\r\n\t\treadonly coordSys: S;\r\n\t\treadonly gridDimensions: Grid.Dimensions[S];\r\n\t\treadonly averageHealthPerTile: Player.Health;\r\n\t\treadonly langId: Lang.FrontendDesc[\"id\"];\r\n\t\treadonly langWeightExaggeration: Lang.WeightExaggeration;\r\n\t}\r\n\r\n\t/**\r\n\t * Game Constructor Arguments\r\n\t *\r\n\t * Important internal note: Upon modification, make appropriate\r\n\t * changes to GameManager's function for verifying validity of\r\n\t * client input on the server side.\r\n\t *\r\n\t * @template S\r\n\t * The coordinate system to use. The literal value must also be\r\n\t * passed as the field `coordSys`.\r\n\t */\r\n\texport interface CtorArgs extends _CtorArgsBase {\r\n\t\treadonly players: readonly Player.CtorArgs[];\r\n\t};\r\n\texport namespace CtorArgs {\r\n\t\texport interface UnFin extends _CtorArgsBase {\r\n\t\t\treadonly players: readonly Player.CtorArgs.UnFin[];\r\n\t\t}\r\n\t\t/** */\r\n\t\texport type FailureReasons = {\r\n\t\t\tmissingFields: Array>;\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Serialization of the Game State after a reset.\r\n\t *\r\n\t * Only contains state information that would not be known by a\r\n\t * non-Game Manager.\r\n\t */\r\n\texport interface ResetSer {\r\n\t\t/**\r\n\t\t * Indexed by index according to `Grid.forEach` - not by the\r\n\t\t * `Tile.coord`s of `Grid.forEach` (they may differ).\r\n\t\t */\r\n\t\treadonly csps: readonly Lang.CharSeqPair[];\r\n\t\t/**\r\n\t\t * A map from player ID's to their starting coordinates.\r\n\t\t */\r\n\t\treadonly playerCoords: readonly Coord[];\r\n\t};\r\n\r\n\t/**\r\n\t * - **`PLAYING`** can go to:\r\n\t * - `PAUSED`: when a pause request initiated by a player is accepted.\r\n\t * - `OVER`: when certain conditions of players being downed are met.\r\n\t * - **`PAUSED`** can go to:\r\n\t * - `PLAYING`: similar to PLAYING->PAUSED.\r\n\t * - **`OVER`** can go to:\r\n\t * - `PLAYING`: via resetting the game.\r\n\t */\r\n\texport enum Status {\r\n\t\tPLAYING = \"PLAYING\",\r\n\t\tPAUSED = \"PAUSED\",\r\n\t\tOVER = \"OVER\",\r\n\t}\r\n\tObject.freeze(Status);\r\n\r\n\t/**\r\n\t * Global, Game-Setup-Agnostic constants for tuning game behaviour.\r\n\t *\r\n\t * Keys beginning with an underscore are probably of no interest to\r\n\t * people playing the game.\r\n\t */\r\n\texport const K = Object.freeze({\r\n\t\t/**\r\n\t\t * A value in `(0,1]`. If `1`, then new health will be spawned\r\n\t\t * the next time `dryRunSpawnFreeHealth` is called. This is the\r\n\t\t * reciprocal of the average number of calls that must be to\r\n\t\t * `dryRunSpawnFreeHealth` before a unit of health will be\r\n\t\t * re-spawned after being consumed.\r\n\t\t */\r\n\t\t_HEALTH_UPDATE_CHANCE: 0.1,\r\n\r\n\t\t/**\r\n\t\t * Affects the distribution of health across the grid: \"How\r\n\t\t * concentrated or how diluted the average amount of health on\r\n\t\t * the grid will be\". Higher values cause concentration; lower\r\n\t\t * values result in dilution.\r\n\t\t */\r\n\t\t\"AVERAGE_HEALTH_TO_SPAWN_ON_TILE\": 1.0,\r\n\r\n\t\t/**\r\n\t\t * A value in `(0,1]`. If `1`, then players can (on average),\r\n\t\t * boost indefinitely. If close to zero, then players virtually\r\n\t\t * cannot boost, no matter how much health they have. If `0.3`,\r\n\t\t * players can boost for roughly 30% of the movements they make.\r\n\t\t *\r\n\t\t * This value assumes that the player moves around aimlessly\r\n\t\t * and randomly. Adjustments for more rational assumptions are\r\n\t\t * not to be made _here_.\r\n\t\t */\r\n\t\t\"PORTION_OF_MOVES_THAT_ARE_BOOST\": 0.4,\r\n\r\n\t\t/**\r\n\t\t * Takes into consideration all contributing factors to determine\r\n\t\t * how much health it should cost to perform a single boost.\r\n\t\t *\r\n\t\t * It calculates for the following behaviour: Assuming that a\r\n\t\t * player is only trying to collect health and always takes the\r\n\t\t * optimal route, how much health should it cost them to boost\r\n\t\t * such that they can only only boost for a determined percentage\r\n\t\t * of all their movement actions?\r\n\t\t */\r\n\t\t_HEALTH_COST_OF_BOOST(\r\n\t\t\taverageHealthPerTile: Player.Health,\r\n\t\t\tgridGetDiameter: (area: number) => number,\r\n\t\t): Player.Health {\r\n\t\t\t// First, assume that a player has just landed on a tile\r\n\t\t\t// with free health, and now plans to take the optimal\r\n\t\t\t// route to the nearest tile with free health. Assume that\r\n\t\t\t// Health is distributed uniformly, and spaced evenly apart.\r\n\t\t\t// Then the grid/floor can be nicely divided into similar\r\n\t\t\t// patches each with one tile with free health in the center.\r\n\t\t\t// Find the diameter of a patch:\r\n\t\t\tconst patchArea = this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE / averageHealthPerTile;\r\n\t\t\tconst patchDiameter = gridGetDiameter(patchArea);\r\n\r\n\t\t\t// The patch diameter is the average optimal distance to\r\n\t\t\t// the nearest tile with health (the center of the nearest\r\n\t\t\t// patch). We know how much health awaits there, so we can\r\n\t\t\t// find the average rate of health gain per movement on an\r\n\t\t\t// optimal health-seeking path.\r\n\t\t\tconst healthGainedPerOptimalMove\r\n\t\t\t\t= this.AVERAGE_HEALTH_TO_SPAWN_ON_TILE / patchDiameter;\r\n\r\n\t\t\t// Since the portion of moves that can be boosts equals\r\n\t\t\t// the rate of health gain divided by the health cost of\r\n\t\t\t// boosting, (rearrange terms to solve):\r\n\t\t\treturn healthGainedPerOptimalMove / this.PORTION_OF_MOVES_THAT_ARE_BOOST;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * A value in `(0,1]` (values greater than one are legal from\r\n\t\t * a mathematical standpoint, but not from one of game-design).\r\n\t\t * Scales the health received from picking up free health for\r\n\t\t * a player who is downed.\r\n\t\t *\r\n\t\t * This value exists to dampen the ability for team members to\r\n\t\t * regenerate health when downed so that it takes a (subjectively)\r\n\t\t * \"reasonable\" amount of effort to eliminate an entire team-\r\n\t\t * not too much, not too little.\r\n\t\t */\r\n\t\t\"HEALTH_EFFECT_FOR_DOWNED_PLAYER\": 0.6,\r\n\r\n\t\t/**\r\n\t\t * A strictly-positive integer. Indicates the maximum number\r\n\t\t * of requests which a clientside player can buffer.\r\n\t\t */\r\n\t\t_REQUEST_BUFFER_LENGTH: 5,\r\n\r\n\t\t/**\r\n\t\t * How many times a Decisive RobotPlayer can reuse its cached\r\n\t\t * target before it will do another cold analysis of its\r\n\t\t * surroundings.\r\n\t\t */\r\n\t\t_ROBOT_PRIORITY_MAX_REUSES: 4,\r\n\t});\r\n}\r\nObject.freeze(Game);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Game } from \"game/Game\";\r\n\r\nimport type { Coord } from \"floor/Tile\";\r\nimport type { StateChange } from \"game/StateChange\";\r\nimport { Player as _Player } from \"defs/TypeDefs\";\r\n\r\n/**\r\n * Used to buffer requests when there is network delay.\r\n *\r\n * This allows for the client to pipeline a certain number of\r\n * requests. If a request is rejected, all following requests are\r\n * invalid, and the server can\r\n */\r\nexport class RequestBuffer {\r\n\r\n\t#lastRejectId = 0; public get lastRejectId(): number { return this.#lastRejectId; };\r\n\tprivate length = 0;\r\n\tpublic predictedCoord: Coord;\r\n\r\n\tpublic reset(coord: Coord): void {\r\n\t\tthis.#lastRejectId = 0;\r\n\t\tthis.length = 0;\r\n\t\tthis.predictedCoord = coord;\r\n\t}\r\n\r\n\tpublic get isFull(): boolean {\r\n\t\treturn this.length === Game.K._REQUEST_BUFFER_LENGTH;\r\n\t}\r\n\r\n\t/** @requires `!this.isFull` */\r\n\tpublic signRequest(req: StateChange.Req): StateChange.Req {\r\n\t\tif (DEF.DevAssert && this.isFull) {\r\n\t\t\tthrow new Error(\"never\");\r\n\t\t}\r\n\t\tthis.length++;\r\n\t\tthis.predictedCoord = req.moveDest;\r\n\t\treturn req;\r\n\t}\r\n\r\n\tpublic getNextRejectId(): number {\r\n\t\t// return (this.lastRejectId === 0) ? 1 : 0;\r\n\t\t// Above option returns an \"elegant\" value.\r\n\t\t// Below returns a hard-to-guess value.\r\n\t\treturn (this.lastRejectId + Math.floor(99 * Math.random())) % 100;\r\n\t}\r\n\t/**\r\n\t * Every request signed with the previous rejectId will be\r\n\t * silently dropped by the game manager.\r\n\t */\r\n\tpublic reject(rejectId: number, realCoord: number): void {\r\n\t\tthis.#lastRejectId = rejectId;\r\n\t\tthis.length = 0;\r\n\t\tthis.predictedCoord = realCoord;\r\n\t}\r\n\tpublic acceptOldest(): void {\r\n\t\t// TODO.design this is technically invalid for artificial players\r\n\t\t// on the client side of an online game... Can we move reqBuffer\r\n\t\t// to be just for OperatorPlayers?\r\n\r\n\t\t// if (DEF.DevAssert && this.length === 0) {\r\n\t\t// \tthrow new Error(\"never\");\r\n\t\t// }\r\n\t\tthis.length--;\r\n\t}\r\n}\r\nObject.freeze(RequestBuffer);\r\nObject.freeze(RequestBuffer.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport type { Player } from \"./Player\";\r\n\r\n/**\r\n * @final\r\n */\r\nexport class Team {\r\n\r\n\t/**\r\n\t * @returns\r\n\t * Indicates the order (relative to other teams) in which this\r\n\t * team was to have all its members downed at the same time at\r\n\t * least once. Once a team is soft-eliminated, they can continue\r\n\t * playing as normal, but there is no going back. The game ends\r\n\t * when all teams but one have been eliminated.\r\n\t *\r\n\t * ### Semantics\r\n\t *\r\n\t * A comparatively smaller value denotes having been\r\n\t * eliminated at an earlier point in the game. **The value zero\r\n\t * denotes _not-having-been-eliminated-yet_**.\r\n\t */\r\n\tpublic elimOrder: number = Team.ElimOrder.STANDING;\r\n\r\n\tpublic constructor(\r\n\t\tpublic readonly id: Team.Id,\r\n\t\tpublic readonly members: TU.RoArr,\r\n\t) {\r\n\t\tJsUtils.propNoWrite(this as Team, \"id\", \"members\");\r\n\t\tObject.seal(this); //🧊\r\n\t\tif (members.length === 0) {\r\n\t\t\tthrow new Error(\"Teams must have at least one member.\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic reset(): void {\r\n\t\tthis.elimOrder = Team.ElimOrder.STANDING;\r\n\t}\r\n}\r\nexport namespace Team {\r\n\r\n\texport type Id = number;\r\n\r\n\texport type ElimOrder = number;\r\n\r\n\t// Special values:\r\n\texport namespace ElimOrder {\r\n\t\t/**\r\n\t\t * A team that is not invincible starts off with such a value.\r\n\t\t */\r\n\t\texport const STANDING = 0;\r\n\t}\r\n}\r\nObject.freeze(Team);\r\nObject.freeze(Team.prototype);","import type * as WebSocket from \"ws\";\r\nimport { JsUtils } from \"defs/JsUtils\";\r\nimport { Game } from \"game/Game\";\r\n\r\nimport type { Coord } from \"floor/Tile\";\r\nimport type { RobotPlayer } from \"./RobotPlayer\";\r\nimport type { GameMirror } from \"game/gameparts/GameMirror\";\r\n\r\nimport { RequestBuffer } from \"./RequestBuffer\";\r\nimport { Player as _Player } from \"defs/TypeDefs\";\r\nimport { Team } from \"./Team\";\r\n\r\n/** */\r\nexport class Player extends _Player implements _Player.UserInfo {\r\n\r\n\tpublic readonly playerId: Player.Id;\r\n\tpublic readonly familyId: Player.Family;\r\n\tpublic readonly teamId: Team.Id;\r\n\tpublic readonly username: Player.Username;\r\n\tpublic readonly avatar: Player.Avatar;\r\n\r\n\tprotected readonly game: GameMirror;\r\n\tpublic readonly reqBuffer: RequestBuffer;\r\n\t#coord: Coord;\r\n\t#health: Player.Health = 0.0;\r\n\r\n\tpublic prevCoord: Coord = undefined!;\r\n\r\n\tpublic get team(): Team { return this.game.teams[this.teamId]!; }\r\n\tpublic get coord(): Coord { return this.#coord; }\r\n\tpublic get health(): number { return this.#health; }\r\n\tpublic get isDowned(): boolean { return this.health < 0.0; }\r\n\r\n\tpublic isTeamedWith(other: Player): boolean {\r\n\t\treturn this.team.members.includes(other);\r\n\t}\r\n\r\n\t/** */\r\n\tpublic constructor(game: GameMirror, desc: Player.CtorArgs) {\r\n\t\tsuper();\r\n\r\n\t\tthis.playerId = desc.playerId;\r\n\t\tthis.familyId = desc.familyId;\r\n\t\tthis.teamId = desc.teamId;\r\n\t\tthis.username = desc.username;\r\n\t\tthis.avatar = desc.avatar;\r\n\r\n\t\tthis.game = game;\r\n\t\tthis.reqBuffer = new RequestBuffer();\r\n\r\n\t\tJsUtils.instNoEnum (this as Player, \"game\");\r\n\t\tJsUtils.propNoWrite(this as Player, \"game\",\r\n\t\t\t\"playerId\", \"familyId\", \"teamId\",\r\n\t\t\t\"username\", \"avatar\", \"reqBuffer\",\r\n\t\t);\r\n\t\tif (new.target === Player) {\r\n\t\t\tObject.seal(this); //🧊\r\n\t\t}\r\n\t}\r\n\r\n\t/** @virtual */\r\n\tpublic onTeamsBootstrapped(): void { }\r\n\r\n\t/** Must be called _after_ the grid has been reset. */\r\n\tpublic reset(coord: Coord): void {\r\n\t\tthis.#coord = coord;\r\n\t\tthis.prevCoord = coord;\r\n\t\tthis.game.grid.write(coord, {\r\n\t\t\toccId: this.playerId,\r\n\t\t});\r\n\t\tthis.#health = 0.0;\r\n\t\tthis.reqBuffer.reset(coord);\r\n\t}\r\n\r\n\t/** @virtual Overrides must call super. */\r\n\tpublic onGamePlaying(): void { }\r\n\r\n\t/** @virtual The default implementation does nothing. */\r\n\tpublic onGamePaused(): void { }\r\n\r\n\t/** @virtual The default implementation does nothing. */\r\n\tpublic onGameOver(): void { }\r\n\r\n\t/** @final */\r\n\tprotected makeMovementRequest(dest: Coord, type: Player.MoveType): void {\r\n\t\tif (DEF.DevAssert) {\r\n\t\t\tif (this.game.status !== Game.Status.PLAYING) {\r\n\t\t\t\t// This is not a necessary precondition, but we're doing it anyway.\r\n\t\t\t\tthrow new Error(\"never\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.reqBuffer.isFull) return; //⚡\r\n\r\n\t\tthis.game.processMoveRequest(this.reqBuffer.signRequest({\r\n\t\t\tinitiator: this.playerId,\r\n\t\t\tlastRejectId: this.reqBuffer.lastRejectId,\r\n\t\t\tmoveType: type,\r\n\t\t\tmoveDest: dest,\r\n\t\t}));\r\n\t}\r\n\r\n\t/**\r\n\t * Notify this Player.\r\n\t *\r\n\t * Causes this Player to update its internal state.\r\n\t * @virtual\r\n\t */\r\n\tpublic setCoord(dest: Coord): void {\r\n\t\tthis.prevCoord = this.coord;\r\n\t\tthis.#coord = dest;\r\n\t}\r\n\r\n\tpublic set health(newHealth: Player.Health) {\r\n\t\tconst oldIsDowned = this.isDowned;\r\n\t\tthis.#health = newHealth;\r\n\r\n\t\tif (oldIsDowned || !this.isDowned) return;\r\n\t\tconst team = this.team;\r\n\t\tconst teams = this.game.teams;\r\n\t\tif (team.elimOrder !== Team.ElimOrder.STANDING) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Right before this downing event, the team has not been\r\n\t\t// soft-eliminated yet, but it might be now. Check it:\r\n\t\tif (team.members.every((player) => player.isDowned)) {\r\n\t\t\t// All players are downed! The team is now eliminated:\r\n\t\t\tconst numNonStandingTeams\r\n\t\t\t\t= 1 + teams.filter((team) => {\r\n\t\t\t\treturn team.elimOrder !== Team.ElimOrder.STANDING;\r\n\t\t\t}).length;\r\n\r\n\t\t\tteam.elimOrder = 1 + teams.filter((team) => {\r\n\t\t\t\treturn team.elimOrder !== Team.ElimOrder.STANDING;\r\n\t\t\t}).length;\r\n\t\t\t// Now that a team is newly-eliminated, check if the\r\n\t\t\t// game should end:\r\n\t\t\tif (numNonStandingTeams === teams.length) {\r\n\t\t\t\tthis.game.statusBecomeOver();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\nexport namespace Player {\r\n\r\n\texport type Family = _Player.Family;\r\n\texport type RobotFamily = TU.Xcld;\r\n\r\n\texport type Id = _Player.Id;\r\n\r\n\t/**\r\n\t * Health be picked up from the floor where it is randomly spawned\r\n\t * by the game manager. It can be used to attack enemy players, or\r\n\t * to heal teammates.\r\n\t */\r\n\texport type Health = _Player.Health;\r\n\texport type Username = _Player.Username;\r\n\texport type Avatar = _Player.Avatar;\r\n\texport type UserInfo = _Player.UserInfo;\r\n\r\n\t/** @enum */\r\n\texport type MoveType = keyof typeof MoveType;\r\n\texport const MoveType = Object.freeze({\r\n\t\tNORMAL: \"NORMAL\",\r\n\t\tBOOST: \"BOOST\",\r\n\t});\r\n\tMoveType as { [ key in MoveType ]: key };\r\n\r\n\texport type Changes = {\r\n\t\treadonly coord?: Coord,\r\n\t\treadonly health: Player.Health,\r\n\t};\r\n\r\n\t/**\r\n\t * Player Constructor Arguments\r\n\t */\r\n\texport type CtorArgs = _CtorArgs[Player.Family];\r\n\texport type _CtorArgs = {\r\n\t\t[F in Player.Family]: _PreIdAssignmentDict[F] & Readonly<{\r\n\t\t\tplayerId: Player.Id;\r\n\t\t\tavatar: Avatar;\r\n\t\t}>;\r\n\t};\r\n\r\n\ttype _PreIdAssignmentDict = {\r\n\t\t[F in Player.Family]: F extends typeof Player.Family.HUMAN\r\n\t\t? _PreIdAssignmentConditional & {\r\n\t\t\treadonly socket: WebSocket | undefined;\r\n\t\t}\r\n\t\t: _PreIdAssignmentConditional;\r\n\t};\r\n\tinterface _PreIdAssignmentConditional extends UserInfo {\r\n\t\treadonly familyId: F;\r\n\t\treadonly familyArgs: CtorArgs.FamilySpecificPart[F];\r\n\t};\r\n\r\n\texport namespace CtorArgs {\r\n\r\n\t\texport type UnFin = _PreIdAssignmentDict[Player.Family];\r\n\r\n\t\texport interface FamilySpecificPart extends RobotPlayer.FamilySpecificPart {\r\n\t\t\t[Player.Family.HUMAN]: {};\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @returns\r\n\t\t * Squashes teamId fields to be suitable for array indices.\r\n\t\t */\r\n\t\texport function finalize(\r\n\t\t\tgameDesc: Game.CtorArgs.UnFin,\r\n\t\t): asserts gameDesc is Game.CtorArgs\r\n\t\t{\r\n\t\t\tconst playerDescs: TU.RoArr = gameDesc.players;\r\n\t\t\t// Map team ID's to consecutive numbers\r\n\t\t\t// (to play nice with array representations):\r\n\t\t\tconst teamIdCleaner: TU.RoArr\r\n\t\t\t\t= Array.from(new Set(playerDescs.map((player) => player.teamId)))\r\n\t\t\t\t.sort((a, b) => a - b) // This is not a representation requirement.\r\n\t\t\t\t.reduce((prev, originalId, squashedId) => {\r\n\t\t\t\t\tprev[originalId] = squashedId;\r\n\t\t\t\t\treturn prev;\r\n\t\t\t\t}, [] as Array);\r\n\r\n\t\t\t// @ts-expect-error : RO=\r\n\t\t\tgameDesc.players = playerDescs.slice()\r\n\t\t\t\t.sort((pda, pdb) => teamIdCleaner[pda.teamId]! - teamIdCleaner[pdb.teamId]!)\r\n\t\t\t\t.freeze()\r\n\t\t\t\t.map((playerDesc, index) => Object.assign({}, playerDesc, {\r\n\t\t\t\t\tplayerId: index,\r\n\t\t\t\t\tteamId: teamIdCleaner[playerDesc.teamId]!,\r\n\t\t\t\t\tavatar: playerDesc.avatar ?? Player.Avatar.GET_RANDOM(),\r\n\t\t\t\t}))\r\n\t\t\t\t.freeze();\r\n\t\t};\r\n\t}\r\n\tObject.freeze(CtorArgs);\r\n}\r\nJsUtils.protoNoEnum(Player,\r\n\t\"onGamePlaying\", \"onGamePaused\", \"onGameOver\",\r\n\t\"onTeamsBootstrapped\",\r\n);\r\nObject.freeze(Player);\r\nObject.freeze(Player.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Game } from \"../Game\";\r\nimport type { Coord, Tile } from \"floor/Tile\";\r\nimport type { Grid } from \"floor/Grid\";\r\n\r\n/**\r\n * @final\r\n */\r\nexport class HealthInfo {\r\n\r\n\tpublic readonly K: HealthInfo.K;\r\n\t#currentAmount: number = 0.0;\r\n\tpublic readonly tiles = new Map();\r\n\r\n\tpublic get currentAmount(): number { return this.#currentAmount; }\r\n\r\n\tpublic constructor(\r\n\t\tdesc: Game.CtorArgs,\r\n\t\tgridStatic: Grid.ClassIf,\r\n\t) {\r\n\t\tconst baseCostOfBoost = Game.K._HEALTH_COST_OF_BOOST(\r\n\t\t\tdesc.averageHealthPerTile,\r\n\t\t\tgridStatic.getLatticePatchDiameter,\r\n\t\t);\r\n\t\tthis.K = Object.freeze({\r\n\t\t\tavg: desc.averageHealthPerTile * gridStatic.getArea(desc.gridDimensions),\r\n\t\t\tavgPerTile: desc.averageHealthPerTile,\r\n\t\t\tcostOfBoost: (dest: Tile) => baseCostOfBoost / dest.seq.length,\r\n\t\t});\r\n\t\tJsUtils.propNoWrite(this as HealthInfo, \"K\");\r\n\t\tObject.seal(this); //🧊\r\n\t}\r\n\r\n\tpublic reset(): void {\r\n\t\tthis.#currentAmount = 0.0;\r\n\t\tthis.tiles.clear();\r\n\t}\r\n\r\n\tpublic add(amount: number): void {\r\n\t\tthis.#currentAmount += amount;\r\n\t}\r\n}\r\nexport namespace HealthInfo {\r\n\texport interface K {\r\n\t\treadonly avg: number;\r\n\t\treadonly avgPerTile: number;\r\n\t\treadonly costOfBoost: (dest: Tile) => number;\r\n\t}\r\n}\r\nObject.freeze(HealthInfo);\r\nObject.freeze(HealthInfo.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport type { Coord, Tile } from \"./Tile\";\r\nimport { Player } from \"defs/TypeDefs\";\r\n\r\nimport type { WrappedEuclid2 } from \"./impl/Euclid2/System\";\r\nimport type { Beehive } from \"./impl/Beehive/System\";\r\n\r\n/**\r\n * A Collection of Tiles.\r\n */\r\nexport abstract class Grid {\r\n\r\n\t// A type-annotated alias to this.constructor.\r\n\tpublic readonly static: Grid.ClassIf;\r\n\r\n\tpublic readonly dimensions: Grid.Dimensions[S];\r\n\r\n\tpublic readonly area: number;\r\n\r\n\t/**\r\n\t * Protected. See `Grid.getImplementation` for how to access class\r\n\t * literals for construction.\r\n\t */\r\n\tprotected constructor(desc: Grid.CtorArgs) {\r\n\t\tObject.freeze(desc);\r\n\t\tthis.static = desc.Grid;\r\n\t\tthis.dimensions = desc.dimensions;\r\n\t\tthis.area = desc.Grid.getArea(desc.dimensions);\r\n\t\tJsUtils.propNoWrite(this as Grid, \"static\", \"dimensions\");\r\n\t}\r\n\r\n\t/** @virtual */\r\n\tpublic reset(): void {\r\n\t\tthis.forEach((tile) => {\r\n\t\t\tthis.write(tile.coord, {\r\n\t\t\t\toccId: Player.Id.NULL,\r\n\t\t\t\tchar: \"\", seq: \"\", health: 0,\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/** */\r\n\tpublic abstract write(coord: Coord, changes: Readonly): void;\r\n\r\n\t/**\r\n\t * For BaseGame's implementation of SER/DES to work, the traversal\r\n\t * order taken by an implementation of this method must depend\r\n\t * only on the dimensions of the instance. The index is not required\r\n\t * to equal the tile's coord.\r\n\t */\r\n\tpublic abstract forEach(callback: (tile: Tile, index: number) => void): void;\r\n\r\n\tpublic abstract forEachShuffled(callback: (tile: Tile, index: number) => void): void;\r\n\r\n\t/**\r\n\t * @returns\r\n\t * One of the closest unoccupied neighbouring tiles toward the\r\n\t * direction of `intendedDest`. When possible, ties are encouraged\r\n\t * to be broken in such a way that imitates movement in a straight\r\n\t * path (visually speaking).\r\n\t *\r\n\t * **Important:** If All destinations from sourceCoord are occupied\r\n\t * (which includes `sourceCoord` itself), the implementation must\r\n\t * return `sourceCoord`.\r\n\t *\r\n\t * @param intendedDest\r\n\t *\r\n\t * @param sourceCoord\r\n\t * The coordinate from which to find the next hop.\r\n\t */\r\n\tpublic abstract getUntToward(intendedDest: Coord, sourceCoord: Coord): Tile;\r\n\r\n\t/**\r\n\t * The opposite of `getUntToward`.\r\n\t *\r\n\t * Behaviour is undefined when both arguments are the same.\r\n\t */\r\n\tpublic abstract getUntAwayFrom(avoidCoord: Coord, sourceCoord: Coord): Tile;\r\n\r\n\t/**\r\n\t * The returned array should be assumed to be a shallow copy of\r\n\t * the corresponding Tile objects.\r\n\t *\r\n\t * This action is commonly performed by the GameManager when\r\n\t * shuffling in new CSP's to its grid.\r\n\t *\r\n\t * Implementations with wrapping edges must make sure that the\r\n\t * return value does not contain duplicate tile entries.\r\n\t *\r\n\t * @virtual\r\n\t * Grid implementations are encouraged to override this if they\r\n\t * have a more efficient way to produce the same result.\r\n\t */\r\n\tpublic getAllAltDestsThan(originCoord: Coord): TU.RoArr {\r\n\t\treturn Array.from(new Set(\r\n\t\t\tthis.tileSourcesTo(originCoord)\r\n\t\t\t\t.flatMap((sourceToTarget) => this.tileDestsFrom(sourceToTarget.coord))\r\n\t\t));\r\n\t}\r\n\r\n\tpublic getRandomCoord(): Coord {\r\n\t\treturn this.static.getRandomCoord(this.dimensions);\r\n\t}\r\n\r\n\t/**\r\n\t * A coord that is at most `radius` movements away from `origin`.\r\n\t * The returned value does not necessarily need to be within this\r\n\t * grid's dimensions as long as the returned coordinate can be\r\n\t * meaningfully truncated by `getUntToward` when passing `origin`\r\n\t * as the `sourceCoord` argument.\r\n\t *\r\n\t * The returned value should follow a uniform distribution.\r\n\t */\r\n\tpublic abstract getRandomCoordAround(origin: Coord, radius: number): Coord;\r\n\r\n\t/** Treat the result as a shallow copy. */\r\n\tpublic abstract tileAt(coord: Coord): Tile;\r\n\t/** Treat the result as a shallow copy. */\r\n\tpublic abstract tileDestsFrom(coord: Coord): TU.RoArr;\r\n\t/** Treat the result as a shallow copy. */\r\n\tpublic abstract tileSourcesTo(coord: Coord): TU.RoArr;\r\n\r\n\t/**\r\n\t * The returned value must be consistent with results from the\r\n\t * methods `_getTileDestsFrom` and `_getTileSourcesTo`.\r\n\t */\r\n\tpublic abstract dist(source: Coord, dest: Coord): number;\r\n\r\n\t/**\r\n\t * @virtual\r\n\t * Implementations are free to override this to spawn players in\r\n\t * pretty patterns.\r\n\t */\r\n\tpublic static getSpawnCoords(\r\n\t\tteamSizes: TU.RoArr,\r\n\t\tdimensions: Grid.Dimensions[Coord.System],\r\n\t): TU.RoArr> {\r\n\t\tconst avoidSet = new Set();\r\n\t\treturn teamSizes.map((numMembers: number) => {\r\n\t\t\tconst teamSpawnCoords: Array = [];\r\n\t\t\twhile (numMembers > 0) {\r\n\t\t\t\tlet coord: Coord;\r\n\t\t\t\tdo {\r\n\t\t\t\t\tcoord = (this as unknown as Grid.ClassIf).getRandomCoord(dimensions);\r\n\t\t\t\t} while (avoidSet.has(coord));\r\n\t\t\t\tteamSpawnCoords.push(coord);\r\n\t\t\t\tavoidSet.add(coord);\r\n\t\t\t\tnumMembers--;\r\n\t\t\t}\r\n\t\t\treturn teamSpawnCoords.freeze();\r\n\t\t}).freeze();\r\n\t}\r\n}\r\nexport namespace Grid {\r\n\r\n\t/** */\r\n\texport interface Dimensions {\r\n\t\t[Coord.System.W_EUCLID2]: WrappedEuclid2.Grid.Dimensions;\r\n\t\t[Coord.System.BEEHIVE]: Beehive.Grid.Dimensions;\r\n\t};\r\n\r\n\t// ==============================================================\r\n\t// Note: The below exports do not require any modifications with\r\n\t// the additions of new coordinate systems.\r\n\t// ==============================================================\r\n\r\n\texport type CtorArgs = Readonly<{\r\n\t\tGrid: Grid.ClassIf;\r\n\t\tsystem: S;\r\n\t\tdimensions: Dimensions[S];\r\n\t\tplayers: any; // TODO.design\r\n\t}>;\r\n\r\n\t/**\r\n\t * Used to simulate abstract static methods.\r\n\t */\r\n\texport interface ClassIf {\r\n\r\n\t\t/** Constructor */\r\n\t\tnew(desc: CtorArgs): Grid;\r\n\r\n\t\t/**\r\n\t\t * @returns\r\n\t\t * The minimum number of leaf nodes a language must have to be\r\n\t\t * playable with this coordinate system's grid.\r\n\t\t *\r\n\t\t * Definition: The maximum possible number- for any tile in the\r\n\t\t * grid- of all destinations from sources to itself, excluding\r\n\t\t * itself.\r\n\t\t */\r\n\t\tambiguityThreshold: number;\r\n\r\n\t\t/**\r\n\t\t * @see Grid.DimensionBounds\r\n\t\t */\r\n\t\tsizeLimits: Grid.DimensionBounds;\r\n\r\n\t\t/**\r\n\t\t * @returns\r\n\t\t * The number of Tiles that could fit in a Grid of such bounds.\r\n\t\t */\r\n\t\tgetArea(bounds: Dimensions[S]): number;\r\n\r\n\t\t/**\r\n\t\t * \\*Assuming the grid is lattice-like and is partitioned into\r\n\t\t * highly similar patches where each patch has a center, and\r\n\t\t * all tiles in the patch are closer to that center tile than\r\n\t\t * to any other patch's center tile. Returns the minimum number\r\n\t\t * of tiles that must be visited to get from the center of one\r\n\t\t * patch to any neighbouring patch.\r\n\t\t */\r\n\t\tgetLatticePatchDiameter(area: number): number;\r\n\r\n\t\t/**\r\n\t\t * @returns\r\n\t\t * A coordinate with random, integer-valued fields within the\r\n\t\t * specified upper limits\r\n\t\t */\r\n\t\tgetRandomCoord(bounds: Dimensions[S]): Coord;\r\n\r\n\t\t/**\r\n\t\t * Return values do not need to be the same for repeated calls\r\n\t\t * with identical arguments. None of the returned coordinates\r\n\t\t * should be the same.\r\n\t\t */\r\n\t\tgetSpawnCoords(\r\n\t\t\tteamSizes: TU.RoArr,\r\n\t\t\tdimensions: Dimensions[S],\r\n\t\t): TU.RoArr>;\r\n\t};\r\n\r\n\t// Each implementation must register itself into this dictionary.\r\n\t// See CmapManager.ts.\r\n\texport const _Constructors: {\r\n\t\treadonly [ S in Coord.System ]: Grid.ClassIf\r\n\t} = {\r\n\t\t// These are initialized later to avoid bootstrapping issues.\r\n\t\t[\"W_EUCLID2\"]: undefined!,\r\n\t\t[\"BEEHIVE\"]: undefined!,\r\n\t};\r\n\r\n\t/**\r\n\t * @returns\r\n\t * A Grid class for the specified coordinate system.\r\n\t */\r\n\texport const getImplementation = (coordSys: S): ClassIf => {\r\n\t\t// Note: At the time of writing this, separating this into\r\n\t\t// two lines is necessary (otherwise Typescript will feel\r\n\t\t// overwhelmed)\r\n\t\tconst ctor = _Constructors[coordSys];\r\n\t\treturn ctor as unknown as ClassIf;\r\n\t};\r\n\r\n\t/**\r\n\t * Bounds are inclusive. Ie. the specified values are _just_ allowed.\r\n\t *\r\n\t * Upper and lower bounds must be strictly positive integer values.\r\n\t */\r\n\texport type DimensionBounds = Readonly<{\r\n\t\t[P in keyof Dimensions[S]]: {\r\n\t\t\treadonly min: number;\r\n\t\t\treadonly max: number;\r\n\t\t};\r\n\t}>;\r\n}\r\n// Grid gets frozen in PostInit after _Constructors get initialized.\r\nObject.freeze(Grid);\r\nObject.freeze(Grid.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Player } from \"../player/Player\";\r\n\r\n\r\n/**\r\n * Information about each Player's scores and statistics since the\r\n * last Game reset. This is separated from Player instances since\r\n * non-GameManagers have no need to maintain such records throughout\r\n * the game.\r\n *\r\n * @final\r\n */\r\nexport class ScoreInfo {\r\n\r\n\t/**\r\n\t * A map from player ID's to information about their scores.\r\n\t */\r\n\tpublic readonly entries: TU.RoArr;\r\n\r\n\tpublic constructor(playerIds: TU.RoArr) {\r\n\t\tconst entries: Array = [];\r\n\t\tfor (const id of playerIds) {\r\n\t\t\tentries[id] = new ScoreInfo.Entry();\r\n\t\t}\r\n\t\tthis.entries = entries;\r\n\t\tJsUtils.propNoWrite(this as ScoreInfo, \"entries\");\r\n\t\tObject.seal(this); //🧊\r\n\t}\r\n\r\n\tpublic reset(): void {\r\n\t\tfor (const entry of this.entries) {\r\n\t\t\tentry.reset();\r\n\t\t}\r\n\t}\r\n}\r\nexport namespace ScoreInfo {\r\n\t/**\r\n\t */\r\n\texport class Entry {\r\n\r\n\t\tpublic readonly moveCounts: {[M in Player.MoveType]: number};\r\n\r\n\t\t// TODO.design how to send this info to the game manager?\r\n\t\t// It is currently checked on the client side.\r\n\t\t//public invalidKeyPresses\r\n\r\n\t\tpublic totalHealthPickedUp: Player.Health;\r\n\r\n\t\tpublic constructor() {\r\n\t\t\tthis.moveCounts = {} as any; // This will be initialized during reset.\r\n\t\t}\r\n\r\n\t\tpublic reset(): void {\r\n\t\t\tthis.totalHealthPickedUp = 0.0;\r\n\t\t\t(Object.getOwnPropertyNames(Player.MoveType) as\r\n\t\t\t\tArray).forEach((key) => {\r\n\t\t\t\tthis.moveCounts[key] = 0;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tObject.freeze(Entry);\r\n\tObject.freeze(Entry.prototype);\r\n}\r\nObject.freeze(ScoreInfo);\r\nObject.freeze(ScoreInfo.prototype);","import { JsUtils} from \"defs/JsUtils\";\r\nimport { Game } from \"../Game\";\r\nimport { Lang } from \"defs/TypeDefs\";\r\n\r\nimport type { Coord, Tile } from \"floor/Tile\";\r\nimport type { StateChange } from \"../StateChange\";\r\nimport type { Grid } from \"floor/Grid\";\r\nimport type { OperatorPlayer } from \"../player/OperatorPlayer\";\r\n\r\nimport { Player } from \"../player/Player\";\r\nimport { Team } from \"../player/Team\";\r\n\r\n/** */\r\nexport abstract class GameMirror {\r\n\r\n\tpublic readonly grid: Grid;\r\n\treadonly #onGameBecomeOver: () => void;\r\n\tpublic readonly langFrontend: Lang.FrontendDesc;\r\n\r\n\tpublic readonly players: TU.RoArr;\r\n\tpublic readonly operators: TU.RoArr;\r\n\t#currentOperator: OperatorPlayer;\r\n\t/** Indexable by team ID's. */\r\n\tpublic readonly teams: TU.RoArr;\r\n\r\n\t#status: Game.Status;\r\n\r\n\t/** */\r\n\tpublic constructor(args: {\r\n\t\treadonly impl: Game.ImplArgs,\r\n\t\treadonly desc: Game.CtorArgs,\r\n\t\treadonly operatorIds: TU.RoArr,\r\n\t}) {\r\n\t\tconst { impl, desc, operatorIds } = args;\r\n\t\tObject.freeze(desc);\r\n\t\tObject.freeze(desc.players);\r\n\t\tdesc.players.forEach((desc) => Object.freeze(desc));\r\n\t\tObject.freeze(operatorIds);\r\n\r\n\t\tconst gridClass = impl.gridClassLookup(desc.coordSys);\r\n\t\tthis.grid = new (gridClass)({\r\n\t\t\tGrid: gridClass,\r\n\t\t\tsystem: desc.coordSys,\r\n\t\t\tdimensions: desc.gridDimensions,\r\n\t\t\tplayers: desc.players,\r\n\t\t}) as GameMirror[\"grid\"];\r\n\r\n\t\tthis.#onGameBecomeOver = impl.onGameBecomeOver;\r\n\t\tthis.langFrontend = Lang.GET_FRONTEND_DESC_BY_ID(desc.langId)!;\r\n\r\n\t\t// Construct players:\r\n\t\tconst players = this._createPlayers(desc, impl, operatorIds);\r\n\t\tthis.players = players.players;\r\n\t\tthis.operators = players.operators;\r\n\t\t{\r\n\t\t\tconst teams: Player[][] = [];\r\n\t\t\tthis.players.forEach((player) => {\r\n\t\t\t\tif (!teams[player.teamId]) {\r\n\t\t\t\t\tteams[player.teamId] = [];\r\n\t\t\t\t}\r\n\t\t\t\tteams[player.teamId]!.push(player);\r\n\t\t\t});\r\n\t\t\tthis.teams = teams.map((teammateArray, teamId) => {\r\n\t\t\t\treturn new Team(teamId, teammateArray);\r\n\t\t\t});\r\n\t\t}\r\n\t\tJsUtils.propNoWrite(this as GameMirror,\r\n\t\t\t\"grid\", \"langFrontend\",\r\n\t\t\t\"players\", \"operators\", \"teams\",\r\n\t\t);\r\n\t\tthis.players.forEach((player) => player.onTeamsBootstrapped());\r\n\t\tthis.setCurrentOperator(0);\r\n\t}\r\n\r\n\t/** */\r\n\tpublic reset(): void {\r\n\t\tthis.grid.reset();\r\n\r\n\t\t// We must reset status to PAUSED to pass a state-transition\r\n\t\t// assertion when changing status later to PLAYING.\r\n\t\tthis.#status = Game.Status.PAUSED;\r\n\t}\r\n\r\n\r\n\t/** Helper for the constructor. */\r\n\tprivate _createPlayers(\r\n\t\tgameDesc: Game.CtorArgs,\r\n\t\timplArgs: Game.ImplArgs,\r\n\t\toperatorIds: TU.RoArr,\r\n\t): {\r\n\t\tplayers: TU.RoArr,\r\n\t\toperators: TU.RoArr,\r\n\t} {\r\n\t\tconst players = gameDesc.players.map((pDesc) => {\r\n\t\t\tif (pDesc.familyId === Player.Family.HUMAN) {\r\n\t\t\t\treturn (operatorIds.includes(pDesc.playerId))\r\n\t\t\t\t\t? new implArgs.OperatorPlayer!(this, pDesc)\r\n\t\t\t\t\t: new Player(this, pDesc);\r\n\t\t\t} else {\r\n\t\t\t\treturn implArgs.RobotPlayer(\r\n\t\t\t\t\tthis as GameMirror,\r\n\t\t\t\t\tpDesc,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}).freeze();\r\n\t\treturn Object.freeze({\r\n\t\t\tplayers,\r\n\t\t\toperators: operatorIds.map((playerId) => players[playerId] as OperatorPlayer).freeze(),\r\n\t\t});\r\n\t}\r\n\r\n\t/** @final */\r\n\tpublic deserializeResetState(ser: Game.ResetSer): void {\r\n\t\tJsUtils.deepFreeze(ser);\r\n\r\n\t\tthis.grid.forEach((tile, index) => {\r\n\t\t\tthis.grid.write(tile.coord, ser.csps[index]!);\r\n\t\t});\r\n\t\tser.playerCoords.forEach((coord, playerId) => {\r\n\t\t\tthis.players[playerId]!.reset(coord);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic get currentOperator(): OperatorPlayer {\r\n\t\treturn this.#currentOperator;\r\n\t}\r\n\tpublic setCurrentOperator(nextOperatorIndex: number): void {\r\n\t\tconst nextOperator = this.operators[nextOperatorIndex]!;\r\n\t\tif (!DEF.DevAssert && nextOperator === undefined) throw new Error(\"never\");\r\n\t\tif (this.currentOperator !== nextOperator)\r\n\t\t{\r\n\t\t\tthis.#currentOperator = nextOperator;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic get status(): Game.Status {\r\n\t\treturn this.#status;\r\n\t}\r\n\r\n\t/**\r\n\t * On the client side, this should only be accessed through a\r\n\t * wrapper function that also makes UI-related changes.\r\n\t *\r\n\t * If the game is already playing, this does nothing.\r\n\t */\r\n\tpublic statusBecomePlaying(): void {\r\n\t\tif (this.status === Game.Status.PLAYING) {\r\n\t\t\tconsole.info(\"[statusBecomePlaying]: Game is already playing\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.status !== Game.Status.PAUSED) {\r\n\t\t\tthrow new Error(\"Can only resume a game that is currently paused.\");\r\n\t\t}\r\n\t\tthis.players.forEach((player) => {\r\n\t\t\tplayer.onGamePlaying();\r\n\t\t});\r\n\t\tthis.#status = Game.Status.PLAYING;\r\n\t}\r\n\r\n\t/**\r\n\t * On the client side, this should only be accessed through a\r\n\t * wrapper function that also makes UI-related changes.\r\n\t *\r\n\t * If the game is already paused, this does nothing.\r\n\t */\r\n\tpublic statusBecomePaused(): void {\r\n\t\tif (this.status === Game.Status.PAUSED) {\r\n\t\t\tconsole.info(\"[statusBecomePaused]: Game is already paused\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.status === Game.Status.OVER) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.players.forEach((player) => {\r\n\t\t\tplayer.onGamePaused();\r\n\t\t});\r\n\t\tthis.#status = Game.Status.PAUSED;\r\n\t}\r\n\r\n\t/**\r\n\t * This should be called when all teams have been eliminated.\r\n\t * A team becomes (and subsequently and unconditionally stays)\r\n\t * eliminated when all their members are in a downed state at\r\n\t * the same time.\r\n\t *\r\n\t * This should not be controllable by UI input elements. Instead,\r\n\t * The UI layer can pass a callback to the constructor.\r\n\t */\r\n\tpublic statusBecomeOver(): void {\r\n\t\tif (this.status === Game.Status.OVER) return;\r\n\t\tthis.players.forEach((player) => {\r\n\t\t\tplayer.onGameOver();\r\n\t\t});\r\n\t\tthis.#status = Game.Status.OVER;\r\n\t\tthis.#onGameBecomeOver();\r\n\t\tconsole.info(\"game is over!\");\r\n\t}\r\n\r\n\tpublic abstract processMoveRequest(desc: StateChange.Req, socket?: any): void;\r\n\r\n\t/** @virtual */\r\n\tprotected commitTileMods(\r\n\t\tcoord: Coord,\r\n\t\tchanges: Tile.Changes,\r\n\t\tdoCheckOperatorSeqBuffer: boolean = true,\r\n\t): void {\r\n\t\t// JsUtils.deepFreeze(changes); // <- already done by caller.\r\n\t\tconst tile = this.grid.tileAt(coord);\r\n\r\n\t\tif (changes.seq !== undefined) {\r\n\t\t\t// Refresh the operator's `seqBuffer` (maintain invariant) for new CSP:\r\n\t\t\tif (doCheckOperatorSeqBuffer) {\r\n\t\t\t\t// ^Do this when non-operator moves into the the operator's vicinity.\r\n\t\t\t\tthis.operators.forEach((op) => {\r\n\t\t\t\t\tif (this.grid.tileDestsFrom(op.coord).includes(tile)) {\r\n\t\t\t\t\t\top.seqBufferAcceptKey(undefined);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.grid.write(coord, changes);\r\n\t}\r\n\r\n\t/** @virtual */\r\n\tprotected commitStateChange(desc: StateChange.Res, socket?: any): void {\r\n\t\tJsUtils.deepFreeze(desc);\r\n\t\tconst player = this.players[desc.initiator]!;\r\n\r\n\t\tif (desc.rejectId !== undefined) {\r\n\t\t\tplayer.reqBuffer.reject(desc.rejectId, player.coord);\r\n\t\t\treturn; //⚡\r\n\t\t}\r\n\r\n\t\tObject.entries(desc.tiles).freeze().forEach(([coord, changes]) => {\r\n\t\t\tthis.commitTileMods(parseInt(coord), changes);\r\n\t\t});\r\n\t\tObject.entries(desc.players).freeze().forEach(([pid, changes]) => {\r\n\t\t\tconst player = this.players[parseInt(pid)]!;\r\n\t\t\tplayer.reqBuffer.acceptOldest();\r\n\t\t\tplayer.health = changes.health;\r\n\r\n\t\t\tif (changes.coord !== undefined) {\r\n\t\t\t\tthis.grid.write(player.coord, {occId: Player.Id.NULL});\r\n\t\t\t\tthis.grid.write(changes.coord, {occId: player.playerId});\r\n\t\t\t\t// === order matters ===\r\n\t\t\t\tplayer.setCoord(changes.coord);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\nJsUtils.protoNoEnum(GameMirror, \"_createPlayers\");\r\nObject.freeze(GameMirror);\r\nObject.freeze(GameMirror.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport type { Coord as BaseCoord, Coord, Tile } from \"floor/Tile\";\r\nimport { Grid as AbstractGrid } from \"floor/Grid\";\r\nimport { Player } from \"defs/TypeDefs\";\r\ntype S = BaseCoord.System.W_EUCLID2;\r\n\r\nexport type Dim = {\r\n\treadonly height: number,\r\n\treadonly width: number,\r\n};\r\n\r\n/**\r\n * Euclid2 Internal Augmented Coord\r\n *\r\n * Immutable.\r\n */\r\nclass IAC {\r\n\t//#region\r\n\tpublic constructor(\r\n\t\tpublic readonly x: number,\r\n\t\tpublic readonly y: number,\r\n\t) {\r\n\t\tObject.freeze(this);\r\n\t}\r\n\tpublic static from(dimensions: Dim, coord: Coord): IAC {\r\n\t\treturn new IAC(coord % dimensions.width, Math.floor(coord / dimensions.width));\r\n\t}\r\n\tpublic toCoord(dimensions: Dim): Coord {\r\n\t\treturn (this.y * dimensions.width) + this.x;\r\n\t}\r\n\r\n\tpublic static distX(dim: Dim, i1: IAC.Bare, i2: IAC.Bare): {\r\n\t\tdist: number, wrap: boolean,\r\n\t} {\r\n\t\tlet dist = Math.abs(i1.x - i2.x);\r\n\t\tif (dist < dim.width / 2) return { dist, wrap: false };\r\n\t\treturn { dist: dim.width - dist, wrap: true };\r\n\t}\r\n\tpublic static distY(dim: Dim, i1: IAC.Bare, i2: IAC.Bare): {\r\n\t\tdist: number, wrap: boolean,\r\n\t} {\r\n\t\tlet dist = Math.abs(i1.y - i2.y);\r\n\t\tif (dist < dim.height / 2) return { dist, wrap: false };\r\n\t\treturn { dist: dim.height - dist, wrap: true };\r\n\t}\r\n\tpublic static oneNorm(dim: Dim, i1: IAC.Bare, i2: IAC.Bare): {\r\n\t\tnorm: number, wrapX: boolean, wrapY: boolean,\r\n\t} {\r\n\t\tconst dX = IAC.distX(dim,i1,i2), dY = IAC.distY(dim,i1,i2);\r\n\t\treturn { norm: dX.dist + dY.dist, wrapX: dX.wrap, wrapY: dY.wrap };\r\n\t}\r\n\tpublic static infNorm(dim: Dim, i1: IAC.Bare, i2: IAC.Bare): {\r\n\t\tnorm: number, wrapX: boolean, wrapY: boolean,\r\n\t} {\r\n\t\tconst dX = IAC.distX(dim,i1,i2), dY = IAC.distY(dim,i1,i2);\r\n\t\treturn { norm: Math.max(dX.dist, dY.dist), wrapX: dX.wrap, wrapY: dY.wrap };\r\n\t}\r\n\t/**\r\n\t * @returns\r\n\t * A number in the range (0, 1). `One` means the x and y\r\n\t * coordinates align to the x or y axis, and `Zero` means they\r\n\t * are 45 degrees from the x or y axis.\r\n\t *\r\n\t * ```latex\r\n\t * \\frac{\\left|\\left|x\\right|-\\left|y\\right|\\right|}{\\left|x\\right|+\\left|y\\right|}=a\r\n\t * ```\r\n\t */\r\n\tpublic static axialAlignment(dim: Dim, _i1: Coord, _i2: Coord): number {\r\n\t\tconst i1 = IAC.from(dim, _i1), i2 = IAC.from(dim, _i2);\r\n\t\tconst dX = IAC.distX(dim,i1,i2), dY = IAC.distY(dim,i1,i2);\r\n\t\treturn (Math.abs(dX.dist - dY.dist)) / (dX.dist + dY.dist);\r\n\t}\r\n\r\n\tpublic add(other: IAC.Bare): IAC {\r\n\t\treturn new IAC(\r\n\t\t\tthis.x + other.x,\r\n\t\t\tthis.y + other.y,\r\n\t\t);\r\n\t}\r\n\tpublic sub(other: IAC.Bare): IAC {\r\n\t\treturn new IAC(\r\n\t\t\tthis.x - other.x,\r\n\t\t\tthis.y - other.y,\r\n\t\t);\r\n\t}\r\n\tpublic iSub(other: IAC.Bare): IAC {\r\n\t\treturn this.add(this.sub(other));\r\n\t}\r\n\tpublic mul(scalar: number): IAC {\r\n\t\treturn new IAC(\r\n\t\t\tscalar * this.x,\r\n\t\t\tscalar * this.y,\r\n\t\t);\r\n\t}\r\n\tpublic mod(dim: Dim): IAC {\r\n\t\tlet {x,y} = this;\r\n\t\twhile (x < 0) x += dim.width;\r\n\t\twhile (y < 0) y += dim.height;\r\n\t\tx %= dim.width;\r\n\t\ty %= dim.height;\r\n\t\treturn new IAC(x,y);\r\n\t}\r\n\t//#endregion\r\n}\r\nexport namespace IAC {\r\n\texport type Bare = {\r\n\t\treadonly x: number;\r\n\t\treadonly y: number;\r\n\t};\r\n}\r\nObject.freeze(IAC);\r\nObject.freeze(IAC.prototype);\r\n\r\n\r\n/**\r\n * Edges are wrapped.\r\n */\r\nexport namespace WrappedEuclid2 {\r\n\r\n\t/**\r\n\t * Euclid2 Grid\r\n\t */\r\n\texport class Grid extends AbstractGrid {\r\n\r\n\t\tpublic static ambiguityThreshold = 24;\r\n\r\n\t\tprivate static readonly SIZE_LIMITS = JsUtils.deepFreeze({\r\n\t\t\theight: { min: 10, max: 51 },\r\n\t\t\twidth: { min: 10, max: 51 },\r\n\t\t});\r\n\t\tpublic static sizeLimits: AbstractGrid.DimensionBounds = Grid.SIZE_LIMITS;\r\n\r\n\t\tprivate readonly _grid: SealedArray;\r\n\r\n\t\tprotected readonly iacCache: TU.RoArr;\r\n\r\n\t\tpublic constructor(desc: AbstractGrid.CtorArgs) {\r\n\t\t\tsuper(desc);\r\n\r\n\t\t\tconst grid: Array = [];\r\n\t\t\tfor (let y = 0; y < this.dimensions.height; y++) {\r\n\t\t\t\tfor (let x = 0; x < this.dimensions.width; x++) {\r\n\t\t\t\t\tconst tile: Tile = {\r\n\t\t\t\t\t\tcoord: (y * this.dimensions.width) + x,\r\n\t\t\t\t\t\toccId: Player.Id.NULL,\r\n\t\t\t\t\t\thealth: 0, seq: \"\",\r\n\t\t\t\t\t};\r\n\t\t\t\t\tgrid.push(tile);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._grid = grid.seal();\r\n\r\n\t\t\tconst iacCache = [];\r\n\t\t\tfor (let y = 0; y < desc.dimensions.height; y++) {\r\n\t\t\t\tfor (let x = 0; x < desc.dimensions.width; x++) {\r\n\t\t\t\t\tiacCache.push(new IAC(x,y));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.iacCache = iacCache.freeze();\r\n\t\t\tJsUtils.instNoEnum(this as Grid, \"iacCache\");\r\n\t\t\tJsUtils.propNoWrite(this as Grid, \"_grid\", \"iacCache\");\r\n\t\t\tif (new.target === Grid) {\r\n\t\t\t\tObject.seal(this); //🧊\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic write(coord: Coord, changes: Tile.Changes): void {\r\n\t\t\tthis._grid[coord] = Object.freeze(Object.assign(\r\n\t\t\t\tObject.create(null), this._grid[coord], changes,\r\n\t\t\t));\r\n\t\t}\r\n\r\n\t\tpublic forEach(consumer: (tile: Tile, index: number) => void): void {\r\n\t\t\tthis._grid.forEach(consumer);\r\n\t\t}\r\n\t\tpublic forEachShuffled(consumer: (tile: Tile, index: number) => void): void {\r\n\t\t\tconst indices: Array = new Array(this.area);\r\n\t\t\tfor (let i = 0; i < this.area; i++) {\r\n\t\t\t\tindices[i] = i;\r\n\t\t\t}\r\n\t\t\tindices.sort((a,b) => Math.random() - 0.5).freeze();\r\n\t\t\tfor (const index of indices) {\r\n\t\t\t\tconsumer(this._grid[index]!, index);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic getUntToward(intendedDest: Coord, sourceCoord: Coord): Tile {\r\n\t\t\tconst options = this.tileDestsFrom(sourceCoord)\r\n\t\t\t.filter((tile) => tile.occId === Player.Id.NULL)\r\n\t\t\t.map((tile) => {\r\n\t\t\t\tconst tileIac = this.iacCache[tile.coord]!;\r\n\t\t\t\tconst destIac = this.iacCache[intendedDest]!;\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttile, iac: tileIac,\r\n\t\t\t\t\tinfNorm: IAC.infNorm(this.dimensions, tileIac, destIac).norm,\r\n\t\t\t\t\toneNorm: IAC.oneNorm(this.dimensions, tileIac, destIac).norm,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tif (options.length === 0) {\r\n\t\t\t\treturn this.tileAt(sourceCoord);\r\n\t\t\t}\r\n\t\t\toptions.sort((ta, tb) => ta.infNorm - tb.infNorm);\r\n\t\t\toptions.length = 3;\r\n\t\t\toptions.sort((ta, tb) => ta.oneNorm - tb.oneNorm);\r\n\t\t\tconst best = options[0]!;\r\n\t\t\t// Filter out non-optimal options:\r\n\t\t\tfor (let i = 1; i < options.length; i++) {\r\n\t\t\t\tif (options[i]!.infNorm > best.infNorm) {\r\n\t\t\t\t\toptions.splice(i);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (options.length === 1) {\r\n\t\t\t\t// Minor optimization:\r\n\t\t\t\treturn best.tile;\r\n\t\t\t}\r\n\t\t\t// Choose one of the most favourable using some randomness\r\n\t\t\t// weighted to follow a straight-looking path of movement.\r\n\t\t\tif (best.infNorm === best.oneNorm) {\r\n\t\t\t\t// (the axial option (if it exists) should be the first\r\n\t\t\t\t// due to the previous sort's tie-breaker.\r\n\t\t\t\tif (IAC.axialAlignment(this.dimensions, sourceCoord, intendedDest) > 0.5) {\r\n\t\t\t\t\t// The path to the intended destination is aligned more\r\n\t\t\t\t\t// with the x or y axis than they are with those axes\r\n\t\t\t\t\t// rotated 45 degrees.\r\n\t\t\t\t\treturn best.tile;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Ignore the axial option in further computations:\r\n\t\t\t\t\toptions.shift();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Choose a random non-axial option:\r\n\t\t\treturn options[Math.floor(options.length * Math.random())]!.tile;\r\n\t\t}\r\n\t\tpublic getUntAwayFrom(_avoidCoord: Coord, _sourceCoord: Coord): Tile {\r\n\t\t\tconst avoid = this.iacCache[_avoidCoord]!;\r\n\t\t\tconst src = this.iacCache[_sourceCoord]!;\r\n\t\t\tconst dest = src.iSub(avoid).mod(this.dimensions);\r\n\t\t\treturn this._grid[dest.toCoord(this.dimensions)]!;\r\n\t\t}\r\n\r\n\t\tpublic getAllAltDestsThan(originCoord: Coord): TU.RoArr {\r\n\t\t\treturn this.tileDestsFrom(originCoord, 2);\r\n\t\t}\r\n\r\n\t\tpublic getRandomCoordAround(_origin: Coord, radius: number): Coord {\r\n\t\t\tconst origin = this.iacCache[_origin]!;\r\n\t\t\treturn new IAC(\r\n\t\t\t\torigin.x + Math.trunc(2 * radius * (Math.random() - 0.5)),\r\n\t\t\t\torigin.y + Math.trunc(2 * radius * (Math.random() - 0.5)),\r\n\t\t\t).mod(this.dimensions).toCoord(this.dimensions);\r\n\t\t}\r\n\r\n\t\tpublic dist(source: Coord, dest: Coord): number {\r\n\t\t\treturn IAC.infNorm(this.dimensions,\r\n\t\t\t\tthis.iacCache[source]!,\r\n\t\t\t\tthis.iacCache[dest]!,\r\n\t\t\t).norm;\r\n\t\t}\r\n\r\n\t\tpublic tileAt(coord: Coord): Tile {\r\n\t\t\treturn this._grid[coord]!;\r\n\t\t}\r\n\t\tpublic tileDestsFrom(coord: Coord, radius: number = 1): TU.RoArr {\r\n\t\t\tconst iac = this.iacCache[coord]!;\r\n\t\t\tlet wrapX = false, wrapY = false;\r\n\t\t\tconst W = this.dimensions.width, H = this.dimensions.height;\r\n\t\t\tlet t = (iac.y - radius); if (t < 0) { t += H; wrapY = true; }\r\n\t\t\tlet l = (iac.x - radius); if (l < 0) { l += W; wrapX = true; }\r\n\t\t\tlet b = (iac.y + radius +1); if (b > H) { b -= H; wrapY = true; }\r\n\t\t\tlet r = (iac.x + radius +1); if (r > W) { r -= W; wrapX = true; }\r\n\t\t\tconst dests: Array = [];\r\n\t\t\tif (wrapX) {\r\n\t\t\t\tconst _t = t * W;\r\n\t\t\t\tdests.push(...this._grid.slice(_t, _t+r));\r\n\t\t\t\tif (wrapY) {\r\n\t\t\t\t\tdests.push(...this._grid.slice(0, r));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst b1 = wrapY ? H : b;\r\n\t\t\tconst sliceLength = (radius * 2) + 1;\r\n\t\t\tfor (let y = t; y < b1; y++) {\r\n\t\t\t\tconst begin = (y * W) + l;\r\n\t\t\t\tdests.push(...this._grid.slice(begin, begin+sliceLength));\r\n\t\t\t}\r\n\t\t\tif (wrapX && !wrapY) { dests.length -= r; }\r\n\t\t\tif (wrapY) {\r\n\t\t\t\tfor (let y = 0; y < b; y++) {\r\n\t\t\t\t\tconst begin = (y * W) + l;\r\n\t\t\t\t\tdests.push(...this._grid.slice(begin, begin+sliceLength));\r\n\t\t\t\t}\r\n\t\t\t\tif (wrapX) { dests.length -= r; }\r\n\t\t\t}\r\n\t\t\t// TODO.impl use a set when radius > 2 to prevent duplicate entries?\r\n\t\t\treturn dests.freeze();\r\n\t\t}\r\n\t\tpublic tileSourcesTo(coord: Coord, radius: number = 1): TU.RoArr {\r\n\t\t\treturn this.tileDestsFrom(coord, radius);\r\n\t\t}\r\n\r\n\t\tdeclare public static getSpawnCoords: AbstractGrid.ClassIf[\"getSpawnCoords\"];\r\n\r\n\t\tpublic static getArea(dim: Grid.Dimensions): number {\r\n\t\t\treturn dim.height * dim.width;\r\n\t\t}\r\n\r\n\t\tpublic static getLatticePatchDiameter(area: number): number {\r\n\t\t\treturn Math.sqrt(area);\r\n\t\t}\r\n\r\n\t\tpublic static getRandomCoord(dimensions: Grid.Dimensions): Coord {\r\n\t\t\tconst x = Math.floor(dimensions.width * Math.random());\r\n\t\t\tconst y = Math.floor(dimensions.height * Math.random());\r\n\t\t\treturn (y * dimensions.width) + x;\r\n\t\t}\r\n\t}\r\n\texport namespace Grid {\r\n\t\t/**\r\n\t\t * If `width` is not specified, `height` is taken as its default value.\r\n\t\t */\r\n\t\texport type Dimensions = Dim;\r\n\t}\r\n\tGrid.prototype.tileSourcesTo = Grid.prototype.tileDestsFrom;\r\n\tJsUtils.protoNoEnum(Grid, \"tileAt\", \"tileDestsFrom\", \"tileSourcesTo\");\r\n\tObject.freeze(Grid);\r\n\tObject.freeze(Grid.prototype);\r\n}\r\nObject.freeze(WrappedEuclid2);","import { JsUtils } from \"defs/JsUtils\";\r\nimport type { Coord, Tile } from \"floor/Tile\";\r\nimport { Grid as AbstractGrid } from \"floor/Grid\";\r\ntype S = Coord.System.BEEHIVE;\r\n\r\n/**\r\n * Beehive Internal Augmented Coord\r\n */\r\nexport class IAC {\r\n\r\n\t/** 🕒 3'o'clock direction */\r\n\tpublic readonly dash: number;\r\n\r\n\t/** 🕔 5'o'clock direction */\r\n\tpublic readonly bash: number;\r\n\r\n\tpublic constructor(desc: IAC.Bare) {\r\n\t\tthis.dash = desc.dash;\r\n\t\tthis.bash = desc.bash;\r\n\t\tObject.freeze(this); //🧊\r\n\t}\r\n\tpublic toCoord(): Coord {\r\n\t\t// TODO.impl\r\n\t\treturn undefined!;\r\n\t}\r\n\r\n\tpublic round(): IAC {\r\n\t\t// I'm pretty proud of this despite the fact that I don't\r\n\t\t// think there's anything very impressive about it.\r\n\t\tconst floorDash = Math.floor(this.dash);\r\n\t\tconst floorBash = Math.floor(this.bash);\r\n\t\tconst d = floorDash - this.dash;\r\n\t\tconst b = floorBash - this.bash;\r\n\t\tif (d > 2 * b) {\r\n\t\t\treturn new IAC({ dash: floorDash+1, bash: floorBash });\r\n\t\t} else if (d < 0.5 * b) {\r\n\t\t\treturn new IAC({ dash: floorDash , bash: floorBash+1 });\r\n\t\t} else if (Math.min(d, b) > 0.5) {\r\n\t\t\treturn new IAC({ dash: floorDash+1, bash: floorBash+1 });\r\n\t\t} else {\r\n\t\t\treturn new IAC({ dash: floorDash , bash: floorBash });\r\n\t\t}\r\n\t}\r\n\tpublic add(other: IAC.Bare): IAC {\r\n\t\treturn new IAC({\r\n\t\t\tdash: this.dash + other.dash,\r\n\t\t\tbash: this.bash + other.bash,\r\n\t\t});\r\n\t}\r\n\tpublic sub(other: IAC.Bare): IAC {\r\n\t\treturn new IAC({\r\n\t\t\tdash: this.dash - other.dash,\r\n\t\t\tbash: this.bash - other.bash,\r\n\t\t});\r\n\t}\r\n\tpublic mul(scalar: number): IAC {\r\n\t\treturn new IAC({\r\n\t\t\tdash: scalar * this.dash,\r\n\t\t\tbash: scalar * this.bash,\r\n\t\t});\r\n\t}\r\n}\r\nexport namespace IAC {\r\n\texport type Bare = Readonly<{\r\n\t\tdash: number;\r\n\t\tbash: number;\r\n\t}>;\r\n}\r\nObject.freeze(IAC);\r\nObject.freeze(IAC.prototype);\r\n\r\n\r\n/**\r\n * ### 🐝 BEES !\r\n *\r\n * ## 🐝 BEES !\r\n *\r\n * # 🐝 BEES !\r\n *\r\n * ```text\r\n * ___ ___\r\n * // \\_// \\__\r\n * \\\\__/ \\__/ \\\r\n * \\\\__/ \\\\__/\r\n * ```\r\n *\r\n * [(bees)](https://giphy.com/gifs/oprah-bees-VhFps32TlNgsg)\r\n * [(Hexagons)](https://www.youtube.com/watch?v=thOifuHs6eY)\r\n */\r\nexport namespace Beehive {\r\n\t/**\r\n\t * Beehive Grid\r\n\t */\r\n\texport class Grid extends AbstractGrid {\r\n\r\n\t\tpublic static ambiguityThreshold = 18;\r\n\r\n\t\tprivate static readonly SIZE_LIMITS = JsUtils.deepFreeze({\r\n\t\t\tdash: { min: 10, max: 50 },\r\n\t\t\tbslash: { min: 10, max: 50 },\r\n\t\t\tfslash: { min: 10, max: 50 },\r\n\t\t});\r\n\t\tpublic static sizeLimits: AbstractGrid.DimensionBounds = Grid.SIZE_LIMITS;\r\n\r\n\t\t/**\r\n\t\t */\r\n\t\t// TODO.design determine spec for indexing\r\n\t\t// Then initialize the field in the constructor\r\n\t\t// Also design HTML representation and initialize in Grid.Visible\r\n\t\tprivate readonly grid: TU.RoArr>;\r\n\r\n\t\tpublic constructor(desc: AbstractGrid.CtorArgs) {\r\n\t\t\tsuper(desc);\r\n\r\n\t\t\t// Initialize `grid`:\r\n\t\t\tconst grid: any[] = undefined!;\r\n\t\t\tthis.grid = grid.freeze();\r\n\t\t\tif (new.target === Grid) {\r\n\t\t\t\tObject.seal(this); //🧊\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic write(coord: Coord, changes: Tile.Changes): void {\r\n\t\t\t// TODO.impl\r\n\t\t}\r\n\r\n\t\tpublic forEach(consumer: (tile: Tile, index: number) => void): void {\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (const row of this.grid) {\r\n\t\t\t\tfor (const tile of row) {\r\n\t\t\t\t\tconsumer(tile, i++);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tpublic forEachShuffled(consumer: (tile: Tile, index: number) => void): void {\r\n\t\t\t// const indices: Array = new Array(this.area);\r\n\t\t\t// for (let i = 0; i < this.area; i++) {\r\n\t\t\t// \tindices[i] = i;\r\n\t\t\t// }\r\n\t\t\t// indices.sort((a,b) => Math.random() - 0.5);\r\n\t\t\t// Object.freeze(indices);\r\n\t\t\t// for (const index of indices) {\r\n\t\t\t// \tconsumer(this.grid[index]!, index);\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tpublic getUntToward(intendedDest: Coord, sourceCoord: Coord): Tile {\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\t\tpublic getUntAwayFrom(_avoidCoord: Coord, _sourceCoord: Coord): Tile {\r\n\t\t\t// return this.getUntToward(\r\n\t\t\t// \tsourceCoord.add(sourceCoord.sub(avoidCoord)),\r\n\t\t\t// \tsourceCoord,\r\n\t\t\t// );\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\r\n\t\tpublic getAllAltDestsThan(originCoord: Coord): TU.RoArr {\r\n\t\t\treturn this.tileDestsFrom(originCoord, 2);\r\n\t\t}\r\n\r\n\t\tpublic getRandomCoordAround(origin: Coord, radius: number): Coord {\r\n\t\t\t// Note to self when I implement this:\r\n\t\t\t// Be careful about getting proper uniform random distribution!\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\r\n\t\tpublic dist(source: Coord, dest: Coord): number {\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\r\n\t\tpublic tileAt(coord: Coord): Tile {\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\r\n\t\tpublic tileDestsFrom(coord: Coord, radius: number = 1): TU.RoArr {\r\n\t\t\tconst result: Array = [];\r\n\t\t\treturn result.freeze();\r\n\t\t}\r\n\r\n\t\tpublic tileSourcesTo(coord: Coord, radius: number = 1): TU.RoArr {\r\n\t\t\treturn undefined!;\r\n\t\t}\r\n\r\n\t\tdeclare public static getSpawnCoords: AbstractGrid.ClassIf[\"getSpawnCoords\"];\r\n\r\n\t\tpublic static getArea(dim: Grid.Dimensions): number {\r\n\t\t\tconst shorterSide = Math.min(dim.fslash, dim.bslash);\r\n\t\t\tconst longerSide = Math.max(dim.fslash, dim.bslash);\r\n\t\t\tconst width = (-1) + dim.dash + shorterSide;\r\n\t\t\tlet area = 2 * shorterSide * (dim.dash + width);\r\n\t\t\tarea += (longerSide - shorterSide - 1) * width;\r\n\t\t\treturn area;\r\n\t\t}\r\n\r\n\t\tpublic static getLatticePatchDiameter(area: number): number {\r\n\t\t\tif (area < 0.25) {\r\n\t\t\t\tthrow new RangeError(\"determinant of a radical will be strictly negative.\");\r\n\t\t\t}\r\n\t\t\t// Given radius `r` and diameter = `1 + 2*r`, the area is\r\n\t\t\t// `1 + 6*r*(1+r)/2`. Rearrange to solve for `d` given the\r\n\t\t\t// area: `0 = 3r^2 + 3r + (1-a)`. Use quadratic formula.\r\n\t\t\tconst radius = ((-3) + Math.sqrt(9 - (12 * (1 - area)))) / 6;\r\n\t\t\treturn 1 + (2 * radius);\r\n\t\t}\r\n\r\n\t\tpublic static getRandomCoord(dimensions: Grid.Dimensions): Coord {\r\n\t\t\treturn new IAC(undefined!).toCoord();\r\n\t\t}\r\n\t}\r\n\texport namespace Grid {\r\n\t\texport type Dimensions = {\r\n\t\t\tdash: number;\r\n\t\t\tbslash: number;\r\n\t\t\tfslash: number;\r\n\t\t};\r\n\t}\r\n\tJsUtils.protoNoEnum(Grid, \"tileAt\", \"tileDestsFrom\", \"tileSourcesTo\");\r\n\tObject.freeze(Grid);\r\n\tObject.freeze(Grid.prototype);\r\n}\r\nObject.freeze(Beehive);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Game } from \"game/Game\";\r\nimport type { Coord, Tile } from \"floor/Tile\";\r\nimport type { GameManager } from \"game/gameparts/GameManager\";\r\n\r\nexport { JsUtils };\r\nexport type { Coord, Tile };\r\nexport type { GameManager };\r\n\r\n// Implementations:\r\nimport type { Chaser } from \"./robots/Chaser\";\r\n\r\nimport { Player } from \"./Player\";\r\nexport { Player };\r\n\r\n\r\n/**\r\n * Unlike {@link OperatorPlayer}s, these are not guided by human input.\r\n * Instead, they are essentially defined by how often they move, and\r\n * where they decide to move toward each time they move.\r\n *\r\n * Can be paused and un-paused by the Game Manager.\r\n */\r\nexport abstract class RobotPlayer extends Player {\r\n\r\n\t/** @override */\r\n\tdeclare public readonly game: GameManager;\r\n\r\n\tprivate _nextMovementTimerMultiplier: number = undefined!;\r\n\r\n\tprivate _scheduledMovementCallbackId: number = undefined!;\r\n\r\n\t/**\r\n\t * @see RobotPlayer.of for the public, non-abstract interface.\r\n\t */\r\n\tprotected constructor(game: GameManager, desc: Player.CtorArgs) {\r\n\t\tsuper(game, desc);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a {@link Pos} representing an absolute coordinate (ie.\r\n\t * one that is relative to the {@link Game}'s origin position')\r\n\t * that this `RobotPlayer` intends to move toward in its next\r\n\t * movement request. Pos may contain non-integer coordinate values,\r\n\t * and it does not have to be inside the bounds of the {@link Grid}.\r\n\t */\r\n\tprotected abstract computeDesiredDest(): Coord;\r\n\r\n\tprotected abstract getNextMoveType(): Player.MoveType;\r\n\r\n\t/**\r\n\t * Units are in milliseconds.\r\n\t */\r\n\tprotected abstract computeNextMovementTimer(): number;\r\n\r\n\t/** @override */\r\n\tpublic onGamePlaying(): void {\r\n\t\tsuper.onGamePlaying();\r\n\t\t/*@__INLINE__*/this._delayedMovementContinue();\r\n\t}\r\n\t/** @override */\r\n\tpublic onGamePaused(): void {\r\n\t\tthis.game.cancelTimeout(this._scheduledMovementCallbackId);\r\n\t\tthis._scheduledMovementCallbackId = undefined!;\r\n\t}\r\n\t/** @override */\r\n\tpublic onGameOver(): void {\r\n\t\tthis.game.cancelTimeout(this._scheduledMovementCallbackId);\r\n\t\tthis._scheduledMovementCallbackId = undefined!;\r\n\t}\r\n\r\n\t/**\r\n\t * Executes a single movement and then calls `delayedMovementContinue`.\r\n\t */\r\n\tprivate _movementContinue(): void {\r\n\t\tconst desiredDest = this.computeDesiredDest();\r\n\t\t// This is a little different than how human players experience\r\n\t\t// \"penalties\" when moving to tiles with long language-sequences-\r\n\t\t// humans must pay the penalty before landing on the tile, but\r\n\t\t// in the implementation here, it's much easier to simulate such\r\n\t\t// a penalty if it applies _after_ landing on the tile.\r\n\t\tthis._nextMovementTimerMultiplier = this.game.grid.tileAt(desiredDest).seq.length;\r\n\r\n\t\tthis.makeMovementRequest(\r\n\t\t\tthis.game.grid.getUntToward(desiredDest, this.coord).coord,\r\n\t\t\tthis.getNextMoveType(),\r\n\t\t);\r\n\t\t// Schedule a task to do this again:\r\n\t\t/*@__INLINE__*/this._delayedMovementContinue();\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules a call to `movementContinue`.\r\n\t */\r\n\tprivate _delayedMovementContinue(): void {\r\n\t\t// Schedule the next movement.\r\n\t\tthis._scheduledMovementCallbackId = this.game.setTimeout(\r\n\t\t\tthis._movementContinue.bind(this),\r\n\t\t\tthis.computeNextMovementTimer() * this._nextMovementTimerMultiplier,\r\n\t\t\t// * Callback function arguments go here.\r\n\t\t);\r\n\t\treturn;\r\n\t}\r\n}\r\nexport namespace RobotPlayer {\r\n\r\n\texport const _Constructors: {\r\n\t\treadonly [ F in Player.RobotFamily ]: {\r\n\t\t\tnew(\r\n\t\t\t\tgame: GameManager,\r\n\t\t\t\tdesc: Player._CtorArgs[F]\r\n\t\t\t): RobotPlayer;\r\n\t\t};\r\n\t} = {\r\n\t\t// These are initialized later to avoid bootstrapping issues.\r\n\t\t[\"CHASER\"]: undefined!,\r\n\t};\r\n\r\n\texport interface FamilySpecificPart {\r\n\t\t[Player.Family.CHASER]: Partial;\r\n\t}\r\n\r\n\texport const of = (\r\n\t\tgame: GameManager,\r\n\t\tplayerDesc: Player._CtorArgs[Player.RobotFamily],\r\n\t): RobotPlayer => {\r\n\t\tconst familyId = playerDesc.familyId as Player.RobotFamily;\r\n\t\tif (DEF.DevAssert) {\r\n\t\t\t// Enforced By: Caller adherence to contract.\r\n\t\t\tif (!Object.getOwnPropertyNames(_Constructors).includes(familyId)) {\r\n\t\t\t\tthrow new RangeError(familyId + \" is not a valid robot player family id.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new (_Constructors[familyId])(game, playerDesc);\r\n\t};\r\n\r\n\t/**\r\n\t * Provides slightly higher level abstractions for computing the\r\n\t * desired destination for the next movement.\r\n\t */\r\n\texport abstract class Decisive extends RobotPlayer {\r\n\r\n\t\t/**\r\n\t\t * Entries may return undefined to indicate that the condition\r\n\t\t * for using that behaviour was not met, and the next behaviour\r\n\t\t * should be tried.\r\n\t\t *\r\n\t\t * @requires\r\n\t\t * The last behaviour must never return `undefined`.\r\n\t\t */\r\n\t\tprotected abstract get _behaviours(): TU.RoArr;\r\n\r\n\t\treadonly #cache = {\r\n\t\t\twhich: 0,\r\n\t\t\treuses: 0,\r\n\t\t\ttarget: undefined as number | undefined,\r\n\t\t};\r\n\r\n\t\t/** @override */\r\n\t\tpublic reset(coord: Coord): void {\r\n\t\t\tsuper.reset(coord);\r\n\t\t\tthis.#cache.which = 0;\r\n\t\t\tthis.#cache.reuses = 0;\r\n\t\t\tthis.#cache.target = undefined;\r\n\t\t}\r\n\r\n\t\t/** @final */\r\n\t\tprotected computeDesiredDest(): Coord {\r\n\t\t\tconst c = this.#cache;\r\n\t\t\tif (c.target !== undefined && c.reuses <= Game.K._ROBOT_PRIORITY_MAX_REUSES) {\r\n\t\t\t\tconst next = this._behaviours[c.which]!.call(this, c.target);\r\n\t\t\t\tif (next !== undefined) {\r\n\t\t\t\t\tc.reuses++;\r\n\t\t\t\t\treturn next.dest; //⚡\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tc.reuses = 0;\r\n\t\t\tfor (let i = 0; i < this._behaviours.length; i++) {\r\n\t\t\t\tconst next = this._behaviours[i]!.call(this);\r\n\t\t\t\tif (next !== undefined) {\r\n\t\t\t\t\tc.which = i;\r\n\t\t\t\t\tc.target = next.target;\r\n\t\t\t\t\treturn next.dest;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthrow new Error(\"never\");\r\n\t\t}\r\n\t}\r\n\texport namespace Decisive {\r\n\t\texport type Next = undefined | {\r\n\t\t\tdest: Coord;\r\n\t\t\t/**\r\n\t\t\t * This could be anything a behaviour wants. Ex. A player\r\n\t\t\t * ID, a coord, etc.\r\n\t\t\t *\r\n\t\t\t * It is assumed to be unchanged when successfully reusing\r\n\t\t\t * a behaviour.\r\n\t\t\t * */\r\n\t\t\ttarget?: number;\r\n\t\t};\r\n\t\texport type Behaviour = (target?: number) => Next;\r\n\t}\r\n\tObject.freeze(Decisive);\r\n\tObject.freeze(Decisive.prototype);\r\n}\r\nJsUtils.protoNoEnum(RobotPlayer, \"_movementContinue\");\r\n// RobotPlayer is frozen in PostInit after _Constructors get initialized.\r\nObject.seal(RobotPlayer);\r\nObject.freeze(RobotPlayer.prototype);","import {\r\n\tJsUtils, Coord, Tile,\r\n\tGameManager, Player, RobotPlayer,\r\n} from \"../RobotPlayer\";\r\n\r\n/**\r\n * @final\r\n */\r\nexport class Chaser extends RobotPlayer.Decisive {\r\n\r\n\tprivate readonly pred: SealedArray = [];\r\n\tprivate readonly prey: Array = [];\r\n\r\n\tprivate readonly params: Readonly;\r\n\tdeclare protected readonly _behaviours: TU.RoArr;\r\n\r\n\tprivate readonly grid: Chaser[\"game\"][\"grid\"];\r\n\r\n\tpublic constructor(game: GameManager, desc: Player._CtorArgs[\"CHASER\"]) {\r\n\t\tsuper(game, desc);\r\n\t\tthis.params = Object.freeze(Object.assign(\r\n\t\t\t{},\r\n\t\t\tChaser.Behaviour.DEFAULT,\r\n\t\t\tdesc.familyArgs,\r\n\t\t));\r\n\t\tthis.grid = this.game.grid;\r\n\t\tObject.seal(this); //🧊\r\n\t\tJsUtils.propNoWrite(this as Chaser,\r\n\t\t\t\"params\", \"grid\",\r\n\t\t);\r\n\t\tthis.prey[Symbol.iterator]\r\n\t\tthis.pred.keys\r\n\t}\r\n\r\n\tpublic onTeamsBootstrapped(): void {\r\n\t\tsuper.onTeamsBootstrapped();\r\n\t\t// We need to cast off read-only-ness below.\r\n\t\t// @ts-expect-error : RO=\r\n\t\tthis.pred = this.game.teams\r\n\t\t\t.filter((team) => team.id !== this.teamId)\r\n\t\t\t.flatMap((team) => team.members)\r\n\t\t\t.seal();\r\n\r\n\t\t// @ts-expect-error : RO=\r\n\t\tthis.prey = [...this.pred].seal();\r\n\r\n\t\tJsUtils.propNoWrite(this as Chaser,\r\n\t\t\t\"pred\", \"prey\",\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _bhvrEvadePred(cachedPred?: Player.Id): RobotPlayer.Decisive.Next {\r\n\t\tif (cachedPred !== undefined) { return {\r\n\t\t\tdest: this.grid.getUntAwayFrom(this.game.players[cachedPred]!.coord, this.coord).coord,\r\n\t\t};}\r\n\t\t// Check if there is anyone to run away from:\r\n\t\tthis.pred.sort((pa,pb) => {\r\n\t\t\treturn this.grid.dist(pa.coord, this.coord)\r\n\t\t\t\t- this.grid.dist(pb.coord, this.coord);\r\n\t\t});\r\n\t\tfor (const pred of this.pred) {\r\n\t\t\tif (this.grid.dist(pred.coord, this.coord)\r\n\t\t\t\t> this.params.fearDistance) break;\r\n\t\t\tif (pred.isDowned) continue;\r\n\t\t\tif (pred.health > this.health) {\r\n\t\t\t\t// TODO.design Something that avoids getting cornered.\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdest: this.grid.getUntAwayFrom(pred.coord, this.coord).coord,\r\n\t\t\t\t\ttarget: pred.playerId,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\tprivate _bhvrChasePrey(cachedPrey?: Player.Id): RobotPlayer.Decisive.Next {\r\n\t\tif (cachedPrey !== undefined) { return {\r\n\t\t\tdest: this.game.players[cachedPrey]!.coord,\r\n\t\t};}\r\n\t\t// If there is nobody to run away from,\r\n\t\t// Check if there is anyone we want to attack:\r\n\t\tthis.prey.sort((pa,pb) => {\r\n\t\t\treturn this.grid.dist(this.coord, pa.coord)\r\n\t\t\t\t- this.grid.dist(this.coord, pb.coord);\r\n\t\t});\r\n\t\tif (this.isDowned) { // TODO.design <-- what's this? I think I meant to check that the prey is not downed.\r\n\t\t\tfor (const prey of this.prey) {\r\n\t\t\t\tif (this.grid.dist(this.coord, prey.coord)\r\n\t\t\t\t\t> this.params.bloodThirstDistance) break;\r\n\t\t\t\tif (prey.health < this.health - this.params.healthReserve) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdest: prey.coord,\r\n\t\t\t\t\t\ttarget: prey.playerId,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\tprivate _bhvrGotoHealthElseWander(cachedHealthCoord?: Coord): RobotPlayer.Decisive.Next {\r\n\t\tif (cachedHealthCoord !== undefined && this.game.health.tiles.has(cachedHealthCoord)) {\r\n\t\t\treturn { dest: cachedHealthCoord };\r\n\t\t}\r\n\t\t// If there is nobody we want to chase after to attack,\r\n\t\t// Head toward the nearest free health if it exists.\r\n\t\tif (this.game.health.tiles.size === 0) {\r\n\t\t\t// No tiles close by. Wander around:\r\n\t\t\tif (Math.random() < this.params.wanderingAimlessness) {\r\n\t\t\t\t// Big direction change:\r\n\t\t\t\treturn { dest: this.grid.getRandomCoordAround(this.coord, 3) };\r\n\t\t\t} else {\r\n\t\t\t\t// Continue wandering with a subtle, random direction:\r\n\t\t\t\tconst awayFunc = this.grid.getUntAwayFrom.bind(this.grid, this.prevCoord);\r\n\t\t\t\treturn { dest: this.grid.getRandomCoordAround(\r\n\t\t\t\t\tawayFunc(awayFunc(this.coord).coord).coord, 1,\r\n\t\t\t\t)};\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet closestFht: Tile = undefined!;\r\n\t\tlet closestFhtDistance = Infinity;\r\n\t\tfor (const fht of this.game.health.tiles.values()) {\r\n\t\t\tconst distance = this.grid.dist(this.coord, fht.coord);\r\n\t\t\tif (distance < closestFhtDistance) {\r\n\t\t\t\tclosestFht = fht;\r\n\t\t\t\tclosestFhtDistance = distance;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dest: closestFht.coord, target: closestFht.coord };\r\n\t}\r\n\r\n\tprotected getNextMoveType(): Player.MoveType {\r\n\t\treturn Player.MoveType.NORMAL;\r\n\t}\r\n\r\n\tprotected computeNextMovementTimer(): number {\r\n\t\treturn 1000 / this.params.keyPressesPerSecond;\r\n\t}\r\n}\r\nexport namespace Chaser {\r\n\t/**\r\n\t */\r\n\texport type Behaviour = {\r\n\t\t/**\r\n\t\t * If the number of moves it would take for an opponent with\r\n\t\t * more health than this player to reach this player is less\r\n\t\t * than or equal to this value, then this player will try to\r\n\t\t * run away to safety.\r\n\t\t */\r\n\t\tfearDistance: number;\r\n\t\t/**\r\n\t\t * If the number of moves it would take for this player to reach\r\n\t\t * an opponent with less health is greater than this value,\r\n\t\t * this player will not even consider pursuing them in attack.\r\n\t\t */\r\n\t\tbloodThirstDistance: number;\r\n\t\t/**\r\n\t\t * The minimum amount of leftover health this player would try\r\n\t\t * to ensure having before going after an opponent. Negative\r\n\t\t * values are allowed, in which case, the player will go after\r\n\t\t * opponents even if they would end up being downed as a result.\r\n\t\t */\r\n\t\thealthReserve: number;\r\n\t\t/**\r\n\t\t * How often this player moves in units of moves-per-second.\r\n\t\t */\r\n\t\tkeyPressesPerSecond: number;\r\n\t\t/**\r\n\t\t * A value between zero and one. How often this player will\r\n\t\t * make a drastic random change in direction when wandering.\r\n\t\t */\r\n\t\twanderingAimlessness: number;\r\n\t};\r\n\texport namespace Behaviour {\r\n\t\texport const DEFAULT: Readonly = Object.freeze({\r\n\t\t\tfearDistance: 5,\r\n\t\t\tbloodThirstDistance: 7,\r\n\t\t\thealthReserve: 3.0,\r\n\t\t\tkeyPressesPerSecond: 2.0,\r\n\t\t\twanderingAimlessness: 0.2,\r\n\t\t});\r\n\t}\r\n}\r\n// @ts-expect-error : RO=\r\nChaser.prototype._behaviours\r\n= Object.freeze([\r\n\tChaser.prototype[\"_bhvrEvadePred\"],\r\n\tChaser.prototype[\"_bhvrChasePrey\"],\r\n\tChaser.prototype[\"_bhvrGotoHealthElseWander\"],\r\n]);\r\nJsUtils.protoNoEnum(Chaser, \"onTeamsBootstrapped\");\r\nObject.freeze(Chaser);\r\nObject.freeze(Chaser.prototype);","import { JsUtils } from \"defs/JsUtils\";\r\nimport { Lang } from \"lang/Lang\";\r\nimport { Game } from \"../Game\";\r\n\r\nimport type { Coord, Tile } from \"floor/Tile\";\r\nimport type { StateChange } from \"../StateChange\";\r\nimport { Player } from \"../player/Player\";\r\nimport { HealthInfo } from \"./HealthInfo\";\r\nimport { ScoreInfo } from \"./ScoreInfo\";\r\nimport { Grid } from \"floor/Grid\";\r\n\r\nimport { GameMirror } from \"./GameMirror\";\r\n\r\nimport InitGameManagerCtorMaps from \"../ctormaps/CmapManager\";\r\nInitGameManagerCtorMaps();\r\n\r\n/** */\r\nexport abstract class GameManager<\r\n\tS extends Coord.System = Coord.System,\r\n> extends GameMirror {\r\n\r\n\tpublic readonly health: HealthInfo;\r\n\r\n\tpublic readonly lang: Lang = undefined!;\r\n\treadonly #langImportPromise: Promise;\r\n\r\n\tprivate readonly scoreInfo: ScoreInfo;\r\n\r\n\t/** */\r\n\tpublic constructor(args: {\r\n\t\treadonly impl: Game.ImplArgs,\r\n\t\treadonly desc: Game.CtorArgs,\r\n\t\treadonly operatorIds: TU.RoArr,\r\n\t}) {\r\n\t\tsuper(args);\r\n\r\n\t\tthis.health = new HealthInfo(args.desc, this.grid.static as Grid.ClassIf);\r\n\t\tthis.scoreInfo = new ScoreInfo(this.players.map((player) => player.playerId));\r\n\t\tJsUtils.propNoWrite(this as GameManager,\r\n\t\t\t\"health\", \"scoreInfo\",\r\n\t\t);\r\n\r\n\t\t// https://webpack.js.org/api/module-methods/#dynamic-expressions-in-import\r\n\t\tthis.#langImportPromise = (import(\r\n\t\t\t/* webpackChunkName: \"lang/[request]\" */\r\n\t\t\t`lang/impl/${this.langFrontend.module}.ts`\r\n\t\t)).then((langModule) => {\r\n\t\t\tconst LangConstructor = this.langFrontend.export.split(\".\").reduce(\r\n\t\t\t\t(nsps, propName) => nsps[propName],\r\n\t\t\t\tlangModule[this.langFrontend.module],\r\n\t\t\t) as Lang.ClassIf;\r\n\t\t\t// @ts-expect-error : RO=\r\n\t\t\tthis.lang = new LangConstructor(args.desc.langWeightExaggeration);\r\n\t\t\tJsUtils.propNoWrite(this as GameManager, \"lang\");\r\n\r\n\t\t\tif (DEF.DevAssert && (this.lang.isolatedMinOpts < this.grid.static.ambiguityThreshold)) {\r\n\t\t\t\t// Enforced By: clientside UI and `CHECK_VALID_CTOR_ARGS`.\r\n\t\t\t\tthrow new Error(\"never\");\r\n\t\t\t}\r\n\t\t\treturn this.lang;\r\n\t\t});\r\n\t}\r\n\r\n\t/** */\r\n\tpublic async reset(): Promise {\r\n\t\t// Reset the grid and event record:\r\n\t\tsuper.reset();\r\n\t\tconst resetSer = Object.freeze({\r\n\t\t\tplayerCoords: [] as Coord[],\r\n\t\t\tcsps: [] as Lang.CharSeqPair[],\r\n\t\t});\r\n\r\n\t\tthis.health.reset();\r\n\r\n\t\t// Reset hit-counters in the current language:\r\n\t\t// This must be done before shuffling so that the previous\r\n\t\t// history of shuffle-ins has no effects on the new pairs.\r\n\t\tawait this.#langImportPromise;\r\n\t\tthis.lang.reset();\r\n\t\tthis.grid.forEachShuffled((tile, index) => {\r\n\t\t\tconst csp = this.dryRunShuffleLangCspAt(tile.coord, true);\r\n\t\t\tthis.grid.write(tile.coord, csp);\r\n\t\t\tresetSer.csps[index] = csp;\r\n\t\t});\r\n\r\n\t\t// Reset and spawn players:\r\n\t\tthis.teams.forEach((team) => team.reset());\r\n\t\tconst spawnPoints = this.grid.static.getSpawnCoords(\r\n\t\t\tthis.teams.map((team) => team.members.length),\r\n\t\t\tthis.grid.dimensions,\r\n\t\t);\r\n\t\tthis.teams.forEach((team, teamIndex) => {\r\n\t\t\tteam.members.forEach((member, memberIndex) => {\r\n\t\t\t\tconst coord = spawnPoints[teamIndex]![memberIndex]!;\r\n\t\t\t\tmember.reset(coord);\r\n\t\t\t\tresetSer.playerCoords[member.playerId] = coord;\r\n\t\t\t});\r\n\t\t});\r\n\t\tthis.scoreInfo.reset();\r\n\r\n\t\treturn resetSer;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * **Important:** Nullifies the existing values at `tile` and does\r\n\t * not consume the returned values, which must be done externally.\r\n\t *\r\n\t * @param coord\r\n\t *\r\n\t * @param doCheckEmptyTiles\r\n\t * Pass `true` when populating a grid which has been reset. This\r\n\t * is for performance optimization purposes. It can be safely\r\n\t * ignored.\r\n\t *\r\n\t * @returns\r\n\t * A {@link Lang.CharSeqPair} that can be used as a replacement\r\n\t * for that currently being used by `tile`.\r\n\t */\r\n\tprivate dryRunShuffleLangCspAt(coord: Coord, doCheckEmptyTiles: boolean = false): Lang.CharSeqPair {\r\n\t\t// First, clear values for the target tile so its current\r\n\t\t// (to-be-previous) values don't get unnecessarily avoided.\r\n\t\tthis.grid.write(coord, Lang.CharSeqPair.NULL);\r\n\r\n\t\tlet avoid = this.grid\r\n\t\t\t.getAllAltDestsThan(coord)\r\n\t\t\t.map((tile) => tile.seq)\r\n\t\t\t.freeze();\r\n\t\t// ^ Note: An array of CharSeq from unique Tiles. It is okay\r\n\t\t// for those tiles to include `coord`\r\n\t\tif (doCheckEmptyTiles) {\r\n\t\t\tconst nullSeq = Lang.CharSeqPair.NULL.seq;\r\n\t\t\tavoid = avoid.filter((seq) => seq !== nullSeq).freeze();\r\n\t\t}\r\n\t\treturn this.lang.getNonConflictingChar(avoid);\r\n\t}\r\n\r\n\t/**\r\n\t * @returns\r\n\t * A descriptor of changes to make to tiles regarding health spawning.\r\n\t *\r\n\t * Note that this will seem to have a one-movement-event delay in\r\n\t * specifying changes to be made because `this.currentFreeHealth`\r\n\t * does not update until after the movement request has been\r\n\t * executed.\r\n\t */\r\n\tprivate dryRunSpawnHealth(changes: Record): Record {\r\n\t\tlet healthToSpawn = this.health.K.avg - this.health.currentAmount;\r\n\t\tif (healthToSpawn <= 0) {\r\n\t\t\treturn changes;\r\n\t\t}\r\n\t\twhile (healthToSpawn > 0) {\r\n\t\t\tlet tile: Tile;\r\n\t\t\tdo {\r\n\t\t\t\ttile = this.grid.tileAt(this.grid.getRandomCoord());\r\n\t\t\t} while (\r\n\t\t\t\ttile.occId !== Player.Id.NULL\r\n\t\t\t\t// TODO.design add other checks to improve distribution and reduce\r\n\t\t\t\t// crowding of freeHealth. Make sure it is sensitive to\r\n\t\t\t\t// `this.averageFreeHealthPerTile`.\r\n\t\t\t);\r\n\t\t\tconst healthToAdd = Game.K.AVERAGE_HEALTH_TO_SPAWN_ON_TILE;\r\n\t\t\tif ((Math.random() < Game.K._HEALTH_UPDATE_CHANCE)) {\r\n\t\t\t\tlet otherDesc = changes[tile.coord];\r\n\t\t\t\tif (otherDesc !== undefined) {\r\n\t\t\t\t\t// @ts-expect-error : RO=\r\n\t\t\t\t\totherDesc.health = (otherDesc.health ?? 0) + healthToAdd;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tchanges[tile.coord] = {\r\n\t\t\t\t\t\thealth: tile.health + healthToAdd,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\thealthToSpawn -= healthToAdd;\r\n\t\t}\r\n\t\treturn changes;\r\n\t}\r\n\r\n\r\n\t/** @override */\r\n\tpublic processMoveRequest(req: StateChange.Req, socket?: any): void {\r\n\t\tconst initiator = this.players[req.initiator]!;\r\n\t\tif (req.lastRejectId !== initiator.reqBuffer.lastRejectId) {\r\n\t\t\treturn; //⚡\r\n\t\t}\r\n\t\tconst reqDest = this.grid.tileAt(req.moveDest);\r\n\t\tif ( this.status !== Game.Status.PLAYING\r\n\t\t || reqDest.occId !== Player.Id.NULL\r\n\t\t) {\r\n\t\t\tthis.commitStateChange({\r\n\t\t\t\trejectId: initiator.reqBuffer.getNextRejectId(),\r\n\t\t\t\tinitiator: req.initiator,\r\n\t\t\t}, socket);\r\n\t\t\treturn; //⚡\r\n\t\t}\r\n\t\tconst moveIsBoost = (req.moveType === Player.MoveType.BOOST);\r\n\t\tconst newPlayerHealthValue\r\n\t\t\t= initiator.health\r\n\t\t\t+ (reqDest.health * (initiator.isDowned ? Game.K.HEALTH_EFFECT_FOR_DOWNED_PLAYER : 1.0))\r\n\t\t\t- (moveIsBoost ? this.health.K.costOfBoost(reqDest) : 0);\r\n\t\tif (moveIsBoost && newPlayerHealthValue < 0) {\r\n\t\t\t// Reject a boost-type movement request if it would make\r\n\t\t\t// the player become downed (or if they are already downed):\r\n\t\t\tthis.commitStateChange({\r\n\t\t\t\trejectId: initiator.reqBuffer.getNextRejectId(),\r\n\t\t\t\tinitiator: req.initiator,\r\n\t\t\t}, socket);\r\n\t\t\treturn; //⚡\r\n\t\t}\r\n\r\n\t\t// Update stats records:\r\n\t\tconst scoreInfo = this.scoreInfo.entries[initiator.playerId]!;\r\n\t\tscoreInfo.totalHealthPickedUp += reqDest.health;\r\n\t\tscoreInfo.moveCounts[req.moveType] += 1;\r\n\r\n\t\t// Set response fields according to spec in `PlayerMovementEvent`:\r\n\t\tthis.commitStateChange({\r\n\t\t\tinitiator: req.initiator,\r\n\t\t\tmoveType: req.moveType,\r\n\t\t\tplayers: {\r\n\t\t\t\t[initiator.playerId]: {\r\n\t\t\t\t\thealth: newPlayerHealthValue,\r\n\t\t\t\t\tcoord: reqDest.coord,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ttiles: this.dryRunSpawnHealth({\r\n\t\t\t\t[req.moveDest]: {\r\n\t\t\t\t\thealth: 0,\r\n\t\t\t\t\t...this.dryRunShuffleLangCspAt(reqDest.coord),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t}, socket);\r\n\t}\r\n\r\n\t/** @override */\r\n\tprotected commitTileMods(\r\n\t\tcoord: Coord, changes: Tile.Changes,\r\n\t\tdoCheckOperatorSeqBuffer: boolean = true,\r\n\t): void {\r\n\t\t// JsUtils.deepFreeze(changes); // <- already done by caller.\r\n\t\tconst tile = this.grid.tileAt(coord);\r\n\t\tif (changes.health !== undefined) {\r\n\t\t\tthis.health.add(changes.health - tile.health);\r\n\t\t\tif (changes.health <= 0) {\r\n\t\t\t\tthis.health.tiles.delete(coord);\r\n\t\t\t} else {\r\n\t\t\t\tthis.health.tiles.set(coord, tile);\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper.commitTileMods(coord, changes, doCheckOperatorSeqBuffer);\r\n\t}\r\n\r\n\tpublic abstract setTimeout(callback: Function, millis: number, ...args: any[]): number;\r\n\tpublic abstract cancelTimeout(handle: number): void;\r\n}\r\nexport namespace GameManager {\r\n\t/**\r\n\t * If cleaning can be appropriately performed, this function will\r\n\t * do so. If not, it will indicate invalidities in its return value.\r\n\t */\r\n\texport function CHECK_VALID_CTOR_ARGS(\r\n\t\targs: TU.NoRo,\r\n\t): string[] {\r\n\t\t//#region\r\n\t\tconst bad: string[] = [];\r\n\t\ttype Keys = keyof Game.CtorArgs.UnFin;\r\n\t\tconst requiredFields: {[K in Keys]: any} = Object.freeze({\r\n\t\t\tcoordSys: 0, gridDimensions: 0, averageHealthPerTile: 0,\r\n\t\t\tlangId: 0, langWeightExaggeration: 0, players: 0,\r\n\t\t});\r\n\t\tconst missingFields: Keys[] = [];\r\n\t\tfor (const fieldName in requiredFields) {\r\n\t\t\tconst field = args[fieldName as Keys];\r\n\t\t\tif (field === undefined || field === null) {\r\n\t\t\t\tmissingFields.push(fieldName as Keys);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (missingFields.length) {\r\n\t\t\tbad.push(\"Missing the following arguments: \" + missingFields);\r\n\t\t}\r\n\r\n\t\tconst langDesc = Lang.GET_FRONTEND_DESC_BY_ID(args.langId);\r\n\t\tconst gridClass = Grid._Constructors[args.coordSys];\r\n\t\tif (langDesc === undefined) {\r\n\t\t\tbad.push(`No language with the ID \\`${args.langId}\\` exists.`);\r\n\t\t} else if (gridClass === undefined) {\r\n\t\t\tbad.push(`No grid with the system ID \\`${args.coordSys}\\` exists.`);\r\n\t\t} else {\r\n\t\t\tif (langDesc.isolatedMinOpts < gridClass.ambiguityThreshold) {\r\n\t\t\t\tbad.push(\"The provided language does not have enough sequences\"\r\n\t\t\t\t+\"\\nto ensure that a shuffling operation will always succeed when\"\r\n\t\t\t\t+\"\\npaired with the provided grid system.\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (parseInt(args.langWeightExaggeration as any) === NaN) {\r\n\t\t\tbad.push(`Language Weight Exaggeration expected a number, but`\r\n\t\t\t+ `\\`${args.langWeightExaggeration}\\` is not a number.`);\r\n\t\t} else {\r\n\t\t\targs.langWeightExaggeration = Math.max(0, parseFloat(\r\n\t\t\t\targs.langWeightExaggeration as any\r\n\t\t\t));\r\n\t\t}\r\n\t\t// TODO.impl check all the rest of the things.\r\n\t\t// if (!(Player.Username.REGEXP.test(desc.username))) {\r\n\t\t// throw new RangeError(`Username \\\"${desc.username}\\\"`\r\n\t\t// + ` does not match the required regular expression,`\r\n\t\t// + ` \\\"${Player.Username.REGEXP.source}\\\".`\r\n\t\t// );\r\n\t\t// }\r\n\t\treturn bad;\r\n\t\t//#endregion\r\n\t}\r\n}\r\nObject.freeze(GameManager);\r\nObject.freeze(GameManager.prototype);","import { Grid } from \"floor/Grid\";\r\nimport { WrappedEuclid2 } from \"floor/impl/Euclid2/System\";\r\nimport { Beehive } from \"floor/impl/Beehive/System\";\r\n\r\nimport { RobotPlayer } from \"game/player/RobotPlayer\";\r\nimport { Chaser } from \"game/player/robots/Chaser\";\r\n\r\nexport default (): void => {{\r\n\t// Non-Visible Grid Implementation Registry:\r\n\tObject.freeze(Object.assign(Grid._Constructors, {\r\n\t\t[\"W_EUCLID2\"]: WrappedEuclid2.Grid,\r\n\t\t[\"BEEHIVE\"]: Beehive.Grid,\r\n\t}));\r\n\tObject.freeze(Grid);\r\n}{\r\n\tconst Robot = RobotPlayer;\r\n\tObject.freeze(Object.assign(Robot._Constructors, {\r\n\t\t[\"CHASER\"]: Chaser,\r\n\t}));\r\n\tObject.freeze(Robot);\r\n}};","import type WebSocket from \"ws\";\r\n\r\nimport { JsUtils } from \"defs/JsUtils\";\r\nimport { SOCKET_ID, GroupEv, GameEv } from \"defs/OnlineDefs\";\r\nimport type { Game } from \"game/Game\";\r\nimport type { Coord } from \"floor/Tile\";\r\nimport type { StateChange } from \"game/StateChange\";\r\nimport { Player } from \"game/player/Player\";\r\nimport { Grid } from \"floor/Grid\";\r\n\r\nimport { GameManager } from \"game/gameparts/GameManager\";\r\nimport { RobotPlayer } from \"base/game/player/RobotPlayer\";\r\n\r\n/** */\r\nfunction gameOnSocketMessage(this: ServerGame, ev: WebSocket.MessageEvent): void {\r\n\tconst [evName, ...args] = JSON.parse(ev.data as string) as [string, ...any[]];\r\n\tconst socket = ev.target;\r\n\tswitch (evName) {\r\n\t\tcase GameEv.IN_GAME: this.processMoveRequest(args[0], socket); break;\r\n\t\tcase GameEv.PAUSE: this.statusBecomePaused(); break;\r\n\t\tcase GameEv.UNPAUSE: this.statusBecomePlaying(); break;\r\n\t\tcase GameEv.RETURN_TO_LOBBY:\r\n\t\t\tif (socket === this.groupHostSocket) {\r\n\t\t\t\tthis.statusBecomeOver();\r\n\t\t\t\tconst data = JSON.stringify([GameEv.RETURN_TO_LOBBY]);\r\n\t\t\t\tthis.sockets.forEach((s) => { if (s !== socket) s.send(data); });\r\n\t\t\t\tthis._terminate();\r\n\t\t\t} else {\r\n\t\t\t\tconst data = JSON.stringify([GameEv.RETURN_TO_LOBBY, SOCKET_ID(socket)]);\r\n\t\t\t\tthis.sockets.forEach((s) => { if (s !== socket) s.send(data); });\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tdefault: break;\r\n\t}\r\n};\r\n\r\n/**\r\n * Handles game-related events and attaches listeners to each client\r\n * socket.\r\n * @final\r\n */\r\nexport class ServerGame extends GameManager {\r\n\r\n\treadonly #deleteExternalRefs: () => void;\r\n\treadonly #wsMessageCb: (ev: WebSocket.MessageEvent) => void;\r\n\r\n\tpublic readonly sockets: Set;\r\n\tprotected readonly groupHostSocket: WebSocket;\r\n\r\n\t/** @override */\r\n\tpublic get currentOperator(): never {\r\n\t\tthrow new Error(\"never\");\r\n\t}\r\n\r\n\t/** */\r\n\tpublic constructor(args: Readonly<{\r\n\t\tsockets: IterableIterator,\r\n\t\tgroupHostSocket: WebSocket,\r\n\t\tdeleteExternalRefs: () => void,\r\n\t\tgameDesc: Game.CtorArgs.UnFin,\r\n\t}>) {\r\n\t\tsuper({\r\n\t\t\timpl: {\r\n\t\t\t\tgridClassLookup: Grid.getImplementation,\r\n\t\t\t\tOperatorPlayer: undefined,\r\n\t\t\t\tRobotPlayer: (game, desc) => RobotPlayer.of(game as GameManager, desc),\r\n\t\t\t\tonGameBecomeOver: () => {},\r\n\t\t\t},\r\n\t\t\tdesc: (() => {\r\n\t\t\t\tPlayer.CtorArgs.finalize(args.gameDesc);\r\n\t\t\t\treturn args.gameDesc;\r\n\t\t\t})(),\r\n\t\t\toperatorIds: [],\r\n\t\t});\r\n\t\tthis.sockets = new Set(args.sockets); // shallow copy\r\n\t\tthis.groupHostSocket = args.groupHostSocket;\r\n\t\tthis.#deleteExternalRefs = args.deleteExternalRefs;\r\n\t\tJsUtils.instNoEnum (this as ServerGame, \"operators\");\r\n\t\tJsUtils.propNoWrite(this as ServerGame, \"groupHostSocket\", \"sockets\");\r\n\t\tthis.#wsMessageCb = gameOnSocketMessage.bind(this as ServerGame);\r\n\t\tObject.seal(this); //🧊\r\n\r\n\t\tthis.sockets.forEach((s) => {\r\n\t\t\ts.addEventListener(\"message\", this.#wsMessageCb);\r\n\t\t\ts.addEventListener(\"close\", () => {\r\n\t\t\t\tif (this.sockets.size === 1) {\r\n\t\t\t\t\tthis._terminate();\r\n\t\t\t\t}\r\n\t\t\t}, { once: true });\r\n\t\t});\r\n\t\tthis._greetGameSockets(args.gameDesc);\r\n\t}\r\n\r\n\t/** Helper for the constructor */\r\n\tprivate _greetGameSockets(gameDesc: Game.CtorArgs): void {\r\n\t\t// The below cast is safe because GamepartBase reassigns\r\n\t\t// `gameDesc.playerDescs` the result of `Player.finalize`.\r\n\t\tconst humans = (\r\n\t\t\t(gameDesc.players).filter((player) => player.familyId === \"HUMAN\") as Player._CtorArgs[\"HUMAN\"][]\r\n\t\t).freeze();\r\n\t\t// Pass on Game constructor arguments to each client:\r\n\t\tPromise.all(Array.from(this.sockets, (s) =>\r\n\t\t\tnew Promise((resolve) => {\r\n\t\t\t\t// TODO.impl timeouts to handle edge-cases of users leaving. Also in reset().\r\n\t\t\t\ts.addEventListener(\"message\", (ev) => {\r\n\t\t\t\t\tif (JSON.parse(ev.data)[0] === GameEv.RESET) {\r\n\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, { once: true });\r\n\t\t\t})\r\n\t\t)).then(() =>\r\n\t\t\tthis.reset() //👂 \"reset time!\"\r\n\t\t);\r\n\t\tthis.sockets.forEach((s) => {\r\n\t\t\tconst operatorIds = humans\r\n\t\t\t\t.filter((desc) => desc.socket === s)\r\n\t\t\t\t.map((desc) => desc.playerId).freeze();\r\n\t\t\tconst data = JSON.stringify([GroupEv.CREATE_GAME, gameDesc, operatorIds]);\r\n\t\t\ts.send(data); //📢 \"get ready for reset\"\r\n\t\t});\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic async reset(): Promise {\r\n\t\t// Be ready for clients to indicate readiness to unpause.\r\n\t\tPromise.all(Array.from(this.sockets, (s) =>\r\n\t\t\tnew Promise((resolve) => {\r\n\t\t\t\ts.addEventListener(\"message\", (ev) => {\r\n\t\t\t\t\tif (JSON.parse(ev.data)[0] === GameEv.UNPAUSE) { // <- clients send this upon receiving resetSer\r\n\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, { once: true });\r\n\t\t\t})\r\n\t\t)).then(() => {\r\n\t\t\tthis.statusBecomePlaying(); //👂 \"play time!\"\r\n\t\t});\r\n\r\n\t\tconst resetSer = await super.reset();\r\n\t\tconst data = JSON.stringify([GameEv.RESET, resetSer]);\r\n\t\tthis.sockets.forEach((s) => s.send(data)); //📢 \"get ready for playing!\"\r\n\t\treturn resetSer;\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic setCurrentOperator(nextOperatorIndex: number): void {\r\n\t\t// no-op\r\n\t}\r\n\r\n\r\n\t/** @override */\r\n\tpublic setTimeout(callback: () => void, millis: number, ...args: any[]): number {\r\n\t\treturn setTimeout(callback, millis, args).unref() as unknown as number;\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic cancelTimeout(handle: number): void {\r\n\t\tclearTimeout(handle as unknown as NodeJS.Timer);\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic statusBecomePlaying(): void {\r\n\t\tsuper.statusBecomePlaying();\r\n\t\tconst data = JSON.stringify([GameEv.UNPAUSE]);\r\n\t\tthis.sockets.forEach((s) => s.send(data));\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic statusBecomePaused(): void {\r\n\t\tsuper.statusBecomePaused();\r\n\t\tconst data = JSON.stringify([GameEv.PAUSE]);\r\n\t\tthis.sockets.forEach((s) => s.send(data));\r\n\t}\r\n\r\n\t/** @override */\r\n\tpublic commitStateChange(desc: StateChange.Res, socket?: any): void {\r\n\t\tsuper.commitStateChange(desc);\r\n\r\n\t\tif (desc.rejectId) {\r\n\t\t\t// The request was rejected- Notify the requester.\r\n\t\t\tconst data = JSON.stringify([GameEv.IN_GAME, desc]);\r\n\t\t\tsocket?.send(data);\r\n\t\t} else {\r\n\t\t\tconst data = JSON.stringify([GameEv.IN_GAME, desc]);\r\n\t\t\tthis.sockets.forEach((s) => s.send(data));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _terminate(): void {\r\n\t\tthis.sockets.forEach((s) => {\r\n\t\t\ts.removeEventListener(\"message\", this.#wsMessageCb);\r\n\t\t});\r\n\t\tthis.#deleteExternalRefs();\r\n\t}\r\n}\r\nJsUtils.protoNoEnum(ServerGame,\r\n\t\"_greetGameSockets\",\r\n\t\"setCurrentOperator\", \"_terminate\",\r\n);\r\nObject.freeze(ServerGame);\r\nObject.freeze(ServerGame.prototype);","import type WebSocket from \"ws\";\r\nimport { JsUtils } from \"defs/JsUtils\";\r\nimport { SOCKET_ID, JoinerEv, GroupEv } from \"defs/OnlineDefs\";\r\n\r\nimport type { Game } from \"game/Game\";\r\nimport type { Coord } from \"floor/Tile\";\r\nimport type { Player } from \"game/player/Player\";\r\nimport { GameManager } from \"game/gameparts/GameManager\";\r\nimport { ServerGame } from \"./ServerGame\";\r\n\r\nimport { Group as _Group } from \"defs/OnlineDefs\";\r\n\r\n/**\r\n * Manages communication between the server, and clients who play in\r\n * the same game together.\r\n */\r\nexport class Group extends _Group {\r\n\r\n\tpublic readonly name: _Group.Name;\r\n\tpublic readonly passphrase: _Group.Passphrase;\r\n\r\n\t#currentGame: ServerGame | undefined;\r\n\tpublic get isCurrentlyPlayingAGame(): boolean {\r\n\t\treturn this.#currentGame !== undefined;\r\n\t}\r\n\r\n\tdeclare private readonly wssBroadcast: (evName: string, ...data: any[]) => void;\r\n\tprivate readonly sockets = new Map();\r\n\tprivate groupHostSocket: WebSocket;\r\n\r\n\treadonly #initialTtlTimeout: NodeJS.Timeout;\r\n\treadonly #deleteExternalRefs: () => void;\r\n\treadonly #wsMessageCb: (ev: WebSocket.MessageEvent) => void;\r\n\treadonly #wsLeaveCb: (ev: WebSocket.CloseEvent) => void;\r\n\r\n\t/** */\r\n\tpublic constructor(args: Readonly<{\r\n\t\twssBroadcast: (evName: string, ...data: any[]) => void,\r\n\t\tname: _Group.Name,\r\n\t\tpassphrase: _Group.Passphrase,\r\n\t\tdeleteExternalRefs: () => void,\r\n\t}>) {\r\n\t\tsuper();\r\n\t\tObject.defineProperty(this, \"wssBroadcast\", { value: args.wssBroadcast });\r\n\t\tthis.name = args.name;\r\n\t\tthis.passphrase = args.passphrase;\r\n\t\tJsUtils.propNoWrite(this as Group, \"name\", \"passphrase\");\r\n\t\tthis.#currentGame = undefined;\r\n\r\n\t\tthis.#deleteExternalRefs = args.deleteExternalRefs;\r\n\t\tthis.#initialTtlTimeout = setTimeout(() => {\r\n\t\t\tif (this.sockets.size === 0) {\r\n\t\t\t\tthis.terminate();\r\n\t\t\t}\r\n\t\t}, (Group.DEFAULT_TTL * 1000)).unref();\r\n\r\n\t\tthis.#wsMessageCb = (ev: WebSocket.MessageEvent): void => {\r\n\t\t\tconst [evName, ...args] = JSON.parse(ev.data as string) as [string, ...any[]];\r\n\t\t\tswitch (evName) {\r\n\t\t\t\tcase GroupEv.UserInfo.NAME: this._wsOnUserInfoChange(ev.target, args[0]); break;\r\n\t\t\t\tcase GroupEv.CREATE_GAME: if (ev.target === this.groupHostSocket) this._wsOnHostCreateGame(args[0]); break;\r\n\t\t\t\tdefault: break;\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.#wsLeaveCb = (ev: WebSocket.CloseEvent): void => {\r\n\t\t\tif (ev.target === this.groupHostSocket || this.sockets.size === 1) {\r\n\t\t\t\t// If the host disconnects, end the session.\r\n\t\t\t\tthis.terminate(); // TODO.design\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.sockets.delete(ev.target);\r\n\t\t\tconst data = JSON.stringify([GroupEv.UserInfo.NAME, {\r\n\t\t\t\t[SOCKET_ID(ev.target)]: null,\r\n\t\t\t}]);\r\n\t\t\tthis.sockets.forEach((u,s) => s.send(data));\r\n\t\t};\r\n\t}\r\n\r\n\t/** Let someone into this group */\r\n\tpublic admitSocket(ws: WebSocket, userInfo: Player.UserInfo): void {\r\n\t\tif (this.sockets.has(ws)) {\r\n\t\t\treturn; //⚡\r\n\t\t}\r\n\t\tconsole.info(`socket connect (group): ${SOCKET_ID(ws)}`);\r\n\t\tif (this.#currentGame) {\r\n\t\t\t// no-op\r\n\t\t}\r\n\t\t{\r\n\t\t\ttype Res = GroupEv.UserInfo.Res;\r\n\t\t\tconst EVENT_NAME = GroupEv.UserInfo.NAME;\r\n\t\t\t{\r\n\t\t\t\t// Notify all other clients in this group of the new player:\r\n\t\t\t\t// NOTE: broadcast modifier not used since socket is not yet in this.sockets.\r\n\t\t\t\tconst data = JSON.stringify([EVENT_NAME, {[SOCKET_ID(ws)]: userInfo}]);\r\n\t\t\t\tthis.sockets.forEach((u,s) => s.send(data));\r\n\t\t\t}\r\n\t\t\t// Notify the new player of all other players:\r\n\t\t\tconst res: Res = {};\r\n\t\t\tthis.sockets.forEach((u,s) => {\r\n\t\t\t\tres[SOCKET_ID(s)] = u;\r\n\t\t\t});\r\n\t\t\tws.send(JSON.stringify([EVENT_NAME, res]));\r\n\t\t}\r\n\r\n\t\t/** The first socket becomes the session host. */\r\n\t\tif (this.sockets.size === 0) {\r\n\t\t\tclearTimeout(this.#initialTtlTimeout);\r\n\t\t\t// @ts-expect-error : RO=\r\n\t\t\tthis.#initialTtlTimeout = undefined!;\r\n\t\t\tthis.groupHostSocket = ws;\r\n\t\t\tthis.wssBroadcast(JoinerEv.Exist.NAME, {\r\n\t\t\t\t[this.name]: JoinerEv.Exist.Status.IN_LOBBY,\r\n\t\t\t});\r\n\t\t}\r\n\t\tws.addEventListener(\"close\", this.#wsLeaveCb);\r\n\t\tws.addEventListener(\"message\", this.#wsMessageCb);\r\n\t\tthis.sockets.set(ws, userInfo);\r\n\t}\r\n\r\n\t/** Kick someone from this group. */\r\n\tpublic kickSocket(ws: WebSocket): boolean {\r\n\t\tif (this.sockets.delete(ws)) {\r\n\t\t\tws.removeEventListener(\"close\", this.#wsLeaveCb);\r\n\t\t\tws.removeEventListener(\"message\", this.#wsMessageCb);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/** */\r\n\tprivate _wsOnUserInfoChange(ws: WebSocket, req: GroupEv.UserInfo.Req): void {\r\n\t\tif (typeof req.username !== \"string\"\r\n\t\t || typeof req.teamId !== \"number\"\r\n\t\t || typeof req.avatar !== \"string\") {\r\n\t\t\t// User arguments did not match expected format.\r\n\t\t\tconsole.log(`bad format: username: \\`${req.username}\\``\r\n\t\t\t+ `, teamId: \\`${req.teamId}\\`, avatar: \\`${req.avatar}\\`.`);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.sockets.set(ws, req);\r\n\t\tconst data = JSON.stringify([GroupEv.UserInfo.NAME, {\r\n\t\t\t[SOCKET_ID(ws)]: req,\r\n\t\t}]);\r\n\t\tthis.sockets.forEach((u,s) => s.send(data));\r\n\t}\r\n\r\n\t/** */\r\n\tprivate _wsOnHostCreateGame(\r\n\t\tctorArgs: Game.CtorArgs.UnFin\r\n\t): void {\r\n\t\tconst failureReasons = this._createGameInstance(ctorArgs);\r\n\t\tif (failureReasons.length) {\r\n\t\t\t// TODO.impl handle failure reasons.\r\n\t\t\tconsole.info(failureReasons);\r\n\t\t} else {\r\n\t\t\t// Broadcast to the joiner namespace of this group's change in state:\r\n\t\t\tthis.wssBroadcast(JoinerEv.Exist.NAME, {\r\n\t\t\t\t[this.name]: JoinerEv.Exist.Status.IN_GAME,\r\n\t\t\t});\r\n\t\t\tconsole.info(`group ${this.name} new game`);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @param ctorArgs\r\n\t * The `playerDescs` field only contains descriptors for artificial\r\n\t * players. Those for operated players are included by this method.\r\n\t *\r\n\t * @returns\r\n\t * An array of any failure reasons. Empty if none.\r\n\t */\r\n\tprivate _createGameInstance(\r\n\t\tctorArgs: Game.CtorArgs.UnFin,\r\n\t): readonly string[] {\r\n\t\tconst failureReasons = [];\r\n\t\tif (this.isCurrentlyPlayingAGame) {\r\n\t\t\tfailureReasons.push(\"a game is already in session for this group\");\r\n\t\t\treturn failureReasons;\r\n\t\t}\r\n\t\tfailureReasons.push(...GameManager.CHECK_VALID_CTOR_ARGS(ctorArgs));\r\n\t\tif (failureReasons.length) {\r\n\t\t\treturn failureReasons;\r\n\t\t}\r\n\t\t// Everything needed to create a game exists. Let's do it!\r\n\t\t// @ts-expect-error : RO=\r\n\t\tctorArgs.players = [\r\n\t\t\t...ctorArgs.players,\r\n\t\t\t...Array.from(this.sockets.keys(), (ws) => {\r\n\t\t\t\tconst userInfo = this.sockets.get(ws)!;\r\n\t\t\t\treturn Object.freeze({\r\n\t\t\t\t\tsocket: ws,\r\n\t\t\t\t\tfamilyId: \"HUMAN\",\r\n\t\t\t\t\tusername: userInfo.username,\r\n\t\t\t\t\tteamId: userInfo.teamId,\r\n\t\t\t\t\tavatar: userInfo.avatar,\r\n\t\t\t\t\tfamilyArgs: {},\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t].freeze();\r\n\t\tthis.#currentGame = new ServerGame({\r\n\t\t\tsockets: this.sockets.keys(),\r\n\t\t\tgroupHostSocket: this.groupHostSocket,\r\n\t\t\tdeleteExternalRefs: () => { this.#currentGame = undefined; },\r\n\t\t\tgameDesc: ctorArgs,\r\n\t\t});\r\n\t\treturn [];\r\n\t}\r\n\r\n\t/**\r\n\t * - Deletes its own reference to its game (if it exists).\r\n\t * - Disconnects each client.\r\n\t * - Removes all listeners from this namespace.\r\n\t * - Deletes the enclosed Socket.IO namespace from the Server.\r\n\t * - Deletes the only external reference so this can be garbage collected.\r\n\t */\r\n\tprotected terminate(): void {\r\n\t\tfor (const ws of this.sockets.keys()) {\r\n\t\t\tws.removeEventListener(\"close\", this.#wsLeaveCb);\r\n\t\t\tws.removeEventListener(\"message\", this.#wsMessageCb);\r\n\t\t}\r\n\t\tif (this.#currentGame !== undefined) {\r\n\t\t\t// TODO.design need to terminate game?\r\n\t\t\tthis.#currentGame = undefined;\r\n\t\t}\r\n\t\tthis.#deleteExternalRefs();\r\n\r\n\t\tthis.wssBroadcast(JoinerEv.Exist.NAME, {\r\n\t\t\t[this.name]: JoinerEv.Exist.Status.DELETE,\r\n\t\t});\r\n\t\tconsole.info(`terminated group: \\`${this.name}\\``);\r\n\t}\r\n}\r\nJsUtils.protoNoEnum(Group, \"_wsOnUserInfoChange\", \"_wsOnHostCreateGame\");\r\nObject.freeze(Group);\r\nObject.freeze(Group.prototype);","import type WebSocket from \"ws\";\r\nimport { GroupEv, JoinerEv } from \"defs/OnlineDefs\";\r\nimport { Group } from \"./Group\";\r\nimport { wss } from \"./index\";\r\n\r\n/** */\r\nexport const groups = new Map();\r\nfunction eraseGroup(groupName: string) { groups.delete(groupName); }\r\n\r\n/** */\r\nfunction _isReqValid(desc: JoinerEv.Create.Req): boolean {\r\n\treturn (desc.groupName !== undefined)\r\n\t&& desc.groupName.length <= Group.Name.MaxLength\r\n\t&& Group.Name.REGEXP.test(desc.groupName)\r\n\t&& desc.passphrase.length <= Group.Passphrase.MaxLength\r\n\t&& Group.Passphrase.REGEXP.test(desc.passphrase);\r\n}\r\n/** */\r\nfunction wssBroadcast(evName: string, _data: any): void {\r\n\tconst data = JSON.stringify([evName, _data]);\r\n\twss.clients.forEach((s) => s.send(data));\r\n}\r\n/** */\r\nexport function wsMessageCb(ev: WebSocket.MessageEvent): void {\r\n\tconst [evName, ...args] = JSON.parse(ev.data as string) as [string, ...any[]];\r\n\tswitch (evName) {\r\n\t/** */\r\n\tcase JoinerEv.Create.NAME: {\r\n\t\tfunction _res(val: JoinerEv.Create.Res): void {\r\n\t\t\tev.target.send(JSON.stringify([JoinerEv.Create.NAME, val]));\r\n\t\t};\r\n\t\tconst desc = args[0] as JoinerEv.Create.Req;\r\n\t\tif (!_isReqValid(desc) || groups.has(desc.groupName)) {\r\n\t\t\t_res(false); return; //⚡\r\n\t\t}\r\n\t\tgroups.set(\r\n\t\t\tdesc.groupName,\r\n\t\t\tnew Group(Object.freeze({\r\n\t\t\t\twssBroadcast: wssBroadcast,\r\n\t\t\t\tname: desc.groupName,\r\n\t\t\t\tpassphrase: desc.passphrase,\r\n\t\t\t\tdeleteExternalRefs: eraseGroup.bind(null, desc.groupName),\r\n\t\t\t})),\r\n\t\t);\r\n\t\t// Note that existence of the new group is broadcasted only\r\n\t\t// once the creator of thr group has joined it.\r\n\t\t_res(true); break;\r\n\t}\r\n\t/** */\r\n\tcase JoinerEv.TryJoin.NAME: {\r\n\t\tfunction _res(val: JoinerEv.TryJoin.Res): void {\r\n\t\t\tev.target.send(JSON.stringify([JoinerEv.TryJoin.NAME, val]));\r\n\t\t}\r\n\t\tconst req = args[0] as JoinerEv.TryJoin.Req;\r\n\t\tconst group = groups.get(req.groupName);\r\n\t\tif (\r\n\t\t\tgroup === undefined\r\n\t\t\t|| req.passphrase !== group.passphrase\r\n\t\t) {\r\n\t\t\t_res(false); return; //⚡\r\n\t\t}\r\n\t\tconst userInfo = req.userInfo;\r\n\t\tif (userInfo === undefined || userInfo.teamId !== 0) {\r\n\t\t\tthrow new Error(`a socket attempted to connect to group`\r\n\t\t\t+` \\`${group.name}\\` without providing userInfo.`);\r\n\t\t}\r\n\t\t// NOTE: I could make a WeakMap from sockets to their groups,\r\n\t\t// but that would be another global state to manage. Checking\r\n\t\t// every group is kind of stupid, but it's simple and it works.\r\n\t\tfor (const group of groups.values()) {\r\n\t\t\tif (group.kickSocket(ev.target)) break;\r\n\t\t}\r\n\t\tgroup.admitSocket(ev.target, userInfo);\r\n\t\t_res(true); break;\r\n\t}\r\n\t/** */\r\n\tdefault: break;\r\n\t}\r\n}","import \"../base/defs/NodePlatformMods\";\r\n\r\n// Override stack trace to shorten file paths:\r\nprocess.on(\"uncaughtException\", function processOnUncaughtException(err) {\r\n\tconst ROOT = path.resolve(__dirname, \"../..\");\r\n\tconsole.error(\"\\n\\n\");\r\n\tif (err.stack !== undefined) {\r\n\t\terr.stack = err.stack.replace(new RegExp(ROOT.replace(/\\\\/g, \"\\\\\\\\\"), \"g\"), \":\")\r\n\t\t\t.split(\"\\n\").map(frame => {\r\n\t\t\t\tconst fn = frame.indexOf(\"(\");\r\n\t\t\t\treturn fn < 0 ? frame : frame.substring(0, fn) + \" \".repeat(Math.max(0, 35-fn)) + frame.substring(fn);\r\n\t\t\t}).join(\"\\n\");\r\n\t\tfs.writeSync(process.stderr.fd, err.stack);\r\n\t}\r\n\tconsole.error(\"\\n\\n\");\r\n\tprocess.exit(1);\r\n});\r\n\r\n// =========================================\r\nimport os from \"os\";\r\nimport fs from \"fs\";\r\nimport path from \"path\";\r\nimport http from \"http\";\r\nimport express from \"express\";\r\nimport expressStaticGzip from \"express-static-gzip\";\r\nimport WebSocket from \"ws\";\r\nimport type net from \"net\";\r\nimport { SET_SOCKET_ID, SOCKET_ID, JoinerEv } from \"defs/OnlineDefs\";\r\n\r\nconst app = express();\r\nconst server = http.createServer({}, app);\r\nexport const wss = new WebSocket.Server({\r\n\tserver: server,\r\n});\r\nimport { groups, wsMessageCb } from \"./joinerCb\";\r\n\r\n\r\n/** EXPRESS ROOT */\r\n// At runtime, __dirname resolves to \":/dist/server/\"\r\nconst CLIENT_ROOT = path.resolve(__dirname, \"../client\");\r\napp\r\n.disable(\"x-powered-by\")\r\n.use(\"/\", expressStaticGzip(CLIENT_ROOT, {\r\n\tenableBrotli: DEF.PRODUCTION, //🚩 This must match the value in the webpack config.\r\n\tserveStatic: {\r\n\t\tsetHeaders: (res, path, stat): void => {\r\n\t\t\tres.setHeader(\"X-Content-Type-Options\", \"nosniff\");\r\n\t\t\tconst mime = express.static.mime.lookup(path);\r\n\t\t\tif (mime === \"text/html\" /* xhtml? */) {\r\n\t\t\t\tres.setHeader(\"Cache-Control\", \"public, max-age=0\");\r\n\t\t\t}\r\n\t\t},\r\n\t\t// TODO.build enable this when lang term caching is configured for webpack.\r\n\t\t//immutable: DEF.PRODUCTION,\r\n\t\t//maxAge: 31536000000, // 1 year.\r\n\t},\r\n}));\r\n\r\n\r\n/** WSS ON_CONNECTION */\r\nwss.on(\"connection\", function onWsConnect(ws): void {\r\n\t// Upon connection, immediately send a list of existing groups:\r\n\tconst data = JSON.stringify([\r\n\t\tJoinerEv.Exist.NAME,\r\n\t\t(() => {\r\n\t\t\t// TODO.design current implementation may suffer when there are many many groups.\r\n\t\t\tconst build: TU.NoRo = {};\r\n\t\t\tfor (const [groupName, group] of groups) {\r\n\t\t\t\tbuild[groupName] = (group.isCurrentlyPlayingAGame)\r\n\t\t\t\t? JoinerEv.Exist.Status.IN_GAME\r\n\t\t\t\t: JoinerEv.Exist.Status.IN_LOBBY;\r\n\t\t\t}\r\n\t\t\treturn build;\r\n\t\t})(),\r\n\t]);\r\n\tSET_SOCKET_ID(ws, `${Date.now().toString()}_${(Math.random() * 100) % 100}`);\r\n\tconsole.info(`socket connect (server): ${SOCKET_ID(ws)}`);\r\n\tws.send(data);\r\n\tws.addEventListener(\"message\", wsMessageCb);\r\n});\r\n\r\n\r\n/** HTTP LISTEN */\r\nserver.listen({\r\n\tport: DEF.PRODUCTION ? 443 : 80, // TODO.impl there must be a smarter way to do this.\r\n\thost: \"0.0.0.0\",\r\n}, function onServerListening(): void {\r\n\tconst info = server.address();\r\n\tconsole.info(\r\n\t\t`\\n\\nServer mounted to: \\`${info.address}:${info.port}\\` using ${info.family}.\\n`\r\n\t\t+\"This host can be reached at any of the following addresses:\\n\"\r\n\t);\r\n\tchooseIPAddress().sort().forEach((address) => {\r\n\t\tconsole.info(/* ${SkServer.PROTOCOL} */`${address}:${info.port}`);\r\n\t\t// ^We can exclude the protocol since it will get defaulted by the client side.\r\n\t});\r\n\tconsole.info(\"\");\r\n});\r\n\r\n\r\n/**\r\n * @returns An array of non-internal IP addresses from any of the\r\n * local host's network interfaces.\r\n *\r\n * https://en.wikipedia.org/wiki/Private_network\r\n */\r\n// TODO: change to return a map from each of \"public\" and \"private\" to a list of addresses\r\nexport const chooseIPAddress = (): Array => {\r\n\treturn (Object.values(os.networkInterfaces()).flat() as os.NetworkInterfaceInfo[])\r\n\t.filter((info) => {\r\n\t\treturn !(info.internal); /* && info.family === \"IPv4\" */\r\n\t})\r\n\t.map((info) => {\r\n\t\tif (info.family === \"IPv6\") {\r\n\t\t\treturn `[${info.address}]`;\r\n\t\t} else {\r\n\t\t\treturn info.address;\r\n\t\t}\r\n\t});\r\n};"],"sourceRoot":""} \ No newline at end of file