@visulima/vis 3.0.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/LICENSE.md +0 -116
  3. package/README.md +3 -2
  4. package/dist/bin.js +1 -1
  5. package/dist/binx.js +1 -1
  6. package/dist/config/index.d.ts +24 -4
  7. package/dist/packem_chunks/CONFIG_FILES.js +6 -5
  8. package/dist/packem_chunks/catalog.js +32 -32
  9. package/dist/packem_chunks/cli-exec.js +1 -1
  10. package/dist/packem_chunks/cli-main.js +153 -152
  11. package/dist/packem_chunks/handler12.js +25 -10
  12. package/dist/packem_chunks/handler2.js +1 -1
  13. package/dist/packem_chunks/handler28.js +1 -1
  14. package/dist/packem_chunks/handler3.js +2 -2
  15. package/dist/packem_chunks/handler55.js +1 -1
  16. package/dist/packem_chunks/handler59.js +1 -1
  17. package/dist/packem_chunks/handler6.js +1 -1
  18. package/dist/packem_chunks/handler67.js +28 -25
  19. package/dist/packem_chunks/handler68.js +25 -153
  20. package/dist/packem_chunks/handler69.js +153 -10
  21. package/dist/packem_chunks/handler70.js +10 -22
  22. package/dist/packem_chunks/handler71.js +21 -22
  23. package/dist/packem_chunks/handler72.js +23 -322
  24. package/dist/packem_chunks/handler73.js +273 -659
  25. package/dist/packem_chunks/handler74.js +708 -48
  26. package/dist/packem_chunks/handler75.js +48 -27
  27. package/dist/packem_chunks/handler76.js +27 -3
  28. package/dist/packem_chunks/handler77.js +3 -189
  29. package/dist/packem_chunks/handler78.js +188 -39
  30. package/dist/packem_chunks/help-command.js +1 -1
  31. package/dist/packem_shared/{affected-selection-DIgAsQTu.js → affected-selection-BmUh3_Qp.js} +1 -1
  32. package/dist/packem_shared/{bin-CVfNImCA.js → bin-D-Es9mva.js} +1 -1
  33. package/dist/packem_shared/{index-5GrALmsb.js → index-BvYJA7e5.js} +1 -1
  34. package/dist/packem_shared/lockfile-DVFySxTS.js +1 -0
  35. package/dist/packem_shared/{package-version-CIhwFJn3.js → package-version-B_KfpWKC.js} +1 -1
  36. package/dist/packem_shared/{project-name-filter-sYH4Zvsm.js → project-name-filter-D6uEN2ot.js} +1 -1
  37. package/dist/packem_shared/vis-user-error-By2ZNeEA.js +31 -0
  38. package/index.d.ts +204 -204
  39. package/index.js +26 -26
  40. package/package.json +13 -13
  41. package/schemas/project.schema.json +2 -2
  42. package/schemas/vis-config.schema.json +8 -9
  43. package/skills/vis/SKILL.md +1 -1
  44. package/dist/packem_shared/lockfile-35RFsJDs.js +0 -1
  45. package/dist/packem_shared/vis-user-error-CgyYA29v.js +0 -30
@@ -1,40 +1,189 @@
1
- import{createRequire as vs}from"node:module";import{F as He,b as Yt,X as ca,J as Dr,q as la}from"../packem_shared/index.server-BAjDJSEu.js";import{v as Dt,a as Or,U as Et,z as ks,e as Ut}from"../packem_shared/index-DHD8wb6Z.js";import{g as As}from"../packem_shared/_commonjsHelpers-DTfxOvZk.js";import{fingerprint as Nt,scan as ha,scanFiles as xs,inspectRuleset as Cs,listRules as Hr,listRequiredValidators as Ns,scanGitHistory as js}from"@visulima/secret-scanner";import{au as $s,av as Yr,p as de}from"./cli-main.js";import{I as Is,W as Es}from"../packem_shared/getRandomSpinner-4ZEcbTYv-DCyIuj19.js";import{U as Ds}from"../packem_shared/writeFileSync-DJoHk3Ks-CgQ-VNNT.js";import{y as Fr}from"../packem_shared/isAccessibleSync-DYKTrrvc-CSnBISfV.js";import{p as Os}from"../packem_shared/readJsonSync-CbryXYxN-B2aSeDpC.js";let ws;const Ps=e=>(ws??=vs(import.meta.url))(e),zt=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Er=e=>{if(typeof zt<"u"&&zt.versions&&zt.versions.node){const[t,n]=zt.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return zt.getBuiltinModule(e)}return Ps(e)},{createRequire:Ts}=Er("node:module"),{pathToFileURL:da}=Er("node:url"),{execFileSync:Hs}=Er("node:child_process");let Fs;const Gs=e=>(Fs??=Ts(import.meta.url))(e),Bt=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ss=e=>{if(typeof Bt<"u"&&Bt.versions&&Bt.versions.node){const[t,n]=Bt.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return Bt.getBuiltinModule(e)}return Gs(e)},{styleText:zs}=Ss("node:util"),Bs={error:"✖",info:"ℹ",success:"✓",warning:"⚠"},Vs=()=>{const{env:e}=process;return!!e.CI||e.CONTINUOUS_INTEGRATION==="true"||"BUILD_NUMBER"in e||"RUN_ID"in e},Ms=/\u001B\[[\d;]*[a-z]/gi,Ls=e=>[...e.replaceAll(Ms,"")].length,Ks=e=>{const t=[];return e.bold&&t.push("bold"),e.dim&&t.push("dim"),e.italic&&t.push("italic"),e.underline&&t.push("underline"),e.strikethrough&&t.push("strikethrough"),e.color&&t.push(e.color),e.bgColor&&t.push(e.bgColor),t.length===0?n=>n:n=>zs(t,n)};let Ws=class{#i=0;#c;#e=!1;#o="";#a="";#m=0;#l=0;#t;#n;#h="";#s;#p;#r;#w;#d=0;#u;#P;constructor(t={},n){if(t.frames)this.#s=t.frames;else{const r=t.name??"dots",o=Es(r);if(!o)throw new Error(`Unknown spinner "${r}". Pass a custom \`frames\` set or use one of: ${Is().join(", ")}.`);this.#s=o}this.#p=t.verbose!==!1,this.#o=t.prefixText??"",this.#t=n,this.#r=t.stream??process.stderr,this.#w=n?!0:this.#r.isTTY&&!Vs(),this.#P={...Bs,...t.icons},typeof t.style=="function"?this.#u=t.style:t.style&&(this.#u=Ks(t.style))}get elapsedTime(){return this.#m===0?0:(this.#l||Date.now())-this.#m}get text(){return this.#a}set text(t){this.#a=t,this.#e&&this.#b()}get prefixText(){return this.#o}set prefixText(t){this.#o=t,this.#e&&this.#b()}get isRunning(){return this.#e}setInteractiveManager(t){this.#t=t}setMultiSpinner(t){this.#n=t}tick(){this.#e&&(this.#i=(this.#i+1)%this.#s.frames.length)}start(t,n){return this.#e?this:this.#p?(this.#e=!0,this.#m=Date.now(),this.#l=0,this.#i=0,this.#h="",t&&(this.#a=t),n?.prefixText&&(this.#o=n.prefixText),this.#n?(this.#n.renderAll(),this):(this.#t?(this.#t.hook(),this.#k(),this.#y()):(this.#A(),this.#y()),this)):this}stop(){if(this.#e){if(this.#f(),this.#e=!1,this.#l=Date.now(),this.#h="",this.#n){this.#n.renderAll();return}this.#t?(this.#t.erase("stdout"),this.#t.unhook(!1)):this.#v()}}stopAndPersist(t){if(!this.#e||(this.#f(),this.#e=!1,this.#l=Date.now(),!this.#p))return;const n=t?.prefixText??this.#o,r=t?.text??this.#a;let o=t?.symbol??"";n&&(o=o?`${n} ${o}`:n),r&&(o=o?`${o} ${r}`:r),this.#x(o)}succeed(t){this.#g("success",t)}failed(t){this.#g("error",t)}warn(t){this.#g("warning",t)}info(t){this.#g("info",t)}pause(){this.#f()}resume(){this.#e&&(this.#f(),this.#n||this.#y())}getFrameOutput(){if(!this.#e&&this.#h)return this.#h;const t=this.#s.frames[this.#i];let n=this.#u?this.#u(t):t;return this.#o&&(n=`${this.#o} ${n}`),this.#a&&(n=`${n} ${this.#a}`),n}#y(){this.#w&&(this.#c=setInterval(()=>{this.#e&&(this.#i=(this.#i+1)%this.#s.frames.length,this.#b())},this.#s.interval),this.#c.unref())}#f(){this.#c&&(clearInterval(this.#c),this.#c=void 0)}#b(){this.#n?this.#n.renderAll():this.#t?this.#k():this.#A()}#k(){this.#t&&this.#t.update("stdout",[this.getFrameOutput()])}#A(){const t=this.getFrameOutput();if(this.#v(),this.#r.isTTY){this.#r.write(t);const n=this.#r.columns||80;this.#d=Math.max(1,Math.ceil(Ls(t)/n))}else this.#r.write(`${t}
2
- `),this.#d=0}#v(){if(this.#d>0&&this.#r.isTTY){for(let t=1;t<this.#d;t+=1)this.#r.write("\x1B[1A\x1B[2K");this.#r.write("\r\x1B[K")}this.#d=0}#x(t){this.#h=t,this.#n?this.#n.renderAll():this.#t?(this.#t.update("stdout",[t]),this.#t.unhook(!1)):(this.#v(),this.#r.write(`${t}
3
- `))}#g(t,n){if(!this.#e||(this.#f(),this.#e=!1,this.#l=Date.now(),!this.#p))return;let r="";const o=this.#P[t];o&&(r=this.#u?this.#u(o):o),this.#o&&(r=`${this.#o} ${r}`),n&&(r=`${r} ${n}`),this.#x(r)}};const Js={one:{},two:{},three:{},four:{}},Rs={one:{},two:{},three:{}},qs={},Us=[],cr={methods:Js,model:Rs,compute:qs,hooks:Us},_s=e=>Object.prototype.toString.call(e)==="[object Array]",Qs={compute:function(e){const{world:t}=this,n=t.compute;return typeof e=="string"&&n.hasOwnProperty(e)?n[e](this):_s(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):typeof e=="function"?e(this):console.warn("no compute:",e),this}},Zs=function(e){return this.fullPointer.forEach((n,r)=>{const o=this.update([n]);e(o,r)}),this},Xs=function(e,t){const r=this.fullPointer.map((i,a)=>{const s=this.update([i]),u=e(s,a);return u===void 0?this.none():u});if(r.length===0)return t||this.update([]);if(r[0]!==void 0&&(typeof r[0]=="string"||typeof r[0]=="object"&&(r[0]===null||!r[0].isView)))return r;let o=[];return r.forEach(i=>{o=o.concat(i.fullPointer)}),this.toView(o)},Ys=function(e){let t=this.fullPointer;return t=t.filter((r,o)=>{const i=this.update([r]);return e(i,o)}),this.update(t)},eu=function(e){const n=this.fullPointer.find((r,o)=>{const i=this.update([r]);return e(i,o)});return this.update([n])},tu=function(e){return this.fullPointer.some((n,r)=>{const o=this.update([n]);return e(o,r)})},nu=function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)},ru={forEach:Zs,map:Xs,filter:Ys,find:eu,some:tu,random:nu},Fe={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){const t=this.match(".");return typeof e=="number"?t.eq(e):t},groups:function(e){if(e||e===0)return this.update(this._groups[e]||[]);const t={};return Object.keys(this._groups).forEach(n=>{t[n]=this.update(this._groups[n])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((n,r)=>[r])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){const e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((r,o)=>[o]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){const e=this.fullPointer.map(t=>[t[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;const t=this.fullPointer,n=e.fullPointer;return!t.length===n.length?!1:t.every((r,o)=>n[o]?r[0]===n[o][0]&&r[1]===n[o][1]&&r[2]===n[o][2]:!1)},wordCount:function(){return this.docs.reduce((e,t)=>(e+=t.filter(n=>n.text!=="").length,e),0)},isFull:function(){const e=this.pointer;if(!e)return!0;if(e.length===0||e[0][0]!==0)return!1;let t=0,n=0;return this.document.forEach(r=>t+=r.length),this.docs.forEach(r=>n+=r.length),t===n},getNth:function(e){return typeof e=="number"?this.eq(e):typeof e=="string"?this.if(e):this}};Fe.group=Fe.groups;Fe.fullSentence=Fe.fullSentences;Fe.sentence=Fe.fullSentences;Fe.lastTerm=Fe.lastTerms;Fe.firstTerm=Fe.firstTerms;const lr=Object.assign({},Fe,Qs,ru);lr.get=lr.eq;class ot{constructor(t,n,r={}){[["document",t],["world",cr],["_groups",r],["_cache",null],["viewType","View"]].forEach(i=>{Object.defineProperty(this,i[0],{value:i[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=cr.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){const{docs:t,ptrs:n,document:r}=this;return(n||t.map((i,a)=>[a])).map(i=>{let[a,s,u,c,l]=i;return s=s||0,u=u||(r[a]||[]).length,r[a]&&r[a][s]&&(c=c||r[a][s].id,r[a][u-1]&&(l=l||r[a][u-1].id)),[a,s,u,c,l]})}update(t){const n=new ot(this.document,t);if(this._cache&&t&&t.length>0){const r=[];t.forEach((o,i)=>{const[a,s,u]=o;o.length===1?r[i]=this._cache[a]:s===0&&this.document[a].length===u&&(r[i]=this._cache[a])}),r.length>0&&(n._cache=r)}return n.world=this.world,n}toView(t){return new ot(this.document,t||this.pointer)}fromText(t){const{methods:n}=this,r=n.one.tokenize.fromString(t,this.world),o=new ot(r);return o.world=this.world,o.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&o.compute("preTagger"),o.compute("unfreeze"),o}clone(){let t=this.document.slice(0);t=t.map(r=>r.map(o=>(o=Object.assign({},o),o.tags=new Set(o.tags),o)));const n=this.update(this.pointer);return n.document=t,n._cache=this._cache,n}}Object.assign(ot.prototype,lr);const ou="14.15.1",eo=function(e){return e&&typeof e=="object"&&!Array.isArray(e)},iu=function(e){return Object.prototype.toString.call(e)==="[object Array]"};function fa(e,t){if(eo(t))for(const n in t)eo(t[n])?(e[n]||Object.assign(e,{[n]:{}}),fa(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}function au(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n]);return e}const su=function(e,t){const n=e.two.models||{};Object.keys(t).forEach(r=>{t[r].pastTense&&(n.toPast&&(n.toPast.ex[r]=t[r].pastTense),n.fromPast&&(n.fromPast.ex[t[r].pastTense]=r)),t[r].presentTense&&(n.toPresent&&(n.toPresent.ex[r]=t[r].presentTense),n.fromPresent&&(n.fromPresent.ex[t[r].presentTense]=r)),t[r].gerund&&(n.toGerund&&(n.toGerund.ex[r]=t[r].gerund),n.fromGerund&&(n.fromGerund.ex[t[r].gerund]=r)),t[r].comparative&&(n.toComparative&&(n.toComparative.ex[r]=t[r].comparative),n.fromComparative&&(n.fromComparative.ex[t[r].comparative]=r)),t[r].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[r]=t[r].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[r].superlative]=r))})},pa=function(e,t,n,r){if(iu(e)){e.forEach(u=>pa(u,t,n,r));return}const{methods:o,model:i,compute:a,hooks:s}=t;e.methods&&au(o,e.methods),e.model&&fa(i,e.model),e.irregulars&&su(i,e.irregulars),e.compute&&Object.assign(a,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(u=>r[u]=e.lib[u]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t,r)},uu=function(e){const t=process.env?process.env:self.env||{};return t.DEBUG_TAGS=e==="tagger"||e===!0?!0:"",t.DEBUG_MATCH=e==="match"||e===!0?!0:"",t.DEBUG_CHUNKS=e==="chunker"||e===!0?!0:"",this},cu=e=>Object.prototype.toString.call(e)==="[object Object]",hr=function(e){return Object.prototype.toString.call(e)==="[object Array]"},lu=function(e){return e.map(t=>t.terms.map(n=>(hr(n.tags)&&(n.tags=new Set(n.tags)),n)))},hu=function(e){return e.map(t=>t.map(n=>({text:n,normal:n,pre:"",post:" ",tags:new Set})))},ga=function(e,t,n){const{methods:r}=n,o=new t([]);if(o.world=n,typeof e=="number"&&(e=String(e)),!e)return o;if(typeof e=="string"){const i=r.one.tokenize.fromString(e,n);return new t(i)}if(cu(e)&&e.isView)return new t(e.document,e.ptrs);if(hr(e)){if(hr(e[0])){const a=hu(e);return new t(a)}const i=lu(e);return new t(i)}return o},In=Object.assign({},cr),I=function(e,t){t&&I.addWords(t);const n=ga(e,ot,In);return e&&n.compute(In.hooks),n};Object.defineProperty(I,"_world",{value:In,writable:!0});I.tokenize=function(e,t){const{compute:n}=this._world;t&&I.addWords(t);const r=ga(e,ot,In);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r};I.plugin=function(e){return pa(e,this._world,ot,this),this};I.extend=I.plugin;I.world=function(){return this._world};I.model=function(){return this._world.model};I.methods=function(){return this._world.methods};I.hooks=function(){return this._world.hooks};I.verbose=uu;I.version=ou;const du=function(e){return e.map(n=>{const r=new Set;return n.forEach(o=>{o.normal!==""&&r.add(o.normal),o.switch&&r.add(`%${o.switch}%`),o.implicit&&r.add(o.implicit),o.machine&&r.add(o.machine),o.root&&r.add(o.root),o.alias&&o.alias.forEach(a=>r.add(a));const i=Array.from(o.tags);for(let a=0;a<i.length;a+=1)r.add("#"+i[a])}),r})},fu={one:{cacheDoc:du}},pu={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}},gu=function(e){Object.assign(e.prototype,pu)},mu={cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},yu={api:gu,compute:mu,methods:fu},bu={toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{n!==0&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,r=>r.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},to=e=>new RegExp("^\\p{Lu}[\\p{Ll}'’]","u").test(e)||new RegExp("^\\p{Lu}$","u").test(e),vu=e=>e.replace(new RegExp("^\\p{Ll}","u"),t=>t.toUpperCase()),wu=e=>e.replace(new RegExp("^\\p{Lu}","u"),t=>t.toLowerCase()),ma=(e,t,n)=>{if(n.forEach(r=>r.dirty=!0),e){const r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},It=function(e){const t=/ $/,n=/[-–—]/,r=e[e.length-1];r&&!t.test(r.post)&&!n.test(r.post)&&(r.post+=" ")},no=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g,o=e[t-1];if(!o)return;const i=o.post;if(r.test(i)){const a=i.match(r).join(""),s=n[n.length-1];s.post=a+s.post,o.post=o.post.replace(r,"")}},Pu=function(e,t,n){const r=e[t];if(t!==0||!to(r.text))return;n[0].text=vu(n[0].text);const o=e[t];o.tags.has("ProperNoun")||o.tags.has("Acronym")||to(o.text)&&o.text.length>1&&(o.text=wu(o.text))},ku=function(e,t,n,r){const[o,i,a]=t;i===0||a===r[o].length?It(n):(It(n),It([e[t[1]]])),Pu(e,i,n),ma(e,i,n)},Au=function(e,t,n,r){const[o,,i]=t,a=(r[o]||[]).length;i<a?(no(e,i,n),It(n)):a===i&&(It(e),no(e,i,n),r[o+1]&&(n[n.length-1].post+=" ")),ma(e,t[2],n),t[4]=n[n.length-1].id};let Vt=0;const ro=e=>(e=e.length<3?"0"+e:e,e.length<3?"0"+e:e),ya=function(e){let[t,n]=e.index||[0,0];Vt+=1,Vt=Vt>46655?0:Vt,t=t>46655?0:t,n=n>1294?0:n;let r=ro(Vt.toString(36));r+=ro(t.toString(36));let o=n.toString(36);o=o.length<2?"0"+o:o,r+=o;const i=parseInt(Math.random()*36,10);return r+=i.toString(36),e.normal+"|"+r.toUpperCase()},oo=function(e){e.has("@hasContraction")&&typeof e.contractions=="function"&&e.grow("@hasContraction").contractions().expand()},io=e=>Object.prototype.toString.call(e)==="[object Array]",xu=function(e){return e=e.map(t=>(t.id=ya(t),t)),e},Cu=function(e,t){const{methods:n}=t;return typeof e=="string"?n.one.tokenize.fromString(e,t)[0]:typeof e=="object"&&e.isView?e.clone().docs[0]||[]:io(e)?io(e[0])?e[0]:e:[]},ao=function(e,t,n){const{document:r,world:o}=t;t.uncache();const i=t.fullPointer,a=t.fullPointer;t.forEach((u,c)=>{const l=u.fullPointer[0],[d]=l,p=r[d];let P=Cu(e,o);P.length!==0&&(P=xu(P),n?(oo(t.update([l]).firstTerm()),ku(p,l,P,r)):(oo(t.update([l]).lastTerm()),Au(p,l,P,r)),r[d]&&r[d][l[1]]&&(l[3]=r[d][l[1]].id),a[c]=l,l[2]+=P.length,i[c]=l)});const s=t.toView(i);return t.ptrs=a,s.compute(["id","index","freeze","lexicon"]),s.world.compute.preTagger&&s.compute("preTagger"),s.compute("unfreeze"),s},gt={insertAfter:function(e){return ao(e,this,!1)},insertBefore:function(e){return ao(e,this,!0)}};gt.append=gt.insertAfter;gt.prepend=gt.insertBefore;gt.insert=gt.insertAfter;const Nu=/\$[0-9a-z]+/g,Gr={},ju=e=>new RegExp("^\\p{Lu}[\\p{Ll}'’]","u").test(e)||new RegExp("^\\p{Lu}$","u").test(e),$u=e=>e.replace(new RegExp("^\\p{Ll}","u"),t=>t.toUpperCase()),Tu=e=>e.replace(new RegExp("^\\p{Lu}","u"),t=>t.toLowerCase()),Iu=function(e,t,n){return e.forEach(r=>{const o=t(r);r.replaceWith(o,n)}),e},Eu=function(e,t){if(typeof e!="string")return e;const n=t.groups();return e=e.replace(Nu,r=>{const o=r.replace(/\$/,"");return n.hasOwnProperty(o)?n[o].text():r}),e};Gr.replaceWith=function(e,t={}){let n=this.fullPointer;const r=this;if(this.uncache(),typeof e=="function")return Iu(r,e,t);const o=r.docs[0];if(!o)return r;const i=t.possessives&&o[o.length-1].tags.has("Possessive"),a=t.case&&ju(o[0].text);e=Eu(e,r);const s=this.update(n);n=n.map(p=>p.slice(0,3));const u=(s.docs[0]||[]).map(p=>Array.from(p.tags)),c=s.docs[0][0].pre,l=s.docs[0][s.docs[0].length-1].post;if(typeof e=="string"&&(e=this.fromText(e).compute("id")),r.insertAfter(e),s.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(s),i){const p=r.docs[0],P=p[p.length-1];P.tags.has("Possessive")||(P.text+="'s",P.normal+="'s",P.tags.add("Possessive"))}if(c&&r.docs[0]&&(r.docs[0][0].pre=c),l&&r.docs[0]){const p=r.docs[0][r.docs[0].length-1];p.post.trim()||(p.post=l)}const d=r.toView(n).compute(["index","freeze","lexicon"]);if(d.world.compute.preTagger&&d.compute("preTagger"),d.compute("unfreeze"),t.tags&&d.terms().forEach((p,P)=>{p.tagSafe(u[P])}),!d.docs[0]||!d.docs[0][0])return d;if(t.case){const p=a?$u:Tu;d.docs[0][0].text=p(d.docs[0][0].text)}return d};Gr.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);const r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};const Du=function(e,t){const n=e.length-1,r=e[n],o=e[n-t];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))},Ou=function(e,t){t.forEach(n=>{const[r,o,i]=n,a=i-o;e[r]&&(i===e[r].length&&i>1&&Du(e[r],a),e[r].splice(o,a))});for(let n=e.length-1;n>=0;n-=1)if(e[n].length===0&&(e.splice(n,1),n===e.length&&e[n-1])){const r=e[n-1],o=r[r.length-1];o&&(o.post=o.post.trimEnd())}return e},Hu=function(e,t){return e=e.map(n=>{const[r]=n;return t[r]&&t[r].forEach(o=>{const i=o[2]-o[1];n[1]<=o[1]&&n[2]>=o[2]&&(n[2]-=i)}),n}),e.forEach((n,r)=>{if(n[1]===0&&n[2]==0)for(let o=r+1;o<e.length;o+=1)e[o][0]-=1,e[o][0]<0&&(e[o][0]=0)}),e=e.filter(n=>n[2]-n[1]>0),e=e.map(n=>(n[3]=null,n[4]=null,n)),e},dr={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));const o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer;const a=r.fullPointer.reverse(),s=Ou(this.document,a),u=t(a);return i=Hu(i,u),n.ptrs=i,n.document=s,n.compute("index"),o&&(n.ptrs=void 0),e?n.toView(i):(this.ptrs=[],n.none())}};dr.delete=dr.remove;const _t={pre:function(e,t){return e===void 0&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{const r=n[0];t===!0?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(e===void 0){const n=this.docs[this.docs.length-1];return n[n.length-1].post}return this.docs.forEach(n=>{const r=n[n.length-1];t===!0?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;const e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();const n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{n!==0&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(n=>{e.test(n.post)&&(n.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;const r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;const r=n[n.length-1];r.post=t+r.post}),this}};_t.deHyphenate=_t.dehyphenate;_t.toQuotation=_t.toQuotations;const Fu=(e,t)=>e.normal<t.normal?-1:e.normal>t.normal?1:0,Gu=(e,t)=>{const n=e.normal.trim().length,r=t.normal.trim().length;return n<r?1:n>r?-1:0},Su=(e,t)=>e.words<t.words?1:e.words>t.words?-1:0,zu=(e,t)=>e[0]<t[0]?1:e[0]>t[0]?-1:e[1]>t[1]?1:-1,Bu=function(e){const t={};return e.forEach(n=>{t[n.normal]=t[n.normal]||0,t[n.normal]+=1}),e.sort((n,r)=>{const o=t[n.normal],i=t[r.normal];return o<i?1:o>i?-1:0}),e},Vn={alpha:Fu,length:Gu,wordCount:Su,sequential:zu,byFreq:Bu},Vu=new Set(["index","sequence","seq","sequential","chron","chronological"]),Mu=new Set(["freq","frequency","topk","repeats"]),Lu=new Set(["alpha","alphabetical"]),Ku=function(e,t){let n=e.fullPointer;return n=n.sort((r,o)=>(r=e.update([r]),o=e.update([o]),t(r,o))),e.ptrs=n,e},Wu=function(e){const{docs:t,pointer:n}=this;if(this.uncache(),typeof e=="function")return Ku(this,e);e=e||"alpha";const r=n||t.map((i,a)=>[a]);let o=t.map((i,a)=>({index:a,words:i.length,normal:i.map(s=>s.machine||s.normal||"").join(" "),pointer:r[a]}));return Vu.has(e)&&(e="sequential"),Lu.has(e)&&(e="alpha"),Mu.has(e)?(o=Vn.byFreq(o),this.update(o.map(i=>i.pointer))):typeof Vn[e]=="function"?(o=o.sort(Vn[e]),this.update(o.map(i=>i.pointer))):this},Ju=function(){let e=this.pointer||this.docs.map((t,n)=>[n]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},Ru=function(){const e=new Set;return this.filter(n=>{const r=n.text("machine");return e.has(r)?!1:(e.add(r),!0)})},qu={unique:Ru,reverse:Ju,sort:Wu},Uu=e=>Object.prototype.toString.call(e)==="[object Array]",ba=function(e,t){if(e.length>0){const n=e[e.length-1],r=n[n.length-1];/ /.test(r.post)===!1&&(r.post+=" ")}return e=e.concat(t),e},_u=function(e,t){if(e.document===t.document){const r=e.fullPointer.concat(t.fullPointer);return e.toView(r).compute("index")}return t.fullPointer.forEach(r=>{r[0]+=e.document.length}),e.document=ba(e.document,t.docs),e.all()},Qu={concat:function(e){if(typeof e=="string"){const t=this.fromText(e);if(!this.found||!this.ptrs)this.document=this.document.concat(t.document);else{const n=this.fullPointer,r=n[n.length-1][0];this.document.splice(r,0,...t.document)}return this.all().compute("index")}if(typeof e=="object"&&e.isView)return _u(this,e);if(Uu(e)){const t=ba(this.document,e);return this.document=t,this.all()}return this}},Zu=function(){return this.ptrs=this.fullPointer,this},Xu=function(){let e=this.ptrs;return!e||e.length<1?this:(e=e.map(t=>t.slice(0,3)),this.ptrs=e,this)},Yu={harden:Zu,soften:Xu},ec=Object.assign({},bu,gt,Gr,dr,_t,qu,Qu,Yu),tc=function(e){Object.assign(e.prototype,ec)},nc={id:function(e){const t=e.docs;for(let n=0;n<t.length;n+=1)for(let r=0;r<t[n].length;r+=1){const o=t[n][r];o.id=o.id||ya(o)}}},rc={api:tc,compute:nc},oc=[{word:"@",out:["at"]},{word:"arent",out:["are","not"]},{word:"alot",out:["a","lot"]},{word:"brb",out:["be","right","back"]},{word:"cannot",out:["can","not"]},{word:"dun",out:["do","not"]},{word:"can't",out:["can","not"]},{word:"shan't",out:["should","not"]},{word:"won't",out:["will","not"]},{word:"that's",out:["that","is"]},{word:"what's",out:["what","is"]},{word:"let's",out:["let","us"]},{word:"dunno",out:["do","not","know"]},{word:"gonna",out:["going","to"]},{word:"gotta",out:["have","got","to"]},{word:"gimme",out:["give","me"]},{word:"outta",out:["out","of"]},{word:"tryna",out:["trying","to"]},{word:"gtg",out:["got","to","go"]},{word:"im",out:["i","am"]},{word:"imma",out:["I","will"]},{word:"imo",out:["in","my","opinion"]},{word:"irl",out:["in","real","life"]},{word:"ive",out:["i","have"]},{word:"rn",out:["right","now"]},{word:"tbh",out:["to","be","honest"]},{word:"wanna",out:["want","to"]},{word:"c'mere",out:["come","here"]},{word:"c'mon",out:["come","on"]},{word:"shoulda",out:["should","have"]},{word:"coulda",out:["coulda","have"]},{word:"woulda",out:["woulda","have"]},{word:"musta",out:["must","have"]},{word:"tis",out:["it","is"]},{word:"twas",out:["it","was"]},{word:"y'know",out:["you","know"]},{word:"ne'er",out:["never"]},{word:"o'er",out:["over"]},{after:"ll",out:["will"]},{after:"ve",out:["have"]},{after:"re",out:["are"]},{after:"m",out:["am"]},{before:"c",out:["ce"]},{before:"m",out:["me"]},{before:"n",out:["ne"]},{before:"qu",out:["que"]},{before:"s",out:["se"]},{before:"t",out:["tu"]},{word:"shouldnt",out:["should","not"]},{word:"couldnt",out:["could","not"]},{word:"wouldnt",out:["would","not"]},{word:"hasnt",out:["has","not"]},{word:"wasnt",out:["was","not"]},{word:"isnt",out:["is","not"]},{word:"cant",out:["can","not"]},{word:"dont",out:["do","not"]},{word:"wont",out:["will","not"]},{word:"howd",out:["how","did"]},{word:"whatd",out:["what","did"]},{word:"whend",out:["when","did"]},{word:"whered",out:["where","did"]}],pe=!0,ic={st:pe,nd:pe,rd:pe,th:pe,am:pe,pm:pe,max:pe,"°":pe,s:pe,e:pe,er:pe,ère:pe,ème:pe},ac={one:{contractions:oc,numberSuffixes:ic}},Mn=function(e,t,n){const[r,o]=t;!n||n.length===0||(n=n.map((i,a)=>(i.implicit=i.text,i.machine=i.text,i.pre="",i.post="",i.text="",i.normal="",i.index=[r,o+a],i)),n[0]&&(n[0].pre=e[r][o].pre,n[n.length-1].post=e[r][o].post,n[0].text=e[r][o].text,n[0].normal=e[r][o].normal),e[r].splice(o,1,...n))},sc=/'/,uc=new Set(["what","how","when","where","why"]),cc=new Set(["be","go","start","think","need"]),lc=new Set(["been","gone"]),hc=function(e,t){const n=e[t].normal.split(sc)[0];if(uc.has(n))return[n,"did"];if(e[t+1]){if(lc.has(e[t+1].normal))return[n,"had"];if(cc.has(e[t+1].normal))return[n,"would"]}return null},dc=function(e,t){return e[t].normal==="ain't"||e[t].normal==="aint"?null:[e[t].normal.replace(/n't/,""),"not"]},Sr=/'/,fc=/(e|é|aison|sion|tion)$/,pc=/(age|isme|acle|ege|oire)$/,gc=(e,t)=>{const n=e[t].normal.split(Sr)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},mc=(e,t)=>{const n=e[t].normal.split(Sr)[1];return n&&fc.test(n)&&!pc.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]},yc=(e,t)=>["je",e[t].normal.split(Sr)[1]],Ln={preJ:yc,preL:gc,preD:mc},bc=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,vc=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,wc=/^[0-9]{3}-[0-9]{4}$/,Pc=function(e,t){const n=e[t];let r=n.text.match(bc);return r!==null?n.tags.has("PhoneNumber")===!0||wc.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(vc),r!==null?[r[1],"to",r[4]]:null)},kc=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,Ac=function(e,t,n){const r=n.model.one.numberSuffixes||{},i=e[t].text.match(kc);if(i!==null){const a=i[2].toLowerCase().trim();return r.hasOwnProperty(a)?null:[i[1],a]}return null},so=/'/,xc=/^[0-9][^-–—]*[-–—].*?[0-9]/,uo=function(e,t,n,r){const o=t.update();o.document=[e];let i=n+r;n>0&&(n-=1),e[i]&&(i+=1),o.ptrs=[[0,n,i]]},co={t:(e,t)=>dc(e,t),d:(e,t)=>hc(e,t)},lo={j:(e,t)=>Ln.preJ(e,t),l:(e,t)=>Ln.preL(e,t),d:(e,t)=>Ln.preD(e,t)},Cc=function(e,t,n,r){for(let o=0;o<e.length;o+=1){const i=e[o];if(i.word===t.normal)return i.out;if(r!==null&&r===i.after)return[n].concat(i.out);if(n!==null&&n===i.before&&r&&r.length>2)return i.out.concat(r)}return null},Kn=function(e,t){const n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},Nc=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if(e[n].normal==="been")return["there","has"];return["there","is"]},jc=e=>{const{world:t,document:n}=e,{model:r,methods:o}=t,i=r.one.contractions||[];n.forEach((a,s)=>{for(let u=a.length-1;u>=0;u-=1){let c=null,l=null;if(so.test(a[u].normal)===!0){const p=a[u].normal.split(so);c=p[0],l=p[1]}let d=Cc(i,a[u],c,l);if(!d&&co.hasOwnProperty(l)&&(d=co[l](a,u,t)),!d&&lo.hasOwnProperty(c)&&(d=lo[c](a,u)),c==="there"&&l==="s"&&(d=Nc(a,u)),d){d=Kn(d,e),Mn(n,[s,u],d),uo(n[s],e,u,d.length);continue}if(xc.test(a[u].normal)){d=Pc(a,u),d&&(d=Kn(d,e),Mn(n,[s,u],d),o.one.setTag(d,"NumberRange",t),d[2]&&d[2].tags.has("Time")&&o.one.setTag([d[0]],"Time",t,null,"time-range"),uo(n[s],e,u,d.length));continue}d=Ac(a,u,t),d&&(d=Kn(d,e),Mn(n,[s,u],d),o.one.setTag([d[1]],"Unit",t,null,"contraction-unit"))}})},$c={contractions:jc},Tc={model:ac,compute:$c,hooks:["contractions"]},ho=function(e){const t=e.world,{model:n,methods:r}=e.world,o=r.one.setTag,{frozenLex:i}=n.one,a=n.one._multiCache||{};e.docs.forEach(s=>{for(let u=0;u<s.length;u+=1){const c=s[u],l=c.machine||c.normal;if(a[l]!==void 0&&s[u+1]){const d=u+a[l]-1;for(let p=d;p>u;p-=1){const P=s.slice(u,p+1),E=P.map(L=>L.machine||L.normal).join(" ");if(i.hasOwnProperty(E)===!0){o(P,i[E],t,!1,"1-frozen-multi-lexicon"),P.forEach(L=>L.frozen=!0);continue}}}if(i[l]!==void 0&&i.hasOwnProperty(l)){o([c],i[l],t,!1,"1-freeze-lexicon"),c.frozen=!0;continue}}})},Ic=function(e){return e.docs.forEach(t=>{t.forEach(n=>{delete n.frozen})}),e},Ec={frozen:ho,freeze:ho,unfreeze:Ic},fo=e=>"\x1B[34m"+e+"\x1B[0m",po=e=>"\x1B[3m\x1B[2m"+e+"\x1B[0m",go=function(e){e.docs.forEach(t=>{console.log(fo(`
4
- ┌─────────`)),t.forEach(n=>{let r=` ${po("│")} `;const o=n.implicit||n.text||"-";n.frozen===!0?r+=`${fo(o)} ❄️`:r+=po(o),console.log(r)})})},Dc={compute:Ec,mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=n=>n.frozen===!0,t.debug.freeze=go,t.debug.frozen=go},api:function(e){e.prototype.freeze=function(){return this.docs.forEach(t=>{t.forEach(n=>{n.frozen=!0})}),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},Oc=function(e,t,n){const{model:r,methods:o}=n,i=o.one.setTag,a=r.one._multiCache||{},{lexicon:s}=r.one||{},u=e[t],c=u.machine||u.normal;if(a[c]!==void 0&&e[t+1]){const l=t+a[c]-1;for(let d=l;d>t;d-=1){const p=e.slice(t,d+1);if(p.length<=1)return!1;const P=p.map(E=>E.machine||E.normal).join(" ");if(s.hasOwnProperty(P)===!0){const E=s[P];return i(p,E,n,!1,"1-multi-lexicon"),E&&E.length===2&&(E[0]==="PhrasalVerb"||E[1]==="PhrasalVerb")&&i([p[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},mo=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Hc=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),Fc=function(e,t,n){const{model:r,methods:o}=n,i=o.one.setTag,{lexicon:a}=r.one,s=e[t],u=s.machine||s.normal;if(a[u]!==void 0&&a.hasOwnProperty(u))return i([s],a[u],n,!1,"1-lexicon"),!0;if(s.alias){const c=s.alias.find(l=>a.hasOwnProperty(l));if(c)return i([s],a[c],n,!1,"1-lexicon-alias"),!0}if(mo.test(u)===!0){const c=u.replace(mo,"");if(a.hasOwnProperty(c)&&c.length>3&&Hc.has(a[c]))return i([s],a[c],n,!1,"1-lexicon-prefix"),!0}return null},Gc=function(e){const t=e.world;e.docs.forEach(n=>{for(let r=0;r<n.length;r+=1)if(n[r].tags.size===0){let o=null;o=o||Oc(n,r,t),o=o||Fc(n,r,t)}})},Sc={lexicon:Gc},zc=function(e){const t={},n={};return Object.keys(e).forEach(r=>{const o=e[r];r=r.toLowerCase().trim(),r=r.replace(/'s\b/,"");const i=r.split(/ /);i.length>1&&(n[i[0]]===void 0||i.length>n[i[0]])&&(n[i[0]]=i.length),t[r]=t[r]||o}),delete t[""],delete t[null],delete t[" "],{lex:t,_multi:n}},Bc={one:{expandLexicon:zc}},Vc=function(e,t=!1){const n=this.world(),{methods:r,model:o}=n;if(!e)return;if(Object.keys(e).forEach(s=>{typeof e[s]=="string"&&e[s].startsWith("#")&&(e[s]=e[s].replace(/^#/,""))}),t===!0){const{lex:s,_multi:u}=r.one.expandLexicon(e,n);Object.assign(o.one._multiCache,u),Object.assign(o.one.frozenLex,s);return}if(r.two.expandLexicon){const{lex:s,_multi:u}=r.two.expandLexicon(e,n);Object.assign(o.one.lexicon,s),Object.assign(o.one._multiCache,u)}const{lex:i,_multi:a}=r.one.expandLexicon(e,n);Object.assign(o.one.lexicon,i),Object.assign(o.one._multiCache,a)},Mc={addWords:Vc},Lc={one:{lexicon:{},_multiCache:{},frozenLex:{}}},Kc={model:Lc,methods:Bc,compute:Sc,lib:Mc,hooks:["lexicon"]},Wc=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(i=>n.one.tokenize.splitWhitespace(i,r)).map(i=>i.text.toLowerCase())},va=function(e,t){const n=[{}],r=[null],o=[0],i=[];let a=0;e.forEach(function(s){let u=0;const c=Wc(s,t);for(let l=0;l<c.length;l++){const d=c[l];n[u]&&n[u].hasOwnProperty(d)?u=n[u][d]:(a++,n[u][d]=a,n[a]={},u=a,r[a]=null)}r[u]=[c.length]});for(const s in n[0])a=n[0][s],o[a]=0,i.push(a);for(;i.length;){const s=i.shift(),u=Object.keys(n[s]);for(let c=0;c<u.length;c+=1){const l=u[c],d=n[s][l];for(i.push(d),a=o[s];a>0&&!n[a].hasOwnProperty(l);)a=o[a];if(n.hasOwnProperty(a)){const p=n[a][l];o[d]=p,r[p]&&(r[d]=r[d]||[],r[d]=r[d].concat(r[p]))}else o[d]=0}}return{goNext:n,endAs:r,failTo:o}},Jc=function(e,t,n){let r=0;const o=[];for(let i=0;i<e.length;i++){const a=e[i][n.form]||e[i].normal;for(;r>0&&(t.goNext[r]===void 0||!t.goNext[r].hasOwnProperty(a));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(a)&&(r=t.goNext[r][a],t.endAs[r])){const s=t.endAs[r];for(let u=0;u<s.length;u++){const c=s[u],l=e[i-c+1],[d,p]=l.index;o.push([d,p,p+c,l.id])}}}return o},Rc=function(e,t){for(let n=0;n<e.length;n+=1)if(t.has(e[n])===!0)return!1;return!0},qc=function(e,t,n){let r=[];n.form=n.form||"normal";const o=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();const i=Object.keys(t.goNext[0]);for(let a=0;a<o.length;a++){if(e._cache&&e._cache[a]&&Rc(i,e._cache[a])===!0)continue;const s=o[a],u=Jc(s,t,n);u.length>0&&(r=r.concat(u))}return e.update(r)},Uc=e=>Object.prototype.toString.call(e)==="[object Object]";function _c(e){e.prototype.lookup=function(t,n={}){if(!t)return this.none();typeof t=="string"&&(t=[t]);const r=Uc(t)?t:va(t,this.world);let o=qc(this,r,n);return o=o.settle(),o}}const Wn=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e},Qc=function(e){return e.goNext=e.goNext.map(t=>{if(Object.keys(t).length!==0)return t}),e.goNext=Wn(e.goNext,void 0),e.failTo=Wn(e.failTo,0),e.endAs=Wn(e.endAs,null),e},fr={buildTrie:function(e){const t=va(e,this.world());return Qc(t)}};fr.compile=fr.buildTrie;const Zc={api:_c,lib:fr},yo=function(e,t){return t&&e.forEach(n=>{const r=n[0];t[r]&&(n[0]=t[r][0],n[1]+=t[r][1],n[2]+=t[r][1])}),e},wa=function(e,t){let{ptrs:n}=e;const{byGroup:r}=e;return n=yo(n,t),Object.keys(r).forEach(o=>{r[o]=yo(r[o],t)}),{ptrs:n,byGroup:r}},en=function(e,t,n){const r=n.methods.one;return typeof e=="number"&&(e=String(e)),typeof e=="string"&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},Pa=e=>Object.prototype.toString.call(e)==="[object Object]",tn=e=>e&&Pa(e)&&e.isView===!0,nn=e=>e&&Pa(e)&&e.isNet===!0,Xc=function(e,t,n){const r=this.methods.one;if(tn(e))return this.intersection(e);if(nn(e))return this.sweep(e,{tagger:!1}).view.settle();e=en(e,n,this.world);const o={regs:e,group:t},i=r.match(this.docs,o,this._cache),{ptrs:a,byGroup:s}=wa(i,this.fullPointer),u=this.toView(a);return u._groups=s,u},Yc=function(e,t,n){const r=this.methods.one;if(tn(e))return this.intersection(e).eq(0);if(nn(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;e=en(e,n,this.world);const o={regs:e,group:t,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:a,byGroup:s}=wa(i,this.fullPointer),u=this.toView(a);return u._groups=s,u},el=function(e,t,n){const r=this.methods.one;if(tn(e))return this.intersection(e).fullPointer.length>0;if(nn(e))return this.sweep(e,{tagger:!1}).view.found;e=en(e,n,this.world);const o={regs:e,group:t,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},tl=function(e,t,n){const r=this.methods.one;if(tn(e))return this.filter(u=>u.intersection(e).found);if(nn(e)){const u=this.sweep(e,{tagger:!1}).view.settle();return this.if(u)}e=en(e,n,this.world);const o={regs:e,group:t,justOne:!0};let i=this.fullPointer;const a=this._cache||[];i=i.filter((u,c)=>{const l=this.update([u]);return r.match(l.docs,o,a[c]).ptrs.length>0});const s=this.update(i);return this._cache&&(s._cache=i.map(u=>a[u[0]])),s},nl=function(e,t,n){const{methods:r}=this,o=r.one;if(tn(e))return this.filter(s=>!s.intersection(e).found);if(nn(e)){const s=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(s)}e=en(e,n,this.world);const i=this._cache||[],a=this.filter((s,u)=>{const c={regs:e,group:t,justOne:!0};return o.match(s.docs,c,i[u]).ptrs.length===0});return this._cache&&(a._cache=a.ptrs.map(s=>i[s[0]])),a},rl={matchOne:Yc,match:Xc,has:el,if:tl,ifNo:nl},ol=function(e,t,n){const{indexN:r}=this.methods.one.pointer,o=[],i=r(this.fullPointer);Object.keys(i).forEach(s=>{const u=i[s].sort((c,l)=>c[1]>l[1]?1:-1)[0];u[1]>0&&o.push([u[0],0,u[1]])});const a=this.toView(o);return e?a.match(e,t,n):a},il=function(e,t,n){const{indexN:r}=this.methods.one.pointer,o=[],i=r(this.fullPointer),a=this.document;Object.keys(i).forEach(u=>{const c=i[u].sort((p,P)=>p[1]>P[1]?-1:1)[0],[l,,d]=c;d<a[l].length&&o.push([l,d,a[l].length])});const s=this.toView(o);return e?s.match(e,t,n):s},al=function(e,t,n){typeof e=="string"&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[e.length-1].end=!0;const r=this.fullPointer;return this.forEach((o,i)=>{const a=o.before(e,t);if(a.found){const s=a.terms();r[i][1]-=s.length,r[i][3]=s.docs[0][0].id}}),this.update(r)},sl=function(e,t,n){typeof e=="string"&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;const r=this.fullPointer;return this.forEach((o,i)=>{const a=o.after(e,t);if(a.found){const s=a.terms();r[i][2]+=s.length,r[i][4]=null}}),this.update(r)},ul=function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)},cl={before:ol,after:il,growLeft:al,growRight:sl,grow:ul},ka=function(e,t){return[e[0],e[1],t[2]]},ll=function(e){return Object.prototype.toString.call(e)==="[object Array]"},zr=(e,t,n)=>typeof e=="string"||ll(e)?t.match(e,n):e||t.none(),Br=function(e,t){const[n,r,o]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][o-1]&&(e[4]=e[4]||t.document[n][o-1].id)),e},Ot={};Ot.splitOn=function(e,t){const{splitAll:n}=this.methods.one.pointer,r=zr(e,this,t).fullPointer,o=n(this.fullPointer,r);let i=[];return o.forEach(a=>{i.push(a.passthrough),i.push(a.before),i.push(a.match),i.push(a.after)}),i=i.filter(a=>a),i=i.map(a=>Br(a,this)),this.update(i)};Ot.splitBefore=function(e,t){const{splitAll:n}=this.methods.one.pointer,r=zr(e,this,t).fullPointer,o=n(this.fullPointer,r);for(let a=0;a<o.length;a+=1)!o[a].after&&o[a+1]&&o[a+1].before&&o[a].match&&o[a].match[0]===o[a+1].before[0]&&(o[a].after=o[a+1].before,delete o[a+1].before);let i=[];return o.forEach(a=>{i.push(a.passthrough),i.push(a.before),a.match&&a.after?i.push(ka(a.match,a.after)):i.push(a.match)}),i=i.filter(a=>a),i=i.map(a=>Br(a,this)),this.update(i)};Ot.splitAfter=function(e,t){const{splitAll:n}=this.methods.one.pointer,r=zr(e,this,t).fullPointer,o=n(this.fullPointer,r);let i=[];return o.forEach(a=>{i.push(a.passthrough),a.before&&a.match?i.push(ka(a.before,a.match)):(i.push(a.before),i.push(a.match)),i.push(a.after)}),i=i.filter(a=>a),i=i.map(a=>Br(a,this)),this.update(i)};Ot.split=Ot.splitAfter;const hl=function(e,t){return!e||!t||e[0]!==t[0]?!1:e[2]===t[1]},bo=function(e,t,n){const r=e.world,o=r.methods.one.parseMatch;t=t||".$",n=n||"^.";const i=o(t,{},r),a=o(n,{},r);i[i.length-1].end=!0,a[0].start=!0;const s=e.fullPointer,u=[s[0]];for(let c=1;c<s.length;c+=1){const l=u[u.length-1],d=s[c],p=e.update([l]),P=e.update([d]);hl(l,d)&&p.has(i)&&P.has(a)?u[u.length-1]=[l[0],l[1],d[2],l[3],d[4]]:u.push(d)}return e.update(u)},dl={joinIf:function(e,t){return bo(this,e,t)},join:function(){return bo(this)}},Ge=Object.assign({},rl,cl,Ot,dl);Ge.lookBehind=Ge.before;Ge.lookBefore=Ge.before;Ge.lookAhead=Ge.after;Ge.lookAfter=Ge.after;Ge.notIf=Ge.ifNo;const fl=function(e){Object.assign(e.prototype,Ge)},pl=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,gl=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ml=/ /g,yl=e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e),vo=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),wo=function(e){return e=e.map(t=>t.trim()),e=e.filter(t=>t),e},bl=function(e){const t=e.split(pl);let n=[];t.forEach(o=>{if(vo(o)){n.push(o);return}n=n.concat(o.split(gl))}),n=wo(n);let r=[];return n.forEach(o=>{yl(o)||vo(o)?r.push(o):r=r.concat(o.split(ml))}),r=wo(r),r},Po=/\{([0-9]+)?(, *[0-9]*)?\}/,ko=/&&/,vl=new RegExp(/^<\s*(\S+)\s*>/),Ao=e=>e.charAt(0).toUpperCase()+e.substring(1),Ae=e=>e.charAt(e.length-1),ge=e=>e.charAt(0),jt=e=>e.substring(1),$t=e=>e.substring(0,e.length-1),Mt=function(e){return e=jt(e),e=$t(e),e},Aa=function(e,t){const n={};for(let r=0;r<2;r+=1){if(Ae(e)==="$"&&(n.end=!0,e=$t(e)),ge(e)==="^"&&(n.start=!0,e=jt(e)),Ae(e)==="?"&&(n.optional=!0,e=$t(e)),(ge(e)==="["||Ae(e)==="]")&&(n.group=null,ge(e)==="["&&(n.groupStart=!0),Ae(e)==="]"&&(n.groupEnd=!0),e=e.replace(/^\[/,""),e=e.replace(/\]$/,""),ge(e)==="<")){const o=vl.exec(e);o.length>=2&&(n.group=o[1],e=e.replace(o[0],""))}if(Ae(e)==="+"&&(n.greedy=!0,e=$t(e)),e!=="*"&&Ae(e)==="*"&&e!=="\\*"&&(n.greedy=!0,e=$t(e)),ge(e)==="!"&&(n.negative=!0,e=jt(e)),ge(e)==="~"&&Ae(e)==="~"&&e.length>2&&(e=Mt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,/\(/.test(e)===!1))return n.word=e,n;if(ge(e)==="/"&&Ae(e)==="/")return e=Mt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(Po.test(e)===!0&&(e=e.replace(Po,(o,i,a)=>(a===void 0?(n.min=Number(i),n.max=Number(i)):(a=a.replace(/, */,""),i===void 0?(n.min=0,n.max=Number(a)):(n.min=Number(i),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),ge(e)==="("&&Ae(e)===")"){ko.test(e)?(n.choices=e.split(ko),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=jt(n.choices[0]);const o=n.choices.length-1;n.choices[o]=$t(n.choices[o]),n.choices=n.choices.map(i=>i.trim()),n.choices=n.choices.filter(i=>i),n.choices=n.choices.map(i=>i.split(/ /g).map(a=>Aa(a,t))),e=""}if(ge(e)==="{"&&Ae(e)==="}"){if(e=Mt(e),n.root=e,/\//.test(e)){const o=n.root.split(/\//);n.root=o[0],n.pos=o[1],n.pos==="adj"&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),o[2]!==void 0&&(n.sense=o[2])}return n}if(ge(e)==="<"&&Ae(e)===">")return e=Mt(e),n.chunk=Ao(e),n.greedy=!0,n;if(ge(e)==="%"&&Ae(e)==="%")return e=Mt(e),n.switch=e,n}return ge(e)==="#"?(n.tag=jt(e),n.tag=Ao(n.tag),n):ge(e)==="@"?(n.method=jt(e),n):e==="."?(n.anything=!0,n):e==="*"?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=e.replace("\\*","*"),e=e.replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)},wl=/[a-z0-9][-–—][a-z]/i,Pl=function(e,t){const n=t.model.one.prefixes;for(let r=e.length-1;r>=0;r-=1){const o=e[r];if(o.word&&wl.test(o.word)){let i=o.word.split(/[-–—]/g);if(n.hasOwnProperty(i[0]))continue;i=i.filter(a=>a).reverse(),e.splice(r,1),i.forEach(a=>{const s=Object.assign({},o);s.word=a,e.splice(r,0,s)})}}return e},xo=function(e,t){const{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Co=function(e,t){const{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},No=function(e,t){const{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},kl=function(e,t){return e=e.map(n=>{if(n.root)if(t.methods.two&&t.methods.two.transform){let r=[];n.pos?n.pos==="Verb"?r=r.concat(xo(n,t)):n.pos==="Noun"?r=r.concat(Co(n,t)):n.pos==="Adjective"&&(r=r.concat(No(n,t))):(r=r.concat(xo(n,t)),r=r.concat(Co(n,t)),r=r.concat(No(n,t))),r=r.filter(o=>o),r.length>0&&(n.operator="or",n.fastOr=new Set(r))}else n.machine=n.root,delete n.id,delete n.root;return n}),e},Al=function(e){let t=0,n=null;for(let r=0;r<e.length;r++){const o=e[r];o.groupStart===!0&&(n=o.group,n===null&&(n=String(t),t+=1)),n!==null&&(o.group=n),o.groupEnd===!0&&(n=null)}return e},xl=function(e){return e.map(t=>{if(t.choices!==void 0){if(t.operator!=="or"||t.fuzzy===!0)return t;t.choices.every(r=>{if(r.length!==1)return!1;const o=r[0];return o.fuzzy===!0||o.start||o.end?!1:o.word!==void 0&&o.negative!==!0&&o.optional!==!0&&o.method!==!0})===!0&&(t.fastOr=new Set,t.choices.forEach(r=>{t.fastOr.add(r[0].word)}),delete t.choices)}return t})},Cl=function(e){return e.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(n=>{n.length===1&&n[0].word&&(n[0].fuzzy=!0,n[0].min=t.min)}),t))},Nl=function(e){return e=Al(e),e=xl(e),e=Cl(e),e},jl=function(e,t,n){if(e==null||e==="")return[];t=t||{},typeof e=="number"&&(e=String(e));let r=bl(e);return r=r.map(o=>Aa(o,t)),r=Pl(r,n),r=kl(r,n),r=Nl(r),r},$l=function(e,t){for(const n of t)if(e.has(n))return!0;return!1},Tl=function(e,t){for(let n=0;n<e.length;n+=1){const r=e[n];if(!(r.optional===!0||r.negative===!0||r.fuzzy===!0)){if(r.word!==void 0&&t.has(r.word)===!1||r.tag!==void 0&&t.has("#"+r.tag)===!1)return!0;if(r.fastOr&&$l(r.fastOr,t)===!1)return!1}}return!1},Il=function(e,t){const n=e.length,r=t.length;if(n===0)return r;if(r===0)return n;const o=(r>n?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;const i=[];for(let p=0;p<o;p++)i[p]=[p],i[p].length=o;for(let p=0;p<o;p++)i[0][p]=p;let a,s,u,c,l,d;for(let p=1;p<=n;++p)for(s=e[p-1],a=1;a<=r;++a){if(p===a&&i[p][a]>4)return n;u=t[a-1],c=s===u?0:1,l=i[p-1][a]+1,(d=i[p][a-1]+1)<l&&(l=d),(d=i[p-1][a-1]+c)<l&&(l=d),p>1&&a>1&&s===t[a-2]&&e[p-2]===u&&(d=i[p-2][a-2]+c)<l?i[p][a]=d:i[p][a]=l}return i[n][r]},El=function(e,t,n=3){if(e===t)return 1;if(e.length<n||t.length<n)return 0;const r=Il(e,t),o=Math.max(e.length,t.length);return 1-(o===0?0:r/o)},Dl=/([\u0022\uFF02\u0027\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F])/,Ol=/([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/,jo=/^[-–—]$/,$o=/ [-–—]{1,3} /,Se=(e,t)=>e.post.indexOf(t)!==-1,Qt={hasQuote:e=>Dl.test(e.pre)||Ol.test(e.post),hasComma:e=>Se(e,","),hasPeriod:e=>Se(e,".")===!0&&Se(e,"...")===!1,hasExclamation:e=>Se(e,"!"),hasQuestionMark:e=>Se(e,"?")||Se(e,"¿"),hasEllipses:e=>Se(e,"..")||Se(e,"…"),hasSemicolon:e=>Se(e,";"),hasColon:e=>Se(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>jo.test(e.post)||jo.test(e.pre),hasDash:e=>$o.test(e.post)||$o.test(e.pre),hasContraction:e=>!!e.implicit,isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>new RegExp("^\\p{Lu}[a-z'\\u00C0-\\u00FF]","u").test(e.text),isUpperCase:e=>new RegExp("^\\p{Lu}+$","u").test(e.text)};Qt.hasQuotation=Qt.hasQuote;let oe=function(){};const Hl=function(e,t,n,r){if(t.anything===!0)return!0;if(t.start===!0&&n!==0||t.end===!0&&n!==r-1)return!1;if(t.id!==void 0&&t.id===e.id)return!0;if(t.word!==void 0)return t.use?t.word===e[t.use]:e.machine!==null&&e.machine===t.word||e.alias!==void 0&&e.alias.hasOwnProperty(t.word)||t.fuzzy===!0&&(t.word===e.root||El(t.word,e.normal)>=t.min)||e.alias&&e.alias.some(o=>o===t.word)?!0:t.word===e.text||t.word===e.normal;if(t.tag!==void 0)return e.tags.has(t.tag)===!0;if(t.method!==void 0)return typeof Qt[t.method]=="function"&&Qt[t.method](e)===!0;if(t.pre!==void 0)return e.pre&&e.pre.includes(t.pre);if(t.post!==void 0)return e.post&&e.post.includes(t.post);if(t.regex!==void 0){let o=e.normal;return t.use&&(o=e[t.use]),t.regex.test(o)}if(t.chunk!==void 0)return e.chunk===t.chunk;if(t.switch!==void 0)return e.switch===t.switch;if(t.machine!==void 0)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(t.sense!==void 0)return e.sense===t.sense;if(t.fastOr!==void 0){if(t.pos&&!e.tags.has(t.pos))return null;const o=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(o)||t.fastOr.has(e.text)}return t.choices!==void 0?t.operator==="and"?t.choices.every(o=>oe(e,o,n,r)):t.choices.some(o=>oe(e,o,n,r)):!1};oe=function(e,t,n,r){const o=Hl(e,t,n,r);return t.negative===!0?!o:o};const Fl=function(e,t){const n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.t<e.terms.length;e.t+=1){if(t&&oe(e.terms[e.t],t,e.start_i+e.t,e.phrase_length))return e.t;const o=e.t-r+1;if(n.max!==void 0&&o===n.max)return e.t;if(oe(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)===!1)return n.min!==void 0&&o<n.min?null:e.t}return e.t},Gl=function(e,t){let n=e.t;if(!t)return e.terms.length;for(;n<e.terms.length;n+=1)if(oe(e.terms[n],t,e.start_i+n,e.phrase_length)===!0)return n;return null},Sl=function(e,t){if(e.end===!0&&e.greedy===!0&&t.start_i+t.t<t.phrase_length-1){const n=Object.assign({},e,{end:!1});if(oe(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)===!0)return!0}return!1},Hn=function(e,t){return e.groups[e.inGroup]||(e.groups[e.inGroup]={start:t,length:0}),e.groups[e.inGroup]},zl=function(e){const{regs:t}=e,n=t[e.r],r=Gl(e,t[e.r+1]);if(r===null||r===0||n.min!==void 0&&r-e.t<n.min)return null;if(n.max!==void 0&&r-e.t>n.max)return e.t=e.t+n.max,!0;if(e.hasGroup===!0){const o=Hn(e,e.t);o.length=r-e.t}return e.t=r,!0},Bl=function(e){return Object.prototype.toString.call(e)==="[object Array]"},xa=function(e,t=0){const n=e.regs[e.r];let r=!1;for(let o=0;o<n.choices.length;o+=1){const i=n.choices[o];if(!Bl(i))return!1;if(r=i.every((a,s)=>{let u=0;const c=e.t+s+t+u;if(e.terms[c]===void 0)return!1;const l=oe(e.terms[c],a,c+e.start_i,e.phrase_length);if(l===!0&&a.greedy===!0)for(let d=1;d<e.terms.length;d+=1){const p=e.terms[c+d];if(p)if(oe(p,a,e.start_i+d,e.phrase_length)===!0)u+=1;else break}return t+=u,l}),r){t+=i.length;break}}return r&&n.greedy===!0?xa(e,t):t},Vl=function(e){let t=0;return e.regs[e.r].choices.every(o=>{const i=o.every((a,s)=>{const u=e.t+s;return e.terms[u]===void 0?!1:oe(e.terms[u],a,u,e.phrase_length)});return i===!0&&o.length>t&&(t=o.length),i})===!0?t:!1},Ml=function(e){const{regs:t}=e,n=t[e.r],r=xa(e);if(r){if(n.negative===!0)return null;if(e.hasGroup===!0){const o=Hn(e,e.t);o.length+=r}if(n.end===!0){const o=e.phrase_length;if(e.t+e.start_i+r!==o)return null}return e.t+=r,!0}else if(!n.optional)return null;return!0},Ll=function(e){const{regs:t}=e,n=t[e.r],r=Vl(e);if(r){if(n.negative===!0)return null;if(e.hasGroup===!0){const o=Hn(e,e.t);o.length+=r}if(n.end===!0){const o=e.phrase_length-1;if(e.t+e.start_i!==o)return null}return e.t+=r,!0}else if(!n.optional)return null;return!0},Kl=function(e,t,n){let r=0;for(let o=e.t;o<e.terms.length;o+=1){let i=oe(e.terms[o],t,e.start_i+e.t,e.phrase_length);if(i||n&&(i=oe(e.terms[o],n,e.start_i+e.t,e.phrase_length),i)||(r+=1,t.max!==void 0&&r===t.max))break}return r===0||t.min&&t.min>r?!1:(e.t+=r,!0)},Wl=function(e){const{regs:t}=e,n=t[e.r],r=Object.assign({},n);if(r.negative=!1,oe(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){const i=t[e.r+1];i&&(oe(e.terms[e.t],i,e.start_i+e.t,e.phrase_length)?e.r+=1:i.optional&&t[e.r+2]&&oe(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Kl(e,r,t[e.r+1]):(e.t+=1,!0)},Jl=function(e){const{regs:t}=e,n=t[e.r],r=e.terms[e.t],o=oe(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||o){const i=e.terms[e.t+1];(!i||!oe(i,t[e.r+1],e.start_i+e.t,e.phrase_length))&&(e.r+=1)}},Rl=function(e){const{regs:t,phrase_length:n}=e,r=t[e.r];return e.t=Fl(e,t[e.r+1]),e.t===null||r.min&&r.min>e.t||r.end===!0&&e.start_i+e.t!==n?null:!0},ql=function(e){const t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),n.method==="hasContraction"&&(e.t+=1)}},Ul=function(e,t){const n=e.regs[e.r],r=Hn(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++},Jn=function(e){const{regs:t}=e,n=t[e.r],r=e.terms[e.t],o=e.t;return n.optional&&t[e.r+1]&&n.negative?!0:(n.optional&&t[e.r+1]&&Jl(e),r.implicit&&e.terms[e.t+1]&&ql(e),e.t+=1,n.end===!0&&e.t!==e.terms.length&&n.greedy!==!0||n.greedy===!0&&!Rl(e)?null:(e.hasGroup===!0&&Ul(e,o),!0))},Vr=function(e,t,n,r){if(e.length===0||t.length===0)return null;const o={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r<t.length;o.r+=1){const s=t[o.r];if(o.hasGroup=!!s.group,o.hasGroup===!0?o.inGroup=s.group:o.inGroup=null,!o.terms[o.t]){if(t.slice(o.r).some(l=>!l.optional)===!1)break;return null}if(s.anything===!0&&s.greedy===!0){if(!zl(o))return null;continue}if(s.choices!==void 0&&s.operator==="or"){if(!Ml(o))return null;continue}if(s.choices!==void 0&&s.operator==="and"){if(!Ll(o))return null;continue}if(s.anything===!0){if(s.negative&&s.anything||!Jn(o))return null;continue}if(Sl(s,o)===!0){if(!Jn(o))return null;continue}if(s.negative){if(!Wl(o))return null;continue}if(oe(o.terms[o.t],s,o.start_i+o.t,o.phrase_length)===!0){if(!Jn(o))return null;continue}if(s.optional!==!0)return null}const i=[null,n,o.t+n];if(i[1]===i[2])return null;const a={};return Object.keys(o.groups).forEach(s=>{const u=o.groups[s],c=n+u.start;a[s]=[null,c,c+u.length]}),{pointer:i,groups:a}},_l=function(e,t){const n=[],r={};return e.length===0?{ptrs:n,byGroup:r}:(typeof t=="number"&&(t=String(t)),t?e.forEach(o=>{o.groups[t]&&n.push(o.groups[t])}):e.forEach(o=>{n.push(o.pointer),Object.keys(o.groups).forEach(i=>{r[i]=r[i]||[],r[i].push(o.groups[i])})}),{ptrs:n,byGroup:r})},Ql=function(e,t,n){return e=e.filter(r=>{const[o,i,a]=r.pointer,s=n[o].slice(i,a);for(let u=0;u<s.length;u+=1){const c=s.slice(u);if(Vr(c,t,u,s.length)!==null)return!1}return!0}),e},Ca=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Zl=function(e,t,n){let r=Vr(e,t,0,e.length);return r?(r=Ca(r,n),r):null},Xl=function(e,t,n){n=n||[];const{regs:r,group:o,justOne:i}=t;let a=[];if(!r||r.length===0)return{ptrs:[],byGroup:{}};const s=r.filter(u=>u.optional!==!0&&u.negative!==!0).length;e:for(let u=0;u<e.length;u+=1){const c=e[u];if(!(n[u]&&Tl(r,n[u]))){if(r[0].start===!0){const l=Zl(c,r,u);l&&a.push(l);continue}for(let l=0;l<c.length;l+=1){const d=c.slice(l);if(d.length<s)break;let p=Vr(d,r,l,c.length);if(p){if(p=Ca(p,u),a.push(p),i===!0)break e;const P=p.pointer[2];Math.abs(P-1)>l&&(l=Math.abs(P-1))}}}}return r[r.length-1].end===!0&&(a=a.filter(u=>{const c=u.pointer[0];return e[c].length===u.pointer[2]})),t.notIf&&(a=Ql(a,t.notIf,e)),a=_l(a,o),a.ptrs.forEach(u=>{const[c,l,d]=u;u[3]=e[c][l].id,u[4]=e[c][d-1].id}),a},Yl={one:{termMethods:Qt,parseMatch:jl,match:Xl}},eh={parseMatch:function(e,t){const n=this.world(),r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}},th={api:fl,methods:Yl,lib:eh},nh=/^\../,rh=/^#./,oh=e=>(e=e.replace(/&/g,"&amp;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=e.replace(/"/g,"&quot;"),e=e.replace(/'/g,"&apos;"),e),ih=function(e){let t="",n="</span>";return e=oh(e),nh.test(e)?t=`<span class="${e.replace(/^\./,"")}"`:rh.test(e)?t=`<span id="${e.replace(/^#/,"")}"`:(t=`<${e}`,n=`</${e}>`),t+=">",{start:t,end:n}},ah=function(e,t){const n={},r={};return Object.keys(t).forEach(o=>{let i=t[o];const a=ih(o);typeof i=="string"&&(i=e.match(i)),i.docs.forEach(s=>{if(s.every(l=>l.implicit))return;const u=s[0].id;n[u]=n[u]||[],n[u].push(a.start);const c=s[s.length-1].id;r[c]=r[c]||[],r[c].push(a.end)})}),{starts:n,ends:r}},sh=function(e){const{starts:t,ends:n}=ah(this,e);let r="";return this.docs.forEach(o=>{for(let i=0;i<o.length;i+=1){const a=o[i];t.hasOwnProperty(a.id)&&(r+=t[a.id].join("")),r+=a.pre||"",r+=a.text||"",n.hasOwnProperty(a.id)&&(r+=n[a.id].join("")),r+=a.post||""}}),r},uh={html:sh},Na=/[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/,pr=/^[(['"*~\uFF02\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F]+/,ch=/[,:;)('"\u201D\]]/,lh=/^[-–—]$/,hh=/ /,dt=function(e,t,n=!0){let r="";return e.forEach(o=>{let i=o.pre||"",a=o.post||"";t.punctuation==="some"&&(i=i.replace(pr,""),lh.test(a)&&(a=" "),a=a.replace(ch,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),o.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),t.whitespace==="some"&&(i=i.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(i=i.replace(pr,""),a==="-"?a=" ":a=a.replace(Na,""));let s=o[t.form||"text"]||o.normal||"";t.form==="implicit"&&(s=o.implicit||o.text),t.form==="root"&&o.implicit&&(s=o.root||o.implicit||o.normal),(t.form==="machine"||t.form==="implicit"||t.form==="root")&&o.implicit&&(!a||!hh.test(a))&&(a+=" "),r+=i+s+a}),n===!1&&(r=r.trim()),t.lowerCase===!0&&(r=r.toLowerCase()),r},dh=function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r<e.length;r+=1)n+=dt(e[r],t,!0);if(t.keepSpace||(n=n.trim()),t.keepEndPunct===!1){e[0][0].tags.has("Emoticon")||(n=n.replace(pr,""));const r=e[e.length-1];r[r.length-1].tags.has("Emoticon")||(n=n.replace(Na,"")),n.endsWith("'")&&!n.endsWith("s'")&&(n=n.replace(/'/,""))}return t.cleanWhitespace===!0&&(n=n.trim()),n},it={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};it.clean=it.normal;it.reduced=it.root;const ja=[];let ft=0;for(;ft<64;)ja[ft]=0|Math.sin(++ft%Math.PI)*4294967296;const Mr=function(e){let t,n,r,o=decodeURI(encodeURI(e))+"€",i=o.length;const a=[t=1732584193,n=4023233417,~t,~n],s=[];for(e=--i/4+2|15,s[--e]=i*8;~i;)s[i>>2]|=o.charCodeAt(i)<<8*i--;for(ft=o=0;ft<e;ft+=16){for(i=a;o<64;i=[r=i[3],t+((r=i[0]+[t&n|~t&r,r&t|~r&n,t^n^r,n^(t|~r)][i=o>>4]+ja[o]+~~s[ft|[o,5*o+1,3*o+5,7*o][i]&15])<<(i=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*i+o++%4])|r>>>-i),t,n])t=i[1]|0,n=i[2];for(o=4;o;)a[--o]+=i[o]}for(e="";o<32;)e+=(a[o>>3]>>(1^o++)*4&15).toString(16);return e},fh={text:!0,terms:!0},To={case:"none",unicode:"some",form:"machine",punctuation:"some"},Rn=function(e,t){return Object.assign({},e,t)},Xe={text:e=>dt(e,{keepPunct:!0},!1),normal:e=>dt(e,Rn(it.normal,{keepPunct:!0}),!1),implicit:e=>dt(e,Rn(it.implicit,{keepPunct:!0}),!1),machine:e=>dt(e,To,!1),root:e=>dt(e,Rn(To,{form:"root"}),!1),hash:e=>Mr(dt(e,{keepPunct:!0},!1)),offset:e=>{const t=Xe.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(t=>{const n=Object.assign({},t);return n.tags=Array.from(t.tags),n}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(t=>t.dirty===!0)};Xe.sentences=Xe.sentence;Xe.clean=Xe.normal;Xe.reduced=Xe.root;const ph=function(e,t){return t=t||{},typeof t=="string"&&(t={}),t=Object.assign({},fh,t),t.offset&&e.compute("offset"),e.docs.map((n,r)=>{const o={};return Object.keys(t).forEach(i=>{t[i]&&Xe[i]&&(o[i]=Xe[i](n,e,r))}),o})},gr={json:function(e){const t=ph(this,e);return typeof e=="number"?t[e]:t}};gr.data=gr.json;const gh=()=>typeof window<"u"&&window.document,mh=function(e){const t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):gh()?(t.clientSide(this),this):(t.tags(this),this)},yh=function(e){const t=e.pre||"",n=e.post||"";return t+e.text+n},bh=function(e,t){const n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(i=>{n[i[3]]={fn:t[r],end:i[2]}})}),n},$a=function(e,t){const n=bh(e,t);let r="";return e.docs.forEach((o,i)=>{for(let a=0;a<o.length;a+=1){const s=o[a];if(n.hasOwnProperty(s.id)){const{fn:u,end:c}=n[s.id],l=e.update([[i,a,c]]);r+=o[a].pre||"",r+=u(l),a=c-1,r+=o[a].post||""}else r+=yh(s)}}),r},vh=e=>Object.prototype.toString.call(e)==="[object Object]",wh=function(e){const t={};return e.forEach(r=>{t[r]=t[r]||0,t[r]+=1}),Object.keys(t).map(r=>({normal:r,count:t[r]})).sort((r,o)=>r.count>o.count?-1:0)},Ph=function(e){if(vh(e))return $a(this,e);if(e==="text")return this.text();if(e==="normal")return this.text("normal");if(e==="root")return this.text("root");if(e==="machine"||e==="reduced")return this.text("machine");if(e==="hash"||e==="md5")return Mr(this.text());if(e==="json")return this.json();if(e==="offset"||e==="offsets")return this.compute("offset"),this.json({offset:!0});if(e==="array")return this.docs.map(n=>n.reduce((r,o)=>r+o.pre+o.text+o.post,"").trim()).filter(n=>n);if(e==="freq"||e==="frequency"||e==="topk")return wh(this.json({normal:!0}).map(t=>t.normal));if(e==="terms"){let t=[];return this.docs.forEach(n=>{let r=n.map(o=>o.text);r=r.filter(o=>o),t=t.concat(r)}),t}return e==="tags"?this.docs.map(t=>t.reduce((n,r)=>(n[r.implicit||r.normal]=Array.from(r.tags),n),{})):e==="debug"?this.debug():this.text()},kh={debug:mh,out:Ph,wrap:function(e){return $a(this,e)}},Ah=e=>Object.prototype.toString.call(e)==="[object Object]",xh={text:function(e){let t={};if(e&&typeof e=="string"&&it.hasOwnProperty(e)?t=Object.assign({},it[e]):e&&Ah(e)&&(t=Object.assign({},e)),t.keepSpace===void 0&&!this.isFull()&&(t.keepSpace=!1),t.keepEndPunct===void 0&&this.pointer){const n=this.pointer[0];n&&n[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return t.keepPunct===void 0&&(t.keepPunct=!0),t.keepSpace===void 0&&(t.keepSpace=!0),dh(this.docs,t)}},Ch=Object.assign({},kh,xh,gr,uh),Nh=function(e){Object.assign(e.prototype,Ch)},jh=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(t=>{console.groupCollapsed(t.text());const r=t.docs[0].map(o=>{let i=o.text||"-";o.implicit&&(i="["+o.implicit+"]");const a="["+Array.from(o.tags).join(", ")+"]";return{text:i,tags:a}});console.table(r,["text","tags"]),console.groupEnd()})},Le="\x1B[0m",be={green:e=>"\x1B[32m"+e+Le,red:e=>"\x1B[31m"+e+Le,blue:e=>"\x1B[34m"+e+Le,magenta:e=>"\x1B[35m"+e+Le,cyan:e=>"\x1B[36m"+e+Le,yellow:e=>"\x1B[33m"+e+Le,black:e=>"\x1B[30m"+e+Le,dim:e=>"\x1B[2m"+e+Le,i:e=>"\x1B[3m"+e+Le},$h=function(e,t){return t.one.tagSet&&(e=e.map(n=>{if(!t.one.tagSet.hasOwnProperty(n))return n;const r=t.one.tagSet[n].color||"blue";return be[r](n)})),e.join(", ")},Th=function(e){const{docs:t,model:n}=e;t.length===0&&console.log(be.blue(`
5
- ──────`)),t.forEach(r=>{console.log(be.blue(`
6
- ┌─────────`)),r.forEach(o=>{const i=[...o.tags||[]];let a=o.text||"-";o.sense&&(a=`{${o.normal}/${o.sense}}`),o.implicit&&(a="["+o.implicit+"]"),a=be.yellow(a);let s="'"+a+"'";if(o.reference){const c=e.update([o.reference]).text("normal");s+=` - ${be.dim(be.i("["+c+"]"))}`}s=s.padEnd(18);const u=be.blue(" │ ")+be.i(s)+" - "+$h(i,n);console.log(u)})}),console.log(`
7
- `)},Ih=function(e){const{docs:t}=e;console.log(""),t.forEach(n=>{const r=[];n.forEach(o=>{o.chunk==="Noun"?r.push(be.blue(o.implicit||o.normal)):o.chunk==="Verb"?r.push(be.green(o.implicit||o.normal)):o.chunk==="Adjective"?r.push(be.yellow(o.implicit||o.normal)):o.chunk==="Pivot"?r.push(be.red(o.implicit||o.normal)):r.push(o.implicit||o.normal)}),console.log(r.join(" "),`
8
- `)}),console.log(`
9
- `)},Eh=(e,t,n)=>{const r=n*9,o=t.start+r,i=o+t.length,a=e.substring(0,o),s=e.substring(o,i),u=e.substring(i,e.length);return[a,s,u]},Dh=function(e,t,n){const r=Eh(e,t,n);return`${r[0]}${be.blue(r[1])}${r[2]}`},Oh=function(e){if(!e.found)return;const t={};e.fullPointer.forEach(n=>{t[n[0]]=t[n[0]]||[],t[n[0]].push(n)}),Object.keys(t).forEach(n=>{let o=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((s,u)=>{o=Dh(o,s.offset,u)}),console.log(o)}),console.log(`
10
- `)},Hh={tags:Th,clientSide:jh,chunks:Ih,highlight:Oh},Fh={api:Nh,methods:{one:{hash:Mr,debug:Hh}}},Ta=function(e,t){if(e[0]!==t[0])return!1;const[,n,r]=e,[,o,i]=t;return n<=o&&r>o||o<=n&&i>n},Gh=function(e){let t=e[0][1],n=e[0][2];return e.forEach(r=>{r[1]<t&&(t=r[1]),r[2]>n&&(n=r[2])}),[e[0][0],t,n]},Fn=function(e){const t={};return e.forEach(n=>{t[n[0]]=t[n[0]]||[],t[n[0]].push(n)}),t},Sh=function(e){const t={};for(let n=0;n<e.length;n+=1)t[e[n].join(",")]=e[n];return Object.values(t)},zh=function(e,t){const[n,r]=e,o=t[1],i=t[2],a={};if(r<o){const s=o<e[2]?o:e[2];a.before=[n,r,s]}return a.match=t,e[2]>i&&(a.after=[n,i,e[2]]),a},Bh=function(e,t){return e[1]<=t[1]&&t[2]<=e[2]},Ia=function(e,t){const n=Fn(t),r=[];return e.forEach(o=>{const[i]=o;let a=n[i]||[];if(a=a.filter(u=>Bh(o,u)),a.length===0){r.push({passthrough:o});return}a=a.sort((u,c)=>u[1]-c[1]);let s=o;a.forEach((u,c)=>{const l=zh(s,u);a[c+1]?(r.push({before:l.before,match:l.match}),l.after&&(s=l.after)):r.push(l)})}),r},Vh=20,Mh=function(e,t,n){for(let r=0;r<Vh;r+=1){if(t[n-r]){const o=t[n-r].findIndex(i=>i.id===e);if(o!==-1)return[n-r,o]}if(t[n+r]){const o=t[n+r].findIndex(i=>i.id===e);if(o!==-1)return[n+r,o]}}return null},Lh=function(e,t){const[n,r,,,o]=e,i=t[n],a=i.findIndex(s=>s.id===o);return a===-1?(e[2]=t[n].length,e[4]=i.length?i[i.length-1].id:null):e[2]=a,t[n].slice(r,e[2]+1)},Kh=function(e,t){let n=[];return e.forEach((r,o)=>{if(!r)return;let[i,a,s,u,c]=r,l=t[i]||[];if(a===void 0&&(a=0),s===void 0&&(s=l.length),u&&(!l[a]||l[a].id!==u)){const d=Mh(u,t,i);if(d!==null){const p=s-a;l=t[d[0]].slice(d[1],d[1]+p);const P=l[0]?l[0].id:null;e[o]=[d[0],d[1],d[1]+p,P]}}else l=l.slice(a,s);l.length!==0&&a!==s&&(c&&l[l.length-1].id!==c&&(l=Lh(r,t)),n.push(l))}),n=n.filter(r=>r.length>0),n},Wh=function(e){const t=[];for(let n=0;n<e.length;n+=1)for(let r=0;r<e[n].length;r+=1)t.push(e[n][r]);return t},Jh={one:{termList:Wh,getDoc:Kh,pointer:{indexN:Fn,splitAll:Ia}}},Ea=function(e,t){const n=e.concat(t),r=Fn(n);let o=[];return n.forEach(i=>{const[a]=i;if(r[a].length===1){o.push(i);return}const s=r[a].filter(c=>Ta(i,c));s.push(i);const u=Gh(s);o.push(u)}),o=Sh(o),o},Da=function(e,t){const n=[];return Ia(e,t).forEach(o=>{o.passthrough&&n.push(o.passthrough),o.before&&n.push(o.before),o.after&&n.push(o.after)}),n},Rh=function(e,t){const n=e[1]<t[1]?t[1]:e[1],r=e[2]>t[2]?t[2]:e[2];return n<r?[e[0],n,r]:null},qh=function(e,t){const n=Fn(t),r=[];return e.forEach(o=>{let i=n[o[0]]||[];i=i.filter(a=>Ta(o,a)),i.length!==0&&i.forEach(a=>{const s=Rh(o,a);s&&r.push(s)})}),r},Uh=function(e){return Object.prototype.toString.call(e)==="[object Array]"},Lr=(e,t)=>typeof e=="string"||Uh(e)?t.match(e):e||t.none(),rn=function(e,t){return e.map(n=>{const[r,o]=n;return t[r]&&t[r][o]&&(n[3]=t[r][o].id),n})},Be={};Be.union=function(e){e=Lr(e,this);let t=Ea(this.fullPointer,e.fullPointer);return t=rn(t,this.document),this.toView(t)};Be.and=Be.union;Be.intersection=function(e){e=Lr(e,this);let t=qh(this.fullPointer,e.fullPointer);return t=rn(t,this.document),this.toView(t)};Be.not=function(e){e=Lr(e,this);let t=Da(this.fullPointer,e.fullPointer);return t=rn(t,this.document),this.toView(t)};Be.difference=Be.not;Be.complement=function(){const e=this.all();let t=Da(e.fullPointer,this.fullPointer);return t=rn(t,this.document),this.toView(t)};Be.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Ea(e,[t])}),e=rn(e,this.document),this.update(e)};const _h=function(e){Object.assign(e.prototype,Be)},Qh={methods:Jh,api:_h},Zh={buildNet:function(e){const n=this.methods().one.buildNet(e,this.world());return n.isNet=!0,n}},Xh=function(e){e.prototype.sweep=function(t,n={}){const{world:r,docs:o}=this,{methods:i}=r;let a=i.one.bulkMatch(o,t,this.methods,n);n.tagger!==!1&&i.one.bulkTagger(a,o,this.world),a=a.map(u=>{const c=u.pointer,l=o[c[0]][c[1]],d=c[2]-c[1];return l.index&&(u.pointer=[l.index[0],l.index[1],c[1]+d]),u});const s=a.map(u=>u.pointer);return a=a.map(u=>(u.view=this.update([u.pointer]),delete u.regs,delete u.needs,delete u.pointer,delete u._expanded,u)),{view:this.update(s),found:a}}},mr=function(e){return e.optional===!0||e.negative===!0?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null},Yh=function(e){const t=[];return e.forEach(n=>{t.push(mr(n)),n.operator==="and"&&n.choices&&n.choices.forEach(r=>{r.forEach(o=>{t.push(mr(o))})})}),t.filter(n=>n)},ed=function(e){const t=[];let n=0;return e.forEach(r=>{r.operator==="or"&&!r.optional&&!r.negative&&(r.fastOr&&Array.from(r.fastOr).forEach(o=>{t.push(o)}),r.choices&&r.choices.forEach(o=>{o.forEach(i=>{const a=mr(i);a&&t.push(a)})}),n+=1)}),{wants:t,count:n}},td=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(r=>{r.regs=n(r.match,{},t),typeof r.ifNo=="string"&&(r.ifNo=[r.ifNo]),r.notIf&&(r.notIf=n(r.notIf,{},t)),r.needs=Yh(r.regs);const{wants:o,count:i}=ed(r.regs);r.wants=o,r.minWant=i,r.minWords=r.regs.filter(a=>!a.optional).length}),e},nd=function(e,t){e=td(e,t);const n={};e.forEach(o=>{o.needs.forEach(i=>{n[i]=Array.isArray(n[i])?n[i]:[],n[i].push(o)}),o.wants.forEach(i=>{n[i]=Array.isArray(n[i])?n[i]:[],n[i].push(o)})}),Object.keys(n).forEach(o=>{const i={};n[o]=n[o].filter(a=>typeof i[a.match]=="boolean"?!1:(i[a.match]=!0,!0))});const r=e.filter(o=>o.needs.length===0&&o.wants.length===0);return{hooks:n,always:r}},rd=function(e,t){return e.map((n,r)=>{let o=[];Object.keys(t).forEach(a=>{e[r].has(a)&&(o=o.concat(t[a]))});const i={};return o=o.filter(a=>typeof i[a.match]=="boolean"?!1:(i[a.match]=!0,!0)),o})},od=function(e,t){return e.map((n,r)=>{const o=t[r];return n=n.filter(i=>i.needs.every(a=>o.has(a))),n=n.filter(i=>!(i.ifNo!==void 0&&i.ifNo.some(a=>o.has(a))===!0)),n=n.filter(i=>i.wants.length===0?!0:i.wants.filter(s=>o.has(s)).length>=i.minWant),n})},id=function(e,t,n,r,o){const i=[];for(let a=0;a<e.length;a+=1)for(let s=0;s<e[a].length;s+=1){const u=e[a][s],c=r.one.match([t[a]],u);if(c.ptrs.length>0&&(c.ptrs.forEach(l=>{l[0]=a;const d=Object.assign({},u,{pointer:l});u.unTag!==void 0&&(d.unTag=u.unTag),i.push(d)}),o.matchOne===!0))return[i[0]]}return i},ad=function(e,t){return e.map((n,r)=>{const o=t[r].length;return n=n.filter(i=>o>=i.minWords),n})},sd=function(e,t,n,r={}){const o=n.one.cacheDoc(e);let i=rd(o,t.hooks);return i=od(i,o),t.always.length>0&&(i=i.map(s=>s.concat(t.always))),i=ad(i,e),id(i,e,o,n,r)},ud=function(e,t,n){const r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;const o=r[t].not||[];for(let i=0;i<e.length;i+=1){const a=e[i];for(let s=0;s<o.length;s+=1)if(a.tags.has(o[s])===!0)return!1}return!0},cd=function(e,t,n){const{model:r,methods:o}=n,{getDoc:i,setTag:a,unTag:s}=o.one,u=o.two.looksPlural;return e.length===0?e:((process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`
11
-
12
- \x1B[32m→ ${e.length} post-tagger:\x1B[0m`),e.map(l=>{if(!l.tag&&!l.chunk&&!l.unTag)return;const d=l.reason||l.match,p=i([l.pointer],t)[0];if(!(l.safe===!0&&(ud(p,l.tag,r)===!1||p[p.length-1].post==="-"))){if(l.tag!==void 0){if(a(p,l.tag,n,l.safe,`[post] '${d}'`),l.tag==="Noun"&&u){const P=p[p.length-1];u(P.text)?a([P],"Plural",n,l.safe,"quick-plural"):a([P],"Singular",n,l.safe,"quick-singular")}l.freeze===!0&&p.forEach(P=>P.frozen=!0)}l.unTag!==void 0&&s(p,l.unTag,n,l.safe,d),l.chunk&&p.forEach(P=>P.chunk=l.chunk)}}))},ld={buildNet:nd,bulkMatch:sd,bulkTagger:cd},hd={lib:Zh,api:Xh,methods:{one:ld}},Oa=/ /,Io=function(e,t){t==="Noun"&&(e.chunk=t),t==="Verb"&&(e.chunk=t)},Ha=function(e,t,n,r){if(e.tags.has(t)===!0||t===".")return null;e.frozen===!0&&(r=!0);const o=n[t];if(o){if(o.not&&o.not.length>0)for(let i=0;i<o.not.length;i+=1){if(r===!0&&e.tags.has(o.not[i]))return null;e.tags.delete(o.not[i])}if(o.parents&&o.parents.length>0)for(let i=0;i<o.parents.length;i+=1)e.tags.add(o.parents[i]),Io(e,o.parents[i])}return e.tags.add(t),e.dirty=!0,Io(e,t),!0},dd=function(e,t,n,r){const o=t.split(Oa);e.forEach((i,a)=>{let s=o[a];s&&(s=s.replace(/^#/,""),Ha(i,s,n,r))})},fd=function(e){return Object.prototype.toString.call(e)==="[object Array]"},pd=(e,t,n="")=>{const r=a=>"\x1B[33m\x1B[3m"+a+"\x1B[0m",o=a=>"\x1B[3m"+a+"\x1B[0m",i=e.map(a=>a.text||"["+a.implicit+"]").join(" ");typeof t!="string"&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t=typeof t!="string"?t.join(", #"):t,console.log(` ${r(i).padEnd(24)} \x1B[32m→\x1B[0m #${t.padEnd(22)} ${o(n)}`)},Fa=function(e,t,n={},r,o){const i=n.model.one.tagSet||{};if(!t)return;const a=process.env?process.env:self.env||{};if(a&&a.DEBUG_TAGS&&pd(e,t,o),fd(t)===!0){t.forEach(s=>Fa(e,s,n,r));return}if(typeof t!="string"){console.warn(`compromise: Invalid tag '${t}'`);return}if(t=t.trim(),Oa.test(t)){dd(e,t,i,r);return}t=t.replace(/^#/,"");for(let s=0;s<e.length;s+=1)Ha(e[s],t,i,r)},gd=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r<e.length;r+=1){const o=e[r];if(o.frozen===!0)continue;if(t==="*"){o.tags.clear();continue}const i=n[t];if(i&&i.children.length>0)for(let a=0;a<i.children.length;a+=1)o.tags.delete(i.children[a]);o.tags.delete(t)}},md=function(e,t,n){if(!n.hasOwnProperty(t))return!0;const r=n[t].not||[];for(let o=0;o<r.length;o+=1)if(e.tags.has(r[o]))return!1;return!0};var Cn={exports:{}},yd=Cn.exports,Eo;function bd(){return Eo||(Eo=1,(function(e,t){(function(n,r){e.exports=r()})(yd,(function(){const n=function(k){return k.children=k.children||[],k._cache=k._cache||{},k.props=k.props||{},k._cache.parents=k._cache.parents||[],k._cache.children=k._cache.children||[],k},r=/^ *(#|\/\/)/,o=function(k){let v=k.trim().split(/->/),A=[];v.forEach((N=>{A=A.concat((function(O){if(!(O=O.trim()))return null;if(/^\[/.test(O)&&/\]$/.test(O)){let S=(O=(O=O.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return S=S.map((ee=>ee.trim())).filter((ee=>ee)),S=S.map((ee=>n({id:ee}))),S}return[n({id:O})]})(N))})),A=A.filter((N=>N));let $=A[0];for(let N=1;N<A.length;N+=1)$.children.push(A[N]),$=A[N];return A[0]},i=(k,v)=>{let A=[],$=[k];for(;$.length>0;){let N=$.pop();A.push(N),N.children&&N.children.forEach((O=>{v&&v(N,O),$.push(O)}))}return A},a=k=>Object.prototype.toString.call(k)==="[object Array]",s=k=>(k=k||"").trim(),u=function(k=[]){return typeof k=="string"?(function(A){let $=A.split(/\r?\n/),N=[];$.forEach((S=>{if(!S.trim()||r.test(S))return;let ee=($e=>{const at=/^( {2}|\t)/;let Ve=0;for(;at.test($e);)$e=$e.replace(at,""),Ve+=1;return Ve})(S);N.push({indent:ee,node:o(S)})}));let O=(function(S){let ee={children:[]};return S.forEach((($e,at)=>{$e.indent===0?ee.children=ee.children.concat($e.node):S[at-1]&&(function(Ve,st){let h=Ve[st].indent;for(;st>=0;st-=1)if(Ve[st].indent<h)return Ve[st];return Ve[0]})(S,at).node.children.push($e.node)})),ee})(N);return O=n(O),O})(k):a(k)?(function(A){let $={};A.forEach((O=>{$[O.id]=O}));let N=n({});return A.forEach((O=>{if((O=n(O)).parent)if($.hasOwnProperty(O.parent)){let S=$[O.parent];delete O.parent,S.children.push(O)}else console.warn(`[Grad] - missing node '${O.parent}'`);else N.children.push(O)})),N})(k):(i(v=k).forEach(n),v);var v},c="\x1B[0m",l=k=>"\x1B[31m"+k+c,d=k=>"\x1B[2m"+k+c,p=function(k,v){let A="-> ";v&&(A=d("→ "));let $="";return i(k).forEach(((N,O)=>{let S=N.id||"";if(v&&(S=l(S)),O===0&&!N.id)return;let ee=N._cache.parents.length;$+=" ".repeat(ee)+A+S+`
13
- `})),$},P=function(k){let v=i(k);v.forEach(($=>{delete($=Object.assign({},$)).children}));let A=v[0];return A&&!A.id&&Object.keys(A.props).length===0&&v.shift(),v},E={text:p,txt:p,array:P,flat:P},L=function(k,v){return v==="nested"||v==="json"?k:v==="debug"?(console.log(p(k,!0)),null):E.hasOwnProperty(v)?E[v](k):k},Pe=k=>{i(k,((v,A)=>{v.id&&(v._cache.parents=v._cache.parents||[],A._cache.parents=v._cache.parents.concat([v.id]))}))},je=(k,v)=>(Object.keys(v).forEach((A=>{if(v[A]instanceof Set){let $=k[A]||new Set;k[A]=new Set([...$,...v[A]])}else if(($=>$&&typeof $=="object"&&!Array.isArray($))(v[A])){let $=k[A]||{};k[A]=Object.assign({},v[A],$)}else a(v[A])?k[A]=v[A].concat(k[A]||[]):k[A]===void 0&&(k[A]=v[A])})),k),K=/\//;class fe{constructor(v={}){Object.defineProperty(this,"json",{enumerable:!1,value:v,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(v={}){let A=this.json.props||{};return typeof v=="string"&&(A[v]=!0),this.json.props=Object.assign(A,v),this}get(v){if(v=s(v),!K.test(v)){let $=this.json.children.find((N=>N.id===v));return new fe($)}let A=(($,N)=>{let O=(S=>typeof S!="string"?S:(S=S.replace(/^\//,"")).split(/\//))(N=N||"");for(let S=0;S<O.length;S+=1){let ee=$.children.find(($e=>$e.id===O[S]));if(!ee)return null;$=ee}return $})(this.json,v)||n({});return new fe(A)}add(v,A={}){if(a(v))return v.forEach((N=>this.add(s(N),A))),this;v=s(v);let $=n({id:v,props:A});return this.json.children.push($),new fe($)}remove(v){return v=s(v),this.json.children=this.json.children.filter((A=>A.id!==v)),this}nodes(){return i(this.json).map((v=>(delete(v=Object.assign({},v)).children,v)))}cache(){return(v=>{let A=i(v,((N,O)=>{N.id&&(N._cache.parents=N._cache.parents||[],N._cache.children=N._cache.children||[],O._cache.parents=N._cache.parents.concat([N.id]))})),$={};A.forEach((N=>{N.id&&($[N.id]=N)})),A.forEach((N=>{N._cache.parents.forEach((O=>{$.hasOwnProperty(O)&&$[O]._cache.children.push(N.id)}))})),v._cache.children=Object.keys($)})(this.json),this}list(){return i(this.json)}fillDown(){var v;return v=this.json,i(v,((A,$)=>{$.props=je($.props,A.props)})),this}depth(){Pe(this.json);let v=i(this.json),A=v.length>1?1:0;return v.forEach(($=>{if($._cache.parents.length===0)return;let N=$._cache.parents.length+1;N>A&&(A=N)})),A}out(v){return Pe(this.json),L(this.json,v)}debug(){return Pe(this.json),L(this.json,"debug"),this}}const ke=function(k){let v=u(k);return new fe(v)};return ke.prototype.plugin=function(k){k(this)},ke}))})(Cn)),Cn.exports}var vd=bd();const wd=As(vd),vt={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Pd=function(e){if(vt.hasOwnProperty(e.id))return vt[e.id];if(vt.hasOwnProperty(e.is))return vt[e.is];const t=e._cache.parents.find(n=>vt[n]);return vt[t]},kd=function(e){const t={};return e.forEach(n=>{const{not:r,also:o,is:i,novel:a}=n.props;let s=n._cache.parents;o&&(s=s.concat(o)),t[n.id]={is:i,not:r,novel:a,also:o,parents:s,children:n._cache.children,color:Pd(n)}}),Object.keys(t).forEach(n=>{const r=new Set(t[n].not);t[n].not.forEach(o=>{t[o]&&t[o].children.forEach(i=>r.add(i))}),t[n].not=Array.from(r)}),t},Do=function(e){return e?typeof e=="string"?[e]:e:[]},Ad=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&typeof e[n].is=="string"&&!t.hasOwnProperty(e[n].is)&&!e.hasOwnProperty(e[n].is)&&(e[e[n].is]={}),e[n].not&&typeof e[n].not=="string"&&!e.hasOwnProperty(e[n].not)&&!t.hasOwnProperty(e[n].not)&&!e.hasOwnProperty(e[n].not)&&(e[e[n].not]={})}),e},xd=function(e,t){return e=Ad(e,t),Object.keys(e).forEach(n=>{e[n].children=Do(e[n].children),e[n].not=Do(e[n].not)}),Object.keys(e).forEach(n=>{(e[n].not||[]).forEach(o=>{e[o]&&e[o].not&&e[o].not.push(n)})}),e},Cd=function(e){const t=Object.keys(e).map(r=>{const o=e[r],i={not:new Set(o.not),also:o.also,is:o.is,novel:o.novel};return{id:r,parent:o.is,props:i,children:[]}});return wd(t).cache().fillDown().out("array")},Nd=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e},jd=function(e,t){Object.keys(t).length>0&&(e=Nd(e)),e=xd(e,t);const n=Object.assign({},t,e),r=Cd(n);return kd(r)},$d={one:{setTag:Fa,unTag:gd,addTags:jd,canBe:md}},Oo=function(e){return Object.prototype.toString.call(e)==="[object Array]"},Td={tag:function(e,t="",n){if(!this.found||!e)return this;const r=this.termList();if(r.length===0)return this;const{methods:o,verbose:i,world:a}=this;return i===!0&&console.log(" + ",e,t||""),Oo(e)?e.forEach(s=>o.one.setTag(r,s,a,n,t)):o.one.setTag(r,e,a,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;const n=this.termList();if(n.length===0)return this;const{methods:r,verbose:o,model:i}=this;o===!0&&console.log(" - ",e,t||"");const a=i.one.tagSet;return Oo(e)?e.forEach(s=>r.one.unTag(n,s,a)):r.one.unTag(n,e,a),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");const t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach((i,a)=>{i.forEach((s,u)=>{n(s,e,t)||r.push([a,u,u+1])})});const o=this.update(r);return this.difference(o)}},Id=function(e){Object.assign(e.prototype,Td)},Ed=function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet,o=n.one.addTags,i=o(e,r);return t.one.tagSet=i,this},Dd={addTags:Ed},Ho=new Set(["Auxiliary","Possessive"]),Od=function(e,t){return e=e.sort((n,r)=>{if(Ho.has(n)||!t.hasOwnProperty(r))return 1;if(Ho.has(r)||!t.hasOwnProperty(n))return-1;let o=t[n].children||[];const i=o.length;o=t[r].children||[];const a=o.length;return i-a}),e},Hd=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(o=>{o.forEach(i=>{const a=Array.from(i.tags);i.tagRank=Od(a,r)})})},Fd={model:{one:{tagSet:{}}},compute:{tagRank:Hd},methods:$d,api:Id,lib:Dd},Gd=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Sd=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,zd=/((?:\r?\n|\r)+)/,Bd=function(e){const t=[],n=e.split(zd);for(let r=0;r<n.length;r++){const o=n[r].split(Gd);for(let i=0;i<o.length;i++)o[i+1]&&Sd.test(o[i+1])===!0&&(o[i]+=o[i+1],o[i+1]=""),o[i]!==""&&t.push(o[i])}return t},Vd=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,Md=/\S/,Ld=function(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];if(!(r===void 0||r==="")){if(Md.test(r)===!1||Vd.test(r)===!1){if(t[t.length-1]){t[t.length-1]+=r;continue}else if(e[n+1]){e[n+1]=r+e[n+1];continue}}t.push(r)}}return t},Kd=function(e){return!!e.match(/\n$/)},Wd=function(e,t){const n=t.methods.one.tokenize.isSentence,r=t.model.one.abbreviations||new Set,o=[];for(let i=0;i<e.length;i++){const a=e[i];e[i+1]&&!n(a,r)&&!Kd(a)?e[i+1]=a+(e[i+1]||""):a&&a.length>0&&(o.push(a),e[i]="")}return o},Fo=280,Ga={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},Jd=RegExp("["+Object.keys(Ga).join("")+"]","g"),Rd=RegExp("["+Object.values(Ga).join("")+"]","g"),Go=function(e){if(!e)return!1;const t=e.match(Rd);return t!==null&&t.length===1},qd=function(e){const t=[];for(let n=0;n<e.length;n+=1){const o=e[n].match(Jd);if(o!==null&&o.length===1){if(Go(e[n+1])&&e[n+1].length<Fo){e[n]+=e[n+1],t.push(e[n]),e[n+1]="",n+=1;continue}if(Go(e[n+2])){const i=e[n+1]+e[n+2];if(i.length<Fo){e[n]+=i,t.push(e[n]),e[n+1]="",e[n+2]="",n+=2;continue}}}t.push(e[n])}return t},Ud=250,So=/\(/g,_d=/\)/g,Qd=function(e){const t=[];for(let n=0;n<e.length;n+=1){const o=e[n].match(So);if(o!==null&&o.length===1&&e[n+1]&&e[n+1].length<Ud&&e[n+1].match(_d)!==null&&o.length===1&&!So.test(e[n+1])){e[n]+=e[n+1],t.push(e[n]),e[n+1]="",n+=1;continue}t.push(e[n])}return t},Zd=/\S/,zo=/^\s+/,Xd=function(e,t){if(e=e||"",e=String(e),!e||typeof e!="string"||Zd.test(e)===!1)return[];e=e.replace(" "," ");const n=Bd(e);let r=Ld(n);if(r=Wd(r,t),r=qd(r),r=Qd(r),r.length===0)return[e];for(let o=1;o<r.length;o+=1){const i=r[o].match(zo);i!==null&&(r[o-1]+=i[0],r[o]=r[o].replace(zo,""))}return r},Yd=function(e,t){const n=e.split(/[-–—]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:o}=t.one;return n[0].length===1&&/[a-z]/i.test(n[0])||r.hasOwnProperty(n[0])||(n[1]=n[1].trim().replace(/[.?!]$/,""),o.hasOwnProperty(n[1]))?!1:/^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i.test(e)===!0||/^[('"]?([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e)===!0},ef=function(e){const t=[],n=e.split(/[-–—]/);let r="-";const o=e.match(/[-–—]/);o&&o[0]&&(r=o);for(let i=0;i<n.length;i++)i===n.length-1?t.push(n[i]):t.push(n[i]+r);return t},tf=function(e){const t=/^[0-9]{1,4}(:[0-9][0-9])?([a-z]{1,2})? ?[-–—] ?$/,n=/^[0-9]{1,4}([a-z]{1,2})? ?$/;for(let r=0;r<e.length-1;r+=1)e[r+1]&&t.test(e[r])&&n.test(e[r+1])&&(e[r]=e[r]+e[r+1],e[r+1]=null);return e},nf=new RegExp("\\p{L} ?\\/ ?\\p{L}+$","u"),rf=function(e){for(let t=1;t<e.length-1;t++)nf.test(e[t])&&(e[t-1]+=e[t]+e[t+1],e[t]=null,e[t+1]=null);return e},of=/\S/,af=/^[!?.]+$/,sf=/(\S+)/;let yr=[".","?","!",":",";","-","–","—","--","...","(",")","[","]",'"',"'","`","«","»","*","•"];yr=yr.reduce((e,t)=>(e[t]=!0,e),{});const uf=function(e){return Object.prototype.toString.call(e)==="[object Array]"},cf=function(e,t){let n=[],r=[];if(e=e||"",typeof e=="number"&&(e=String(e)),uf(e))return e;const o=e.split(sf);for(let a=0;a<o.length;a++){if(Yd(o[a],t)===!0){r=r.concat(ef(o[a]));continue}r.push(o[a])}let i="";for(let a=0;a<r.length;a++){const s=r[a];of.test(s)===!0&&yr.hasOwnProperty(s)===!1&&af.test(s)===!1?(n.length>0?(n[n.length-1]+=i,n.push(s)):n.push(i+s),i=""):i+=s}return i&&(n.length===0&&(n[0]=""),n[n.length-1]+=i),n=rf(n),n=tf(n),n=n.filter(a=>a),n},Bo=new RegExp("\\p{Letter}","u"),an=/[\p{Number}\p{Currency_Symbol}]/u,lf=/^[a-z]\.([a-z]\.)+/i,hf=/[sn]['’]$/,df=function(e,t){const{prePunctuation:n,postPunctuation:r,emoticons:o}=t.one;let i=e,a="",s="";const u=Array.from(e);if(o.hasOwnProperty(e.trim()))return{str:e.trim(),pre:a,post:" "};let c=u.length;for(let l=0;l<c;l+=1){const d=u[0];if(n[d]!==!0){if((d==="+"||d==="-")&&an.test(u[1])||d==="'"&&d.length===3&&an.test(u[1])||Bo.test(d)||an.test(d))break;a+=u.shift()}}c=u.length;for(let l=0;l<c;l+=1){const d=u[u.length-1];if(r[d]!==!0){if(Bo.test(d)||an.test(d))break;d==="."&&lf.test(i)===!0||d==="'"&&hf.test(i)===!0||(s=u.pop()+s)}}return e=u.join(""),e===""&&(i=i.replace(/ *$/,l=>(s=l||"","")),e=i,a=""),{str:e,pre:a,post:s}},ff=(e,t)=>{const{str:n,pre:r,post:o}=df(e,t);return{text:n,pre:r,post:o,tags:new Set}},pf=function(e,t){const n=t.model.one.unicode||{};e=e||"";const r=e.split("");return r.forEach((o,i)=>{n[o]&&(r[i]=n[o])}),r.join("")},gf=function(e){e=e||"",e=e.toLowerCase(),e=e.trim();const t=e;return e=e.replace(/[,;.!?]+$/,""),e=e.replace(/\u2026/g,"..."),e=e.replace(/\u2013/g,"-"),/^[:;]/.test(e)===!1&&(e=e.replace(/\.{3,}$/g,""),e=e.replace(/[",.!:;?)]+$/g,""),e=e.replace(/^['"(]+/g,"")),e=e.replace(/[\u200B-\u200D\uFEFF]/g,""),e=e.trim(),e===""&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2"),e},mf=/([A-Z]\.)+[A-Z]?,?$/,yf=/^[A-Z]\.,?$/,bf=/[A-Z]{2,}('s|,)?$/,vf=/([a-z]\.)+[a-z]\.?$/,wf=function(e){return mf.test(e)===!0||vf.test(e)===!0||yf.test(e)===!0||bf.test(e)===!0},Pf=function(e){return wf(e)&&(e=e.replace(/\./g,"")),e},Sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=gf(r),r=n(r,t),r=Pf(r),e.normal=r},kf=function(e,t){const{methods:n,model:r}=t,{splitSentences:o,splitTerms:i,splitWhitespace:a}=n.one.tokenize;return e=e||"",e=o(e,t).map(u=>{let c=i(u,r);return c=c.map(l=>a(l,r)),c.forEach(l=>{Sa(l,t)}),c}),e},Af=/[ .][A-Z]\.? *$/i,xf=/(?:\u2026|\.{2,}) *$/,Cf=new RegExp("\\p{L}","u"),Nf=/\. *$/,jf=/^[A-Z]\. $/,$f=function(e,t){if(Cf.test(e)===!1||Af.test(e)===!0||e.length===3&&jf.test(e)||xf.test(e)===!0)return!1;const r=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),o=r[r.length-1].toLowerCase();return!(t.hasOwnProperty(o)===!0&&Nf.test(e)===!0)},Tf={one:{killUnicode:pf,tokenize:{splitSentences:Xd,isSentence:$f,splitTerms:cf,splitWhitespace:ff,fromString:kf}}},If={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"},Ef=["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"],Df=["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],Of=["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],Hf=["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],Ff=["dept","univ","assn","bros","inc","ltd","co"],Gf=["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],Sf=["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],zf=[[Ef],[Sf,"Unit"],[Hf,"Noun"],[Df,"Honorific"],[Of,"Month"],[Ff,"Organization"],[Gf,"Place"]],za={},Nn={};zf.forEach(e=>{e[0].forEach(t=>{za[t]=!0,Nn[t]="Abbreviation",e[1]!==void 0&&(Nn[t]=[Nn[t],e[1]])})});const Bf=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce((e,t)=>(e[t]=!0,e),{}),Vf={like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},Vo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗễ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇіїi̇",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ba={};Object.keys(Vo).forEach(function(e){Vo[e].split("").forEach(function(t){Ba[t]=e})});const Mf={"#":!0,"@":!0,_:!0,"°":!0,"​":!0,"‌":!0,"‍":!0,"\uFEFF":!0},Lf={"%":!0,_:!0,"°":!0,"​":!0,"‌":!0,"‍":!0,"\uFEFF":!0},Kf={"<3":!0,"</3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0},Wf={one:{aliases:If,abbreviations:za,prefixes:Bf,suffixes:Vf,prePunctuation:Mf,postPunctuation:Lf,lexicon:Nn,unicode:Ba,emoticons:Kf}},Mo=/\//,Jf=/[a-z]\.[a-z]/i,Rf=/[0-9]/,qf=function(e,t){const n=e.normal||e.text||e.machine,r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Mo.test(n)&&!Jf.test(n)&&!Rf.test(n)){const o=n.split(Mo);o.length<=3&&o.forEach(i=>{i=i.trim(),i!==""&&(e.alias=e.alias||[],e.alias.push(i))})}return e},Uf=new RegExp("^\\p{Letter}+-\\p{Letter}+$","u"),_f=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),Uf.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},Qf=function(e){const t=e.docs,n={};for(let r=0;r<t.length;r+=1)for(let o=0;o<t[r].length;o+=1){const i=t[r][o],a=i.machine||i.normal;n[a]=n[a]||0,n[a]+=1}for(let r=0;r<t.length;r+=1)for(let o=0;o<t[r].length;o+=1){const i=t[r][o],a=i.machine||i.normal;i.freq=n[a]}},Zf=function(e){let t=0,n=0;const r=e.document;for(let o=0;o<r.length;o+=1)for(let i=0;i<r[o].length;i+=1){const a=r[o][i];a.offset={index:n,start:t+a.pre.length,length:a.text.length},t+=a.pre.length+a.text.length+a.post.length,n+=1}},Xf=function(e){const t=e.document;for(let n=0;n<t.length;n+=1)for(let r=0;r<t[n].length;r+=1)t[n][r].index=[n,r]},Yf=function(e){let t=0;const n=e.docs;for(let r=0;r<n.length;r+=1)for(let o=0;o<n[r].length;o+=1)n[r][o].normal!==""&&(t+=1,n[r][o].wordCount=t)},qn=function(e,t){const n=e.docs;for(let r=0;r<n.length;r+=1)for(let o=0;o<n[r].length;o+=1)t(n[r][o],e.world)},ep={alias:e=>qn(e,qf),machine:e=>qn(e,_f),normal:e=>qn(e,Sa),freq:Qf,offset:Zf,index:Xf,wordCount:Yf},tp={compute:ep,methods:Tf,model:Wf,hooks:["alias","machine","index","id"]},np=function(e){const t=e.model.one.typeahead,n=e.docs;if(n.length===0||Object.keys(t).length===0)return;const r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&t.hasOwnProperty(o.normal)){const i=t[o.normal];o.implicit=i,o.machine=i,o.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}},rp={typeahead:np},op=function(){const e=this.docs;if(e.length===0)return this;const t=e[e.length-1]||[],n=t[t.length-1];return n.typeahead===!0&&n.machine&&(n.text=n.machine,n.normal=n.machine),this},ip=function(e){e.prototype.autoFill=op},ap=function(e,t,n){let r={};const o=[],i=n.prefixes||{};return e.forEach(a=>{a=a.toLowerCase().trim();let s=a.length;t.max&&s>t.max&&(s=t.max);for(let u=t.min;u<s;u+=1){const c=a.substring(0,u);if(!(t.safe&&n.model.one.lexicon.hasOwnProperty(c))){if(i.hasOwnProperty(c)===!0){o.push(c);continue}if(r.hasOwnProperty(c)===!0){o.push(c);continue}r[c]=a}}}),r=Object.assign({},i,r),o.forEach(a=>{delete r[a]}),r},sp=e=>Object.prototype.toString.call(e)==="[object Object]",up={safe:!0,min:3},cp=function(e=[],t={}){const n=this.model();t=Object.assign({},up,t),sp(e)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));const r=ap(e,t,this.world());return Object.keys(r).forEach(o=>{if(n.one.typeahead.hasOwnProperty(o)){delete n.one.typeahead[o];return}n.one.typeahead[o]=r[o]}),this},lp={typeahead:cp},hp={one:{typeahead:{}}},dp={model:hp,api:ip,lib:lp,compute:rp,hooks:["typeahead"]};I.extend(rc);I.extend(Fh);I.extend(th);I.extend(Qh);I.extend(Fd);I.plugin(Tc);I.extend(tp);I.extend(Dc);I.plugin(yu);I.extend(Zc);I.extend(dp);I.extend(Kc);I.extend(hd);const Va={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},Lo={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦bests,sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"true¦0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re","Plural|Verb":"true¦leaves",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;! lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,our0thy;!s","Noun|Verb":"true¦0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"true¦0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"true¦0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"true¦a0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"true¦aCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"true¦0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrCt;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"true¦0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"true¦0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"true¦0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"true¦0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦elle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"true¦aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"true¦a07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0m²,²,³;/h,cro2l0;e0liK;!²;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,²;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"true¦0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"true¦aIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"true¦a8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"true¦0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"true¦0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"true¦0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"true¦aTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,iDDlBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"true¦0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"true¦0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"true¦a08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"true¦b3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Person|Verb":"true¦b8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};var Wt={exports:{}},fp=Wt.exports,Ko;function pp(){return Ko||(Ko=1,(function(e,t){(function(n,r){r(t)})(fp,(function(n){var i={commonPrefix:function(h,f){let m=Math.min(h.length,f.length);for(;m>0;){const b=h.slice(0,m);if(b===f.slice(0,m))return b;m-=1}return""},unique:function(h){h.sort();for(let f=1;f<h.length;f++)h[f-1]===h[f]&&h.splice(f,1)}};const a=function(){this.counts={}},s={init:function(h){this.counts[h]===void 0&&(this.counts[h]=0)},add:function(h,f){f===void 0&&(f=1),this.init(h),this.counts[h]+=f},countOf:function(h){return this.init(h),this.counts[h]},highest:function(h){let f=[];const m=Object.keys(this.counts);for(let b=0;b<m.length;b++){const C=m[b];f.push([C,this.counts[C]])}return f.sort(function(b,C){return C[1]-b[1]}),h&&(f=f.slice(0,h)),f}};Object.keys(s).forEach(function(h){a.prototype[h]=s[h]});const u=36,c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",l=c.split("").reduce(function(h,f,m){return h[f]=m,h},{});var P={toAlphaCode:function(h){if(c[h]!==void 0)return c[h];let f=1,m=u,b="";for(;h>=m;h-=m,f++,m*=u);for(;f--;){const C=h%u;b=String.fromCharCode((C<10?48:55)+C)+b,h=(h-C)/u}return b},fromAlphaCode:function(h){if(l[h]!==void 0)return l[h];let f=0,m=1,b=u,C=1;for(;m<h.length;f+=b,m++,b*=u);for(let x=h.length-1;x>=0;x--,C*=u){let H=h.charCodeAt(x)-48;H>10&&(H-=7),f+=H*C}return f}};const E={NODE_SEP:";",KEY_VAL:":",STRING_SEP:",",TERMINAL_PREFIX:"!",BASE:36},L=function(h,f){let m="",b="";h.isTerminal(f)&&(m+=E.TERMINAL_PREFIX);const C=h.nodeProps(f);for(let x=0;x<C.length;x++){const H=C[x];if(typeof f[H]=="number"){m+=b+H,b=E.STRING_SEP;continue}if(h.syms[f[H]._n]){m+=b+H+h.syms[f[H]._n],b="";continue}let Me=P.toAlphaCode(f._n-f[H]._n-1+h.symCount);if(f[H]._g&&Me.length>=f[H]._g.length&&f[f[H]._g]===1){Me=f[H]._g,m+=b+H+Me,b=E.STRING_SEP;continue}m+=b+H+Me,b=""}return m},Pe=function(h,f){if(h.visited(f))return;const m=h.nodeProps(f,!0);for(let b=0;b<m.length;b++){const C=m[b],x=f._n-f[C]._n-1;x<E.BASE&&h.histRel.add(x),h.histAbs.add(f[C]._n,P.toAlphaCode(x).length-1),Pe(h,f[C])}},je=function(h){h.histAbs=h.histAbs.highest(E.BASE);const f=[];f[-1]=0;let m=0,b=0;const C=3+P.toAlphaCode(h.nodeCount).length;for(let x=0;x<E.BASE&&h.histAbs[x]!==void 0;x++)f[x]=h.histAbs[x][1]-C-h.histRel.countOf(E.BASE-x-1)+f[x-1],f[x]>=m&&(m=f[x],b=x+1);return b},K=function(h,f){if(f._n!==void 0)return;const m=h.nodeProps(f,!0);for(let b=0;b<m.length;b++)K(h,f[m[b]]);f._n=h.pos++,h.nodes.unshift(f)},fe=function(h){h.nodes=[],h.nodeCount=0,h.syms={},h.symCount=0,h.pos=0,h.optimize(),h.histAbs=new a,h.histRel=new a,K(h,h.root),h.nodeCount=h.nodes.length,h.prepDFS(),Pe(h,h.root),h.symCount=je(h);for(let f=0;f<h.symCount;f++)h.syms[h.histAbs[f][0]]=P.toAlphaCode(f);for(let f=0;f<h.nodeCount;f++)h.nodes[f]=L(h,h.nodes[f]);for(let f=h.symCount-1;f>=0;f--)h.nodes.unshift(P.toAlphaCode(f)+E.KEY_VAL+P.toAlphaCode(h.nodeCount-h.histAbs[f][0]-1));return h.nodes.join(E.NODE_SEP)},ke=new RegExp("[0-9A-Z,;!:|¦]"),k={_d:!0,_v:!0,_c:!0,_g:!0,_n:!0},v={insertWords:function(h){if(h!==void 0){typeof h=="string"&&(h=h.split(/[^a-zA-Z]+/));for(let f=0;f<h.length;f++)h[f]=h[f].toLowerCase();i.unique(h);for(let f=0;f<h.length;f++)h[f].match(ke)===null&&this.insert(h[f])}},insert:function(h){this._insert(h,this.root);const f=this.lastWord;if(this.lastWord=h,i.commonPrefix(h,f)===f)return;const b=this.uniqueNode(f,h,this.root);b&&this.combineSuffixNode(b)},_insert:function(h,f){let m,b;if(h.length===0)return;const C=Object.keys(f);for(let x=0;x<C.length;x++){const H=C[x];if(m=i.commonPrefix(h,H),m.length!==0){if(H===m&&typeof f[H]=="object"){this._insert(h.slice(m.length),f[H]);return}if(H===h&&typeof f[H]=="number")return;b={},b[H.slice(m.length)]=f[H],this.addTerminal(b,h=h.slice(m.length)),delete f[H],f[m]=b,this.wordCount++;return}}this.addTerminal(f,h),this.wordCount++},addTerminal:function(h,f){if(f.length<=1){h[f]=1;return}const m={};h[f[0]]=m,this.addTerminal(m,f.slice(1))},nodeProps:function(h,f){const m=[];for(const b in h)b!==""&&!k.hasOwnProperty(b)&&(!f||typeof h[b]=="object")&&m.push(b);return m.sort(),m},optimize:function(){this.combineSuffixNode(this.root),this.prepDFS(),this.countDegree(this.root),this.prepDFS(),this.collapseChains(this.root)},combineSuffixNode:function(h){if(h._c)return h;let f=[];this.isTerminal(h)&&f.push("!");const m=this.nodeProps(h);for(let C=0;C<m.length;C++){const x=m[C];typeof h[x]=="object"?(h[x]=this.combineSuffixNode(h[x]),f.push(x),f.push(h[x]._c)):f.push(x)}f=f.join("-");const b=this.suffixes[f];return b||(this.suffixes[f]=h,h._c=this.cNext++,h)},prepDFS:function(){this.vCur++},visited:function(h){return h._v===this.vCur?!0:(h._v=this.vCur,!1)},countDegree:function(h){if(h._d===void 0&&(h._d=0),h._d++,this.visited(h))return;const f=this.nodeProps(h,!0);for(let m=0;m<f.length;m++)this.countDegree(h[f[m]])},collapseChains:function(h){let f,m,b;if(this.visited(h))return;const C=this.nodeProps(h);for(b=0;b<C.length;b++)f=C[b],m=h[f],typeof m=="object"&&(this.collapseChains(m),m._g!==void 0&&(m._d===1||m._g.length===1)&&(delete h[f],f+=m._g,h[f]=m[m._g]));C.length===1&&!this.isTerminal(h)&&(h._g=f)},isTerminal:function(h){return!!h[""]},uniqueNode:function(h,f,m){const b=this.nodeProps(m,!0);for(let C=0;C<b.length;C++){const x=b[C];if(x===h.slice(0,x.length))return x!==f.slice(0,x.length)?m[x]:this.uniqueNode(h.slice(x.length),f.slice(x.length),m[x])}},pack:function(){return fe(this)}},A=function(h){this.root={},this.lastWord="",this.suffixes={},this.suffixCounts={},this.cNext=1,this.wordCount=0,this.insertWords(h),this.vCur=0};Object.keys(v).forEach(function(h){A.prototype[h]=v[h]});const $=function(h){return Object.prototype.toString.call(h)==="[object Array]"},N=function(h){return h==null?{}:typeof h=="string"?h.split(/ +/g).reduce(function(f,m){return f[m]=!0,f},{}):$(h)?h.reduce(function(f,m){return f[m]=!0,f},{}):h},O=function(h){h=N(h);const f=Object.keys(h).reduce(function(m,b){const C=h[b];if($(C)){for(let x=0;x<C.length;x++)m[C[x]]=m[C[x]]||[],m[C[x]].push(b);return m}return m.hasOwnProperty(C)===!1&&Object.defineProperty(m,C,{writable:!0,enumerable:!0,configurable:!0,value:[]}),m[C].push(b),m},{});return Object.keys(f).forEach(function(m){const b=new A(f[m]);f[m]=b.pack()}),Object.keys(f).map(m=>m+"¦"+f[m]).join("|")},S=function(h){const f=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let m=0;m<h.nodes.length;m++){const b=f.exec(h.nodes[m]);if(!b){h.symCount=m;break}h.syms[P.fromAlphaCode(b[1])]=P.fromAlphaCode(b[2])}h.nodes=h.nodes.slice(h.symCount,h.nodes.length)},ee=function(h,f,m){const b=P.fromAlphaCode(f);return b<h.symCount?h.syms[b]:m+b+1-h.symCount},$e=function(h){const f=[],m=(b,C)=>{let x=h.nodes[b];x[0]==="!"&&(f.push(C),x=x.slice(1));const H=x.split(/([A-Z0-9,]+)/g);for(let Me=0;Me<H.length;Me+=2){const Zr=H[Me],Bn=H[Me+1];if(!Zr)continue;const Xr=C+Zr;if(Bn===","||Bn===void 0){f.push(Xr);continue}const bs=ee(h,Bn,b);m(bs,Xr)}};return m(0,""),f},at=function(h){const f={nodes:h.split(";"),syms:[],symCount:0};return h.match(":")&&S(f),$e(f)},Ve=function(h){if(!h)return{};const f=h.split("|").reduce((b,C)=>{const x=C.split("¦");return b[x[0]]=x[1],b},{}),m={};return Object.keys(f).forEach(function(b){const C=at(f[b]);b==="true"&&(b=!0);for(let x=0;x<C.length;x++){const H=C[x];m.hasOwnProperty(H)===!0?Array.isArray(m[H])===!1?m[H]=[m[H],b]:m[H].push(b):m[H]=b}}),m};var st="2.7.0";n.pack=O,n.unpack=Ve,n.version=st,Object.defineProperty(n,"__esModule",{value:!0})}))})(Wt,Wt.exports)),Wt.exports}var gp=pp();const Te=["Possessive","Pronoun"],mp={"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization",g8:"Organization",vh1:"Organization","76ers":"SportsTeam","49ers":"SportsTeam",q1:"Date",q2:"Date",q3:"Date",q4:"Date",km2:"Unit",m2:"Unit",dm2:"Unit",cm2:"Unit",mm2:"Unit",mile2:"Unit",in2:"Unit",yd2:"Unit",ft2:"Unit",m3:"Unit",dm3:"Unit",cm3:"Unit",in3:"Unit",ft3:"Unit",yd3:"Unit","at&t":"Organization","black & decker":"Organization","h & m":"Organization","johnson & johnson":"Organization","procter & gamble":"Organization","ben & jerry's":"Organization","&":"Conjunction",i:["Pronoun","Singular"],he:["Pronoun","Singular"],she:["Pronoun","Singular"],it:["Pronoun","Singular"],they:["Pronoun","Plural"],we:["Pronoun","Plural"],was:["Copula","PastTense"],is:["Copula","PresentTense"],are:["Copula","PresentTense"],am:["Copula","PresentTense"],were:["Copula","PastTense"],her:Te,his:Te,hers:Te,their:Te,theirs:Te,themselves:Te,your:Te,our:Te,ours:Te,my:Te,its:Te,vs:["Conjunction","Abbreviation"],if:["Condition","Preposition"],closer:"Comparative",closest:"Superlative",much:"Adverb",may:"Modal",babysat:"PastTense",blew:"PastTense",drank:"PastTense",drove:"PastTense",forgave:"PastTense",skiied:"PastTense",spilt:"PastTense",stung:"PastTense",swam:"PastTense",swung:"PastTense",guaranteed:"PastTense",shrunk:"PastTense",nears:"PresentTense",nearing:"Gerund",neared:"PastTense",no:["Negative","Expression"]},yp={"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"},bp=[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","</3","<\\3","=("],sn={a:[[/(antenn|formul|nebul|vertebr|vit)a$/i,"$1ae"],[/ia$/i,"ia"]],e:[[/(kn|l|w)ife$/i,"$1ives"],[/(hive)$/i,"$1s"],[/([m|l])ouse$/i,"$1ice"],[/([m|l])ice$/i,"$1ice"]],f:[[/^(dwar|handkerchie|hoo|scar|whar)f$/i,"$1ves"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)f$/i,"$1ves"]],i:[[/(octop|vir)i$/i,"$1i"]],m:[[/([ti])um$/i,"$1a"]],n:[[/^(oxen)$/i,"$1"]],o:[[/(al|ad|at|er|et|ed)o$/i,"$1oes"]],s:[[/(ax|test)is$/i,"$1es"],[/(alias|status)$/i,"$1es"],[/sis$/i,"ses"],[/(bu)s$/i,"$1ses"],[/(sis)$/i,"ses"],[/^(?!talis|.*hu)(.*)man$/i,"$1men"],[/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,"$1i"]],x:[[/(matr|vert|ind|cort)(ix|ex)$/i,"$1ices"],[/^(ox)$/i,"$1en"]],y:[[/([^aeiouy]|qu)y$/i,"$1ies"]],z:[[/(quiz)$/i,"$1zes"]]},vp=/([xsz]|ch|sh)$/,wp=function(e){const t=e[e.length-1];if(sn.hasOwnProperty(t)===!0)for(let n=0;n<sn[t].length;n+=1){const r=sn[t][n][0];if(r.test(e)===!0)return e.replace(r,sn[t][n][1])}return null},Gn=function(e="",t){const{irregularPlurals:n,uncountable:r}=t.two;if(r.hasOwnProperty(e))return e;if(n.hasOwnProperty(e))return n[e];const o=wp(e);return o!==null?o:vp.test(e)?e+"es":e+"s"},Pp=/\|/,Gt=mp,br={},kp={two:{irregularPlurals:Va,uncountable:{}}};Object.keys(Lo).forEach(e=>{const t=gp.unpack(Lo[e]);if(!Pp.test(e)){Object.keys(t).forEach(n=>{Gt[n]=e});return}Object.keys(t).forEach(n=>{if(br[n]=e,e==="Noun|Verb"){const r=Gn(n,kp);br[r]="Plural|Verb"}})});bp.forEach(e=>Gt[e]="Emoticon");delete Gt[""];delete Gt[null];delete Gt[" "];const g="Singular",U={beforeTags:{Determiner:g,Possessive:g,Acronym:g,Noun:g,Adjective:g,PresentTense:g,Gerund:g,PastTense:g,Infinitive:g,Date:g,Ordinal:g,Demonym:g},afterTags:{Value:g,Modal:g,Copula:g,PresentTense:g,PastTense:g,Demonym:g,Actor:g},beforeWords:{the:g,with:g,without:g,of:g,for:g,any:g,all:g,on:g,cut:g,cuts:g,increase:g,decrease:g,raise:g,drop:g,save:g,saved:g,saves:g,make:g,makes:g,made:g,minus:g,plus:g,than:g,another:g,versus:g,neither:g,about:g,favorite:g,best:g,daily:g,weekly:g,linear:g,binary:g,mobile:g,lexical:g,technical:g,computer:g,scientific:g,security:g,government:g,popular:g,formal:g,no:g,more:g,one:g,let:g,her:g,his:g,their:g,our:g,us:g,sheer:g,monthly:g,yearly:g,current:g,previous:g,upcoming:g,last:g,next:g,main:g,initial:g,final:g,beginning:g,end:g,top:g,bottom:g,future:g,past:g,major:g,minor:g,side:g,central:g,peripheral:g,public:g,private:g},afterWords:{of:g,system:g,aid:g,method:g,utility:g,tool:g,reform:g,therapy:g,philosophy:g,room:g,authority:g,says:g,said:g,wants:g,wanted:g,is:g,did:g,do:g,can:g,wise:g}},y="Infinitive",ce={beforeTags:{Modal:y,Adverb:y,Negative:y,Plural:y},afterTags:{Determiner:y,Adverb:y,Possessive:y,Reflexive:y,Preposition:y,Cardinal:y,Comparative:y,Superlative:y},beforeWords:{i:y,we:y,you:y,they:y,to:y,please:y,will:y,have:y,had:y,would:y,could:y,should:y,do:y,did:y,does:y,can:y,must:y,us:y,me:y,let:y,even:y,when:y,help:y,he:y,she:y,it:y,being:y,bi:y,co:y,contra:y,de:y,inter:y,intra:y,mis:y,pre:y,out:y,counter:y,nobody:y,somebody:y,anybody:y,everybody:y},afterWords:{the:y,me:y,you:y,him:y,us:y,her:y,his:y,them:y,they:y,it:y,himself:y,herself:y,itself:y,myself:y,ourselves:y,themselves:y,something:y,anything:y,a:y,an:y,up:y,down:y,by:y,out:y,off:y,under:y,what:y,all:y,to:y,because:y,although:y,how:y,otherwise:y,together:y,though:y,into:y,yet:y,more:y,here:y,there:y,away:y}},Ap={beforeTags:Object.assign({},ce.beforeTags,U.beforeTags,{}),afterTags:Object.assign({},ce.afterTags,U.afterTags,{}),beforeWords:Object.assign({},ce.beforeWords,U.beforeWords,{}),afterWords:Object.assign({},ce.afterWords,U.afterWords,{})},w="Adjective",X={beforeTags:{Determiner:w,Possessive:w,Hyphenated:w},afterTags:{Adjective:w},beforeWords:{seem:w,seemed:w,seems:w,feel:w,feels:w,felt:w,stay:w,appear:w,appears:w,appeared:w,also:w,over:w,under:w,too:w,it:w,but:w,still:w,really:w,quite:w,well:w,very:w,truly:w,how:w,deeply:w,hella:w,profoundly:w,extremely:w,so:w,badly:w,mostly:w,totally:w,awfully:w,rather:w,nothing:w,something:w,anything:w,not:w,me:w,is:w,face:w,faces:w,faced:w,look:w,looks:w,looked:w,reveal:w,reveals:w,revealed:w,sound:w,sounded:w,sounds:w,remains:w,remained:w,prove:w,proves:w,proved:w,becomes:w,stays:w,tastes:w,taste:w,smells:w,smell:w,gets:w,grows:w,as:w,rings:w,radiates:w,conveys:w,convey:w,conveyed:w,of:w},afterWords:{too:w,also:w,or:w,enough:w,as:w}},j="Gerund",rt={beforeTags:{Adverb:j,Preposition:j,Conjunction:j},afterTags:{Adverb:j,Possessive:j,Person:j,Pronoun:j,Determiner:j,Copula:j,Preposition:j,Conjunction:j,Comparative:j},beforeWords:{been:j,keep:j,continue:j,stop:j,am:j,be:j,me:j,began:j,start:j,starts:j,started:j,stops:j,stopped:j,help:j,helps:j,avoid:j,avoids:j,love:j,loves:j,loved:j,hate:j,hates:j,hated:j},afterWords:{you:j,me:j,her:j,him:j,his:j,them:j,their:j,it:j,this:j,there:j,on:j,about:j,for:j,up:j,down:j}},G="Gerund",Ye="Adjective",xp={beforeTags:Object.assign({},X.beforeTags,rt.beforeTags,{Imperative:G,Infinitive:Ye,Plural:G}),afterTags:Object.assign({},X.afterTags,rt.afterTags,{Noun:Ye}),beforeWords:Object.assign({},X.beforeWords,rt.beforeWords,{is:Ye,are:G,was:Ye,of:Ye,suggest:G,suggests:G,suggested:G,recommend:G,recommends:G,recommended:G,imagine:G,imagines:G,imagined:G,consider:G,considered:G,considering:G,resist:G,resists:G,resisted:G,avoid:G,avoided:G,avoiding:G,except:Ye,accept:Ye,assess:G,explore:G,fear:G,fears:G,appreciate:G,question:G,help:G,embrace:G,with:Ye}),afterWords:Object.assign({},X.afterWords,rt.afterWords,{to:G,not:G,the:G})},Wo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},Cp={beforeTags:Object.assign({},X.beforeTags,U.beforeTags,Wo.beforeTags),afterTags:Object.assign({},X.afterTags,U.afterTags,Wo.afterTags),beforeWords:Object.assign({},X.beforeWords,U.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},X.afterWords,U.afterWords)},T="PastTense",Lt="Adjective",un={beforeTags:{Adverb:T,Pronoun:T,ProperNoun:T,Auxiliary:T,Noun:T},afterTags:{Possessive:T,Pronoun:T,Determiner:T,Adverb:T,Comparative:T,Date:T,Gerund:T},beforeWords:{be:T,who:T,get:Lt,had:T,has:T,have:T,been:T,it:T,as:T,for:Lt,more:Lt,always:Lt},afterWords:{by:T,back:T,out:T,in:T,up:T,down:T,before:T,after:T,for:T,the:T,with:T,as:T,on:T,at:T,between:T,to:T,into:T,us:T,them:T,his:T,her:T,their:T,our:T,me:T,about:Lt}},Np={beforeTags:Object.assign({},X.beforeTags,un.beforeTags),afterTags:Object.assign({},X.afterTags,un.afterTags),beforeWords:Object.assign({},X.beforeWords,un.beforeWords),afterWords:Object.assign({},X.afterWords,un.afterWords)},jp={afterTags:{Noun:"Adjective",Conjunction:void 0}},$p={beforeTags:Object.assign({},X.beforeTags,ce.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},X.afterTags,ce.afterTags,jp.afterTags),beforeWords:Object.assign({},X.beforeWords,ce.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},X.afterWords,ce.afterWords,{to:void 0,as:"Adjective"})},cn={beforeTags:{Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},afterTags:{Value:"Gerund"},beforeWords:{are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},afterWords:{the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"}},Tp={beforeTags:Object.assign({},rt.beforeTags,U.beforeTags,cn.beforeTags),afterTags:Object.assign({},rt.afterTags,U.afterTags,cn.afterTags),beforeWords:Object.assign({},rt.beforeWords,U.beforeWords,cn.beforeWords),afterWords:Object.assign({},rt.afterWords,U.afterWords,cn.afterWords)},wt="Singular",ut="Infinitive",Ip={beforeTags:Object.assign({},ce.beforeTags,U.beforeTags,{Adjective:wt,Particle:wt}),afterTags:Object.assign({},ce.afterTags,U.afterTags,{ProperNoun:ut,Gerund:ut,Adjective:ut,Copula:wt}),beforeWords:Object.assign({},ce.beforeWords,U.beforeWords,{is:wt,was:wt,of:wt,have:null}),afterWords:Object.assign({},ce.afterWords,U.afterWords,{instead:ut,about:ut,his:ut,her:ut,to:null,by:null,in:null})},B="Person",Y={beforeTags:{Honorific:B,Person:B},afterTags:{Person:B,ProperNoun:B,Verb:B},beforeWords:{hi:B,hey:B,yo:B,dear:B,hello:B},afterWords:{said:B,says:B,told:B,tells:B,feels:B,felt:B,seems:B,thinks:B,thought:B,spends:B,spendt:B,plays:B,played:B,sing:B,sang:B,learn:B,learned:B,wants:B,wanted:B}},R="Month",Ep="Person",ln={beforeTags:{Date:R,Value:R},afterTags:{Date:R,Value:R},beforeWords:{by:R,in:R,on:R,during:R,after:R,before:R,between:R,until:R,til:R,sometime:R,of:R,this:R,next:R,last:R,previous:R,following:R,with:Ep},afterWords:{sometime:R,in:R,of:R,until:R,the:R}},Dp={beforeTags:Object.assign({},Y.beforeTags,ln.beforeTags),afterTags:Object.assign({},Y.afterTags,ln.afterTags),beforeWords:Object.assign({},Y.beforeWords,ln.beforeWords),afterWords:Object.assign({},Y.afterWords,ln.afterWords)},Op={beforeTags:Object.assign({},U.beforeTags,Y.beforeTags),afterTags:Object.assign({},U.afterTags,Y.afterTags),beforeWords:Object.assign({},U.beforeWords,Y.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},U.afterWords,Y.afterWords)},Hp={beforeTags:Object.assign({},U.beforeTags,Y.beforeTags,ce.beforeTags),afterTags:Object.assign({},U.afterTags,Y.afterTags,ce.afterTags),beforeWords:Object.assign({},U.beforeWords,Y.beforeWords,ce.beforeWords),afterWords:Object.assign({},U.afterWords,Y.afterWords,ce.afterWords)},ie="Place",hn={beforeTags:{Place:ie},afterTags:{Place:ie,Abbreviation:ie},beforeWords:{in:ie,by:ie,near:ie,from:ie,to:ie},afterWords:{in:ie,by:ie,near:ie,from:ie,to:ie,government:ie,council:ie,region:ie,city:ie}},Fp={beforeTags:Object.assign({},hn.beforeTags,Y.beforeTags),afterTags:Object.assign({},hn.afterTags,Y.afterTags),beforeWords:Object.assign({},hn.beforeWords,Y.beforeWords),afterWords:Object.assign({},hn.afterWords,Y.afterWords)},Gp={beforeTags:Object.assign({},Y.beforeTags,X.beforeTags),afterTags:Object.assign({},Y.afterTags,X.afterTags),beforeWords:Object.assign({},Y.beforeWords,X.beforeWords),afterWords:Object.assign({},Y.afterWords,X.afterWords)},xe="Unit",Sp={beforeTags:{Value:xe},afterTags:{},beforeWords:{per:xe,every:xe,each:xe,square:xe,cubic:xe,sq:xe,metric:xe},afterWords:{per:xe,squared:xe,cubed:xe,long:xe}},Tt={"Actor|Verb":Ap,"Adj|Gerund":xp,"Adj|Noun":Cp,"Adj|Past":Np,"Adj|Present":$p,"Noun|Verb":Ip,"Noun|Gerund":Tp,"Person|Noun":Op,"Person|Date":Dp,"Person|Verb":Hp,"Person|Place":Fp,"Person|Adj":Gp,"Unit|Noun":Sp},dn=(e,t)=>{const n=Object.keys(e).reduce((r,o)=>(r[o]=e[o]==="Infinitive"?"PresentTense":"Plural",r),{});return Object.assign(n,t)};Tt["Plural|Verb"]={beforeWords:dn(Tt["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:dn(Tt["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:dn(Tt["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:dn(Tt["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const z="Adjective",te="Infinitive",ct="PresentTense",D="Singular",ne="PastTense",Pt="Adverb",me="Plural",_="Actor",fn="Verb",se="Noun",zp="ProperNoun",Ie="LastName",Jo="Modal",V="Place",Un="Participle",Bp=[null,null,{ea:D,ia:se,ic:z,ly:Pt,"'n":fn,"'t":fn},{oed:ne,ued:ne,xed:ne," so":Pt,"'ll":Jo,"'re":"Copula",azy:z,eer:se,end:fn,ped:ne,ffy:z,ify:te,ing:"Gerund",ize:te,ibe:te,lar:z,mum:z,nes:ct,nny:z,ous:z,que:z,ger:se,ber:se,rol:D,sis:D,ogy:D,oid:D,ian:D,zes:ct,eld:ne,ken:Un,ven:Un,ten:Un,ect:te,ict:te,ign:te,oze:te,ful:z,bal:z,ton:se,pur:V},{amed:ne,aped:ne,ched:ne,lked:ne,rked:ne,reed:ne,nded:ne,mned:z,cted:ne,dged:ne,ield:D,akis:Ie,cede:te,chuk:Ie,czyk:Ie,ects:ct,iend:D,ends:fn,enko:Ie,ette:D,iary:D,wner:D,fies:ct,fore:Pt,gate:te,gone:z,ices:me,ints:me,ruct:te,ines:me,ions:me,ners:me,pers:me,lers:me,less:z,llen:z,made:z,nsen:Ie,oses:ct,ould:Jo,some:z,sson:Ie,ians:me,tion:D,tage:se,ique:D,tive:z,tors:se,vice:D,lier:D,fier:D,wned:ne,gent:D,tist:_,pist:_,rist:_,mist:_,yist:_,vist:_,ists:_,lite:D,site:D,rite:D,mite:D,bite:D,mate:D,date:D,ndal:D,vent:D,uist:_,gist:_,note:D,cide:D,ence:D,wide:z,vide:te,ract:te,duce:te,pose:te,eive:te,lyze:te,lyse:te,iant:z,nary:z,ghty:z,uent:z,erer:_,bury:V,dorf:se,esty:se,wych:V,dale:V,folk:V,vale:V,abad:V,sham:V,wick:V,view:V},{elist:_,holic:D,phite:D,tized:ne,urned:ne,eased:ne,ances:me,bound:z,ettes:me,fully:Pt,ishes:ct,ities:me,marek:Ie,nssen:Ie,ology:se,osome:D,tment:D,ports:me,rough:z,tches:ct,tieth:"Ordinal",tures:me,wards:Pt,where:Pt,archy:se,pathy:se,opoly:se,embly:se,phate:se,ndent:D,scent:D,onist:_,anist:_,alist:_,olist:_,icist:_,ounce:te,iable:z,borne:z,gnant:z,inant:z,igent:z,atory:z,rient:D,dient:D,maker:_,burgh:V,mouth:V,ceter:V,ville:V,hurst:V,stead:V,endon:V,brook:V,shire:V,worth:se,field:zp,ridge:V},{auskas:Ie,parent:D,cedent:D,ionary:D,cklist:D,brooke:V,keeper:_,logist:_,teenth:"Value",worker:_,master:_,writer:_,brough:V,cester:V,ington:V,cliffe:V,ingham:V},{chester:V,logists:_,opoulos:Ie,borough:V,sdottir:Ie}],ye="Adjective",M="Noun",Kt="Verb",Vp=[null,null,{},{neo:M,bio:M,"de-":Kt,"re-":Kt,"un-":Kt,"ex-":M},{anti:M,auto:M,faux:ye,hexa:M,kilo:M,mono:M,nano:M,octa:M,poly:M,semi:ye,tele:M,"pro-":ye,"mis-":Kt,"dis-":Kt,"pre-":ye},{anglo:M,centi:M,ethno:M,ferro:M,grand:M,hepta:M,hydro:M,intro:M,macro:M,micro:M,milli:M,nitro:M,penta:M,quasi:ye,radio:M,tetra:M,"omni-":ye,"post-":ye},{pseudo:ye,"extra-":ye,"hyper-":ye,"inter-":ye,"intra-":ye,"deca-":ye},{electro:M}],q="Adjective",pn="Infinitive",gn="PresentTense",Ke="Singular",le="PastTense",Ro="Adverb",We="Expression",qo="Actor",Uo="Verb",_o="Noun",mn="LastName",Mp={a:[[/.[aeiou]na$/,_o,"tuna"],[/.[oau][wvl]ska$/,mn],[/.[^aeiou]ica$/,Ke,"harmonica"],[/^([hyj]a+)+$/,We,"haha"]],c:[[/.[^aeiou]ic$/,q]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,le,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,le,"rammed"],[/.[aeiou][sg]hed$/,le,"gushed"],[/.[aeiou]red$/,le,"hired"],[/.[aeiou]r?ried$/,le,"hurried"],[/[^aeiou]ard$/,Ke,"steward"],[/[aeiou][^aeiou]id$/,q,""],[/.[vrl]id$/,q,"livid"],[/..led$/,le,"hurled"],[/.[iao]sed$/,le,""],[/[aeiou]n?[cs]ed$/,le,""],[/[aeiou][rl]?[mnf]ed$/,le,""],[/[aeiou][ns]?c?ked$/,le,"bunked"],[/[aeiou]gned$/,le],[/[aeiou][nl]?ged$/,le],[/.[tdbwxyz]ed$/,le],[/[^aeiou][aeiou][tvx]ed$/,le],[/.[cdflmnprstv]ied$/,le,"emptied"]],e:[[/.[lnr]ize$/,pn,"antagonize"],[/.[^aeiou]ise$/,pn,"antagonise"],[/.[aeiou]te$/,pn,"bite"],[/.[^aeiou][ai]ble$/,q,"fixable"],[/.[^aeiou]eable$/,q,"maleable"],[/.[ts]ive$/,q,"festive"],[/[a-z]-like$/,q,"woman-like"]],h:[[/.[^aeiouf]ish$/,q,"cornish"],[/.v[iy]ch$/,mn,"..ovich"],[/^ug?h+$/,We,"ughh"],[/^uh[ -]?oh$/,We,"uhoh"],[/[a-z]-ish$/,q,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,mn,"polish-male"]],k:[[/^(k){2}$/,We,"kkkk"]],l:[[/.[gl]ial$/,q,"familial"],[/.[^aeiou]ful$/,q,"fitful"],[/.[nrtumcd]al$/,q,"natal"],[/.[^aeiou][ei]al$/,q,"familial"]],m:[[/.[^aeiou]ium$/,Ke,"magnesium"],[/[^aeiou]ism$/,Ke,"schism"],[/^[hu]m+$/,We,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,q,"republican"],[/[^aeiou]ician$/,qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,We,"noooo"],[/^(yo)+$/,We,"yoo"],[/^wo{2,}[pt]?$/,We,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ke],[/[^i]fer$/,pn],[/.[^aeiou][ao]pher$/,qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,q],[/[aeiou].*ist$/,q],[/^[a-z]et$/,Uo]],s:[[/.[^aeiou]ises$/,gn],[/.[rln]ates$/,gn],[/.[^z]ens$/,Uo],[/.[lstrn]us$/,Ke],[/.[aeiou]sks$/,gn],[/.[aeiou]kes$/,gn],[/[aeiou][^aeiou]is$/,Ke],[/[a-z]'s$/,_o],[/^yes+$/,We]],v:[[/.[^aeiou][ai][kln]ov$/,mn]],y:[[/.[cts]hy$/,q],[/.[st]ty$/,q],[/.[tnl]ary$/,q],[/.[oe]ry$/,Ke],[/[rdntkbhs]ly$/,Ro],[/.(gg|bb|zz)ly$/,q],[/...lly$/,Ro],[/.[gk]y$/,q],[/[bszmp]{2}y$/,q],[/.[ai]my$/,q],[/[ea]{2}zy$/,q],[/.[^aeiou]ity$/,Ke]]},ue="Verb",W="Noun",Lp={leftTags:[["Adjective",W],["Possessive",W],["Determiner",W],["Adverb",ue],["Pronoun",ue],["Value",W],["Ordinal",W],["Modal",ue],["Superlative",W],["Demonym",W],["Honorific","Person"]],leftWords:[["i",ue],["first",W],["it",ue],["there",ue],["not",ue],["because",W],["if",W],["but",W],["who",ue],["this",W],["his",W],["when",W],["you",ue],["very","Adjective"],["old",W],["never",ue],["before",W],["a",W],["the",W],["been",ue]],rightTags:[["Copula",W],["PastTense",W],["Conjunction",W],["Modal",W]],rightWords:[["there",ue],["me",ue],["man","Adjective"],["him",ue],["it",ue],["were",W],["took",W],["himself",ue],["went",W],["who",W],["jr","Person"]]},yt={Comparative:{fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3der:mad,sad¦3er:shy,fun¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},Gerund:{fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing,celling¦4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrolling¦5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploring¦3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uin¦3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,cap¦3ming:tem,wim,rim,kim,lim¦3ting:mat,cut,pot,lit,lot,hat,set,pit,put¦3ding:hed,bed,bid¦3king:rek¦3ling:cil,pel¦3bing:rib¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcel¦4ring:efer,nfer¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret¦4ling:evel,xcel,ivel¦4ding:hred¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suiting¦5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hinging¦5e:defining,refining,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing"},Participle:{fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},PastTense:{fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belled¦4:ebuted,hined,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ing:ung,ang¦ep:pt¦ink:ank,unk¦ig:ug¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought¦1ive:rove¦1el:elt¦1id:bade¦1et:got¦1y:aid¦1it:sat¦3e:lid¦3d:pent",both:"1:aed,fed,xed,hed¦2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,cceded¦3ad:sled¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1un:ran¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1ake:woke¦go:went",rev:"3:rst,hed,hut,cut,set¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cy¦1ung:ling,ting,wing¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind,wind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,we¦2ed:dd,oy,or,ey,gg,rr,us,ew,to¦2ame:ecome,rcome¦2ped:ap¦2ged:ag,og,ug,eg¦2bed:ub,ab,ib,ob¦2lt:neel¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦2ode:rride¦2at:ysit¦3ted:mit,hat,mat,lat,pot,rot,bat¦3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bow¦3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,ade¦3red:lur,cur,pur,car¦3ped:hop,rop,uip,rip,lip,tep,top¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim,lim¦4ted:quit,llot¦4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weak¦4led:nnel,qual,ebel,ivel¦4red:nfer,efer,sfer¦4n:sake,trew¦4d:ntee¦4ded:hred¦4ned:rpin¦5ed:light,nceal,right,ndear,arget,hread,eight,rtial,eboot¦5d:edite,nvite¦5ted:egret¦5led:ravel",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vetted¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeled¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speeded¦6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfolded¦7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomed¦8:expedited,infringed¦9:interfered,intervened,persevered¦10:contravened¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1ig:dug¦1all:fell¦2el:felt¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"},PresentTense:{fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦3:iases¦2y:llies,plies¦1y:cies,bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go,do¦3es:cho,eto",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},Superlative:{fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},AdjToNoun:{fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"}},Kp=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null},Wp=function(e,t=[]){for(let n=0;n<t.length;n+=1)if(e.endsWith(t[n]))return e;return null},Jp=function(e,t,n={}){t=t||{};let r=e.length-1;for(let o=r;o>=1;o-=1){let i=e.length-o,a=e.substring(i,e.length);if(t.hasOwnProperty(a)===!0)return e.slice(0,i)+t[a];if(n.hasOwnProperty(a)===!0)return e.slice(0,i)+n[a]}return t.hasOwnProperty("")?e+=t[""]:n.hasOwnProperty("")?e+=n[""]:null},ve=function(e="",t={}){let n=Kp(e,t.ex);return n=n||Wp(e,t.same),n=n||Jp(e,t.fwd,t.both),n=n||e,n},Qo=function(e){return Object.entries(e).reduce((t,n)=>(t[n[1]]=n[0],t),{})},St=function(e={}){return{reversed:!0,both:Qo(e.both),ex:Qo(e.ex),fwd:e.rev||{}}},Zo=/^([0-9]+)/,Rp=function(e){let t={};return e.split("¦").forEach(n=>{let[r,o]=n.split(":");o=(o||"").split(","),o.forEach(i=>{t[i]=r})}),t},qp=function(e="",t=""){t=String(t);let n=t.match(Zo);if(n===null)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Zo,"")},yn=function(e){let t=Rp(e);return Object.keys(t).reduce((n,r)=>(n[r]=qp(r,t[r]),n),{})},bt=function(e={}){return typeof e=="string"&&(e=JSON.parse(e)),e.fwd=yn(e.fwd||""),e.both=yn(e.both||""),e.rev=yn(e.rev||""),e.ex=yn(e.ex||""),e},Ma=bt(yt.PastTense),La=bt(yt.PresentTense),Ka=bt(yt.Gerund),Wa=bt(yt.Participle),Up=St(Ma),_p=St(La),Qp=St(Ka),Zp=St(Wa),Ja=bt(yt.Comparative),Ra=bt(yt.Superlative),Xp=St(Ja),Yp=St(Ra),eg=bt(yt.AdjToNoun),qa={fromPast:Ma,fromPresent:La,fromGerund:Ka,fromParticiple:Wa,toPast:Up,toPresent:_p,toGerund:Qp,toParticiple:Zp,toComparative:Ja,toSuperlative:Ra,fromComparative:Xp,fromSuperlative:Yp,adjToNoun:eg},tg=[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"],[new RegExp("[^:/]\\/\\p{Letter}","u"),"SlashedTerm","love/hate"]],ng=[[new RegExp("^#[\\p{Number}_]*\\p{Letter}","u"),"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],rg=[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[new RegExp("^[-+]?\\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\\.[0-9]+)?([kmb]|bn)?\\+?$","u"),["Money","Value"],"$5.30"],[new RegExp("^[-+]?[0-9]+(,[0-9]{3})*(\\.[0-9]+)?\\p{Currency_Symbol}\\+?$","u"),["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],og=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","faction","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),ig=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce((e,t)=>(e[t]=!0,e),{}),bn=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],ag=function(e){return Object.keys(e).reduce((t,n)=>(t[e[n]]=n,t),{})},Ua=function(e,t){const{irregularPlurals:n}=t.two,r=ag(n);if(r.hasOwnProperty(e))return r[e];for(let o=0;o<bn.length;o++)if(bn[o][0].test(e)===!0)return e=e.replace(bn[o][0],bn[o][1]),e;return e},sg=function(e,t){const n=[e],r=Gn(e,t);r!==e&&n.push(r);const o=Ua(e,t);return o!==e&&n.push(o),n},ug={toPlural:Gn,toSingular:Ua,all:sg};let pt={Gerund:["ing"],Actor:["erer"],Infinitive:["ate","ize","tion","rify","then","ress","ify","age","nce","ect","ise","ine","ish","ace","ash","ure","tch","end","ack","and","ute","ade","ock","ite","ase","ose","use","ive","int","nge","lay","est","ain","ant","ent","eed","er","le","unk","ung","upt","en"],PastTense:["ept","ed","lt","nt","ew","ld"],PresentTense:["rks","cks","nks","ngs","mps","tes","zes","ers","les","acks","ends","ands","ocks","lays","eads","lls","els","ils","ows","nds","ays","ams","ars","ops","ffs","als","urs","lds","ews","ips","es","ts","ns"],Participle:["ken","wn"]};pt=Object.keys(pt).reduce((e,t)=>(pt[t].forEach(n=>e[n]=t),e),{});const _a=function(e){const t=e.substring(e.length-3);if(pt.hasOwnProperty(t)===!0)return pt[t];const n=e.substring(e.length-2);return pt.hasOwnProperty(n)===!0?pt[n]:e.substring(e.length-1)==="s"?"PresentTense":null},cg=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[o,i]=e.split(/ /);return i&&r[o]===!0&&(n=o,o=i,i=""),{prefix:n,verb:o,particle:i}},Xo={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},vr=function(e,t,n){const{fromPast:r,fromPresent:o,fromGerund:i,fromParticiple:a}=t.two.models,{prefix:s,verb:u,particle:c}=cg(e,t);let l="";if(n||(n=_a(e)),Xo.hasOwnProperty(e))l=Xo[e];else if(n==="Participle")l=ve(u,a);else if(n==="PastTense")l=ve(u,r);else if(n==="PresentTense")l=ve(u,o);else if(n==="Gerund")l=ve(u,i);else return e;return c&&(l+=" "+c),s&&(l=s+" "+l),l},lg=e=>/ /.test(e)?e.split(/ /):[e,""],Kr=function(e,t){const{toPast:n,toPresent:r,toGerund:o,toParticiple:i}=t.two.models;if(e==="be")return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};const[a,s]=lg(e),u={Infinitive:a,PastTense:ve(a,n),PresentTense:ve(a,r),Gerund:ve(a,o),FutureTense:"will "+a};let c=ve(a,i);if(c!==e&&c!==u.PastTense){const l=t.one.lexicon||{};(l[c]==="Participle"||l[c]==="Adjective")&&(e==="play"&&(c="played"),u.Participle=c)}return s&&Object.keys(u).forEach(l=>{u[l]+=" "+s}),u},hg=function(e,t){const n=Kr(e,t);return delete n.FutureTense,Object.values(n).filter(r=>r)},dg={toInfinitive:vr,conjugate:Kr,all:hg},Wr=function(e,t){const n=t.two.models.toSuperlative;return ve(e,n)},Jr=function(e,t){const n=t.two.models.toComparative;return ve(e,n)},fg=function(e,t){const n=t.two.models.fromComparative;return ve(e,n)},pg=function(e,t){const n=t.two.models.fromSuperlative;return ve(e,n)},gg=function(e,t){const n=t.two.models.adjToNoun;return ve(e,n)},Qa=function(e="",t=[]){const n=e.length,r=n<=6?n-1:6;for(let o=r;o>=1;o-=1){const i=e.substring(n-o,e.length);if(t[i.length].hasOwnProperty(i)===!0){const a=e.slice(0,n-o),s=t[i.length][i];return a+s}}return null},F="ically",mg=new Set(["analyt"+F,"chem"+F,"class"+F,"clin"+F,"crit"+F,"ecolog"+F,"electr"+F,"empir"+F,"frant"+F,"grammat"+F,"ident"+F,"ideolog"+F,"log"+F,"mag"+F,"mathemat"+F,"mechan"+F,"med"+F,"method"+F,"method"+F,"mus"+F,"phys"+F,"phys"+F,"polit"+F,"pract"+F,"rad"+F,"satir"+F,"statist"+F,"techn"+F,"technolog"+F,"theoret"+F,"typ"+F,"vert"+F,"whims"+F]),yg=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],bg=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Yo={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},vg=function(e){return e.endsWith("ly")?mg.has(e)?e.replace(/ically/,"ical"):bg.has(e)?null:Yo.hasOwnProperty(e)?Yo[e]:Qa(e,yg)||e:null},wg=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ei={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"},Za=function(e){if(ei.hasOwnProperty(e))return ei[e];let t=Qa(e,wg);return t||(t=e+"ly"),t},Pg=function(e,t){let n=[e];return n.push(Wr(e,t)),n.push(Jr(e,t)),n.push(Za(e)),n=n.filter(r=>r),n=new Set(n),Array.from(n)},kg={toSuperlative:Wr,toComparative:Jr,toAdverb:Za,toNoun:gg,fromAdverb:vg,fromSuperlative:pg,fromComparative:fg,all:Pg},Ag={noun:ug,verb:dg,adjective:kg},ti={Singular:(e,t,n,r)=>{const o=r.one.lexicon,i=n.two.transform.noun.toPlural(e,r);o[i]||(t[i]=t[i]||"Plural")},Actor:(e,t,n,r)=>{const o=r.one.lexicon,i=n.two.transform.noun.toPlural(e,r);o[i]||(t[i]=t[i]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{const o=r.one.lexicon,{toSuperlative:i,toComparative:a}=n.two.transform.adjective,s=i(e,r);o[s]||(t[s]=t[s]||"Superlative");const u=a(e,r);o[u]||(t[u]=t[u]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{const o=n.two.transform.noun.toPlural(e,r);t[o]=t[o]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{const o=r.one.lexicon,i=n.two.transform.verb.conjugate(e,r);Object.entries(i).forEach(a=>{!o[a[1]]&&!t[a[1]]&&a[0]!=="FutureTense"&&(t[a[1]]=a[0])})},PhrasalVerb:(e,t,n,r)=>{const o=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];const i=r.one._multiCache,[a,s]=e.split(" ");o[a]||(t[a]=t[a]||"Infinitive");const u=n.two.transform.verb.conjugate(a,r);delete u.FutureTense,Object.entries(u).forEach(c=>{if(c[0]==="Actor"||c[1]==="")return;!t[c[1]]&&!o[c[1]]&&(t[c[1]]=c[0]),i[c[1]]=2;const l=c[1]+" "+s;t[l]=t[l]||[c[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},xg=function(e,t){const{methods:n,model:r}=t,o={},i={};return Object.keys(e).forEach(a=>{const s=e[a];a=a.toLowerCase().trim(),a=a.replace(/'s\b/,"");const u=a.split(/ /);u.length>1&&(i[u[0]]===void 0||u.length>i[u[0]])&&(i[u[0]]=u.length),ti.hasOwnProperty(s)===!0&&ti[s](a,o,n,r),o[a]=o[a]||s}),delete o[""],delete o[null],delete o[" "],{lex:o,_multi:i}},Cg=function(e,t){const n=/^[0-9]+$/,r=e[t];if(!r)return!1;const o=new Set(["may","april","august","jan"]);if(r.normal==="like"||o.has(r.normal)||r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){const a=e[t-1];if(a.tags.has("Date")||o.has(a.normal)||a.tags.has("Adjective")||r.tags.has("Adjective"))return!1}const i=r.normal;return!((i.length===1||i.length===2||i.length===4)&&n.test(i))},Ng=function(e){const t=/[,:;]/,n=[];return e.forEach(r=>{let o=0;r.forEach((i,a)=>{t.test(i.post)&&Cg(r,a+1)&&(n.push(r.slice(o,a+1)),o=a+1)}),o<r.length&&n.push(r.slice(o,r.length))}),n},ni={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},jg=new Set(["israelis","menus","logos"]),$g=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],Xa=function(e){if(!e||e.length<=3)return!1;if(jg.has(e))return!0;const t=e[e.length-1];return ni.hasOwnProperty(t)?ni[t].find(n=>e.endsWith(n)):!(t!=="s"||$g.find(n=>e.endsWith(n)))},wr={two:{quickSplit:Ng,expandLexicon:xg,transform:Ag,looksPlural:Xa}},Tg=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(r=>{n[r[0]]=n[r[0]]||"Singular",n[r[1]]=n[r[1]]||"Plural"}),e},Pr={one:{lexicon:{}},two:{models:qa}},Ig={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ya=function(e,t){const n={model:t,methods:wr},{lex:r,_multi:o}=wr.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,o),t},Eg=function(e,t){return Object.keys(e).forEach(n=>{e[n]==="Uncountable"&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t},ri=function(e,t,n){const r=Kr(e,Pr);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",n===!0&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},oi=function(e,t,n){const r=Wr(e,n);t[r]=t[r]||"Superlative";const o=Jr(e,n);t[o]=t[o]||"Comparative"},Dg=function(e,t,n){const r=Gn(e,n);t[r]=t[r]||"Plural"},Og=function(e,t){const n={},r=t.one.lexicon;return Object.keys(e).forEach(o=>{const i=e[o];if(n[o]=Ig[i],(i==="Noun|Verb"||i==="Person|Verb"||i==="Actor|Verb")&&ri(o,r,!1),i==="Adj|Present"&&(ri(o,r,!0),oi(o,r,t)),i==="Person|Adj"&&oi(o,r,t),i==="Adj|Gerund"||i==="Noun|Gerund"){const a=vr(o,Pr,"Gerund");r[a]||(n[a]="Infinitive")}if((i==="Noun|Gerund"||i==="Adj|Noun"||i==="Person|Noun")&&Dg(o,r,t),i==="Adj|Past"){const a=vr(o,Pr,"PastTense");r[a]||(n[a]="Infinitive")}}),t=Ya(n,t),t},Hg=function(e){return e=Ya(e.one.lexicon,e),e=Eg(e.one.lexicon,e),e=Og(e.two.switches,e),e=Tg(e),e};let kr={one:{_multiCache:{},lexicon:Gt,frozenLex:yp},two:{irregularPlurals:Va,models:qa,suffixPatterns:Bp,prefixPatterns:Vp,endsWith:Mp,neighbours:Lp,regexNormal:tg,regexText:ng,regexNumbers:rg,switches:br,clues:Tt,uncountable:{},orgWords:og,placeWords:ig}};kr=Hg(kr);const Fg=function(e,t,n,r){const o=r.methods.one.setTag;if(e.length>=3){const i=/:/;if(e[0].post.match(i)){const s=e[1];if(s.tags.has("Value")||s.tags.has("Email")||s.tags.has("PhoneNumber"))return;o([e[0]],"Expression",r,null,"2-punct-colon''")}}},Gg=function(e,t,n,r){const o=r.methods.one.setTag;e[t].post==="-"&&e[t+1]&&o([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")},ii=/^(under|over|mis|re|un|dis|semi)-?/,Sg=function(e,t,n){const r=n.two.switches,o=e[t];if(r.hasOwnProperty(o.normal)){o.switch=r[o.normal];return}if(ii.test(o.normal)){const i=o.normal.replace(ii,"");i.length>3&&r.hasOwnProperty(i)&&(o.switch=r[i])}},zg=(e,t,n="")=>{const r=a=>"\x1B[33m\x1B[3m"+a+"\x1B[0m",o=a=>"\x1B[3m"+a+"\x1B[0m",i=e.text||"["+e.implicit+"]";typeof t!="string"&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t=typeof t!="string"?t.join(", #"):t,console.log(` ${r(i).padEnd(24)} \x1B[32m→\x1B[0m #${t.padEnd(22)} ${o(n)}`)},Q=function(e,t,n){if(!t||t.length===0||e.frozen===!0)return;const r=process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&zg(e,t,n),e.tags=e.tags||new Set,typeof t=="string"?e.tags.add(t):t.forEach(o=>e.tags.add(o))},Bg=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],Vg=function(e){!e.tags.has("Noun")||e.tags.has("Plural")||e.tags.has("Singular")||Bg.find(t=>e.tags.has(t))||(Xa(e.normal)?Q(e,"Plural","3-plural-guess"):Q(e,"Singular","3-singular-guess"))},Mg=function(e){const t=e.tags;if(t.has("Verb")&&t.size===1){const n=_a(e.normal);n&&Q(e,n,"3-verb-tense-guess")}},on=function(e,t,n){const r=e[t],o=Array.from(r.tags);for(let i=0;i<o.length;i+=1)if(n.one.tagSet[o[i]]){const a=n.one.tagSet[o[i]].parents;Q(r,a,` -inferred by #${o[i]}`)}Vg(r),Mg(r)},Lg=new RegExp("^\\p{Lu}[\\p{Ll}'’]","u"),Kg=/[0-9]/,Wg=["Date","Month","WeekDay","Unit","Expression"],Jg=/[IVX]/,Rg=/^[IVXLCDM]{2,}$/,qg=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Ug={li:!0,dc:!0,md:!0,dm:!0,ml:!0},_g=function(e,t,n){const r=e[t];r.index=r.index||[0,0];const o=r.index[1],i=r.text||"";return o!==0&&Lg.test(i)===!0&&Kg.test(i)===!1?Wg.find(a=>r.tags.has(a))||r.pre.match(/["']$/)||r.normal==="the"?null:(on(e,t,n),!r.tags.has("Noun")&&!r.frozen&&r.tags.clear(),Q(r,"ProperNoun","2-titlecase"),!0):i.length>=2&&Rg.test(i)&&Jg.test(i)&&qg.test(i)&&!Ug[r.normal]?(Q(r,"RomanNumeral","2-xvii"),!0):null},ai=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let o=r;o>1;o-=1){const i=e.substring(n-o,n);if(t[i.length].hasOwnProperty(i)===!0)return t[i.length][i]}return null},Qg=function(e,t,n){const r=e[t];if(r.tags.size===0){let o=ai(r.normal,n.two.suffixPatterns);if(o!==null)return Q(r,o,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(o=ai(r.implicit,n.two.suffixPatterns),o!==null))return Q(r,o,"2-implicit-suffix"),r.confidence=.7,!0}return null},si=/['‘’‛‵′`´]/,_n=function(e,t){for(let n=0;n<t.length;n+=1)if(t[n][0].test(e)===!0)return t[n];return null},Zg=function(e="",t){const n=e[e.length-1];if(t.hasOwnProperty(n)===!0){const r=t[n]||[];for(let o=0;o<r.length;o+=1)if(r[o][0].test(e)===!0)return r[o]}return null},Xg=function(e,t,n,r){const o=r.methods.one.setTag,{regexText:i,regexNormal:a,regexNumbers:s,endsWith:u}=n.two,c=e[t],l=c.machine||c.normal;let d=c.text;si.test(c.post)&&!si.test(c.pre)&&(d+=c.post.trim());let p=_n(d,i)||_n(l,a);return!p&&/[0-9]/.test(l)&&(p=_n(l,s)),!p&&c.tags.size===0&&(p=Zg(l,u)),p?(o([c],p[1],r,null,`2-regex-'${p[2]||p[0]}'`),c.confidence=.6,!0):null},Yg=function(e="",t=[]){const n=e.length;let r=7;r>n-3&&(r=n-3);for(let o=r;o>2;o-=1){const i=e.substring(0,o);if(t[i.length].hasOwnProperty(i)===!0)return t[i.length][i]}return null},em=function(e,t,n){const r=e[t];if(r.tags.size===0){const o=Yg(r.normal,n.two.prefixPatterns);if(o!==null)return Q(r,o,"2-prefix"),r.confidence=.5,!0}return null},tm=1400,nm=2100,rm=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ui=function(e){if(!e)return!1;const t=e.normal||e.implicit;return!!(rm.has(t)||e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year")||e.tags.has("ProperNoun"))},ci=function(e){return e?!!(e.tags.has("Ordinal")||e.tags.has("Cardinal")&&e.normal.length<3||e.normal==="is"||e.normal==="was"):!1},li=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))},om=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&n.normal.length===4){const r=Number(n.normal);if(r&&!isNaN(r)&&r>tm&&r<nm){const o=e[t-1],i=e[t+1];if(ui(o)||ui(i))return Q(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ci(o)||ci(i))return Q(n,"Year","2-tagYear-close");if(li(e[t-2])||li(e[t+2]))return Q(n,"Year","2-tagYear-far");if(o&&(o.tags.has("Determiner")||o.tags.has("Possessive"))&&i&&i.tags.has("Noun")&&!i.tags.has("Plural"))return Q(n,"Year","2-tagYear-noun")}}}return null},im=function(e,t,n,r){const o=r.methods.one.setTag,i=e[t],a=["PastTense","PresentTense","Auxiliary","Modal","Particle"];i.tags.has("Verb")&&(a.find(u=>i.tags.has(u))||o([i],"Infinitive",r,null,"2-verb-type''"))},es=/^[A-Z]('s|,)?$/,ts=/^[A-Z-]+$/,ns=/^[A-Z]+s$/,am=/([A-Z]\.)+[A-Z]?,?$/,sm=/[A-Z]{2,}('s|,)?$/,um=/([a-z]\.)+[a-z]\.?$/,rs={I:!0,A:!0},cm={la:!0,ny:!0,us:!0,dc:!0,gb:!0},lm=function(e,t){let n=e.text;if(ts.test(n)===!1)if(n.length>3&&ns.test(n)===!0)n=n.replace(/s$/,"");else return!1;return n.length>5||rs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)?!1:am.test(n)===!0||um.test(n)===!0||es.test(n)===!0||sm.test(n)===!0},hm=function(e,t,n){const r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:lm(r,n)?(r.tags.clear(),Q(r,["Acronym","Noun"],"3-no-period-acronym"),cm[r.normal]===!0&&Q(r,"Place","3-place-acronym"),ns.test(r.text)===!0&&Q(r,"Plural","3-plural-acronym"),!0):!rs.hasOwnProperty(r.text)&&es.test(r.text)?(r.tags.clear(),Q(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Q(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ts.test(r.text)&&r.text.length<=6?(Q(r,"Acronym","3-titlecase-acronym"),!0):null},hi=function(e,t){if(!e)return null;const n=t.find(r=>e.normal===r[0]);return n?n[1]:null},di=function(e,t){if(!e)return null;const n=t.find(r=>e.tags.has(r[0]));return n?n[1]:null},dm=function(e,t,n){const{leftTags:r,leftWords:o,rightWords:i,rightTags:a}=n.two.neighbours,s=e[t];if(s.tags.size===0){let u=null;if(u=u||hi(e[t-1],o),u=u||hi(e[t+1],i),u=u||di(e[t-1],r),u=u||di(e[t+1],a),u)return Q(s,u,"3-[neighbour]"),on(e,t,n),e[t].confidence=.2,!0}return null},fm=e=>new RegExp("^\\p{Lu}[\\p{Ll}'’]","u").test(e),fi=function(e,t,n){return!e||e.tags.has("FirstName")||e.tags.has("Place")?!1:e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym")?!0:!n&&fm(e.text)?t===0?e.tags.has("Singular"):!0:!1},pm=function(e,t,n,r){const o=n.model.two.orgWords,i=n.methods.one.setTag,a=e[t],s=a.machine||a.normal;if(o[s]===!0&&fi(e[t-1],t-1,r)){i([e[t]],"Organization",n,null,"3-[org-word]");for(let u=t;u>=0&&fi(e[u],u,r);u-=1)i([e[u]],"Organization",n,null,"3-[org-word]")}return null},gm=e=>new RegExp("^\\p{Lu}[\\p{Ll}'’]","u").test(e),mm=/'s$/,pi=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),ym=new Set(["center","centre","way","range","bar","bridge","field","pit"]),gi=function(e,t,n){if(!e)return!1;const r=e.tags;return r.has("Organization")||r.has("Possessive")||mm.test(e.normal)?!1:r.has("ProperNoun")||r.has("Place")?!0:!n&&gm(e.text)?t===0?r.has("Singular"):!0:!1},bm=function(e,t,n,r){const o=n.model.two.placeWords,i=n.methods.one.setTag,a=e[t],s=a.machine||a.normal;if(o[s]===!0){for(let u=t-1;u>=0;u-=1)if(!pi.has(e[u].normal)){if(gi(e[u],u,r)){i(e.slice(u,t+1),"Place",n,null,"3-[place-of-foo]");continue}break}if(ym.has(s))return!1;for(let u=t+1;u<e.length;u+=1){if(gi(e[u],u,r))return i(e.slice(t,u+1),"Place",n,null,"3-[foo-place]"),!0;if(!(e[u].normal==="of"||pi.has(e[u].normal)))break}}return null},vm=function(e,t,n){let r=!1;const o=e[t].tags;(o.size===0||o.size===1&&(o.has("Hyphenated")||o.has("HashTag")||o.has("Prefix")||o.has("SlashedTerm")))&&(r=!0),r&&(Q(e[t],"Noun","3-[fallback]"),on(e,t,n),e[t].confidence=.1)},wm=/^[A-Z][a-z]/,Ee=(e,t)=>e[t].tags.has("ProperNoun")&&wm.test(e[t].text)?"Noun":null,mi=(e,t,n)=>t===0&&!e[1]?n:null,Pm=function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null},km=function(e,t,n){return t===0&&e.length>3?n:null},yi={"Adj|Gerund":(e,t)=>Ee(e,t),"Adj|Noun":(e,t)=>Ee(e,t)||Pm(e,t),"Actor|Verb":(e,t)=>Ee(e,t),"Adj|Past":(e,t)=>Ee(e,t),"Adj|Present":(e,t)=>Ee(e,t),"Noun|Gerund":(e,t)=>Ee(e,t),"Noun|Verb":(e,t)=>t>0&&Ee(e,t)||mi(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ee(e,t)||mi(e,t,"PresentTense")||km(e,t,"Plural"),"Person|Noun":(e,t)=>Ee(e,t),"Person|Verb":(e,t)=>t!==0?Ee(e,t):null,"Person|Adj":(e,t)=>t===0&&e.length>1||Ee(e,t)?"Person":null},Rr=process.env?process.env:self.env||{},bi=/^(under|over|mis|re|un|dis|semi)-?/,vi=(e,t)=>{if(!e||!t)return null;const n=e.normal||e.implicit;let r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Rr.DEBUG_TAGS&&console.log(`
14
- \x1B[2m\x1B[3m ↓ - '${n}' \x1B[0m`),r},wi=(e,t={},n)=>{if(!e||!t)return null;let o=Array.from(e.tags).sort((i,a)=>{const s=n[i]?n[i].parents.length:0,u=n[a]?n[a].parents.length:0;return s>u?-1:1}).find(i=>t[i]);return o&&Rr.DEBUG_TAGS&&console.log(` \x1B[2m\x1B[3m ↓ - '${e.normal||e.implicit}' (#${o}) \x1B[0m`),o=t[o],o},Am=function(e,t,n,r){if(!n)return null;const o=e[t-1]?.text!=="also"?t-1:Math.max(0,t-2),i=r.one.tagSet;let a=vi(e[t+1],n.afterWords);return a=a||vi(e[o],n.beforeWords),a=a||wi(e[o],n.beforeTags,i),a=a||wi(e[t+1],n.afterTags,i),a},xm=function(e,t,n){const r=n.model,o=n.methods.one.setTag,{switches:i,clues:a}=r.two,s=e[t];let u=s.normal||s.implicit||"";if(bi.test(u)&&!i[u]&&(u=u.replace(bi,"")),s.switch){const c=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let l=Am(e,t,a[c],r);yi[c]&&(l=yi[c](e,t)||l),l?(o([s],l,n,null,`3-[switch] (${c})`),on(e,t,r)):Rr.DEBUG_TAGS&&console.log(`
15
- -> X - '${u}' : (${c}) `)}},Cm={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},Nm=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{},o=e[0];if((o.switch==="Noun|Verb"||o.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Cm[e[1].normal]||!o.tags.has("PhrasalVerb")&&r.hasOwnProperty(o.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(!e.slice(1,3).some(u=>u.tags.has("Verb"))||o.tags.has("#PhrasalVerb"))&&n([o],"Imperative",t,null,"3-[imperative]")}},jm=function(e){if(e.filter(n=>!n.tags.has("ProperNoun")).length<=3)return!1;const t=/^[a-z]/;return e.every(n=>!t.test(n.text))},$m=function(e,t,n){e.forEach(r=>{Fg(r,0,t,n)})},Tm=function(e,t,n,r){for(let o=0;o<e.length;o+=1)e[o].frozen!==!0&&(Sg(e,o,t),r===!1&&_g(e,o,t),Qg(e,o,t),Xg(e,o,t,n),em(e,o,t),om(e,o))},Im=function(e,t,n,r){for(let o=0;o<e.length;o+=1){let i=hm(e,o,t);on(e,o,t),i=i||dm(e,o,t),i=i||vm(e,o,t)}for(let o=0;o<e.length;o+=1)e[o].frozen!==!0&&(pm(e,o,n,r),bm(e,o,n,r),xm(e,o,n),im(e,o,t,n),Gg(e,o,t,n));Nm(e,n)},Em=function(e){const{methods:t,model:n,world:r}=e,o=e.docs;$m(o,n,r);const i=t.two.quickSplit(o);for(let a=0;a<i.length;a+=1){const s=i[a],u=jm(s);Tm(s,n,r,u),Im(s,n,r,u)}return i},Pi={Possessive:e=>{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{const n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{const n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{const n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{const n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{const n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{const n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective,r=e.machine||e.normal||e.text;return n(r)}},Dm=function(e){const t=e.world,n=Object.keys(Pi);e.docs.forEach(r=>{for(let o=0;o<r.length;o+=1){const i=r[o];for(let a=0;a<n.length;a+=1)if(i.tags.has(n[a])){const s=Pi[n[a]],u=s(i,t);i.normal!==u&&(i.root=u);break}}})},ki={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NN",Plural:"NNS",Noun:"NN",There:"EX"},Om=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if(e.normal==="there")return"EX";if(e.normal==="to")return"TO";const t=e.tagRank||[];for(let n=0;n<t.length;n+=1)if(ki.hasOwnProperty(t[n]))return ki[t[n]];return null},Hm=function(e){e.compute("tagRank"),e.docs.forEach(t=>{t.forEach(n=>{n.penn=Om(n)})})},Fm={preTagger:Em,root:Dm,penn:Hm},Qn=["Person","Place","Organization"],Gm={Noun:{not:["Verb","Adjective","Adverb","Value","Determiner"]},Singular:{is:"Noun",not:["Plural","Uncountable"]},ProperNoun:{is:"Noun"},Person:{is:"Singular",also:["ProperNoun"],not:["Place","Organization","Date"]},FirstName:{is:"Person"},MaleName:{is:"FirstName",not:["FemaleName","LastName"]},FemaleName:{is:"FirstName",not:["MaleName","LastName"]},LastName:{is:"Person",not:["FirstName"]},Honorific:{is:"Person",not:["FirstName","LastName","Value"]},Place:{is:"Singular",not:["Person","Organization"]},Country:{is:"Place",also:["ProperNoun"],not:["City"]},City:{is:"Place",also:["ProperNoun"],not:["Country"]},Region:{is:"Place",also:["ProperNoun"]},Address:{},Organization:{is:"ProperNoun",not:["Person","Place"]},SportsTeam:{is:"Organization"},School:{is:"Organization"},Company:{is:"Organization"},Plural:{is:"Noun",not:["Singular","Uncountable"]},Uncountable:{is:"Noun"},Pronoun:{is:"Noun",not:Qn},Actor:{is:"Noun",not:["Place","Organization"]},Activity:{is:"Noun",not:["Person","Place"]},Unit:{is:"Noun",not:Qn},Demonym:{is:"Noun",also:["ProperNoun"],not:Qn},Possessive:{is:"Noun"},Reflexive:{is:"Pronoun"}},Sm={Verb:{not:["Noun","Adjective","Adverb","Value","Expression"]},PresentTense:{is:"Verb",not:["PastTense","FutureTense"]},Infinitive:{is:"PresentTense",not:["Gerund"]},Imperative:{is:"Verb",not:["PastTense","Gerund","Copula"]},Gerund:{is:"PresentTense",not:["Copula"]},PastTense:{is:"Verb",not:["PresentTense","Gerund","FutureTense"]},FutureTense:{is:"Verb",not:["PresentTense","PastTense"]},Copula:{is:"Verb"},Modal:{is:"Verb",not:["Infinitive"]},Participle:{is:"PastTense"},Auxiliary:{is:"Verb",not:["PastTense","PresentTense","Gerund","Conjunction"]},PhrasalVerb:{is:"Verb"},Particle:{is:"PhrasalVerb",not:["PastTense","PresentTense","Copula","Gerund"]},Passive:{is:"Verb"}},zm={Value:{not:["Verb","Adjective","Adverb"]},Ordinal:{is:"Value",not:["Cardinal"]},Cardinal:{is:"Value",not:["Ordinal"]},Fraction:{is:"Value",not:["Noun"]},Multiple:{is:"TextValue"},RomanNumeral:{is:"Cardinal",not:["TextValue"]},TextValue:{is:"Value",not:["NumericValue"]},NumericValue:{is:"Value",not:["TextValue"]},Money:{is:"Cardinal"},Percent:{is:"Value"}},Bm={Date:{not:["Verb","Adverb","Adjective"]},Month:{is:"Date",also:["Noun"],not:["Year","WeekDay","Time"]},WeekDay:{is:"Date",also:["Noun"]},Year:{is:"Date",not:["RomanNumeral"]},FinancialQuarter:{is:"Date",not:"Fraction"},Holiday:{is:"Date",also:["Noun"]},Season:{is:"Date"},Timezone:{is:"Date",also:["Noun"],not:["ProperNoun"]},Time:{is:"Date",not:["AtMention"]},Duration:{is:"Date",also:["Noun"]}},Vm=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],Mm={Adjective:{not:["Noun","Verb","Adverb","Value"]},Comparable:{is:"Adjective"},Comparative:{is:"Adjective"},Superlative:{is:"Adjective",not:["Comparative"]},NumberRange:{},Adverb:{not:["Noun","Verb","Adjective","Value"]},Determiner:{not:["Noun","Verb","Adjective","Adverb","QuestionWord","Conjunction"]},Conjunction:{not:Vm},Preposition:{not:["Noun","Verb","Adjective","Adverb","QuestionWord","Determiner"]},QuestionWord:{not:["Determiner"]},Currency:{is:"Noun"},Expression:{not:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{not:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email","SlashedTerm"]},PhoneNumber:{not:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{is:"Noun",not:["HashTag","Email"]},Emoji:{not:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{not:["HashTag","Verb","Adjective","Value","AtMention","SlashedTerm"]},SlashedTerm:{not:["Emoticon","Url","Value"]},Email:{not:["HashTag","Verb","Adjective","Value","AtMention"]},Acronym:{not:["Plural","RomanNumeral","Pronoun","Date"]},Negative:{not:["Noun","Adjective","Value","Expression"]},Condition:{not:["Verb","Adjective","Noun","Value"]},There:{not:["Verb","Adjective","Noun","Value","Conjunction","Preposition"]},Prefix:{not:["Abbreviation","Acronym","ProperNoun"]},Hyphenated:{}},Lm=Object.assign({},Gm,Sm,zm,Bm,Mm),Km={compute:Fm,methods:wr,model:kr,tags:Lm,hooks:["preTagger"]},Wm=/[,)"';:\-–—.…]/,Je=function(e,t){if(!e.found)return;const n=e.termList();for(let r=0;r<n.length-1;r++){const o=n[r];if(Wm.test(o.post))return}n[0].implicit=n[0].normal,n[0].text+=t,n[0].normal+=t,n.slice(1).forEach(r=>{r.implicit=r.normal,r.text="",r.normal=""});for(let r=0;r<n.length-1;r++)n[r].post=n[r].post.replace(/ /,"")},Jm=function(){const e=this.not("@hasContraction");let t=e.match("(we|they|you) are");return Je(t,"'re"),t=e.match("(he|she|they|it|we|you) will"),Je(t,"'ll"),t=e.match("(he|she|they|it|we) is"),Je(t,"'s"),t=e.match("#Person is"),Je(t,"'s"),t=e.match("#Person would"),Je(t,"'d"),t=e.match("(is|was|had|would|should|could|do|does|have|has|can) not"),Je(t,"n't"),t=e.match("(i|we|they) have"),Je(t,"'ve"),t=e.match("(would|should|could) have"),Je(t,"'ve"),t=e.match("i am"),Je(t,"'m"),t=e.match("going to"),this},Rm=new RegExp("^\\p{Lu}[\\p{Ll}'’]","u"),qm=function(e=""){return e=e.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase()),e},Um=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Contraction"}expand(){return this.docs.forEach(r=>{const o=Rm.test(r[0].text);r.forEach((i,a)=>{i.text=i.implicit||"",delete i.implicit,a<r.length-1&&i.post===""&&(i.post+=" "),i.dirty=!0}),o&&(r[0].text=qm(r[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){const n=this.match("@hasContraction+");return new t(this.document,n.pointer)},e.prototype.contract=Jm},_m=function(e,t,n){const[r,o]=t;!n||n.length===0||(n=n.map((i,a)=>(i.implicit=i.text,i.machine=i.text,i.pre="",i.post="",i.text="",i.normal="",i.index=[r,o+a],i)),n[0]&&(n[0].pre=e[r][o].pre,n[n.length-1].post=e[r][o].post,n[0].text=e[r][o].text,n[0].normal=e[r][o].normal),e[r].splice(o,1,...n))},Qm=/'/,Zm=new Set(["been","become"]),Xm=new Set(["what","how","when","if","too"]),Ym=new Set(["too","also","enough"]),e0=(e,t)=>{for(let n=t+1;n<e.length;n+=1){const r=e[n];if(Zm.has(r.normal))return"has";if(Xm.has(r.normal)||r.tags.has("Gerund")||r.tags.has("Determiner")||r.tags.has("Adjective")||r.switch==="Adj|Past"&&e[n+1]&&(Ym.has(e[n+1].normal)||e[n+1].tags.has("Preposition")))return"is";if(r.tags.has("PastTense"))return e[n+1]&&e[n+1].normal==="for"?"is":"has"}return"is"},t0=function(e,t){const n=e[t].normal.split(Qm)[0];if(n==="let")return[n,"us"];if(n==="there"){const r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return e0(e,t)==="has"?[n,"has"]:[n,"is"]},n0=/'/,r0=new Set(["better","done","before","it","had"]),o0=new Set(["have","be"]),i0=(e,t)=>{for(let n=t+1;n<e.length;n+=1){const r=e[n];if(r0.has(r.normal))return"had";if(o0.has(r.normal))return"would";if(r.tags.has("PastTense")||r.switch==="Adj|Past")return"had";if(r.tags.has("PresentTense")||r.tags.has("Infinitive"))return"would";if(r.tags.has("#Determiner"))return"had";if(r.tags.has("Adjective"))return"would"}return!1},a0=function(e,t){const n=e[t].normal.split(n0)[0];return n==="how"||n==="what"?[n,"did"]:i0(e,t)==="had"?[n,"had"]:[n,"would"]},s0=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null},u0=function(e,t){if(e[t].normal==="ain't"||e[t].normal==="aint"){if(e[t+1]&&e[t+1].normal==="never")return["have"];const r=s0(e,t);if(r){if(r.normal==="we"||r.normal==="they")return["are","not"];if(r.normal==="i")return["am","not"];if(r.tags&&r.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]},c0={that:!0,there:!0,let:!0,here:!0,everywhere:!0},l0={in:!0,by:!0,for:!0},h0=new Set(["too","also","enough","about"]),d0=new Set(["is","are","did","were","could","should","must","had","have"]),f0=(e,t)=>{const n=e[t];if(c0.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord")||n.normal==="he's"||n.normal==="she's")return!1;const r=e[t+1];if(!r)return!0;if(n.normal==="it's")return!!r.tags.has("#Noun");if(r.switch=="Noun|Gerund"){const o=e[t+2];return o?o.tags.has("Copula")?!0:(o.normal==="on"||o.normal==="in",!1):!!(n.tags.has("Actor")||n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return r.tags.has("Infinitive")?!0:r.tags.has("Gerund")?!1:!!r.tags.has("PresentTense");if(r.switch==="Adj|Noun"){const o=e[t+2];if(!o)return!1;if(d0.has(o.normal))return!0;if(h0.has(o.normal))return!1}if(r.tags.has("Noun")){const o=r.machine||r.normal;return!(o==="here"||o==="there"||o==="everywhere"||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&l0[e[t-1].normal]===!0)return!0;if(r.tags.has("Adjective")){const o=e[t+2];if(!o)return!1;if(o.tags.has("Noun")&&!o.tags.has("Pronoun")){const i=r.normal;return!(i==="above"||i==="below"||i==="behind")}return o.switch==="Noun|Verb"}return!!r.tags.has("Value")},Ai=/'/,p0=function(e){e.forEach((t,n)=>{t.index&&(t.index[1]=n)})},g0=function(e,t,n,r){const o=t.update();o.document=[e];let i=n+r;n>0&&(n-=1),e[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute(["freeze","lexicon","preTagger","unfreeze"]),p0(e)},xi={d:(e,t)=>a0(e,t),t:(e,t)=>u0(e,t),s:(e,t,n)=>f0(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):t0(e,t)},m0=function(e,t){const n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]},y0=e=>{const{world:t,document:n}=e;n.forEach((r,o)=>{for(let i=r.length-1;i>=0;i-=1){if(r[i].implicit)continue;let a=null;Ai.test(r[i].normal)===!0&&(a=r[i].normal.split(Ai)[1]);let s=null;if(xi.hasOwnProperty(a)&&(s=xi[a](r,i,t)),s){s=m0(s,e),_m(n,[o,i],s),g0(n[o],e,i,s.length);continue}}})},b0={contractionTwo:y0},v0={compute:b0,api:Um,hooks:["contractionTwo"]},w0=[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],P0="(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)",Ci="(hard|fast|late|early|high|right|deep|close|direct)",k0=[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:`[${P0}] #Adjective`,group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${Ci}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${Ci}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],A0=[{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],x0=[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],C0=[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],N0=[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",notIf:"(getting|becoming|feeling)",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],j0=[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],$0=[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive?",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"},{match:"#Value (am|pm)",tag:"Time",reason:"2-am"}],T0="(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)",I0=[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:`#Determiner #Noun [${T0}] !(#Preposition|to|#Adverb)?`,group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],E0=[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],D0=[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],O0=[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4-mark"},{match:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],H0=[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],F0=[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],G0=[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",notIf:"#Place",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",notIf:"#Place",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],S0=[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],z0=[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],B0=[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],V0=[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],Zn="(i|we|they)",M0=[{match:"^do not? [#Infinitive #Particle?]",notIf:Zn,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Zn,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Zn,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],L0=[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],K0=[{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],W0=[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],J0=[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",notIf:"#FirstName",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],R0=[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"},{match:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],q0=[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],U0=[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],_0=[].concat(K0,w0,k0,A0,x0,N0,$0,j0,I0,E0,D0,O0,H0,F0,G0,S0,z0,C0,B0,V0,M0,L0,W0,J0,R0,q0,U0),Q0={two:{matches:_0}};let Xn=null;const Z0=function(e){const{world:t}=e,{model:n,methods:r}=t;Xn=Xn||r.one.buildNet(n.two.matches,t);const i=r.two.quickSplit(e.document).map(s=>{const u=s[0];return[u.index[0],u.index[1],u.index[1]+s.length]}),a=e.update(i);return a.cache(),a.sweep(Xn),e.uncache(),e.unfreeze(),e},X0=e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"]),Y0={postTagger:Z0,tagger:X0},e1=e=>Math.round(e*100)/100;function t1(e){e.prototype.confidence=function(){let t=0,n=0;return this.docs.forEach(r=>{r.forEach(o=>{n+=1,t+=o.confidence||1})}),n===0?1:e1(t/n)},e.prototype.tagger=function(){return this.compute(["tagger"])}}const n1={api:t1,compute:Y0,model:Q0,hooks:["postTagger"]},r1=function(e){return Object.keys(e.hooks).filter(t=>!t.startsWith("#")&&!t.startsWith("%"))},o1=function(e,t){const n=r1(t);if(n.length===0)return e;e._cache||e.cache();const r=e._cache;return e.filter((o,i)=>n.some(a=>r[i].has(a)))},i1=function(e,t){let n=t;typeof t=="string"&&(n=this.buildNet([{match:t}]));const r=this.tokenize(e),o=o1(r,n);return o.found?(o.compute(["index","tagger"]),o.match(t)):r.none()},a1={lib:{lazy:i1}},s1=function(e,t){const n=e.methods.two.transform.verb.conjugate,r=n(t,e.model);return e.has("#Gerund")?r.Gerund:e.has("#PastTense")?r.PastTense:e.has("#PresentTense")?r.PresentTense:e.has("#Gerund")?r.Gerund:t},u1=function(e,t){let n=t;return e.forEach(r=>{r.has("#Infinitive")||(n=s1(r,t)),r.replaceWith(n)}),e},c1=function(e,t){let n=t;if(e.has("#Plural")){const r=e.methods.two.transform.noun.toPlural;n=r(t,e.model)}e.replaceWith(n,{possessives:!0})},l1=function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective,o=n(t);o&&e.replaceWith(o)},h1=function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let o=t;e.has("#Comparative")?o=n(o,e.model):e.has("#Superlative")&&(o=r(o,e.model)),o&&e.replaceWith(o)},d1=function(e,t,n){let r=e.split(/ /g).map(i=>i.toLowerCase().trim());r=r.filter(i=>i),r=r.map(i=>`{${i}}`).join(" ");let o=this.match(r);return n&&(o=o.if(n)),o.has("#Verb")?u1(o,t):o.has("#Noun")?c1(o,t):o.has("#Adverb")?l1(o,t):o.has("#Adjective")?h1(o,t):this},f1=function(e){e.prototype.swap=d1},p1={api:f1};I.plugin(Km);I.plugin(v0);I.plugin(n1);I.plugin(a1);I.plugin(p1);const kt=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective,r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r},g1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Adjectives"}json(r={}){const{toAdverb:o,toNoun:i,toSuperlative:a,toComparative:s}=this.methods.two.transform.adjective;return r.normal=!0,this.map(u=>{const c=u.toView().json(r)[0]||{},l=kt(u);return c.adjective={adverb:o(l,this.model),noun:i(l,this.model),superlative:a(l,this.model),comparative:s(l,this.model)},c},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(r){const{toComparative:o,toSuperlative:i,toNoun:a,toAdverb:s}=this.methods.two.transform.adjective;return this.getNth(r).map(u=>{const c=kt(u);return{Adjective:c,Comparative:o(c,this.model),Superlative:i(c,this.model),Noun:a(c,this.model),Adverb:s(c,this.model)}},[])}toComparative(r){const{toComparative:o}=this.methods.two.transform.adjective;return this.getNth(r).map(i=>{const a=kt(i),s=o(a,this.model);return i.replaceWith(s)})}toSuperlative(r){const{toSuperlative:o}=this.methods.two.transform.adjective;return this.getNth(r).map(i=>{const a=kt(i),s=o(a,this.model);return i.replaceWith(s)})}toAdverb(r){const{toAdverb:o}=this.methods.two.transform.adjective;return this.getNth(r).map(i=>{const a=kt(i),s=o(a,this.model);return i.replaceWith(s)})}toNoun(r){const{toNoun:o}=this.methods.two.transform.adjective;return this.getNth(r).map(i=>{const a=kt(i),s=o(a,this.model);return i.replaceWith(s)})}}e.prototype.adjectives=function(n){let r=this.match("#Adjective");return r=r.getNth(n),new t(r.document,r.pointer)},e.prototype.superlatives=function(n){let r=this.match("#Superlative");return r=r.getNth(n),new t(r.document,r.pointer)},e.prototype.comparatives=function(n){let r=this.match("#Comparative");return r=r.getNth(n),new t(r.document,r.pointer)}},m1={api:g1},y1=function(e){return e.compute("root").text("root")},b1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Adverbs"}conjugate(r){return this.getNth(r).map(o=>{const i=y1(o);return{Adverb:o.text("normal"),Adjective:i}},[])}json(r={}){const o=this.methods.two.transform.adjective.fromAdverb;return r.normal=!0,this.map(i=>{const a=i.toView().json(r)[0]||{};return a.adverb={adjective:o(a.normal)},a},[])}}e.prototype.adverbs=function(n){let r=this.match("#Adverb");return r=r.getNth(n),new t(r.document,r.pointer)}},v1={api:b1},w1=function(e){let t=e.match("@hasComma");return t=t.filter(n=>{if(n.growLeft(".").wordCount()===1||n.growRight(". .").wordCount()===1)return!1;let r=n.grow(".");return r=r.ifNo("@hasComma @hasComma"),r=r.ifNo("@hasComma (and|or) ."),r=r.ifNo("(#City && @hasComma) #Country"),r=r.ifNo("(#WeekDay && @hasComma) #Date"),r=r.ifNo("(#Date+ && @hasComma) #Value"),r=r.ifNo("(#Adjective && @hasComma) #Adjective"),r.found}),e.splitAfter(t)},P1=function(e){let t=e.parentheses();return t=t.filter(n=>n.wordCount()>=3&&n.has("#Verb")&&n.has("#Noun")),e.splitOn(t)},k1=function(e){let t=e.quotations();return t=t.filter(n=>n.wordCount()>=3&&n.has("#Verb")&&n.has("#Noun")),e.splitOn(t)},A1=function(e){let t=this;t=P1(t),t=k1(t),t=w1(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");const n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));const r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),typeof e=="number"&&(t=t.get(e)),t},x1=function(e){const t=[];let n=null;return e.clauses().docs.forEach(i=>{i.forEach(a=>{!a.chunk||a.chunk!==n?(n=a.chunk,t.push([a.index[0],a.index[1],a.index[1]+1])):t[t.length-1][2]=a.index[1]+1}),n=null}),e.update(t)},C1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Chunks"}isVerb(){return this.filter(r=>r.has("<Verb>"))}isNoun(){return this.filter(r=>r.has("<Noun>"))}isAdjective(){return this.filter(r=>r.has("<Adjective>"))}isPivot(){return this.filter(r=>r.has("<Pivot>"))}debug(){return this.toView().debug("chunks"),this}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}e.prototype.chunks=function(n){let r=x1(this);return r=r.getNth(n),new t(this.document,r.pointer)},e.prototype.clauses=A1},Ni={this:"Noun",then:"Pivot"},N1=function(e){for(let t=0;t<e.length;t+=1)for(let n=0;n<e[t].length;n+=1){const r=e[t][n];if(Ni.hasOwnProperty(r.normal)===!0){r.chunk=Ni[r.normal];continue}if(r.tags.has("Verb")){r.chunk="Verb";continue}if(r.tags.has("Noun")||r.tags.has("Determiner")){r.chunk="Noun";continue}if(r.tags.has("Value")){r.chunk="Noun";continue}if(r.tags.has("QuestionWord")){r.chunk="Pivot";continue}}},j1=function(e){for(let t=0;t<e.length;t+=1)for(let n=0;n<e[t].length;n+=1){const r=e[t][n];if(r.chunk)continue;const o=e[t][n+1],i=e[t][n-1];if(r.tags.has("Adjective")){if(i&&i.tags.has("Copula")){r.chunk="Adjective";continue}if(i&&i.tags.has("Determiner")){r.chunk="Noun";continue}if(o&&o.tags.has("Noun")){r.chunk="Noun";continue}continue}if(r.tags.has("Adverb")||r.tags.has("Negative")){if(i&&i.tags.has("Adjective")){r.chunk="Adjective";continue}if(i&&i.tags.has("Verb")){r.chunk="Verb";continue}if(o&&o.tags.has("Adjective")){r.chunk="Adjective";continue}if(o&&o.tags.has("Verb")){r.chunk="Verb";continue}}}},$1=[{match:"[that] #Determiner #Noun",group:0,chunk:"Pivot"},{match:"#PastTense [that]",group:0,chunk:"Pivot"},{match:"[so] #Determiner",group:0,chunk:"Pivot"},{match:"#Copula #Adverb+? [#Adjective]",group:0,chunk:"Adjective"},{match:"#Adjective and #Adjective",chunk:"Adjective"},{match:"#Adverb+ and #Adverb #Verb",chunk:"Verb"},{match:"#Gerund #Adjective$",chunk:"Verb"},{match:"#Gerund to #Verb",chunk:"Verb"},{match:"#PresentTense and #PresentTense",chunk:"Verb"},{match:"#Adverb #Negative",chunk:"Verb"},{match:"(want|wants|wanted) to #Infinitive",chunk:"Verb"},{match:"#Verb #Reflexive",chunk:"Verb"},{match:"#Verb [to] #Adverb? #Infinitive",group:0,chunk:"Verb"},{match:"[#Preposition] #Gerund",group:0,chunk:"Verb"},{match:"#Infinitive [that] <Noun>",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Yn=null;const T1=function(e,t,n){const{methods:r}=n;Yn=Yn||r.one.buildNet($1,n),e.sweep(Yn)},er=function(e,t){if((process.env?process.env:self.env||{}).DEBUG_CHUNKS){const r=(e.normal+"'").padEnd(8);console.log(` | '${r} → \x1B[34m${t.padEnd(12)}\x1B[0m \x1B[2m -fallback- \x1B[0m`)}e.chunk=t},I1=function(e){for(let t=0;t<e.length;t+=1)for(let n=0;n<e[t].length;n+=1){const r=e[t][n];r.chunk===void 0&&(r.tags.has("Conjunction")||r.tags.has("Preposition")?er(r,"Pivot"):r.tags.has("Adverb")?er(r,"Verb"):r.chunk="Noun")}},E1=function(e){const t=[];let n=null;e.forEach(r=>{for(let o=0;o<r.length;o+=1){const i=r[o];n&&i.chunk===n?t[t.length-1].terms.push(i):(t.push({chunk:i.chunk,terms:[i]}),n=i.chunk)}}),t.forEach(r=>{r.chunk==="Verb"&&(r.terms.find(i=>i.tags.has("Verb"))||r.terms.forEach(i=>i.chunk=null))})},D1=function(e){const{document:t,world:n}=e;N1(t),j1(t),T1(e,t,n),I1(t),E1(t)},O1={chunks:D1},H1={compute:O1,api:C1,hooks:["chunks"]},vn=/\./g,F1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Acronyms"}strip(){return this.docs.forEach(r=>{r.forEach(o=>{o.text=o.text.replace(vn,""),o.normal=o.normal.replace(vn,"")})}),this}addPeriods(){return this.docs.forEach(r=>{r.forEach(o=>{o.text=o.text.replace(vn,""),o.normal=o.normal.replace(vn,""),o.text=o.text.split("").join(".")+".",o.normal=o.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(n){let r=this.match("#Acronym");return r=r.getNth(n),new t(r.document,r.pointer)}},os=/\(/,is=/\)/,G1=function(e,t){for(;t<e.length;t+=1)if(e[t].post&&is.test(e[t].post)){let[,n]=e[t].index;return n=n||0,n}return null},S1=function(e){const t=[];return e.docs.forEach(n=>{for(let r=0;r<n.length;r+=1){const o=n[r];if(o.pre&&os.test(o.pre)){const i=G1(n,r);if(i!==null){const[a,s]=n[r].index;t.push([a,s,i+1,n[r].id]),r=i}}}}),e.update(t)},z1=function(e){return e.docs.forEach(t=>{t[0].pre=t[0].pre.replace(os,"");const n=t[t.length-1];n.post=n.post.replace(is,"")}),e},B1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Possessives"}strip(){return z1(this)}}e.prototype.parentheses=function(n){let r=S1(this);return r=r.getNth(n),new t(r.document,r.pointer)}},ji=/'s$/,V1=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t},M1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Possessives"}strip(){return this.docs.forEach(r=>{r.forEach(o=>{o.text=o.text.replace(ji,""),o.normal=o.normal.replace(ji,"")})}),this}}e.prototype.possessives=function(n){let r=V1(this);return r=r.getNth(n),new t(r.document,r.pointer)}},En={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},qr=RegExp("["+Object.keys(En).join("")+"]"),L1=RegExp("["+Object.values(En).join("")+"]"),K1=function(e,t){const n=e[t].pre.match(qr)[0]||"";if(!n||!En[n])return null;const r=En[n];for(;t<e.length;t+=1)if(e[t].post&&e[t].post.match(r))return t;return null},W1=function(e){const t=[];return e.docs.forEach(n=>{for(let r=0;r<n.length;r+=1){const o=n[r];if(o.pre&&qr.test(o.pre)){const i=K1(n,r);if(i!==null){const[a,s]=n[r].index;t.push([a,s,i+1,n[r].id]),r=i}}}}),e.update(t)},J1=function(e){e.docs.forEach(t=>{t[0].pre=t[0].pre.replace(qr,"");const n=t[t.length-1];n.post=n.post.replace(L1,"")})},R1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Possessives"}strip(){return J1(this)}}e.prototype.quotations=function(n){let r=W1(this);return r=r.getNth(n),new t(r.document,r.pointer)}},q1=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=t.getNth(e),t},U1=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]],_1=[["emojis","emoji"],["atmentions","atMentions"]],Q1=function(e){U1.forEach(t=>{e.prototype[t[0]]=function(n){const r=this.match(t[1]);return typeof n=="number"?r.get(n):r}}),e.prototype.phoneNumbers=q1,_1.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Z1=/\//,X1=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Slashes"}split(){return this.map(r=>{const i=r.text().split(Z1);return r=r.replaceWith(i.join(" ")),r.growRight("("+i.join("|")+")+")})}}e.prototype.slashes=function(n){let r=this.match("#SlashedTerm");return r=r.getNth(n),new t(r.document,r.pointer)}},Y1={api:function(e){F1(e),B1(e),M1(e),R1(e),Q1(e),X1(e)}},wn=function(e,t){e.docs.forEach(n=>{n.forEach(t)})},$i={case:e=>{wn(e,t=>{t.text=t.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;wn(e,r=>r.text=n(r.text,t))},whitespace:e=>{wn(e,t=>{t.post=t.post.replace(/\s+/g," "),t.post=t.post.replace(/\s([.,?!:;])/g,"$1"),t.pre=t.pre.replace(/\s+/g,"")})},punctuation:e=>{wn(e,r=>{r.post=r.post.replace(/[–—-]/g," "),r.post=r.post.replace(/[,:;]/g,""),r.post=r.post.replace(/\.{2,}/g,""),r.post=r.post.replace(/\?{2,}/g,"?"),r.post=r.post.replace(/!{2,}/g,"!"),r.post=r.post.replace(/\?!+/g,"?")});const t=e.docs,n=t[t.length-1];if(n&&n.length>0){const r=n[n.length-1];r.post=r.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()},debullet:e=>{const t=/^\s*([-–—*•])\s*$/;return e.docs.forEach(n=>{t.test(n[0].pre)&&(n[0].pre=n[0].pre.replace(t,""))}),e}},tr=e=>e.split("|").reduce((t,n)=>(t[n]=!0,t),{}),nr="unicode|punctuation|whitespace|acronyms",Ti="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",ey="|possessives|adverbs|nouns|verbs",ty={light:tr(nr),medium:tr(nr+Ti),heavy:tr(nr+Ti+ey)};function ny(e){e.prototype.normalize=function(t="light"){return typeof t=="string"&&(t=ty[t]),Object.keys(t).forEach(n=>{$i.hasOwnProperty(n)&&$i[n](this,t[n])}),this}}const ry={api:ny},oy=function(e){let t=e.clauses().match("<Noun>"),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t},Ii=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"],iy=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let n=0;n<Ii.length;n+=1)if(e.has(Ii[n]))return!0;return!1},ay="(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)",sy=function(e,t){if(e.has("#Plural")||e.has("#Noun and #Noun")||e.has("(we|they)"))return!0;if(t.has(ay)===!0||e.has("#Singular"))return!1;const n=t.text("normal");return n.length>3&&n.endsWith("s")&&!n.endsWith("ss")},uy=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e},nt=function(e){const t=uy(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:sy(e,t),isSubordinate:iy(e),root:t}},Ei=e=>e.text(),cy=e=>e.json({terms:!1,normal:!0}).map(t=>t.normal),ly=function(e){if(!e.found)return null;const n=e.values(0);return n.found?(n.parse()[0]||{}).num:null},hy=function(e){const t=nt(e);return{root:Ei(t.root),number:ly(t.number),determiner:Ei(t.determiner),adjectives:cy(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}},as=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")},dy={tags:!0},fy=function(e,t){if(t.isPlural===!0||(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!as(t.root)))return e;const{methods:n,model:r}=e.world,{toPlural:o}=n.two.transform.noun,i=t.root.text({keepPunct:!1}),a=o(i,r);e.match(t.root).replaceWith(a,dy).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);const s=t.root.after("not? #Adverb+? [#Copula]",0);return s.found&&(s.has("is")?e.replace(s,"are"):s.has("was")&&e.replace(s,"were")),e},py={tags:!0},gy=function(e,t){if(t.isPlural===!1)return e;const{methods:n,model:r}=e.world,{toSingular:o}=n.two.transform.noun,i=t.root.text("normal"),a=o(i,r);return e.replace(t.root,a,py).tag("Singular","toPlural"),e},my=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Nouns"}parse(r){return this.getNth(r).map(nt)}json(r){const o=typeof r=="object"?r:{};return this.getNth(r).map(i=>{const a=i.toView().json(o)[0]||{};return o&&o.noun!==!1&&(a.noun=hy(i)),a},[])}conjugate(r){const o=this.world.methods.two.transform.noun;return this.getNth(r).map(i=>{const a=nt(i),s=a.root.compute("root").text("root"),u={Singular:s};return as(a.root)&&(u.Plural=o.toPlural(s,this.model)),u.Singular===u.Plural&&delete u.Plural,u},[])}isPlural(r){return this.filter(i=>nt(i).isPlural).getNth(r)}isSingular(r){return this.filter(i=>!nt(i).isPlural).getNth(r)}adjectives(r){let o=this.update([]);return this.forEach(i=>{const a=nt(i).adjectives;a.found&&(o=o.concat(a))}),o.getNth(r)}toPlural(r){return this.getNth(r).map(o=>fy(o,nt(o)))}toSingular(r){return this.getNth(r).map(o=>{const i=nt(o);return gy(o,i)})}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}e.prototype.nouns=function(n){let r=oy(this);return r=r.getNth(n),new t(this.document,r.pointer)}},yy={api:my},by=function(e,t){let n=e.match("#Fraction+");return n=n.filter(r=>!r.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),n},vy=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n<t.length;n++)if(t[n].reg.test(e)===!0)return{amount:t[n].mult,str:e.replace(t[n].reg,"")};return{amount:1,str:e}},Z={ones:{zeroth:0,first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9},teens:{tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19},tens:{twentieth:20,thirtieth:30,fortieth:40,fourtieth:40,fiftieth:50,sixtieth:60,seventieth:70,eightieth:80,ninetieth:90,twenty:20,thirty:30,forty:40,fourty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90},multiples:{hundredth:100,thousandth:1e3,millionth:1e6,billionth:1e9,trillionth:1e12,quadrillionth:1e15,quintillionth:1e18,sextillionth:1e21,septillionth:1e24,hundred:100,thousand:1e3,million:1e6,billion:1e9,trillion:1e12,quadrillion:1e15,quintillion:1e18,sextillion:1e21,septillion:1e24,grand:1e3}},wy=(e,t)=>{if(Z.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Z.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Z.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Py=function(e){let t="0.";for(let n=0;n<e.length;n++){const r=e[n];if(Z.ones.hasOwnProperty(r)===!0)t+=Z.ones[r];else if(Z.teens.hasOwnProperty(r)===!0)t+=Z.teens[r];else if(Z.tens.hasOwnProperty(r)===!0)t+=Z.tens[r];else if(/^[0-9]$/.test(r)===!0)t+=r;else return 0}return parseFloat(t)},ky=e=>(e=e.replace(/1st$/,"1"),e=e.replace(/2nd$/,"2"),e=e.replace(/3rd$/,"3"),e=e.replace(/([4567890])r?th$/,"$1"),e=e.replace(/^[$€¥£¢]/,""),e=e.replace(/[%$€¥£¢]$/,""),e=e.replace(/,/g,""),e=e.replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1"),e),Ay=/^([0-9,. ]+)\/([0-9,. ]+)$/,Di={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Pn=e=>Object.keys(e).reduce((t,n)=>(t+=e[n],t),0),Ar=function(e){if(Di.hasOwnProperty(e)===!0)return Di[e];if(e==="a"||e==="an")return 1;const t=vy(e);e=t.str;let n=null,r={},o=0,i=!1;const a=e.split(/[ -]/);for(let s=0;s<a.length;s++){let u=a[s];if(u=ky(u),!u||u==="and")continue;if(u==="-"||u==="negative"){i=!0;continue}if(u.charAt(0)==="-"&&(i=!0,u=u.substring(1)),u==="point")return o+=Pn(r),o+=Py(a.slice(s+1,a.length)),o*=t.amount,o;const c=u.match(Ay);if(c){const l=parseFloat(c[1].replace(/[, ]/g,"")),d=parseFloat(c[2].replace(/[, ]/g,""));d&&(o+=l/d||0);continue}if(Z.tens.hasOwnProperty(u)&&r.ones&&Object.keys(r).length===1&&(o=r.ones*100,r={}),wy(u,r)===!1)return null;if(/^[0-9.]+$/.test(u))r.ones=parseFloat(u);else if(Z.ones.hasOwnProperty(u)===!0)r.ones=Z.ones[u];else if(Z.teens.hasOwnProperty(u)===!0)r.teens=Z.teens[u];else if(Z.tens.hasOwnProperty(u)===!0)r.tens=Z.tens[u];else if(Z.multiples.hasOwnProperty(u)===!0){let l=Z.multiples[u];if(l===n)return null;if(l===100&&a[s+1]!==void 0){const d=a[s+1];Z.multiples[d]&&(l*=Z.multiples[d],s+=1)}n===null||l<n?(o+=(Pn(r)||1)*l,n=l,r={}):(o+=Pn(r),n=l,o=(o||1)*l,r={})}}return o+=Pn(r),o*=t.amount,o*=i?-1:1,o===0&&Object.keys(r).length===0?null:o},Oi=/s$/,Zt=function(e){const t=e.text("reduced");return Ar(t)},Dn={half:2,halve:2,quarter:4},xy=function(e){const n=e.text("reduced").match(/^([-+]?[0-9]+)\/([-+]?[0-9]+)(st|nd|rd|th)?s?$/);return n&&n[1]&&n[0]?{numerator:Number(n[1]),denominator:Number(n[2])}:null},Cy=function(e){const t=e.match("[<num>#Value+] out of every? [<den>#Value+]");if(t.found!==!0)return null;let{num:n,den:r}=t.groups();return!n||!r||(n=Zt(n),r=Zt(r),!n||!r)?null:typeof n=="number"&&typeof r=="number"?{numerator:n,denominator:r}:null},Ny=function(e){const t=e.match("[<num>(#Cardinal|a)+] [<den>#Fraction+]");if(t.found!==!0)return null;let{num:n,den:r}=t.groups();n.has("a")?n=1:n=Zt(n);let o=r.text("reduced");return Oi.test(o)&&(o=o.replace(Oi,""),r=r.replaceWith(o)),Dn.hasOwnProperty(o)?r=Dn[o]:r=Zt(r),typeof n=="number"&&typeof r=="number"?{numerator:n,denominator:r}:null},jy=function(e){const t=e.match("^#Ordinal$");return t.found!==!0?null:e.lookAhead("^of .")?{numerator:1,denominator:Zt(t)}:null},$y=function(e){const t=e.text("reduced");return Dn.hasOwnProperty(t)?{numerator:1,denominator:Dn[t]}:null},Ty=e=>{const t=Math.round(e*1e3)/1e3;return t===0&&e!==0?e:t},qe=function(e){e=e.clone();const t=$y(e)||xy(e)||Cy(e)||Ny(e)||jy(e)||null;return t!==null&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=Ty(t.decimal)),t},Ur=function(e){if(e<1e6)return String(e);let t;return typeof e=="number"?t=e.toFixed(0):t=e,t.indexOf("e+")===-1?t:t.replace(".","").split("e+").reduce(function(n,r){return n+Array(r-n.length+2).join(0)})},kn=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Hi=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Iy=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ey=function(e){let t=e;const n=[];return Iy.forEach(r=>{if(e>=r[0]){const o=Math.floor(t/r[0]);t-=o*r[0],o&&n.push({unit:r[1],count:o})}}),n},Dy=function(e){const t=[];if(e>100)return t;for(let n=0;n<kn.length;n++)e>=kn[n][1]&&(e-=kn[n][1],t.push(kn[n][0]));return Hi[e]&&t.push(Hi[e]),t},Oy=e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"],n=[],o=Ur(e).match(/\.([0-9]+)/);if(!o||!o[0])return n;n.push("point");const i=o[0].split("");for(let a=0;a<i.length;a++)n.push(t[i[a]]);return n},Xt=function(e){let t=e.num;if(t===0||t==="0")return"zero";t>1e21&&(t=Ur(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));const r=Ey(t);for(let o=0;o<r.length;o++){let i=r[o].unit;i==="one"&&(i="",n.length>1&&n.push("and")),n=n.concat(Dy(r[o].count)),n.push(i)}return n=n.concat(Oy(t)),n=n.filter(o=>o),n.length===0&&(n[0]=""),n.join(" ")},Hy=function(e){if(!e.numerator||!e.denominator)return"";const t=Xt({num:e.numerator}),n=Xt({num:e.denominator});return`${t} out of ${n}`},Fi={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"},ss=e=>{const t=Xt(e).split(" "),n=t[t.length-1];return Fi.hasOwnProperty(n)?t[t.length-1]=Fi[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Fy=function(e){if(!e.numerator||!e.denominator)return"";const t=Xt({num:e.numerator});let n=ss({num:e.denominator});return e.denominator===2&&(n="half"),t&&n?(e.numerator!==1&&(n+="s"),`${t} ${n}`):""},Gy=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Fractions"}parse(r){return this.getNth(r).map(qe)}get(r){return this.getNth(r).map(qe)}json(r){return this.getNth(r).map(o=>{const i=o.toView().json(r)[0],a=qe(o);return i.fraction=a,i},[])}toDecimal(r){return this.getNth(r).forEach(o=>{const{decimal:i}=qe(o);o=o.replaceWith(String(i),!0),o.tag("NumericValue"),o.unTag("Fraction")}),this}toFraction(r){return this.getNth(r).forEach(o=>{const i=qe(o);if(i&&typeof i.numerator=="number"&&typeof i.denominator=="number"){const a=`${i.numerator}/${i.denominator}`;this.replace(o,a)}}),this}toOrdinal(r){return this.getNth(r).forEach(o=>{const i=qe(o);let a=Fy(i);o.after("^#Noun").found&&(a+=" of"),o.replaceWith(a)}),this}toCardinal(r){return this.getNth(r).forEach(o=>{const i=qe(o),a=Hy(i);o.replaceWith(a)}),this}toPercentage(r){return this.getNth(r).forEach(o=>{const{decimal:i}=qe(o);let a=i*100;a=Math.round(a*100)/100,o.replaceWith(`${a}%`)}),this}}e.prototype.fractions=function(n){let r=by(this);return r=r.getNth(n),new t(this.document,r.pointer)}},Sy="one|two|three|four|five|six|seven|eight|nine",et="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty",zy="eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen",rr=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+et+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+et+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+et+") ("+zy+")")&&(t=t.splitAfter("("+et+")"));const n=t.match("#Cardinal #Cardinal");if(n.found&&!t.has("(point|decimal|#Fraction)")&&!n.has("#Cardinal (#Multiple|point|decimal)")){const r=t.has(`(${Sy}) (${et})`),o=n.has("("+et+") #Cardinal"),i=n.has("#Multiple #Value");!r&&!o&&!i&&n.terms().forEach(a=>{t=t.splitOn(a)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+et+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t.has("#Time")&&(t=t.splitOn("#Time")),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+et+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},By=function(e,t){e=e.replace(/,/g,"");const n=e.split(/([0-9.,]*)/);let[r,o]=n,i=n.slice(2).join("");return o!==""&&t.length<2?(o=Number(o||e),typeof o!="number"&&(o=null),i=i||"",(i==="st"||i==="nd"||i==="rd"||i==="th")&&(i=""),{prefix:r||"",num:o,suffix:i}):null},ae=function(e){if(typeof e=="string")return{num:Ar(e)};let t=e.text("reduced");const n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(e.terms().length===1&&!e.has("#Multiple")){const s=By(t,e);if(s!==null)return s.hasComma=r,s.unit=n,s}let o=e.match("#Fraction{2,}$");o=o.found===!1?e.match("^#Fraction$"):o;let i=null;o.found&&(o.has("#Value and #Value #Fraction")&&(o=o.match("and #Value #Fraction")),i=qe(o),e=e.not(o),e=e.not("and$"),t=e.text("reduced"));let a=0;return t&&(a=Ar(t)||0),i&&i.decimal&&(a+=i.decimal),{hasComma:r,prefix:"",num:a,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Vy=function(e){const t=e.num;if(!t&&t!==0)return null;const n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let o=Ur(t);const i=o.slice(o.length-1,o.length);return r[i]?o+=r[i]:o+="th",o},Gi={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Si={"%":"percent","°":"degrees"},zi=function(e){const t={suffix:"",prefix:e.prefix};return Gi.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Gi[e.prefix],t.prefix=""),Si.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Si[e.suffix]),t.suffix&&e.num===1&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},lt=function(e,t){if(t==="TextOrdinal"){const{prefix:r,suffix:o}=zi(e);return r+ss(e)+o}if(t==="Ordinal")return e.prefix+Vy(e)+e.suffix;if(t==="TextCardinal"){const{prefix:r,suffix:o}=zi(e);return r+Xt(e)+o}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},My=e=>Object.prototype.toString.call(e)==="[object Array]",Ly=function(e){if(typeof e=="string"||typeof e=="number"){const t={};return t[e]=!0,t}return My(e)?e.reduce((t,n)=>(t[n]=!0,t),{}):e||{}},Ky=function(e,t={}){return t=Ly(t),e.filter(n=>{const{unit:r}=ae(n);return!!(r&&t[r]===!0)})},Wy=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Numbers"}parse(r){return this.getNth(r).map(ae)}get(r){return this.getNth(r).map(ae).map(o=>o.num)}json(r){const o=typeof r=="object"?r:{};return this.getNth(r).map(i=>{const a=i.toView().json(o)[0],s=ae(i);return a.number={prefix:s.prefix,num:s.num,suffix:s.suffix,hasComma:s.hasComma,unit:s.unit},a},[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(r){return Ky(this,r)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){const r=this.map(o=>{if(!this.has("#TextValue"))return o;const i=ae(o);if(i.num===null)return o;const a=o.has("#Ordinal")?"Ordinal":"Cardinal",s=lt(i,a);return o.replaceWith(s,{tags:!0}),o.tag("NumericValue")});return new t(r.document,r.pointer)}toLocaleString(){return this.forEach(o=>{const i=ae(o);if(i.num===null)return;let a=i.num.toLocaleString();if(o.has("#Ordinal")){const u=lt(i,"Ordinal").match(/[a-z]+$/);u&&(a+=u[0]||"")}o.replaceWith(a,{tags:!0})}),this}toText(){const o=this.map(i=>{if(i.has("#TextValue"))return i;const a=ae(i);if(a.num===null)return i;const s=i.has("#Ordinal")?"TextOrdinal":"TextCardinal",u=lt(a,s);return i.replaceWith(u,{tags:!0}),i.tag("TextValue"),i});return new t(o.document,o.pointer)}toCardinal(){const o=this.map(i=>{if(!i.has("#Ordinal"))return i;const a=ae(i);if(a.num===null)return i;const s=i.has("#TextValue")?"TextCardinal":"Cardinal",u=lt(a,s);return i.replaceWith(u,{tags:!0}),i.tag("Cardinal"),i});return new t(o.document,o.pointer)}toOrdinal(){const o=this.map(i=>{if(i.has("#Ordinal"))return i;const a=ae(i);if(a.num===null)return i;const s=i.has("#TextValue")?"TextOrdinal":"Ordinal",u=lt(a,s);return i.replaceWith(u,{tags:!0}),i.tag("Ordinal"),i});return new t(o.document,o.pointer)}isEqual(r){return this.filter(o=>ae(o).num===r)}greaterThan(r){return this.filter(o=>ae(o).num>r)}lessThan(r){return this.filter(o=>ae(o).num<r)}between(r,o){return this.filter(i=>{const a=ae(i).num;return a>r&&a<o})}set(r){if(r===void 0)return this;typeof r=="string"&&(r=ae(r).num);const i=this.map(a=>{const s=ae(a);if(s.num=r,s.num===null)return a;let u=a.has("#Ordinal")?"Ordinal":"Cardinal";a.has("#TextValue")&&(u=a.has("#Ordinal")?"TextOrdinal":"TextCardinal");let c=lt(s,u);return s.hasComma&&u==="Cardinal"&&(c=Number(c).toLocaleString()),a=a.not("#Currency"),a.replaceWith(c,{tags:!0}),a});return new t(i.document,i.pointer)}add(r){if(!r)return this;typeof r=="string"&&(r=ae(r).num);const i=this.map(a=>{const s=ae(a);if(s.num===null)return a;s.num+=r;let u=a.has("#Ordinal")?"Ordinal":"Cardinal";s.isText&&(u=a.has("#Ordinal")?"TextOrdinal":"TextCardinal");const c=lt(s,u);return a.replaceWith(c,{tags:!0}),a});return new t(i.document,i.pointer)}subtract(r,o){return this.add(r*-1,o)}increment(r){return this.add(1,r)}decrement(r){return this.add(-1,r)}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}t.prototype.toNice=t.prototype.toLocaleString,t.prototype.isBetween=t.prototype.between,t.prototype.minus=t.prototype.subtract,t.prototype.plus=t.prototype.add,t.prototype.equals=t.prototype.isEqual,e.prototype.numbers=function(n){let r=rr(this);return r=r.getNth(n),new t(this.document,r.pointer)},e.prototype.percentages=function(n){let r=rr(this);return r=r.filter(o=>o.has("#Percent")||o.after("^percent")),r=r.getNth(n),new t(this.document,r.pointer)},e.prototype.money=function(n){let r=rr(this);return r=r.filter(o=>o.has("#Money")||o.after("^#Currency")),r=r.getNth(n),new t(this.document,r.pointer)},e.prototype.values=e.prototype.numbers},Jy=function(e){Gy(e),Wy(e)},Ry={api:Jy},qy={people:!0,emails:!0,phoneNumbers:!0,places:!0},Uy=function(e={}){return e=Object.assign({},qy,e),e.people!==!1&&this.people().replaceWith("██████████"),e.emails!==!1&&this.emails().replaceWith("██████████"),e.places!==!1&&this.places().replaceWith("██████████"),e.phoneNumbers!==!1&&this.phoneNumbers().replaceWith("███████"),this},_y={api:function(e){e.prototype.redact=Uy}},Qy=function(e){const t=e.clauses();return/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")?!1:!!(e.has("or not$")||e.has("^#QuestionWord")||e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")||e.has("^(have|must) you")||t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))},Zy=function(e){const t=/\?/,{document:n}=e;return e.filter(r=>{const o=r.docs[0]||[],i=o[o.length-1];return!i||n[i.index[0]].length!==o.length?!1:t.test(i.post)?!0:Qy(r)})},Xy="(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)",Yy="(that|which|whichever|who|whoever|whom|whose|whomever)",eb=function(e){let t=e;return t.length===1||(t=t.if("#Verb"),t.length===1)||(t=t.ifNo(Xy),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),t.length===1)||(t=t.ifNo(Yy),t.length===1)||(t=t.ifNo("(^despite|^during|^before|^through|^throughout)"),t.length===1)||(t=t.ifNo("^#Gerund"),t.length===1)?t:(t.length===0&&(t=e),t.eq(0))},tb=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}},ht=function(e){const t=e.clauses(),r=eb(t).chunks();let o=e.none(),i=e.none(),a=e.none();return r.forEach((s,u)=>{if(u===0&&!s.has("<Verb>")){o=s;return}if(!i.found&&s.has("<Verb>")){i=s;return}i.found&&(a=a.concat(s))}),i.found&&!o.found&&(o=i.before("<Noun>+").first()),{subj:o,verb:i,pred:a,grammar:tb(i)}},nb=function(e){let t=e.verbs();const n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(o=>!o.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");const r=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(r),t.found&&t.verbs().toPastTense()}return e},rb=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(r=>!r.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},ob=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),e=e.fullSentence(),t=e.verbs(),t.length>1){t=t.slice(1);const r=t.filter(o=>o.lookBehind("to$").found?!1:o.has("#Copula #Gerund")?!0:o.has("#Gerund")?!1:o.has("#Copula")?!0:!(o.has("#PresentTense")&&!o.has("#Infinitive")&&o.lookBefore("(he|she|it|that|which)$").found));r.found&&r.forEach(o=>{if(o.has("#Copula")){o.match("was").replaceWith("is"),o.match("is").replaceWith("will be");return}o.toInfinitive()})}return e},ib=function(e){return e.verbs().first().toNegative().compute("chunks"),e},ab=function(e){return e.verbs().first().toPositive().compute("chunks"),e},sb=function(e){return e.verbs().toInfinitive(),e},ub=function(e){class t extends e{constructor(o,i,a){super(o,i,a),this.viewType="Sentences"}json(o={}){return this.map(i=>{const a=i.toView().json(o)[0]||{},{subj:s,verb:u,pred:c,grammar:l}=ht(i);return a.sentence={subject:s.text("normal"),verb:u.text("normal"),predicate:c.text("normal"),grammar:l},a},[])}toPastTense(o){return this.getNth(o).map(i=>(ht(i),nb(i)))}toPresentTense(o){return this.getNth(o).map(i=>(ht(i),rb(i)))}toFutureTense(o){return this.getNth(o).map(i=>(ht(i),i=ob(i),i))}toInfinitive(o){return this.getNth(o).map(i=>(ht(i),sb(i)))}toNegative(o){return this.getNth(o).map(i=>(ht(i),ib(i)))}toPositive(o){return this.getNth(o).map(i=>(ht(i),ab(i)))}isQuestion(o){return this.questions(o)}isExclamation(o){return this.filter(a=>a.lastTerm().has("@hasExclamation")).getNth(o)}isStatement(o){return this.filter(a=>!a.isExclamation().found&&!a.isQuestion().found).getNth(o)}update(o){const i=new t(this.document,o);return i._cache=this._cache,i}}t.prototype.toPresent=t.prototype.toPresentTense,t.prototype.toPast=t.prototype.toPastTense,t.prototype.toFuture=t.prototype.toFutureTense;const n={sentences:function(r){let o=this.map(i=>i.fullSentence());return o=o.getNth(r),new t(this.document,o.pointer)},questions:function(r){return Zy(this).getNth(r)}};Object.assign(e.prototype,n)},cb={api:ub},lb=function(e){let t=e.splitAfter("@hasComma");t=t.match("#Honorific+? #Person+");const n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t},Bi=function(e){const t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");const n=t.lastName,r=t.firstName;return(!r.found||!n.found)&&!r.found&&!n.found&&e.has("^#Honorific .$")&&(t.lastName=e.match(".$")),t},Ne="male",he="female",Vi={mr:Ne,mrs:he,miss:he,madam:he,king:Ne,queen:he,duke:Ne,duchess:he,baron:Ne,baroness:he,count:Ne,countess:he,prince:Ne,princess:he,sire:Ne,dame:he,lady:he,ayatullah:Ne,congressman:Ne,congresswoman:he,"first lady":he,mx:null},hb=function(e,t){const{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return he;if(n.has("#MaleName"))return Ne;if(r.found){let i=r.text("normal");if(i=i.replace(/\./g,""),Vi.hasOwnProperty(i))return Vi[i];if(/^her /.test(i))return he;if(/^his /.test(i))return Ne}const o=t.after();if(!o.has("#Person")&&o.has("#Pronoun")){const i=o.match("#Pronoun");if(i.has("(they|their)"))return null;const a=i.has("(he|his)"),s=i.has("(she|her|hers)");if(a&&!s)return Ne;if(s&&!a)return he}return null},db=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="People"}parse(r){return this.getNth(r).map(Bi)}json(r){const o=typeof r=="object"?r:{};return this.getNth(r).map(i=>{const a=i.toView().json(o)[0],s=Bi(i);return a.person={firstName:s.firstName.text("normal"),lastName:s.lastName.text("normal"),honorific:s.honorific.text("normal"),presumed_gender:hb(s,i)},a},[])}presumedMale(){return this.filter(r=>r.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)"))}presumedFemale(){return this.filter(r=>r.has("(#FemaleName|mrs|miss|queen|princess|madam)"))}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}e.prototype.people=function(n){let r=lb(this);return r=r.getNth(n),new t(this.document,r.pointer)}},fb=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(r=>r.has("(asia|africa|europe|america)$")?!0:!(r.has("(#City|#Region|#ProperNoun)$")&&r.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},pb=function(e){e.prototype.places=function(t){let n=fb(this);return n=n.getNth(t),new e(this.document,n.pointer)}},gb=function(e){e.prototype.organizations=function(t){return this.match("#Organization+").getNth(t)}},mb=function(e){const t=this.clauses();let n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n},yb=function(e){e.prototype.topics=mb},bb=function(e){db(e),pb(e),gb(e),yb(e)},vb={api:bb},wb=function(e){let t=e.match("<Verb>");return t=t.not("#Conjunction"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},Pb=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},kb=function(e,t){const n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;const r=e.splitOn(t);return r.length===3?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)},Ab=function(e,t){const n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},xb=function(e){return e.match("#Negative")},Cb=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};const t=e.match("#Particle$");return{verb:e.not(t),particle:t}},Oe=function(e){const t=e.clone();t.contractions().expand();const n=Pb(t);return{root:n,prefix:t.match("#Prefix"),adverbs:kb(t,n),auxiliary:Ab(t,n),negative:xb(t),phrasal:Cb(n)}},De={tense:"PresentTense"},An={conditional:!0},Re={tense:"FutureTense"},At={progressive:!0},re={tense:"PastTense"},xt={complete:!0,progressive:!1},tt={passive:!0},Nb={plural:!0},jb={plural:!1},$b=function(e){const t={};return e.forEach(n=>{Object.assign(t,n)}),t},Mi={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[De]],["^wanted to #Infinitive$",[re]],["^will want to #Infinitive$",[Re]]],"gerund-phrase":[["^#PastTense #Gerund$",[re]],["^#PresentTense #Gerund$",[De]],["^#Infinitive #Gerund$",[De]],["^will #Infinitive #Gerund$",[Re]],["^have #PastTense #Gerund$",[re]],["^will have #PastTense #Gerund$",[re]]],"simple-present":[["^#PresentTense$",[De]],["^#Infinitive$",[De]]],"simple-past":[["^#PastTense$",[re]]],"simple-future":[["^will #Adverb? #Infinitive",[Re]]],"present-progressive":[["^(is|are|am) #Gerund$",[De,At]]],"past-progressive":[["^(was|were) #Gerund$",[re,At]]],"future-progressive":[["^will be #Gerund$",[Re,At]]],"present-perfect":[["^(has|have) #PastTense$",[re,xt]]],"past-perfect":[["^had #PastTense$",[re,xt]],["^had #PastTense to #Infinitive",[re,xt]]],"future-perfect":[["^will have #PastTense$",[Re,xt]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[re,At]]],"past-perfect-progressive":[["^had been #Gerund$",[re,At]]],"future-perfect-progressive":[["^will have been #Gerund$",[Re,At]]],"passive-past":[["(got|were|was) #Passive",[re,tt]],["^(was|were) being #Passive",[re,tt]],["^(had|have) been #Passive",[re,tt]]],"passive-present":[["^(is|are|am) #Passive",[De,tt]],["^(is|are|am) being #Passive",[De,tt]],["^has been #Passive",[De,tt]]],"passive-future":[["will have been #Passive",[Re,tt,An]],["will be being? #Passive",[Re,tt,An]]],"present-conditional":[["would be #PastTense",[De,An]]],"past-conditional":[["would have been #PastTense",[re,An]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Re]]],"auxiliary-past":[["^did #Infinitive$",[re,jb]],["^used to #Infinitive$",[re,xt]]],"auxiliary-present":[["^(does|do) #Infinitive$",[De,xt,Nb]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[re]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]},xr=[];Object.keys(Mi).map(e=>{Mi[e].forEach(t=>{xr.push({name:e,match:t[0],data:$b(t[1])})})});const Tb=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e=e.not("#Adverb"),e},Ib=function(e){return!!(e.has("#Infinitive")&&e.growLeft("to").has("^to #Infinitive"))},Ue=function(e,t){const n={};e=Tb(e,t);for(let r=0;r<xr.length;r+=1){const o=xr[r];if(e.has(o.match)===!0){n.form=o.name,Object.assign(n,o.data);break}}return n.form||e.has("^#Verb$")&&(n.form="infinitive"),n.tense||(n.tense=t.root.has("#PastTense")?"PastTense":"PresentTense"),n.copula=t.root.has("#Copula"),n.isInfinitive=Ib(e),n},Li=function(e){return e.length<=1?!1:(e.parse()[0]||{}).isSubordinate},Eb=function(e){let t=e.clauses();return t=t.filter((n,r)=>!(n.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||r>0&&n.has("^#Verb . #Noun+$")||r>0&&n.has("^#Adverb"))),t.length===0?e:t},Db=function(e){let t=e.before();t=Eb(t);const n=t.nouns();let r=n.last();const o=r.match("(i|he|she|we|you|they)");if(o.found)return o.nouns();let i=n.if("^(that|this|those)");return i.found||n.found===!1&&(i=t.match("^(that|this|those)"),i.found)?i:(r=n.last(),Li(r)&&(n.remove(r),r=n.last()),Li(r)&&(n.remove(r),r=n.last()),r)},Ob=function(e,t){return t.has("(are|were|does)")||e.has("(those|they|we)")?!0:e.found&&e.isPlural?e.isPlural().found:!1},ze=function(e){const t=Db(e);return{subject:t,plural:Ob(t,e)}},J=e=>e,Rt=(e,t)=>{const n=ze(e),r=n.subject;return r.has("i")||r.has("we")?!0:n.plural},Hb=(e,t)=>{const{subject:n,plural:r}=ze(e);return r||n.has("we")?"were":"was"},qt=function(e,t){if(e.has("were"))return"are";const{subject:n,plural:r}=ze(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},_r=function(e,t){const n=ze(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},we=function(e){if(e.has("#Infinitive"))return"Infinitive";if(e.has("#Participle"))return"Participle";if(e.has("#PastTense"))return"PastTense";if(e.has("#Gerund"))return"Gerund";if(e.has("#PresentTense"))return"PresentTense"},Cr=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,we(e)),r&&e.replace(t.root,r),e},Ki=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Wi=function(e){if(!e||!e.isView)return[];const t={normal:!0,terms:!1,text:!1};return e.json(t).map(n=>n.normal)},Ji=function(e){return!e||!e.isView?"":e.text("normal")},Fb=function(e){const{toInfinitive:t}=e.methods.two.transform.verb,n=e.text("normal");return t(n,e.model,we(e))},Gb=function(e){const t=Oe(e);e=e.clone().toView();const n=Ue(e,t);return{root:t.root.text(),preAdverbs:Wi(t.adverbs.pre),postAdverbs:Wi(t.adverbs.post),auxiliary:Ji(t.auxiliary),negative:t.negative.found,prefix:Ji(t.prefix),infinitive:Fb(t.root),grammar:n}},Sb={tags:!0},zb=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:o}=t,i=o.terms().harden();let a=r.text("normal");if(a=n(a,e.model,we(r)),a&&e.replace(r,a,Sb).tag("Verb").firstTerm().tag("Infinitive"),i.found&&e.remove(i),t.negative.found){e.has("not")||e.prepend("not");const s=_r(e);e.prepend(s)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e},Ce={tags:!0},_e={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,o=t.root;if(o.has("#Modal"))return e;let i=o.text({keepPunct:!1});return i=r(i,e.model,we(o)),i=n(i,e.model).PastTense,i=i==="been"?"was":i,i==="was"&&(i=Hb(e)),i&&e.replace(o,i,Ce),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=_e.simple(e,t),e=_e.noAux(e,t),e)},hasHad:e=>(e.replace("has","had",Ce),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,o=t.root;let i=o.text("normal");return i=r(i,e.model,we(o)),n(i,e.model).Participle}},Ri={infinitive:_e.simple,"simple-present":_e.simple,"simple-past":J,"simple-future":_e.both,"present-progressive":e=>(e.replace("are","were",Ce),e.replace("(is|are|am)","was",Ce),e),"past-progressive":J,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":_e.hasHad,"past-perfect":J,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Ki(e)),e.remove("have"),e),"present-perfect-progressive":_e.hasHad,"past-perfect-progressive":J,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ce),e),"passive-past":e=>(e.replace("have","had",Ce),e),"passive-present":e=>(e.replace("(is|are)","was",Ce),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ce),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":J,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ce),e),"auxiliary-past":J,"auxiliary-present":e=>(e.replace("(do|does)","did",Ce),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ce):(_e.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":J,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ce),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),_e.simple(e,t),Ki(e),e)},Bb=function(e,t,n){return Ri.hasOwnProperty(n)&&(e=Ri[n](e,t),e.fullSentence().compute(["tagger","chunks"])),e},Nr=function(e,t){const n=ze(e),r=n.subject;return r.has("(i|we|you)")?"have":n.plural===!1||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},jr=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:o,auxiliary:i}=t;if(o.has("#Modal"))return e;let a=o.text({keepPunct:!1});a=r(a,e.model,we(o));const s=n(a,e.model);if(a=s.Participle||s.PastTense,a){e=e.replace(o,a);const u=Nr(e);e.prepend(u).match(u).tag("Auxiliary"),e.remove(i)}return e},qi={infinitive:jr,"simple-present":jr,"simple-future":(e,t)=>e.replace("will",Nr(e)),"present-perfect":J,"past-perfect":J,"future-perfect":(e,t)=>e.replace("will have",Nr(e)),"present-perfect-progressive":J,"past-perfect-progressive":J,"future-perfect-progressive":J},Vb=function(e,t,n){return qi.hasOwnProperty(n)?(e=qi[n](e,t),e.fullSentence().compute(["tagger","chunks"]),e):(e=jr(e,t),e.fullSentence().compute(["tagger","chunks"]),e)},Ze={tags:!0},Ct=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,o=t.root;let i=o.text("normal");return i=r(i,e.model,we(o)),Rt(e)===!1&&(i=n(i,e.model).PresentTense),o.has("#Copula")&&(i=qt(e)),i&&(e=e.replace(o,i,Ze),e.not("#Particle").tag("PresentTense")),e},Ui=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,o=t.root;let i=o.text("normal");return i=r(i,e.model,we(o)),Rt(e)===!1&&(i=n(i,e.model).Gerund),i&&(e=e.replace(o,i,Ze),e.not("#Particle").tag("Gerund")),e},Mb=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let o=t.root.text("normal");return o=n(o,e.model,we(r)),o&&(e=e.replace(t.root,o,Ze)),e},_i={infinitive:Ct,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb,{root:r}=t;if(r.has("#Infinitive")){const i=ze(e).subject;if(Rt(e)||i.has("i"))return e;const a=r.text("normal"),s=n(a,e.model).PresentTense;a!==s&&e.replace(r,s,Ze)}else return Ct(e,t);return e},"simple-past":Ct,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){const o=qt(e);e.replace(n,o),e=e.remove("will"),e.replace("not "+o,o+" not")}else Ct(e,t),e=e.remove("will");return e},"present-progressive":J,"past-progressive":(e,t)=>{const n=qt(e);return e.replace("(were|was)",n,Ze)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ct(e,t),e=e.remove("(have|had|has)"),e),"past-perfect":(e,t)=>{const r=ze(e).subject;return Rt(e)||r.has("i")?(e=Cr(e,t),e.remove("had"),e):(e.replace("had","has",Ze),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":J,"past-perfect-progressive":e=>e.replace("had","has",Ze),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{const n=qt(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ze),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":J,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":J,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ui(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){const n=_r(e);return e.replace(t.auxiliary,n),e}return Ui(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":J,"modal-infinitive":J,"modal-past":(e,t)=>(Mb(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ct(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Rt(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ze),e.remove("will"),e}},Lb=function(e,t,n){return _i.hasOwnProperty(n)&&(e=_i[n](e,t),e.fullSentence().compute(["tagger","chunks"])),e},us={tags:!0},xn=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:o}=t;if(r.has("#Modal"))return e;let i=r.text("normal");return i=n(i,e.model,we(r)),i&&(e=e.replace(r,i,us),e.not("#Particle").tag("Verb")),e.prepend("will").match("will").tag("Auxiliary"),e.remove(o),e},Qi=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:o,auxiliary:i}=t;let a=o.text("normal");return a=r(a,e.model,we(o)),a&&(a=n(a,e.model).Gerund,e.replace(o,a,us),e.not("#Particle").tag("PresentTense")),e.remove(i),e.prepend("will be").match("will be").tag("Auxiliary"),e},Zi={infinitive:xn,"simple-present":xn,"simple-past":xn,"simple-future":J,"present-progressive":Qi,"past-progressive":Qi,"future-progressive":J,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":J,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":J,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":J,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":J,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":J,"modal-past":J,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),xn(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)},Kb=function(e,t,n){return e.has("will")||e.has("going to")||Zi.hasOwnProperty(n)&&(e=Zi[n](e,t),e.fullSentence().compute(["tagger","chunks"])),e},Wb={tags:!0},Jb=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:o,auxiliary:i}=t;if(e.has("#Gerund"))return e;let a=o.text("normal");a=n(a,e.model,we(o));const s=r(a,e.model).Gerund;if(s){const u=qt(e);e.replace(o,s,Wb),e.remove(i),e.prepend(u)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e},Xi={tags:!0},or=function(e,t){const n=_r(e);return e.prepend(n+" not"),e},jn=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found&&t.append("not"),e)},$n=e=>e.has("(is|was|am|are|will|were|be)"),Yi={"simple-present":(e,t)=>$n(e)===!0?jn(e):(e=Cr(e,t),e=or(e),e),"simple-past":(e,t)=>$n(e)===!0?jn(e):(e=Cr(e,t),e.prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>$n(e)===!0?jn(e):or(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Xi),e.prepend("did not"),e;const t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;const t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>(e=or(e),e=e.replace("wants","want",Xi),e)},Rb=function(e,t,n){if(e.has("#Negative"))return e;if(Yi.hasOwnProperty(n))return e=Yi[n](e,t),e;let r=e.matchOne("be");return r.found?(r.prepend("not"),e):$n(e)===!0?jn(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found&&r.append("not"),e)},qb=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Verbs"}parse(r){return this.getNth(r).map(Oe)}json(r,o){return this.getNth(o).map(s=>{const u=s.toView().json(r)[0]||{};return u.verb=Gb(s),u},[])}subjects(r){return this.getNth(r).map(o=>(Oe(o),ze(o).subject))}adverbs(r){return this.getNth(r).map(o=>o.match("#Adverb"))}isSingular(r){return this.getNth(r).filter(o=>ze(o).plural!==!0)}isPlural(r){return this.getNth(r).filter(o=>ze(o).plural===!0)}isImperative(r){return this.getNth(r).filter(o=>o.has("#Imperative"))}toInfinitive(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return zb(o,i,a.form)})}toPresentTense(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return a.isInfinitive?o:Lb(o,i,a.form)})}toPastTense(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return a.isInfinitive?o:Bb(o,i,a.form)})}toFutureTense(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return a.isInfinitive?o:Kb(o,i,a.form)})}toGerund(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return a.isInfinitive?o:Jb(o,i,a.form)})}toPastParticiple(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return a.isInfinitive?o:Vb(o,i,a.form)})}conjugate(r){const{conjugate:o,toInfinitive:i}=this.world.methods.two.transform.verb;return this.getNth(r).map(a=>{const s=Oe(a),u=Ue(a,s);u.form==="imperative"&&(u.form="simple-present");let c=s.root.text("normal");if(!s.root.has("#Infinitive")){const l=we(s.root);c=i(c,a.model,l)||c}return o(c,a.model)},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){const r=this.match("do not #Verb");return r.found&&r.remove("do not"),this.remove("#Negative")}toNegative(r){return this.getNth(r).map(o=>{const i=Oe(o),a=Ue(o,i);return Rb(o,i,a.form)})}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}t.prototype.toPast=t.prototype.toPastTense,t.prototype.toPresent=t.prototype.toPresentTense,t.prototype.toFuture=t.prototype.toFutureTense,e.prototype.verbs=function(n){let r=wb(this);return r=r.getNth(n),new t(this.document,r.pointer)}},Ub={api:qb},$r=function(e,t){const n=t.match(e);if(n.found){const r=n.pronouns().refersTo();if(r.found)return r}return t.none()},ea=function(e){if(!e.found)return e;const[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()},_b=function(e,t){return t==="m"?e.filter(n=>!n.presumedFemale().found):t==="f"?e.filter(n=>!n.presumedMale().found):e},ta=function(e,t){let n=e.people();return n=_b(n,t),n.found||(n=e.nouns("#Actor"),n.found)?n.last():t==="f"?$r("(she|her|hers)",e):t==="m"?$r("(he|him|his)",e):e.none()},Qb=function(e){const t=e.nouns();let n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();const r=$r("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())},Zb=function(e,t){if(t&&t.found){const n=e.docs[0][0];n.reference=t.ptrs[0]}},ir=function(e,t){let n=e.before(),r=t(n);return r.found||(n=ea(e),r=t(n),r.found)||(n=ea(n),r=t(n),r.found)?r:e.none()},Xb=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach(n=>{let r=null;n.has("(he|him|his)")?r=ir(n,o=>ta(o,"m")):n.has("(she|her|hers)")?r=ir(n,o=>ta(o,"f")):n.has("(they|their|theirs)")&&(r=ir(n,Qb)),r&&r.found&&Zb(n,r)})},Yb=function(e){class t extends e{constructor(r,o,i){super(r,o,i),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter(r=>r.docs[0][0].reference)}refersTo(){return this.compute("coreference"),this.map(r=>{if(!r.found)return r.none();const o=r.docs[0][0];return o.reference?r.update([o.reference]):r.none()})}update(r){const o=new t(this.document,r);return o._cache=this._cache,o}}e.prototype.pronouns=function(n){let r=this.match("#Pronoun");return r=r.getNth(n),new t(r.document,r.pointer)}},ev={compute:{coreference:Xb},api:Yb};I.plugin(m1);I.plugin(v1);I.plugin(H1);I.plugin(ev);I.plugin(Y1);I.plugin(ry);I.plugin(yy);I.plugin(Ry);I.plugin(_y);I.plugin(cb);I.plugin(vb);I.plugin(Ub);const tv=(e,t,n)=>{const r=n.toLowerCase();e[r]??=new Map;const o=e[r].get(t);if(o!==void 0)return o;const{size:i}=e[r],a=`<${n.toUpperCase()}${i>0?String(i):""}>`;return e[r].set(t,a),a},nv=(e,t,n)=>{const r={};for(const i of e)r[i]=new Map;let o=n;for(const i of t){const{replacement:a,tag:s,text:u}=i;let c;typeof a=="function"?c=String(a(u,void 0)):typeof a=="string"?c=a:c=tv(r,u,s),o=o.replace(u,c)}return o},rv=(e,t,n,r,o)=>{const i=r.tags.toReversed();o?.debug(`reversedTags: ${JSON.stringify(i)}`);const a=i.find(s=>e.includes(s.toLowerCase()));return o?.debug(`foundTag: ${String(a)}`),a&&t.push({start:n.offset.start,tag:a,text:r.text}),t},ov=e=>[...e.reduce((t,n)=>t.set(n.text+String(n.start)+n.tag,n),new Map).values()].toSorted((t,n)=>{const r=t.start-n.start;return r!==0?r:n.text.length-t.text.length}),iv=(e,t,n)=>{for(const r of e){const{key:o,pattern:i}=r,a=r.compiledPattern??new RegExp(i,"giu");a.lastIndex=0;let s;for(;(s=a.exec(t))!==null;){const u=r;n.push({replacement:u.userReplacement??u.replacement!==void 0?u.replacement:void 0,start:s.index,tag:o,text:s[0]}),s.index===a.lastIndex&&(a.lastIndex+=1)}}return n},av=[{method:"emails",types:["email"]},{method:"money",types:["money"]},{method:"organizations",types:["organization"]},{method:"people",types:["firstname","lastname"]},{method:"phoneNumbers",types:["phonenumber"]},{method:"urls",types:["url"]}],sv=(e,t,n,r)=>{const o=av.filter(s=>s.types.some(u=>e.includes(u)));if(o.length===0)return n;const i=I(t),a=[];for(const s of o)a.push(...i[s.method]().out("offset"));for(const s of a){const{terms:u}=s;for(const c of u)n=rv(e,n,s,c,r)}return n},uv=(e,t,n,r)=>{let o=[];return o=sv(t,e,o,r),o=iv(n,e,o),ov(o)},cs=(e,t,n)=>{const r=[],o=[];for(const s of t)n?.exclude&&(typeof s=="string"&&n.exclude.includes(s)||typeof s=="number"&&n.exclude.includes(s)||typeof s=="object"&&n.exclude.includes(s.key))||(typeof s=="object"&&s.pattern&&r.push(s),typeof s=="string"||typeof s=="number"?o.push(s.toString()):o.push(s.key));let i=e;const a=uv(e,o,r,n?.logger);return i=nv(o,a,i),i},mt=e=>{const t=typeof e;return e!==null&&(t==="object"||t==="function")},Sn=new Set(["__proto__","prototype","constructor"]),cv=Math.max(...[...Sn].map(e=>e.length)),ls=1e6,lv=e=>e>="0"&&e<="9";function hs(e){if(e==="0")return!0;if(/^[1-9]\d*$/.test(e)){const t=Number.parseInt(e,10);return t<=Number.MAX_SAFE_INTEGER&&t<=ls}return!1}function ar(e,t){return Sn.has(e)?!1:(e&&hs(e)?t.push(Number.parseInt(e,10)):t.push(e),!0)}function hv(e){if(typeof e!="string")throw new TypeError(`Expected a string, got ${typeof e}`);const t=[];let n="",r="",o=!1,i="start",a=!1,s=0;for(const u of e){if(s++,a){n+=u,a=!1;continue}if(u==="\\"){if(i==="index")throw new Error(`Invalid character '${u}' in an index at position ${s}`);if(i==="indexEnd")throw new Error(`Invalid character '${u}' after an index at position ${s}`);a=!0,i=i==="start"?"property":i;continue}switch(u){case".":{if(i==="index")throw new Error(`Invalid character '${u}' in an index at position ${s}`);if(i==="indexEnd"){i="property";break}if(!ar(n,t))return[];n="",i="property";break}case"[":{if(i==="index")throw new Error(`Invalid character '${u}' in an index at position ${s}`);if(i==="indexEnd"){i="index";break}if(i==="property"&&n.length<=cv&&Sn.has(n))return[];o=i==="property",i="index";break}case"]":{if(i==="indexEnd")throw new Error(`Invalid character '${u}' after an index at position ${s}`);if(i!=="index"){i==="start"&&(i="property"),n+=u;break}if(r===""){n+="[]",i="property";break}if((n!==""||o)&&!ar(n,t))return[];n="",o=!1;const c=Number.parseInt(r,10),l=c<=ls&&r===String(c);t.push(l?c:r),r="",i="indexEnd";break}default:{if(i==="index"){if(!lv(u))throw new Error(`Invalid character '${u}' in an index at position ${s}`);r+=u;break}if(i==="indexEnd")throw new Error(`Invalid character '${u}' after an index at position ${s}`);i==="start"&&(i="property"),n+=u}}}switch(a&&(n+="\\"),i){case"property":{if(!ar(n,t))return[];break}case"index":throw new Error("Index was not closed");case"start":{t.push("");break}}return t}function zn(e){if(typeof e=="string")return hv(e);if(Array.isArray(e)){const t=[];for(const[n,r]of e.entries()){if(typeof r!="string"&&typeof r!="number")throw new TypeError(`Expected a string or number for path segment at index ${n}, got ${typeof r}`);if(typeof r=="number"&&!Number.isFinite(r))throw new TypeError(`Path segment at index ${n} must be a finite number, got ${r}`);if(Sn.has(r))return[];typeof r=="string"&&hs(r)?t.push(Number.parseInt(r,10)):t.push(r)}return t}return[]}function dv(e,t,n){if(!mt(e)||typeof t!="string"&&!Array.isArray(t))return e;const r=zn(t);if(r.length===0)return n;for(let o=0;o<r.length;o++){const i=r[o];if(e=e[i],e==null){if(o!==r.length-1)return n;break}}return e===void 0?n:e}function fv(e,t,n){if(!mt(e)||typeof t!="string"&&!Array.isArray(t))return e;const r=e,o=zn(t);if(o.length===0)return e;for(let i=0;i<o.length;i++){const a=o[i];if(i===o.length-1){e[a]=n;continue}const s=e[a];if(mt(s)){e=s;continue}const u=typeof o[i+1]=="number";e[a]=u?[]:{},e=e[a]}return r}function pv(e,t){if(!mt(e)||typeof t!="string"&&!Array.isArray(t))return!1;const n=zn(t);if(n.length===0)return!1;for(let r=0;r<n.length;r++){const o=n[r];if(r===n.length-1)return Object.hasOwn(e,o)?(delete e[o],!0):!1;const i=e[o];if(!mt(i))return!1;e=i}}function na(e,t){if(!mt(e)||typeof t!="string"&&!Array.isArray(t))return!1;const n=zn(t);if(n.length===0)return!1;for(const r of n){if(!mt(e)||!(r in e))return!1;e=e[r]}return!0}const sr="#;/?:@&",ur=new RegExp(String.raw`([${sr}][^${sr}=\s]+=[^${sr}=\s]*)`,"g"),gv=e=>{const t=[];let n=0;ur.lastIndex=0;let r=ur.exec(e);for(;r!==null;){const{0:i,index:a}=r;t.push({key:void 0,value:e.slice(n,a+1)}),n=a+i.length,t.push({key:i.slice(1,i.indexOf("=")),value:i.slice(i.indexOf("=")+1)}),r=ur.exec(e)}const o=e.slice(n);return o.length>0&&t.push({key:void 0,value:o}),t},ra=(e,t)=>{for(let n=0;n<e.length;n+=1){let r=e[n].string,o=e[n].index;for(;o<t.length;){const i=t[o];if(!r.includes(i))break;const a=r.slice(1);for(e.push({index:o,string:a}),a.includes(i)||e.pop(),r=r.slice(r.indexOf(i)+i.length),o+=1;t[o]==="";)o+=1;if(o>=t.length){if(t.at(-1)!==""&&r.length>0)break;return!0}}}return!1},Tr=(e,t)=>{if(!t.includes("*"))return t===e;const n=t.split("*");let r=0,o=e;for(;n[r]==="";)if(r+=1,r===t.length)return!0;if(r===0&&!e.startsWith(n[0]))return!1;const i=[];for(;r<n.length;){const a=n[r];if(!o.includes(a))return ra(i,n);const s=o.slice(1);for(i.push({index:r,string:s}),s.includes(a)||i.pop(),o=o.slice(o.indexOf(a)+a.length),r+=1;n[r]==="";)r+=1}return r>=n.length&&n.at(-1)!==""&&o.length>0?o===e?!1:ra(i,n):!0},mv=/(?:http|https):\/\/?/,Ht=(e,t,n)=>typeof e.replacement=="function"?e.replacement(t,n):e.replacement,ds=(e,t,n)=>e.wildcard?Tr(t,e.key)||Tr(n,e.key):t===e.key||n===e.key,yv=(e,t,n,r)=>{n.remove?delete e[t]:e[t]=Ht(n,e[t],r)},oa=(e,t,n,r,o,i)=>{const a=[],s=[];for(const c of r)!c.wildcard&&!c.deep&&na(e,c.key)?s.push(c):a.push(c);const u=Object.keys(e);for(const c of u){if(!Object.hasOwn(e,c))continue;const l=c.toLowerCase(),d=i?`${i}.${l}`:l;let p;for(const P of a)ds(P,l,d)&&(p=P);p?yv(e,c,p,d):e[c]=Qe(e[c],t,n,a,o,d)}for(const c of s)if(na(e,c.key))if(c.remove)pv(e,c.key);else{const l=i?`${i}.${c.key}`:c.key;fv(e,c.key,Ht(c,dv(e,c.key),l))}},ia=(e,t)=>{const n=t.toLowerCase();return e.find(r=>r.key===n||!!r.wildcard&&Tr(n,r.key))},bv=(e,t,n)=>{const r=gv(e),o=[];for(const i of r){const{key:a,value:s}=i;if(a===void 0){const u=ia(t,s);o.push(u?String(Ht(u,s,void 0)):cs(s,t,{logger:n?.logger}))}else{const u=ia(t,a);u?o.push(`${a}=${String(Ht(u,s,void 0))}`):o.push(`${a}=${s}`)}}return o.join("")},Qe=(e,t,n,r,o,i)=>{if(e==null)return e;if(typeof e=="object"&&e.constructor===String)return Qe(String(e),t,n,r,o,i);if(typeof e=="object"&&t.has(e))return t.get(e);if(typeof e=="object"&&!Array.isArray(e)){if(e instanceof Error){const s=new Error(e.message);Object.defineProperties(s,{name:{configurable:!0,enumerable:!1,value:e.name,writable:!0},stack:{configurable:!0,enumerable:!1,value:e.stack,writable:!0}}),e.code!==void 0&&(s.code=e.code);const u=Object.keys(e);for(const c of u)s[c]=e[c];return n(e,s),oa(s,t,n,r,o,i),s}if(e instanceof Map){const s=new Map;n(e,s);const u=e.entries();let c=u.next();for(;!c.done;){const[l,d]=c.value;if(typeof l=="string"||typeof l=="object"&&l!==null&&l.constructor===String){const p=l.toLowerCase(),P=i?`${i}.${p}`:p;let E;for(const L of r)ds(L,p,P)&&(E=L);E?E.remove||s.set(l,Ht(E,d,P)):s.set(l,Qe(d,t,n,r,o,P))}else s.set(Qe(l,t,n,r,o),Qe(d,t,n,r,o));c=u.next()}return s}if(e instanceof Set){const s=new Set;n(e,s);const u=e.values();let c=u.next();for(;!c.done;)s.add(Qe(c.value,t,n,r,o,i)),c=u.next();return s}const a={...e};return n(e,a),oa(a,t,n,r,o,i),a}if(typeof e=="string"){const a=e;try{const s=JSON.parse(a);if(typeof s=="object"&&s!==null){const u=Qe(s,t,n,r,o,i);return JSON.stringify(u)}}catch{}return mv.test(a)?bv(a,r,o):cs(a,r,{logger:o?.logger})}if(Array.isArray(e)){const a=[];n(e,a);for(const[s,u]of e.entries()){const c=s.toString().toLowerCase(),l=i?`${i}.${c}`.toLowerCase():c,d=r.find(p=>p.key===c||p.key===l);d?a.push(Ht(d,u,l)):a.push(Qe(u,t,n,r,o,l))}return a}return e},vv=(e,t)=>{const n=[];for(const r of e)if(typeof r=="string"){const o=r.includes("*");n.push({deep:!1,key:r.toLowerCase(),replacement:`<${r.toUpperCase()}>`,userReplacement:!1,wildcard:o})}else if(typeof r=="number")n.push({deep:!1,key:r.toString(),replacement:"<REDACTED>"});else{const o=r.key.toLowerCase(),i={...r,key:o,replacement:r.replacement??`<${o.toUpperCase()}>`,userReplacement:r.replacement!==void 0,wildcard:o.includes("*")?!0:r.wildcard};if(i.pattern!==void 0){const a=i.pattern instanceof RegExp?i.pattern.source:i.pattern;i.compiledPattern=new RegExp(a,"giu")}n.push(i)}return n},wv=(e,t,n)=>{if(e==null||typeof e=="number"||typeof e=="boolean")return e;const r=new WeakMap;return Qe(e,r,(o,i)=>{r.set(o,i)},t,n)},fs=(e,t,n)=>{const r=vv(t);return wv(e,r,n)},Qr=(e={})=>{const t=new $s(new Yr(process.stdout),new Yr(process.stderr));return new Ws(e,t)},Pv=(e,t)=>{if(!Dt(e))return e;const n=Or(t,e);return n===""||n.startsWith("..")?e:n},Ft=(e,t)=>{const n=Pv(e.file,t);return n===e.file?e:{...e,file:n}},ps=e=>{if(!Fr(e))return[];try{const t=Os(e);return Array.isArray(t)?t:[]}catch{return[]}},kv=(e,t,n)=>{const r=ps(t).map(s=>Ft(s,n)),o=new Set(r.map(s=>Nt(s))),i=e.map(s=>Ft(s,n)),a=new Set(i.map(s=>Nt(s)));return{fresh:i.filter(s=>!o.has(Nt(s))),resolved:r.filter(s=>!a.has(Nt(s))),surviving:i.filter(s=>o.has(Nt(s)))}},gs=(e,t,n,r={})=>{const o=e.map(a=>Ft(a,n));let i;if(r.replace)i=o;else{const a=ps(t).map(u=>Ft(u,n)),s=new Set;i=[];for(const u of[...a,...o]){const c=Nt(u);s.has(c)||(s.add(c),i.push(u))}}return Ds(t,`${JSON.stringify(i,null,4)}
16
- `),i.length},aa=1,Av=e=>{const t=new Map;for(const n of e){const r=t.get(n.file);r?r.push(n):t.set(n.file,[n])}return t},xv=e=>{try{return ks(e).split(/\r?\n/)}catch{return}},Cv=(e,t,n)=>{const r=Math.max(1,t);return`${e.slice(0,r-1).replaceAll(/[^\t]/g," ")}${"^".repeat(Math.max(1,n))}`},Nv=(e,t,n,r={})=>{if(e.length===0)return n?He("No secrets detected."):"No secrets detected.";const o=n?{cyan:la,dim:He,green:Dr,red:ca,yellow:Yt}:{cyan:s=>s,dim:s=>s,green:s=>s,red:s=>s,yellow:s=>s},i=[],a=Av(e);for(const[s,u]of a){const c=Or(t,s)||s;i.push(o.cyan(c));const l=r.redact?void 0:xv(s);for(const d of u){const p=[d.source,d.confidence].filter(Boolean).join(", "),P=p?` ${o.dim(`(${p})`)}`:"",E=d.alternateMatches&&d.alternateMatches.length>0?` ${o.dim(`also: ${d.alternateMatches.join(", ")}`)}`:"";let L="";switch(d.validation){case"error":{L=` ${o.yellow("! error")}`;break}case"rejected":{L=` ${o.red("✗ rejected")}`;break}case"skipped":{L=` ${o.dim("— unverifiable")}`;break}case"verified":{L=` ${o.green("✓ verified")}`;break}}if(i.push(` ${o.red("✖")} ${o.yellow(`[${d.ruleId}]`)}${P}${L} ${o.dim(`line ${String(d.startLine)}:${String(d.startColumn)}`)}${E}`),l){const Pe=Math.max(0,d.startLine-1-aa),je=Math.min(l.length,d.startLine+aa);for(let K=Pe;K<je;K+=1){const fe=String(K+1).padStart(4," "),ke=K+1===d.startLine,k=ke?o.red("▶"):" ";if(i.push(` ${k} ${o.dim(fe)} │ ${l[K]??""}`),ke){const v=Math.max(1,(d.endColumn??d.startColumn+1)-d.startColumn),A=Cv(l[K]??"",d.startColumn,v);i.push(` ${o.dim(" │ ")}${o.red(A)}`)}}}i.push("")}}return i.join(`
17
- `).trimEnd()},jv=(e,t,n={})=>{if(e.length===0)return t?He("No secrets detected in git history."):"No secrets detected in git history.";const r=t?{cyan:la,dim:He,green:Dr,red:ca,yellow:Yt}:{cyan:a=>a,dim:a=>a,green:a=>a,red:a=>a,yellow:a=>a},o=new Map;for(const a of e){const s=o.get(a.commit.sha);s?s.push(a):o.set(a.commit.sha,[a])}const i=[];for(const[a,s]of o){const{authorName:u,date:c,message:l}=s[0].commit;i.push(`${r.yellow(a.slice(0,10))} ${l}`),i.push(` ${r.dim(`${u} · ${c}`)}`);for(const d of s){const p=[d.source,d.confidence].filter(Boolean).join(", "),P=p?` ${r.dim(`(${p})`)}`:"",E=n.redact?"":` ${r.dim(d.match)}`;i.push(` ${r.red("✖")} ${r.yellow(`[${d.ruleId}]`)}${P} ${r.cyan(d.file)} ${r.dim(`line ${String(d.startLine)}:${String(d.startColumn)}`)}${E}`)}i.push("")}return i.join(`
18
- `).trimEnd()},$v=(e,t)=>{if(!Dt(e))return e.replaceAll("\\","/");try{return da(e).toString()}catch{return`file://${Et(t,e).replaceAll("\\","/")}`}},Tv=(e,t=100)=>e.length<=t?e:`${e.slice(0,t-1).trimEnd()}…`,ms=(e,t,n=process.cwd(),r=[])=>{const o=new Map(r.map(u=>[u.id,u])),i=new Set;for(const u of e)i.add(u.ruleId);const a=[...new Set([...o.keys(),...i])].sort((u,c)=>u.localeCompare(c)),s=new Map(a.map((u,c)=>[u,c]));return JSON.stringify({$schema:"https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0.json",runs:[{originalUriBaseIds:{SRCROOT:{uri:da(n).toString()}},results:e.map(u=>{const c={};return u.source&&(c.source=u.source),u.confidence&&(c.confidence=u.confidence),u.alternateMatches&&u.alternateMatches.length>0&&(c.alternateRules=u.alternateMatches),u.validation&&(c.validation=u.validation),{level:"error",locations:[{physicalLocation:{artifactLocation:{uri:$v(u.file,n),uriBaseId:Dt(u.file)?void 0:"SRCROOT"},region:{endColumn:u.endColumn,endLine:u.endLine,snippet:{text:u.match},startColumn:u.startColumn,startLine:u.startLine}}}],message:{text:u.description||u.ruleId},properties:Object.keys(c).length>0?c:void 0,ruleId:u.ruleId,ruleIndex:s.get(u.ruleId)??-1}}),tool:{driver:{informationUri:"https://visulima.com/packages/secret-scanner",name:"visulima-secret-scanner",rules:a.map(u=>{const c=o.get(u),l=c?.description??`Detected by rule \`${u}\``,d={};return c?.tags&&c.tags.length>0&&(d.tags=c.tags),c?.source&&(d.source=c.source),c?.confidence&&(d.confidence=c.confidence),{defaultConfiguration:{level:"error"},fullDescription:{text:l},helpUri:"https://visulima.com/packages/secret-scanner",id:u,name:u,properties:Object.keys(d).length>0?d:void 0,shortDescription:{text:Tv(l)}}}),version:t}}}],version:"2.1.0"},void 0,2)},On=(e,t)=>{try{return Hs("git",t,{cwd:e,encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}},Ir=e=>e.split(/\r?\n/).map(t=>t.trim()).filter(Boolean),Iv=e=>Ir(On(e,["diff","--cached","--name-only","--diff-filter=ACMR"])).map(t=>Dt(t)?t:Ut(e,t)),sa=(e,t)=>{const n=On(e,["diff","--name-only","--diff-filter=ACMR",`${t}...HEAD`]),r=Ir(n);if(r.length===0){const o=On(e,["diff","--name-only","--diff-filter=ACMR",t]);return Ir(o).map(i=>Dt(i)?i:Ut(e,i))}return r.map(o=>Dt(o)?o:Ut(e,o))},Tn=e=>On(e,["rev-parse","--show-toplevel"]).length>0,Jt=".secrets-baseline.json",ua=e=>e?Array.isArray(e)?e:[e]:[],ys=e=>{const t=new Set(["json","sarif","text"]);if(e&&!t.has(e))throw new Error(`--format must be one of: ${[...t].join(", ")} (got "${e}")`);return e??"text"},Ev=e=>{if(e===void 0)return;const t=new Set(["high","low","medium"]);if(!t.has(e))throw new Error(`--min-confidence must be one of: ${[...t].join(", ")} (got "${e}")`);return e},Dv=async(e,t)=>{const n=await Hr(e);process.stdout.write(`${String(n.length)} rules loaded
19
-
20
- `);for(const r of n){const o=t?Yt(r.id):r.id,i=r.tags.length>0?` ${t?He(`[${r.tags.join(", ")}]`):`[${r.tags.join(", ")}]`}`:"";if(process.stdout.write(`${o}${i}
21
- ${r.description}
22
- `),r.keywords.length>0){const a=`keywords: ${r.keywords.slice(0,6).join(", ")}${r.keywords.length>6?", ...":""}`;process.stdout.write(` ${t?He(a):a}
1
+ import{createRequire as rr}from"node:module";import{e as ue,m as Ss,$ as or,a as cr,z as ar}from"../packem_shared/index-DHD8wb6Z.js";import{expandAffected as lr,getChangedFiles as dr,buildEnhancedPath as ur,enforceProjectConstraints as fr,expandTokensInString as zt,parsePartition as hr,TaskScheduler as pr,createTaskGraph as mr,reverseTaskGraph as gr,resolveTurboEnvCompat as wr,CompositeLifeCycle as Yt,defaultTaskRunner as Kt,TerminalBuffer as yt,runConcurrently as tt,createLogReporter as vr,generateRunSummary as Xt,writeRunSummary as yr,readLastRunSummary as xr,getLastRunSummaryPath as jr,writeChromeTrace as kr}from"@visulima/task-runner";import{i as Ye}from"../packem_shared/index-BjdW45xX.js";import{U as Ts,W as br,T as Sr,v as Jt,X as Tr,Y as $r,d as Ir,Z as Cr,ar as Er,as as Rr,at as Pr,au as Mr,k as Fr,av as Or}from"./cli-main.js";import{u as U,y as n,X as g,m as a,E as me,R as J,w as Ar,d as Lr,b as Dr,Q as Br}from"./catalog.js";import{V as Ke}from"../packem_shared/vis-user-error-By2ZNeEA.js";import{d as _r,r as Nr}from"../packem_shared/lockfile-DVFySxTS.js";import{y as $s}from"../packem_shared/index-BisalDCf.js";import{F as Yr}from"../packem_shared/failure-log-DE_MJCzB.js";import{r as Kr}from"../packem_shared/command-runtime-CiLVo4ED.js";import{r as Xr}from"../packem_shared/toolchain-DY11tPCw.js";import{i as Jr,r as Qr,s as Zr,a as en,b as tn,c as sn,d as rn,e as nn,H as on,f as cn}from"../packem_shared/lifecycle-DW8KRF5d.js";import{s as an}from"../packem_shared/affected-selection-BmUh3_Qp.js";import{c as Zt,p as ln,a as dn,b as un,r as fn,f as hn,s as pn}from"../packem_shared/project-name-filter-D6uEN2ot.js";import{p as mn,r as gn,f as wn,a as vn}from"../packem_shared/selectors-B7lSFz7l.js";import{r as at,l as jt,d as yn,s as xn,m as jn,a as kn}from"../packem_shared/target-options-d_rIrLyq.js";import{T as Is,C as Cs,D as lt,E as Es}from"../packem_shared/symbols-BXDZ_sKt.js";import{q as In,j as Cn,X as ht,F as ts}from"../packem_shared/index.server-BAjDJSEu.js";import{parseStacktrace as En,codeFrame as Rn}from"@visulima/error";import{originalPositionFor as Pn,sourceContentFor as Mn,loadSourceMap as Fn}from"@visulima/source-map";import{l as Rs}from"../packem_shared/spinner-BM_0Bj6x.js";import{R as Bn,c as st}from"../packem_shared/formatBytes-BHAzNIrn-Bkk_uRS-.js";import{c as ss,a as _n,s as rs}from"../packem_shared/watch-Dswvj6Zp.js";import gt from"./index.js";import{U as Ps}from"../packem_shared/writeFileSync-DJoHk3Ks-CgQ-VNNT.js";let nr;const ir=s=>(nr??=rr(import.meta.url))(s),ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Pe=s=>{if(typeof ze<"u"&&ze.versions&&ze.versions.node){const[e,t]=ze.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return ze.getBuiltinModule(s)}return ir(s)},{existsSync:De,mkdirSync:Gr,writeFileSync:xt,readFileSync:We,openSync:Wr,statSync:Qt,readSync:Hr,closeSync:qr,mkdtempSync:Vr}=Pe("node:fs"),{createInterface:Ur,emitKeypressEvents:zr}=Pe("node:readline"),{isAbsolute:bn,resolve:es,dirname:Sn,relative:Tn}=Pe("node:path"),{fileURLToPath:$n}=Pe("node:url"),{createHash:On}=Pe("node:crypto"),{mkdir:An,appendFile:dt}=Pe("node:fs/promises"),{platform:Ln,homedir:kt,tmpdir:Dn}=Pe("node:os"),{spawn:Nn}=Pe("node:child_process"),Gn=27,Wn={95:"apc",80:"dcs",94:"pm",88:"sos"},Hn={159:"apc",144:"dcs",158:"pm",152:"sos"},Ms=s=>s===155||s===157||s===144||s===152||s===158||s===159,Fs=(s,e)=>{for(let t=e;t<s.length;t+=1){const r=s.codePointAt(t);if(r>=64&&r<=126)return t}return-1},rt=(s,e,t)=>{for(let r=e;r<s.length;r+=1){const c=s.codePointAt(r);if(c===156||t&&c===7)return r;if(c===27&&s.codePointAt(r+1)===92)return r+1}return-1},qn=(s,e)=>{const t=s.codePointAt(e+1);if(t===91){const r=Fs(s,e+2);return r===-1?void 0:{end:r,kind:"csi"}}if(t===93){const r=rt(s,e+2,!0);return r===-1?void 0:{end:r,kind:"osc"}}if(t===80||t===88||t===94||t===95){const r=rt(s,e+2,!1),c=Wn[t];return r===-1?void 0:{end:r,kind:c}}return t===void 0?void 0:{end:e+1,kind:"escape"}},Vn=(s,e)=>{const t=s.codePointAt(e);if(t===155){const r=Fs(s,e+1);return r===-1?void 0:{end:r,kind:"csi"}}if(t===157){const r=rt(s,e+1,!0);return r===-1?void 0:{end:r,kind:"osc"}}if(t===144||t===152||t===158||t===159){const r=rt(s,e+1,!1),c=Hn[t];return r===-1?void 0:{end:r,kind:c}}},Un=s=>{if(s.includes(String.fromCodePoint(27)))return!0;for(let e=0;e<s.length;e+=1)if(Ms(s.codePointAt(e)))return!0;return!1},zn=s=>{if(!Un(s))return s;let e="",t=0,r=0;const{length:c}=s;for(;r<c;){const o=s.codePointAt(r);let i;if(o===Gn)i=qn(s,r);else if(Ms(o))i=Vn(s,r);else{r+=1;continue}const d=i===void 0?c-1:i.end;e+=s.slice(t,r),t=d+1,r=d+1}return e+=s.slice(t),e},Yn=(s,e,t,r,c,o,i,d,u,p,f,h,l,b)=>{const T={d:r,h:c,m:o,mo:e,ms:d,s:i,w:t,y:s};return T.future=u,T.past=p,T.decimal=f,h!==void 0&&(T.unitMap=h),T.groupSeparator=l,T.placeholderSeparator=b,T},Kn={d:"d",day:"d",days:"d",h:"h",hour:"h",hours:"h",hr:"h",hrs:"h",m:"m",millisecond:"ms",milliseconds:"ms",min:"m",mins:"m",minute:"m",minutes:"m",mo:"mo",month:"mo",months:"mo",ms:"ms",s:"s",sec:"s",second:"s",seconds:"s",secs:"s",w:"w",week:"w",weeks:"w",y:"y",year:"y",years:"y",yr:"y",yrs:"y"},Xn=Yn(s=>`year${s===1?"":"s"}`,s=>`month${s===1?"":"s"}`,s=>`week${s===1?"":"s"}`,s=>`day${s===1?"":"s"}`,s=>`hour${s===1?"":"s"}`,s=>`minute${s===1?"":"s"}`,s=>`second${s===1?"":"s"}`,s=>`millisecond${s===1?"":"s"}`,"in %s","%s ago",".",Kn,",","_"),ns=new WeakSet,Jn=s=>{if(ns.has(s))return;const e=["y","mo","w","d","h","m","s","ms"];for(const r of e)if(!Object.hasOwn(s,r))throw new TypeError(`Missing required property: ${r}`);if(s.future!==void 0&&typeof s.future!="string")throw new TypeError("Properties future and past must be of type string");if(s.past!==void 0&&typeof s.past!="string")throw new TypeError("Properties future and past must be of type string");const t=["y","mo","w","d","h","m","s","ms"];for(const r of t)if(typeof s[r]!="string"&&typeof s[r]!="function")throw new TypeError(`Property ${r} must be of type string or function`);if(s.decimal&&typeof s.decimal!="string")throw new TypeError("Property decimal must be of type string");if(s.delimiter&&typeof s.delimiter!="string")throw new TypeError("Property delimiter must be of type string");if(s._digitReplacements&&!Array.isArray(s._digitReplacements))throw new TypeError("Property _digitReplacements must be an array");if(s._numberFirst&&typeof s._numberFirst!="boolean")throw new TypeError("Property _numberFirst must be of type boolean");if(s.unitMap&&typeof s.unitMap!="object")throw new TypeError("Property unitMap must be an object");if(s.unitMap&&Object.values(s.unitMap).some(r=>typeof r!="string"))throw new TypeError("All values in unitMap must be of type string");ns.add(s)},Os=(s,e)=>{if(!Number.isFinite(s)||e<0||Number.isInteger(s))return s;const t=10**e,r=Number((s*t).toPrecision(15));return Math.trunc(r)/t},is=({unitCount:s,unitName:e},t,r)=>{let{spacer:c}=r;const{maxDecimalPoints:o}=r;let i=".";r.decimal!==void 0?i=r.decimal:t.decimal!==void 0&&(i=t.decimal);let d;"digitReplacements"in r?d=r.digitReplacements:"_digitReplacements"in t&&(d=t._digitReplacements);let u,p=s;o!==void 0&&(p=Os(s,o));const f=p.toString();if(!t._hideCountIf2||s!==2)if(d){u="";for(const b of f)u+=b==="."?i:d[b]}else u=f.replace(".",i);else u="";const h=t[e];let l=h;return typeof h=="function"&&(l=h(s)),t._hideCountIf2&&s===2&&(c=""),t._numberFirst?l+c+u:u+c+l},Qn=(s,e)=>{const{units:t}=e;if(t.length===0)return[];const{unitMeasures:r}=e,c=e.largest??Number.POSITIVE_INFINITY,o={};let i,d,u,p=s;for(d=0;d<t.length;d++){i=t[d];const h=r[i];u=d===t.length-1?p/h:Math.floor(p/h),o[i]=u,p-=u*h}if(e.round){let h=c;for(d=0;d<t.length;d++)if(i=t[d],u=o[i],u!==0&&(h--,h===0)){for(let l=d+1;l<t.length;l++){const b=t[l],T=o[b];o[i]=(o[i]??0)+T*r[b]/r[i],o[b]=0}break}for(d=t.length-1;d>=0;d--){if(i=t[d],u=o[i],u===0)continue;const l=Math.round(u);if(o[i]=l,d===0)break;const b=t[d-1],T=r[b],N=Math.floor(l*r[i]/T);if(N)o[b]=(o[b]??0)+N,o[i]=0;else break}}const f=[];for(d=0;d<t.length&&f.length<c;d++){if(i=t[d],u=o[i],u&&!e.round&&f.length===c-1){let h,l=0;for(h=d+1,t.length;h<t.length;h++){const b=t[h];l+=o[b]*(e.unitMeasures[b]/e.unitMeasures[i])}u+=l,e.maxDecimalPoints!==void 0&&(u=Os(u,e.maxDecimalPoints))}u&&f.push({unitCount:u,unitName:i})}return f},Zn=(s,e,t)=>{const{language:r,units:c}=e;if(s.length===0){const h=c.at(-1);return is({unitCount:0,unitName:h},r,e)}const{conjunction:o,serialComma:i}=e;let d=", ";e.delimiter!==void 0?d=e.delimiter:r.delimiter!==void 0&&(d=r.delimiter);let u="";e.timeAdverb&&t!==0&&(u=r.future??"",t<0&&(u=r.past??""));const p=s.map(h=>is(h,r,e));let f;return!o||s.length===1?f=p.join(d):s.length===2?f=p.join(o):f=p.slice(0,-1).join(d)+(i?",":"")+o+(p.at(-1)??""),u&&(f=u.replace("%s",f)),f},ei=(s,e)=>{if(Number.isNaN(s))throw new TypeError("Expected a valid number");if(typeof s!="number")throw new TypeError("Expected a number for milliseconds input");const t={conjunction:"",language:Xn,round:!1,serialComma:!0,spacer:" ",timeAdverb:!1,unitMeasures:{d:864e5,h:36e5,m:6e4,mo:2629746e3,ms:1,s:1e3,w:6048e5,y:31556952e3},units:["w","d","h","m","s"],...e};Jn(t.language);const r=Math.abs(s),c=Qn(r,t);return Zn(c,t,s)},be="@voidzero-dev/vite-task-client",bt="@visulima/task-runner-client",nt=`npm:${bt}@^1`,As=ue(".vis",".vite-client-override-declined"),it="pnpm-workspace.yaml",ti=["dependencies","devDependencies","optionalDependencies","peerDependencies"],Ls=s=>{try{return JSON.parse(We(s,"utf8"))}catch{return}},si=s=>{const e=ue(s,it);if(De(e))try{return $s(We(e,"utf8")).toJS()?.overrides}catch{return}},ri=s=>s==="pnpm"||s==="aube"?"pnpm.overrides":s==="yarn"?"resolutions":"overrides",ni=s=>{const e=ue(s,it);try{const t=$s(We(e,"utf8"));return t.setIn(["overrides",be],nt),xt(e,t.toString()),!0}catch{return!1}},os=s=>s!==void 0&&ti.some(e=>s[e]?.[be]!==void 0),ii=(s,e)=>s!==void 0&&(s.pnpm?.overrides?.[be]!==void 0||s.overrides?.[be]!==void 0||s.resolutions?.[be]!==void 0)||e?.[be]!==void 0,oi=(s,e=[])=>{const t=Ls(ue(s,"package.json")),r=De(ue(s,"node_modules","@voidzero-dev","vite-task-client"));return{alreadyOverridden:ii(t,si(s)),declined:De(ue(s,As)),manager:_r(s)?.manager,present:os(t)||r||e.some(c=>os(c))}},ci=s=>{try{const e=ue(s,As);Gr(Ss(e),{recursive:!0}),xt(e,`Declined adding the ${be} → ${bt} override.
2
+ Delete this file to be asked again.
3
+ `)}catch{}},ai=(s,e="npm")=>{const t=`${e} install`;if((e==="pnpm"||e==="aube")&&De(ue(s,it))&&ni(s))return{file:it,installCommand:t};const r=ue(s,"package.json"),c=Ls(r);if(!c)return;const o=ri(e);o==="pnpm.overrides"?(c.pnpm??={},c.pnpm.overrides??={},c.pnpm.overrides[be]=nt):(c[o]??={},c[o][be]=nt);try{xt(r,`${JSON.stringify(c,void 0,4)}
4
+ `)}catch{return}return{file:"package.json",installCommand:t}},li=async(s,e)=>{const t=oi(s,e.projectManifests);if(!t.present||t.alreadyOverridden||t.declined)return!1;const r=Ur({input:process.stdin,output:process.stdout});try{e.logger.info(`Detected ${be}. Its cache hints no-op under @visulima/task-runner unless aliased to ${bt} (a drop-in replacement).`);const c=await new Promise(i=>{r.question("Add the override now? [y/N] ",i)});if(!/^y(?:es)?$/i.test(c.trim()))return ci(s),e.logger.info("Skipped. Delete .vis/.vite-client-override-declined to be asked again."),!1;const o=ai(s,t.manager);return o===void 0?(e.logger.warn("Could not write the override automatically — add it manually (see @visulima/task-runner-client README)."),!1):(e.logger.info(`Added "${be}": "${nt}" to ${o.file}. Run \`${o.installCommand}\` to apply it.`),!0)}finally{r.close()}},di=({interactive:s,taskPty:e,workspacePty:t})=>e===!0?!0:e===!1?!1:s&&t!==!1,ui=s=>s.split(",").map(e=>e.trim()).filter(e=>e!==""),fi=(s,e,t)=>{const r=new Set,c=[];if(s===void 0||s.trim()==="")return{skipTaskIds:r,unmatchedPatterns:c};const o=[...t],i=new Set(o),d=new Map;for(const u of o){const p=u.lastIndexOf(":");if(p===-1)continue;const f=u.slice(p+1),h=d.get(f);h===void 0?d.set(f,[u]):h.push(u)}for(const u of ui(s)){if(u.startsWith("~:"))throw new Error(`--skip-cache does not support the closest-project selector "~:" (received "${u}"). Use \`pkg:target\`, \`:target\`, or \`#tag:target\`.`);if(i.has(u)){r.add(u);continue}const p=mn(u);if(!p){c.push(u);continue}let f=!1;switch(p.kind){case"all":{const h=d.get(p.target)??[];for(const l of h)r.add(l),f=!0;break}case"project":{const h=p.projects?.[0];if(h!==void 0){const l=`${h}:${p.target}`;i.has(l)&&(r.add(l),f=!0)}break}case"tag":{const{tag:h}=p;if(h!==void 0){const l=d.get(p.target)??[];for(const b of l){const T=b.slice(0,b.lastIndexOf(":"));e.projects[T]?.tags?.includes(h)===!0&&(r.add(b),f=!0)}}break}}f||c.push(u)}return{skipTaskIds:r,unmatchedPatterns:c}},hi=/\$(?:\{([A-Z_]\w*)(:-[^}]*)?\}|([A-Z_]\w*))/gi,pi=new Set(["0","!","#","$","*","-","?","@","_"]),mi=s=>{const e=new Map;for(const t of s.matchAll(hi)){const r=t[1],c=t[3],o=t[2],i=r??c;if(i===void 0||pi.has(i))continue;const d=o!==void 0,u=e.get(i);u===void 0?e.set(i,d):u&&!d&&e.set(i,!1)}return[...e.entries()].map(([t,r])=>({hasDefault:r,name:t}))},gi=s=>{const{command:e,processEnv:t,taskEnv:r,taskId:c}=s,o=mi(e);if(o.length===0)return;const i=[];for(const{hasDefault:d,name:u}of o){if(d)continue;const p=r[u],f=t[u];p===void 0&&f===void 0&&i.push(u)}if(i.length!==0)return{missing:i.toSorted(),taskId:c}},wi=s=>{const e=s.missing.map(t=>`$${t}`).join(", ");return`Strict env: ${s.taskId} references unset variable${s.missing.length===1?"":"s"} ${e}. Set ${s.missing.length===1?"it":"them"} in the task env, an envFile, or the parent shell — or opt out with options.strictEnv: false.`},vi=64*1024,cs=256,yi=new RegExp("[\x1B›]\\[[0-?]*[ -/]*[@-~]","g"),pt=s=>s.replaceAll(yi,"").replaceAll("\r","");class as{#e=[];#r=new Set;#s=new Map;#n=new Map;constructor(e=[]){for(const t of e)this.#n.set(t,{id:t,status:"pending",tailLines:[]});this.#e=[...e],this.#i()}getSnapshot=()=>this.#s;subscribe=e=>(this.#r.add(e),()=>{this.#r.delete(e)});getIds(){return this.#e}getState(e){return this.#n.get(e)}getDockState(){let e=!1,t=!1;for(const r of this.#n.values())r.status==="crashed"||r.status==="failed"?e=!0:(r.status==="pending"||r.status==="starting")&&(t=!0);return e?"crash":t?"boot":"ready"}registerService(e){this.#n.has(e)||(this.#n.set(e,{id:e,status:"pending",tailLines:[]}),this.#e=[...this.#e,e],this.#o())}markStarting(e){this.#t(e,t=>({...t,errorMessage:void 0,startedAt:t.startedAt??Date.now(),status:"starting"}))}markStarted(e,t){this.#t(e,r=>({...r,startedAt:r.startedAt??Date.now(),status:r.status==="ready"?"ready":"starting"}))}markReady(e,t){this.#t(e,r=>({...r,errorMessage:void 0,port:t.port,readyAt:Date.now(),status:"ready"}))}markFailed(e,t,r){const c=r?.message;this.#t(e,o=>({...o,errorMessage:pt(c??t),status:"failed"}))}markCrashed(e,t){const r=t.slice(-cs).map(c=>pt(c));this.#t(e,c=>({...c,errorMessage:r.length>0?r[r.length-1]:"process exited",status:"crashed",tailLines:r}))}appendLog(e,t){const r=t.split(`
5
+ `).map(c=>pt(c)).filter(c=>c.length>0);r.length!==0&&this.#t(e,c=>{const o=[...c.tailLines,...r];for(;o.length>cs;)o.shift();let i=0;for(let d=o.length-1;d>=0;d--)if(i+=o[d].length+1,i>vi){o.splice(0,d+1);break}return{...c,lastLine:r[r.length-1],tailLines:o}})}abortBoot(e){let t=!1;const r=new Map(this.#n);for(const[c,o]of r)(o.status==="pending"||o.status==="starting")&&(r.set(c,{...o,errorMessage:e,status:"failed"}),t=!0);t&&(this.#n=r,this.#i(),this.#o())}#t(e,t){const r=this.#n.get(e);r&&(this.#n.set(e,t(r)),this.#i(),this.#o())}#i(){this.#s=new Map(this.#n)}#o(){for(const e of this.#r)try{e()}catch{}}}const xi=(s,e)=>{if(s===e)return!0;if(!s||!e||s.length!==e.length)return!1;for(const[t,r]of s.entries())if(!Object.is(r,e[t]))return!1;return!0},ls=({children:s,deps:e,onRender:t,style:r,width:c})=>{const o=U.useRef(null),i=U.useRef(!1),d=U.useRef(e),u=U.useRef(s),p=U.useRef(t);p.current=t;let f=!1;e!==void 0?xi(d.current,e)||(f=!0,d.current=e):s!==u.current&&(f=!0,u.current=s),f&&(i.current=!1,o.current&&(o.current.cachedRender=void 0)),U.useLayoutEffect(()=>{const l=o.current;l&&(l.internal_onRendered=()=>{i.current=!0,p.current?.(l)})}),U.useEffect(()=>()=>{const l=o.current;l&&(l.cachedRender=void 0,l.internal_onRendered=void 0)},[]);const h=U.useMemo(()=>({...r,width:c}),[r,c]);return n.jsx("ink-static-render",{ref:o,style:h,children:i.current?null:s()})},ji=s=>Array.isArray(s)?`[${s.join(",")}]`:typeof s=="object"&&s!==null?JSON.stringify(s):String(s),ki=(s,e,t)=>e==="_"?`${s}${Array.isArray(t)?t.join(" "):String(t)}`:`${s}--${e}=${ji(t)}`,St=(s,e,t)=>{const r=new Set(new Set(t.map(l=>l.target.target))),c=new Set(new Set(t.map(l=>l.target.project))),o=e.filter(l=>r.has(l)),i=s.filter(l=>c.has(l)),d=t.length-i.length*o.length,u=o.length===1?"target":"targets",p=o.join(", "),f=i.length===1?`project ${i[0]}`:`${i.length} projects`;let h=`${u} ${p} for ${f}`;return d>0&&(h+=` and ${d} ${d===1?"task":"tasks"} ${d===1?"it depends":"they depend"} on`),h},bi={error:"red",info:"white",success:"green"},wt=({children:s,title:e,variant:t})=>{const r=bi[t];return n.jsxs(g,{flexDirection:"column",children:[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,inverse:!0,children:" VIS "}),n.jsx(a,{bold:!0,color:r,children:"•"}),n.jsx(a,{children:e})]}),s]})},Ds=({cached:s,failed:e,failedIds:t,projectNames:r,retriedIds:c,skippedIds:o,succeeded:i,targets:d,tasks:u,took:p})=>{const f=St(r,d,u),h=c??[];if(e===0&&(!o||o.length===0)){const l=s>0?` (${s} read from cache)`:"";return n.jsx(ls,{children:()=>n.jsx(wt,{title:`Successfully ran ${f}`,variant:"success",children:n.jsxs(g,{flexDirection:"column",marginTop:1,paddingLeft:3,children:[n.jsxs(a,{children:[n.jsx(a,{color:"green",children:Is})," ",i+s," tasks completed",l?n.jsx(a,{dimColor:!0,children:l}):null,n.jsx(a,{dimColor:!0,children:` · Took ${p}`})]}),h.length>0&&n.jsxs(g,{flexDirection:"column",marginTop:1,children:[n.jsxs(a,{children:[n.jsx(a,{color:"yellow",children:"↻"})," ",n.jsx(a,{color:"yellow",children:String(h.length)})," task",h.length===1?"":"s"," succeeded after retry:"]}),h.map(b=>n.jsxs(a,{children:[" ",n.jsx(a,{color:"yellow",children:"↻"})," ",b]},b))]})]})})})}return n.jsx(ls,{children:()=>n.jsx(wt,{title:`Ran ${f}`,variant:"error",children:n.jsxs(g,{flexDirection:"column",marginTop:1,paddingLeft:3,children:[o&&o.length>0&&n.jsxs(g,{flexDirection:"column",children:[n.jsxs(a,{dimColor:!0,children:[o.length," ","task",o.length===1?"":"s"," ","skipped (dependency failed or --bail)"]}),o.map(l=>n.jsxs(a,{dimColor:!0,children:[" - ",l]},l)),n.jsx(a,{})]}),e>0&&n.jsxs(g,{flexDirection:"column",children:[n.jsxs(a,{children:[n.jsx(a,{color:"red",children:String(e)})," ","task",e===1?"":"s"," ","failed:"]}),t.map(l=>n.jsxs(a,{children:[" ",n.jsx(a,{color:"red",children:Cs})," ",l]},l)),n.jsx(a,{})]}),h.length>0&&n.jsxs(g,{flexDirection:"column",children:[n.jsxs(a,{children:[n.jsx(a,{color:"yellow",children:String(h.length)})," ","task",h.length===1?"":"s"," ","finished after retry:"]}),h.map(l=>n.jsxs(a,{children:[" ",n.jsx(a,{color:"yellow",children:"↻"})," ",l]},l)),n.jsx(a,{})]}),n.jsx(a,{dimColor:!0,children:` Took ${p}`})]})})})};class ot{#e;#r=new Set;#s=new Map;constructor(e,t){this.#e={autoExitCountdown:null,cached:0,completed:0,done:!1,endTime:null,failed:0,filterActive:!1,filterText:"",focusedPanel:"tasks",interactiveMode:!1,outputs:new Map,pinnedTaskIds:[null,null],rerunRequested:!1,retriedIds:[],retryTaskId:null,rows:e.map(r=>({persistent:!!r.overrides.visOptions?.persistent,status:"pending",taskId:r.id})),running:0,selectedIndex:0,startTime:Date.now(),statusFilter:"all",succeeded:0,totalTasks:t??e.length,viewMode:"list"}}getSnapshot=()=>this.#e;subscribe=e=>(this.#r.add(e),()=>{this.#r.delete(e)});startTasks(e){const t=[...this.#e.rows];for(const r of e){const c=t.findIndex(o=>o.taskId===r.id);c!==-1&&(t[c]={...t[c],elapsed:0,status:"running"},this.#s.set(r.id,process.hrtime()))}this.#t({...this.#e,rows:t,running:this.#e.running+e.length})}endTasks(e){const t=[...this.#e.rows];let{cached:r,completed:c,failed:o,succeeded:i}=this.#e;const d=new Map(this.#e.outputs),u=[...this.#e.retriedIds];for(const h of e){const l=t.findIndex(b=>b.taskId===h.task.id);switch(l!==-1&&(t[l]={...t[l],duration:h.startTime&&h.endTime?h.endTime-h.startTime:void 0,retryAttempts:h.retryAttempts,status:h.status}),h.retryAttempts&&h.retryAttempts>0&&u.push(h.task.id),c++,h.status){case"failure":{o++;break}case"local-cache":case"local-cache-kept-existing":case"remote-cache":{r++;break}case"success":{i++;break}}h.terminalOutput&&!d.has(h.task.id)&&d.set(h.task.id,h.terminalOutput),this.#s.delete(h.task.id)}let{selectedIndex:p}=this.#e;if(o>this.#e.failed){const h=t.findIndex(l=>l.status==="failure");h!==-1&&(p=h)}const f=Math.max(0,this.#e.running-e.length);this.#t({...this.#e,cached:r,completed:c,failed:o,outputs:d,retriedIds:u,rows:t,running:f,selectedIndex:p,succeeded:i})}static#n=256*1024;addOutput(e,t){if(!t.trim())return;let r=(this.#e.outputs.get(e)??"")+t;r.length>ot.#n&&(r=r.slice(-ot.#n)),this.#e.outputs.set(e,r),this.#t({...this.#e})}setOutput(e,t){this.#e.outputs.set(e,t),this.#t({...this.#e})}markDone(){this.#t({...this.#e,done:!0,endTime:Date.now()})}unmarkDone(){this.#t({...this.#e,autoExitCountdown:null,done:!1,endTime:null})}tick(){if(this.#s.size===0)return;let e=!1;const t=[...this.#e.rows];for(let r=0;r<t.length;r++){const c=t[r];if(c.status==="running"){const o=this.#s.get(c.taskId);if(o){const i=process.hrtime(o),d=i[0]*1e3+i[1]/1e6;t[r]={...c,elapsed:d},e=!0}}}e&&this.#t({...this.#e,rows:t})}setSelectedIndex(e){e!==this.#e.selectedIndex&&this.#t({...this.#e,selectedIndex:e})}setFocusedPanel(e){e!==this.#e.focusedPanel&&this.#t({...this.#e,focusedPanel:e})}setFilter(e){this.#t({...this.#e,filterText:e,selectedIndex:0})}setFilterActive(e){e!==this.#e.filterActive&&this.#t({...this.#e,filterActive:e,filterText:e?this.#e.filterText:"",selectedIndex:0})}pinTask(e,t){const r=[...this.#e.pinnedTaskIds];r[e]=t,this.#t({...this.#e,pinnedTaskIds:r})}clearPins(){this.#t({...this.#e,pinnedTaskIds:[null,null]})}requestRetry(e){const t=[...this.#e.rows],r=t.findIndex(d=>d.taskId===e);let{completed:c,failed:o,succeeded:i}=this.#e;if(r!==-1){const d=t[r].status;d==="failure"?(o=Math.max(0,o-1),c=Math.max(0,c-1)):d==="success"&&(i=Math.max(0,i-1),c=Math.max(0,c-1)),t[r]={...t[r],elapsed:0,retryAttempts:void 0,status:"running"},this.#s.set(e,process.hrtime())}this.#t({...this.#e,completed:c,done:!1,endTime:null,failed:o,interactiveMode:!1,retriedIds:this.#e.retriedIds.filter(d=>d!==e),retryTaskId:e,rows:t,succeeded:i})}acknowledgeRetry(){const e=this.#e.retryTaskId;return e&&this.#t({...this.#e,retryTaskId:null}),e}setInteractiveMode(e){e!==this.#e.interactiveMode&&this.#t({...this.#e,interactiveMode:e})}setViewMode(e){e!==this.#e.viewMode&&this.#t({...this.#e,viewMode:e})}setStatusFilter(e){this.#t({...this.#e,selectedIndex:0,statusFilter:e})}requestRerun(){this.#s.clear(),this.#t({...this.#e,autoExitCountdown:null,cached:0,completed:0,done:!1,endTime:null,failed:0,interactiveMode:!1,outputs:new Map,rerunRequested:!0,retriedIds:[],rows:this.#e.rows.map(e=>({persistent:e.persistent,status:"pending",taskId:e.taskId})),running:0,startTime:Date.now(),succeeded:0,viewMode:"list"})}acknowledgeRerun(){this.#e.rerunRequested&&this.#t({...this.#e,rerunRequested:!1})}#t(e){this.#e=e;for(const t of this.#r)try{t()}catch{}}}const Si=s=>zn(s),Ti=/^(?<name>(?:[A-Z][\w$]*)?(?:Error|Exception))(?::[ \t](?<message>.*))?$/,$i=/^\s*at\s+/,Ii=s=>{const e=s.split(`
6
+ `);let t;for(let r=0;r<e.length;r++){const c=Ti.exec(e[r].trim());if(!c)continue;const o=[];for(let i=r+1;i<e.length&&i<=r+200;i++){const d=e[i];if($i.test(d))o.push(d.trim());else{if(o.length>0)break;if(d.trim()!=="")break}}if(o.length>0){const i=c.groups?.name??"Error",d=c.groups?.message??"";t={message:d,name:i,stack:`${i}: ${d}
7
+ ${o.map(u=>` ${u}`).join(`
8
+ `)}`}}}return t},Bs=s=>{if(s.startsWith("file://"))try{return $n(s)}catch{return s}return s},Ci=s=>!s.includes("node_modules")&&!s.startsWith("node:")&&!s.startsWith("internal/"),Ei=s=>{try{return Fn(s)}catch{return}},Ri=(s,e)=>{if(!s.file||s.line===void 0)return;const t=Bs(s.file),r=bn(t)?t:es(e,t);if(!Ci(r)||!De(r))return;const c=Ei(r);if(c){const o=Pn(c,{column:s.column===void 0?0:Math.max(0,s.column-1),line:s.line});if(o.source&&o.line!=null){const i=es(Sn(r),o.source),u=Mn(c,o.source)??(De(i)?We(i,"utf8"):void 0);if(u!==void 0)return{column:o.column==null?void 0:o.column+1,file:i,line:o.line,source:u}}}return{column:s.column,file:r,line:s.line,source:We(r,"utf8")}},ds=(s,e)=>{const t=Tn(e,s);return t&&!t.startsWith("..")?t:s},_s=(s,e)=>{if(!s?.trim())return s;try{const t=Ii(Si(s));if(!t)return s;const r=new Error(t.message);r.name=t.name,r.stack=t.stack;const c=En(r);if(c.length===0)return s;const o=e.color,i={dim:l=>o?ts(l):l,head:l=>o?Cn(ht(l)):l,loc:l=>o?In(l):l};let d,u;for(const l of c){const b=Ri(l,e.cwd);if(b){d=b,u=l;break}}const p=[i.head(`✖ ${t.name}${t.message?`: ${t.message}`:""}`)];if(d){const l=`${ds(d.file,e.cwd)}:${d.line}${d.column?`:${d.column}`:""}`;p.push(` ${i.loc(l)}`,""),p.push(Rn(d.source,{start:{column:d.column,line:d.line}},{color:o?{gutter:ts,marker:ht,message:ht}:void 0,linesAbove:2,linesBelow:3}))}const f=c.filter(l=>l!==u).slice(0,8).map(l=>{const b=l.methodName??"<anonymous>",T=l.file?`${ds(Bs(l.file),e.cwd)}${l.line?`:${l.line}`:""}`:"";return i.dim(` at ${b}${T?` (${T})`:""}`)});f.length>0&&p.push("",...f);const h=i.dim("─".repeat(40));return`${p.join(`
9
+ `)}
10
+ ${h}
11
+ ${s}`}catch{return s}},Pi={delimiter:" ",language:{d:()=>" d",future:"in %s",h:()=>" h",m:()=>" m",mo:()=>" mo",ms:()=>" ms",past:"%s ago",s:()=>" s",w:()=>" w",y:()=>" y"},largest:2,round:!0,spacer:"",units:["h","m","s","ms"]},Be=s=>ei(s,Pi),Ge=s=>s==="local-cache"||s==="local-cache-kept-existing"||s==="remote-cache",He=s=>{switch(s){case"failure":return{color:"red",icon:Cs};case"local-cache":case"local-cache-kept-existing":case"remote-cache":case"success":return{color:"green",icon:Is};case"skipped":return{color:"gray",icon:lt};default:return{color:"gray",icon:"?"}}},Xe=s=>{const{color:e,icon:t}=He(s);return me(J.createElement(a,{color:e},t),{columns:10}).trim()},Mi=s=>{const{color:e,icon:t}=He(s);switch(s){case"local-cache":case"local-cache-kept-existing":case"remote-cache":return me(J.createElement(a,null,J.createElement(a,{color:e},t)," ",J.createElement(a,{color:"cyan"},"[cache]")),{columns:30}).trim();case"skipped":return me(J.createElement(a,null,J.createElement(a,{dimColor:!0},t)," ",J.createElement(a,{dimColor:!0},"[skipped]")),{columns:30}).trim();default:return me(J.createElement(a,{color:e},t),{columns:10}).trim()}},Fi=s=>s==="azure"||s==="buildkite"||s==="github"||s==="gitlab"||s==="off"?s:process.env.GITHUB_ACTIONS==="true"?"github":process.env.GITLAB_CI==="true"?"gitlab":process.env.BUILDKITE==="true"?"buildkite":process.env.TF_BUILD?.toLowerCase()==="true"?"azure":"off",Oi=s=>{const e=s.replaceAll(/\W+/g,"_"),t=On("sha256").update(s).digest("hex").slice(0,6);return`${e}_${t}`},Ai=(s,e,t,r="auto")=>{const c=t.trim();if(!c)return;const o=`
12
+ `,i=Fi(r);if(i==="github"){process.stdout.write(`::group::${Xe(e)} ${s}${o}`),process.stdout.write(c+o),process.stdout.write(`::endgroup::${o}`);return}if(i==="gitlab"){const h=Math.floor(Date.now()/1e3),l=Oi(s),b=e==="failure"?"":"[collapsed=true]",T="\x1B[0K";process.stdout.write(`${T}section_start:${String(h)}:${l}${b}\r${T}${Xe(e)} ${s}${o}`),process.stdout.write(c+o);const N=Math.floor(Date.now()/1e3);process.stdout.write(`${T}section_end:${String(N)}:${l}\r${T}${o}`);return}if(i==="buildkite"){const h=e==="failure"?"+++":"---";process.stdout.write(`${h} ${Xe(e)} ${s}${o}`),process.stdout.write(c+o);return}if(i==="azure"){process.stdout.write(`##[group]${Xe(e)} ${s}${o}`),process.stdout.write(c+o),process.stdout.write(`##[endgroup]${o}`);return}const d=process.stdout.columns||80,u=me(J.createElement(a,{dimColor:!0},lt.repeat(d)),{columns:d}).trim(),p=Mi(e),f=me(J.createElement(a,{bold:!0},s),{columns:d}).trim();process.stdout.write(`${u}${o}`),process.stdout.write(`${p} ${f}${o}`),process.stdout.write(c+o),process.stdout.write(`${u}${o}`)},Li=s=>s==="running"?{color:"white",icon:"•"}:s==="pending"?{color:"gray",icon:"·"}:He(s),Di=({autoScroll:s,focused:e,interactiveMode:t,showFullscreenHint:r,statusValue:c,supportsInteractive:o,taskId:i})=>{if(!i)return;if(t)return"Esc cancel | Enter send";const d=s?"":" PAUSED (f resume)",u=o?" i INPUT":"";return e&&c==="running"&&r?`⏎ FULLSCREEN${u} f FOLLOW${d}`:e&&c==="running"?`f FOLLOW${u}${d}`:e&&r?`<enter> full screen${d}`:e?d||void 0:"<tab> or <enter> to focus"},us=({autoScroll:s=!0,duration:e,focused:t,interactiveMode:r,output:c,scrollRef:o,showFullscreenHint:i,status:d,supportsInteractive:u=!0,taskId:p})=>{const f=d??"pending",{icon:h}=Li(f),l=t?"bold":"single",b=f==="failure"?"red":f==="success"||Ge(f)?t?"green":"gray":f==="running"?t?"white":"cyan":t?"white":"gray",T=p?`${h} ${p}`:void 0,N=e===void 0?void 0:Be(e),F=Di({autoScroll:s,focused:t,interactiveMode:r??!1,showFullscreenHint:i??!1,statusValue:f,supportsInteractive:u,taskId:p});if(!p)return n.jsxs(g,{alignItems:"center",borderColor:"gray",borderStyle:"single",flexDirection:"column",flexGrow:1,justifyContent:"center",paddingX:2,paddingY:1,children:[n.jsx(a,{dimColor:!0,children:"Select a task to view output"}),n.jsx(a,{dimColor:!0,children:"Press Enter or 1/2 to pin"})]});const S=[];if(c)for(const E of c.split(`
13
+ `))S.push(E.endsWith("\r")?E.slice(0,-1):E);return!c&&(f==="running"||f==="pending")?n.jsx(g,{borderBottomTitle:F,borderColor:b,borderStyle:l,borderTopRightTitle:N,borderTopTitle:T,flexDirection:"column",flexGrow:1,paddingX:2,paddingY:1,children:n.jsx(g,{alignItems:"center",flexGrow:1,justifyContent:"center",children:n.jsx(a,{dimColor:!0,children:"Waiting for task output…"})})}):n.jsxs(g,{borderBottomTitle:F,borderColor:r?"yellow":b,borderStyle:l,borderTopRightTitle:N,borderTopTitle:T,flexDirection:"column",flexGrow:1,children:[n.jsx(g,{flexGrow:1,flexShrink:1,paddingY:1,children:n.jsx(Ts,{flexGrow:1,followOutput:s,paddingX:2,ref:o,scrollbar:!0,scrollbarColor:"gray",scrollbarStyle:"block",children:n.jsx(a,{children:S.join(`
14
+ `)})})}),r&&n.jsx(g,{flexShrink:0,justifyContent:"center",paddingX:1,children:n.jsx(a,{bold:!0,color:"yellow",children:"INTERACTIVE | keystrokes forwarded to task | Esc to exit"})})]})},Bi={crashed:"✖",failed:"✖",pending:"·",ready:"●",starting:"•"},Ns=s=>s==="ready"?"green":s==="crashed"||s==="failed"?"red":s==="starting"?"cyan":"gray",_i=({status:s})=>s==="starting"?n.jsx(a,{color:"cyan",children:n.jsx(Rs,{type:"dots"})}):n.jsx(a,{bold:!0,color:Ns(s),children:Bi[s]}),Ni=({active:s,focused:e,state:t})=>{const r=e&&s,c=r?">":" ",o=t.status==="ready"?t.port?`running, port ${String(t.port)}`:"running":t.status==="failed"||t.status==="crashed"?t.errorMessage??"exited":t.lastLine??"booting…";return n.jsxs(g,{flexDirection:"row",flexShrink:0,overflow:"hidden",children:[n.jsx(a,{children:c}),n.jsx(a,{children:" "}),n.jsx(g,{flexShrink:0,width:3,children:n.jsx(_i,{status:t.status})}),n.jsx(g,{flexGrow:0,flexShrink:0,width:28,children:n.jsx(a,{bold:r,inverse:r,children:t.id})}),n.jsx(g,{flexGrow:1,flexShrink:1,overflow:"hidden",children:n.jsxs(a,{color:Ns(t.status),dimColor:t.status!=="crashed"&&t.status!=="failed",wrap:"truncate-end",children:[" ",o]})})]})},Gi=({states:s})=>{const e=[];for(const r of s)r.status==="ready"&&e.push(r.id);const t=e.join(", ");return n.jsxs(g,{paddingX:1,children:[n.jsxs(a,{bold:!0,color:"green",children:["● ","Services"]}),n.jsxs(a,{children:[" ",String(e.length)," / ",String(s.length)," running"]}),t.length>0&&n.jsxs(a,{dimColor:!0,children:[" ",t]}),n.jsx(a,{dimColor:!0,children:" [Tab ↓]"})]})},Wi=({states:s})=>{const e=s.find(t=>t.status==="crashed"||t.status==="failed");return e?n.jsxs(g,{flexDirection:"column",paddingX:1,children:[n.jsxs(a,{bold:!0,color:"red",children:["✖ ","Service crashed:"," ",e.id]}),e.tailLines.slice(-3).map((t,r)=>n.jsxs(a,{color:"red",dimColor:!0,children:[" ",t]},`crash-${String(r)}`))]}):n.jsx(n.Fragment,{})},Hi=({activeIndex:s,focused:e,store:t})=>{const r=U.useSyncExternalStore(t.subscribe,t.getSnapshot),c=t.getIds();if(c.length===0)return n.jsx(n.Fragment,{});const o=c.map(f=>r.get(f)).filter(f=>f!==void 0),i=t.getDockState(),d=i==="crash"?"red":i==="ready"?"gray":e?"white":"cyan",u=i==="crash"?"Services (crashed)":i==="ready"?"Services":"Services (starting)",p=e?i==="crash"?"↑↓ select Enter logs R retry Esc back":"↑↓ select Enter logs Esc back":"Tab to focus services";return i==="ready"&&!e?n.jsx(g,{borderColor:d,borderStyle:"single",flexDirection:"row",flexShrink:0,children:n.jsx(Gi,{states:o})}):n.jsxs(g,{borderBottomTitle:p,borderColor:d,borderStyle:e?"bold":"single",borderTopTitle:u,flexDirection:"column",flexGrow:2,flexShrink:0,minHeight:6,paddingX:1,children:[i==="crash"&&n.jsx(Wi,{states:o}),o.map((f,h)=>n.jsx(Ni,{active:h===s,focused:e,state:f},f.id))]})},Gs=6,Ws=8,Hs=12,qi=s=>s==="running"||s==="pending"?Es:s==="local-cache"||s==="local-cache-kept-existing"?"Local":s==="remote-cache"?"Remote":lt,fs=(s,e)=>e[0]===s?"[1]":e[1]===s?"[2]":"",hs=({compact:s,focused:e,isSelected:t,pinLabel:r,row:c})=>{const{persistent:o,status:i,taskId:d}=c,u=e&&t,p=u?">":" ",f=i==="running"&&o===!0;let h;if(f)h=n.jsx(a,{bold:!0,color:"green",children:" ● "});else if(i==="running")h=n.jsxs(a,{bold:!0,color:"white",children:[" ",n.jsx(Rs,{type:"dots"})," "]});else if(i==="pending")h=n.jsx(a,{bold:!0,color:"gray",children:" · "});else{const{color:b,icon:T}=He(i);h=n.jsxs(a,{bold:!0,color:b,children:[" ",T," "]})}let l=Es;return f?l="running":i!=="running"&&i!=="pending"?l=c.duration===void 0?lt:Be(c.duration):i==="running"&&c.elapsed!==void 0&&(l=Be(c.elapsed)),n.jsxs(g,{children:[n.jsx(a,{children:p}),n.jsx(g,{width:Gs,children:h}),n.jsxs(g,{flexGrow:1,children:[n.jsx(a,{bold:u,inverse:u,children:d}),r?n.jsx(a,{dimColor:!0,children:` ${r}`}):null]}),!s&&n.jsx(g,{justifyContent:"flex-end",width:Ws,children:n.jsx(a,{dimColor:!Ge(i),children:qi(i)})}),!s&&n.jsx(g,{justifyContent:"flex-end",width:Hs,children:n.jsx(a,{color:f?"green":void 0,dimColor:i==="pending"||f,children:l})})]})},ps=({compact:s,filterActive:e,filterText:t,focused:r,headerStatus:c,parallelSlots:o=3,pinnedTaskIds:i,rows:d,scrollRef:u,selectedIndex:p,title:f})=>{const h=c==="error"?"red":c==="success"?"green":r?"white":"gray",l=d[p]?.taskId,b=[];let T=0;for(const E of d)E.status==="running"?b.push(E):E.status==="pending"&&(T+=1);const N=Math.min(o,b.length+T),F=N>1,S=[];if(F)for(let E=0;E<N;E++){const I=b[E];I?S.push(n.jsx(hs,{compact:s,focused:r,isSelected:I.taskId===l,pinLabel:fs(I.taskId,i),row:I},`par-${I.taskId}`)):S.push(n.jsxs(g,{children:[n.jsx(a,{children:" "}),n.jsx(g,{width:Gs,children:n.jsx(a,{bold:!0,color:"gray",children:" · "})}),n.jsx(a,{dimColor:!0,children:"Waiting for task..."})]},`par-empty-${String(E)}`))}return n.jsxs(g,{borderColor:h,borderStyle:"single",flexDirection:"column",flexGrow:1,children:[n.jsxs(g,{flexShrink:0,paddingX:1,children:[n.jsx(a,{bold:!0,inverse:!0,children:" VIS "}),n.jsx(a,{children:` ${f}`}),!s&&n.jsxs(g,{flexGrow:1,gap:0,justifyContent:"flex-end",children:[n.jsx(g,{justifyContent:"flex-end",width:Ws,children:n.jsx(a,{dimColor:!0,children:"Cache"})}),n.jsx(g,{justifyContent:"flex-end",width:Hs,children:n.jsx(a,{dimColor:!0,children:"Duration"})})]})]}),n.jsx(Ts,{flexGrow:1,flexShrink:1,paddingX:1,paddingY:1,ref:u,scrollbar:!0,scrollbarColor:"gray",scrollbarStyle:"block",children:d.map(E=>n.jsx(hs,{compact:s,focused:r,isSelected:E.taskId===l,pinLabel:fs(E.taskId,i),row:E},E.taskId))}),F&&n.jsx(g,{borderBottom:!1,borderColor:"gray",borderLeft:!1,borderRight:!1,borderStyle:"single",borderTop:!0,flexDirection:"column",flexShrink:0,paddingX:1,paddingY:1,children:S}),e&&n.jsxs(g,{borderBottom:!1,borderColor:"gray",borderLeft:!1,borderRight:!1,borderStyle:"single",borderTop:!0,flexShrink:0,paddingX:1,children:[n.jsx(a,{bold:!0,color:"white",children:"/ "}),n.jsx(a,{children:t}),n.jsx(a,{inverse:!0,children:" "})]})]})},ms=40,gs=10,ws=100,Vi=Object.freeze([]),Ui=({autoExitSeconds:s,onRetryService:e,parallelSlots:t,projectNames:r,serviceDockStore:c,stdinRegistry:o,store:i,targets:d,tasks:u})=>{const{exit:p}=br(),{columns:f,rows:h}=Sr(),l=U.useSyncExternalStore(i.subscribe,i.getSnapshot),b=U.useCallback($=>c?c.subscribe($):()=>{},[c]);U.useSyncExternalStore(b,()=>c?c.getDockState():"ready");const T=c?c.getIds():Vi,N=T.length>0,[F,S]=U.useState(0),[E,I]=U.useState(null),j=U.useSyncExternalStore(b,()=>E&&c?c.getState(E):void 0),[R,w]=U.useState(!1),O=U.useRef(null),B=U.useRef(null),k=U.useRef(null),[W,se]=U.useState(!1),[ae,Q]=U.useState(!0),ee=U.useRef({list:0,splitList:0,splitOutput:0}),ie=U.useCallback(()=>{l.viewMode==="list"?ee.current.list=B.current?.getScrollOffset()??0:l.viewMode==="split"&&(ee.current.splitList=B.current?.getScrollOffset()??0,ee.current.splitOutput=k.current?.getScrollOffset()??0)},[l.viewMode]),oe=U.useCallback($=>{setTimeout(()=>{if($==="list"){const x=ee.current.list;B.current?.scrollTo(x)}else if($==="split"){const x=ee.current.splitList;x>0?B.current?.scrollTo(x):B.current?.scrollTo(Math.max(0,i.getSnapshot().selectedIndex-2)),k.current?.scrollTo(ee.current.splitOutput)}},0)},[i]),ge=U.useRef(!1);U.useEffect(()=>{l.done&&!ge.current&&(ge.current=!0,s>0&&l.failed===0&&se(!0)),!l.done&&ge.current&&(ge.current=!1,se(!1))},[l.done,l.failed,s]);const le=U.useMemo(()=>{const $=T.length>0?new Set(T):null,x=l.filterText?l.filterText.toLowerCase():null,C=[];for(const te of l.rows)$?.has(te.taskId)||l.statusFilter==="failed"&&te.status!=="failure"||l.statusFilter==="running"&&te.status!=="running"&&te.status!=="pending"||l.statusFilter==="passed"&&te.status!=="success"&&!Ge(te.status)||x&&!te.taskId.toLowerCase().includes(x)||C.push(te);return C},[l.rows,l.filterText,l.statusFilter,T]),K=(le[l.selectedIndex]??null)?.taskId??null,re=E?null:l.pinnedTaskIds[0]??K,X=re?l.rows.find($=>$.taskId===re):null,Se=j??null,_=E?(Se?.tailLines??[]).join(`
15
+ `):re?l.outputs.get(re)??"":"",z=U.useMemo(()=>X?.status==="failure"&&_?_s(_,{color:!process.env.NO_COLOR,cwd:process.cwd()}):_,[X?.status,_]),we=E??re,Me=E?Se?.status==="crashed"||Se?.status==="failed"?"failure":"running":X?.status,Fe=St(r,d,u),_e=l.done?`Completed ${Fe} (${Be((l.endTime??Date.now())-l.startTime)})`:`Running ${Fe}...`,ne=l.done?l.failed>0?"error":"success":"running",Te=U.useCallback($=>{B.current?.scrollTo(Math.max(0,$-2))},[]);if(U.useEffect(()=>{l.interactiveMode&&X?.status!=="running"&&i.setInteractiveMode(!1)},[l.interactiveMode,X?.status,i]),U.useEffect(()=>{if(!re)return;let $=f;l.viewMode==="split"&&f>=ws?$=f-Math.floor(f*.4)-2:(l.viewMode==="split"||l.viewMode==="fullscreen")&&($=f-2);const x=Math.max(1,h-4);o.get(re)?.resize?.($,x)},[f,h,l.viewMode,re]),Jt(($,x)=>{if(x.escape){i.setInteractiveMode(!1);return}if(!re)return;const C=o.get(re);if(!C){i.setInteractiveMode(!1);return}if(x.return)C.write("\r");else if(x.upArrow)C.write("\x1B[A");else if(x.downArrow)C.write("\x1B[B");else if(x.rightArrow)C.write("\x1B[C");else if(x.leftArrow)C.write("\x1B[D");else if(x.backspace)C.write("");else if(x.delete)C.write("\x1B[3~");else if(x.tab)C.write(" ");else if(x.home)C.write("\x1B[H");else if(x.end)C.write("\x1B[F");else if(x.pageUp)C.write("\x1B[5~");else if(x.pageDown)C.write("\x1B[6~");else if(x.ctrl&&$){const te=$.toUpperCase().codePointAt(0);te!==void 0&&te>=65&&te<=90&&C.write(String.fromCodePoint(te-64))}else $&&C.write($)},{isActive:l.interactiveMode}),Jt(($,x)=>{if($==="c"&&x.ctrl){p();return}if(!W){if(R){x.escape||$==="?"?w(!1):$==="q"?(w(!1),se(!0)):x.downArrow||$==="j"?O.current?.scrollBy(1):x.upArrow||$==="k"?O.current?.scrollBy(-1):x.pageDown?O.current?.scrollBy(5):x.pageUp?O.current?.scrollBy(-5):x.home?O.current?.scrollToTop():x.end&&O.current?.scrollToBottom();return}if($==="?"){w(!0);return}if($==="q"){se(!0);return}if($==="r"&&l.done){i.requestRerun();return}if($==="R"&&l.done){const C=le[l.selectedIndex];C?.status==="failure"&&i.requestRetry(C.taskId);return}if($==="F"&&!l.filterActive){const C=["all","failed","running","passed"],te=C.indexOf(l.statusFilter);i.setStatusFilter(C[(te+1)%C.length]);return}if(l.filterActive){if(x.escape){i.setFilterActive(!1);return}if(x.return){i.setFilterActive(!1);return}if(x.backspace){i.setFilter(l.filterText.slice(0,-1));return}if($&&!x.ctrl&&!x.meta){i.setFilter(l.filterText+$);return}return}if($==="i"&&X?.status==="running"&&(l.viewMode==="fullscreen"||l.viewMode==="split"&&l.focusedPanel==="output")){i.setInteractiveMode(!0);return}if(l.viewMode==="fullscreen"){if(x.escape){i.setViewMode("split"),oe("split");return}if($==="f"){const C=!ae;Q(C),C&&k.current?.scrollToBottom();return}if(x.downArrow||$==="j"){Q(!1),k.current?.scrollBy(1);return}if(x.upArrow||$==="k"){Q(!1),k.current?.scrollBy(-1);return}if(x.pageDown||x.ctrl&&$==="d"){Q(!1),k.current?.scrollBy(12);return}if(x.pageUp||x.ctrl&&$==="u"){Q(!1),k.current?.scrollBy(-12);return}if(x.home){Q(!1),k.current?.scrollToTop();return}if(x.end){Q(!0),k.current?.scrollToBottom();return}return}if(l.focusedPanel==="dock"&&N&&c){if(x.tab){I(null),i.setFocusedPanel("tasks");return}if(x.escape){i.setFocusedPanel("tasks"),I(null),l.viewMode==="split"&&(i.setViewMode("list"),oe("list"));return}if(x.downArrow||$==="j"){S(C=>Math.min(C+1,T.length-1));return}if(x.upArrow||$==="k"){S(C=>Math.max(C-1,0));return}if(x.return){const C=T[F];C&&(I(C),Q(!0),ie(),ee.current.splitList=0,ee.current.splitOutput=0,i.setViewMode("split"),i.setFocusedPanel("output"),oe("split"));return}if(($==="r"||$==="R")&&e){const C=T[F],te=C?c.getState(C)?.status:void 0;if(C&&(te==="crashed"||te==="failed")){const Ae=e(C);Ae instanceof Promise&&Ae.catch(()=>{})}return}return}if(l.viewMode==="split"){if(x.tab){l.focusedPanel==="tasks"?i.setFocusedPanel("output"):N?i.setFocusedPanel("dock"):(I(null),i.setFocusedPanel("tasks"));return}if(l.focusedPanel==="output"){if(x.escape){if(E&&N){I(null),i.setViewMode("list"),i.setFocusedPanel("dock"),oe("list");return}I(null),i.setFocusedPanel("tasks");return}if(x.return){ie(),i.setViewMode("fullscreen");return}if($==="f"){const C=!ae;Q(C),C&&k.current?.scrollToBottom();return}if(x.downArrow||$==="j"){Q(!1),k.current?.scrollBy(1);return}if(x.upArrow||$==="k"){Q(!1),k.current?.scrollBy(-1);return}if(x.pageDown||x.ctrl&&$==="d"){Q(!1),k.current?.scrollBy(12);return}if(x.pageUp||x.ctrl&&$==="u"){Q(!1),k.current?.scrollBy(-12);return}if(x.home){Q(!1),k.current?.scrollToTop();return}if(x.end){Q(!0),k.current?.scrollToBottom();return}return}if(x.escape){i.setViewMode("list"),oe("list");return}if(x.return){i.setFocusedPanel("output");return}}if(l.viewMode==="list"||l.viewMode==="split"&&l.focusedPanel==="tasks"){if(x.tab&&l.viewMode==="list"&&N){i.setFocusedPanel("dock");return}if(x.downArrow||$==="j"){const C=Math.min(l.selectedIndex+1,Math.max(0,le.length-1));i.setSelectedIndex(C),Te(C);return}if(x.upArrow||$==="k"){const C=Math.max(l.selectedIndex-1,0);i.setSelectedIndex(C),Te(C);return}if(x.return&&l.viewMode==="list"){Q(!0),ie(),ee.current.splitList=0,ee.current.splitOutput=0,i.setViewMode("split"),i.setFocusedPanel("output"),oe("split");return}if($==="/"){i.setFilterActive(!0);return}if($==="1"&&K){i.pinTask(0,K);return}if($==="2"&&K){i.pinTask(1,K);return}if($==="0"){i.clearPins();return}x.escape&&l.filterText&&i.setFilter("")}}},{isActive:!l.interactiveMode}),f<ms||h<gs)return n.jsx(g,{alignItems:"center",height:h,justifyContent:"center",width:f,children:n.jsxs(a,{color:"yellow",children:["Terminal too small (",f,"x",h,"). Minimum:"," ",ms,"x",gs]})});const Oe=n.jsxs(g,{gap:1,children:[l.succeeded>0&&n.jsxs(a,{bold:!0,color:"green",children:["✓"," ",l.succeeded]}),l.cached>0&&n.jsxs(a,{dimColor:!0,children:["✓"," ",l.cached]}),l.failed>0&&n.jsxs(a,{bold:!0,color:"red",children:["✗"," ",l.failed]}),l.running>0&&n.jsxs(a,{color:"cyan",children:["◷"," ",l.running]}),n.jsxs(a,{dimColor:!0,children:[l.totalTasks," ","total"]}),l.statusFilter!=="all"&&n.jsxs(a,{color:"yellow",children:["[",l.statusFilter,"]"]})]});let fe;if(l.viewMode==="fullscreen")fe=[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"Esc"}),n.jsx(a,{dimColor:!0,children:"BACK"})]},"esc"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"↑↓"}),n.jsx(a,{dimColor:!0,children:"SCROLL"})]},"scroll"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"^u ^d"}),n.jsx(a,{dimColor:!0,children:"PAGE"})]},"page"),...X?.status==="running"?[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"i"}),n.jsx(a,{dimColor:!0,children:"INPUT"})]},"i")]:[],n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"q"}),n.jsx(a,{dimColor:!0,children:"QUIT"})]},"q")];else if(l.done){const $=le[l.selectedIndex]?.status==="failure";fe=[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"q"}),n.jsx(a,{dimColor:!0,children:"QUIT"})]},"q"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"r"}),n.jsx(a,{dimColor:!0,children:"RERUN"})]},"r"),...$?[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"R"}),n.jsx(a,{dimColor:!0,children:"RETRY"})]},"R")]:[],n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"?"}),n.jsx(a,{dimColor:!0,children:"HELP"})]},"?"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"↑↓"}),n.jsx(a,{dimColor:!0,children:"NAV"})]},"nav"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"F"}),n.jsx(a,{dimColor:!0,children:"FILTER"})]},"F"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"⏎"}),n.jsx(a,{dimColor:!0,children:l.viewMode==="list"?"OUTPUT":"FULLSCREEN"})]},"enter")]}else l.viewMode==="split"&&l.focusedPanel==="output"?fe=[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"q"}),n.jsx(a,{dimColor:!0,children:"QUIT"})]},"q"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"Esc"}),n.jsx(a,{dimColor:!0,children:"BACK"})]},"esc"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"↑↓"}),n.jsx(a,{dimColor:!0,children:"SCROLL"})]},"scroll"),...X?.status==="running"?[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"i"}),n.jsx(a,{dimColor:!0,children:"INPUT"})]},"i")]:[],n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"⏎"}),n.jsx(a,{dimColor:!0,children:"FULLSCREEN"})]},"enter"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"Tab"}),n.jsx(a,{dimColor:!0,children:"PANEL"})]},"tab"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"?"}),n.jsx(a,{dimColor:!0,children:"HELP"})]},"?")]:fe=[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"q"}),n.jsx(a,{dimColor:!0,children:"QUIT"})]},"q"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"?"}),n.jsx(a,{dimColor:!0,children:"HELP"})]},"?"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"↑↓"}),n.jsx(a,{dimColor:!0,children:"NAV"})]},"nav"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"/"}),n.jsx(a,{dimColor:!0,children:"FILTER"})]},"/"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"F"}),n.jsx(a,{dimColor:!0,children:"STATUS"})]},"F"),n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"⏎"}),n.jsx(a,{dimColor:!0,children:l.viewMode==="list"?"OUTPUT":"FULLSCREEN"})]},"enter"),...l.viewMode==="split"?[n.jsxs(g,{gap:1,children:[n.jsx(a,{bold:!0,color:"white",children:"Tab"}),n.jsx(a,{dimColor:!0,children:"PANEL"})]},"tab")]:[]];const xe=n.jsxs(g,{borderBottom:!1,borderColor:"gray",borderLeft:!1,borderRight:!1,borderStyle:"single",flexShrink:0,justifyContent:"space-between",children:[n.jsx(g,{flexGrow:1,flexWrap:"wrap",gap:2,paddingX:1,children:fe}),n.jsx(g,{flexShrink:0,paddingX:1,children:Oe})]}),$e=n.jsxs(Tr,{backgroundColor:"#1e1e1e",footer:n.jsxs(a,{dimColor:!0,children:[n.jsx(a,{bold:!0,color:"white",children:"↑↓"})," ","scroll"," ",n.jsx(a,{bold:!0,color:"white",children:"?"}),"/",n.jsx(a,{bold:!0,color:"white",children:"Esc"})," ","close"]}),scrollRef:O,title:"KEYBOARD SHORTCUTS",visible:R,width:52,children:[n.jsxs(g,{flexDirection:"column",marginBottom:1,children:[n.jsxs(g,{marginBottom:1,children:[n.jsx(a,{dimColor:!0,children:"── "}),n.jsx(a,{bold:!0,color:"white",children:"NAVIGATION"})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","↑","/k"]}),n.jsx(a,{dimColor:!0,children:" Move up"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","↓","/j"]}),n.jsx(a,{dimColor:!0,children:" Move down"})]})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Tab"]}),n.jsx(a,{dimColor:!0,children:" Switch panel (split)"})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Esc"]}),n.jsx(a,{dimColor:!0,children:" Back / close"})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Enter"]}),n.jsx(a,{dimColor:!0,children:" Show output / fullscreen"})]})]}),n.jsxs(g,{flexDirection:"column",marginBottom:1,children:[n.jsxs(g,{marginBottom:1,children:[n.jsx(a,{dimColor:!0,children:"── "}),n.jsx(a,{bold:!0,color:"white",children:"VIEWS"})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Enter"]}),n.jsxs(a,{dimColor:!0,children:[" ","List"," ","→"," ","Split"," ","→"," ","Fullscreen"]})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Esc"]}),n.jsxs(a,{dimColor:!0,children:[" ","Fullscreen"," ","→"," ","Split"," ","→"," ","List"]})]})]}),n.jsxs(g,{flexDirection:"column",marginBottom:1,children:[n.jsxs(g,{marginBottom:1,children:[n.jsx(a,{dimColor:!0,children:"── "}),n.jsx(a,{bold:!0,color:"white",children:"ACTIONS"})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","/"]}),n.jsx(a,{dimColor:!0,children:" Filter by text"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","F"]}),n.jsx(a,{dimColor:!0,children:" Filter by status"})]})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","1"]}),n.jsx(a,{dimColor:!0,children:"/"}),n.jsx(a,{bold:!0,color:"white",children:"2"}),n.jsx(a,{dimColor:!0,children:" Pin to output pane"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","0"]}),n.jsx(a,{dimColor:!0,children:" Clear pins"})]})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","r"]}),n.jsx(a,{dimColor:!0,children:" Rerun all (done)"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","R"]}),n.jsx(a,{dimColor:!0,children:" Retry failed task"})]})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","i"]}),n.jsx(a,{dimColor:!0,children:" Interactive input (running task)"})]})]}),n.jsxs(g,{flexDirection:"column",marginBottom:1,children:[n.jsxs(g,{marginBottom:1,children:[n.jsx(a,{dimColor:!0,children:"── "}),n.jsx(a,{bold:!0,color:"white",children:"SCROLLING"}),n.jsx(a,{dimColor:!0,children:" (output panel)"})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","↑","/k"]}),n.jsx(a,{dimColor:!0,children:" Scroll up"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","↓","/j"]}),n.jsx(a,{dimColor:!0,children:" Scroll down"})]})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","^u"]}),n.jsx(a,{dimColor:!0,children:" Page up"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","^d"]}),n.jsx(a,{dimColor:!0,children:" Page down"})]})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","Home"]}),n.jsx(a,{dimColor:!0,children:" Top"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","End"]}),n.jsx(a,{dimColor:!0,children:" Bottom (resume follow)"})]})]}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","f"]}),n.jsx(a,{dimColor:!0,children:" Toggle auto-scroll (tail mode)"})]})]}),n.jsxs(g,{flexDirection:"column",children:[n.jsxs(g,{marginBottom:1,children:[n.jsx(a,{dimColor:!0,children:"── "}),n.jsx(a,{bold:!0,color:"white",children:"GENERAL"})]}),n.jsxs(g,{children:[n.jsx(g,{width:24,children:n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","q"]}),n.jsx(a,{dimColor:!0,children:" Quit"})]})}),n.jsxs(a,{children:[n.jsxs(a,{bold:!0,color:"white",children:[" ","?"]}),n.jsx(a,{dimColor:!0,children:" Toggle help"})]})]})]})]}),ve=n.jsx($r,{autoExitSeconds:s>0?s:3,onCancel:()=>{se(!1)},visible:W}),Ce=N&&c?n.jsx(Hi,{activeIndex:F,focused:l.focusedPanel==="dock",store:c}):null;if(l.viewMode==="fullscreen")return n.jsxs(g,{flexDirection:"column",height:h,width:f,children:[n.jsx(g,{flexGrow:1,children:n.jsx(us,{autoScroll:ae,duration:X?.duration??X?.elapsed,focused:!0,interactiveMode:l.interactiveMode,output:z,scrollRef:k,status:Me,supportsInteractive:!E,taskId:we})}),Ce,xe,ve,$e]});if(l.viewMode==="split"){const $=f>=ws,x=n.jsx(ps,{compact:!0,filterActive:l.filterActive,filterText:l.filterText,focused:l.focusedPanel==="tasks",headerStatus:ne,parallelSlots:t,pinnedTaskIds:l.pinnedTaskIds,rows:le,scrollRef:B,selectedIndex:l.selectedIndex,title:_e}),C=n.jsx(us,{autoScroll:ae,duration:X?.duration??X?.elapsed,focused:l.focusedPanel==="output",interactiveMode:l.interactiveMode,output:z,scrollRef:k,showFullscreenHint:!0,status:Me,supportsInteractive:!E,taskId:we});if($){const Ae=Math.floor(f*.4);return n.jsxs(g,{flexDirection:"column",height:h,width:f,children:[n.jsxs(g,{flexDirection:"row",flexGrow:1,children:[n.jsx(g,{width:Ae,children:x}),n.jsx(g,{flexGrow:1,children:C})]}),Ce,xe,ve,$e]})}const te=Math.floor(h*.45);return n.jsxs(g,{flexDirection:"column",height:h,width:f,children:[n.jsx(g,{height:te,children:x}),n.jsx(g,{flexGrow:1,children:C}),Ce,xe,ve,$e]})}return n.jsxs(g,{flexDirection:"column",height:h,width:f,children:[n.jsx(g,{flexGrow:1,children:n.jsx(ps,{filterActive:l.filterActive,filterText:l.filterText,focused:l.focusedPanel!=="dock",headerStatus:ne,parallelSlots:t,pinnedTaskIds:l.pinnedTaskIds,rows:le,scrollRef:B,selectedIndex:l.selectedIndex,title:_e})}),Ce,xe,ve,$e]})},zi=s=>{const{args:e,autoExit:t=!1,onRetryService:r,outputStyle:c="normal",projectNames:o,serviceDockStore:i,stdinRegistry:d,tasks:u,totalTaskCount:p}=s,f=new ot(u,p),h=typeof e.parallel=="number"?e.parallel:3,l=t===!0?3:typeof t=="number"?t:0;let b,T;const N=new Promise(k=>{T=k});let F;const S=()=>{F&&(clearInterval(F),F=void 0)},E=()=>{if(process.stdin.isTTY&&typeof process.stdin.setRawMode=="function")try{process.stdin.setRawMode(!1)}catch{}process.stdin.pause(),process.stdin.unref()},I=()=>{if(d){for(const k of d.values())k.kill?.();d.clear()}},j=()=>{S(),O(),I(),E(),process.stdout.write("\x1B[?1049l\x1B[?25h"),b?.cleanup(),process.exit(1)},R=()=>{const k=f.getSnapshot(),W=Be(Date.now()-k.startTime),se=k.rows.filter(ee=>ee.status==="failure").map(ee=>ee.taskId),ae=process.stdout.columns||80;process.stdout.write(`
16
+ `);for(const ee of k.rows){const{persistent:ie,status:oe,taskId:ge}=ee,le=oe==="running"||oe==="pending",q=He(oe),K=le&&ie?"■":q.icon,re=le&&ie?"gray":q.color;let X="";switch(oe){case"local-cache":case"local-cache-kept-existing":{X=" [local cache]";break}case"remote-cache":{X=" [remote cache]";break}case"skipped":{X=" [skipped]";break}default:{le&&ie?X=" [stopped]":le&&(X=" [skipped]");break}}const Se=ee.retryAttempts&&ee.retryAttempts>0?` [retried ${ee.retryAttempts}x]`:"",_=me(J.createElement(a,null," ",J.createElement(a,{color:re},K),` vis run ${ge}`,X?J.createElement(a,{dimColor:!0},` ${X}`):null,Se?J.createElement(a,{color:"yellow"},Se):null),{columns:ae});process.stdout.write(`${_}
23
17
  `)}process.stdout.write(`
24
- `)}},Ov=async(e,t)=>{const n=await Ns(e);if(n.length===0){process.stdout.write(t?`${He("No non-HTTP validators required by the current ruleset.")}
25
- `:`No non-HTTP validators required by the current ruleset.
26
- `);return}process.stdout.write(`${String(n.length)} non-HTTP validator type(s) referenced by the current ruleset:
27
-
28
- `);for(const r of n){const o=t?Yt(r.displayName):r.displayName,i=`(${r.type}, ${String(r.ruleCount)} rule${r.ruleCount===1?"":"s"})`;process.stdout.write(`${o} ${t?He(i):i}
29
- `),process.stdout.write(` ${r.summary}
30
- `);const a=r.packageName?`install: npm add ${r.packageName}`:"no driver — bespoke implementation required";process.stdout.write(` ${t?He(a):a}
31
-
32
- `)}},Hv=async(e,t,n)=>{const r=Ut(e,Jt);if(!n&&Fr(r)){de.warn(`Detected existing ${Jt} — refusing to overwrite. Delete it first to re-init.`),process.exitCode=1;return}de.info(n?"[dry-run] Previewing init — no files will be written.":"Scanning workspace to seed baseline…");const o=Qr();o.start("scanning");let i;try{i=await ha([e],t),o.succeed()}catch(s){throw o.failed(),s}if(n){de.info(`[dry-run] Would create ${Jt} with ${String(i.length)} finding(s).`);return}const a=gs(i,r,e,{replace:!0});de.success(`Wrote ${Jt} (${String(a)} findings).`),de.notice("Commit it. Use `vis secrets --baseline .secrets-baseline.json` in CI. Add path patterns to .gitignore to exclude directories from scanning.")},Fv=(e,t,n)=>{const r=t??{},o=K=>K?Et(n,K):void 0,i=(K,fe)=>{const ke=ua(K);return ke.length>0?ke:fe},a=(r.config?.presets??[]).map(K=>`tag:preset:${K}`),s=i(e.enableRule,r.rules?.enable)??[],u=[...s,...a.filter(K=>!s.includes(K))],c=u.length>0?u:void 0,l=i(e.excludeRule,r.rules?.exclude),d=i(e.includeRule,r.rules?.include),p=i(e.exclude,r.walk?.excludePatterns),P=ua(e.excludeFrom).map(K=>Et(n,K)),E=P.length>0?P:r.walk?.excludeFromFiles?.map(K=>Et(n,K)),L=o(e.baseline)??o(r.baseline),Pe=o(e.config)??o(r.config?.path),je=Ev(e.minConfidence??r.config?.minConfidence);return{baseline:L,concurrency:e.concurrency,config:{extendBundled:e.extendBundled===!1?!1:r.config?.extendBundled,inline:r.config?.inline,minConfidence:je,onlyVerified:e.onlyVerified??r.config?.onlyVerified??!1,path:Pe,validate:e.validate??r.config?.validate??!1},redact:e.redact??r.redact,rules:{enable:c,exclude:l,include:d},verbose:e.verbose??!1,walk:{excludeFromFiles:E,excludePatterns:p,gitignore:e.gitignore===!1?!1:r.walk?.gitignore??!0,includeHidden:e.includeHidden??r.walk?.includeHidden,maxFileSize:e.maxSize??r.walk?.maxFileSize}}},Gv=e=>{process.stderr.write(`${He("baseline diff: ")}${Dr(`+${String(e.fresh.length)} new`)} · ${Yt(`${String(e.surviving.length)} unchanged`)} · ${He(`-${String(e.resolved.length)} resolved`)}
33
- `)},Sv=async(e,t,n)=>{if(e.staged){if(!Tn(n))throw new Error("--staged requires a git working tree, and none was detected.");return{files:Iv(n)}}if(e.since){if(!Tn(n))throw new Error("--since requires a git working tree, and none was detected.");return{files:sa(n,e.since)}}if(e.affected){if(!Tn(n))return de.warn("--affected requires git; falling back to full scan"),{paths:t&&t.length>0?t.map(o=>Et(n,o)):[n]};const r=process.env.VIS_BASE??"HEAD~1";return{files:sa(n,r)}}return{paths:t&&t.length>0?t.map(r=>Et(n,r)):[n]}},zv=(e,t,n,r,o,i,a)=>{switch(t){case"json":{const s=e.map(u=>Ft(u,n));process.stdout.write(`${JSON.stringify(s,null,2)}
34
- `);break}case"sarif":{process.stdout.write(`${ms(e,o,n,i)}
35
- `);break}default:process.stdout.write(`${Nv(e,n,r,{redact:a})}
36
- `)}},Bv=async(e,t,n,r,o)=>{if(e.staged||e.since||e.affected)throw new Error("--history scans commit history and can't be combined with --staged / --since / --affected (those scan the working tree).");if(!Tn(t))throw new Error("--history requires a git working tree, and none was detected.");const i=ys(e.format),a=!e.quiet&&i==="text",s=Qr({verbose:a});s.start("scanning git history for secrets");let u;try{u=await js({...n,cwd:t,maxCommits:e.maxCommits,range:e.historyRange}),s.succeed()}catch(d){throw s.failed(),new Error(`git-history secret scan failed: ${d instanceof Error?d.message:String(d)}`,{cause:d})}const c=n.redact===!0,l=c?fs(u,["match","secret"]):u;switch(i){case"json":{process.stdout.write(`${JSON.stringify(l.map(d=>Ft(d,t)),null,2)}
37
- `);break}case"sarif":{const d=await Hr(n).catch(()=>[]);process.stdout.write(`${ms(l,o,t,d)}
38
- `);break}default:process.stdout.write(`${jv(l,r,{redact:c})}
39
- `)}if(u.length>0){e.quiet||(de.warn(`${String(u.length)} potential secret(s) found across git history`),de.notice("Findings reference the commit that introduced them — rotate the credential and rewrite history (e.g. git filter-repo) if it is still reachable.")),process.exitCode=1;return}e.quiet||de.success("No secrets detected in git history.")},Zv=async({argument:e,options:t,visConfig:n,workspaceRoot:r})=>{const o=t,i=e,a=r??process.cwd(),s=!o.quiet&&process.stdout.isTTY,u=n?.secrets,c=Fv(o,u,a),l="0.0.0-alpha";if(o.listRules){await Dv(c,s);return}if(o.listValidators){await Ov(c,s);return}if(o.init){await Hv(a,c,o.dryRun??!1);return}if(o.history){await Bv(o,a,c,s,l);return}const d=await Sv(o,i??[],a);if(d.files?.length===0){o.quiet||de.success("No files to scan.");return}const p=!o.quiet&&!["json","sarif"].includes(o.format??"text"),P=Qr({verbose:p});P.start("scanning for secrets");let E;try{E=d.files===void 0?await ha(d.paths??[a],c):await xs(d.files,c),P.succeed()}catch(k){throw P.failed(),new Error(`secret scan failed: ${k instanceof Error?k.message:String(k)}`,{cause:k})}if(o.verbose){const k=await Cs(c);if(k.length>0){de.warn(`${String(k.length)} rule(s) skipped due to invalid regex. First few:`);for(const v of k.slice(0,5))process.stderr.write(` - ${v.ruleId}: ${v.reason}
40
- `)}}const L=typeof c.baseline=="string"?c.baseline:Ut(a,Jt),Pe=!o.quiet&&Fr(L);if(o.updateBaseline){const k=gs(E,L,a,{replace:o.replaceBaseline});de.success(`Baseline updated: ${Or(a,L)||L} now contains ${String(k)} entries.`);return}const je=ys(o.format),K=je==="sarif"?await Hr(c).catch(()=>[]):[],fe=c.redact===!0,ke=fe?fs(E,["match","secret"]):E;if(zv(ke,je,a,s,l,K,fe),je==="text"&&Pe&&Gv(kv(E,L,a)),E.length>0){o.quiet||(de.warn(`${String(E.length)} potential secret(s) found`),de.notice("Suppress individual lines with `gitleaks:allow` / `secret-scanner:allow`, or run `vis secrets --update-baseline`.")),process.exitCode=1;return}o.quiet||de.success("No secrets detected.")};export{Zv as default,Fv as resolveScanOptions};
18
+ `);const Q=me(J.createElement(Ds,{cached:k.cached,failed:k.failed,failedIds:se,projectNames:o,retriedIds:k.retriedIds.length>0?k.retriedIds:void 0,succeeded:k.succeeded,targets:e.targets,tasks:u,took:W}),{columns:ae});if(process.stdout.write(`${Q}
19
+ `),c!=="quiet"){const ee=[...k.rows.filter(ie=>ie.status!=="failure"),...k.rows.filter(ie=>ie.status==="failure")];for(const ie of ee){if(ie.status==="running"||ie.status==="pending")continue;const oe=k.outputs.get(ie.taskId);if(!oe?.trim())continue;const{color:ge,icon:le}=He(ie.status),q=me(J.createElement(a,null,`
20
+ `,J.createElement(a,{bold:!0,color:ge},` ${le} vis run ${ie.taskId}`)),{columns:ae});process.stdout.write(`${q}
21
+
22
+ `);const K=oe.trim().split(`
23
+ `).map(re=>` ${re}`).join(`
24
+ `);process.stdout.write(`${K}
25
+ `)}}};let w;const O=()=>{w&&(clearInterval(w),w=void 0)};return{lifeCycle:{endCommand(){S(),f.markDone(),w||(w=setInterval(()=>{},1e3))},endTasks(k){f.endTasks(k)},printCacheDisabledByTask(k){f.addOutput(k.id,`ⓘ caching disabled by task via disableCache()
26
+ `)},printEmptyFingerprintWarning(k,W){f.addOutput(k.id,`ⓘ caching skipped — ${W}
27
+ `)},printSelfModifyingSkip(k,W){f.addOutput(k.id,`ⓘ caching skipped — task modified its own input${W.length===1?"":"s"} (${W.join(", ")})
28
+ `)},printTaskTerminalOutput(k,W,se){f.getSnapshot().outputs.has(k.id)||f.addOutput(k.id,se)},startCommand(){process.on("SIGINT",j),process.on("SIGTERM",j),w||(w=setInterval(()=>{},1e3)),b=Ir(J.createElement(Ui,{autoExitSeconds:l,onRetryService:r,parallelSlots:h,projectNames:o,serviceDockStore:i,stdinRegistry:d??new Map,store:f,targets:e.targets,tasks:u}),{alternateScreen:!0,exitOnCtrlC:!1,interactive:!0,patchConsole:!0}),b.waitUntilExit().then(()=>{O(),I(),E(),process.removeListener("SIGINT",j),process.removeListener("SIGTERM",j),R(),T()}).catch(()=>{O(),I(),E(),process.removeListener("SIGINT",j),process.removeListener("SIGTERM",j),T()})},startTasks(k){f.startTasks(k),F||(F=setInterval(()=>{f.tick()},100))}},renderIsDone:N,store:f}},Yi=s=>s==="quiet"?"quiet":"normal",Ki=(s,e)=>typeof s=="string"?Yi(s.toLowerCase()):e===!0?"quiet":"normal",Xi=(s,e)=>{const t=s.overrides.visOptions;return t?.outputStyle==="normal"||t?.outputStyle==="quiet"?t.outputStyle:e};class Ji{#e;#r;#s;#n=[];#t=[];#i=[];#o=new Map;#c;#a;#l;#u=0;constructor(e){this.#e=e.projectNames,this.#r=e.args.targets,this.#s=e.tasks,this.#c=e.logReporter,this.#a=e.outputStyle??"normal",this.#l=e.ciGrouping??"auto"}startCommand(){this.#u=Date.now();const e=process.stdout.columns||80,t=`Running ${St(this.#e,this.#r,this.#s)}`,r=me(J.createElement(wt,{title:t,variant:"info"}),{columns:e});process.stdout.write(r);const c=this.#s[0],o=c?.overrides?Object.entries(c.overrides).filter(([i])=>i!=="command"):[];if(o.length>0){process.stdout.write(`
29
+ With additional flags:
30
+ `);for(const[i,d]of o)process.stdout.write(`${ki(" ",i,d)}
31
+ `)}process.stdout.write(`
32
+ `)}startTasks(e){const t=process.stdout.columns||80;for(const r of e){const c=me(J.createElement(a,null,J.createElement(a,{dimColor:!0},">"),` ${r.id}`),{columns:t});process.stdout.write(`${c}
33
+ `)}}endTasks(e){const t=process.stdout.columns||80;for(const r of e){this.#o.set(r.task.id,r),r.status==="failure"?this.#n.push(r):Ge(r.status)&&this.#t.push(r),r.retryAttempts&&r.retryAttempts>0&&this.#i.push(r);const c=Xe(r.status),o=r.startTime&&r.endTime?` (${Be(r.endTime-r.startTime)})`:"",i=Ge(r.status)?" [cache]":"",d=r.retryAttempts&&r.retryAttempts>0?` [retried ${r.retryAttempts}x]`:"",u=me(J.createElement(a,null,c,` ${r.task.id}`,i?J.createElement(a,{color:"cyan"},i):null,d?J.createElement(a,{color:"yellow"},d):null,o?J.createElement(a,{dimColor:!0},o):null),{columns:t});process.stdout.write(`${u}
34
+ `)}}#d(e){const t=process.stdout.columns||80,r=me(J.createElement(a,{dimColor:!0},` ⓘ ${e}`),{columns:t});process.stdout.write(`${r}
35
+ `)}printCacheDisabledByTask(e){this.#d(`${e.id}: caching disabled by task via disableCache()`)}printSelfModifyingSkip(e,t){this.#d(`${e.id}: caching skipped — task modified its own input${t.length===1?"":"s"} (${t.join(", ")})`)}printEmptyFingerprintWarning(e,t){this.#d(`${e.id}: caching skipped — ${t}`)}printTaskTerminalOutput(e,t,r){if(Xi(e,this.#a)==="quiet"&&(t==="success"||Ge(t)))return;const c=t==="failure"?_s(r,{color:!process.env.NO_COLOR,cwd:process.cwd()}):r;if(this.#c){this.#c.printTaskTerminalOutput(e,t,c);return}Ai(e.id,t,c,this.#l)}endCommand(){const e=Be(Date.now()-this.#u),t=this.#s.filter(o=>!this.#o.has(o.id)).map(o=>o.id);process.stdout.write(`
36
+ `);const r=process.stdout.columns||80,c=me(J.createElement(Ds,{cached:this.#t.length,failed:this.#n.length,failedIds:this.#n.map(o=>o.task.id),projectNames:this.#e,retriedIds:this.#i.length>0?this.#i.map(o=>o.task.id):void 0,skippedIds:t.length>0?t:void 0,succeeded:this.#o.size-this.#n.length-this.#t.length,targets:this.#r,tasks:this.#s,took:e}),{columns:r});process.stdout.write(`${c}
37
+ `)}}const Qi=async s=>{if(process.env.VIS_NO_SHELL_HISTORY)return;if(Ln()==="win32"){try{await to(s)}catch{}return}const e=process.env.SHELL;if(!e)return;const t=or(e);try{if(t==="zsh"){await Zi(s);return}if(t==="bash"){await eo(s);return}t==="fish"&&await so(s)}catch{}},Tt=s=>s.replaceAll(/[\u0000-\u001F\u007F]/gu," ").trimEnd(),Zi=async s=>{const e=process.env.HISTFILE??ue(process.env.ZDOTDIR??kt(),".zsh_history"),t=`: ${Math.floor(Date.now()/1e3)}:0;${Tt(s)}
38
+ `;await dt(e,t)},eo=async s=>{const e=process.env.HISTFILE??ue(kt(),".bash_history");await dt(e,`${Tt(s)}
39
+ `)},to=async s=>{const e=process.env.VIS_PSREADLINE_HISTORY,t=process.env.APPDATA;if(e===void 0&&(t===void 0||t===""))return;const r=e??ue(t,"Microsoft","Windows","PowerShell","PSReadLine","ConsoleHost_history.txt");await An(Ss(r),{recursive:!0}),await dt(r,`${Tt(s)}\r
40
+ `)},so=async s=>{const e=ue(kt(),".local","share","fish","fish_history"),r=`- cmd: ${s.replaceAll("\\","\\\\").replaceAll(`
41
+ `,String.raw`\n`).replaceAll("\r",String.raw`\r`)}
42
+ when: ${Math.floor(Date.now()/1e3)}
43
+ `;await dt(e,r)},ro=s=>{const{killGracePeriodMs:e=5e3,onTimeout:t,sendSignal:r,timeoutMs:c}=s;if(c<=0)return{cancel:()=>{}};const o=Math.max(e,0);let i;const d=setTimeout(()=>{t?.(),r("SIGTERM"),o>0&&(i=setTimeout(()=>{r("SIGKILL")},o))},c);return{cancel:()=>{clearTimeout(d),i&&clearTimeout(i)}}},no=(s,e)=>{const t=e?.trim();if(!t)return{filter:void 0,tasks:[...s]};const r=t.toLowerCase();return{filter:t,tasks:s.filter(c=>c.target.project.toLowerCase().includes(r))}},io=[""," Watch keybinds:"," r, Enter rerun"," a rerun all (clear filter)"," p filter by project name"," q, Ctrl+C quit"," h, ? show this help",""].join(`
44
+ `),oo=s=>{s.write(`${io}
45
+ `)},co=async(s,e)=>{e.write("filter projects (empty to cancel) > ");const t=s,r=t.isRaw===!0;if(r)try{t.setRawMode?.(!1)}catch{}return await new Promise(c=>{let o="";const i=d=>{o+=typeof d=="string"?d:d.toString("utf8");const u=o.indexOf(`
46
+ `);if(u===-1)return;const p=o.slice(0,u).replace(/\r$/,"").trim();if(s.off("data",i),r)try{t.setRawMode?.(!0)}catch{}c(p.length>0?p:void 0)};s.on("data",i)})},ao=s=>{const{handlers:e}=s,t=s.input??process.stdin,r=s.output??process.stdout,c=s.promptFilter??co;if(!t||t.isTTY===!1)return{close:()=>{}};zr(t);const o=t.isRaw===!0;try{t.setRawMode?.(!0)}catch{return{close:()=>{}}}typeof t.resume=="function"&&t.resume();let i=!1;const d=async f=>{if(f.ctrl===!0&&f.name==="c"){await e.onQuit();return}if(!i)switch(f.name){case"?":case"h":{await e.onHelp();break}case"a":{await e.onClearFilter();break}case"p":{i=!0;try{const h=await c(t,r);h===void 0?r.write(`filter cancelled.
47
+ `):await e.onFilter(h)}finally{i=!1}break}case"q":{await e.onQuit();break}case"r":{await e.onRerun();break}case"return":{await e.onRerun();break}}},u=(f,h)=>{d(h).catch(l=>{r.write(`[vis watch] keybind handler failed: ${l.message}
48
+ `)})},p=t;return p.on("keypress",u),{close:()=>{if(p.off("keypress",u),!o)try{t.setRawMode?.(!1)}catch{}const f=t;if(typeof f.pause=="function")try{f.pause()}catch{}}}},lo=s=>{const e=s.overrides.visOptions;return e&&typeof e=="object"?e:void 0},uo=async s=>{const{initialTasks:e,probe:t,registeredEntries:r,taskGraph:c,visVersion:o}=s,i=new Map,d=new Map,u=new Map;for(const w of r)if(Jr(w.pid)){if(w.visVersion!==o){d.set(w.id,w);continue}i.set(w.id,w)}if(t){const w=[...i.values()],O=await Promise.all(w.map(async B=>{try{return[B.id,await t(B)]}catch{return[B.id,!1]}}));for(const[B,k]of O)if(!k){const W=i.get(B);i.delete(B),W&&u.set(B,W)}}const p=new Set(e.map(w=>w.id)),f=new Set,h=[],l=[],b=new Set;for(const w of Object.values(c.dependencies))for(const O of w)b.add(O);for(const[w,O]of Object.entries(c.tasks)){if(!lo(O)?.service)continue;if(i.has(w)){f.add(w),l.push(i.get(w));continue}if(p.has(w)||!b.has(w))continue;const W=d.get(w),se=u.get(w);let ae;W?ae=`Service ${w} is registered with vis ${W.visVersion}, but this invocation is vis ${o}. Restart with \`vis service restart ${w}\` to pick up the new version.`:se?ae=`Service ${w} is registered (PID ${String(se.pid)}) but failed its readiness probe — the wrapper process is alive but the underlying server is not responding. Run \`vis service restart ${w}\` to recover.`:ae=`Target depends on the service ${w}, which is not running. Run \`vis service start ${w}\` first, or invoke \`${w}\` directly.`,h.push({message:ae,targetId:w})}if(f.size===0)return{diagnostics:h,initialTasks:e,satisfiedServices:l,serviceDependentsByServiceId:new Map,serviceEnvByTaskId:new Map,taskGraph:c};const T=new Map,N=w=>{const O=new Set,B=[...c.dependencies[w]??[]],k=new Set;for(;B.length>0;){const W=B.pop();if(!k.has(W)){k.add(W),f.has(W)&&O.add(W);for(const se of c.dependencies[W]??[])k.has(se)||B.push(se)}}return[...O].sort()},F=new Map;for(const w of Object.keys(c.dependencies)){if(f.has(w))continue;const O=N(w);if(O.length===0)continue;const B={};for(const k of O){const W=i.get(k);if(!W)continue;Object.assign(B,W.env);const se=F.get(k);se?se.push(w):F.set(k,[w])}Object.keys(B).length>0&&T.set(w,B)}for(const w of F.values())w.sort();const S={};for(const[w,O]of Object.entries(c.tasks))f.has(w)||(S[w]=O);const E={};for(const[w,O]of Object.entries(c.dependencies))f.has(w)||(E[w]=O.filter(B=>!f.has(B)));const I=new Map;for(const w of Object.keys(S))I.set(w,0);for(const w of Object.values(E))for(const O of w)I.has(O)&&I.set(O,(I.get(O)??0)+1);const j=[];for(const w of c.roots)!f.has(w)&&S[w]&&j.push(w);for(const[w,O]of I)O===0&&!j.includes(w)&&S[w]&&j.push(w);const R=e.filter(w=>!f.has(w.id));return{diagnostics:h,initialTasks:R,satisfiedServices:l,serviceDependentsByServiceId:F,serviceEnvByTaskId:T,taskGraph:{dependencies:E,roots:j,tasks:S}}},fo=s=>s.startsWith("./")||s.startsWith("../")||s.startsWith("/")||s.startsWith("**"),ho=s=>{let e=s.trim();if(e==="")return;let t=!1,r=!1,c=!1;e.startsWith("...")&&(t=!0,e=e.slice(3),e.startsWith("^")&&(c=!0,e=e.slice(1))),e.endsWith("...")&&(r=!0,e=e.slice(0,-3),e.endsWith("^")&&(c=!0,e=e.slice(0,-1)));let o;const i=/\[([^\]]*)\]$/.exec(e);i&&(o=i[1]??"",e=e.slice(0,i.index));let d=e.trim(),u=!1;return d.startsWith("{")&&d.endsWith("}")&&d.length>=2?(d=d.slice(1,-1),u=!0):fo(d)&&(u=!0),{changedSince:o,excludeSelf:c,includeDependencies:r,includeDependents:t,isPath:u,pattern:d}},vt=s=>{let e=s.replaceAll("\\","/");return e.startsWith("./")&&(e=e.slice(2)),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e},po=(s,e,t)=>s===""?!1:gt(s,e)?!0:t!==void 0&&gt(s,t),mo=(s,e)=>{if(e===void 0||e==="")return!1;const t=vt(s),r=vt(e);return gt(t,r)},go=(s,e,t)=>{const{affected:r,downstream:c,upstream:o}=lr(s,t,{downstream:e.includeDependents?"deep":"none",upstream:e.includeDependencies?"deep":"none"});if(!e.excludeSelf)return r;const i=new Set([...c,...o]);for(const d of s)i.delete(d);return i},wo=async(s,e)=>{const{packageNameByProject:t,projectGraph:r}=e,c=Object.keys(r.nodes);let o=new Set;if(s.pattern!=="")for(const i of c)s.isPath?mo(s.pattern,r.nodes[i]?.data.root)&&o.add(i):po(s.pattern,i,t?.get(i))&&o.add(i);if(s.changedSince!==void 0){const i=s.changedSince===""?e.defaultBase??"main":s.changedSince,d=e.changedProjectsForRef??vo(e),u=new Set(await d(i));o=s.pattern===""?u:new Set([...o].filter(p=>u.has(p)))}return!s.includeDependents&&!s.includeDependencies?o:go(o,s,r)},vo=s=>async e=>{const{projectGraph:t,workspaceRoot:r}=s;if(!r)return[];let c;try{c=await dr(r,e,"HEAD")}catch(i){const d=i instanceof Error?i.message:String(i);throw new Error(`vis run --filter: invalid changed-since ref "${e}" (${d})`,{cause:i})}const o=new Set;for(const[i,d]of Object.entries(t.nodes)){const u=vt(d.data.root??i);if(!(u===""||u==="."))for(const p of c){const f=cr(r,p).replaceAll("\\","/");if(f===u||f.startsWith(`${u}/`)){o.add(i);break}}}return[...o]},yo=async(s,e)=>{const t=new Set;for(const r of s)for(const c of await wo(r,e))t.add(c);return[...t]},xo=async(s,e)=>{const t=[];for(const r of s){const c=ho(r);c&&t.push(c)}return yo(t,e)},et="[[VIS_BOOT]]",jo=250,ko=1e3,vs=3,bo=s=>{try{return process.kill(s,0),!0}catch{return!1}},ys=s=>{try{const e=We(s,"utf8").trim(),t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}catch{return null}};class So{#e;#r;#s;#n;#t=new Map;#i=new Map;#o=new Map;#c=new Map;#a=new Set;constructor(e){this.#e=e.indexToId,this.#r=new Map(e.services),this.#s=e.sink,this.#n=e.workspaceRoot}onProcessEvent=e=>{if(e.kind!=="stdout"&&e.kind!=="stderr")return;const t=this.#e.get(e.index);t===void 0||e.text===void 0||this.onTaskOutput(t,e.text)};onTaskOutput(e,t){if(!this.#r.has(e))return;const o=((this.#t.get(e)??"")+t).split(`
49
+ `),i=o.pop()??"";this.#t.set(e,i);for(const d of o)this.#l(e,d)}notifyRegistryStarting(e){this.#s.starting(e)}notifyRegistryStarted(e,t){this.#s.started(e,t)}onRegistryTaskStarted(e){this.#r.get(e)?.mode==="registry"&&this.notifyRegistryStarting(e)}async onRegistryTaskClosed(e,t,r){if(this.#r.get(e)?.mode!=="registry")return;if(r||t!==0){this.notifyRegistryFailed(e,"exit-code",{exitCode:t,killed:r});return}const o=await Qr(this.#n,e);if(!o){this.notifyRegistryFailed(e,"missing-registry-entry");return}const{config:i}=o,d=i.readiness?.tcp?.port??i.port??0,u=i.readiness?.tcp?.host??"127.0.0.1";this.notifyRegistryReady(e,{host:u,logFile:o.logFile,pid:o.pid,port:d})}notifyRegistryReady(e,t){this.#s.ready(e,{host:t.host,port:t.port}),this.#h(e,t.logFile),t.pid!==null&&this.#p(e,t.pid)}notifyRegistryFailed(e,t,r){this.#s.failed(e,t,r)}async retry(e){const t=this.#r.get(e);if(t){if(this.#f(e),this.#t.delete(e),this.#i.delete(e),this.#s.starting(e),t.mode==="registry"){await this.#y(e,t.registry);return}t.mode==="ephemeral"&&this.#v(e,t.ephemeral)}}async dispose(){for(const e of[...this.#o.keys(),...this.#c.keys()])this.#f(e);this.#a.size>0&&(await Promise.race([Promise.all(this.#a),new Promise(e=>{setTimeout(e,2e3)})]),this.#a.clear()),this.#t.clear(),this.#i.clear()}#l(e,t){if(t.startsWith(et)){this.#u(e,t.slice(et.length));return}const r=this.#i.get(e)??[];r.push(t),r.length>vs&&r.shift(),this.#i.set(e,r),this.#s.log(e,`${t}
50
+ `)}#u(e,t){let r;try{r=JSON.parse(t)}catch{this.#s.log(e,`${et+t}
51
+ `);return}switch(r.event){case"failed":{const c=typeof r.reason=="string"?r.reason:"unknown",o={};for(const[i,d]of Object.entries(r))i!=="event"&&i!=="id"&&i!=="reason"&&(o[i]=d);this.#s.failed(e,c,o);break}case"ready":{const c=typeof r.host=="string"?r.host:"127.0.0.1",o=typeof r.port=="number"?r.port:0;this.#s.ready(e,{host:c,port:o}),this.#d(e);break}case"started":{const c=typeof r.pid=="number"?r.pid:null;this.#s.started(e,c);break}default:this.#s.log(e,`${et+t}
52
+ `)}}#d(e){const t=this.#r.get(e);if(t?.ephemeral===void 0)return;this.#h(e,t.ephemeral.logFile);const r=ys(t.ephemeral.pidFile);r!==null&&this.#p(e,r)}#h(e,t){if(this.#o.has(e)||!De(t))return;const r=Wr(t,"r"),c=(()=>{try{return Qt(t).size}catch{return 0}})(),o={fd:r,logFile:t,pollTimer:setInterval(()=>{this.#g(e)},jo),position:c};this.#o.set(e,o)}#g(e){const t=this.#o.get(e);if(t)try{const r=Qt(t.logFile);if(r.size<=t.position)return;const c=Buffer.alloc(r.size-t.position),o=Hr(t.fd,c,0,c.length,t.position);if(o>0){t.position+=o;const i=c.subarray(0,o).toString("utf8");for(const d of i.split(`
53
+ `))d.length!==0&&this.#w(e,d);this.#s.log(e,i)}}catch{}}#w(e,t){const r=this.#i.get(e)??[];for(r.push(t);r.length>vs;)r.shift();this.#i.set(e,r)}#p(e,t){if(this.#c.has(e))return;const r={pid:t,timer:setInterval(()=>{if(!bo(t)){const c=[...this.#i.get(e)??[]];this.#f(e),this.#s.crashed(e,c)}},ko)};this.#c.set(e,r)}#f(e){const t=this.#o.get(e);if(t){clearInterval(t.pollTimer);try{qr(t.fd)}catch{}this.#o.delete(e)}const r=this.#c.get(e);r&&(clearInterval(r.timer),this.#c.delete(e))}#v(e,t){if(t===void 0)return;const r=ys(t.pidFile);if(r!==null)try{process.kill(-r,"SIGTERM")}catch{}const c=Nn("node",[t.scriptPath,t.configFile],{cwd:t.cwd,stdio:["ignore","pipe","pipe"]});c.stdout.on("data",i=>{this.#m(e,i)}),c.stderr.on("data",i=>{this.#m(e,i)}),c.on("error",i=>{this.#s.failed(e,"respawn-error",{message:i.message})});const o=new Promise(i=>{const d=()=>{this.#a.delete(o),i()};c.once("exit",d),c.once("error",d)});this.#a.add(o)}#m(e,t){const o=((this.#t.get(e)??"")+t.toString("utf8")).split(`
54
+ `),i=o.pop()??"";this.#t.set(e,i);for(const d of o)this.#l(e,d)}async#y(e,t){if(t!==void 0){try{await Zr({id:e,workspaceRoot:this.#n})}catch{}try{const r=await en({command:t.command,config:t.config,cwd:t.cwd,env:t.env,id:e,workspaceRoot:this.#n}),c=t.config.readiness?.tcp?.port??t.config.port??0,o=t.config.readiness?.tcp?.host??"127.0.0.1";this.#s.started(e,r.entry.pid),this.notifyRegistryReady(e,{host:o,logFile:r.entry.logFile,pid:r.entry.pid,port:c})}catch(r){const c=r instanceof Error?r.message:String(r);this.#s.failed(e,"retry-failed",{message:c})}}}}const To=s=>{const e=s.overrides.visOptions;return e&&typeof e=="object"?e:void 0},qs=(s,e,t)=>{const r=[],c=[];for(const o of e){const i=t.tasks[o];if(!i){c.push({id:o,reason:"task not in graph"});continue}const d=i.overrides.command;if(!d){c.push({id:o,reason:"no command resolved"});continue}const u=To(i);if(!u?.service){c.push({id:o,reason:"no service config"});continue}const p=at(s,i.projectRoot,!!u.runFromWorkspaceRoot),{envFile:f}=u,h=f===void 0||f===!1?{}:jt(p,f),l=u.service.env??{};r.push({command:d,config:u.service,cwd:p,env:{...h,...l},id:o})}return{services:r,skipped:c}},$o=(s,e)=>{const t=new Set(s),r=new Map;for(const i of s){const d=(e.dependencies[i]??[]).filter(u=>t.has(u));r.set(i,new Set(d))}const c=[],o=new Set;for(;r.size>0;){const i=[];for(const[d,u]of r){for(const p of u)o.has(p)&&u.delete(p);u.size===0&&i.push(d)}i.length===0&&i.push(...r.keys());for(const d of i)o.add(d),r.delete(d);i.sort(),c.push({ids:i})}return c},Io=(s,e)=>{const t=[];for(const r of $o(s,e))t.push(...r.ids);return t},Co=String.raw`import { spawn } from "node:child_process";
55
+ import { closeSync, openSync, readFileSync, readSync, statSync, writeFileSync } from "node:fs";
56
+ import { createConnection } from "node:net";
57
+
58
+ const cfgPath = process.argv[2];
59
+
60
+ if (!cfgPath) {
61
+ console.error("[vis-service-bootstrap] missing config path");
62
+ process.exit(2);
63
+ }
64
+
65
+ const cfg = JSON.parse(readFileSync(cfgPath, "utf8"));
66
+
67
+ // Structured marker for service-event-bridge.ts to consume. Plain
68
+ // process.stdout.write keeps the line atomic and on the same stream
69
+ // as the tailed child log, so the parser sees one stream.
70
+ const emit = (event) => {
71
+ process.stdout.write("[[VIS_BOOT]]" + JSON.stringify({ ...event, id: cfg.id }) + "\n");
72
+ };
73
+
74
+ // Spawn the child with its stdio bound to a real file descriptor on
75
+ // disk — NOT inherited from the bootstrap. If the child inherited
76
+ // our stdio, it would inherit vis run's task pipes, and vis run would
77
+ // block waiting for those pipes to close even after this bootstrap
78
+ // exits. The logfile gives the grandchild a stable target it can keep
79
+ // writing to long after this bootstrap is gone.
80
+ const childLogFd = openSync(cfg.logFile, "a");
81
+
82
+ const child = spawn(cfg.command, {
83
+ cwd: cfg.cwd,
84
+ detached: true,
85
+ env: { ...process.env, ...cfg.env },
86
+ shell: true,
87
+ stdio: ["ignore", childLogFd, childLogFd],
88
+ });
89
+
90
+ // Close the bootstrap's copy of the fd; the child kept its own.
91
+ closeSync(childLogFd);
92
+
93
+ if (child.pid !== undefined) {
94
+ try {
95
+ writeFileSync(cfg.pidFile, String(child.pid));
96
+ } catch (error) {
97
+ console.error("[vis] failed to write pid file: " + (error?.message ?? String(error)));
98
+ }
99
+ }
100
+
101
+ emit({ event: "started", pid: child.pid ?? null });
102
+
103
+ let exitedEarly = false;
104
+
105
+ child.once("exit", (code, signal) => {
106
+ exitedEarly = true;
107
+ emit({ code, event: "failed", reason: "exited-before-ready", signal });
108
+ });
109
+
110
+ // Forward new bytes from the logfile to our stdout while we're alive.
111
+ // Polling-based tail; preflight is short, ~200ms per cycle is fine.
112
+ let tailPos = 0;
113
+ const tailFd = openSync(cfg.logFile, "r");
114
+
115
+ const flushTail = () => {
116
+ try {
117
+ const stat = statSync(cfg.logFile);
118
+ if (stat.size <= tailPos) return;
119
+ const remaining = stat.size - tailPos;
120
+ const buf = Buffer.alloc(remaining);
121
+ const n = readSync(tailFd, buf, 0, remaining, tailPos);
122
+ if (n > 0) {
123
+ process.stdout.write(buf.subarray(0, n));
124
+ tailPos += n;
125
+ }
126
+ } catch {}
127
+ };
128
+
129
+ const probeOnce = () => new Promise((resolve) => {
130
+ const socket = createConnection({ host: cfg.host || "127.0.0.1", port: cfg.port });
131
+ let settled = false;
132
+ const finish = (ok) => {
133
+ if (settled) return;
134
+ settled = true;
135
+ try { socket.destroy(); } catch {}
136
+ resolve(ok);
137
+ };
138
+ socket.once("connect", () => finish(true));
139
+ socket.once("error", () => finish(false));
140
+ socket.setTimeout(1000, () => finish(false));
141
+ });
142
+
143
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
144
+
145
+ (async () => {
146
+ const deadline = Date.now() + (cfg.timeoutMs ?? 30000);
147
+ while (Date.now() < deadline) {
148
+ flushTail();
149
+ if (exitedEarly) {
150
+ try { closeSync(tailFd); } catch {}
151
+ process.exit(1);
152
+ }
153
+ if (await probeOnce()) {
154
+ flushTail();
155
+ emit({ event: "ready", host: cfg.host || "127.0.0.1", port: cfg.port });
156
+ try { closeSync(tailFd); } catch {}
157
+ child.unref();
158
+ process.exit(0);
159
+ }
160
+ await sleep(200);
161
+ }
162
+ flushTail();
163
+ emit({ event: "failed", reason: "timeout", timeoutMs: cfg.timeoutMs ?? 30000 });
164
+ try { closeSync(tailFd); } catch {}
165
+ try { process.kill(-child.pid, "SIGTERM"); } catch {}
166
+ process.exit(1);
167
+ })();
168
+ `,Eo=()=>{const s=Vr(ue(Dn(),"vis-services-")),e=ue(s,"bootstrap.mjs");return Ps(e,Co),{runDir:s,scriptPath:e}},Vs=(s,e,t)=>{const r=t.replaceAll(/[^\w-]/g,"_");return{configFile:ue(s,`${r}.json`),logFile:ue(s,`${r}.log`),pidFile:ue(s,`${r}.pid`),scriptPath:e}},Ro=s=>{const{paths:e,service:t}=s,r=t.config.readiness?.tcp?.port??t.config.port;if(typeof r!="number")throw new TypeError(`Service ${t.id} has no TCP readiness port — declare \`service.port\` or \`service.readiness.tcp.port\`.`);const c={...t.env,PATH:ur(t.cwd,t.env)};return{command:t.command,cwd:t.cwd,env:c,host:t.config.readiness?.tcp?.host??"127.0.0.1",id:t.id,logFile:e.logFile,pidFile:e.pidFile,port:r,timeoutMs:t.config.readiness?.tcp?.timeoutMs??3e4}},Po=s=>`node ${JSON.stringify(s.scriptPath)} ${JSON.stringify(s.configFile)}`,Mo=s=>{const{id:e,visBin:t,workspaceRoot:r}=s;return`node ${JSON.stringify(t)} service start ${JSON.stringify(e)} --cwd ${JSON.stringify(r)}`},Fo=s=>{const{missingServiceIds:e,mode:t,taskGraph:r,visBin:c,workspaceRoot:o}=s,{services:i,skipped:d}=qs(o,e,r);if(i.length===0)return{chain:[],ephemeralPidFiles:[],runDir:void 0,serviceEnvByTaskId:new Map,skipped:d};const u=Io(i.map(S=>S.id),r),p=new Map(i.map(S=>[S.id,S])),f=[],h=[];if(t==="ephemeral")for(const S of u){const E=p.get(S);E&&h.push({id:S,payload:Ro({paths:{logFile:"",pidFile:""},service:E})})}let l;t==="ephemeral"&&(l=Eo());let b;for(const S of u){const E=p.get(S),I=r.tasks[S];if(!E||!I)continue;let j;if(t==="ephemeral"){const R=Vs(l.runDir,l.scriptPath,S),O={...h.find(B=>B.id===S).payload,logFile:R.logFile,pidFile:R.pidFile};Ps(R.configFile,JSON.stringify(O)),j=Po(R),f.push(R.pidFile)}else j=Mo({id:S,visBin:c,workspaceRoot:o});if(I.overrides={...I.overrides,command:j},I.cache=!1,r.tasks[S]=I,b!==void 0){const R=r.dependencies[S]??[];R.includes(b)||(r.dependencies[S]=[...R,b])}b=S}const T=new Set(u),N=new Map,F=S=>{const E=new Set,I=[...r.dependencies[S]??[]],j=new Set;for(;I.length>0;){const R=I.pop();if(!j.has(R)){j.add(R),T.has(R)&&E.add(R);for(const w of r.dependencies[R]??[])j.has(w)||I.push(w)}}return[...E].sort()};for(const S of Object.keys(r.dependencies)){if(T.has(S))continue;const E=F(S);if(E.length===0)continue;const I={};for(const j of E){const R=p.get(j);R?.config.env&&Object.assign(I,R.config.env)}Object.keys(I).length>0&&N.set(S,I)}return{chain:u,ephemeralPidFiles:f,runDir:l?.runDir,serviceEnvByTaskId:N,skipped:d}},Oo=new Set(["auto","ephemeral","off","persistent"]),Ao=s=>s.cli!==void 0?"cli":s.config===void 0?"default":"config",Lo=s=>{const{cli:e,config:t,isCi:r,isPersistentTarget:c,isTty:o,target:i}=s;if(e!==void 0&&!Oo.has(e))throw new Error(`--services: expected one of auto|ephemeral|persistent|off, got "${e}"`);const d=e??t??(o&&!r?"auto":"off");return d==="off"?"off":d==="ephemeral"?"ephemeral":d==="persistent"?"registry":c||i==="dev"?"ephemeral":"registry"},Us=s=>s.replace(/^--?/u,""),Do=new Set(["0","1","false","no","true","yes"]),Bo=s=>!s.startsWith("-")||/^-(?:\d|\.\d)/u.test(s),xs=(s,e,t,r,c,o)=>{if(r!==void 0)return s.set(e,r),0;const i=c[o+1];return(t?.type??"string")==="boolean"?i!==void 0&&Do.has(i.toLowerCase())?(s.set(e,i.toLowerCase()),1):(s.set(e,"true"),0):i!==void 0&&Bo(i)?(s.set(e,i),1):(s.set(e,"true"),0)},_o=(s,e)=>{const t=s.type??"string";if(t==="number"){const r=e.trim(),c=Number(r);return r===""||!Number.isFinite(c)?{error:`--${s.name} expects a number, got "${e}"`}:{value:c}}if(t==="boolean")return["1","true","yes"].includes(e.toLowerCase())?{value:!0}:["0","false","no"].includes(e.toLowerCase())?{value:!1}:{error:`--${s.name} expects a boolean, got "${e}"`};if(t==="enum"){const r=s.choices??[];return r.includes(e)?{value:e}:{error:`--${s.name} must be one of [${r.join(", ")}], got "${e}"`}}return{value:e}},No=s=>{const e=[],t=new Set;for(const r of s){const c=r.name||"<unnamed>";(!r.name||!/^[a-zA-Z][\w-]*$/u.test(r.name))&&e.push(`argument name "${c}" is empty or invalid (start with a letter; use letters, digits, '-', '_')`),t.has(r.name)&&e.push(`duplicate argument name "${c}"`),t.add(r.name),r.alias!==void 0&&r.alias.length!==1&&e.push(`argument "${c}" alias "${r.alias}" must be a single character`);const o=r.type??"string";if(o==="enum"&&(r.choices===void 0||r.choices.length===0)&&e.push(`argument "${c}" has type "enum" but declares no choices`),r.default!==void 0){const i=typeof r.default;o==="number"&&i==="number"||o==="boolean"&&i==="boolean"||(o==="string"||o==="enum")&&i==="string"?o==="enum"&&r.choices&&!r.choices.includes(r.default)&&e.push(`argument "${c}" default "${String(r.default)}" is not one of its choices`):e.push(`argument "${c}" default ${JSON.stringify(r.default)} does not match type "${o}"`)}}return e},Go=(s,e)=>{const t=new Map,r=new Map;for(const p of s)t.set(p.name,p),p.alias&&r.set(p.alias,p);const c=new Map,o=[];for(let p=0;p<e.length;p+=1){const f=e[p];if(f==="--"){o.push(...e.slice(p+1));break}if(f.startsWith("--no-")){c.set(Us(f.slice(5)),"false");continue}const h=/^--([^=]+)(?:=(.*))?$/su.exec(f);if(h){const T=h[1];p+=xs(c,T,t.get(T),h[2],e,p);continue}const l=/^-([^=-])(?:=(.*))?$/su.exec(f),b=l?.[1];if(l&&b!==void 0){const T=r.get(b);p+=xs(c,T?.name??b,T,l[2],e,p);continue}o.push(f)}const i={},d=[];let u=0;for(const p of s){let f=c.get(p.name);if(f===void 0&&p.positional&&u<o.length&&(f=o[u],u+=1),f===void 0){p.default!==void 0?i[p.name]=p.default:p.required&&d.push(`missing required argument --${p.name}`);continue}const{error:h,value:l}=_o(p,f);h?d.push(h):l!==void 0&&(i[p.name]=l)}return{errors:d,values:i}},Wo=s=>`VIS_ARG_${Us(s).replaceAll(/[^a-zA-Z0-9]+/gu,"_").toUpperCase()}`,Ho=s=>{const e={};for(const[t,r]of Object.entries(s))e[Wo(t)]=String(r);return e},mt=(s,e,t)=>{const r=[`Usage: vis run ${s} [-- <args>]`];if(e&&r.push("",e),t.length===0)return r.join(`
169
+ `);r.push("","Arguments:");const c=t.map(i=>{const d=i.positional?`<${i.name}>`:`--${i.name}`,u=i.alias?`, -${i.alias}`:"";return{left:`${d}${u}`,right:i}}),o=Math.max(...c.map(i=>i.left.length));for(const{left:i,right:d}of c){const u=[],p=d.type??"string";u.push(p==="enum"?`enum(${(d.choices??[]).join("|")})`:p),d.required&&u.push("required"),d.default!==void 0&&u.push(`default: ${String(d.default)}`);const f=`${d.description??""}${d.description?" ":""}[${u.join(", ")}]`;r.push(` ${i.padEnd(o)} ${f}`)}return r.join(`
170
+ `)},qo=(s,e,t,r)=>{if(!t||t.length===0)return{env:{},kind:"ok"};const c=No(t);if(c.length>0)return{errors:c.map(i=>`invalid \`arguments\` schema for "${s}": ${i}`),help:mt(s,e,t),kind:"invalid"};if(r.includes("--help")||r.includes("-h"))return{kind:"help",text:mt(s,e,t)};const o=Go(t,r);return o.errors.length>0?{errors:o.errors,help:mt(s,e,t),kind:"invalid"}:{env:Ho(o.values),kind:"ok"}},$t="VIS_AFFECTED_FILES",Vo=2e3,js=async(s,e,t,r,c,o)=>{const i=s.map(j=>{const R=j.overrides.command;if(!R)return;const w=j.overrides.visOptions,O=at(e,j.projectRoot,!!w?.runFromWorkspaceRoot),B=w?.envFile?jt(O,w.envFile):{},k=t&&(w?.affectedFiles==="env"||w?.affectedFiles==="both")?{[$t]:t.join(`
171
+ `)}:{},W=o?.get(j.id)??{},se=di({interactive:!!c,taskPty:j.pty,workspacePty:w?.pty});return{command:R,cwd:O,env:{INIT_CWD:r,...B,...W,...k,...j.overrides[Ct]},name:j.id,...se?{ptySize:{cols:process.stdout.columns??80,rows:process.stdout.rows??24},stdin:"pty"}:{}}}).filter(j=>j!==void 0);if(i.length===0)return;if(!c){await tt(i,{killOthers:["failure"],onEvent:()=>{}});return}const{abortSignal:d,lifeCycle:u,stdinRegistry:p,store:f}=c,h=i.map(j=>s.find(R=>R.id===j.name)).filter(Boolean),l=j=>i[j]?.stdin==="pty",b=new Map,T=j=>{if(!l(j))return;let R=b.get(j);return R||(R=new yt(ct),b.set(j,R)),R};f.unmarkDone(),u.startTasks?.(h);const N=new Map,F=new Map;let S;const E=()=>{for(const j of F.values())try{j("SIGTERM")}catch{}S||(S=setTimeout(()=>{for(const j of F.values())try{j("SIGKILL")}catch{}F.clear()},2e3),S.unref?.())};let I;d&&(I=()=>{E()},d.then(()=>{I?.()}).catch(()=>{I?.()}));try{await tt(i,{killOthers:["failure"],onEvent:j=>{const R=h[j.index];if(R)switch(j.kind){case"close":{const w=N.get(R.id)??Date.now(),O=j.killed||j.exitCode===0?"success":"failure";u.endTasks?.([{code:j.exitCode??0,endTime:Date.now(),startTime:w,status:O,task:R,terminalOutput:f.getSnapshot().outputs.get(R.id)??""}]),F.delete(j.index),p?.delete(R.id);break}case"error":{if(j.message){const w=T(j.index);w?(w.write(`${j.message}
172
+ `),f.setOutput(R.id,w.toString())):f.addOutput(R.id,`${j.message}
173
+ `)}break}case"started":{N.set(R.id,Date.now()),j.kill&&F.set(j.index,j.kill),j.write&&p&&p.set(R.id,{kill:j.kill,resize:j.resize,write:j.write});break}case"stderr":case"stdout":{if(j.text){const w=T(j.index);w?(w.write(j.text),f.setOutput(R.id,w.toString())):f.addOutput(R.id,`${j.text}
174
+ `)}break}default:}}})}finally{S&&(clearTimeout(S),S=void 0),f.markDone()}},ks=s=>{try{return process.kill(-s,0),!0}catch{try{return process.kill(s,0),!0}catch{return!1}}},Uo=s=>{Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,s)},zo=s=>{const{extraPids:e=[],pidFiles:t,runDir:r}=s,c=[],o=i=>{try{process.kill(-i,"SIGTERM")}catch{try{process.kill(i,"SIGTERM")}catch{}}};for(const i of t){let d;try{const u=ar(i),p=Number.parseInt(u.trim(),10);d=Number.isFinite(p)&&p>0?p:void 0}catch{continue}d!==void 0&&(c.push(d),o(d))}for(const i of e)!Number.isFinite(i)||i<=0||(c.push(i),o(i));if(c.length>0){const u=Date.now()+1500;for(;Date.now()<u;){let p=!0;for(const f of c)if(ks(f)){p=!1;break}if(p)break;Uo(100)}for(const p of c)if(ks(p))try{process.kill(-p,"SIGKILL")}catch{try{process.kill(p,"SIGKILL")}catch{}}}r&&Br(r)},ct=256*1024;class Yo{#e;#r="";#s=!1;constructor(e){this.#e=e}append(e){this.#r+=e,this.#r.length>this.#e&&(this.#r=this.#r.slice(-this.#e),this.#s=!0)}toString(){return this.#s?`[...output truncated, showing last ${Math.round(this.#e/1024)}KB...]
175
+ ${this.#r}`:this.#r}}const zs=s=>{const e=s.overrides.visOptions;if(e&&typeof e=="object")return e},Ko=s=>`'${s.replaceAll("'",String.raw`'\''`)}'`,It=s=>process.platform==="win32"?s.length>0&&!/[\s"&|<>^()%!]/.test(s)?s:`"${s.replaceAll('"','""')}"`:Ko(s),Xo=(s,e,t)=>{if(!e||e.length===0||t===!1||t===void 0)return s;if(t==="args"||t==="both"){const r=e.map(c=>It(c)).join(" ");return`${s} ${r}`}return s},Ys="visForwardedArgs",Ct="visTaskArgEnv",Jo=(s,e)=>{const t=e.overrides[Ys];if(!Array.isArray(t)||t.length===0)return s;const r=t.map(c=>It(c)).join(" ");return`${s} ${r}`},Qo=async(s,e,t)=>{if(!e)return t();const r=s.get(e)??Promise.resolve();let c;const o=new Promise(d=>{c=d}),i=r.then(()=>o);s.set(e,i),await r;try{return await t()}finally{c(),s.get(e)===i&&s.delete(e)}},Zo=s=>{let e=Math.max(0,Math.floor(s));return{claim(t){const r=Math.max(0,Math.min(t,e));return e-=r,r},get remaining(){return e}}},ec=(s,e,t)=>{const r=`${e}\0${typeof t=="string"?t:String(t)}`,c=s.get(r);if(c)return c;const o=jt(e,t);return s.set(r,o),o},bs=s=>{const e=new Map;return async(t,r)=>{const{affectedFiles:c,currentOs:o,hooks:i,initCwd:d,lifeCycle:u,mutexPool:p,onOutput:f,onOutputReplace:h,retryBudget:l,serviceEnvByTaskId:b,serviceEventBridge:T,stdinRegistry:N,strictEnv:F,taskSlots:S,workspaceRoot:E}=s,I=zs(t),j=at(E,r.cwd??t.projectRoot,I?.runFromWorkspaceRoot===!0),R=t.overrides.command;if(!R)return{code:0,terminalOutput:`No command configured for ${t.target.project}:${t.target.target}`};const w=Jo(R,t),O=Xo(w,c,I?.affectedFiles),B=kn(I,o),k=I?.shellArgs,W=k&&k.length>0?k.join(" "):"-c",se=B?`${B} ${W} ${It(O)}`:O,ae=I?.envFile?ec(e,j,I.envFile):void 0,Q={};c&&c.length>0&&(I?.affectedFiles==="env"||I?.affectedFiles==="both")&&(Q[$t]=c.join(`
176
+ `));const ee=b?.get(t.id),ie={INIT_CWD:d,VIS_TASK_SLOTS:String(S),...ae,...ee,...r.env,...Q,...t.overrides[Ct]};if(I?.strictEnv??F??!1){const z=gi({command:O,processEnv:process.env,taskEnv:ie,taskId:t.id});if(z){const we=wi(z);return u?.onTaskStderr?.(t,we),{code:1,terminalOutput:we}}}const ge=I?.pty===!0,le=!!N,q=t.pty===!0?!0:t.pty===!1?!1:le||ge;q&&(t.cache=!1);const K=q?void 0:new Yo(ct),re=q?new yt(ct):void 0;let X;const Se=z=>{if(z.kind==="started"&&(X=z.kill,z.write&&N&&N.set(t.id,{kill:z.kill,resize:z.resize,write:z.write}),T?.onRegistryTaskStarted(t.id)),(z.kind==="stdout"||z.kind==="stderr")&&z.text!==void 0)if(z.kind==="stdout"?u?.onTaskStdout?.(t,z.text):u?.onTaskStderr?.(t,z.text),re)re.write(z.text),le&&h?.(t.id,re.toString()),T&&T.onTaskOutput(t.id,z.text);else{const we=`${z.text}
177
+ `;K.append(we),f?.(t.id,we)}z.kind==="close"&&(N&&N.delete(t.id),T&&T.onRegistryTaskClosed(t.id,z.exitCode??0,!!z.killed).catch(()=>{}))},_=async()=>{const z=I?.retryCount??0,we=I?.retryDelay,Me=l?l.claim(z):z,Fe=typeof I?.timeout=="number"&&I.timeout>0?I.timeout:0,_e=typeof I?.killGracePeriodMs=="number"&&I.killGracePeriodMs>=0?I.killGracePeriodMs:5e3;let ne=!1,Te=0;const Oe=ro({killGracePeriodMs:_e,onTimeout:()=>{ne=!0},sendSignal:ve=>{X?.(ve)},timeoutMs:Fe});let fe;try{fe=await tt([{command:se,cwd:j,env:ie,name:t.id,...q?{ptySize:{cols:process.stdout.columns??80,rows:process.stdout.rows??24},stdin:"pty"}:{}}],{killOthers:["failure"],onEvent:Se,...Me>0?{restart:{delay:we??"exponential",onRetry:async(ve,Ce,$)=>{Te=ve,i&&await i.callHook("task:retry",t,ve,$)},tries:Me}}:{}})}finally{Oe.cancel()}const xe=fe.closeEvents[0],$e=re?re.toString():K.toString();return ne?{code:124,retryAttempts:Te,terminalOutput:`${$e}
178
+ [timeout] Task "${t.id}" exceeded ${Fe}ms budget.
179
+ `}:{code:xe?.exitCode??1,retryAttempts:Te,terminalOutput:$e}};return p?Qo(p,I?.mutex,_):_()}},tc=s=>{if(!s||s.trim().length===0)return;const e=Number.parseFloat(s);return!Number.isFinite(e)||e<=0?{invalid:s}:{value:Math.floor(e)}},sc=async(s,e)=>{const t=await xr(s,{dataDirectory:st(s)});if(!t){e.warn(`No previous run recorded yet. Run a task at least once to populate ${jr(s,{dataDirectory:st(s)})}.`);return}const r=(t.duration/1e3).toFixed(2);if(e.info(""),e.info(`Last run — ${t.startTime} (${r}s)`),e.info(""),e.info(` Total: ${String(t.stats.total)}`),e.info(` Succeeded: ${String(t.stats.succeeded)}`),e.info(` Cached: ${String(t.stats.cached)}`),e.info(` Failed: ${String(t.stats.failed)}`),e.info(` Skipped: ${String(t.stats.skipped)}`),e.info(""),t.stats.failed>0){const o=t.tasks.filter(i=>i.exitCode!==void 0&&i.exitCode!==0);e.info("Failed tasks:");for(const i of o){const d=i.duration??0;e.info(` × ${i.taskId} (exit ${String(i.exitCode??-1)}, ${d}ms)`)}e.info("")}const c=[...t.tasks].filter(o=>typeof o.duration=="number").sort((o,i)=>(i.duration??0)-(o.duration??0)).slice(0,5);if(c.length>0){e.info("Slowest tasks:");for(const o of c)e.info(` ${o.taskId.padEnd(40)} ${String(o.duration??0).padStart(6)}ms [${o.cacheStatus}]`);e.info("")}},rc=s=>{if(!(s===void 0||s==="")){if(s!=="read"&&s!=="write"&&s!=="readwrite")throw new Error(`--cache-mode must be one of: read, write, readwrite (received "${s}")`);return s}},nc=s=>{if(!(s===void 0||s==="")){if(s!=="http"&&s!=="reapi")throw new Error(`--cache-backend must be one of: http, reapi (received "${s}")`);return s}},ic=s=>{if(!(s===void 0||s==="")){if(s!=="declared"&&s!=="trace")throw new Error(`--hash-mode must be one of: declared, trace (received "${s}")`);return s}},Mc=async({argument:s,logger:e,options:t,visConfig:r,workspaceRoot:c})=>{if(!c)throw new Error("Could not determine workspace root. Run this command inside a monorepo.");const o=c;if(Kr({logger:e,options:t,visConfig:r},o),Bn(o),t.lastDetails){await sc(o,e);return}const i=process.cwd(),d=await Ar(o),{config:u,packageJsons:p,projectOptions:f,workspace:h}=Lr(o,r,d),l=Dr(o,h,p);let b=s[0];if(!b){const m=Zt(h);if(process.stdout.isTTY&&process.stdin.isTTY){const v=await ln(m);if(!v){e.info("No target selected.");return}b=v,await Qi(`vis run ${v}`)}else throw e.info("Available targets:"),e.info(""),e.info(dn(m)),e.info(""),new Ke("Missing target. Usage: vis run <target>")}if(u.constraints&&!t.skipConstraints){const m=fr(l,u.constraints);if(m.length>0){for(const v of m)e.error(`[${v.rule}] ${v.message}`);throw new Error(`${m.length} project constraint violation(s) found. Use --skip-constraints to bypass.`)}}if(!t.affected){const m=t.uncommitted?"--uncommitted":"--no-uncommitted",v=[["--base",t.base],["--head",t.head],["--downstream",t.downstream],["--upstream",t.upstream],[m,t.uncommitted]].filter(([,y])=>y!==void 0).map(([y])=>y);if(v.length>0)throw new Ke(`${v.join(", ")} ${v.length===1?"requires":"require"} --affected.
180
+ Did you mean: vis run ${b} --affected ${v.map(y=>y.includes("uncommitted")?y:`${y}=…`).join(" ")}
181
+ Or use the dedicated command: vis affected ${b} …`)}const T=await gn(b,h,process.cwd(),o),N=un(f),F=fn(T.target,N);F!==T.target&&e.debug?.(`Resolved alias "${T.target}" → "${F}"`);let S=T.projects;const E=s.slice(1).map(String);if(t.projects!==void 0&&(S=hn(S,String(t.projects),Object.keys(h.projects))),t.filter&&t.filter.length>0){const m=new Map;for(const[P,G]of p)m.set(P,G.name);const v=await xo(t.filter,{defaultBase:r?.defaultBase,packageNameByProject:m,projectGraph:l,workspaceRoot:o}),y=new Set(v);if(S=S.filter(P=>y.has(P)),S.length===0){e.info(`Filter ${t.filter.map(P=>`"${P}"`).join(", ")} matched no projects.`);return}}if(t.query&&(S=wn(S,h,t.query),S.length===0)){e.info(`Query "${String(t.query)}" matched no projects.`);return}if(t.tag&&t.tag.length>0&&(S=vn(S,h,t.tag),S.length===0)){e.info(`Tag filter ${t.tag.map(m=>`"${m}"`).join(", ")} matched no projects.`);return}let I;if(t.affected){const m=await an({base:t.base,downstream:t.downstream,head:t.head,uncommitted:t.uncommitted,upstream:t.upstream},{projectGraph:l,projects:h.projects,workspaceRoot:o},{defaultBase:r?.defaultBase});for(const y of m.notes)e.info(`▸ ${y}`);if(m.changedFiles.length===0){e.info("No files changed. Nothing to run.");return}const v=new Set(m.affectedProjects);if(S=S.filter(y=>v.has(y)),S.length===0){e.info("No projects affected by the changes.");return}I=m.changedFiles,e.info(`Affected projects: ${S.join(", ")}`)}const j=yn(),R=process.env[$t],w=I??(R?R.split(`
182
+ `).filter(Boolean):void 0),O=(typeof t.runnerTags=="string"?t.runnerTags:process.env.VIS_RUNNER_TAGS)??void 0,B=O?new Set(O.split(",").map(m=>m.trim()).filter(Boolean)):void 0,k=[],W=new Map;for(const m of S){const y=f.get(m)?.[F];if(!y)continue;const P=y.options;if(!P?.internal){if(!xn(P,!!Ye)){e.debug?.(`Skipping ${m}:${F} — runInCI filter`);continue}if(!jn(P,B)){e.debug?.(`Skipping ${m}:${F} — runner-tags filter`);continue}k.push(m),W.set(m,y)}}if(k.length===0){const m=Zt(h),v=Object.entries(h.projects).filter(([,y])=>y.targets?.[F]!==void 0).map(([y])=>y);if(e.error(`No projects have the "${F}" target.`),v.length>0){e.info(""),e.info(`Target "${F}" exists in these projects but was filtered out:`);for(const y of v.slice(0,5))e.info(` - ${y}`);v.length>5&&e.info(` …and ${v.length-5} more`)}else{const y=pn(F,m,3);y.length>0&&(e.info(""),e.info(y.length===1?`Did you mean "${y[0]}"?`:`Did you mean one of: ${y.map(P=>`"${P}"`).join(", ")}?`)),e.info(""),e.info("Run `vis run` without arguments to see all available targets.")}return}const se=t.pty,ae=k.map(m=>({project:m,schema:W.get(m)?.arguments})).filter(m=>Array.isArray(m.schema)&&m.schema.length>0),Q=new Map;for(const{project:m,schema:v}of ae){const y=JSON.stringify(v),P=Q.get(y)??[];P.push(m),Q.set(y,P)}if(Q.size>1){const m=[...Q.values()].map(v=>v.join(", ")).join(" | ");throw new Error(`Target "${F}" declares conflicting \`arguments\` schemas across projects (${m}). Run a single project (e.g. \`vis run ${ae[0]?.project}:${F}\` or --projects=<name>) so the argument contract is unambiguous.`)}const ee=ae[0]?.schema,ie=W.get(ae[0]?.project??k[0])?.description,oe=qo(F,ie,ee,E);if(oe.kind==="help"){e.info(oe.text);return}if(oe.kind==="invalid"){e.info(`Invalid arguments for "${F}":`);for(const m of oe.errors)e.info(` ✖ ${m}`);throw e.info(""),e.info(oe.help),new Error(`Invalid arguments for target "${F}"`)}const ge=oe.env,le=ic(t.hashMode);let q=k.map(m=>{const v=h.projects[m],y=W.get(m),P={project:m,target:F},G=`${m}:${F}`,Z=se?{...y.options,pty:y.options?.pty??!0}:y.options,D=y.command?zt(y.command,{affectedFiles:w,projectRoot:v?.root}):y.command,A=v?.root&&v.root.length>0?v.root:".",Y=(y.outputs??[]).map(H=>typeof H!="string"?H:H.replaceAll("{projectRoot}",A).replaceAll("{projectName}",m));return{cache:y.cache,hashMode:le??y.hashMode,id:G,outputs:Y,overrides:{command:D,...E.length>0?{[Ys]:E}:{},...Object.keys(ge).length>0?{[Ct]:ge}:{},...Z?{visOptions:Z}:{}},parallelism:y.parallelism,projectRoot:v?.root,target:P}});const K=[],re=[];for(const m of q)zs(m)?.persistent?(m.cache=!1,K.push(m)):re.push(m);q=re;const X=hr(t.partition);if(X&&(q=pr.partitionTasks(q,X),e.info(`Partition ${X.index}/${X.total}: running ${q.length} task(s)`),q.length===0)){e.info("No tasks assigned to this partition.");return}const Se=new Set([...q,...K].map(m=>m.id));let _=mr([...q,...K],{onCycleBroken:m=>{e.warn(`Ignoring dev-only dependency cycle (build order is ambiguous): ${m.join(" → ")}`)},onUnmatchedProjectSelector:m=>{e.warn(`dependsOn.projects entry "${m}" matched no project — that dependency edge was not created.`)},projectGraph:l,targetDefaults:u.tasks,workspace:h});for(const[m,v]of Object.entries(_.tasks)){const y=v.target.project,P=v.target.target,G=f.get(y)?.[P];if(!G){Se.has(m)||e.warn(`${P} required via dependsOn but no command is configured for ${y} — skipping (no-op).`);continue}const Z=h.projects[y];let D=!1;const A={...v.overrides};A.visOptions===void 0&&G.options&&(A.visOptions=G.options,D=!0),A.command===void 0&&G.command&&(A.command=zt(G.command,{affectedFiles:w,projectRoot:Z?.root}),D=!0),D&&(v.overrides=A,_.tasks[m]=v)}if(typeof t.skipCache=="string"&&t.skipCache.trim()!=="")if(t.cache){const m=fi(t.skipCache,h,Object.keys(_.tasks));for(const v of m.skipTaskIds){const y=_.tasks[v];y!==void 0&&(y.cache=!1)}m.unmatchedPatterns.length>0&&e.warn(`--skip-cache: no tasks matched ${m.unmatchedPatterns.map(v=>`"${v}"`).join(", ")}`),m.skipTaskIds.size>0&&e.debug?.(`--skip-cache: bypassing cache for ${String(m.skipTaskIds.size)} task(s)`)}else e.debug?.("--skip-cache ignored: --no-cache already disables caching for the whole run");await Xr(o,u.toolchain,{error:m=>{e.error(m)},info:m=>{e.info(m)},warn:m=>{e.warn(m)}},!!t.skipToolchain);const z=t.preflight!==!1&&u.preflight?.lockfile!==!1,we=Nr(o,Ye,{warn:m=>{e.warn(m)}},{skip:!z});if(!we.shouldContinue)throw new Error(`${we.formattedMessage??"preflight: lockfile drift detected"} (pass --no-preflight to bypass)`);z&&!Ye&&process.stdin.isTTY&&process.stdout.isTTY&&await li(o,{interactive:!0,logger:{info:m=>{e.info(m)},warn:m=>{e.warn(m)}},projectManifests:[...p.values()]});const Me=process.env.VIS_VERSION??"0.0.0",Fe=t.dryRun?void 0:async m=>{try{return await tn(m.config,{timeoutMs:Vo}),!0}catch{return!1}},_e=await sn(o),ne=await uo({initialTasks:[...q,...K],probe:Fe,registeredEntries:_e,taskGraph:_,visVersion:Me}),Te=[];let Oe,fe=0;const xe=[],$e=new Map;let ve=[];const Ce=new Set;let $=null,x=null;if(ne.diagnostics.length>0){const m=!!(process.stdout.isTTY&&process.stdin.isTTY),v=t.dryRun?"off":Lo({cli:t.services,config:u.run?.services,isCi:!!Ye,isPersistentTarget:K.length>0,isTty:m,target:F});if(v==="off"){for(const H of ne.diagnostics)e.error(H.message);const A=Ao({cli:t.services,config:u.run?.services}),Y=[];throw t.dryRun?Y.push("`--dry-run` never starts services; drop it to let vis boot them."):A==="default"?Y.push("vis only auto-starts service deps in an interactive terminal by default (this run is CI or non-TTY).","Pass `--services=ephemeral` to boot them for this run, or set `run.services` in vis.config.ts."):A==="cli"?Y.push("`--services=off` was passed; use `--services=ephemeral` to boot them for this run."):Y.push('`run.services: "off"` is set in vis.config.ts; override it with `--services=ephemeral`.'),new Ke([`${ne.diagnostics.length} service dependency error(s) — start the missing services or invoke them directly.`,...Y].join(`
183
+ `))}const y=ne.diagnostics.map(A=>A.targetId),P=v,G=P==="registry"?qs(o,y,_):void 0,Z=process.argv[1]??"vis",D=Fo({missingServiceIds:y,mode:P,taskGraph:_,visBin:Z,workspaceRoot:o});if(D.skipped.length>0){for(const{id:A,reason:Y}of D.skipped)e.error(`Cannot auto-start ${A}: ${Y}`);throw new Ke(`${D.skipped.length} service(s) cannot be auto-started — invoke them directly or add a service config.`)}Te.push(...D.ephemeralPidFiles),Oe=D.runDir,ve=D.chain;for(const A of D.chain)Ce.add(A);if(P==="registry"&&(fe=D.chain.length,xe.push(...D.chain)),D.chain.length>0){const A=new as(D.chain),Y=new Map;if(P==="ephemeral"&&D.runDir)for(const H of D.chain){const M=Vs(D.runDir,`${D.runDir}/bootstrap.mjs`,H);Y.set(H,{ephemeral:{configFile:M.configFile,cwd:o,logFile:M.logFile,pidFile:M.pidFile,scriptPath:M.scriptPath},mode:"ephemeral"})}else if(P==="registry"&&G)for(const H of G.services)Y.set(H.id,{mode:"registry",registry:{command:H.command,config:H.config,cwd:H.cwd,env:H.env}});if(Y.size>0){const H=new So({indexToId:new Map,services:Y,sink:{crashed:(M,L)=>{A.markCrashed(M,L)},failed:(M,L,V)=>{A.markFailed(M,L,V)},log:(M,L)=>{A.appendLog(M,L)},ready:(M,L)=>{A.markReady(M,L)},started:(M,L)=>{A.markStarted(M,L),P==="registry"&&L!==null&&$e.set(M,L)},starting:M=>{A.markStarting(M)}},workspaceRoot:o});$=A,x=H}}for(const[A,Y]of D.serviceEnvByTaskId){const H=ne.serviceEnvByTaskId.get(A)??{};ne.serviceEnvByTaskId.set(A,{...H,...Y})}}const C=new Set(K.map(m=>m.id));if(q=ne.initialTasks.filter(m=>!C.has(m.id)),_=ne.taskGraph,ve.length>0&&(q=[...ve.map(v=>_.tasks[v]).filter(v=>v!==void 0),...q]),K.length>0){const m=new Set(K.map(Z=>Z.id)),v={};for(const[Z,D]of Object.entries(_.tasks))m.has(Z)||(v[Z]=D);const y={};for(const[Z,D]of Object.entries(_.dependencies))m.has(Z)||(y[Z]=D.filter(A=>!m.has(A)));const P=new Set;for(const Z of Object.values(y))for(const D of Z)P.add(D);const G=Object.keys(v).filter(Z=>!P.has(Z));_={dependencies:y,roots:G,tasks:v}}const{serviceEnvByTaskId:te}=ne;if(ne.satisfiedServices.length>0){const m=ne.satisfiedServices.map(v=>v.id).join(", ");if(e.debug?.(`Auto-attached to running services: ${m}`),$)for(const v of ne.satisfiedServices)$.registerService(v.id);else $=new as(ne.satisfiedServices.map(v=>v.id));for(const v of ne.satisfiedServices){const y=v.config.readiness?.tcp?.port??v.config.port??0,P=v.config.readiness?.tcp?.host??"127.0.0.1";$.markReady(v.id,{host:P,port:y})}}if(t.reverse&&(_=gr(_),e.debug?.(`Reversed task graph: ${String(_.roots.length)} new root(s) (originally leaves)`)),t.dryRun){const m=Object.keys(_.tasks).length,v=_.roots.length;e.info(`Execution plan (${String(m)} task(s), ${String(v)} root(s)):`),e.info("");const y=new Set,P=(G,Z)=>{if(y.has(G))return;y.add(G);for(const H of _.dependencies[G]??[])P(H,Z+1);const D=_.tasks[G],A=" ".repeat(Z+1),Y=`${D?.cache===!1?" (no-cache)":""}${D?.hashMode==="trace"?" (trace)":""}`;e.info(`${A}${G}${Y}`)};for(const G of _.roots)P(G,0);for(const G of Object.keys(_.tasks))P(G,0);K.length>0&&(e.info(""),e.info(` + ${String(K.length)} persistent task(s) (run after graph completes)`)),e.info("");return}const Ae=Date.now(),Ie=rn(),Et=(m,v)=>{const y=v instanceof Error?v.message:String(v);e.warn(`Plugin error in ${m}: ${y}`)};await nn(Ie,u.plugins);const qe=typeof t.profile=="string"?t.profile:void 0,Rt=async m=>{if(!qe)return;const v=Xt(m,_,Ae),y=qe.startsWith("/")?qe:`${o}/${qe}`;await kr(v,y),e.info(`Profile written to ${qe}`)},Je=u.taskRunner??{},Ks=Cr(o,t.cacheDir,Je.cacheDirectory,u.sharedWorktreeCache),Xs=Er(Ks,o,u.branchScopedCache),Ne=tc(process.env.VIS_RUN_CONCURRENCY_LIMIT);Ne&&"invalid"in Ne&&e.warn(`VIS_RUN_CONCURRENCY_LIMIT=${Ne.invalid} is not a positive number; falling back to default concurrency.`);const Js=Ne&&"value"in Ne?Ne.value:void 0,ut=t.parallel??Js??3,Pt=t.strictEnv??u.strictEnv??!1,Mt=new Set,Le={dryRun:t.dryRun??!1,parallel:ut,skipNxCache:!t.cache,summarize:t.summarize??!1,...Je,cacheDirectory:Xs,dataDirectory:Je.dataDirectory??st(o),namedInputs:u.namedInputs,onDiagnostic:(m,v)=>{Mt.has(m)||(Mt.add(m),e.warn(v))},onFingerprint:async(m,v)=>{await Ie.callHook("task:fingerprint",m,v)}},Ft=wr(Je.remoteCache);if(Ft){const m=rc(t.cacheMode),v=nc(t.cacheBackend);if(Le.remoteCache={...Ft,...m?{mode:m}:{},...v?{backend:v}:{}},Le.remoteCache.attestation){const{expectedIdentity:y,requireOnDownload:P}=Le.remoteCache.attestation;if(!(y!==void 0&&("github"in y&&typeof y.github?.ref=="string"&&typeof y.github.repo=="string"&&typeof y.github.workflow=="string"||"oidcIssuer"in y&&typeof y.oidcIssuer=="string"&&(typeof y.san=="string"||typeof y.sanRegex=="string"))))throw new Error("[vis run] remoteCache.attestation requires a pinned keyless signer via `expectedIdentity`. Use one of:\n • { github: { repo, workflow, ref } } (GitHub Actions — recommended)\n • { oidcIssuer, san } (literal identity; vis regex-escapes + anchors it)\n • { oidcIssuer, sanRegex } (advanced: raw regex, you own anchoring)\nWithout it, verification is integrity-only — use `remoteCache.signing` (HMAC) for that instead.");"sanRegex"in y&&(!y.sanRegex.startsWith("^")||!y.sanRegex.endsWith("$"))&&e.warn("[vis run] remoteCache.attestation.expectedIdentity.sanRegex is not anchored (^…$). sigstore matches it as a regex; an unanchored value is substring-matched and weakens the identity pin. Prefer the literal `san` form unless you need a pattern.");const{installCommandFor:Z,isSigstoreInstalled:D}=await import("./loader.js");D()||e.warn(`[vis run] remoteCache.attestation is configured but the optional \`sigstore\` package is not installed. Cache uploads will be unsigned and signed entries can't be verified until you install it:
184
+ ${Z(o)}`);const{buildCacheAttestationHooks:A}=await import("./cache-attestation.js");Le.remoteCache.attestation=A({expectedIdentity:y,onReject:(Y,H)=>{e.warn(`[vis run] remote cache entry ${Y.slice(0,12)} rejected: attestation ${H}. Treating as a cache miss.`)},onVerifyFailure:Y=>{e.warn(`[vis run] attestation verification failed: ${Y}`)},requireOnDownload:P,workspaceRoot:o})}}else(t.cacheMode||t.cacheBackend)&&e.warn("[vis run] --cache-mode and --cache-backend require a `remoteCache` block in vis.config.ts (or TURBO_API env); ignoring.");const Qs=process.stdout.isTTY&&!Ye,Zs=r?.run?.quietOnSuccess===!0,er=u.tui?.autoExit??(Zs?3:!1),Ot={args:{parallel:Le.parallel,targets:[F]},autoExit:er,projectNames:k,tasks:[...q,...K],totalTaskCount:Object.keys(_.tasks).length+K.length},At=typeof t.retryBudget=="number"?t.retryBudget:void 0,Lt=At===void 0?void 0:Zo(At),Dt=new on(Ie,Et),Bt=new Yr(o),_t=Ki(t.outputStyle,r?.run?.quietOnSuccess);if(ne.satisfiedServices.length>0)for(const m of ne.satisfiedServices){const v=ne.serviceDependentsByServiceId.get(m.id)??[];try{await Ie.callHook("service:attach",m,v)}catch(y){Et("service:attach",y)}}await Ie.callHook("run:before",{tasks:q,workspaceRoot:o});const Ve=t.stopServices;let Nt=!1;const Gt=()=>{if(Nt)return;Nt=!0,x&&x.dispose().catch(()=>{});const m=Ve?[...$e.values()]:void 0;zo({extraPids:m,pidFiles:Te,runDir:Oe})},Qe=()=>{Gt()},Wt=Te.length>0||Oe!==void 0||Ve&&xe.length>0;Wt&&(process.on("SIGINT",Qe),process.on("SIGTERM",Qe));try{if(Qs){const m=new Map,v=zi({...Ot,onRetryService:x?M=>x.retry(M):void 0,outputStyle:_t,serviceDockStore:$,stdinRegistry:m}),{lifeCycle:y,store:P}=v,G=new Yt([y,Dt,Bt]),D=bs({affectedFiles:w,currentOs:j,hooks:Ie,initCwd:i,lifeCycle:G,mutexPool:new Map,onOutput:(M,L)=>{x&&Ce.has(M)?x.onTaskOutput(M,L):P.addOutput(M,L)},onOutputReplace:(M,L)=>{P.setOutput(M,L)},retryBudget:Lt,serviceEnvByTaskId:te,serviceEventBridge:x??void 0,stdinRegistry:m,strictEnv:Pt,taskSlots:ut,workspaceRoot:o});let A="rerun",Y=null,H=new Map;for(;A!=="quit";){if(A==="rerun"){if(H=await Kt(q,Le,{lifeCycle:G,projectGraph:l,taskExecutor:D,taskGraph:_,workspaceRoot:o}),K.length>0&&!t.failFast){const M=new Promise(L=>{const V=P.subscribe(()=>{const de=P.getSnapshot();(de.rerunRequested||de.retryTaskId)&&(V(),L())});v.renderIsDone.then(()=>{V(),L()}).catch(()=>{V(),L()})});await js(K,o,w,i,{abortSignal:M,lifeCycle:G,stdinRegistry:m,store:P},te)}}else if(A==="retry"&&Y){const M=q.find(V=>V.id===Y),L=M?.overrides.command;if(M&&L){const V=at(o,M.projectRoot,!1);G.startTasks?.([M]);const de=new yt(ct),pe=(await tt([{command:L,cwd:V,name:M.id,ptySize:{cols:process.stdout.columns??80,rows:process.stdout.rows??24},stdin:"pty"}],{onEvent:ce=>{ce.kind==="started"&&ce.write&&m.set(M.id,{kill:ce.kill,resize:ce.resize,write:ce.write}),(ce.kind==="stdout"||ce.kind==="stderr")&&ce.text&&(de.write(ce.text),P.setOutput(M.id,de.toString())),ce.kind==="close"&&m.delete(M.id)}})).closeEvents[0];G.endTasks?.([{code:pe?.exitCode??1,status:pe?.exitCode===0?"success":"failure",task:M,terminalOutput:P.getSnapshot().outputs.get(M.id)}])}else M&&G.endTasks?.([{code:1,status:"failure",task:M,terminalOutput:`No command configured for ${M.id}`}]);Y=null,P.markDone()}A=await new Promise(M=>{const L=P.subscribe(()=>{const V=P.getSnapshot();V.rerunRequested&&(P.acknowledgeRerun(),L(),M("rerun")),V.retryTaskId&&(Y=P.acknowledgeRetry(),L(),M("retry"))});v.renderIsDone.then(()=>{L(),M("quit")}).catch(()=>{L(),M("quit")})})}await v.renderIsDone,await Ie.callHook("run:after",H),await Rt(H),fe>0&&(e.info(""),Ve?e.info(`${String(fe)} service(s) stopped (--stop-services).`):e.info(`${String(fe)} service(s) started in the background. Run \`vis service stop --all\` to clean up.`))}else{const m=new Map,v=typeof t.log=="string"?t.log.toLowerCase():"",y=v==="labeled"||v==="grouped"||v==="interleaved"?v:void 0,P=y?vr(y):void 0,G=new Yt([new Ji({...Ot,ciGrouping:r?.run?.ciGrouping??"auto",logReporter:P,outputStyle:_t}),Dt,Bt]),Z=bs({affectedFiles:w,currentOs:j,hooks:Ie,initCwd:i,lifeCycle:G,mutexPool:m,retryBudget:Lt,serviceEnvByTaskId:te,serviceEventBridge:x??void 0,strictEnv:Pt,taskSlots:ut,workspaceRoot:o}),D=async()=>{const L=Date.now(),V=await Kt(q,Le,{lifeCycle:G,projectGraph:l,taskExecutor:Z,taskGraph:_,workspaceRoot:o}),de=Date.now()-L;if(t.summarize){const ye=Xt(V,_,Ae);await yr(ye,o,{dataDirectory:st(o)})}let je=!1;for(const[,ye]of V)ye.status==="failure"&&(je=!0);const pe=Rr(V,de),ce=Pr(o),Ee=Mr(o,de,ce);return e.info(""),e.info(` ${pe}${Ee?` ${Ee}`:""}`),{hasFailure:je,results:V,runHistory:ce}},A=await D();await Ie.callHook("run:after",A.results),await Rt(A.results);const{hasFailure:Y}=A;if(t.watch){const L=k.map(he=>{const Re=h.projects[he]?.root;if(Re)return Re.startsWith("/")?Re:`${o}/${Re}`}).filter(he=>he!==void 0),V=q;let de;const je=he=>{const ke=no(V,he);return de=ke.filter,q=ke.tasks,ke.tasks.length};let pe=!1,ce=A.results;const Ee=()=>{const he=ss(ce,o);if(he.directories.length>0&&he.files.size>0){const ke=_n(he.files,o,he.directories);return{handle:rs({filter:ke,onChange:Ze,paths:he.directories}),mode:"tracked"}}return{handle:rs({onChange:Ze,paths:L}),mode:"roots"}};let ye;const Ze=async he=>{if(!pe){pe=!0;try{e.info(`Change detected in ${he.length} file(s), rerunning…`),ce=(await D()).results,ye?.close(),ye=Ee().handle}finally{pe=!1}}},Ht=Ee();ye=Ht.handle;const tr=Ht.mode==="tracked"?`Watching ${String(ss(ce,o).files.size)} tracked file(s)`:`Watching ${String(L.length)} project root(s)`;e.info(`${tr} — edit a file to rerun, press h for keybinds, q to quit.`);const ft=async()=>{if(!pe){pe=!0;try{if(q.length===0){e.info("No tasks match the active filter — press a to clear it.");return}ce=(await D()).results,ye?.close(),ye=Ee().handle}finally{pe=!1}}};await new Promise(he=>{let ke=!1,Re;const qt=()=>{Vt()},Vt=()=>{ke||(ke=!0,Re?.close(),process.off("SIGINT",qt),ye?.close(),he())};process.on("SIGINT",qt),Re=ao({handlers:{onClearFilter:async()=>{const Ue=je(void 0);e.info(`Filter cleared — running ${String(Ue)} task(s).`),await ft()},onFilter:async Ue=>{const sr=de,Ut=je(Ue);if(Ut===0){e.info(`Filter "${Ue}" matched no projects — keeping previous filter.`),je(sr);return}e.info(`Filter "${Ue}" matched ${String(Ut)} task(s).`),await ft()},onHelp:()=>{oo(process.stdout)},onQuit:()=>{Vt()},onRerun:ft}})});return}if(t.flaky){const L=Fr(o,{minRuns:2},A.runHistory);if(L.length>0){e.info(""),e.info("Flaky tasks (based on historical runs):"),e.info("");for(const V of Or(L))e.info(` ${V}`);e.info("")}}const H=[];for(const[L,V]of A.results)V.retryAttempts&&V.retryAttempts>0&&H.push(L);const M=t.failOnRetry&&H.length>0;if(M){const V=H.slice(0,5),de=H.length-V.length,je=de>0?`${V.join(", ")}, and ${String(de)} more`:V.join(", ");e.warn(""),e.warn(`--fail-on-retry: ${String(H.length)} task(s) succeeded only after retry: ${je}`)}if(Y||M){const L=M&&!Y?"Some tasks succeeded only after retry (--fail-on-retry).":"Some tasks failed.",V=2e3,de=[];for(const[je,pe]of A.results){if(pe.status!=="failure")continue;const ce=pe.terminalOutput??"",Ee=ce.length>V?`…${ce.slice(-V)}`:ce,ye=pe.code??"?";de.push(` ${je} (exit ${String(ye)}):
185
+ ${Ee.split(`
186
+ `).map(Ze=>` ${Ze}`).join(`
187
+ `)}`)}throw new Ke(de.length>0?`${L}
188
+ ${de.join(`
189
+ `)}`:L)}K.length>0&&!t.failFast&&await js(K,o,w,i,void 0,te),fe>0&&(e.info(""),Ve?e.info(`${String(fe)} service(s) stopped (--stop-services).`):e.info(`${String(fe)} service(s) started in the background. Run \`vis service stop --all\` to clean up.`))}}finally{Gt(),Wt&&(process.off("SIGINT",Qe),process.off("SIGTERM",Qe)),Ve&&xe.length>0&&await Promise.all(xe.map(async m=>{try{await cn(o,m)}catch{}}))}};export{Zo as createRetryBudget,Mc as default};