diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 43389076f..95665b4ec 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -34,7 +34,7 @@ jobs: run: | npm ci npm i --no-save eslint ts-node typescript - npm run plugins:ci + # npm run plugins:ci - name: static checks run: | @@ -43,7 +43,7 @@ jobs: - name: build run: | npm run build - npm run plugins:build + # npm run plugins:build - name: test run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b3bbd6ba3..66527c73b 100755 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: run: | npm ci npm i --no-save eslint ts-node typescript - npm run plugins:ci + # npm run plugins:ci - name: static checks run: | @@ -45,7 +45,7 @@ jobs: - name: build run: | npm run build - npm run plugins:build + # npm run plugins:build - name: test run: | diff --git a/README.md b/README.md index 5c734f299..ef40a1638 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ it is small, quick, - and usually good-enough. + and often good-enough. @@ -55,18 +55,17 @@ ### .match(): -compromise makes it simple to interpret and match text: +interpret and match text: ```js let doc = nlp(entireNovel) - -doc.if('the #Adjective of times').text() -// "it was the blurst of times??" +doc.match('the #Adjective of times').text() +// "the blurst of times?" ``` ```js -if (doc.has('simon says #Verb')) { - return true +if (doc.has('simon says #Verb') === false) { + return null } ``` @@ -115,7 +114,7 @@ doc.text() ### .numbers(): -interpret plaintext numbers +interpret plain-text numbers ```js nlp.extend(require('compromise-numbers')) @@ -135,7 +134,7 @@ doc.text() ### .topics(): -grab subjects in a text: +grab the big subjects: ```js let doc = nlp(buddyHolly) @@ -164,7 +163,7 @@ doc.topics().json() ### .contractions(): -work with contracted and implicit words: +handle implicit words: ```js let doc = nlp("we're not gonna take it, no we ain't gonna take it.") @@ -202,7 +201,7 @@ Use it on the client-side: ``` -or as an es-module: +as an es-module: ```typescript import nlp from 'compromise' @@ -232,7 +231,7 @@ it's pretty fast. It can run on keypress: -it works mainly by conjugating many forms of a basic word list. +it works mainly by conjugating all forms of a basic word list. The final lexicon is ~14,000 words: @@ -240,7 +239,7 @@ The final lexicon is -you can read more about how it works, [here](https://observablehq.com/@spencermountain/compromise-internals). +you can read more about how it works, [here](https://observablehq.com/@spencermountain/compromise-internals). it's weird. @@ -250,7 +249,7 @@ you can read more about how it works, [here](https://observablehq.com/@spencermo ### .extend(): -set a custom interpretation of your own words: +decide how words get interpreted: ```js let myWords = { @@ -260,7 +259,7 @@ let myWords = { let doc = nlp(muppetText, myWords) ``` -or make more changes with a [compromise-plugin](https://observablehq.com/@spencermountain/compromise-plugins). +or make heavier changes with a [compromise-plugin](https://observablehq.com/@spencermountain/compromise-plugins). ```js const nlp = require('compromise') @@ -309,11 +308,11 @@ nlp.extend((Doc, world) => { ### Docs: -##### Warm introduction: +##### gentle introduction: -- **[#1 Input → output](https://docs.compromise.cool/tutorial-1)** -- **[#2 Match & transform](https://docs.compromise.cool/compromise-tutorial-2)** -- **[#3 Making a chat-bot](https://docs.compromise.cool/compromise-making-a-bot)** +- **[#1) Input → output](https://docs.compromise.cool/tutorial-1)** +- **[#2) Match & transform](https://docs.compromise.cool/compromise-tutorial-2)** +- **[#3) Making a chat-bot](https://docs.compromise.cool/compromise-making-a-bot)**
@@ -339,7 +338,7 @@ nlp.extend((Doc, world) => { | [Tokenization](https://observablehq.com/@spencermountain/compromise-tokenization) | [Text](https://observablehq.com/@spencermountain/compromise-text) | [Pronounce](https://observablehq.com/@spencermountain/compromise-pronounce) | [Named-Entities](https://observablehq.com/@spencermountain/compromise-topics) | [Utils](https://observablehq.com/@spencermountain/compromise-utils) | [Strict](https://observablehq.com/@spencermountain/compromise-strict) | [Whitespace](https://observablehq.com/@spencermountain/compromise-whitespace) | [Verbs](https://observablehq.com/@spencermountain/verbs) | [Penn-tags](https://observablehq.com/@spencermountain/compromise-penn-tags) -| [World](https://observablehq.com/@spencermountain/compromise-world) | [Normalization](https://observablehq.com/@spencermountain/compromise/Normalization) | +| [World data](https://observablehq.com/@spencermountain/compromise-world) | [Normalization](https://observablehq.com/@spencermountain/compromise/Normalization) | | [Fuzzy-matching](https://observablehq.com/@spencermountain/compromise-fuzzy-matching) |[Typescript](https://observablehq.com/@spencermountain/compromise-typescript) | @@ -584,18 +583,25 @@ These are some helpful extensions: `npm install compromise-dates` - **[.dates()](https://observablehq.com/@spencermountain/compromise-dates)** - find dates like `June 8th` or `03/03/18` + - **[.dates().get()](https://observablehq.com/@spencermountain/compromise-dates)** - simple start/end json result - **[.dates().json()](https://observablehq.com/@spencermountain/compromise-dates)** - overloaded output with date metadata - **[.dates().format('')](https://observablehq.com/@spencermountain/compromise-dates)** - convert the dates to specific formats - **[.dates().toShortForm()](https://observablehq.com/@spencermountain/compromise-dates)** - convert 'Wednesday' to 'Wed', etc - **[.dates().toLongForm()](https://observablehq.com/@spencermountain/compromise-dates)** - convert 'Feb' to 'February', etc +- **[.durations()](https://observablehq.com/@spencermountain/compromise-dates)** - `2 weeks` or `5mins` + - **[.durations().get()](https://observablehq.com/@spencermountain/compromise-dates)** - return simple json for duration + - **[.durations().json()](https://observablehq.com/@spencermountain/compromise-dates)** - overloaded output with duration metadata +- **[.times()](https://observablehq.com/@spencermountain/compromise-dates)** - `4:30pm` or `half past five` + - **[.durations().get()](https://observablehq.com/@spencermountain/compromise-dates)** - return simple json for times + - **[.times().json()](https://observablehq.com/@spencermountain/compromise-dates)** - overloaded output with time metadata ##### Numbers `npm install compromise-numbers` - **[.numbers()](https://observablehq.com/@spencermountain/compromise-values)** - grab all written and numeric values - - **[.numbers().json()](https://observablehq.com/@spencermountain/compromise-values)** - overloaded output with number metadata - **[.numbers().get()](https://observablehq.com/@spencermountain/compromise-values)** - retrieve the parsed number(s) + - **[.numbers().json()](https://observablehq.com/@spencermountain/compromise-values)** - overloaded output with number metadata - **[.numbers().units()](https://observablehq.com/@spencermountain/compromise-values)** - grab 'kilos' from `25 kilos'` - **[.numbers().fractions()](https://observablehq.com/@spencermountain/compromise-values)** - things like `1/3rd` - **[.numbers().toText()](https://observablehq.com/@spencermountain/compromise-values)** - convert number to `five` or `fifth` @@ -618,8 +624,17 @@ These are some helpful extensions: - **[.money().get()](https://observablehq.com/@spencermountain/compromise-values)** - retrieve the parsed amount(s) of money - **[.money().json()](https://observablehq.com/@spencermountain/compromise-values)** - currency + number info - **[.money().currency()](https://observablehq.com/@spencermountain/compromise-values)** - which currency the money is in -- **[.fractions()](https://observablehq.com/@spencermountain/compromise-values)** - like '2/3rds' +- **[.fractions()](https://observablehq.com/@spencermountain/compromise-values)** - like '2/3rds' or 'one out of five' + - **[.fractions().get()](https://observablehq.com/@spencermountain/compromise-values)** - simple numerator, denomenator data + - **[.fractions().json()](https://observablehq.com/@spencermountain/compromise-values)** - json method overloaded with fractions data + - **[.fractions().toDecimal()](https://observablehq.com/@spencermountain/compromise-values)** - '2/3' -> '0.66' + - **[.fractions().normalize()](https://observablehq.com/@spencermountain/compromise-values)** - 'four out of 10' -> '4/10' + - **[.fractions().toText()](https://observablehq.com/@spencermountain/compromise-values)** - '4/10' -> 'four tenths' + - **[.fractions().toPercentage()](https://observablehq.com/@spencermountain/compromise-values)** - '4/10' -> '40%' - **[.percentages()](https://observablehq.com/@spencermountain/compromise-values)** - like '2.5%' + - **[.fractions().get()](https://observablehq.com/@spencermountain/compromise-values)** - return the percentage number / 100 + - **[.fractions().json()](https://observablehq.com/@spencermountain/compromise-values)** - json overloaded with percentage information + - **[.fractions().toFraction()](https://observablehq.com/@spencermountain/compromise-values)** - '80%' -> '8/10' ##### Export @@ -726,7 +741,6 @@ this plugin creates a wrapper around the default sentence objects.

-
### Typescript @@ -760,7 +774,7 @@ or if you don't care about POS-tagging, you can use the tokenize-only build: (90 //you can see the text has no tags console.log(doc.has('#Noun')) //false - //but the whole api still works + //the rest of the api still works console.log(doc.has('my .* is .? named /^b[oa]rt/')) //true ``` @@ -860,7 +874,7 @@ or if you don't care about POS-tagging, you can use the tokenize-only build: (90 #### See Also: --   **[en-pos](https://github.com/finnlp/en-pos)** - very-clever javascript pos-tagger by *[Alex Corvi](https://github.com/alexcorvi)* +-   **[en-pos](https://github.com/finnlp/en-pos)** - very clever javascript pos-tagger *by [Alex Corvi](https://github.com/alexcorvi)* -   **[naturalNode](https://github.com/NaturalNode/natural)** - fancier statistical nlp in javascript -   **[compendium-js](https://github.com/Ulflander/compendium-js)** - POS and sentiment analysis in javascript -   **[nodeBox linguistics](https://www.nodebox.net/code/index.php/Linguistics)** - conjugation, inflection in javascript diff --git a/builds/compromise-tokenize.js b/builds/compromise-tokenize.js index b2841bcec..8e052cdd3 100644 --- a/builds/compromise-tokenize.js +++ b/builds/compromise-tokenize.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;rr?n:r)+1;if(Math.abs(r-n)>(i||100))return i||100;for(var o,s,a,u,c,h,l=[],f=0;f4)return r;u=s===(a=e[o-1])?0:1,c=l[d-1][o]+1,(h=l[d][o-1]+1)1&&o>1&&s===e[o-2]&&t[d-2]===a&&(h=l[d-2][o-2]+u)2&&void 0!==arguments[2]?arguments[2]:3;if(t===e)return 1;if(t.lengthe.fuzzy)return!0;if(!0===e.soft&&(i=B(e.word,t.root))>e.fuzzy)return!0}return e.word===t.clean||e.word===t.text||e.word===t.reduced}return void 0!==e.tag?!0===t.tags[e.tag]:void 0!==e.method?"function"==typeof t[e.method]&&!0===t[e.method]():void 0!==e.regex?e.regex.test(t.clean):void 0!==e.fastOr?e.fastOr.hasOwnProperty(t.reduced)||e.fastOr.hasOwnProperty(t.text):void 0!==e.choices&&("and"===e.operator?e.choices.every((function(e){return S(t,e,r,n)})):e.choices.some((function(e){return S(t,e,r,n)})))},I=S=function(t,e,r,n){var i=z(t,e,r,n);return!0===e.negative?!i:i},D={},_={doesMatch:function(t,e,r){return I(this,t,e,r)},isAcronym:function(){return b(this.text)},isImplicit:function(){return""===this.text&&Boolean(this.implicit)},isKnown:function(){return Object.keys(this.tags).some((function(t){return!0!==D[t]}))},setRoot:function(t){var e=t.transforms,r=this.implicit||this.clean;if(this.tags.Plural&&(r=e.toSingular(r,t)),this.tags.Verb&&!this.tags.Negative&&!this.tags.Infinitive){var n=null;this.tags.PastTense?n="PastTense":this.tags.Gerund?n="Gerund":this.tags.PresentTense?n="PresentTense":this.tags.Participle?n="Participle":this.tags.Actor&&(n="Actor"),r=e.toInfinitive(r,t,n)}this.root=r}},M=/[\s-]/,G=/^[A-Z-]+$/,q={textOut:function(t,e,r){t=t||{};var n=this.text,i=this.pre,o=this.post;return!0===t.reduced&&(n=this.reduced||""),!0===t.root&&(n=this.root||""),!0===t.implicit&&this.implicit&&(n=this.implicit||""),!0===t.normal&&(n=this.clean||this.text||""),!0===t.root&&(n=this.root||this.reduced||""),!0===t.unicode&&(n=p(n)),!0===t.titlecase&&(this.tags.ProperNoun&&!this.titleCase()||(this.tags.Acronym?n=n.toUpperCase():G.test(n)&&!this.tags.Acronym&&(n=n.toLowerCase()))),!0===t.lowercase&&(n=n.toLowerCase()),!0===t.acronyms&&this.tags.Acronym&&(n=n.replace(/\./g,"")),!0!==t.whitespace&&!0!==t.root||(i="",o=" ",!1!==M.test(this.post)&&!t.last||this.implicit||(o="")),!0!==t.punctuation||t.root||(!0===this.hasPost(".")?o="."+o:!0===this.hasPost("?")?o="?"+o:!0===this.hasPost("!")?o="!"+o:!0===this.hasPost(",")?o=","+o:!0===this.hasEllipses()&&(o="..."+o)),!0!==e&&(i=""),!0!==r&&(o=""),!0===t.abbreviations&&this.tags.Abbreviation&&(o=o.replace(/^\./,"")),i+n+o}},L={Auxiliary:1,Possessive:1},W=function(t,e){var r=Object.keys(t.tags),n=e.tags;return r=r.sort((function(t,e){return L[e]||!n[e]?-1:n[e]?n[t]?n[t].lineage.length>n[e].lineage.length?1:n[t].isA.length>n[e].isA.length?-1:0:0:1}))},R={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},H={json:function(t,e){t=t||{};var r={};return(t=Object.assign({},R,t)).text&&(r.text=this.text),t.normal&&(r.normal=this.clean),t.tags&&(r.tags=Object.keys(this.tags)),t.clean&&(r.clean=this.clean),(t.id||t.offset)&&(r.id=this.id),t.implicit&&null!==this.implicit&&(r.implicit=this.implicit),t.whitespace&&(r.pre=this.pre,r.post=this.post),t.bestTag&&(r.bestTag=W(this,e)[0]),r}},U=Object.assign({},N,$,_,q,H);function Q(){return"undefined"!=typeof window&&window.document}var Z=function(t,e){for(t=t.toString();t.length0&&void 0!==arguments[0]?arguments[0]:"";e(this,t),r=String(r);var n=F(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=h(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(t,[{key:"set",value:function(t){var e=F(t);return this.text=e.text,this.clean=e.clean,this}}]),t}();st.prototype.clone=function(){var t=new st(this.text);return t.pre=this.pre,t.post=this.post,t.clean=this.clean,t.reduced=this.reduced,t.root=this.root,t.implicit=this.implicit,t.tags=Object.assign({},this.tags),t},Object.assign(st.prototype,U),Object.assign(st.prototype,ot);var at=st,ut={terms:function(t){if(0===this.length)return[];if(this.cache.terms)return void 0!==t?this.cache.terms[t]:this.cache.terms;for(var e=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof t&&(t="normal"===t?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,normal:!0}:"reduced"===t?{punctuation:!1,titlecase:!1,lowercase:!0,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"implicit"===t?{punctuation:!0,implicit:!0,whitespace:!0,trim:!0}:"root"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),i=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(i=!0);var o=n.reduce((function(o,s,a){if(0===a&&""===s.text&&null!==s.implicit&&!t.implicit)return o;t.last=r&&a===n.length-1;var u=!0,c=!0;return!1===i&&(0===a&&e&&(u=!1),a===n.length-1&&r&&(c=!1)),o+s.textOut(t,u,c)}),"");return!0===i&&r&&(o=ct(o)),!0===t.trim&&(o=o.trim()),o}},lt={trim:function(){var t=this.terms();if(t.length>0){t[0].pre=t[0].pre.replace(/^\s+/,"");var e=t[t.length-1];e.post=e.post.replace(/\s+$/,"")}return this}},ft=/[.?!]\s*$/,pt=function(t,e){e[0].pre=t[0].pre;var r,n,i=t[t.length-1],o=e[e.length-1];o.post=(r=i.post,n=o.post,ft.test(n)?n+r.match(/\s*$/):r),i.post="",""===i.post&&(i.post+=" ")},dt=function(t,e,r){var n=t.terms(),i=e.terms();pt(n,i),function(t,e,r){var n=t[t.length-1],i=e[e.length-1],o=n.next;n.next=e[0].id,i.next=o,o&&(r.get(o).prev=i.id);var s=t[0].id;s&&(e[0].prev=s)}(n,i,t.pool);var o,s=[t],a=t.start,u=[r];return(u=u.concat(r.parents())).forEach((function(t){var e=t.list.filter((function(t){return t.hasId(a)}));s=s.concat(e)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length})),t.cache={},t},vt=/ /,mt=function(t,e,r){var n=t.start,i=e.terms();!function(t){var e=t[t.length-1];!1===vt.test(e.post)&&(e.post+=" ")}(i),function(t,e,r){var n=r[r.length-1];n.next=t.start;var i=t.pool,o=i.get(t.start);o.prev&&(i.get(o.prev).next=e.start),r[0].prev=t.terms(0).prev,t.terms(0).prev=n.id}(t,e,i);var o,s=[t],a=[r];return(a=a.concat(r.parents())).forEach((function(t){var r=t.list.filter((function(t){return t.hasId(n)||t.hasId(e.start)}));s=s.concat(r)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length,t.start===n&&(t.start=e.start),t.cache={}})),t},gt=function(t,e){var r=e.pool(),n=t.terms(),i=r.get(n[0].prev)||{},o=r.get(n[n.length-1].next)||{};n[0].implicit&&i.implicit&&(i.set(i.implicit),i.post+=" "),function(t,e,r,n){var i=t.parents();i.push(t),i.forEach((function(t){var i=t.list.find((function(t){return t.hasId(e)}));i&&(i.length-=r,i.start===e&&(i.start=n.id),i.cache={})})),t.list=t.list.filter((function(t){return!(!t.start||!t.length)}))}(e,t.start,t.length,o),i&&(i.next=o.id),o&&(o.prev=i.id)},bt={append:function(t,e){return dt(this,t,e),this},prepend:function(t,e){return mt(this,t,e),this},delete:function(t){return gt(this,t),this},replace:function(t,e){var r=this.length;dt(this,t,e);var n=this.buildFrom(this.start,this.length);n.length=r,gt(n,e)},splitOn:function(t){var e=this.terms(),r={before:null,match:null,after:null},n=e.findIndex((function(e){return e.id===t.start}));if(-1===n)return r;var i=e.slice(0,n);i.length>0&&(r.before=this.buildFrom(i[0].id,i.length));var o=e.slice(n,n+t.length);o.length>0&&(r.match=this.buildFrom(o[0].id,o.length));var s=e.slice(n+t.length,e.length);return s.length>0&&(r.after=this.buildFrom(s[0].id,s.length,this.pool)),r}},yt={json:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r={};return t.text&&(r.text=this.text()),t.normal&&(r.normal=this.text("normal")),t.clean&&(r.clean=this.text("clean")),t.reduced&&(r.reduced=this.text("reduced")),t.implicit&&(r.implicit=this.text("implicit")),t.root&&(r.root=this.text("root")),t.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),t.terms&&(!0===t.terms&&(t.terms={}),r.terms=this.terms().map((function(r){return r.json(t.terms,e)}))),r}},At={lookAhead:function(t){t||(t=".*");var e=this.pool,r=[],n=this.terms();return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(t)},lookBehind:function(t){t||(t=".*");var e=this.pool,r=[];return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.prev))}(e.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(t)}},wt=Object.assign({},ut,ht,lt,bt,yt,At),xt=function(t,e){if(0===e.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},Pt=T((function(t,e){e.getGreedy=function(t,e){for(var r=Object.assign({},t.regs[t.r],{start:!1,end:!1}),n=t.t;t.t1&&void 0!==arguments[1]?arguments[1]:0,n=t.regs[t.r],i=!1,o=0;oe&&(e=r.length),n}))&&e},e.getGroup=function(t,e,r){if(t.groups[t.groupId])return t.groups[t.groupId];var n=t.terms[e].id;return t.groups[t.groupId]={group:String(r),start:n,length:0},t.groups[t.groupId]}})),jt=function(t,e,r,n){for(var i={t:0,terms:t,r:0,regs:e,groups:{},start_i:r,phrase_length:n,hasGroup:!1,groupId:null,previousGroup:null};i.ri.t)return null;if(!0===o.end&&i.start_i+i.t!==n)return null}if(!0===i.hasGroup){var l=Pt.getGroup(i,c,o.named);i.t>1&&o.greedy?l.length+=i.t-c:l.length++}}else if(!0!==o.optional){if(i.terms[i.t].isImplicit()&&e[i.r-1]&&i.terms[i.t+1]){if(i.terms[i.t-1]&&i.terms[i.t-1].implicit===e[i.r-1].word)return null;if(i.terms[i.t+1].doesMatch(o,i.start_i+i.t,i.phrase_length)){i.t+=2;continue}}return null}}else{var f=Pt.greedyTo(i,e[i.r+1]);if(void 0!==o.min&&f-i.to.max){i.t=i.t+o.max;continue}if(null===f)return null;!0===i.hasGroup&&(Pt.getGroup(i,i.t,o.named).length=f-i.t),i.t=f}}return{match:i.terms.slice(0,i.t),groups:i.groups}},Et=function(t,e,r){if(!r||0===r.length)return r;if(e.some((function(t){return t.end}))){var n=t[t.length-1];r=r.filter((function(t){return-1!==t.match.indexOf(n)}))}return r},Ot=/\{([0-9]+,?[0-9]*)\}/,kt=/&&/,Ct=new RegExp(/^<(\S+)>/),Ft=function(t){return t[t.length-1]},Tt=function(t){return t[0]},Nt=function(t){return t.substr(1)},$t=function(t){return t.substr(0,t.length-1)},Vt=function(t){return t=Nt(t),t=$t(t)},Bt=function t(e){for(var r,n={},i=0;i<2;i+=1){if("$"===Ft(e)&&(n.end=!0,e=$t(e)),"^"===Tt(e)&&(n.start=!0,e=Nt(e)),("["===Tt(e)||"]"===Ft(e))&&(n.named=!0,"["===Tt(e)?n.groupType="]"===Ft(e)?"single":"start":n.groupType="end",e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Tt(e))){var o=Ct.exec(e);o.length>=2&&(n.named=o[1],e=e.replace(o[0],""))}if("+"===Ft(e)&&(n.greedy=!0,e=$t(e)),"*"!==e&&"*"===Ft(e)&&"\\*"!==e&&(n.greedy=!0,e=$t(e)),"?"===Ft(e)&&(n.optional=!0,e=$t(e)),"!"===Tt(e)&&(n.negative=!0,e=Nt(e)),"("===Tt(e)&&")"===Ft(e)){kt.test(e)?(n.choices=e.split(kt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Nt(n.choices[0]);var s=n.choices.length-1;n.choices[s]=$t(n.choices[s]),n.choices=n.choices.map((function(t){return t.trim()})),n.choices=n.choices.filter((function(t){return t})),n.choices=n.choices.map((function(e){return e.split(/ /g).map(t)})),e=""}if("/"===Tt(e)&&"/"===Ft(e))return e=Vt(e),n.regex=new RegExp(e),n;if("~"===Tt(e)&&"~"===Ft(e))return e=Vt(e),n.soft=!0,n.word=e,n}return!0===Ot.test(e)&&(e=e.replace(Ot,(function(t,e){var r=e.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,n.optional=!0,""}))),"#"===Tt(e)?(n.tag=Nt(e),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===Tt(e)?(n.method=Nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),n.word=e.toLowerCase()),n)},St=function(t){for(var e,r=!1,n=-1,i=0;i1&&void 0!==arguments[1]?arguments[1]:{},r=t.filter((function(t){return t.groupType})).length;return r>0&&(t=St(t)),e.fuzzy||(t=zt(t)),t},Dt=/[^[a-z]]\//g,_t=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mt=function(t){var e=t.split(/([\^\[\!]*(?:<\S+>)?\(.*?\)[?+*]*\]?\$?)/);return e=e.map((function(t){return t.trim()})),Dt.test(t)&&(e=function(t){return t.forEach((function(e,r){var n=e.match(Dt);null!==n&&1===n.length&&t[r+1]&&(t[r]+=t[r+1],t[r+1]="",null!==(n=t[r].match(Dt))&&1===n.length&&(t[r]+=t[r+2],t[r+2]=""))})),t=t.filter((function(t){return t}))}(e)),e},Gt=function(t){var e=[];return t.forEach((function(t){if(/\(.*\)/.test(t))e.push(t);else{var r=t.split(" ");r=r.filter((function(t){return t})),e=e.concat(r)}})),e},qt=function(t){return[{choices:t.map((function(t){return[{word:t}]})),operator:"or"}]},Lt=function(t){if(!t||!t.list||!t.list[0])return[];var e=[];return t.list.forEach((function(t){var r=[];t.terms().forEach((function(t){r.push(t.id)})),e.push(r)})),[{idBlocks:e}]},Wt=function(t,e){return!0===e.fuzzy&&(e.fuzzy=.85),"number"==typeof e.fuzzy&&(t=t.map((function(t){return e.fuzzy>0&&t.word&&(t.fuzzy=e.fuzzy),t.choices&&t.choices.forEach((function(t){t.forEach((function(t){t.fuzzy=e.fuzzy}))})),t}))),t},Rt=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==e||""===e)return[];if("object"===t(e)){if(_t(e)){if(0===e.length||!e[0])return[];if("object"===t(e[0]))return e;if("string"==typeof e[0])return qt(e)}return e&&"Doc"===e.isA?Lt(e):[]}"number"==typeof e&&(e=String(e));var n=Mt(e);return n=(n=Gt(n)).map((function(t){return Bt(t)})),n=It(n,r),n=Wt(n,r)},Ht=function(t,e){for(var r=[],n=e[0].idBlocks,i=function(e){n.forEach((function(n){0!==n.length?n.every((function(r,n){return o=e,t[e+n].id===r}))&&(r.push({match:t.slice(e,e+n.length)}),e+=n.length-1):o=e})),o=e},o=0;o2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e&&(e=Rt(e)),!0===xt(t,e))return[];var n=e.filter((function(t){return!0!==t.optional&&!0!==t.negative})).length,i=t.terms(),o=[];if(e[0].idBlocks){var s=Ht(i,e);if(s&&s.length>0)return Et(i,e,s)}if(!0===e[0].start){var a=jt(i,e,0,i.length);return a&&a.match&&a.match.length>0&&(a.match=a.match.filter((function(t){return t})),o.push(a)),Et(i,e,o)}for(var u=0;ui.length);u+=1){var c=jt(i.slice(u),e,u,i.length);if(c&&c.match&&c.match.length>0&&(u+=c.match.length-1,c.match=c.match.filter((function(t){return t})),o.push(c),!0===r))return Et(i,e,o)}return Et(i,e,o)},Qt=function(t,e){var r={};Ut(t,e).forEach((function(t){t.match.forEach((function(t){r[t.id]=!0}))}));var n=t.terms(),i=[],o=[];return n.forEach((function(t){!0!==r[t.id]?o.push(t):o.length>0&&(i.push(o),o=[])})),o.length>0&&i.push(o),i},Zt={match:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ut(this,t,r);return n=n.map((function(t){var r=t.match,n=t.groups,i=e.buildFrom(r[0].id,r.length,n);return i.cache.terms=r,i}))},has:function(t){return Ut(this,t,!0).length>0},not:function(t){var e=this,r=Qt(this,t);return r=r.map((function(t){return e.buildFrom(t[0].id,t.length)}))},canBe:function(t,e){for(var r=this,n=[],i=this.terms(),o=!1,s=0;s0})).map((function(t){return r.buildFrom(t[0].id,t.length)}))}},Jt=function t(r,n,i){e(this,t),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Jt.prototype.buildFrom=function(t,e,r){var n=new Jt(t,e,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Jt.prototype,Zt),Object.assign(Jt.prototype,wt);var Yt={term:"terms"};Object.keys(Yt).forEach((function(t){return Jt.prototype[t]=Jt.prototype[Yt[t]]}));var Kt=Jt,Xt=function(){function t(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this,t),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(t,[{key:"add",value:function(t){return this.words[t.id]=t,this}},{key:"get",value:function(t){return this.words[t]}},{key:"remove",value:function(t){delete this.words[t]}},{key:"merge",value:function(t){return Object.assign(this.words,t.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),t}();Xt.prototype.clone=function(){var t=this,e=Object.keys(this.words).reduce((function(e,r){var n=t.words[r].clone();return e[n.id]=n,e}),{});return new Xt(e)};var te=Xt,ee=function(t){t.forEach((function(e,r){r>0&&(e.prev=t[r-1].id),t[r+1]&&(e.next=t[r+1].id)}))},re=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,ne=/\S/,ie=/[ .][A-Z]\.? *$/i,oe=/(?:\u2026|\.{2,}) *$/,se=/((?:\r?\n|\r)+)/,ae=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,ue=/^\s+/,ce=function(t,e){if(!0===ie.test(t))return!1;if(!0===oe.test(t))return!1;if(!1===ae.test(t))return!1;var r=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!e.hasOwnProperty(n)},he=function(t,e){var r=e.cache.abbreviations;t=t||"";var n=[],i=[];if(!(t=String(t))||"string"!=typeof t||!1===ne.test(t))return n;for(var o=function(t){for(var e=[],r=t.split(se),n=0;n0&&(n.push(c),i[u]="")}if(0===n.length)return[t];for(var h=1;h0?(e[e.length-1]+=o,e.push(a)):e.push(o+a),o=""):o+=a}return o&&(0===e.length&&(e[0]=""),e[e.length-1]+=o),e=(e=function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof t&&("number"==typeof t?t=String(t):ye(t)&&(n=t)),n=(n=n||he(t,e)).map((function(t){return be(t)})),r=r||new te;var i=n.map((function(t){t=t.map((function(t){var e=new at(t);return r.add(e),e})),ee(t);var e=new Kt(t[0].id,t.length,r);return e.cache.terms=t,e}));return i},we=function(t,e){var r=new te;return t.map((function(t,n){var i=t.terms.map((function(i,o){var s=new at(i.text);return s.pre=void 0!==i.pre?i.pre:"",void 0===i.post&&(i.post=" ",o>=t.terms.length-1&&(i.post=". ",n>=t.terms.length-1&&(i.post="."))),s.post=void 0!==i.post?i.post:" ",i.tags&&i.tags.forEach((function(t){return s.tag(t,"",e)})),r.add(s),s}));return ee(i),new Kt(i[0].id,i.length,r)}))},xe={},Pe=["Person","Place","Organization"],je={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:Pe},Actor:{isA:"Noun",notA:Pe},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:Pe},Demonym:{isA:["Noun","ProperNoun"],notA:Pe},Possessive:{isA:"Noun"}},Ee={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"PastTense"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"},Auxiliary:{notA:["Noun","Adjective","Value"]}},Oe={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},ke=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],Ce={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["AtMention"]},Determiner:{notA:ke},Conjunction:{notA:ke},Preposition:{notA:ke},QuestionWord:{notA:["Determiner"]},Currency:{isA:["Noun"]},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Fe={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},Te=function(t){return Object.keys(t).forEach((function(e){t[e].color?t[e].color=t[e].color:Fe[e]?t[e].color=Fe[e]:t[e].isA.some((function(r){return!!Fe[r]&&(t[e].color=Fe[r],!0)}))})),t},Ne=function(t){return Object.keys(t).forEach((function(e){for(var r=t[e],n=r.isA.length,i=0;i1&&(r.hasCompound[o[0]]=!0),"Singular"===e){var s=i.toPlural(t,r);n[s]=n[s]||"Plural"}if("Infinitive"===e)for(var a=i.conjugate(t,r),u=Object.keys(a),c=0;c1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&"number"!=typeof e&&null!==e||(e={group:e});var r=Rt(t,e);if(0===r.length)return this.buildFrom([]);if(!1===Je(this,r))return this.buildFrom([]);var n=this.list.reduce((function(t,e){return t.concat(e.match(r))}),[]);return void 0!==e.group&&null!==e.group&&""!==e.group?this.buildFrom(n).groups(e.group):this.buildFrom(n)},e.not=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e);if(0===r.length||!1===Je(this,r))return this;var n=this.list.reduce((function(t,e){return t.concat(e.not(r))}),[]);return this.buildFrom(n)},e.matchOne=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e);if(!1===Je(this,r))return this.buildFrom([]);for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e);if(!1===Je(this,r))return this.buildFrom([]);var n=this.list.filter((function(t){return!0===t.has(r)}));return this.buildFrom(n)},e.ifNo=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e),n=this.list.filter((function(t){return!1===t.has(r)}));return this.buildFrom(n)},e.has=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e);return!1!==Je(this,r)&&this.list.some((function(t){return!0===t.has(r)}))},e.lookAhead=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t||(t=".*");var r=Rt(t,e),n=[];return this.list.forEach((function(t){n=n.concat(t.lookAhead(r))})),n=n.filter((function(t){return t})),this.buildFrom(n)},e.lookAfter=e.lookAhead,e.lookBehind=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t||(t=".*");var r=Rt(t,e),n=[];return this.list.forEach((function(t){n=n.concat(t.lookBehind(r))})),n=n.filter((function(t){return t})),this.buildFrom(n)},e.lookBefore=e.lookBehind,e.before=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e),n=this.if(r).list,i=n.map((function(t){var e=t.terms().map((function(t){return t.id})),n=t.match(r)[0],i=e.indexOf(n.start);return 0===i||-1===i?null:t.buildFrom(t.start,i)}));return i=i.filter((function(t){return null!==t})),this.buildFrom(i)},e.after=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Rt(t,e),n=this.if(r).list,i=n.map((function(t){var e=t.terms(),n=e.map((function(t){return t.id})),i=t.match(r)[0],o=n.indexOf(i.start);if(-1===o||!e[o+i.length])return null;var s=e[o+i.length].id,a=t.length-o-i.length;return t.buildFrom(s,a)}));return i=i.filter((function(t){return null!==t})),this.buildFrom(i)},e.hasAfter=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookAfter(t,e).found}))},e.hasBefore=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookBefore(t,e).found}))}})),Ke=function(t,e,r,n){var i=[];"string"==typeof t&&(i=t.split(" ")),e.list.forEach((function(o){var s=o.terms();!0===r&&(s=s.filter((function(r){return r.canBe(t,e.world)}))),s.forEach((function(r,o){i.length>1?i[o]&&"."!==i[o]&&r.tag(i[o],n,e.world):r.tag(t,n,e.world)}))}))},Xe={tag:function(t,e){return t?(Ke(t,this,!1,e),this):this},tagSafe:function(t,e){return t?(Ke(t,this,!0,e),this):this},unTag:function(t,e){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(t,e,r.world)}))})),this},canBe:function(t){if(!t)return this;var e=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(t,e))}),[]);return this.buildFrom(r)}},tr={map:function(e){var r=this;if(!e)return this;var n=this.list.map((function(t,n){var i=r.buildFrom([t]);i.from=null;var o=e(i,n);return o&&o.list&&o.list[0]?o.list[0]:o}));return 0===(n=n.filter((function(t){return t}))).length?this.buildFrom(n):"object"!==t(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(t,e){var r=this;return t?(this.list.forEach((function(n,i){var o=r.buildFrom([n]);!0===e&&(o.from=null),t(o,i)})),this):this},filter:function(t){var e=this;if(!t)return this;var r=this.list.filter((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return this.buildFrom(r)},find:function(t){var e=this;if(!t)return this;var r=this.list.find((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return r?this.buildFrom([r]):void 0},some:function(t){var e=this;return t?this.list.some((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)})):this},random:function(t){if(!this.found)return this;var e=Math.floor(Math.random()*this.list.length);if(void 0===t){var r=[this.list[e]];return this.buildFrom(r)}return e+t>this.length&&(e=(e=this.length-t)<0?0:e),this.slice(e,e+t)}},er=function(t){return t.split(/[ -]/g)},rr=function(t,e,r){for(var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return t.forEach((function(t,n){var i=!0;void 0!==e[n]&&(i=e[n]),t=(t=(t||"").toLowerCase()).replace(/[,;.!?]+$/,"");var o=er(t).map((function(t){return t.trim()}));r[o[0]]=r[o[0]]||{},1===o.length?r[o[0]].value=i:(r[o[0]].more=r[o[0]].more||[],r[o[0]].more.push({rest:o.slice(1),value:i}))})),r}(t,e),i=[],o=function(t){for(var e=r.list[t],o=e.terms().map((function(t){return t.reduced})),s=function(t){void 0!==n[o[t]]&&(void 0!==n[o[t]].more&&n[o[t]].more.forEach((function(r){void 0!==o[t+r.rest.length]&&(!0===r.rest.every((function(e,r){return e===o[t+r+1]}))&&i.push({id:e.terms()[t].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[o[t]].value&&i.push({id:e.terms()[t].id,value:n[o[t]].value,length:1}))},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(i){var o,s=e;if("function"==typeof e&&(s=e(i)),s&&"object"===t(s)&&"Doc"===s.isA)o=s.list,r.pool().merge(s.pool());else{if("string"!=typeof s)return;!1!==n.keepCase&&i.terms(0).isTitleCase()&&(s=or(s)),o=Ae(s,r.world,r.pool());var a=r.buildFrom(o);a.tagger(),o=a.list}if(!0===n.keepTags){var u=i.json({terms:{tags:!0}}).terms;o[0].terms().forEach((function(t,e){u[e]&&t.tagSafe(u[e].tags,"keptTag",r.world)}))}i.replace(o[0],r)})),this):this.delete()},replace:function(t,e,r){return void 0===e?this.replaceWith(t,r):(this.match(t).replaceWith(e,r),this)}},ar=T((function(t,e){var r=function(t){return t&&"[object Object]"===Object.prototype.toString.call(t)},n=function(t,e){var r=Ae(t,e.world)[0],n=e.buildFrom([r]);return n.tagger(),e.list=n.list,e};e.append=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e?this.found?(this.uncache(),this.list.forEach((function(n){var i;r(e)&&"Doc"===e.isA?i=e.list[0].clone():"string"==typeof e&&(i=Ae(e,t.world,t.pool())[0]),t.buildFrom([i]).tagger(),n.append(i,t)})),this):n(e,this):this},e.insertAfter=e.append,e.insertAt=e.append,e.prepend=function(t){var e=this;return t?this.found?(this.uncache(),this.list.forEach((function(n){var i;r(t)&&"Doc"===t.isA?i=t.list[0].clone():"string"==typeof t&&(i=Ae(t,e.world,e.pool())[0]),e.buildFrom([i]).tagger(),n.prepend(i,e)})),this):n(t,this):this},e.insertBefore=e.prepend,e.concat=function(){this.uncache();for(var t=this.list.slice(0),e=0;e0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof e&&this.list[e])return this.list[e].json(r);!0===(e=n(e)).root&&this.list.forEach((function(e){e.terms().forEach((function(e){null===e.root&&e.setRoot(t.world)}))}));var i=this.list.map((function(r){return r.json(e,t.world)}));if((e.terms.offset||e.offset||e.terms.index||e.index)&&hr(this,i,e),e.frequency||e.freq||e.count){var o={};this.list.forEach((function(t){var e=t.text("reduced");o[e]=o[e]||0,o[e]+=1})),this.list.forEach((function(t,e){i[e].count=o[t.text("reduced")]}))}if(e.unique){var s={};i=i.filter((function(t){return!0!==s[t.reduced]&&(s[t.reduced]=!0,!0)}))}return i},e.data=e.json})),fr=T((function(t){var e="",r=function(t,e){for(t=t.toString();t.lengthe.count?-1:t.countn?1:0},length:function(t,e){var r=t.text().trim().length,n=e.text().trim().length;return rn?-1:0},wordCount:function(t,e){var r=t.wordCount(),n=e.wordCount();return rn?-1:0}};vr.alphabetical=vr.alpha,vr.wordcount=vr.wordCount;var mr={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},gr={sort:function(t){return"freq"===(t=t||"alpha")||"frequency"===t||"topk"===t?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(e=this).list.forEach((function(t){var e=t.text(n);r[e]=r[e]||0,r[e]+=1})),e.list.sort((function(t,e){var i=r[t.text(n)],o=r[e.text(n)];return io?-1:0})),e):mr.hasOwnProperty(t)?function(t){var e={};return t.json({terms:{offset:!0}}).forEach((function(t){e[t.terms[0].id]=t.terms[0].offset.start})),t.list=t.list.sort((function(t,r){return e[t.start]>e[r.start]?1:e[t.start]0){i+=s;continue}}if(void 0===r[o]||!0!==r.hasOwnProperty(o))if(o===t[i].reduced||!0!==r.hasOwnProperty(t[i].reduced)){if(!0===Sr.test(o)){var a=o.replace(Sr,"");!0===r.hasOwnProperty(a)&&t[i].tag(r[a],"noprefix-lexicon",e)}}else t[i].tag(r[t[i].reduced],"lexicon",e);else t[i].tag(r[o],"lexicon",e)}return t},Dr=function(t){var e=t.termList();return Ir(e,t.world),t.world.taggers.forEach((function(e){e(t)})),t},_r=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){!0===t.tags.Abbreviation&&t.next&&(t.post=t.post.replace(/^\./,""));var e=t.text.replace(/\./,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){t.post=t.post.replace(/^\./,""),t.post="."+t.post})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,t.prototype.abbreviations=function(t){var e=this.match("#Abbreviation");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Mr=/\./,Gr=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");e=e.split("").join("."),!1===Mr.test(t.post)&&(e+="."),t.set(e)})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,r.prototype.strip=r.prototype.stripPeriods,t.prototype.acronyms=function(t){var e=this.match("#Acronym");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},qr=function(t){return t.prototype.clauses=function(e){var r=this.if("@hasComma").notIf("@hasComma @hasComma").notIf("@hasComma . .? (and|or) .").notIf("(#City && @hasComma) #Country").notIf("(#WeekDay && @hasComma) #Date").notIf("(#Date && @hasComma) #Year").notIf("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(r),i=n.quotations(),o=(n=n.splitOn(i)).parentheses(),s=(n=n.splitOn(o)).if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction"),a=(n=n.splitBefore(s)).if("if .{2,9} then .").match("then"),u=(n=(n=(n=(n=(n=(n=n.splitBefore(a)).splitBefore("as well as .")).splitBefore("such as .")).splitBefore("in addition to .")).splitAfter("@hasSemicolon")).splitAfter("@hasDash")).filter((function(t){return t.wordCount()>5&&t.match("#Verb+").length>=2}));if(u.found){var c=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(c.eq(0))}return"number"==typeof e&&(n=n.get(e)),new t(n.list,this,this.world)},t},Lr=function(t){var r=function(t){i(o,t);var r=u(o);function o(t,n,i){var s;return e(this,o),(s=r.call(this,t,n,i)).contracted=null,s}return n(o,[{key:"expand",value:function(){return this.list.forEach((function(t){var e=t.terms(),r=e[0].isTitleCase();e.forEach((function(t,r){t.set(t.implicit||t.text),t.implicit=void 0,r1&&void 0!==arguments[1]?arguments[1]:{},n=this.match("(#City && @hasComma) (#Region|#Country)"),i=this.not(n).splitAfter("@hasComma"),o=(i=i.concat(n)).quotations();return o.found&&(i=i.splitOn(o.eq(0))),i=i.match("#Noun+ (of|by)? the? #Noun+?"),!0!==e.keep_anaphora&&(i=(i=(i=(i=i.not("#Pronoun")).not("(there|these)")).not("(#Month|#WeekDay)")).not("(my|our|your|their|her|his)")),i=i.not("(of|for|by|the)$"),"number"==typeof t&&(i=i.get(t)),new r(i.list,this,this.world)},t},on=/\(/,sn=/\)/,an=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"unwrap",value:function(){return this.list.forEach((function(t){var e=t.terms(0);e.pre=e.pre.replace(on,"");var r=t.lastTerm();r.post=r.post.replace(sn,"")})),this}}]),o}(t);return t.prototype.parentheses=function(t){var e=[];return this.list.forEach((function(t){for(var r=t.terms(),n=0;n0}}),Object.defineProperty(this,"length",{get:function(){return o.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(t,[{key:"tagger",value:function(){return Dr(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),t}();kn.prototype.buildFrom=function(t){return t=t.map((function(t){return t.clone(!0)})),new kn(t,this,this.world)},kn.prototype.fromText=function(t){var e=Ae(t,this.world,this.pool());return this.buildFrom(e)},Object.assign(kn.prototype,On.misc),Object.assign(kn.prototype,On.selections),En(kn);var Cn={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(Cn).forEach((function(t){return kn.prototype[t]=kn.prototype[Cn[t]]}));var Fn=kn;return function t(e){var r=e,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0;e&&r.addWords(e);var n=Ae(t,r),i=new Fn(n,null,r);return i.tagger(),i};return n.tokenize=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,n=r;e&&((n=n.clone()).words={},n.addWords(e));var i=Ae(t,n),o=new Fn(i,null,n);return(e||o.world.taggers.length>0)&&Dr(o),o},n.extend=function(t){return t(Fn,r,this,Kt,at,te),this},n.fromJSON=function(t){var e=we(t,r);return new Fn(e,null,r)},n.clone=function(){return t(r.clone())},n.verbose=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(t),this},n.world=function(){return r},n.parseMatch=function(t,e){return Rt(t,e)},n.version="13.9.3",n.import=n.load,n.plugin=n.extend,n}(new Ue)})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;rr?n:r)+1;if(Math.abs(r-n)>(i||100))return i||100;for(var o,s,a,u,c,h,l=[],f=0;f4)return r;u=s===(a=e[o-1])?0:1,c=l[d-1][o]+1,(h=l[d][o-1]+1)1&&o>1&&s===e[o-2]&&t[d-2]===a&&(h=l[d-2][o-2]+u)2&&void 0!==arguments[2]?arguments[2]:3;if(t===e)return 1;if(t.lengthe.fuzzy)return!0;if(!0===e.soft&&(i=B(e.word,t.root))>e.fuzzy)return!0}return e.word===t.clean||e.word===t.text||e.word===t.reduced}return void 0!==e.tag?!0===t.tags[e.tag]:void 0!==e.method?"function"==typeof t[e.method]&&!0===t[e.method]():void 0!==e.regex?e.regex.test(t.clean):void 0!==e.fastOr?e.fastOr.hasOwnProperty(t.reduced)||e.fastOr.hasOwnProperty(t.text):void 0!==e.choices&&("and"===e.operator?e.choices.every((function(e){return S(t,e,r,n)})):e.choices.some((function(e){return S(t,e,r,n)})))},z=S=function(t,e,r,n){var i=I(t,e,r,n);return!0===e.negative?!i:i},D={},_={doesMatch:function(t,e,r){return z(this,t,e,r)},isAcronym:function(){return b(this.text)},isImplicit:function(){return""===this.text&&Boolean(this.implicit)},isKnown:function(){return Object.keys(this.tags).some((function(t){return!0!==D[t]}))},setRoot:function(t){var e=t.transforms,r=this.implicit||this.clean;if(this.tags.Plural&&(r=e.toSingular(r,t)),this.tags.Verb&&!this.tags.Negative&&!this.tags.Infinitive){var n=null;this.tags.PastTense?n="PastTense":this.tags.Gerund?n="Gerund":this.tags.PresentTense?n="PresentTense":this.tags.Participle?n="Participle":this.tags.Actor&&(n="Actor"),r=e.toInfinitive(r,t,n)}this.root=r}},M=/[\s-]/,G=/^[A-Z-]+$/,q={textOut:function(t,e,r){t=t||{};var n=this.text,i=this.pre,o=this.post;return!0===t.reduced&&(n=this.reduced||""),!0===t.root&&(n=this.root||""),!0===t.implicit&&this.implicit&&(n=this.implicit||""),!0===t.normal&&(n=this.clean||this.text||""),!0===t.root&&(n=this.root||this.reduced||""),!0===t.unicode&&(n=p(n)),!0===t.titlecase&&(this.tags.ProperNoun&&!this.titleCase()||(this.tags.Acronym?n=n.toUpperCase():G.test(n)&&!this.tags.Acronym&&(n=n.toLowerCase()))),!0===t.lowercase&&(n=n.toLowerCase()),!0===t.acronyms&&this.tags.Acronym&&(n=n.replace(/\./g,"")),!0!==t.whitespace&&!0!==t.root||(i="",o=" ",!1!==M.test(this.post)&&!t.last||this.implicit||(o="")),!0!==t.punctuation||t.root||(!0===this.hasPost(".")?o="."+o:!0===this.hasPost("?")?o="?"+o:!0===this.hasPost("!")?o="!"+o:!0===this.hasPost(",")?o=","+o:!0===this.hasEllipses()&&(o="..."+o)),!0!==e&&(i=""),!0!==r&&(o=""),!0===t.abbreviations&&this.tags.Abbreviation&&(o=o.replace(/^\./,"")),i+n+o}},L={Auxiliary:1,Possessive:1},W=function(t,e){var r=Object.keys(t.tags),n=e.tags;return r=r.sort((function(t,e){return L[e]||!n[e]?-1:n[e]?n[t]?n[t].lineage.length>n[e].lineage.length?1:n[t].isA.length>n[e].isA.length?-1:0:0:1}))},U={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},R={json:function(t,e){t=t||{};var r={};return(t=Object.assign({},U,t)).text&&(r.text=this.text),t.normal&&(r.normal=this.clean),t.tags&&(r.tags=Object.keys(this.tags)),t.clean&&(r.clean=this.clean),(t.id||t.offset)&&(r.id=this.id),t.implicit&&null!==this.implicit&&(r.implicit=this.implicit),t.whitespace&&(r.pre=this.pre,r.post=this.post),t.bestTag&&(r.bestTag=W(this,e)[0]),r}},H=Object.assign({},N,V,_,q,R);function Q(){return"undefined"!=typeof window&&window.document}var Z=function(t,e){for(t=t.toString();t.length0&&void 0!==arguments[0]?arguments[0]:"";e(this,t),r=String(r);var n=F(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=h(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(t,[{key:"set",value:function(t){var e=F(t);return this.text=e.text,this.clean=e.clean,this}}]),t}();st.prototype.clone=function(){var t=new st(this.text);return t.pre=this.pre,t.post=this.post,t.clean=this.clean,t.reduced=this.reduced,t.root=this.root,t.implicit=this.implicit,t.tags=Object.assign({},this.tags),t},Object.assign(st.prototype,H),Object.assign(st.prototype,ot);var at=st,ut={terms:function(t){if(0===this.length)return[];if(this.cache.terms)return void 0!==t?this.cache.terms[t]:this.cache.terms;for(var e=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof t&&(t="normal"===t?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,normal:!0}:"reduced"===t?{punctuation:!1,titlecase:!1,lowercase:!0,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"implicit"===t?{punctuation:!0,implicit:!0,whitespace:!0,trim:!0}:"root"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),i=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(i=!0);var o=n.reduce((function(o,s,a){if(0===a&&""===s.text&&null!==s.implicit&&!t.implicit)return o;t.last=r&&a===n.length-1;var u=!0,c=!0;return!1===i&&(0===a&&e&&(u=!1),a===n.length-1&&r&&(c=!1)),o+s.textOut(t,u,c)}),"");return!0===i&&r&&(o=ct(o)),!0===t.trim&&(o=o.trim()),o}},lt={trim:function(){var t=this.terms();if(t.length>0){t[0].pre=t[0].pre.replace(/^\s+/,"");var e=t[t.length-1];e.post=e.post.replace(/\s+$/,"")}return this}},ft=/[.?!]\s*$/,pt=function(t,e){e[0].pre=t[0].pre;var r,n,i=t[t.length-1],o=e[e.length-1];o.post=(r=i.post,n=o.post,ft.test(n)?n+r.match(/\s*$/):r),i.post="",""===i.post&&(i.post+=" ")},dt=function(t,e,r){var n=t.terms(),i=e.terms();pt(n,i),function(t,e,r){var n=t[t.length-1],i=e[e.length-1],o=n.next;n.next=e[0].id,i.next=o,o&&(r.get(o).prev=i.id);var s=t[0].id;s&&(e[0].prev=s)}(n,i,t.pool);var o,s=[t],a=t.start,u=[r];return(u=u.concat(r.parents())).forEach((function(t){var e=t.list.filter((function(t){return t.hasId(a)}));s=s.concat(e)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length})),t.cache={},t},vt=/ /,mt=function(t,e,r){var n=t.start,i=e.terms();!function(t){var e=t[t.length-1];!1===vt.test(e.post)&&(e.post+=" ")}(i),function(t,e,r){var n=r[r.length-1];n.next=t.start;var i=t.pool,o=i.get(t.start);o.prev&&(i.get(o.prev).next=e.start),r[0].prev=t.terms(0).prev,t.terms(0).prev=n.id}(t,e,i);var o,s=[t],a=[r];return(a=a.concat(r.parents())).forEach((function(t){var r=t.list.filter((function(t){return t.hasId(n)||t.hasId(e.start)}));s=s.concat(r)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length,t.start===n&&(t.start=e.start),t.cache={}})),t},gt=function(t,e){var r=e.pool(),n=t.terms(),i=r.get(n[0].prev)||{},o=r.get(n[n.length-1].next)||{};n[0].implicit&&i.implicit&&(i.set(i.implicit),i.post+=" "),function(t,e,r,n){var i=t.parents();i.push(t),i.forEach((function(t){var i=t.list.find((function(t){return t.hasId(e)}));i&&(i.length-=r,i.start===e&&(i.start=n.id),i.cache={})})),t.list=t.list.filter((function(t){return!(!t.start||!t.length)}))}(e,t.start,t.length,o),i&&(i.next=o.id),o&&(o.prev=i.id)},bt={append:function(t,e){return dt(this,t,e),this},prepend:function(t,e){return mt(this,t,e),this},delete:function(t){return gt(this,t),this},replace:function(t,e){var r=this.length;dt(this,t,e);var n=this.buildFrom(this.start,this.length);n.length=r,gt(n,e)},splitOn:function(t){var e=this.terms(),r={before:null,match:null,after:null},n=e.findIndex((function(e){return e.id===t.start}));if(-1===n)return r;var i=e.slice(0,n);i.length>0&&(r.before=this.buildFrom(i[0].id,i.length));var o=e.slice(n,n+t.length);o.length>0&&(r.match=this.buildFrom(o[0].id,o.length));var s=e.slice(n+t.length,e.length);return s.length>0&&(r.after=this.buildFrom(s[0].id,s.length,this.pool)),r}},yt={json:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r={};return t.text&&(r.text=this.text()),t.normal&&(r.normal=this.text("normal")),t.clean&&(r.clean=this.text("clean")),t.reduced&&(r.reduced=this.text("reduced")),t.implicit&&(r.implicit=this.text("implicit")),t.root&&(r.root=this.text("root")),t.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),t.terms&&(!0===t.terms&&(t.terms={}),r.terms=this.terms().map((function(r){return r.json(t.terms,e)}))),r}},At={lookAhead:function(t){t||(t=".*");var e=this.pool,r=[],n=this.terms();return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(t)},lookBehind:function(t){t||(t=".*");var e=this.pool,r=[];return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.prev))}(e.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(t)}},wt=Object.assign({},ut,ht,lt,bt,yt,At),xt=function(t,e){if(0===e.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},Pt=T((function(t,e){e.getGreedy=function(t,e){for(var r=Object.assign({},t.regs[t.r],{start:!1,end:!1}),n=t.t;t.t1&&void 0!==arguments[1]?arguments[1]:0,n=t.regs[t.r],i=!1,o=0;oe&&(e=r.length),n}))&&e},e.getGroup=function(t,e,r){if(t.groups[t.groupId])return t.groups[t.groupId];var n=t.terms[e].id;return t.groups[t.groupId]={group:String(r),start:n,length:0},t.groups[t.groupId]}})),jt=function(t,e,r,n){for(var i={t:0,terms:t,r:0,regs:e,groups:{},start_i:r,phrase_length:n,hasGroup:!1,groupId:null,previousGroup:null};i.ri.t)return null;if(!0===o.end&&i.start_i+i.t!==n)return null}if(!0===i.hasGroup){var v=Pt.getGroup(i,f,o.named);i.t>1&&o.greedy?v.length+=i.t-f:v.length++}}else{if(o.negative){var m=Object.assign({},o);if(m.negative=!1,!0===i.terms[i.t].doesMatch(m,i.start_i+i.t,i.phrase_length))return null}if(!0!==o.optional){if(i.terms[i.t].isImplicit()&&e[i.r-1]&&i.terms[i.t+1]){if(i.terms[i.t-1]&&i.terms[i.t-1].implicit===e[i.r-1].word)return null;if(i.terms[i.t+1].doesMatch(o,i.start_i+i.t,i.phrase_length)){i.t+=2;continue}}return null}}}else{var g=Pt.greedyTo(i,e[i.r+1]);if(void 0!==o.min&&g-i.to.max){i.t=i.t+o.max;continue}if(null===g)return null;!0===i.hasGroup&&(Pt.getGroup(i,i.t,o.named).length=g-i.t),i.t=g}}return{match:i.terms.slice(0,i.t),groups:i.groups}},Et=function(t,e,r){if(!r||0===r.length)return r;if(e.some((function(t){return t.end}))){var n=t[t.length-1];r=r.filter((function(t){return-1!==t.match.indexOf(n)}))}return r},Ot=/\{([0-9]+,?[0-9]*)\}/,kt=/&&/,Ct=new RegExp(/^<(\S+)>/),Ft=function(t){return t[t.length-1]},Tt=function(t){return t[0]},Nt=function(t){return t.substr(1)},Vt=function(t){return t.substr(0,t.length-1)},$t=function(t){return t=Nt(t),t=Vt(t)},Bt=function t(e){for(var r,n={},i=0;i<2;i+=1){if("$"===Ft(e)&&(n.end=!0,e=Vt(e)),"^"===Tt(e)&&(n.start=!0,e=Nt(e)),("["===Tt(e)||"]"===Ft(e))&&(n.named=!0,"["===Tt(e)?n.groupType="]"===Ft(e)?"single":"start":n.groupType="end",e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Tt(e))){var o=Ct.exec(e);o.length>=2&&(n.named=o[1],e=e.replace(o[0],""))}if("+"===Ft(e)&&(n.greedy=!0,e=Vt(e)),"*"!==e&&"*"===Ft(e)&&"\\*"!==e&&(n.greedy=!0,e=Vt(e)),"?"===Ft(e)&&(n.optional=!0,e=Vt(e)),"!"===Tt(e)&&(n.negative=!0,e=Nt(e)),"("===Tt(e)&&")"===Ft(e)){kt.test(e)?(n.choices=e.split(kt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Nt(n.choices[0]);var s=n.choices.length-1;n.choices[s]=Vt(n.choices[s]),n.choices=n.choices.map((function(t){return t.trim()})),n.choices=n.choices.filter((function(t){return t})),n.choices=n.choices.map((function(e){return e.split(/ /g).map(t)})),e=""}if("/"===Tt(e)&&"/"===Ft(e))return e=$t(e),n.regex=new RegExp(e),n;if("~"===Tt(e)&&"~"===Ft(e))return e=$t(e),n.soft=!0,n.word=e,n}return!0===Ot.test(e)&&(e=e.replace(Ot,(function(t,e){var r=e.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,n.optional=!0,""}))),"#"===Tt(e)?(n.tag=Nt(e),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===Tt(e)?(n.method=Nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),n.word=e.toLowerCase()),n)},St=function(t){for(var e,r=!1,n=-1,i=0;i1&&void 0!==arguments[1]?arguments[1]:{},r=t.filter((function(t){return t.groupType})).length;return r>0&&(t=St(t)),e.fuzzy||(t=It(t)),t},Dt=/[^[a-z]]\//g,_t=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mt=function(t){var e=t.split(/([\^\[\!]*(?:<\S+>)?\(.*?\)[?+*]*\]?\$?)/);return e=e.map((function(t){return t.trim()})),Dt.test(t)&&(e=function(t){return t.forEach((function(e,r){var n=e.match(Dt);null!==n&&1===n.length&&t[r+1]&&(t[r]+=t[r+1],t[r+1]="",null!==(n=t[r].match(Dt))&&1===n.length&&(t[r]+=t[r+2],t[r+2]=""))})),t=t.filter((function(t){return t}))}(e)),e},Gt=function(t){var e=[];return t.forEach((function(t){if(/\(.*\)/.test(t))e.push(t);else{var r=t.split(" ");r=r.filter((function(t){return t})),e=e.concat(r)}})),e},qt=function(t){return[{choices:t.map((function(t){return[{word:t}]})),operator:"or"}]},Lt=function(t){if(!t||!t.list||!t.list[0])return[];var e=[];return t.list.forEach((function(t){var r=[];t.terms().forEach((function(t){r.push(t.id)})),e.push(r)})),[{idBlocks:e}]},Wt=function(t,e){return!0===e.fuzzy&&(e.fuzzy=.85),"number"==typeof e.fuzzy&&(t=t.map((function(t){return e.fuzzy>0&&t.word&&(t.fuzzy=e.fuzzy),t.choices&&t.choices.forEach((function(t){t.forEach((function(t){t.fuzzy=e.fuzzy}))})),t}))),t},Ut=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==e||""===e)return[];if("object"===t(e)){if(_t(e)){if(0===e.length||!e[0])return[];if("object"===t(e[0]))return e;if("string"==typeof e[0])return qt(e)}return e&&"Doc"===e.isA?Lt(e):[]}"number"==typeof e&&(e=String(e));var n=Mt(e);return n=(n=Gt(n)).map((function(t){return Bt(t)})),n=zt(n,r),n=Wt(n,r)},Rt=function(t,e){for(var r=[],n=e[0].idBlocks,i=function(e){n.forEach((function(n){0!==n.length?n.every((function(r,n){return o=e,t[e+n].id===r}))&&(r.push({match:t.slice(e,e+n.length)}),e+=n.length-1):o=e})),o=e},o=0;o2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e&&(e=Ut(e)),!0===xt(t,e))return[];var n=e.filter((function(t){return!0!==t.optional&&!0!==t.negative})).length,i=t.terms(),o=[];if(e[0].idBlocks){var s=Rt(i,e);if(s&&s.length>0)return Et(i,e,s)}if(!0===e[0].start){var a=jt(i,e,0,i.length);return a&&a.match&&a.match.length>0&&(a.match=a.match.filter((function(t){return t})),o.push(a)),Et(i,e,o)}for(var u=0;ui.length);u+=1){var c=jt(i.slice(u),e,u,i.length);if(c&&c.match&&c.match.length>0&&(u+=c.match.length-1,c.match=c.match.filter((function(t){return t})),o.push(c),!0===r))return Et(i,e,o)}return Et(i,e,o)},Qt=function(t,e){var r={};Ht(t,e).forEach((function(t){t.match.forEach((function(t){r[t.id]=!0}))}));var n=t.terms(),i=[],o=[];return n.forEach((function(t){!0!==r[t.id]?o.push(t):o.length>0&&(i.push(o),o=[])})),o.length>0&&i.push(o),i},Zt={match:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ht(this,t,r);return n=n.map((function(t){var r=t.match,n=t.groups,i=e.buildFrom(r[0].id,r.length,n);return i.cache.terms=r,i}))},has:function(t){return Ht(this,t,!0).length>0},not:function(t){var e=this,r=Qt(this,t);return r=r.map((function(t){return e.buildFrom(t[0].id,t.length)}))},canBe:function(t,e){for(var r=this,n=[],i=this.terms(),o=!1,s=0;s0})).map((function(t){return r.buildFrom(t[0].id,t.length)}))}},Jt=function t(r,n,i){e(this,t),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Jt.prototype.buildFrom=function(t,e,r){var n=new Jt(t,e,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Jt.prototype,Zt),Object.assign(Jt.prototype,wt);var Yt={term:"terms"};Object.keys(Yt).forEach((function(t){return Jt.prototype[t]=Jt.prototype[Yt[t]]}));var Kt=Jt,Xt=function(){function t(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this,t),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(t,[{key:"add",value:function(t){return this.words[t.id]=t,this}},{key:"get",value:function(t){return this.words[t]}},{key:"remove",value:function(t){delete this.words[t]}},{key:"merge",value:function(t){return Object.assign(this.words,t.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),t}();Xt.prototype.clone=function(){var t=this,e=Object.keys(this.words).reduce((function(e,r){var n=t.words[r].clone();return e[n.id]=n,e}),{});return new Xt(e)};var te=Xt,ee=function(t){t.forEach((function(e,r){r>0&&(e.prev=t[r-1].id),t[r+1]&&(e.next=t[r+1].id)}))},re=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,ne=/\S/,ie=/[ .][A-Z]\.? *$/i,oe=/(?:\u2026|\.{2,}) *$/,se=/((?:\r?\n|\r)+)/,ae=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,ue=/^\s+/,ce=function(t,e){if(!0===ie.test(t))return!1;if(!0===oe.test(t))return!1;if(!1===ae.test(t))return!1;var r=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!e.hasOwnProperty(n)},he=function(t,e){var r=e.cache.abbreviations;t=t||"";var n=[],i=[];if(!(t=String(t))||"string"!=typeof t||!1===ne.test(t))return n;for(var o=function(t){for(var e=[],r=t.split(se),n=0;n0&&(n.push(c),i[u]="")}if(0===n.length)return[t];for(var h=1;h0?(e[e.length-1]+=o,e.push(a)):e.push(o+a),o=""):o+=a}return o&&(0===e.length&&(e[0]=""),e[e.length-1]+=o),e=(e=function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof t&&("number"==typeof t?t=String(t):ye(t)&&(n=t)),n=(n=n||he(t,e)).map((function(t){return be(t)})),r=r||new te;var i=n.map((function(t){t=t.map((function(t){var e=new at(t);return r.add(e),e})),ee(t);var e=new Kt(t[0].id,t.length,r);return e.cache.terms=t,e}));return i},we=function(t,e){var r=new te;return t.map((function(t,n){var i=t.terms.map((function(i,o){var s=new at(i.text);return s.pre=void 0!==i.pre?i.pre:"",void 0===i.post&&(i.post=" ",o>=t.terms.length-1&&(i.post=". ",n>=t.terms.length-1&&(i.post="."))),s.post=void 0!==i.post?i.post:" ",i.tags&&i.tags.forEach((function(t){return s.tag(t,"",e)})),r.add(s),s}));return ee(i),new Kt(i[0].id,i.length,r)}))},xe=["Person","Place","Organization"],Pe={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:xe},Actor:{isA:"Noun",notA:xe},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:xe},Demonym:{isA:["Noun","ProperNoun"],notA:xe},Possessive:{isA:"Noun"}},je={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"PastTense"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"},Auxiliary:{notA:["Noun","Adjective","Value"]}},Ee={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},Fraction:{isA:"Value",notA:["Noun"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},Oe=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],ke={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["AtMention"]},Determiner:{notA:Oe},Conjunction:{notA:Oe},Preposition:{notA:Oe},QuestionWord:{notA:["Determiner"]},Currency:{isA:["Noun"]},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Ce={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},Fe=function(t){return Object.keys(t).forEach((function(e){t[e].color?t[e].color=t[e].color:Ce[e]?t[e].color=Ce[e]:t[e].isA.some((function(r){return!!Ce[r]&&(t[e].color=Ce[r],!0)}))})),t},Te=function(t){return Object.keys(t).forEach((function(e){for(var r=t[e],n=r.isA.length,i=0;i1&&(r.hasCompound[o[0]]=!0),void 0===De[i]?void 0!==e[n]?("string"==typeof e[n]&&(e[n]=[e[n]]),"string"==typeof i?e[n].push(i):e[n]=e[n].concat(i)):e[n]=i:De[i](e,n,r)}))},Me=function(t){var e=Object.assign({},Ie);return Object.keys(Ie).forEach((function(r){var n=Ie[r];Object.keys(n).forEach((function(t){n[t]=r})),_e(n,e,t)})),e},Ge=_e,qe=function(t){for(var e=t.irregulars.nouns,r=Object.keys(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&"number"!=typeof e&&null!==e||(e={group:e});var r=Ut(t,e);if(0===r.length)return this.buildFrom([]);if(!1===Ye(this,r))return this.buildFrom([]);var n=this.list.reduce((function(t,e){return t.concat(e.match(r))}),[]);return void 0!==e.group&&null!==e.group&&""!==e.group?this.buildFrom(n).groups(e.group):this.buildFrom(n)},e.not=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e);if(0===r.length||!1===Ye(this,r))return this;var n=this.list.reduce((function(t,e){return t.concat(e.not(r))}),[]);return this.buildFrom(n)},e.matchOne=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e);if(!1===Ye(this,r))return this.buildFrom([]);for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e);if(!1===Ye(this,r))return this.buildFrom([]);var n=this.list.filter((function(t){return!0===t.has(r)}));return this.buildFrom(n)},e.ifNo=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e),n=this.list.filter((function(t){return!1===t.has(r)}));return this.buildFrom(n)},e.has=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e);return!1!==Ye(this,r)&&this.list.some((function(t){return!0===t.has(r)}))},e.lookAhead=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t||(t=".*");var r=Ut(t,e),n=[];return this.list.forEach((function(t){n=n.concat(t.lookAhead(r))})),n=n.filter((function(t){return t})),this.buildFrom(n)},e.lookAfter=e.lookAhead,e.lookBehind=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t||(t=".*");var r=Ut(t,e),n=[];return this.list.forEach((function(t){n=n.concat(t.lookBehind(r))})),n=n.filter((function(t){return t})),this.buildFrom(n)},e.lookBefore=e.lookBehind,e.before=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e),n=this.if(r).list,i=n.map((function(t){var e=t.terms().map((function(t){return t.id})),n=t.match(r)[0],i=e.indexOf(n.start);return 0===i||-1===i?null:t.buildFrom(t.start,i)}));return i=i.filter((function(t){return null!==t})),this.buildFrom(i)},e.after=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ut(t,e),n=this.if(r).list,i=n.map((function(t){var e=t.terms(),n=e.map((function(t){return t.id})),i=t.match(r)[0],o=n.indexOf(i.start);if(-1===o||!e[o+i.length])return null;var s=e[o+i.length].id,a=t.length-o-i.length;return t.buildFrom(s,a)}));return i=i.filter((function(t){return null!==t})),this.buildFrom(i)},e.hasAfter=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookAfter(t,e).found}))},e.hasBefore=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookBefore(t,e).found}))}})),Xe=function(t,e,r,n){var i=[];"string"==typeof t&&(i=t.split(" ")),e.list.forEach((function(o){var s=o.terms();!0===r&&(s=s.filter((function(r){return r.canBe(t,e.world)}))),s.forEach((function(r,o){i.length>1?i[o]&&"."!==i[o]&&r.tag(i[o],n,e.world):r.tag(t,n,e.world)}))}))},tr={tag:function(t,e){return t?(Xe(t,this,!1,e),this):this},tagSafe:function(t,e){return t?(Xe(t,this,!0,e),this):this},unTag:function(t,e){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(t,e,r.world)}))})),this},canBe:function(t){if(!t)return this;var e=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(t,e))}),[]);return this.buildFrom(r)}},er={map:function(e){var r=this;if(!e)return this;var n=this.list.map((function(t,n){var i=r.buildFrom([t]);i.from=null;var o=e(i,n);return o&&o.list&&o.list[0]?o.list[0]:o}));return 0===(n=n.filter((function(t){return t}))).length?this.buildFrom(n):"object"!==t(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(t,e){var r=this;return t?(this.list.forEach((function(n,i){var o=r.buildFrom([n]);!0===e&&(o.from=null),t(o,i)})),this):this},filter:function(t){var e=this;if(!t)return this;var r=this.list.filter((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return this.buildFrom(r)},find:function(t){var e=this;if(!t)return this;var r=this.list.find((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return r?this.buildFrom([r]):void 0},some:function(t){var e=this;return t?this.list.some((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)})):this},random:function(t){if(!this.found)return this;var e=Math.floor(Math.random()*this.list.length);if(void 0===t){var r=[this.list[e]];return this.buildFrom(r)}return e+t>this.length&&(e=(e=this.length-t)<0?0:e),this.slice(e,e+t)}},rr=function(t){return t.split(/[ -]/g)},nr=function(t,e,r){for(var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return t.forEach((function(t,n){var i=!0;void 0!==e[n]&&(i=e[n]),t=(t=(t||"").toLowerCase()).replace(/[,;.!?]+$/,"");var o=rr(t).map((function(t){return t.trim()}));r[o[0]]=r[o[0]]||{},1===o.length?r[o[0]].value=i:(r[o[0]].more=r[o[0]].more||[],r[o[0]].more.push({rest:o.slice(1),value:i}))})),r}(t,e),i=[],o=function(t){for(var e=r.list[t],o=e.terms().map((function(t){return t.reduced})),s=function(t){void 0!==n[o[t]]&&(void 0!==n[o[t]].more&&n[o[t]].more.forEach((function(r){void 0!==o[t+r.rest.length]&&(!0===r.rest.every((function(e,r){return e===o[t+r+1]}))&&i.push({id:e.terms()[t].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[o[t]].value&&i.push({id:e.terms()[t].id,value:n[o[t]].value,length:1}))},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(i){var o,s=e;if("function"==typeof e&&(s=e(i)),s&&"object"===t(s)&&"Doc"===s.isA)o=s.list,r.pool().merge(s.pool());else{if("string"!=typeof s)return;!1!==n.keepCase&&i.terms(0).isTitleCase()&&(s=sr(s)),o=Ae(s,r.world,r.pool());var a=r.buildFrom(o);a.tagger(),o=a.list}if(!0===n.keepTags){var u=i.json({terms:{tags:!0}}).terms;o[0].terms().forEach((function(t,e){u[e]&&t.tagSafe(u[e].tags,"keptTag",r.world)}))}i.replace(o[0],r)})),this):this.delete()},replace:function(t,e,r){return void 0===e?this.replaceWith(t,r):(this.match(t).replaceWith(e,r),this)}},ur=T((function(t,e){var r=function(t){return t&&"[object Object]"===Object.prototype.toString.call(t)},n=function(t,e){var r=Ae(t,e.world)[0],n=e.buildFrom([r]);return n.tagger(),e.list=n.list,e};e.append=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e?this.found?(this.uncache(),this.list.forEach((function(n){var i;r(e)&&"Doc"===e.isA?i=e.list[0].clone():"string"==typeof e&&(i=Ae(e,t.world,t.pool())[0]),t.buildFrom([i]).tagger(),n.append(i,t)})),this):n(e,this):this},e.insertAfter=e.append,e.insertAt=e.append,e.prepend=function(t){var e=this;return t?this.found?(this.uncache(),this.list.forEach((function(n){var i;r(t)&&"Doc"===t.isA?i=t.list[0].clone():"string"==typeof t&&(i=Ae(t,e.world,e.pool())[0]),e.buildFrom([i]).tagger(),n.prepend(i,e)})),this):n(t,this):this},e.insertBefore=e.prepend,e.concat=function(){this.uncache();for(var t=this.list.slice(0),e=0;e0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof e&&this.list[e])return this.list[e].json(r);!0===(e=n(e)).root&&this.list.forEach((function(e){e.terms().forEach((function(e){null===e.root&&e.setRoot(t.world)}))}));var i=this.list.map((function(r){return r.json(e,t.world)}));if((e.terms.offset||e.offset||e.terms.index||e.index)&&lr(this,i,e),e.frequency||e.freq||e.count){var o={};this.list.forEach((function(t){var e=t.text("reduced");o[e]=o[e]||0,o[e]+=1})),this.list.forEach((function(t,e){i[e].count=o[t.text("reduced")]}))}if(e.unique){var s={};i=i.filter((function(t){return!0!==s[t.reduced]&&(s[t.reduced]=!0,!0)}))}return i},e.data=e.json})),pr=T((function(t){var e="",r=function(t,e){for(t=t.toString();t.lengthe.count?-1:t.countn?1:0},length:function(t,e){var r=t.text().trim().length,n=e.text().trim().length;return rn?-1:0},wordCount:function(t,e){var r=t.wordCount(),n=e.wordCount();return rn?-1:0}};mr.alphabetical=mr.alpha,mr.wordcount=mr.wordCount;var gr={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},br={sort:function(t){return"freq"===(t=t||"alpha")||"frequency"===t||"topk"===t?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(e=this).list.forEach((function(t){var e=t.text(n);r[e]=r[e]||0,r[e]+=1})),e.list.sort((function(t,e){var i=r[t.text(n)],o=r[e.text(n)];return io?-1:0})),e):gr.hasOwnProperty(t)?function(t){var e={};return t.json({terms:{offset:!0}}).forEach((function(t){e[t.terms[0].id]=t.terms[0].offset.start})),t.list=t.list.sort((function(t,r){return e[t.start]>e[r.start]?1:e[t.start]0){i+=s;continue}}if(void 0===r[o]||!0!==r.hasOwnProperty(o))if(o===t[i].reduced||!0!==r.hasOwnProperty(t[i].reduced)){if(!0===Ir.test(o)){var a=o.replace(Ir,"");!0===r.hasOwnProperty(a)&&t[i].tag(r[a],"noprefix-lexicon",e)}}else t[i].tag(r[t[i].reduced],"lexicon",e);else t[i].tag(r[o],"lexicon",e)}return t},_r=function(t){var e=t.termList();return Dr(e,t.world),t.world.taggers.forEach((function(e){e(t)})),t},Mr=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){!0===t.tags.Abbreviation&&t.next&&(t.post=t.post.replace(/^\./,""));var e=t.text.replace(/\./,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){t.post=t.post.replace(/^\./,""),t.post="."+t.post})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,t.prototype.abbreviations=function(t){var e=this.match("#Abbreviation");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Gr=/\./,qr=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");e=e.split("").join("."),!1===Gr.test(t.post)&&(e+="."),t.set(e)})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,r.prototype.strip=r.prototype.stripPeriods,t.prototype.acronyms=function(t){var e=this.match("#Acronym");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Lr=function(t){return t.prototype.clauses=function(e){var r=this.if("@hasComma").notIf("@hasComma @hasComma").notIf("@hasComma . .? (and|or) .").notIf("(#City && @hasComma) #Country").notIf("(#WeekDay && @hasComma) #Date").notIf("(#Date && @hasComma) #Year").notIf("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(r),i=n.quotations(),o=(n=n.splitOn(i)).parentheses(),s=(n=n.splitOn(o)).if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction"),a=(n=n.splitBefore(s)).if("if .{2,9} then .").match("then"),u=(n=(n=(n=(n=(n=(n=n.splitBefore(a)).splitBefore("as well as .")).splitBefore("such as .")).splitBefore("in addition to .")).splitAfter("@hasSemicolon")).splitAfter("@hasDash")).filter((function(t){return t.wordCount()>5&&t.match("#Verb+").length>=2}));if(u.found){var c=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(c.eq(0))}return"number"==typeof e&&(n=n.get(e)),new t(n.list,this,this.world)},t},Wr=function(t){var r=function(t){i(o,t);var r=u(o);function o(t,n,i){var s;return e(this,o),(s=r.call(this,t,n,i)).contracted=null,s}return n(o,[{key:"expand",value:function(){return this.list.forEach((function(t){var e=t.terms(),r=e[0].isTitleCase();e.forEach((function(t,r){t.set(t.implicit||t.text),t.implicit=void 0,r1&&void 0!==arguments[1]?arguments[1]:{},n=this.match("(#City && @hasComma) (#Region|#Country)"),i=this.not(n).splitAfter("@hasComma"),o=(i=i.concat(n)).quotations();return o.found&&(i=i.splitOn(o.eq(0))),i=i.match("#Noun+ (of|by)? the? #Noun+?"),!0!==e.keep_anaphora&&(i=(i=(i=(i=i.not("#Pronoun")).not("(there|these)")).not("(#Month|#WeekDay)")).not("(my|our|your|their|her|his)")),i=i.not("(of|for|by|the)$"),"number"==typeof t&&(i=i.get(t)),new r(i.list,this,this.world)},t},sn=/\(/,an=/\)/,un=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"unwrap",value:function(){return this.list.forEach((function(t){var e=t.terms(0);e.pre=e.pre.replace(sn,"");var r=t.lastTerm();r.post=r.post.replace(an,"")})),this}}]),o}(t);return t.prototype.parentheses=function(t){var e=[];return this.list.forEach((function(t){for(var r=t.terms(),n=0;n0}}),Object.defineProperty(this,"length",{get:function(){return o.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(t,[{key:"tagger",value:function(){return _r(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),t}();Cn.prototype.buildFrom=function(t){return t=t.map((function(t){return t.clone(!0)})),new Cn(t,this,this.world)},Cn.prototype.fromText=function(t){var e=Ae(t,this.world,this.pool());return this.buildFrom(e)},Object.assign(Cn.prototype,kn.misc),Object.assign(Cn.prototype,kn.selections),On(Cn);var Fn={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(Fn).forEach((function(t){return Cn.prototype[t]=Cn.prototype[Fn[t]]}));var Tn=Cn;return function t(e){var r=e,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0;e&&r.addWords(e);var n=Ae(t,r),i=new Tn(n,null,r);return i.tagger(),i};return n.tokenize=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,n=r;e&&((n=n.clone()).words={},n.addWords(e));var i=Ae(t,n),o=new Tn(i,null,n);return(e||o.world.taggers.length>0)&&_r(o),o},n.extend=function(t){return t(Tn,r,this,Kt,at,te),this},n.fromJSON=function(t){var e=we(t,r);return new Tn(e,null,r)},n.clone=function(){return t(r.clone())},n.verbose=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(t),this},n.world=function(){return r},n.parseMatch=function(t,e){return Ut(t,e)},n.version="13.10.0",n.import=n.load,n.plugin=n.extend,n}(new Qe)})); diff --git a/builds/compromise.js b/builds/compromise.js index 306f16c0e..8f24b1c75 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1,4 +1,4 @@ -/* compromise 13.9.3 MIT */ +/* compromise 13.10.0 MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -1295,8 +1295,8 @@ this.text = obj.text || ''; this.clean = obj.clean; this.reduced = obj.reduced; - this.root = null; - this.implicit = null; + this.root = null; + this.implicit = null; this.pre = obj.pre || ''; this.post = obj.post || ''; this.tags = {}; @@ -2216,40 +2216,56 @@ } } - if (state.terms[state.t].doesMatch(reg, state.start_i + state.t, state.phrase_length) === true) { - return true; - } - return false; }; // match complex OR cases like (a|b|foo bar) exports.doOrBlock = function (state) { var skipN = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var reg = state.regs[state.r]; + var block = state.regs[state.r]; var wasFound = false; // do each multiword sequence - for (var c = 0; c < reg.choices.length; c += 1) { + for (var c = 0; c < block.choices.length; c += 1) { // try to match this list of tokens - var block = reg.choices[c]; - wasFound = block.every(function (cr, w_index) { - var tryTerm = state.t + w_index + skipN; + var regs = block.choices[c]; + wasFound = regs.every(function (cr, w_index) { + var extra = 0; + var t = state.t + w_index + skipN + extra; - if (state.terms[tryTerm] === undefined) { + if (state.terms[t] === undefined) { return false; } - return state.terms[tryTerm].doesMatch(cr, tryTerm + state.start_i, state.phrase_length); + var foundBlock = state.terms[t].doesMatch(cr, t + state.start_i, state.phrase_length); // this can be greedy - '(foo+ bar)' + + if (foundBlock === true && cr.greedy === true) { + for (var i = 1; i < state.terms.length; i += 1) { + var term = state.terms[t + i]; + + if (term) { + var keepGoing = term.doesMatch(cr, state.start_i + i, state.phrase_length); + + if (keepGoing === true) { + extra += 1; + } else { + break; + } + } + } + } + + skipN += extra; + return foundBlock; }); if (wasFound) { - skipN += block.length; + skipN += regs.length; break; } } // we found a match - is it greedy though? - if (wasFound && reg.greedy === true) { + if (wasFound && block.greedy === true) { return exports.doOrBlock(state, skipN); // try it again! } @@ -2341,11 +2357,11 @@ state.groupId = _id(reg.named); state.previousGroup = state.groupId; } - } //hve we run-out of terms? + } //have we run-out of terms? if (!state.terms[state.t]) { - //are all remaining regs optional? + //are all remaining regs optional or negative? var haveNeeds = regs.slice(state.r).some(function (remain) { return !remain.optional; }); @@ -2429,18 +2445,31 @@ } else if (!reg.optional) { return null; //die } - } + } // ok, finally test the term/reg + + + var term = state.terms[state.t]; + var doesMatch = term.doesMatch(reg, state.start_i + state.t, state.phrase_length); + + if (reg.anything === true || doesMatch === true || _matchLogic.isEndGreedy(reg, state)) { + var startAt = state.t; // if it's a negative optional match... :0 - if (reg.anything === true || _matchLogic.isEndGreedy(reg, state)) { - var startAt = state.t; // okay, it was a match, but if it optional too, + if (reg.optional && regs[state.r + 1] && reg.negative) { + continue; + } // okay, it was a match, but if it's optional too, // we should check the next reg too, to skip it? + if (reg.optional && regs[state.r + 1]) { // does the next reg match it too? - if (state.terms[state.t].doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { + var nextRegMatched = term.doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length); + + if (reg.negative || nextRegMatched) { // but does the next reg match the next term?? // only skip if it doesn't - if (!state.terms[state.t + 1] || !state.terms[state.t + 1].doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { + var nextTerm = state.terms[state.t + 1]; + + if (!nextTerm || !nextTerm.doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { state.r += 1; } } @@ -2488,6 +2517,19 @@ } continue; + } // ok, it doesn't match. + // did it *actually match* a negative? + + + if (reg.negative) { + var tmpReg = Object.assign({}, reg); + tmpReg.negative = false; // try removing it + + var foundNeg = state.terms[state.t].doesMatch(tmpReg, state.start_i + state.t, state.phrase_length); + + if (foundNeg === true) { + return null; //bye! + } } //bah, who cares, keep going @@ -2500,8 +2542,7 @@ // if the last match was implicit too, we're missing a word. if (state.terms[state.t - 1] && state.terms[state.t - 1].implicit === regs[state.r - 1].word) { return null; - } // console.log(state.terms[state.t]) - // does the next one match? + } // does the next one match? if (state.terms[state.t + 1].doesMatch(reg, state.start_i + state.t, state.phrase_length)) { @@ -3819,60 +3860,7 @@ var fromJSON_1 = fromJSON; - var _version = '13.9.3'; - - var _data = { - "Comparative": "true¦better", - "Superlative": "true¦earlier", - "PresentTense": "true¦is,sounds", - "Value": "true¦a few", - "Noun": "true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc", - "Copula": "true¦a1is,w0;as,ere;m,re", - "PastTense": "true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan", - "Condition": "true¦if,lest,unless", - "Preposition": "true¦'o,-,aLbIcHdGexcept,fFiDmidQnotwithstandiRoBpSqua,sAt6u3vi2w0;/o,hereNith0;!in,oR;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n2ut;!f;f,n0;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", - "Gerund": "true¦accord0be0develop0go0result0stain0;ing", - "Negative": "true¦n0;ever,o0;!n,t", - "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", - "Plural": "true¦records", - "Conjunction": "true¦&,aFbBcuz,how9in caEno8o7p5supposing,t2v1wh0yet;eth9ile;ers4s;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", - "Abbreviation": "true¦a0Tb0Qc0Kd0Ie0Ff0Cg0Ah08i06j04k02l00mRnOoNpIqHrFs9t6u5v2w0yb,µg;is0r,y0L;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;b1ce,d,e0sp;l,mp,nn,x;!l,sp;ask,e3fc,gt,i2q1r,s,t,u0;pt,rg;! ft;r,tu;c,nVp0;!t;b,d,e0;pSs,v;t,ue;a,d,enn3hd,l,p,r1s0t,vt;!eud;ef,o0;b,f,n;!a;ct,kla,nt,z;e0ov;b0e;!r;a7b,d,essrs,g,i4l3m2p1rHs0t;!tr;h,s;!e;!le;!n1s0;c,ter;!n;!j,r,sc;at,b,it,lb,m,ng,t0x;!d;an6b,g,m0;!ph;an,d,r,u0;l,n;a,da,e,n0;c,f;g,on,r0wy,z;!s;a0b,en,ov;!l;e1ig,l0m,r,t,y;! oz,a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0g,ist,l,m,r;c,f,pt,t;a3ca,g,l,m2o0pl,res,yn;!l0mdr,nn,rp;!o;!dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v", - "Pronoun": "true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true¦0:15;1:18;2:12;a15b0Sc0Jd0Ce09f04gZhViUjel0kitty,lSmOnNoMpHquestionGrEs9t6u4w3;ay,om02;nc0Zs 3;doll0Kst0M; rex,a4h3ic,ragedy,v show;ere,i1;l0x return;i6ky,omeoMt3uper bowl,yst14;ep4ri1u3;de0Xff;faSmoS;st2ze;al0i1o3;om,se;! mark;a6i2la5r4u3;dPrpoH;eroga00ie0Gobl0U;te,y2;rt,te0N;bjWceJthers,verview;othi1umb2;a5ee08o3;del,m3nopo0rni1th2;!my;n,yf0;i3unch;ne;ci1nsect;ead start,o3uman right;l0me4u3;se;! run;adf0entlem6irl02laci2od,rand4u3;l0y; slam,fa3mo3;th2;an;a6ella,ly,ol0r4un3;di1;ee market,iWo3;nti2sP;mi0th2;conomy,gg,ner7ven4x3;ampTecu9;i1t;ad8e5inn2o3ragonf0ude;cumentGg3i0l0or;gy;ath,t3;ec3;tive;!dy;a9eili1h7i5o3redit card;ttage,u3;ri2sin;ty,vil w3;ar;andeli2ocol3;ate;n3rF;ary;aCel0lesJo8r5u3;n3tterf0;ti1;eakfa4o3;!th2;st;dy,tt5y3;!fri3;end;le;nki1r3;ri2;er;d5l0noma0u3;nt;ly; homin5verti3;si1;ng;em", - "FemaleName": "true¦0:J3;1:J7;2:IG;3:IF;4:IX;5:IK;6:JO;7:H0;8:JK;9:JG;A:HN;B:HY;C:IT;D:JD;E:IP;F:HC;G:I0;aGRbFLcDPdCYeBOfB4gADh9Ti9Gj8Gk7Gl60m49n3No3Jp37qu36r2Ds16t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof2;e3Uf2la,ra;h3iKlIna,ynH;ab,ep;da,ma;da,h3iHra;nab;aKeJi0Fol5BuIvH;etAonDO;i0na;le0sen2;el,gm3Jn,rGJs8W;aoHme0nyi;m62yAE;aMendDYhiDFiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;cIktoriBMlAole7viH;anC3enJ0;kF9tor2;da,lA9nus,rHs0;a,nHoniH4;a,iFQ;leHnesH4;nIHrH;i1y;g9rHxH5;su5te;aYeUhRiNoLrIuHy3;i,la;acIZiHu0L;c2na,sH;hBPta;nHr0H;iBNya;aJffaEOnHs6;a,gtiH;ng;!nFQra;aIeHomasi0;a,l9Po8Ares1;l2ndolwethu;g9Go88rIssH;!a,ie;eHi,ri8;sa,za;bPlNmLnJrIs6tHwa0;ia0um;a63yn;iHya;a,ka,s6;arB6e3iHmEDra;!ka;a,iH;a,t6;at6it6;a0Fcarlet3We0BhXiTkye,neza0oRtNuIyH;bIBlvi1;e,ha,mayIEni7sIzH;an3MetAie,y;anHi8;!a,e,nH;aEe;aJeH;fHl5GphH;an4;cHZr5;b2fiA8m0OnHphi1;d3ia,ja,ya;er3lJmon1nIobh8PtH;a,i;dy;lEPv2;aMeIirHo0risF7y5;a,lDK;ba,e0i5lJrH;iHrDOyl;!d8Hfa;ia,lDX;hd,iMki3nJrIu0w0yH;la,ma,na;i,le9on,ron;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye81vH;da,inj;e0ife;en1i0ma;anA5bNd3Nh1RiBkMlLmJndIrHs6vannaE;aEi0;ra,y;aHi3;nt6ra;lDKma,ome;ee0in8Ru3;in1ri0;a05e00hYiVoIuH;by,thDH;bScRghQl2KnPsJwIxH;anAXie,y;an,e0;aIeHie,lD; merBLann8ll1marDBt7;!lHnn1;iHyn;e,nH;a,d9K;da,i,na;ayy8D;hel62io;bDKer7yn;a,cIkHmas,n9Fta,ya;ki,o;helGki;ea,iannGDoH;da,n1K;an0bJem9Agi0iInHta,y0;a88ee;han83na;a,eH;cEAkaE;bi0chIe,i0mo0nHquEKvCy0;di,ia;aEIelHiB;!e,le;een4ia0;aNeMhKipaluk,oJrHute66;iHudenCQ;scil3LyamvaB;lly,rt2;ilome0oebe,ylH;is,lis;arl,ggy,nelope,r5t3;ige,m0TnKo5rvaDGtIulH;a,etAin1;ricHsy,tBY;a,e,ia;do3i06;ctav2dIfCZis6lHphCZumC3yunbileg;a,ga,iv2;eHvAC;l2tA;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aEeCma;ll1mi;aNcLhariBOkKlaJna,sHta,vi;anHha;ur;!y;a,iDTki;hoGk9VolH;a,eDJ;!mh;hir,lHna,risFsreC;!a,lBT;asuLdKh2i6CnJomi8rgEPtHzanin zah3;aHhal4;li1s6;cy,etA;a,e9iEV;nngu30;a09ckenz4e01iMoJrignayani,uriDDyH;a,rH;a,lNna,tG;bi0i3llBInH;a,iH;ca,ka,qD3;a,cTkaSlNmi,nLrItzi,yH;ar;aIiam,lH;anEO;!l,nB;dy,eHh,n4;nhGrva;aKdJiCPlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5EgNi,lKrH;edi79iIjem,on,yH;em,l;em,sF;an4iHliF;nHsCE;a,da;!an,han;b0DcASd0Be,g09ha,i08ja,l06n04rLsoum60tKuIv82x9IyHz4;a,bell,ra,soB9;de,rH;a,eC;h8Fild1t4;a,cYgUiKjor4l7Sn4s6tJwa,yH;!aHbe6Wja9lAE;m,nBH;a,ha,in1;!aJbCBeIja,lDna,sHt64;!a,ol,sa;!l1H;! Jh,mInH;!a,e,n1;!awit,i;aliAHcJeduarBfernIjHlui5Y;o6Ful2;anB;ecil2la3;arJeIie,oHr44ueriA;!t;!ry;et42i37;el4Ui76y;dHon,ue5;akran7y;ak,en,iHk,lo3O;a,ka,nB;a,re,s4te;daHg4;!l3A;alDd4elHge,isDBon0;ei9in1yn;el,le;a0Ne0CiYoQuLyH;d2la,nH;!a,dIeBGnHsCL;!a,eBF;a,sCJ;aCWcJel0PiFlIna,pHz;e,i7;a,u,wa;iHy;a0Se,ja,l2JnB;is,l1SrJttIuHvel4;el5is1;e,ie;aKeIi8na,rH;a86i8;lHn1t7;ei;!in1;aSbb9CdRepa,lMnJsIv2zH;!a,be5LetAz4;a,etA;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lHy;iHy;aA0e;!aH;!n5F;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx4y5;iHt4;c2t2;e2LlCG;la,nHra;a,ie,o3;a,or1;a,gh,laH;!ni;!h,nH;a,d3e,n5P;cOdon97iNkes6mi9Ana,rMtJurIvHxmi,y5;ern1in2;a,e54ie,yn;as6iIoH;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a04eZhXiOlAKoNrJyH;lHra;a,ee,ie;istHy6D;a,en,iIyH;!na;!e,n59;nul,ri,urtnB0;aOerNlAZmJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stC;!na,ra;aHei3ongordzol;dij1w5;el7QiKjsi,lJnIrH;a,i,ri;d3na,za;ey,i,lBDs4y;ra,s6;bi7cAJdiat7IeB2iRlQmPnyakuma19rNss6KtKvi7yH;!e,lH;a,eH;e,i8L;a6DeIhHi4NlDri0y;ar6Ber6Bie,leCrB2y;!lyn8Gri0;a,en,iHl5Soli0yn;!ma,n3VsF;a5il1;ei8Ei,l4;a,tl6L;a07eYiVoNuH;anLdKliHst63;a8HeHsF;!n9tH;!a,te;e5Ji3Jy;a,i7;!anNcelDd6RelGhan7RlLni,sIva0yH;a,ce;eHie;fHlDph5U;a,in1;eHie;en,n1;!a,e,n41;lHng;!i1ClH;!i1B;anMle0nJrIsH;i8Csi8C;i,ri;!a,elGif2CnH;a,etAiHy;!e,f2A;a,e8EiInH;a,e8DiH;e,n1;cMd1mi,nIque4Xsmin3Ovie3y9zH;min8;a8eIiH;ce,e,n1s;!lHsFt0F;e,le;inIk4lDquelH;in1yn;da,ta;lRmPnOo0rNsIvaHzaro;!a0lu,na;aJiIlaHob84;!n9N;do3;!belHdo3;!a,e,l39;a77en1i0ma;a,di3es,gr6Yji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHusFyacin2B;da,ll4rten23snH;a,i9Q;lImaH;ri;aIdHlaI;a,egard;ry;ath1CiJlInriet7rmi9sH;sa,t1B;en2Sga,mi;di;bi2Dil8IlNnMrJsItHwa,yl8Iz7H;i5St4;n5Yti;iHmo51ri52;etH;!te;aEnaE;a,ey,l4;a03eXiSlQoOrKunJwH;enHyne1Q;!dolD;ay,el;acIetHiselB;a,chC;e,ieH;!la;ld1AogooH;sh;adys,enHor2yn2H;a,da,na;aKgi,lIna,ov89selHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald3Pi,m3Ctru8B;etAi4W;a,eHna;s26vieve;ma;bIil,le,mHrnet,yG;al5Ni5;i5FrielH;a,l1;aVeSiRloOoz2rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0O;n1s61;!ca;!rH;a,encH;e,ia;en,o0;lIn0rnH;!anB;ec2ic2;jr,n7rKtHy8;emIiHma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Nd0Ne0Mi0Lk7l04mWn4YrTsNtMuLvH;aJelIiH;!e,ta;in0Gyn;!ngel2S;geni1la,ni45;h5Sta;mLperanKtH;eIhHrel5;er;l30r8;za;a,eralB;iHma,nest2Jyn;cHka,n;a,ka;a,eMiJmH;aHie,y;!li9;lHn1;ee,iHy;a,e,ja;lHrald;da,y;aWeUiNlMma,no3oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c2da,f,nMsJzaH;!betHve7;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a;!in1na;leCs6;vi;eIiHna,wi0;e,th;l,n;aYeMh2iLjeneKoHul30;lor5Tminiq4In3FrHtt4;a,eCis,la,othHthy;ea,y;ba;an0AnaEon9x4ya;anQbPde,eOiMja,lJmetr2nHsir5K;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6D;dHrdH;re;!d5Cna;!b2HoraEra;a,d3nH;!a,e;hl2i0l0HmNnLphn1rIvi1XyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,etAiH;!ca,el1Cka,z;arHia;is;a0Se0Oh05i03lVoKrIynH;di,th2;istHy05;al,i0;lPnMrIurH;tn1E;aJd2NiHn2Nri9;!nH;a,e,n1;!l1X;cepci59n4sH;tanHuelo;ce,za;eHleC;en,tA;aJeoIotH;il51;!pat3;ir8rJudH;etAiH;a,ne;a,e,iH;ce,sZ;a3er3ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Ren,iHy;!an1e,n1;deJlseIrH;!i8yl;a,y;li9;nMrH;isKlImH;ai9;a,eHotA;n1tA;!sa;d3elGtH;al,elG;cIlH;esAi44;el2ilH;e,ia,y;itlZlYmilXndWrOsMtHy5;aKeJhHri0;erHleCrDy;in1;ri0;li0ri0;a33sH;a32ie;a,iNlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eHie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrH;andSeQiJoIyH;an0nn;nwDok8;an3DdgLg0XtH;n2XtH;!aInH;ey,i,y;ny;etH;!t8;an0e,nH;da,na;i8y;bbi8glarIlo05nH;i7n4;ka;ancHossom,ythe;a,he;an17lja0nHsm3I;i7tH;ou;aUcky,linTni7rPssOtJulaEvH;!erlH;ey,y;hJsy,tH;e,iHy8;e,na;!anH;ie,y;!ie;nHt6yl;adIiH;ce;etAi9;ay,da;!triH;ce,z;rbJyaH;rmH;aa;a3ie,o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn09oi,r04sUtTuPvOwa,yIzH;ra,u0;aKes6gJlIseH;!l;in;un;!nH;a,na;a,i2Ir2J;drJgus1RrIsteH;ja;el2;a,ey,i,y;aahua,he0;hIi2Gja,mi7s2DtrH;id;aMlIraqHt21;at;eIi8yH;!n;e,iHy;gh;!nH;ti;iJleIo6pi7;ta;en,n1tA;aHelG;!n1J;a00dje5eYgUiSjQnJohito,toHya;inetAnH;el5ia;!aKeIiHmJ;e,ka;!mHtA;ar4;!belIliFmU;sa;!le;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tA;te;! JbImHstasiNya;ar2;el;cla3jul2pau5;aLberKeliJiHy;e,l2naH;!ta;a,ja;!ly;hGiIl2nB;da;a,ra;le;aWba,ePiMlKma,thJyH;a,c2sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c2is6jaKksaKna,sJxH;aHia;!nd3;ia,saH;nd3;ra;ia;i0nIyH;ah,na;a,is,naEoud;la;c6da,leCmNnLsH;haElH;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;!gaK;ey,i8y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya", - "Actor": "true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", - "Honorific": "true¦a01bYcQdPeOfiJgIhon,jr,king,lHmCoffic00p7queen,r3s0taoiseach,vice6;e1fc,gt,ir,r,u0;ltRpt,rg;cond liInBrgeaJ;abbi,e0;ar1p9s,v0;!erend; admirX;astOhd,r0vt;esideDi1of0;!essM;me mini4nce0;!ss;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al", - "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", - "Uncountable": "true¦0:1I;1:1X;2:16;a1Rb1Jc1Ad17e10f0Ug0Nh0Ii0Ej0Dknowled1Ql08mYnews,oXpTrOsDt8vi7w3;a5ea0Bi4oo3;d,l;ldlife,ne;rmth,t0;neg17ol0Ctae;e6h5oothpaste,r3una;affTou3;ble,sers,t;ermod1Mund0;a,nnis;aBcene0Aeri2hAil9kittl2now,o8p6t4u3;g10nshi0Q;ati1Le3;am,el;ace1Ee3;ci2ed;ap,cc0;k,v0;eep,ingl2;d0Dfe18l3nd;m11t;a6e4ic3;e,ke0M;c3laxa0Isearch;ogni0Hrea0H;bi2in;aPe5hys1last9o3ress04;l3rk,w0;it1yA;a12trZ;bstetr1il,xygen;aAe8ilk,o5u3;mps,s3;ic;n3o0I;ey,o3;gamy;a3chan1;sl2t;chine3il,themat1; learn0Bry;aught0e5i4ogi0Su3;ck,g0I;ce,ghtn08ngui0QteratN;a3isM;th0;ewelAusti0L;ce,mp3nformaUtself;a3ortan0J;ti3;en0H;a6isto5o3;ck3mework,n3spitali0B;ey;ry;ir,libut,ppiD;ene6o4r3um,ymna0D;aCound;l3ssip;d,f; 3t1;editQpo3;ol;i7lour,o4urnit3;ure;od,rgive3uri0wl;ne3;ss;c9sh;conom1duca8lectr7n5quip6th1very3;body,o3thH;ne;joy3tertain3;ment;iciPon1;tiI;ar4iabet2raugh4;es;ts;aAelcius,h6iv1l5o3urrency;al,ld w3nfusiDttD;ar;ass1oth5;aos,e3;e4w3;ing;se;r7sh;a7eef,i4lood,owls,read,utt0;er;lliar4s3;on;ds;g3ss;ga3;ge;c8dvi7ero5ir4mnes3rt,thlet1;ty;craft;b1d3naut1;ynam1;ce;id,ou3;st1;ics", - "Infinitive": "true¦0:6S;1:76;2:5C;3:74;4:73;5:67;6:6F;7:6Y;8:6Q;9:72;A:70;B:6X;C:5X;D:77;E:6L;F:5B;a6Kb66c57d4De3Xf3Jg3Dh37i2Uj2Sk2Ql2Hm26n23o1Yp1Jr0Rs06tYuTvOwHyG;awn,ield;aJe1Zhist6iIoGre6D;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tEve;n,raD;d0t;aJiHoG;te,w;eGsB;!w;l6Jry;nHpGr4se;gra4Pli41;dGi9lo5Zpub3Q;erGo;mi5Cw1I;aMeLhKig5SoJrHuGwi7;ne,rn;aGe0Mi5Uu7y;de,in,nsf0p,v5J;r2ZuE;ank,reatC;nd,st;lk,rg1Qs9;aZcWeVhTi4Dkip,lSmRnee3Lo52pQtJuGwitE;bmBck,ff0gge7ppHrGspe5;ge,pri1rou4Zvi3;ly,o36;aLeKoJrHuG;dy,mb6;aFeGi3;ngthCss,tE;p,re;m,p;in,ke,r0Qy;la58oil,rink6;e1Zi6o3J;am,ip;a2iv0oG;ck,rtCut;arEem,le5n1r3tt6;aHo2rG;atEew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5V;eGiew,o36;al,l,rG;se,t;aFi2u44;eJi7oItG;!o2rG;i5uc20;l3rt;mb6nt,r3;e7i2;air,eHlGo43r0K;a8y;at;aFemb0i3Zo3;aHeGi3y;a1nt;te,x;a5Dr0J;act1Yer,le5u1;a13ei3k5PoGyc6;gni2Cnci6rd;ch,li2Bs5N;i1nG;ge,k;aTerSiRlOoMrIuG;b21ll,mp,rGsh;cha1s4Q;ai1eIiDoG;cGdu8greAhibBmi1te7vi2W;eAlaim;di5pa2ss,veD;iDp,rtr46sGur;e,t;aHead,uG;g,n4;n,y;ck,le;fo34mBsi7;ck,iDrt4Mss,u1;bJccur,ff0pera9utweIverGwe;co47lap,ta22u1wG;helm;igh;ser3taF;eHotG;e,i8;ed,gle5;aMeLiIoHuG;ltip3Grd0;nit13ve;nHrr12sreprG;eseD;d,g6us;asu2lt,n0Nr4;intaFna4rHtG;ch,t0;ch,kGry;et;aMeLiJoGu1C;aHck,oGve;k,sC;d,n;ft,g35ke,mBnk,st2YveG;!n;a2Fc0Et;b0Nck,uG;gh,nE;iGno34;ck,ll,ss;am,oFuG;d4mp;gno2mQnGss3H;cOdica9flu0MhNsKtIvG;eGol3;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abBibB;lu1Fr1D;agi24pG;lemeDo22ro3;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppCrm,te;aKloAove1PrIuG;arGeAi15;ant39d;aGip,ow,umb6;b,sp;in,th0ze;aReaQiOlMoJrHuncG;ti3J;acGeshC;tu2;cus,lHrG;ce,eca7m,s30;d,l24;a1ZoG;at,od,w;gu2lGni1Xt,x;e,l;r,tu2;il,stCvG;or;a15cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte19;a18eHi2laFoGreA;rt,se;ct,riG;en8;ci1t;el,han4;abGima9;li1J;ab6couXdHfor8ga4han8j03riEsu2t0vG;isi2Vy;!u2;body,er4pG;hasiGow0;ze;a07eUiLoKrHuG;mp;aHeAiG;ft;g,in;d4ubt;ff0p,re5sHvG;iZor8;aKcHliGmiApl1Btingui14;ke;oGuA;uGv0;ra4;gr1YppG;ear,ro3;cOeNfLliv0ma0Fny,pKsHterG;mi0G;cribe,er3iHtrG;oy;gn,re;a0Be0Ai5osB;eGi0By;at,ct;m,pC;iIlHrG;ea1;a2i06;de;ma4n8rGte;e,kC;a0Ae09h06i9l04oJrG;aHeGoAu0Hy;a9dB;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aFin0VrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laF;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen4n4r4se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aSePloOoMrIuG;lGry;ly;igHuG;sh;htC;en;a7mb,o7rrGth0un8;ow;ck;ar,lHnefBtrG;ay;ie3ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waB;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri3;ue;!i3;eaJlIroG;aEve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e4ow;ee;rd;aRdIju7mBoR;it;st;!reA;ss;cJhie3knowled4tiva9;te;ge;ve;eIouDu1;se;nt;pt;on", - "Unit": "true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", - "Organization": "true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c", - "Demonym": "true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an", - "Possessive": "true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne", - "Currency": "true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s", - "City": "true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1ern1Mi0;en2Hlni2Z;lenc2Uncouv0Gr2Gughn;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg", - "Country": "true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an", - "Region": "true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma", - "Place": "true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt,rd;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s", - "WeekDay": "true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", - "Month": "true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il", - "Date": "true¦ago,t2week0yesterd4; e0e0;nd;mr2o0;d0morrow;ay;!w", - "FirstName": "true¦aKblair,cGdevFgabrieEhinaDjBk8l7m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is", - "LastName": "true¦0:9F;1:9V;2:9X;3:9H;4:9N;5:8J;6:9K;7:A0;8:9E;9:88;A:77;B:6E;C:6J;a9Ub8Lc7Kd6Xe6Rf6Dg5Vh58i54j4Pk45l3Nm2Rn2Eo26p1Nquispe,r17s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun7ZiDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s2;b0iss,lt0;a5Rgn0lDng,tanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr0Zss0val37;ba,obos;lasEsel7N;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1JhHi4j6ka3IoGrFsui,uD;om4ZrD;c4n0un1;an,embl8TynisA;dor95lst31m3rr9th;at5Mi7LoD;mErD;are6Ylaci64;ps2s0Y;hirBkah8Dnaka;a00chWeThPiNmKoItFuEvDzabo;en8Aobod34;ar7bot3lliv4zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Psa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmDngh,rbu;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Trra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr3saAto,v3;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Be0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag4es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1W;lishc24pDrti62u55we66;e2Tov48;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5PrEzD;demir,turk;ella3MtDwe5N;ega,iz;iDof6GsC;vDyn1F;ei8;aPri1;aLeJguy1iFoDune44ym4;rodahl,vDwak;ak3Uik5otn56;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray4varD;ro;jiDmu8shiD;ma;aXcVeQiPoIuD;lGnFrDssoli5T;atDpUr68;i,ov3;oz,te4B;d0l0;h4lIo0HrEsDza0Z;er,s;aFeEiDoz5r3Ete4B;!n6F;au,i8no,t4M;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeGij0j2ElFndErci0ssiDyer19;!er;e3Bo2Z;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Ns1;aSeMiIoGuEyD;!nch;k3nDo;d,gu;mbarDpe2Rvr3;di;!nDu,yana1R;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h4iSlQnez46oJrGuEvar4woD;k,n;cerDmar58znets5;a,o2G;aDem0i2Zyeziu;sni3PvD;ch3U;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3Q;huk;!ev3ic,s;e6uiveD;rt;eff0l3mu8nnun1;hn,lloe,minsArEstra31to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Pim0QoEuD;ng,r3;e2JhFnErge2Ju2NvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki26s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0CnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m4ng;a23dz3fEjga2Sk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz3g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aMeorgLheorghe,iJjonIoGrEuDw2;o,staf2Utierr7zm4;ayDg3iffitUub0;li1G;lub3Rme0JnD;calv9zale0I;aj,i;l,mDordaL;en7;iev3B;gnJlGmaFnd2No,rDs2Nuthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erMiIjeldsted,lor9oGrFuD;cDent9ji3F;hs;an1Wiedm4;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnandeVrD;arDei8;a,i;ov3;dHinste6riksCsDva0D;cob2ZpDtra2X;inoDosiM;za;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0YuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g4he0Hmingu7n2Ord19tD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w4;!ov3;gado,ic;th;bo0groot,jo03lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnErw6t2EviD;d5es,s;ieDku1S;ls1;ki;a05e00hNiobMlarkLoFrD;ivDuz;elli;h1lGntFop0rDs26x;byn,reD;a,ia;i,rer0O;em4liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDtterjee,v7;!d,g;ma,raboD;rty;bGl09ng3rD;eghetEnD;a,y;ti;an,ota0M;cer9lder2mpbeIrFstDvadi08;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a09eXhUiSlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nEzD;ev3;co;ancRshwD;as;a01oDuiy4;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b3ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl4yD;aEd6;in;la;aEsl4;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", - "MaleName": "true¦0:E5;1:D6;2:DO;3:AY;4:D2;5:CG;6:CW;7:C8;8:B6;9:DL;A:DK;B:A6;C:C2;aCObBLcAJd9He8Nf85g7Ih6Ui6Ej5Ek52l4Dm35n2To2Np2Fqu2Dr1Ls11t0Eu0Dv07wTxSyIzD;aDor0;cDh9Tkaria,n5W;hEkD;!aCM;ar5WeCL;aLoFuD;sDu2KvBY;if,uf;nFsEusD;ouf,sD;ef;aDg;s,tD;an,h0;hli,nBMssX;avi3ho4;aMeKiFoDyaC2;jcie8Clfgang,odrow,utD;!er;lDnst1;bFey,frD1lD;aBDiD;am,e,s;e9Fur;i,nde8sD;!l7t1;de,lErr9yD;l1ne;lDt3;aAAy;aGiDladimir,ojte7Z;cEha0kt69nceDrgAJva0;!nt;e3Vt67;lentDnA5;in4Y;ghBVlyss5Cnax,sm0;aXeShOiMoHrFuEyD;!l3ro6s1;nAr5C;avAWeDist0oy,um0;ntAOv5Zy;bGdFmDny;!as,mDoharu;aCTie,y;!d;iBy;mDt5;!my,othy;adFeoEia8GomD;!as;!do8P;!de5;dGrD;en9LrD;an9KeDy;ll,n9J;!dy;dgh,ha,iDnn3req,tsu4T;cB5ka;aTcotRePhLiJoHpenc3tDur1Vylve9Kzym1;anFeDua8D;f0phBTvDwa8C;e62ie;!islaw,l7;lom1nBFuD;leyma6ta;dDlBm1yabonga;!dhart7Bn7;aFeD;lDrm0;d1t1;h7Une,qu10un,wn,y6;aDbasti0k2Al4Rrg4Oth,ymoAU;m5n;!tD;!ie,y;lEmDnti2Eq5Bul;!ke5MmCu4;ik,vato7X;aYeUheAAiQoHuEyD;an,ou;b7NdEf5pe7SssD;!elBZ;ol3Fy;an,bKcJdIel,geHh0landBQmGnFry,sEyD;!ce;coe,s;!aAHnC;an,eo;l47r;e5Og3n7olfo,ri7A;co,ky;bCeB7;cDl7;ar6Pc6OhEkDo;!ey,ie,y;a99ie;gEid,ub9x,yDza;an1InY;gA8iD;naA4s;ch70fa4lHmGndFpha4sEul,wi2HyD;an,mo82;h7Vm5;alBDol2Uy;iATon;f,ph;ent2inD;cy,t1;aIeGhilFier72ol,rD;aka16eD;m,st1;!ip,lip;dALrcy,tD;ar,e3Gr1X;b4Kdra7Ft4ZulD;!o17;ctav3Fi3liv3mAFndrej,rHsEtDumAw9;is,to;aEcAkAm0vD;al5Z;ma;i,l53vL;aLeJiFoDu3A;aDel,j5l0ma0r3K;h,m;cEg4i49kD;!au,h7Uola;holBkDolB;!olB;al,d,il,ls1vD;il8Y;hom,thD;anDy;!a4i4;aZeWiMoHuEyD;l2Jr1;hamEr6XstaD;fa,p5C;ed,mH;di0We,hamFis2FntEsDussa;es,he;e,y;ad,ed,mD;ad,ed;cIgu4hai,kGlFnEtchD;!e8;a8Aik;house,o0Bt1;ae5YeA4olD;aj;ah,hDk7;aEeD;al,l;el,l;hElv2rD;le,ri8v2;di,met;ay0ck,hTjd,ks2DlRmadWnQrKs1tFuricExD;!imilian9Nwe8;e,io;eGhEiBtDus,yB;!eo,hew,ia;eDis;us,w;j,o;cHio,kGlFqu7Dsha8tDv2;iDy;!m,n;in,on;!el,oPus;!el9IoOus;iGu4;achDcolm,ik;ai,y;amEdi,eDmoud;sh;adDm5T;ou;aXeQiOlo3EoKuEyD;le,nd1;cGiFkDth3uk;aDe;!s;gi,s,z;as,iaD;no;g0nn7SrenFuDv8Jwe8;!iD;e,s;!zo;am,oD;n4r;a8Cevi,la5JnIoGst3thaFvD;eDi;nte;bo;!nD;!a6Sel;!ny;mFnErDur5Hwr5H;ry,s;ce,d1;ar,o5A;aLeGhaled,iDrist5Iu4Vy6X;er0p,rD;by,k,ollD;os;en0iGnDrmit,v44;!dEnDt5Z;e1Ay;a8ri59;r,th;cp3j5m66na73rEspAthem,uD;ri;im,l;a02eUiSoGuD;an,lDst2;en,iD;an,en,o,us;aNeLhnKkubBnIrGsD;eEhDi8Bue;!ua;!ph;dDge;an,i,on;!aDny;h,s,th5I;!ath5Hie,nC;!l,sDy;ph;o,qu2;an,mD;!mC;d,ffIrFsD;sDus;!e;a6BemEmai6oDry;me,ni0Y;i7Ty;!e60rD;ey,y;cKd9kImHrFsEvi3yD;!d9s1;on,p3;ed,od,rDv56;e5Nod;al,es4Xis1;a,e,oDub;b,v;k,ob,quD;es;aWbQchiPgNkeMlija,nuLonut,rJsFtDv0;ai,suD;ki;aEha0i7DmaDsac;el,il;ac,iaD;h,s;a,vinDw2;!g;k,nngu5S;!r;nacDor;io;ka;ai,rahD;im;aPeJoIuDydA;be2KgGmber4WsD;eyEsD;a2e2;in,n;h,o;m3ra3Gsse2wa4B;aHctGitGnrErD;be2Dm0;iDy;!q11;or;th;bMlLmza,nKo,rFsEyD;a4Jd9;an,s0;lGo50rFuDv7;hi4Gki,tD;a,o;is1y;an,ey;k,s;!im;ib;aVeRiPlenOoLrHuD;ilEsD;!tavo;herme,lerD;mo;aFegDov3;!g,orD;io,y;dy,h5Wnt;nzaErD;an,d1;lo;!n;lbe5Ano,oD;rg3Hvan5A;ne,oFrD;aDry;ld,rd5H;ffr7rge;brEl9rDv2;la28r3Sth,y;e3EielD;!i5;aTePiNlLorr0NrD;anFedDitz;!dCeDri2B;ri2A;cFkD;!ie,lD;in,yn;esLisD;!co,z36;etch3oD;yd;d4lDnn,onn;ip;deriFliEng,rnD;an06;pe,x;co;bi0di,hd;ar04dZfrYit0lSmKnHo2rFsteb0th0uge6vDym9zra;an,eD;ns,re36;gi,i0DnDrol,v2w2;est4Pie;oEriqDzo;ue;ch;aJerIiEmD;aIe2Z;lErD;!h0;!iD;o,s;s1y;nu4;be0Cd1iGliFmEt1viDwood;n,s;er,o;ot1Ys;!as,j4NsD;ha;a2en;!dCgAmGoEuEwD;a2Din;arD;do;o0Wu0W;l,nD;est;a01eRiOoHrGuFwEylD;an,l0;ay6ight;a6dl7nc0st2;ag0ew;minGnEri0ugDvydBy2D;!lB;!a2MnDov0;e8ie,y;go,iDykB;cDk;!k;armuEeDll1on,rk;go;id;anKj0lbeJmetri5nHon,rGsFvEwDxt3;ay6ey;en,in;hawn,mo0B;ek,ri0I;is,nDv3;is,y;rt;!dD;re;an,lNmLnKrGvD;e,iD;! lucDd;as,ca;en,iFne8rDyl;eDin,yl;l3Bn;n,o,us;!e,i4ny;iDon;an,en,on;e,lB;as;a09e07hYiar0lNoIrGuEyrD;il,us;rtD;!is;aDistob0U;ig;dy,lGnErD;ey,neli5y;or,rD;ad;by,e,in,l2t1;aIeFiDyK;fDnt;fo0Ft1;meEt5velaD;nd;nt;rFuEyD;!t1;de;enD;ce;aIeGrisEuD;ck;!tD;i0oph3;st3;er;d,rDs;b4leD;s,y;cDdric,sA;il;lGmer1rD;ey,lEro8y;ll;!os,t1;eb,v2;a07eZiVlaUoRrEuDyr1;ddy,rtK;aLeGiFuEyD;an,ce,on;ce,no;an,ce;nEtD;!t;dEtD;!on;an,on;dEndD;en,on;!foDl7y;rd;bErDyd;is;!by;i6ke;bFlEshD;al;al,lC;ek;nHrDshoi;at,nEtD;!r1C;aDie;rd14;!edict,iEjam2nC;ie,y;to;kaMlazs,nHrD;n7rDt;eDy;tt;ey;dDeE;ar,iD;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il04m00nSputsiRrIsaHuFveEyDziz;a0kh0;ry;gust5st2;us;hi;aKchJiIjun,maHnFon,tDy0;hDu09;ur;av,oD;ld;an,nd0H;!el,ki;ie;ta;aq;as,dIgel0CtD;hoGoD;i6nD;!i09y;ne;ny;er,reDy;!as,i,s,w;iFmaDos;nu4r;el;ne,r,t;an,bePd9eJfHi,lGonFphXt1vD;aNin;on;so,zo;an,en;onTrD;edU;c,jaGksandFssaGxD;!andD;er,ru;ar,er;ndD;ro;rtN;ni;d9mA;ar;en;ad,eD;d,t;in;onD;so;aEi,olfDri0vik;!o;mDn;!a;dHeGraEuD;!bakr,lfazl;hDm;am;!l;allIelFoulaye,ulD;!lDrF;ah,o;! rD;ahm0;an;ah;av,on", - "Person": "true¦ashton kutchTbScNdLeJgastOhHinez,jFkEleDmCnettKoBp9r4s3t2v0;a0irgin maH;lentino rossi,n go3;aylor,heresa may,iger woods,yra banks;addam hussain,carlett johanssKlobodan milosevic,uC;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", - "PhrasalVerb": "true¦0:7E;1:72;2:7Q;3:7G;4:6V;5:7T;6:7I;7:71;8:6O;9:6P;A:5T;B:7L;C:7J;D:7D;E:7C;F:6Q;G:7S;H:46;a7Yb6Jc5Sd5Oe5Mf4Lg43h3Miron0j3Ik3Dl2Xm2Ln2Jo2Hp1ZquietFr1Ms0FtVuTvacuum 1wLyammerEzI;eroAip JonI;e0k0;by,up;aOeLhKiJorIrit5H;d 1k35;mp0n2Xpe0r8s8;eel Dip G;aJiIn2L;gh 0Crd0;n Dr 3S;it 60k8lk6rm 6Bsh 7Lt6Ov53;rgeEsI;e 9herA;aXeVhTiPoNrKuIype 68;ckArn I;d2in,o3Vup;aJiIot0y 2L;ckleFp G;ckFde 02;neFp Is4Q;d2o71up;ck KdJe Igh69me0p o0Kre0;aw3ba4d2in,up;e 60y 1;by,oC;ink Irow 6B;ba4ov7up;aIe 4Vll52;m 1r 01;ckEke Jlk I;ov7u53;aIba4d2in,o3Fup;ba4ft7p58w3;a0Nc0Me0Gh0Ci09l05m04n03o02pXquare WtOuMwI;earKiI;ngJtch I;aw3ba4o75; by;ck Iit 1m 1ss0;in,up;aNe10iMoKrIucH;aigh1ZiI;ke 6En3C;p Irm22;by,in,oC;nHr 1tc3V;cHmp0nd Ir6Xve6y 1;ba4d2up;d2oCup;arHeLiKlJrIurE;ingEuc8;a3Hit 47;l16n 1;e5Qll0;be4Prt0;ap 4Row D;ash 5Doke0;eep JiIow 9;c3Yp 1;in,oI;ff,v7;gn 4WngJt Iz8;d2o5up; al52le0;aKoIu4S;ot Iut0w 6B;aw3ba4f3IoC;cHdeAk56ve6;e Mll0nd LtI; Itl4G;d2in,o5upI;!on;aw3ba4d2in,o2Aup;o5to;al4Zout0rap4Z;il6v8;aTeQiPoLuI;b 4Sle0n Istl8;aIba4d2in5Ho3Tt3Bu3R;c29w3;ll Kot JuI;g2Vnd6;a29f32o5;arBin,o5;ng 51p6;aIel6inAnt0;c5Bd I;o33u0L;cHt0;aVeUiTlRoPrMsyc2JuI;ll Kt I;aIba4d2in,o1Rt3Fup;p3Kw3;ap3Jd2in,o5t3Dup;attleEess JiLoI;p 1;ah1Ron;iIp 5Fr3XurFwer 5F;nt0;ay4BuI;gAmp 9;ck Gg0leEn 9p48;el 4JncilA;c41ir 2Rn0ss KtJy I;ba4oC; d2c27;aw3ba4o1C;pIw3W;e3Vt D;arrowFerd0oI;d6teF;aQeNiMoKuI;ddl8lI;l 3I;cHp 1uth6ve I;al3Md2in,o5up;ss0x 1;asur8lJss I;a1Jup;t 9;ke Jn 9rIs1Sx0;k 9ry6;do,o47up;aVeTiOoIuck0;aMc3Gg LoIse0;k Ise3E;aft7ba4d2forw2Jin45ov7uI;nd7p;in,o0Q;d 9;e LghtKnJsIv1Y;ten G;e 1k 1; 1e36;arBd2;av1Mt 36velI; o3T;c8p 1sh ItchEugh6y20;in3To5;eJick6nock I;d2o3P;eIyA;l 2Pp I;aw3ba4d2fXin,o0Bto,up;aKoJuI;ic8mpA;ke30tF;c39zz 1;aUePiMoJuI;nkerFrry 1s0Z;lIneArse2W;d Ie 1;ba4d2fast,o05up;de Jt I;ba4on,up;aw3o5;aIlp0;d Kl 2Ar It 1;fIof;rom;in,oXu1H;cHm 1nJve Iz25;it,to;d Ig 2EkerK;d2in,o5;aWeQive Oloss 22oKrJunI; f0Q;in3Gow 2A; Iof 0Y;aJb1Dit,oIrBt0Su18;ff,n,v7;bo5ft7hOw3;aw3ba4d2in,oIup,w3;ff,n,ut;a1Dek0t I;aJb17d2oIrBup;ff,n,ut,v7;cJhIl1WrBt,w3;ead;ross;d aJnI;g 1;bo5;a0Ce05iWlSoOrKuI;cHel 1;k 1;eJighten IownEy 1;aw3oC;eIshe1N; 1z8;lKol I;aIwi1G;bo5rB;d 9low 1;aJeIip0;sh0;g 9ke0mIrI;e G;gPlNnLrJsIzzle0;h G;e Im 1;aw3ba4up;d0isI;h 1;e Il 19;aw3fN;ht ba4ure0;eNnJsI;s 1;cKd I;fIoC;or;e D;dWl 1;cMll Irm0t0W;ap05bKd2in,oJtI;hrough;ff,ut,v7;a4ehi20;e J;at0dge0nd Iy8;oCup;oKrI;ess 9op I;aw3bUin,o1D; 0Eubl8;aYhVlean 9oIross Dut 10;me LoJuntI; o1T;k 1l I;d2oC;aObNforLin,oKtJuI;nd7;ogeth7;ut,v7;th,wI;ard;a4y;pIrBw3;art;eIipA;ck DeI;r 1;lOncel0rLsKtch JveA; in;o1Cup;h Dt6;ry JvI;e 01;aw3o18;l ImF;aIba4d2o16up;rBw3;a0Ne0El07oYrNuI;bblKcklZil05lk 9ndlZrn 0Bst JtIy Gzz6;t D;in,o5up;e I;ov7;anReaPiIush6;ghMng I;aJba4d2forIin,o5up;th;bo5lIrBw3;ong;teI;n 1;k I;d2in,o5up;ch0;arPgFil 9n8oLssKttlJunce Ix D;aw3ba4;e 9; arB;k Dt 1;e 1;d2up; d2;d 1;aNeed0oIurt0;cKw I;aw3ba4d2o5up;ck;k I;in,oP;ck0nk0st6; oOaLef 1nd I;d2ov7up;er;up;r0t I;d2in,oIup;ff,ut;ff,nI;to;ck Oil0nKrgJsI;h D;ainEe D;g DkE; on;in,o5; o5;aw3d2o5up;ay;cRdNsk Kuction6; oC;ff;arBo5;ouI;nd;d I;d2oIup;ff,n;own;t G;o5up;ut", - "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ay,ight,ust;an,o0;uld", - "Adjective": "true¦0:7P;1:84;2:83;3:8A;4:7W;5:5S;6:58;7:4O;8:4N;9:81;A:6I;a6Wb6Gc63d5Je54f4Hg49h3Wi39j37k36l2Vm2Ln2Bo1Wp1Dquack,r12s0Ft07uMvJwByear5;arp0eFholeEiDoB;man5oBu6P;d6Rzy;despr7Ls5S;!sa7;eClBste2A;co1Nl o4W;!k5;aCiBola4M;b89ce versa,ol5H;ca3gabo6Gnilla;ltUnHpCrb5Msu4tterB;!mo7G; Eb1SpDsBti1M;ca7etBide dKtairs;!ti2;er,i3U;f36to da1;aLbeco75convin29deIeHfair,ivers4knGprecedVrEsCwB;iel3Nritt6A;i1XuB;pervis0spec3Y;eBu5;cognHgul6Tl6T;own;ndi2v64xpect0;cid0rB;!grou5ZsB;iz0tood;b7pp0Dssu6UuthorB;iz0;i26ra;aGeEhDi6AoCrB;i1oubl0us3M;geth6p,rp6Vuc67;ough4Wril33;en60l32mpBrr2X;o6Ati2;boo,lBn;ent0;aWcVeThSiQmug,nobbi3LoOpNqueami3LtFuBymb6H;bDi gener5DpBrpri6D;erBre0N;! dup6b,i2C;du0seq52;anda77eGiFrBunni2y3F;aightCiB;ki2p0; fBfB;or5K;ll,r5S;aBreotyp0;dfa6Cmi2;a55ec2Gir1Hlend6Cot on; call0le,mb6phist1XrBu0Vvi48;d6Ary;gnifica3nB;ce51g7;am2Re6ocki2ut;cBda1em5lfi32ni1Wpa6Jre8;o1Er42;at5Gient28reec5G;cr0me;aJeEiCoB;bu60tt51uQy4;ghtBv4;!-2BfA;ar,bel,condi1du6Dfres5AlEpublic42sCtard0vB;ea26;is4CoB;lu1na3;aQe1Cuc4A;b5TciBllyi2;al,st;aOeLicayu8lac5Ropuli5QrCuB;bl5Jmp0n51;eGiDoB;!b07fu5RmiBp6;ne3si2;mCor,sBva1;ti8;a53e;ci5MmB;a0EiB;er,um;ac20rBti1;fe9ma2XpleBv38;xi2;rBst;allelDtB;-tiBi4;me;!ed;bLffJkIld fashion0nHpGrg1Eth6utFvB;al,erB;!all,niCt,wB;eiBrouB;ght;do0Ter,g2Qsi4B;en,posi1; boa5Og2Oli8;!ay; gua5MbBli8;eat;eDsB;cBer0Eole1;e8u3O;d2Xse;aJeIiHoBua4X;nFrCtB;ab7;thB;!eB;rn;chala3descri58stop;ght5;arby,cessa44ighbor5xt;k0usia1A;aIeGiDoBultip7;bi7derBl0Vnth5ot,st;a1n;nBx0;dblo0RiaBor;tu37;ande3Qdi4NnaBre;ci2;cBgenta,in,j01keshift,le,mmoth,ny,sculi8;ab33ho;aKeFiCoBu15;uti14vi2;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda3K;!-0C;ngu3Zst,tt6;ap1Xind5no0A;agg0uB;niMstifi0veni7;de4gno4Klleg4mQnEpso 20rB;a1rB;eleBita0J;va3; KaJbr0corIdGfluenQiQnFsEtCviB;go0Fti2;a9en3SoxB;ic3B;a8i2Vul0D;a1er,oce3;iCoB;or;re9;deq3Qppr33;fBsitu,vitro;ro3;mFpB;arDerfe9oBrop6;li1rtB;a3ed;ti4;eBi0S;d2Vn3C;aIeFiDoBumdr3I;ne36ok0rrBs08ur5;if2Z;ghfalut1QspB;an2X;aClB;liYpfA;li2;lEnDrB;d04roB;wi2;dy;f,low0;ainfAener2Oiga24lHoGraDuB;ilBng ho;ty;cCtB;efAis;efA;ne,od;ea2Iob4;aTeNinMlKoFrB;a1VeDoz1MustB;raB;ti2;e2Gq10tfA;oDrB; keeps,eBm6tuna1;g03ign;liB;sh;aBue3;g31tte1P;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i3l27r Cux,voB;ri1uri1;oBreac1E;ff;aLfficie3lKmHnFre9there4veExB;a9cess,pe1QtraCuB;be2Nl0E;!va1E;n,ryday; BcouraEti0O;rou1sui1;erCiB;ne3;gi2;abo23dMe17i1;g6sB;t,ygB;oi2;er;aReJiDoBrea14ue;mina3ne,ubB;le,tfA;dact1Bfficu1OsCvB;er1K;creDeas0gruntl0hone1FordCtB;a3ressM;er5;et; HadpGfFgene1PliDrang0spe1PtCvoB;ut;ail0ermin0;be1Mca1ghB;tfA;ia3;an;facto;i5magBngeroUs0G;ed,i2;ly;ertaMhief,ivil,oDrB;aBowd0u0G;mp0vZz0;loImGnCrrBve0P;e9u1I;cre1fu0LgrDsCtB;empo0Dra0E;ta3;ue3;mer08pleB;te,x;ni4ss4;in;aNeIizarHlFoCrB;and new,isk,okN;gCna fiUttom,urgeoB;is;us;ank,indB;!i2;re;autifAhiDloCnBst,yoD;eUt;v0w;nd;ul;ckCnkru0WrrB;en;!wards; priori,b0Mc0Jd09fra08g04h03lYmWntiquVppSrMsIttracti06utheHvEwB;aCkB;wa0T;ke,re;ant garCerB;age;de;ntU;leep,piDsuDtonB;isB;hi2;ri2;ab,bitEroDtiB;fiB;ci4;ga3;raB;ry;are3etiNrB;oprB;ia1;at0;aJuB;si2;arEcohCeBiIl,oof;rt;olB;ic;mi2;ead;ainDgressiConiB;zi2;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda3;e3oCtra9;ct;lu1rbi2;ng;te;pt;aBve;rd;aze,e;ra3;nt", - "Comparable": "true¦0:41;1:4I;2:45;3:4B;4:3X;5:2Y;a4Ob44c3Od3De35f2Rg2Fh24i1Vj1Uk1Rl1Jm1Dn17o15p0Vqu0Tr0KsTtMuIvFw7y6za13;ell27ou3;aBe9hi1Yi7r6;o3y;ck0Ode,l6n1ry,se;d,y;a6i4Mt;k,ry;n1Tr6sK;m,y;a7e6ulgar;nge4rda2xi3;g9in,st;g0n6pco3Mse4;like0t6;i1r6;ue;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te4;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft5;aAe9iff,r7u6;pXr1;a6ict,o3;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi3;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp5;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p5;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in4le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b5isy,rm15sy;ce,mb5;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt5ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti3;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b5id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te4;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t5uiY;u1y;aIeeb5iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get4mG;my;erce8n6rm;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi3;gey,lm8r6;e4i3;ful;!i3;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i3;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", - "TextValue": "true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th", - "Ordinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", - "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", - "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", - "Adverb": "true¦a08by 06d02eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,well,ye0;p,s; to,wards5;h1iny bit,o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hYtimes,w09;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag02moW; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboU;deed,steV;en0;ce;or2u0;lArther0;!moJ; 0ev3;examp0good,suH;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju8trop;far,n0;ow; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", - "Determiner": "true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er" - }; + var _version = '13.10.0'; var entity = ['Person', 'Place', 'Organization']; var nouns = { @@ -4064,6 +4052,10 @@ isA: 'Value', notA: ['Ordinal'] }, + Fraction: { + isA: 'Value', + notA: ['Noun'] + }, RomanNumeral: { isA: 'Cardinal', //can be a person, too @@ -4368,6 +4360,58 @@ var tags = build(); + var _data = { + "Comparative": "true¦better", + "Superlative": "true¦earlier", + "PresentTense": "true¦is,sounds", + "Value": "true¦a few", + "Noun": "true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc", + "Copula": "true¦a1is,w0;as,ere;m,re", + "PastTense": "true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan", + "Condition": "true¦if,lest,unless", + "Preposition": "true¦'o,-,aLbIcHdGexcept,fFiDmidQnotwithstandiRoBpSqua,sAt6u3vi2w0;/o,hereNith0;!in,oR;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n2ut;!f;f,n0;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", + "Gerund": "true¦accord0be0develop0go0result0stain0;ing", + "Negative": "true¦n0;ever,o0;!n,t", + "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", + "Plural": "true¦records", + "Conjunction": "true¦&,aFbBcuz,how9in caEno8o7p5supposing,t2v1wh0yet;eth9ile;ers4s;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", + "Abbreviation": "true¦a0Jb0Gc0Ad08e05f02g01h00iYjWkanVlTmNnKoJpFque,rDs8t6u5v2w0;is0r,y0B;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;ce,e0;l,mp,nn,x;ask,e2fc,gt,i1q,r,s,t,u0;pt,rg;r,tu;c,nJp0;!t;b,d,e0;pGs,v;a,d,ennNhd,l,p,r1s0vt;!eud;ef,o0;b,f,n;ct,kla,nt;e0ov;b0e;!r;a4d,essrs,i1lle,me,r7s0t;!tr;n1s0;c,ter;!n;!j,r,sc;at,it,lb,ng,t0;!d;!s;an,d,r,u0;l,n;a,da,e,n0;c,f;on,wy;a,en,ov;e1ig,l0m,r,t,y;!a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0ist,r;c,f,pt,t;a3ca,l,m2o0pl,res,yn;!l0m1nn,rp;!o;dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v", + "Pronoun": "true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s", + "Singular": "true¦0:15;1:18;2:12;a15b0Sc0Jd0Ce09f04gZhViUjel0kitty,lSmOnNoMpHquestionGrEs9t6u4w3;ay,om02;nc0Zs 3;doll0Kst0M; rex,a4h3ic,ragedy,v show;ere,i1;l0x return;i6ky,omeoMt3uper bowl,yst14;ep4ri1u3;de0Xff;faSmoS;st2ze;al0i1o3;om,se;! mark;a6i2la5r4u3;dPrpoH;eroga00ie0Gobl0U;te,y2;rt,te0N;bjWceJthers,verview;othi1umb2;a5ee08o3;del,m3nopo0rni1th2;!my;n,yf0;i3unch;ne;ci1nsect;ead start,o3uman right;l0me4u3;se;! run;adf0entlem6irl02laci2od,rand4u3;l0y; slam,fa3mo3;th2;an;a6ella,ly,ol0r4un3;di1;ee market,iWo3;nti2sP;mi0th2;conomy,gg,ner7ven4x3;ampTecu9;i1t;ad8e5inn2o3ragonf0ude;cumentGg3i0l0or;gy;ath,t3;ec3;tive;!dy;a9eili1h7i5o3redit card;ttage,u3;ri2sin;ty,vil w3;ar;andeli2ocol3;ate;n3rF;ary;aCel0lesJo8r5u3;n3tterf0;ti1;eakfa4o3;!th2;st;dy,tt5y3;!fri3;end;le;nki1r3;ri2;er;d5l0noma0u3;nt;ly; homin5verti3;si1;ng;em", + "FemaleName": "true¦0:J3;1:J7;2:IG;3:IF;4:IX;5:IK;6:JO;7:H0;8:JK;9:JG;A:HN;B:HY;C:IT;D:JD;E:IP;F:HC;G:I0;aGRbFLcDPdCYeBOfB4gADh9Ti9Gj8Gk7Gl60m49n3No3Jp37qu36r2Ds16t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof2;e3Uf2la,ra;h3iKlIna,ynH;ab,ep;da,ma;da,h3iHra;nab;aKeJi0Fol5BuIvH;etAonDO;i0na;le0sen2;el,gm3Jn,rGJs8W;aoHme0nyi;m62yAE;aMendDYhiDFiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;cIktoriBMlAole7viH;anC3enJ0;kF9tor2;da,lA9nus,rHs0;a,nHoniH4;a,iFQ;leHnesH4;nIHrH;i1y;g9rHxH5;su5te;aYeUhRiNoLrIuHy3;i,la;acIZiHu0L;c2na,sH;hBPta;nHr0H;iBNya;aJffaEOnHs6;a,gtiH;ng;!nFQra;aIeHomasi0;a,l9Po8Ares1;l2ndolwethu;g9Go88rIssH;!a,ie;eHi,ri8;sa,za;bPlNmLnJrIs6tHwa0;ia0um;a63yn;iHya;a,ka,s6;arB6e3iHmEDra;!ka;a,iH;a,t6;at6it6;a0Fcarlet3We0BhXiTkye,neza0oRtNuIyH;bIBlvi1;e,ha,mayIEni7sIzH;an3MetAie,y;anHi8;!a,e,nH;aEe;aJeH;fHl5GphH;an4;cHZr5;b2fiA8m0OnHphi1;d3ia,ja,ya;er3lJmon1nIobh8PtH;a,i;dy;lEPv2;aMeIirHo0risF7y5;a,lDK;ba,e0i5lJrH;iHrDOyl;!d8Hfa;ia,lDX;hd,iMki3nJrIu0w0yH;la,ma,na;i,le9on,ron;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye81vH;da,inj;e0ife;en1i0ma;anA5bNd3Nh1RiBkMlLmJndIrHs6vannaE;aEi0;ra,y;aHi3;nt6ra;lDKma,ome;ee0in8Ru3;in1ri0;a05e00hYiVoIuH;by,thDH;bScRghQl2KnPsJwIxH;anAXie,y;an,e0;aIeHie,lD; merBLann8ll1marDBt7;!lHnn1;iHyn;e,nH;a,d9K;da,i,na;ayy8D;hel62io;bDKer7yn;a,cIkHmas,n9Fta,ya;ki,o;helGki;ea,iannGDoH;da,n1K;an0bJem9Agi0iInHta,y0;a88ee;han83na;a,eH;cEAkaE;bi0chIe,i0mo0nHquEKvCy0;di,ia;aEIelHiB;!e,le;een4ia0;aNeMhKipaluk,oJrHute66;iHudenCQ;scil3LyamvaB;lly,rt2;ilome0oebe,ylH;is,lis;arl,ggy,nelope,r5t3;ige,m0TnKo5rvaDGtIulH;a,etAin1;ricHsy,tBY;a,e,ia;do3i06;ctav2dIfCZis6lHphCZumC3yunbileg;a,ga,iv2;eHvAC;l2tA;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aEeCma;ll1mi;aNcLhariBOkKlaJna,sHta,vi;anHha;ur;!y;a,iDTki;hoGk9VolH;a,eDJ;!mh;hir,lHna,risFsreC;!a,lBT;asuLdKh2i6CnJomi8rgEPtHzanin zah3;aHhal4;li1s6;cy,etA;a,e9iEV;nngu30;a09ckenz4e01iMoJrignayani,uriDDyH;a,rH;a,lNna,tG;bi0i3llBInH;a,iH;ca,ka,qD3;a,cTkaSlNmi,nLrItzi,yH;ar;aIiam,lH;anEO;!l,nB;dy,eHh,n4;nhGrva;aKdJiCPlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5EgNi,lKrH;edi79iIjem,on,yH;em,l;em,sF;an4iHliF;nHsCE;a,da;!an,han;b0DcASd0Be,g09ha,i08ja,l06n04rLsoum60tKuIv82x9IyHz4;a,bell,ra,soB9;de,rH;a,eC;h8Fild1t4;a,cYgUiKjor4l7Sn4s6tJwa,yH;!aHbe6Wja9lAE;m,nBH;a,ha,in1;!aJbCBeIja,lDna,sHt64;!a,ol,sa;!l1H;! Jh,mInH;!a,e,n1;!awit,i;aliAHcJeduarBfernIjHlui5Y;o6Ful2;anB;ecil2la3;arJeIie,oHr44ueriA;!t;!ry;et42i37;el4Ui76y;dHon,ue5;akran7y;ak,en,iHk,lo3O;a,ka,nB;a,re,s4te;daHg4;!l3A;alDd4elHge,isDBon0;ei9in1yn;el,le;a0Ne0CiYoQuLyH;d2la,nH;!a,dIeBGnHsCL;!a,eBF;a,sCJ;aCWcJel0PiFlIna,pHz;e,i7;a,u,wa;iHy;a0Se,ja,l2JnB;is,l1SrJttIuHvel4;el5is1;e,ie;aKeIi8na,rH;a86i8;lHn1t7;ei;!in1;aSbb9CdRepa,lMnJsIv2zH;!a,be5LetAz4;a,etA;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lHy;iHy;aA0e;!aH;!n5F;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx4y5;iHt4;c2t2;e2LlCG;la,nHra;a,ie,o3;a,or1;a,gh,laH;!ni;!h,nH;a,d3e,n5P;cOdon97iNkes6mi9Ana,rMtJurIvHxmi,y5;ern1in2;a,e54ie,yn;as6iIoH;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a04eZhXiOlAKoNrJyH;lHra;a,ee,ie;istHy6D;a,en,iIyH;!na;!e,n59;nul,ri,urtnB0;aOerNlAZmJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stC;!na,ra;aHei3ongordzol;dij1w5;el7QiKjsi,lJnIrH;a,i,ri;d3na,za;ey,i,lBDs4y;ra,s6;bi7cAJdiat7IeB2iRlQmPnyakuma19rNss6KtKvi7yH;!e,lH;a,eH;e,i8L;a6DeIhHi4NlDri0y;ar6Ber6Bie,leCrB2y;!lyn8Gri0;a,en,iHl5Soli0yn;!ma,n3VsF;a5il1;ei8Ei,l4;a,tl6L;a07eYiVoNuH;anLdKliHst63;a8HeHsF;!n9tH;!a,te;e5Ji3Jy;a,i7;!anNcelDd6RelGhan7RlLni,sIva0yH;a,ce;eHie;fHlDph5U;a,in1;eHie;en,n1;!a,e,n41;lHng;!i1ClH;!i1B;anMle0nJrIsH;i8Csi8C;i,ri;!a,elGif2CnH;a,etAiHy;!e,f2A;a,e8EiInH;a,e8DiH;e,n1;cMd1mi,nIque4Xsmin3Ovie3y9zH;min8;a8eIiH;ce,e,n1s;!lHsFt0F;e,le;inIk4lDquelH;in1yn;da,ta;lRmPnOo0rNsIvaHzaro;!a0lu,na;aJiIlaHob84;!n9N;do3;!belHdo3;!a,e,l39;a77en1i0ma;a,di3es,gr6Yji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHusFyacin2B;da,ll4rten23snH;a,i9Q;lImaH;ri;aIdHlaI;a,egard;ry;ath1CiJlInriet7rmi9sH;sa,t1B;en2Sga,mi;di;bi2Dil8IlNnMrJsItHwa,yl8Iz7H;i5St4;n5Yti;iHmo51ri52;etH;!te;aEnaE;a,ey,l4;a03eXiSlQoOrKunJwH;enHyne1Q;!dolD;ay,el;acIetHiselB;a,chC;e,ieH;!la;ld1AogooH;sh;adys,enHor2yn2H;a,da,na;aKgi,lIna,ov89selHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald3Pi,m3Ctru8B;etAi4W;a,eHna;s26vieve;ma;bIil,le,mHrnet,yG;al5Ni5;i5FrielH;a,l1;aVeSiRloOoz2rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0O;n1s61;!ca;!rH;a,encH;e,ia;en,o0;lIn0rnH;!anB;ec2ic2;jr,n7rKtHy8;emIiHma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Nd0Ne0Mi0Lk7l04mWn4YrTsNtMuLvH;aJelIiH;!e,ta;in0Gyn;!ngel2S;geni1la,ni45;h5Sta;mLperanKtH;eIhHrel5;er;l30r8;za;a,eralB;iHma,nest2Jyn;cHka,n;a,ka;a,eMiJmH;aHie,y;!li9;lHn1;ee,iHy;a,e,ja;lHrald;da,y;aWeUiNlMma,no3oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c2da,f,nMsJzaH;!betHve7;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a;!in1na;leCs6;vi;eIiHna,wi0;e,th;l,n;aYeMh2iLjeneKoHul30;lor5Tminiq4In3FrHtt4;a,eCis,la,othHthy;ea,y;ba;an0AnaEon9x4ya;anQbPde,eOiMja,lJmetr2nHsir5K;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6D;dHrdH;re;!d5Cna;!b2HoraEra;a,d3nH;!a,e;hl2i0l0HmNnLphn1rIvi1XyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,etAiH;!ca,el1Cka,z;arHia;is;a0Se0Oh05i03lVoKrIynH;di,th2;istHy05;al,i0;lPnMrIurH;tn1E;aJd2NiHn2Nri9;!nH;a,e,n1;!l1X;cepci59n4sH;tanHuelo;ce,za;eHleC;en,tA;aJeoIotH;il51;!pat3;ir8rJudH;etAiH;a,ne;a,e,iH;ce,sZ;a3er3ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Ren,iHy;!an1e,n1;deJlseIrH;!i8yl;a,y;li9;nMrH;isKlImH;ai9;a,eHotA;n1tA;!sa;d3elGtH;al,elG;cIlH;esAi44;el2ilH;e,ia,y;itlZlYmilXndWrOsMtHy5;aKeJhHri0;erHleCrDy;in1;ri0;li0ri0;a33sH;a32ie;a,iNlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eHie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrH;andSeQiJoIyH;an0nn;nwDok8;an3DdgLg0XtH;n2XtH;!aInH;ey,i,y;ny;etH;!t8;an0e,nH;da,na;i8y;bbi8glarIlo05nH;i7n4;ka;ancHossom,ythe;a,he;an17lja0nHsm3I;i7tH;ou;aUcky,linTni7rPssOtJulaEvH;!erlH;ey,y;hJsy,tH;e,iHy8;e,na;!anH;ie,y;!ie;nHt6yl;adIiH;ce;etAi9;ay,da;!triH;ce,z;rbJyaH;rmH;aa;a3ie,o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn09oi,r04sUtTuPvOwa,yIzH;ra,u0;aKes6gJlIseH;!l;in;un;!nH;a,na;a,i2Ir2J;drJgus1RrIsteH;ja;el2;a,ey,i,y;aahua,he0;hIi2Gja,mi7s2DtrH;id;aMlIraqHt21;at;eIi8yH;!n;e,iHy;gh;!nH;ti;iJleIo6pi7;ta;en,n1tA;aHelG;!n1J;a00dje5eYgUiSjQnJohito,toHya;inetAnH;el5ia;!aKeIiHmJ;e,ka;!mHtA;ar4;!belIliFmU;sa;!le;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tA;te;! JbImHstasiNya;ar2;el;cla3jul2pau5;aLberKeliJiHy;e,l2naH;!ta;a,ja;!ly;hGiIl2nB;da;a,ra;le;aWba,ePiMlKma,thJyH;a,c2sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c2is6jaKksaKna,sJxH;aHia;!nd3;ia,saH;nd3;ra;ia;i0nIyH;ah,na;a,is,naEoud;la;c6da,leCmNnLsH;haElH;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;!gaK;ey,i8y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya", + "Actor": "true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", + "Honorific": "true¦a01bYcQdPeOfiJgIhon,jr,king,lHmCoffic00p7queen,r3s0taoiseach,vice6;e1fc,gt,ir,r,u0;ltRpt,rg;cond liInBrgeaJ;abbi,e0;ar1p9s,v0;!erend; admirX;astOhd,r0vt;esideDi1of0;!essM;me mini4nce0;!ss;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al", + "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", + "Uncountable": "true¦0:1I;1:1X;2:16;a1Rb1Jc1Ad17e10f0Ug0Nh0Ii0Ej0Dknowled1Ql08mYnews,oXpTrOsDt8vi7w3;a5ea0Bi4oo3;d,l;ldlife,ne;rmth,t0;neg17ol0Ctae;e6h5oothpaste,r3una;affTou3;ble,sers,t;ermod1Mund0;a,nnis;aBcene0Aeri2hAil9kittl2now,o8p6t4u3;g10nshi0Q;ati1Le3;am,el;ace1Ee3;ci2ed;ap,cc0;k,v0;eep,ingl2;d0Dfe18l3nd;m11t;a6e4ic3;e,ke0M;c3laxa0Isearch;ogni0Hrea0H;bi2in;aPe5hys1last9o3ress04;l3rk,w0;it1yA;a12trZ;bstetr1il,xygen;aAe8ilk,o5u3;mps,s3;ic;n3o0I;ey,o3;gamy;a3chan1;sl2t;chine3il,themat1; learn0Bry;aught0e5i4ogi0Su3;ck,g0I;ce,ghtn08ngui0QteratN;a3isM;th0;ewelAusti0L;ce,mp3nformaUtself;a3ortan0J;ti3;en0H;a6isto5o3;ck3mework,n3spitali0B;ey;ry;ir,libut,ppiD;ene6o4r3um,ymna0D;aCound;l3ssip;d,f; 3t1;editQpo3;ol;i7lour,o4urnit3;ure;od,rgive3uri0wl;ne3;ss;c9sh;conom1duca8lectr7n5quip6th1very3;body,o3thH;ne;joy3tertain3;ment;iciPon1;tiI;ar4iabet2raugh4;es;ts;aAelcius,h6iv1l5o3urrency;al,ld w3nfusiDttD;ar;ass1oth5;aos,e3;e4w3;ing;se;r7sh;a7eef,i4lood,owls,read,utt0;er;lliar4s3;on;ds;g3ss;ga3;ge;c8dvi7ero5ir4mnes3rt,thlet1;ty;craft;b1d3naut1;ynam1;ce;id,ou3;st1;ics", + "Infinitive": "true¦0:6S;1:76;2:5C;3:74;4:73;5:67;6:6F;7:6Y;8:6Q;9:72;A:70;B:6X;C:5X;D:77;E:6L;F:5B;a6Kb66c57d4De3Xf3Jg3Dh37i2Uj2Sk2Ql2Hm26n23o1Yp1Jr0Rs06tYuTvOwHyG;awn,ield;aJe1Zhist6iIoGre6D;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tEve;n,raD;d0t;aJiHoG;te,w;eGsB;!w;l6Jry;nHpGr4se;gra4Pli41;dGi9lo5Zpub3Q;erGo;mi5Cw1I;aMeLhKig5SoJrHuGwi7;ne,rn;aGe0Mi5Uu7y;de,in,nsf0p,v5J;r2ZuE;ank,reatC;nd,st;lk,rg1Qs9;aZcWeVhTi4Dkip,lSmRnee3Lo52pQtJuGwitE;bmBck,ff0gge7ppHrGspe5;ge,pri1rou4Zvi3;ly,o36;aLeKoJrHuG;dy,mb6;aFeGi3;ngthCss,tE;p,re;m,p;in,ke,r0Qy;la58oil,rink6;e1Zi6o3J;am,ip;a2iv0oG;ck,rtCut;arEem,le5n1r3tt6;aHo2rG;atEew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5V;eGiew,o36;al,l,rG;se,t;aFi2u44;eJi7oItG;!o2rG;i5uc20;l3rt;mb6nt,r3;e7i2;air,eHlGo43r0K;a8y;at;aFemb0i3Zo3;aHeGi3y;a1nt;te,x;a5Dr0J;act1Yer,le5u1;a13ei3k5PoGyc6;gni2Cnci6rd;ch,li2Bs5N;i1nG;ge,k;aTerSiRlOoMrIuG;b21ll,mp,rGsh;cha1s4Q;ai1eIiDoG;cGdu8greAhibBmi1te7vi2W;eAlaim;di5pa2ss,veD;iDp,rtr46sGur;e,t;aHead,uG;g,n4;n,y;ck,le;fo34mBsi7;ck,iDrt4Mss,u1;bJccur,ff0pera9utweIverGwe;co47lap,ta22u1wG;helm;igh;ser3taF;eHotG;e,i8;ed,gle5;aMeLiIoHuG;ltip3Grd0;nit13ve;nHrr12sreprG;eseD;d,g6us;asu2lt,n0Nr4;intaFna4rHtG;ch,t0;ch,kGry;et;aMeLiJoGu1C;aHck,oGve;k,sC;d,n;ft,g35ke,mBnk,st2YveG;!n;a2Fc0Et;b0Nck,uG;gh,nE;iGno34;ck,ll,ss;am,oFuG;d4mp;gno2mQnGss3H;cOdica9flu0MhNsKtIvG;eGol3;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abBibB;lu1Fr1D;agi24pG;lemeDo22ro3;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppCrm,te;aKloAove1PrIuG;arGeAi15;ant39d;aGip,ow,umb6;b,sp;in,th0ze;aReaQiOlMoJrHuncG;ti3J;acGeshC;tu2;cus,lHrG;ce,eca7m,s30;d,l24;a1ZoG;at,od,w;gu2lGni1Xt,x;e,l;r,tu2;il,stCvG;or;a15cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte19;a18eHi2laFoGreA;rt,se;ct,riG;en8;ci1t;el,han4;abGima9;li1J;ab6couXdHfor8ga4han8j03riEsu2t0vG;isi2Vy;!u2;body,er4pG;hasiGow0;ze;a07eUiLoKrHuG;mp;aHeAiG;ft;g,in;d4ubt;ff0p,re5sHvG;iZor8;aKcHliGmiApl1Btingui14;ke;oGuA;uGv0;ra4;gr1YppG;ear,ro3;cOeNfLliv0ma0Fny,pKsHterG;mi0G;cribe,er3iHtrG;oy;gn,re;a0Be0Ai5osB;eGi0By;at,ct;m,pC;iIlHrG;ea1;a2i06;de;ma4n8rGte;e,kC;a0Ae09h06i9l04oJrG;aHeGoAu0Hy;a9dB;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aFin0VrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laF;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen4n4r4se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aSePloOoMrIuG;lGry;ly;igHuG;sh;htC;en;a7mb,o7rrGth0un8;ow;ck;ar,lHnefBtrG;ay;ie3ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waB;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri3;ue;!i3;eaJlIroG;aEve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e4ow;ee;rd;aRdIju7mBoR;it;st;!reA;ss;cJhie3knowled4tiva9;te;ge;ve;eIouDu1;se;nt;pt;on", + "Unit": "true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", + "Organization": "true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c", + "Demonym": "true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an", + "Possessive": "true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne", + "Currency": "true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s", + "City": "true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1ern1Mi0;en2Hlni2Z;lenc2Uncouv0Gr2Gughn;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg", + "Country": "true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an", + "Region": "true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma", + "Place": "true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt,rd;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s", + "WeekDay": "true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", + "Month": "true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il", + "Date": "true¦ago,t2week0yesterd4; e0e0;nd;mr2o0;d0morrow;ay;!w", + "FirstName": "true¦aKblair,cGdevFgabrieEhinaDjBk8l7m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is", + "LastName": "true¦0:9F;1:9V;2:9X;3:9H;4:9N;5:8J;6:9K;7:A0;8:9E;9:88;A:77;B:6E;C:6J;a9Ub8Lc7Kd6Xe6Rf6Dg5Vh58i54j4Pk45l3Nm2Rn2Eo26p1Nquispe,r17s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun7ZiDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s2;b0iss,lt0;a5Rgn0lDng,tanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr0Zss0val37;ba,obos;lasEsel7N;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1JhHi4j6ka3IoGrFsui,uD;om4ZrD;c4n0un1;an,embl8TynisA;dor95lst31m3rr9th;at5Mi7LoD;mErD;are6Ylaci64;ps2s0Y;hirBkah8Dnaka;a00chWeThPiNmKoItFuEvDzabo;en8Aobod34;ar7bot3lliv4zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Psa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmDngh,rbu;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Trra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr3saAto,v3;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Be0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag4es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1W;lishc24pDrti62u55we66;e2Tov48;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5PrEzD;demir,turk;ella3MtDwe5N;ega,iz;iDof6GsC;vDyn1F;ei8;aPri1;aLeJguy1iFoDune44ym4;rodahl,vDwak;ak3Uik5otn56;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray4varD;ro;jiDmu8shiD;ma;aXcVeQiPoIuD;lGnFrDssoli5T;atDpUr68;i,ov3;oz,te4B;d0l0;h4lIo0HrEsDza0Z;er,s;aFeEiDoz5r3Ete4B;!n6F;au,i8no,t4M;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeGij0j2ElFndErci0ssiDyer19;!er;e3Bo2Z;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Ns1;aSeMiIoGuEyD;!nch;k3nDo;d,gu;mbarDpe2Rvr3;di;!nDu,yana1R;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h4iSlQnez46oJrGuEvar4woD;k,n;cerDmar58znets5;a,o2G;aDem0i2Zyeziu;sni3PvD;ch3U;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3Q;huk;!ev3ic,s;e6uiveD;rt;eff0l3mu8nnun1;hn,lloe,minsArEstra31to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Pim0QoEuD;ng,r3;e2JhFnErge2Ju2NvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki26s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0CnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m4ng;a23dz3fEjga2Sk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz3g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aMeorgLheorghe,iJjonIoGrEuDw2;o,staf2Utierr7zm4;ayDg3iffitUub0;li1G;lub3Rme0JnD;calv9zale0I;aj,i;l,mDordaL;en7;iev3B;gnJlGmaFnd2No,rDs2Nuthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erMiIjeldsted,lor9oGrFuD;cDent9ji3F;hs;an1Wiedm4;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnandeVrD;arDei8;a,i;ov3;dHinste6riksCsDva0D;cob2ZpDtra2X;inoDosiM;za;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0YuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g4he0Hmingu7n2Ord19tD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w4;!ov3;gado,ic;th;bo0groot,jo03lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnErw6t2EviD;d5es,s;ieDku1S;ls1;ki;a05e00hNiobMlarkLoFrD;ivDuz;elli;h1lGntFop0rDs26x;byn,reD;a,ia;i,rer0O;em4liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDtterjee,v7;!d,g;ma,raboD;rty;bGl09ng3rD;eghetEnD;a,y;ti;an,ota0M;cer9lder2mpbeIrFstDvadi08;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a09eXhUiSlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nEzD;ev3;co;ancRshwD;as;a01oDuiy4;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b3ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl4yD;aEd6;in;la;aEsl4;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", + "MaleName": "true¦0:E5;1:D6;2:DO;3:AY;4:D2;5:CG;6:CW;7:C8;8:B6;9:DL;A:DK;B:A6;C:C2;aCObBLcAJd9He8Nf85g7Ih6Ui6Ej5Ek52l4Dm35n2To2Np2Fqu2Dr1Ls11t0Eu0Dv07wTxSyIzD;aDor0;cDh9Tkaria,n5W;hEkD;!aCM;ar5WeCL;aLoFuD;sDu2KvBY;if,uf;nFsEusD;ouf,sD;ef;aDg;s,tD;an,h0;hli,nBMssX;avi3ho4;aMeKiFoDyaC2;jcie8Clfgang,odrow,utD;!er;lDnst1;bFey,frD1lD;aBDiD;am,e,s;e9Fur;i,nde8sD;!l7t1;de,lErr9yD;l1ne;lDt3;aAAy;aGiDladimir,ojte7Z;cEha0kt69nceDrgAJva0;!nt;e3Vt67;lentDnA5;in4Y;ghBVlyss5Cnax,sm0;aXeShOiMoHrFuEyD;!l3ro6s1;nAr5C;avAWeDist0oy,um0;ntAOv5Zy;bGdFmDny;!as,mDoharu;aCTie,y;!d;iBy;mDt5;!my,othy;adFeoEia8GomD;!as;!do8P;!de5;dGrD;en9LrD;an9KeDy;ll,n9J;!dy;dgh,ha,iDnn3req,tsu4T;cB5ka;aTcotRePhLiJoHpenc3tDur1Vylve9Kzym1;anFeDua8D;f0phBTvDwa8C;e62ie;!islaw,l7;lom1nBFuD;leyma6ta;dDlBm1yabonga;!dhart7Bn7;aFeD;lDrm0;d1t1;h7Une,qu10un,wn,y6;aDbasti0k2Al4Rrg4Oth,ymoAU;m5n;!tD;!ie,y;lEmDnti2Eq5Bul;!ke5MmCu4;ik,vato7X;aYeUheAAiQoHuEyD;an,ou;b7NdEf5pe7SssD;!elBZ;ol3Fy;an,bKcJdIel,geHh0landBQmGnFry,sEyD;!ce;coe,s;!aAHnC;an,eo;l47r;e5Og3n7olfo,ri7A;co,ky;bCeB7;cDl7;ar6Pc6OhEkDo;!ey,ie,y;a99ie;gEid,ub9x,yDza;an1InY;gA8iD;naA4s;ch70fa4lHmGndFpha4sEul,wi2HyD;an,mo82;h7Vm5;alBDol2Uy;iATon;f,ph;ent2inD;cy,t1;aIeGhilFier72ol,rD;aka16eD;m,st1;!ip,lip;dALrcy,tD;ar,e3Gr1X;b4Kdra7Ft4ZulD;!o17;ctav3Fi3liv3mAFndrej,rHsEtDumAw9;is,to;aEcAkAm0vD;al5Z;ma;i,l53vL;aLeJiFoDu3A;aDel,j5l0ma0r3K;h,m;cEg4i49kD;!au,h7Uola;holBkDolB;!olB;al,d,il,ls1vD;il8Y;hom,thD;anDy;!a4i4;aZeWiMoHuEyD;l2Jr1;hamEr6XstaD;fa,p5C;ed,mH;di0We,hamFis2FntEsDussa;es,he;e,y;ad,ed,mD;ad,ed;cIgu4hai,kGlFnEtchD;!e8;a8Aik;house,o0Bt1;ae5YeA4olD;aj;ah,hDk7;aEeD;al,l;el,l;hElv2rD;le,ri8v2;di,met;ay0ck,hTjd,ks2DlRmadWnQrKs1tFuricExD;!imilian9Nwe8;e,io;eGhEiBtDus,yB;!eo,hew,ia;eDis;us,w;j,o;cHio,kGlFqu7Dsha8tDv2;iDy;!m,n;in,on;!el,oPus;!el9IoOus;iGu4;achDcolm,ik;ai,y;amEdi,eDmoud;sh;adDm5T;ou;aXeQiOlo3EoKuEyD;le,nd1;cGiFkDth3uk;aDe;!s;gi,s,z;as,iaD;no;g0nn7SrenFuDv8Jwe8;!iD;e,s;!zo;am,oD;n4r;a8Cevi,la5JnIoGst3thaFvD;eDi;nte;bo;!nD;!a6Sel;!ny;mFnErDur5Hwr5H;ry,s;ce,d1;ar,o5A;aLeGhaled,iDrist5Iu4Vy6X;er0p,rD;by,k,ollD;os;en0iGnDrmit,v44;!dEnDt5Z;e1Ay;a8ri59;r,th;cp3j5m66na73rEspAthem,uD;ri;im,l;a02eUiSoGuD;an,lDst2;en,iD;an,en,o,us;aNeLhnKkubBnIrGsD;eEhDi8Bue;!ua;!ph;dDge;an,i,on;!aDny;h,s,th5I;!ath5Hie,nC;!l,sDy;ph;o,qu2;an,mD;!mC;d,ffIrFsD;sDus;!e;a6BemEmai6oDry;me,ni0Y;i7Ty;!e60rD;ey,y;cKd9kImHrFsEvi3yD;!d9s1;on,p3;ed,od,rDv56;e5Nod;al,es4Xis1;a,e,oDub;b,v;k,ob,quD;es;aWbQchiPgNkeMlija,nuLonut,rJsFtDv0;ai,suD;ki;aEha0i7DmaDsac;el,il;ac,iaD;h,s;a,vinDw2;!g;k,nngu5S;!r;nacDor;io;ka;ai,rahD;im;aPeJoIuDydA;be2KgGmber4WsD;eyEsD;a2e2;in,n;h,o;m3ra3Gsse2wa4B;aHctGitGnrErD;be2Dm0;iDy;!q11;or;th;bMlLmza,nKo,rFsEyD;a4Jd9;an,s0;lGo50rFuDv7;hi4Gki,tD;a,o;is1y;an,ey;k,s;!im;ib;aVeRiPlenOoLrHuD;ilEsD;!tavo;herme,lerD;mo;aFegDov3;!g,orD;io,y;dy,h5Wnt;nzaErD;an,d1;lo;!n;lbe5Ano,oD;rg3Hvan5A;ne,oFrD;aDry;ld,rd5H;ffr7rge;brEl9rDv2;la28r3Sth,y;e3EielD;!i5;aTePiNlLorr0NrD;anFedDitz;!dCeDri2B;ri2A;cFkD;!ie,lD;in,yn;esLisD;!co,z36;etch3oD;yd;d4lDnn,onn;ip;deriFliEng,rnD;an06;pe,x;co;bi0di,hd;ar04dZfrYit0lSmKnHo2rFsteb0th0uge6vDym9zra;an,eD;ns,re36;gi,i0DnDrol,v2w2;est4Pie;oEriqDzo;ue;ch;aJerIiEmD;aIe2Z;lErD;!h0;!iD;o,s;s1y;nu4;be0Cd1iGliFmEt1viDwood;n,s;er,o;ot1Ys;!as,j4NsD;ha;a2en;!dCgAmGoEuEwD;a2Din;arD;do;o0Wu0W;l,nD;est;a01eRiOoHrGuFwEylD;an,l0;ay6ight;a6dl7nc0st2;ag0ew;minGnEri0ugDvydBy2D;!lB;!a2MnDov0;e8ie,y;go,iDykB;cDk;!k;armuEeDll1on,rk;go;id;anKj0lbeJmetri5nHon,rGsFvEwDxt3;ay6ey;en,in;hawn,mo0B;ek,ri0I;is,nDv3;is,y;rt;!dD;re;an,lNmLnKrGvD;e,iD;! lucDd;as,ca;en,iFne8rDyl;eDin,yl;l3Bn;n,o,us;!e,i4ny;iDon;an,en,on;e,lB;as;a09e07hYiar0lNoIrGuEyrD;il,us;rtD;!is;aDistob0U;ig;dy,lGnErD;ey,neli5y;or,rD;ad;by,e,in,l2t1;aIeFiDyK;fDnt;fo0Ft1;meEt5velaD;nd;nt;rFuEyD;!t1;de;enD;ce;aIeGrisEuD;ck;!tD;i0oph3;st3;er;d,rDs;b4leD;s,y;cDdric,sA;il;lGmer1rD;ey,lEro8y;ll;!os,t1;eb,v2;a07eZiVlaUoRrEuDyr1;ddy,rtK;aLeGiFuEyD;an,ce,on;ce,no;an,ce;nEtD;!t;dEtD;!on;an,on;dEndD;en,on;!foDl7y;rd;bErDyd;is;!by;i6ke;bFlEshD;al;al,lC;ek;nHrDshoi;at,nEtD;!r1C;aDie;rd14;!edict,iEjam2nC;ie,y;to;kaMlazs,nHrD;n7rDt;eDy;tt;ey;dDeE;ar,iD;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il04m00nSputsiRrIsaHuFveEyDziz;a0kh0;ry;gust5st2;us;hi;aKchJiIjun,maHnFon,tDy0;hDu09;ur;av,oD;ld;an,nd0H;!el,ki;ie;ta;aq;as,dIgel0CtD;hoGoD;i6nD;!i09y;ne;ny;er,reDy;!as,i,s,w;iFmaDos;nu4r;el;ne,r,t;an,bePd9eJfHi,lGonFphXt1vD;aNin;on;so,zo;an,en;onTrD;edU;c,jaGksandFssaGxD;!andD;er,ru;ar,er;ndD;ro;rtN;ni;d9mA;ar;en;ad,eD;d,t;in;onD;so;aEi,olfDri0vik;!o;mDn;!a;dHeGraEuD;!bakr,lfazl;hDm;am;!l;allIelFoulaye,ulD;!lDrF;ah,o;! rD;ahm0;an;ah;av,on", + "Person": "true¦ashton kutchTbScNdLeJgastOhHinez,jFkEleDmCnettKoBp9r4s3t2v0;a0irgin maH;lentino rossi,n go3;aylor,heresa may,iger woods,yra banks;addam hussain,carlett johanssKlobodan milosevic,uC;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", + "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", + "PhrasalVerb": "true¦0:7E;1:72;2:7Q;3:7G;4:6V;5:7T;6:7I;7:71;8:6O;9:6P;A:5T;B:7L;C:7J;D:7D;E:7C;F:6Q;G:7S;H:46;a7Yb6Jc5Sd5Oe5Mf4Lg43h3Miron0j3Ik3Dl2Xm2Ln2Jo2Hp1ZquietFr1Ms0FtVuTvacuum 1wLyammerEzI;eroAip JonI;e0k0;by,up;aOeLhKiJorIrit5H;d 1k35;mp0n2Xpe0r8s8;eel Dip G;aJiIn2L;gh 0Crd0;n Dr 3S;it 60k8lk6rm 6Bsh 7Lt6Ov53;rgeEsI;e 9herA;aXeVhTiPoNrKuIype 68;ckArn I;d2in,o3Vup;aJiIot0y 2L;ckleFp G;ckFde 02;neFp Is4Q;d2o71up;ck KdJe Igh69me0p o0Kre0;aw3ba4d2in,up;e 60y 1;by,oC;ink Irow 6B;ba4ov7up;aIe 4Vll52;m 1r 01;ckEke Jlk I;ov7u53;aIba4d2in,o3Fup;ba4ft7p58w3;a0Nc0Me0Gh0Ci09l05m04n03o02pXquare WtOuMwI;earKiI;ngJtch I;aw3ba4o75; by;ck Iit 1m 1ss0;in,up;aNe10iMoKrIucH;aigh1ZiI;ke 6En3C;p Irm22;by,in,oC;nHr 1tc3V;cHmp0nd Ir6Xve6y 1;ba4d2up;d2oCup;arHeLiKlJrIurE;ingEuc8;a3Hit 47;l16n 1;e5Qll0;be4Prt0;ap 4Row D;ash 5Doke0;eep JiIow 9;c3Yp 1;in,oI;ff,v7;gn 4WngJt Iz8;d2o5up; al52le0;aKoIu4S;ot Iut0w 6B;aw3ba4f3IoC;cHdeAk56ve6;e Mll0nd LtI; Itl4G;d2in,o5upI;!on;aw3ba4d2in,o2Aup;o5to;al4Zout0rap4Z;il6v8;aTeQiPoLuI;b 4Sle0n Istl8;aIba4d2in5Ho3Tt3Bu3R;c29w3;ll Kot JuI;g2Vnd6;a29f32o5;arBin,o5;ng 51p6;aIel6inAnt0;c5Bd I;o33u0L;cHt0;aVeUiTlRoPrMsyc2JuI;ll Kt I;aIba4d2in,o1Rt3Fup;p3Kw3;ap3Jd2in,o5t3Dup;attleEess JiLoI;p 1;ah1Ron;iIp 5Fr3XurFwer 5F;nt0;ay4BuI;gAmp 9;ck Gg0leEn 9p48;el 4JncilA;c41ir 2Rn0ss KtJy I;ba4oC; d2c27;aw3ba4o1C;pIw3W;e3Vt D;arrowFerd0oI;d6teF;aQeNiMoKuI;ddl8lI;l 3I;cHp 1uth6ve I;al3Md2in,o5up;ss0x 1;asur8lJss I;a1Jup;t 9;ke Jn 9rIs1Sx0;k 9ry6;do,o47up;aVeTiOoIuck0;aMc3Gg LoIse0;k Ise3E;aft7ba4d2forw2Jin45ov7uI;nd7p;in,o0Q;d 9;e LghtKnJsIv1Y;ten G;e 1k 1; 1e36;arBd2;av1Mt 36velI; o3T;c8p 1sh ItchEugh6y20;in3To5;eJick6nock I;d2o3P;eIyA;l 2Pp I;aw3ba4d2fXin,o0Bto,up;aKoJuI;ic8mpA;ke30tF;c39zz 1;aUePiMoJuI;nkerFrry 1s0Z;lIneArse2W;d Ie 1;ba4d2fast,o05up;de Jt I;ba4on,up;aw3o5;aIlp0;d Kl 2Ar It 1;fIof;rom;in,oXu1H;cHm 1nJve Iz25;it,to;d Ig 2EkerK;d2in,o5;aWeQive Oloss 22oKrJunI; f0Q;in3Gow 2A; Iof 0Y;aJb1Dit,oIrBt0Su18;ff,n,v7;bo5ft7hOw3;aw3ba4d2in,oIup,w3;ff,n,ut;a1Dek0t I;aJb17d2oIrBup;ff,n,ut,v7;cJhIl1WrBt,w3;ead;ross;d aJnI;g 1;bo5;a0Ce05iWlSoOrKuI;cHel 1;k 1;eJighten IownEy 1;aw3oC;eIshe1N; 1z8;lKol I;aIwi1G;bo5rB;d 9low 1;aJeIip0;sh0;g 9ke0mIrI;e G;gPlNnLrJsIzzle0;h G;e Im 1;aw3ba4up;d0isI;h 1;e Il 19;aw3fN;ht ba4ure0;eNnJsI;s 1;cKd I;fIoC;or;e D;dWl 1;cMll Irm0t0W;ap05bKd2in,oJtI;hrough;ff,ut,v7;a4ehi20;e J;at0dge0nd Iy8;oCup;oKrI;ess 9op I;aw3bUin,o1D; 0Eubl8;aYhVlean 9oIross Dut 10;me LoJuntI; o1T;k 1l I;d2oC;aObNforLin,oKtJuI;nd7;ogeth7;ut,v7;th,wI;ard;a4y;pIrBw3;art;eIipA;ck DeI;r 1;lOncel0rLsKtch JveA; in;o1Cup;h Dt6;ry JvI;e 01;aw3o18;l ImF;aIba4d2o16up;rBw3;a0Ne0El07oYrNuI;bblKcklZil05lk 9ndlZrn 0Bst JtIy Gzz6;t D;in,o5up;e I;ov7;anReaPiIush6;ghMng I;aJba4d2forIin,o5up;th;bo5lIrBw3;ong;teI;n 1;k I;d2in,o5up;ch0;arPgFil 9n8oLssKttlJunce Ix D;aw3ba4;e 9; arB;k Dt 1;e 1;d2up; d2;d 1;aNeed0oIurt0;cKw I;aw3ba4d2o5up;ck;k I;in,oP;ck0nk0st6; oOaLef 1nd I;d2ov7up;er;up;r0t I;d2in,oIup;ff,ut;ff,nI;to;ck Oil0nKrgJsI;h D;ainEe D;g DkE; on;in,o5; o5;aw3d2o5up;ay;cRdNsk Kuction6; oC;ff;arBo5;ouI;nd;d I;d2oIup;ff,n;own;t G;o5up;ut", + "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ay,ight,ust;an,o0;uld", + "Adjective": "true¦0:7P;1:84;2:83;3:8A;4:7W;5:5S;6:58;7:4O;8:4N;9:81;A:6I;a6Wb6Gc63d5Je54f4Hg49h3Wi39j37k36l2Vm2Ln2Bo1Wp1Dquack,r12s0Ft07uMvJwByear5;arp0eFholeEiDoB;man5oBu6P;d6Rzy;despr7Ls5S;!sa7;eClBste2A;co1Nl o4W;!k5;aCiBola4M;b89ce versa,ol5H;ca3gabo6Gnilla;ltUnHpCrb5Msu4tterB;!mo7G; Eb1SpDsBti1M;ca7etBide dKtairs;!ti2;er,i3U;f36to da1;aLbeco75convin29deIeHfair,ivers4knGprecedVrEsCwB;iel3Nritt6A;i1XuB;pervis0spec3Y;eBu5;cognHgul6Tl6T;own;ndi2v64xpect0;cid0rB;!grou5ZsB;iz0tood;b7pp0Dssu6UuthorB;iz0;i26ra;aGeEhDi6AoCrB;i1oubl0us3M;geth6p,rp6Vuc67;ough4Wril33;en60l32mpBrr2X;o6Ati2;boo,lBn;ent0;aWcVeThSiQmug,nobbi3LoOpNqueami3LtFuBymb6H;bDi gener5DpBrpri6D;erBre0N;! dup6b,i2C;du0seq52;anda77eGiFrBunni2y3F;aightCiB;ki2p0; fBfB;or5K;ll,r5S;aBreotyp0;dfa6Cmi2;a55ec2Gir1Hlend6Cot on; call0le,mb6phist1XrBu0Vvi48;d6Ary;gnifica3nB;ce51g7;am2Re6ocki2ut;cBda1em5lfi32ni1Wpa6Jre8;o1Er42;at5Gient28reec5G;cr0me;aJeEiCoB;bu60tt51uQy4;ghtBv4;!-2BfA;ar,bel,condi1du6Dfres5AlEpublic42sCtard0vB;ea26;is4CoB;lu1na3;aQe1Cuc4A;b5TciBllyi2;al,st;aOeLicayu8lac5Ropuli5QrCuB;bl5Jmp0n51;eGiDoB;!b07fu5RmiBp6;ne3si2;mCor,sBva1;ti8;a53e;ci5MmB;a0EiB;er,um;ac20rBti1;fe9ma2XpleBv38;xi2;rBst;allelDtB;-tiBi4;me;!ed;bLffJkIld fashion0nHpGrg1Eth6utFvB;al,erB;!all,niCt,wB;eiBrouB;ght;do0Ter,g2Qsi4B;en,posi1; boa5Og2Oli8;!ay; gua5MbBli8;eat;eDsB;cBer0Eole1;e8u3O;d2Xse;aJeIiHoBua4X;nFrCtB;ab7;thB;!eB;rn;chala3descri58stop;ght5;arby,cessa44ighbor5xt;k0usia1A;aIeGiDoBultip7;bi7derBl0Vnth5ot,st;a1n;nBx0;dblo0RiaBor;tu37;ande3Qdi4NnaBre;ci2;cBgenta,in,j01keshift,le,mmoth,ny,sculi8;ab33ho;aKeFiCoBu15;uti14vi2;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda3K;!-0C;ngu3Zst,tt6;ap1Xind5no0A;agg0uB;niMstifi0veni7;de4gno4Klleg4mQnEpso 20rB;a1rB;eleBita0J;va3; KaJbr0corIdGfluenQiQnFsEtCviB;go0Fti2;a9en3SoxB;ic3B;a8i2Vul0D;a1er,oce3;iCoB;or;re9;deq3Qppr33;fBsitu,vitro;ro3;mFpB;arDerfe9oBrop6;li1rtB;a3ed;ti4;eBi0S;d2Vn3C;aIeFiDoBumdr3I;ne36ok0rrBs08ur5;if2Z;ghfalut1QspB;an2X;aClB;liYpfA;li2;lEnDrB;d04roB;wi2;dy;f,low0;ainfAener2Oiga24lHoGraDuB;ilBng ho;ty;cCtB;efAis;efA;ne,od;ea2Iob4;aTeNinMlKoFrB;a1VeDoz1MustB;raB;ti2;e2Gq10tfA;oDrB; keeps,eBm6tuna1;g03ign;liB;sh;aBue3;g31tte1P;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i3l27r Cux,voB;ri1uri1;oBreac1E;ff;aLfficie3lKmHnFre9there4veExB;a9cess,pe1QtraCuB;be2Nl0E;!va1E;n,ryday; BcouraEti0O;rou1sui1;erCiB;ne3;gi2;abo23dMe17i1;g6sB;t,ygB;oi2;er;aReJiDoBrea14ue;mina3ne,ubB;le,tfA;dact1Bfficu1OsCvB;er1K;creDeas0gruntl0hone1FordCtB;a3ressM;er5;et; HadpGfFgene1PliDrang0spe1PtCvoB;ut;ail0ermin0;be1Mca1ghB;tfA;ia3;an;facto;i5magBngeroUs0G;ed,i2;ly;ertaMhief,ivil,oDrB;aBowd0u0G;mp0vZz0;loImGnCrrBve0P;e9u1I;cre1fu0LgrDsCtB;empo0Dra0E;ta3;ue3;mer08pleB;te,x;ni4ss4;in;aNeIizarHlFoCrB;and new,isk,okN;gCna fiUttom,urgeoB;is;us;ank,indB;!i2;re;autifAhiDloCnBst,yoD;eUt;v0w;nd;ul;ckCnkru0WrrB;en;!wards; priori,b0Mc0Jd09fra08g04h03lYmWntiquVppSrMsIttracti06utheHvEwB;aCkB;wa0T;ke,re;ant garCerB;age;de;ntU;leep,piDsuDtonB;isB;hi2;ri2;ab,bitEroDtiB;fiB;ci4;ga3;raB;ry;are3etiNrB;oprB;ia1;at0;aJuB;si2;arEcohCeBiIl,oof;rt;olB;ic;mi2;ead;ainDgressiConiB;zi2;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda3;e3oCtra9;ct;lu1rbi2;ng;te;pt;aBve;rd;aze,e;ra3;nt", + "Comparable": "true¦0:41;1:4I;2:45;3:4B;4:3X;5:2Y;a4Ob44c3Od3De35f2Rg2Fh24i1Vj1Uk1Rl1Jm1Dn17o15p0Vqu0Tr0KsTtMuIvFw7y6za13;ell27ou3;aBe9hi1Yi7r6;o3y;ck0Ode,l6n1ry,se;d,y;a6i4Mt;k,ry;n1Tr6sK;m,y;a7e6ulgar;nge4rda2xi3;g9in,st;g0n6pco3Mse4;like0t6;i1r6;ue;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te4;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft5;aAe9iff,r7u6;pXr1;a6ict,o3;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi3;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp5;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p5;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in4le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b5isy,rm15sy;ce,mb5;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt5ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti3;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b5id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te4;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t5uiY;u1y;aIeeb5iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get4mG;my;erce8n6rm;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi3;gey,lm8r6;e4i3;ful;!i3;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i3;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", + "TextOrdinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", + "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", + "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", + "Adverb": "true¦a08by 06d02eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,well,ye0;p,s; to,wards5;h1iny bit,o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hYtimes,w09;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag02moW; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboU;deed,steV;en0;ce;or2u0;lArther0;!moJ; 0ev3;examp0good,suH;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju8trop;far,n0;ow; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", + "Determiner": "true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er" + }; + var seq = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", cache = seq.split("").reduce(function (n, o, e) { return n[o] = e, n; @@ -4487,104 +4531,153 @@ var efrtUnpack_min = unpack_1$1; - //safely add it to the lexicon - var addWord = function addWord(word, tag, lex) { - if (lex[word] !== undefined) { - if (typeof lex[word] === 'string') { - lex[word] = [lex[word]]; - } - - if (typeof tag === 'string') { - lex[word].push(tag); - } else { - lex[word] = lex[word].concat(tag); - } - } else { - lex[word] = tag; - } - }; // blast-out more forms for some given words - - - var addMore = function addMore(word, tag, world) { - var lexicon = world.words; - var transform = world.transforms; // cache multi-words - - var words = word.split(' '); + //words that can't be compressed, for whatever reason + var misc$1 = { + // numbers + '20th century fox': 'Organization', + // '3m': 'Organization', + '7 eleven': 'Organization', + 'motel 6': 'Organization', + g8: 'Organization', + vh1: 'Organization', + q1: 'Date', + q2: 'Date', + q3: 'Date', + q4: 'Date', + her: ['Possessive', 'Pronoun'], + his: ['Possessive', 'Pronoun'], + their: ['Possessive', 'Pronoun'], + themselves: ['Possessive', 'Pronoun'], + your: ['Possessive', 'Pronoun'], + our: ['Possessive', 'Pronoun'], + my: ['Possessive', 'Pronoun'], + its: ['Possessive', 'Pronoun'] + }; - if (words.length > 1) { - //cache the beginning word - world.hasCompound[words[0]] = true; - } // inflect our nouns + var fancy = { + Unit: function Unit(lex, w) { + lex[w] = ['Abbreviation', 'Unit']; + }, + Cardinal: function Cardinal(lex, w) { + lex[w] = ['TextValue', 'Cardinal']; + }, + TextOrdinal: function TextOrdinal(lex, w) { + lex[w] = ['Ordinal', 'TextValue']; + lex[w + 's'] = ['TextValue', 'Fraction']; // add 'millionths' + }, + // add plural/singular forms + Singular: function Singular(lex, w, world) { + lex[w] = 'Singular'; + var plural = world.transforms.toPlural(w, world); + lex[plural] = lex[plural] || 'Plural'; + }, + // conjugate these verbs + Infinitive: function Infinitive(lex, w, world) { + lex[w] = 'Infinitive'; + var conj = world.transforms.conjugate(w, world); + var tags = Object.keys(conj); + for (var i = 0; i < tags.length; i++) { + var str = conj[tags[i]]; + lex[str] = lex[str] || tags[i]; // only if it's safe + } + }, + // conjugate other Adjectival forms + Comparable: function Comparable(lex, w, world) { + lex[w] = 'Comparable'; + var conj = world.transforms.adjectives(w); + var tags = Object.keys(conj); - if (tag === 'Singular') { - var plural = transform.toPlural(word, world); - lexicon[plural] = lexicon[plural] || 'Plural'; // only if it's safe - } //conjugate our verbs + for (var i = 0; i < tags.length; i++) { + var word = conj[tags[i]]; + lex[word] = lex[word] || tags[i]; // only if it's safe + } + }, + //conjugate phrasal-verbs + PhrasalVerb: function PhrasalVerb(lex, w, world) { + // whole thing + lex[w] = ['PhrasalVerb', 'Infinitive']; //add original form + var words = w.split(' '); // lex[words[0]] = lex[words[0]] || 'Infinitive' + // //conjugate first word - if (tag === 'Infinitive') { - var conj = transform.conjugate(word, world); + var conj = world.transforms.conjugate(words[0], world); var tags = Object.keys(conj); for (var i = 0; i < tags.length; i++) { - var w = conj[tags[i]]; - lexicon[w] = lexicon[w] || tags[i]; // only if it's safe + var str = conj[tags[i]] + ' ' + words[1]; + lex[str] = lex[str] || ['PhrasalVerb', tags[i]]; + world.hasCompound[conj[tags[i]]] = true; } - } //derive more adjective forms + }, + // inflect our demonyms - 'germans' + Demonym: function Demonym(lex, w, world) { + lex[w] = 'Demonym'; + var plural = world.transforms.toPlural(w, world); + lex[plural] = lex[plural] || ['Demonym', 'Plural']; // only if it's safe + } + }; // let a user explode their lexicon, too + var addWords = function addWords(wordsObj, lex, world) { + Object.keys(wordsObj).forEach(function (word) { + var tag = wordsObj[word]; // abbreviation-words are used in our tokenizer - if (tag === 'Comparable') { - var _conj = transform.adjectives(word); + if (tag === 'Abbreviation' || tag === 'Unit') { + world.cache.abbreviations[word] = true; + } // cache multi-words - var _tags = Object.keys(_conj); - for (var _i = 0; _i < _tags.length; _i++) { - var _w = _conj[_tags[_i]]; - lexicon[_w] = lexicon[_w] || _tags[_i]; // only if it's safe - } - } //conjugate phrasal-verbs + var multi = word.split(' '); + if (multi.length > 1) { + world.hasCompound[multi[0]] = true; + } // do some ad-hoc work before adding it - if (tag === 'PhrasalVerb') { - //add original form - addWord(word, 'Infinitive', lexicon); //conjugate first word - var _conj2 = transform.conjugate(words[0], world); + if (fancy[tag] !== undefined) { + fancy[tag](lex, word, world); + return; + } //set it in our lexicon, basic - var _tags2 = Object.keys(_conj2); - for (var _i2 = 0; _i2 < _tags2.length; _i2++) { - //add it to our cache - world.hasCompound[_conj2[_tags2[_i2]]] = true; //first + last words + if (lex[word] === undefined) { + lex[word] = tag; + return; + } // if we already have that word - var _w2 = _conj2[_tags2[_i2]] + ' ' + words[1]; - addWord(_w2, _tags2[_i2], lexicon); - addWord(_w2, 'PhrasalVerb', lexicon); + if (typeof lex[word] === 'string') { + lex[word] = [lex[word]]; } - } // inflect our demonyms - 'germans' + if (typeof tag === 'string') { + lex[word].push(tag); + } else { + lex[word] = lex[word].concat(tag); + } + }); + }; // we do some ad-hoc stuff here, building-up our word-list - if (tag === 'Demonym') { - var _plural = transform.toPlural(word, world); - lexicon[_plural] = lexicon[_plural] || ['Demonym', 'Plural']; // only if it's safe - } - }; // throw a bunch of words in our lexicon - // const doWord = function(words, tag, world) { - // let lexicon = world.words - // for (let i = 0; i < words.length; i++) { - // addWord(words[i], tag, lexicon) - // // do some fancier stuff - // addMore(words[i], tag, world) - // } - // } + var buildOut = function buildOut(world) { + //our bag of words + var lexicon = Object.assign({}, misc$1); // start adding words to the lex + + Object.keys(_data).forEach(function (tag) { + var wordsObj = efrtUnpack_min(_data[tag]); // this part sucks + + Object.keys(wordsObj).forEach(function (w) { + wordsObj[w] = tag; + }); + addWords(wordsObj, lexicon, world); + }); // console.log(Object.keys(lexicon).length) + return lexicon; + }; - var addWords = { - addWord: addWord, - addMore: addMore + var unpack_1$2 = { + buildOut: buildOut, + addWords: addWords }; // add words from plurals and conjugations data @@ -4626,29 +4719,6 @@ var addIrregulars_1 = addIrregulars; - //words that can't be compressed, for whatever reason - var misc$1 = { - // numbers - '20th century fox': 'Organization', - // '3m': 'Organization', - '7 eleven': 'Organization', - 'motel 6': 'Organization', - g8: 'Organization', - vh1: 'Organization', - q1: 'Date', - q2: 'Date', - q3: 'Date', - q4: 'Date', - her: ['Possessive', 'Pronoun'], - his: ['Possessive', 'Pronoun'], - their: ['Possessive', 'Pronoun'], - themselves: ['Possessive', 'Pronoun'], - your: ['Possessive', 'Pronoun'], - our: ['Possessive', 'Pronoun'], - my: ['Possessive', 'Pronoun'], - its: ['Possessive', 'Pronoun'] - }; - //nouns with irregular plural/singular forms //used in noun.inflect, and also in the lexicon. var plurals = { @@ -6390,7 +6460,7 @@ // quiet these properties from a console.log Object.defineProperty(this, 'words', { enumerable: false, - value: misc$1, + value: {}, writable: true }); Object.defineProperty(this, 'hasCompound', { @@ -6417,20 +6487,18 @@ enumerable: false, value: [], writable: true - }); // add our misc word-list - // this.addWords(misc) - // add our compressed data to lexicon - - this.unpackWords(_data); // add our irregulars to lexicon - - addIrregulars_1(this); // cache our abbreviations for our sentence-parser + }); // cache our abbreviations for our sentence-parser Object.defineProperty(this, 'cache', { enumerable: false, value: { - abbreviations: this.getByTag('Abbreviation') + abbreviations: {} } - }); + }); // add our compressed data to lexicon + + this.words = unpack_1$2.buildOut(this); // add our irregulars to lexicon + + addIrregulars_1(this); } /** more logs for debugging */ @@ -6446,59 +6514,19 @@ value: function isVerbose() { return _isVerbose; } - /** get all terms in our lexicon with this tag */ - - }, { - key: "getByTag", - value: function getByTag(tag) { - var lex = this.words; - var res = {}; - var words = Object.keys(lex); - - for (var i = 0; i < words.length; i++) { - if (typeof lex[words[i]] === 'string') { - if (lex[words[i]] === tag) { - res[words[i]] = true; - } - } else if (lex[words[i]].some(function (t) { - return t === tag; - })) { - res[words[i]] = true; - } - } - - return res; - } - /** augment our lingustic data with new data */ - - }, { - key: "unpackWords", - value: function unpackWords(lex) { - var tags = Object.keys(lex); - - for (var i = 0; i < tags.length; i++) { - var words = Object.keys(efrtUnpack_min(lex[tags[i]])); - - for (var w = 0; w < words.length; w++) { - addWords.addWord(words[w], tags[i], this.words); // do some fancier stuff - - addWords.addMore(words[w], tags[i], this); - } - } - } /** put new words into our lexicon, properly */ }, { key: "addWords", - value: function addWords$1(obj) { - var keys = Object.keys(obj); - - for (var i = 0; i < keys.length; i++) { - var word = keys[i].toLowerCase(); - addWords.addWord(word, obj[keys[i]], this.words); // do some fancier stuff - - addWords.addMore(word, obj[keys[i]], this); - } + value: function addWords(wordObj) { + // clean them up a bit + var cleaned = {}; + Object.keys(wordObj).forEach(function (w) { + var tag = wordObj[w]; + w = w.toLowerCase().trim(); + cleaned[w] = tag; + }); + unpack_1$2.addWords(cleaned, this.words, this); } /** add new custom conjugations */ @@ -9430,7 +9458,7 @@ [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/, ['Percent', 'Cardinal', 'NumericValue']], //7% .. [/^\.[0-9]+%$/, ['Percent', 'Cardinal', 'NumericValue']], //.7% .. //fraction - [/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, 'Fraction'], //3/2ths + [/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, ['Fraction', 'NumericValue']], //3/2ths //range [/^[0-9.]{1,2}[-–][0-9]{1,2}$/, ['Value', 'NumberRange']], //7-8 [/^[0-9.]{1,3}(st|nd|rd|th)?[-–][0-9\.]{1,3}(st|nd|rd|th)?$/, 'NumberRange'], //5-7 @@ -10776,7 +10804,11 @@ } // well i've been... - doc.match('^(well|so|okay)').tag('Expression', 'well-'); //been walking + doc.match('^(well|so|okay)').tag('Expression', 'well-'); // 10th of a second + + doc.match('#Value [of a second]', 0).unTag('Value', 'of-a-second'); // 30 seconds + + doc.match('#Value [seconds]', 0).unTag('Value', '30-seconds').tag(['Unit', 'Plural']); //been walking m = hasTag(doc, 'Gerund'); m.match("(be|been) (#Adverb|not)+? #Gerund").not('#Verb$').tag('Auxiliary', 'be-walking'); // directive verb - 'use reverse' diff --git a/builds/compromise.min.js b/builds/compromise.min.js index b4ca087f8..c9288515e 100644 --- a/builds/compromise.min.js +++ b/builds/compromise.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;rr?n:r)+1;if(Math.abs(r-n)>(a||100))return a||100;for(var i,o,s,u,l,c,h=[],d=0;d4)return r;u=o===(s=t[i-1])?0:1,l=h[p-1][i]+1,(c=h[p][i-1]+1)1&&i>1&&o===t[i-2]&&e[p-2]===s&&(c=h[p-2][i-2]+u)2&&void 0!==arguments[2]?arguments[2]:3;if(e===t)return 1;if(e.lengtht.fuzzy)return!0;if(!0===t.soft&&(a=B(t.word,e.root))>t.fuzzy)return!0}return t.word===e.clean||t.word===e.text||t.word===e.reduced}return void 0!==t.tag?!0===e.tags[t.tag]:void 0!==t.method?"function"==typeof e[t.method]&&!0===e[t.method]():void 0!==t.regex?t.regex.test(e.clean):void 0!==t.fastOr?t.fastOr.hasOwnProperty(e.reduced)||t.fastOr.hasOwnProperty(e.text):void 0!==t.choices&&("and"===t.operator?t.choices.every((function(t){return O(e,t,r,n)})):t.choices.some((function(t){return O(e,t,r,n)})))},z=O=function(e,t,r,n){var a=G(e,t,r,n);return!0===t.negative?!a:a},T={},V={doesMatch:function(e,t,r){return z(this,e,t,r)},isAcronym:function(){return b(this.text)},isImplicit:function(){return""===this.text&&Boolean(this.implicit)},isKnown:function(){return Object.keys(this.tags).some((function(e){return!0!==T[e]}))},setRoot:function(e){var t=e.transforms,r=this.implicit||this.clean;if(this.tags.Plural&&(r=t.toSingular(r,e)),this.tags.Verb&&!this.tags.Negative&&!this.tags.Infinitive){var n=null;this.tags.PastTense?n="PastTense":this.tags.Gerund?n="Gerund":this.tags.PresentTense?n="PresentTense":this.tags.Participle?n="Participle":this.tags.Actor&&(n="Actor"),r=t.toInfinitive(r,e,n)}this.root=r}},J=/[\s-]/,M=/^[A-Z-]+$/,S={textOut:function(e,t,r){e=e||{};var n=this.text,a=this.pre,i=this.post;return!0===e.reduced&&(n=this.reduced||""),!0===e.root&&(n=this.root||""),!0===e.implicit&&this.implicit&&(n=this.implicit||""),!0===e.normal&&(n=this.clean||this.text||""),!0===e.root&&(n=this.root||this.reduced||""),!0===e.unicode&&(n=g(n)),!0===e.titlecase&&(this.tags.ProperNoun&&!this.titleCase()||(this.tags.Acronym?n=n.toUpperCase():M.test(n)&&!this.tags.Acronym&&(n=n.toLowerCase()))),!0===e.lowercase&&(n=n.toLowerCase()),!0===e.acronyms&&this.tags.Acronym&&(n=n.replace(/\./g,"")),!0!==e.whitespace&&!0!==e.root||(a="",i=" ",!1!==J.test(this.post)&&!e.last||this.implicit||(i="")),!0!==e.punctuation||e.root||(!0===this.hasPost(".")?i="."+i:!0===this.hasPost("?")?i="?"+i:!0===this.hasPost("!")?i="!"+i:!0===this.hasPost(",")?i=","+i:!0===this.hasEllipses()&&(i="..."+i)),!0!==t&&(a=""),!0!==r&&(i=""),!0===e.abbreviations&&this.tags.Abbreviation&&(i=i.replace(/^\./,"")),a+n+i}},L={Auxiliary:1,Possessive:1},_=function(e,t){var r=Object.keys(e.tags),n=t.tags;return r=r.sort((function(e,t){return L[t]||!n[t]?-1:n[t]?n[e]?n[e].lineage.length>n[t].lineage.length?1:n[e].isA.length>n[t].isA.length?-1:0:0:1}))},K={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},q={json:function(e,t){e=e||{};var r={};return(e=Object.assign({},K,e)).text&&(r.text=this.text),e.normal&&(r.normal=this.clean),e.tags&&(r.tags=Object.keys(this.tags)),e.clean&&(r.clean=this.clean),(e.id||e.offset)&&(r.id=this.id),e.implicit&&null!==this.implicit&&(r.implicit=this.implicit),e.whitespace&&(r.pre=this.pre,r.post=this.post),e.bestTag&&(r.bestTag=_(this,t)[0]),r}},R=Object.assign({},I,F,V,S,q);function W(){return"undefined"!=typeof window&&window.document}var Q=function(e,t){for(e=e.toString();e.length0&&void 0!==arguments[0]?arguments[0]:"";t(this,e),r=String(r);var n=N(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=c(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(e,[{key:"set",value:function(e){var t=N(e);return this.text=t.text,this.clean=t.clean,this}}]),e}();oe.prototype.clone=function(){var e=new oe(this.text);return e.pre=this.pre,e.post=this.post,e.clean=this.clean,e.reduced=this.reduced,e.root=this.root,e.implicit=this.implicit,e.tags=Object.assign({},this.tags),e},Object.assign(oe.prototype,R),Object.assign(oe.prototype,ie);var se=oe,ue={terms:function(e){if(0===this.length)return[];if(this.cache.terms)return void 0!==e?this.cache.terms[e]:this.cache.terms;for(var t=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof e&&(e="normal"===e?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,normal:!0}:"reduced"===e?{punctuation:!1,titlecase:!1,lowercase:!0,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"implicit"===e?{punctuation:!0,implicit:!0,whitespace:!0,trim:!0}:"root"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),a=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(a=!0);var i=n.reduce((function(i,o,s){if(0===s&&""===o.text&&null!==o.implicit&&!e.implicit)return i;e.last=r&&s===n.length-1;var u=!0,l=!0;return!1===a&&(0===s&&t&&(u=!1),s===n.length-1&&r&&(l=!1)),i+o.textOut(e,u,l)}),"");return!0===a&&r&&(i=le(i)),!0===e.trim&&(i=i.trim()),i}},he={trim:function(){var e=this.terms();if(e.length>0){e[0].pre=e[0].pre.replace(/^\s+/,"");var t=e[e.length-1];t.post=t.post.replace(/\s+$/,"")}return this}},de=/[.?!]\s*$/,ge=function(e,t){t[0].pre=e[0].pre;var r,n,a=e[e.length-1],i=t[t.length-1];i.post=(r=a.post,n=i.post,de.test(n)?n+r.match(/\s*$/):r),a.post="",""===a.post&&(a.post+=" ")},pe=function(e,t,r){var n=e.terms(),a=t.terms();ge(n,a),function(e,t,r){var n=e[e.length-1],a=t[t.length-1],i=n.next;n.next=t[0].id,a.next=i,i&&(r.get(i).prev=a.id);var o=e[0].id;o&&(t[0].prev=o)}(n,a,e.pool);var i=[e],o=e.start,s=[r];return(s=s.concat(r.parents())).forEach((function(e){var t=e.list.filter((function(e){return e.hasId(o)}));i=i.concat(t)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length})),e.cache={},e},fe=/ /,me=function(e,t,r){var n=e.start,a=t.terms();!function(e){var t=e[e.length-1];!1===fe.test(t.post)&&(t.post+=" ")}(a),function(e,t,r){var n=r[r.length-1];n.next=e.start;var a=e.pool,i=a.get(e.start);i.prev&&(a.get(i.prev).next=t.start),r[0].prev=e.terms(0).prev,e.terms(0).prev=n.id}(e,t,a);var i=[e],o=[r];return(o=o.concat(r.parents())).forEach((function(e){var r=e.list.filter((function(e){return e.hasId(n)||e.hasId(t.start)}));i=i.concat(r)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length,e.start===n&&(e.start=t.start),e.cache={}})),e},ve=function(e,t){var r=t.pool(),n=e.terms(),a=r.get(n[0].prev)||{},i=r.get(n[n.length-1].next)||{};n[0].implicit&&a.implicit&&(a.set(a.implicit),a.post+=" "),function(e,t,r,n){var a=e.parents();a.push(e),a.forEach((function(e){var a=e.list.find((function(e){return e.hasId(t)}));a&&(a.length-=r,a.start===t&&(a.start=n.id),a.cache={})})),e.list=e.list.filter((function(e){return!(!e.start||!e.length)}))}(t,e.start,e.length,i),a&&(a.next=i.id),i&&(i.prev=a.id)},be={append:function(e,t){return pe(this,e,t),this},prepend:function(e,t){return me(this,e,t),this},delete:function(e){return ve(this,e),this},replace:function(e,t){var r=this.length;pe(this,e,t);var n=this.buildFrom(this.start,this.length);n.length=r,ve(n,t)},splitOn:function(e){var t=this.terms(),r={before:null,match:null,after:null},n=t.findIndex((function(t){return t.id===e.start}));if(-1===n)return r;var a=t.slice(0,n);a.length>0&&(r.before=this.buildFrom(a[0].id,a.length));var i=t.slice(n,n+e.length);i.length>0&&(r.match=this.buildFrom(i[0].id,i.length));var o=t.slice(n+e.length,t.length);return o.length>0&&(r.after=this.buildFrom(o[0].id,o.length,this.pool)),r}},ye={json:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r={};return e.text&&(r.text=this.text()),e.normal&&(r.normal=this.text("normal")),e.clean&&(r.clean=this.text("clean")),e.reduced&&(r.reduced=this.text("reduced")),e.implicit&&(r.implicit=this.text("implicit")),e.root&&(r.root=this.text("root")),e.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),e.terms&&(!0===e.terms&&(e.terms={}),r.terms=this.terms().map((function(r){return r.json(e.terms,t)}))),r}},we={lookAhead:function(e){e||(e=".*");var t=this.pool,r=[],n=this.terms();return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(e)},lookBehind:function(e){e||(e=".*");var t=this.pool,r=[];return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.prev))}(t.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(e)}},ke=Object.assign({},ue,ce,he,be,ye,we),Ae=function(e,t){if(0===t.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},De=x((function(e,t){t.getGreedy=function(e,t){for(var r=Object.assign({},e.regs[e.r],{start:!1,end:!1}),n=e.t;e.t1&&void 0!==arguments[1]?arguments[1]:0,n=e.regs[e.r],a=!1,i=0;it&&(t=r.length),n}))&&t},t.getGroup=function(e,t,r){if(e.groups[e.groupId])return e.groups[e.groupId];var n=e.terms[t].id;return e.groups[e.groupId]={group:String(r),start:n,length:0},e.groups[e.groupId]}})),$e=function(e,t,r,n){for(var a={t:0,terms:e,r:0,regs:t,groups:{},start_i:r,phrase_length:n,hasGroup:!1,groupId:null,previousGroup:null};a.ra.t)return null;if(!0===i.end&&a.start_i+a.t!==n)return null}if(!0===a.hasGroup){var h=De.getGroup(a,l,i.named);a.t>1&&i.greedy?h.length+=a.t-l:h.length++}}else if(!0!==i.optional){if(a.terms[a.t].isImplicit()&&t[a.r-1]&&a.terms[a.t+1]){if(a.terms[a.t-1]&&a.terms[a.t-1].implicit===t[a.r-1].word)return null;if(a.terms[a.t+1].doesMatch(i,a.start_i+a.t,a.phrase_length)){a.t+=2;continue}}return null}}else{var d=De.greedyTo(a,t[a.r+1]);if(void 0!==i.min&&d-a.ti.max){a.t=a.t+i.max;continue}if(null===d)return null;!0===a.hasGroup&&(De.getGroup(a,a.t,i.named).length=d-a.t),a.t=d}}return{match:a.terms.slice(0,a.t),groups:a.groups}},Pe=function(e,t,r){if(!r||0===r.length)return r;if(t.some((function(e){return e.end}))){var n=e[e.length-1];r=r.filter((function(e){return-1!==e.match.indexOf(n)}))}return r},He=/\{([0-9]+,?[0-9]*)\}/,je=/&&/,Ee=new RegExp(/^<(\S+)>/),Ne=function(e){return e[e.length-1]},xe=function(e){return e[0]},Ie=function(e){return e.substr(1)},Fe=function(e){return e.substr(0,e.length-1)},Ce=function(e){return e=Ie(e),e=Fe(e)},Be=function e(t){for(var r,n={},a=0;a<2;a+=1){if("$"===Ne(t)&&(n.end=!0,t=Fe(t)),"^"===xe(t)&&(n.start=!0,t=Ie(t)),("["===xe(t)||"]"===Ne(t))&&(n.named=!0,"["===xe(t)?n.groupType="]"===Ne(t)?"single":"start":n.groupType="end",t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===xe(t))){var i=Ee.exec(t);i.length>=2&&(n.named=i[1],t=t.replace(i[0],""))}if("+"===Ne(t)&&(n.greedy=!0,t=Fe(t)),"*"!==t&&"*"===Ne(t)&&"\\*"!==t&&(n.greedy=!0,t=Fe(t)),"?"===Ne(t)&&(n.optional=!0,t=Fe(t)),"!"===xe(t)&&(n.negative=!0,t=Ie(t)),"("===xe(t)&&")"===Ne(t)){je.test(t)?(n.choices=t.split(je),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=Ie(n.choices[0]);var o=n.choices.length-1;n.choices[o]=Fe(n.choices[o]),n.choices=n.choices.map((function(e){return e.trim()})),n.choices=n.choices.filter((function(e){return e})),n.choices=n.choices.map((function(t){return t.split(/ /g).map(e)})),t=""}if("/"===xe(t)&&"/"===Ne(t))return t=Ce(t),n.regex=new RegExp(t),n;if("~"===xe(t)&&"~"===Ne(t))return t=Ce(t),n.soft=!0,n.word=t,n}return!0===He.test(t)&&(t=t.replace(He,(function(e,t){var r=t.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,n.optional=!0,""}))),"#"===xe(t)?(n.tag=Ie(t),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===xe(t)?(n.method=Ie(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),n.word=t.toLowerCase()),n)},Oe=function(e){for(var t,r=!1,n=-1,a=0;a1&&void 0!==arguments[1]?arguments[1]:{},r=e.filter((function(e){return e.groupType})).length;return r>0&&(e=Oe(e)),t.fuzzy||(e=Ge(e)),e},Te=/[^[a-z]]\//g,Ve=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Je=function(e){var t=e.split(/([\^\[\!]*(?:<\S+>)?\(.*?\)[?+*]*\]?\$?)/);return t=t.map((function(e){return e.trim()})),Te.test(e)&&(t=function(e){return e.forEach((function(t,r){var n=t.match(Te);null!==n&&1===n.length&&e[r+1]&&(e[r]+=e[r+1],e[r+1]="",null!==(n=e[r].match(Te))&&1===n.length&&(e[r]+=e[r+2],e[r+2]=""))})),e=e.filter((function(e){return e}))}(t)),t},Me=function(e){var t=[];return e.forEach((function(e){if(/\(.*\)/.test(e))t.push(e);else{var r=e.split(" ");r=r.filter((function(e){return e})),t=t.concat(r)}})),t},Se=function(e){return[{choices:e.map((function(e){return[{word:e}]})),operator:"or"}]},Le=function(e){if(!e||!e.list||!e.list[0])return[];var t=[];return e.list.forEach((function(e){var r=[];e.terms().forEach((function(e){r.push(e.id)})),t.push(r)})),[{idBlocks:t}]},_e=function(e,t){return!0===t.fuzzy&&(t.fuzzy=.85),"number"==typeof t.fuzzy&&(e=e.map((function(e){return t.fuzzy>0&&e.word&&(e.fuzzy=t.fuzzy),e.choices&&e.choices.forEach((function(e){e.forEach((function(e){e.fuzzy=t.fuzzy}))})),e}))),e},Ke=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==t||""===t)return[];if("object"===e(t)){if(Ve(t)){if(0===t.length||!t[0])return[];if("object"===e(t[0]))return t;if("string"==typeof t[0])return Se(t)}return t&&"Doc"===t.isA?Le(t):[]}"number"==typeof t&&(t=String(t));var n=Je(t);return n=(n=Me(n)).map((function(e){return Be(e)})),n=ze(n,r),n=_e(n,r)},qe=function(e,t){for(var r=[],n=t[0].idBlocks,a=function(t){n.forEach((function(n){0!==n.length?n.every((function(r,n){return i=t,e[t+n].id===r}))&&(r.push({match:e.slice(t,t+n.length)}),t+=n.length-1):i=t})),i=t},i=0;i2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof t&&(t=Ke(t)),!0===Ae(e,t))return[];var n=t.filter((function(e){return!0!==e.optional&&!0!==e.negative})).length,a=e.terms(),i=[];if(t[0].idBlocks){var o=qe(a,t);if(o&&o.length>0)return Pe(a,t,o)}if(!0===t[0].start){var s=$e(a,t,0,a.length);return s&&s.match&&s.match.length>0&&(s.match=s.match.filter((function(e){return e})),i.push(s)),Pe(a,t,i)}for(var u=0;ua.length);u+=1){var l=$e(a.slice(u),t,u,a.length);if(l&&l.match&&l.match.length>0&&(u+=l.match.length-1,l.match=l.match.filter((function(e){return e})),i.push(l),!0===r))return Pe(a,t,i)}return Pe(a,t,i)},We=function(e,t){var r={};Re(e,t).forEach((function(e){e.match.forEach((function(e){r[e.id]=!0}))}));var n=e.terms(),a=[],i=[];return n.forEach((function(e){!0!==r[e.id]?i.push(e):i.length>0&&(a.push(i),i=[])})),i.length>0&&a.push(i),a},Qe={match:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Re(this,e,r);return n=n.map((function(e){var r=e.match,n=e.groups,a=t.buildFrom(r[0].id,r.length,n);return a.cache.terms=r,a}))},has:function(e){return Re(this,e,!0).length>0},not:function(e){var t=this,r=We(this,e);return r=r.map((function(e){return t.buildFrom(e[0].id,e.length)}))},canBe:function(e,t){for(var r=this,n=[],a=this.terms(),i=!1,o=0;o0})).map((function(e){return r.buildFrom(e[0].id,e.length)}))}},Ue=function e(r,n,a){t(this,e),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:a}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Ue.prototype.buildFrom=function(e,t,r){var n=new Ue(e,t,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Ue.prototype,Qe),Object.assign(Ue.prototype,ke);var Ze={term:"terms"};Object.keys(Ze).forEach((function(e){return Ue.prototype[e]=Ue.prototype[Ze[e]]}));var Xe=Ue,Ye=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(e,[{key:"add",value:function(e){return this.words[e.id]=e,this}},{key:"get",value:function(e){return this.words[e]}},{key:"remove",value:function(e){delete this.words[e]}},{key:"merge",value:function(e){return Object.assign(this.words,e.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),e}();Ye.prototype.clone=function(){var e=this,t=Object.keys(this.words).reduce((function(t,r){var n=e.words[r].clone();return t[n.id]=n,t}),{});return new Ye(t)};var et=Ye,tt=function(e){e.forEach((function(t,r){r>0&&(t.prev=e[r-1].id),e[r+1]&&(t.next=e[r+1].id)}))},rt=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,nt=/\S/,at=/[ .][A-Z]\.? *$/i,it=/(?:\u2026|\.{2,}) *$/,ot=/((?:\r?\n|\r)+)/,st=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,ut=/^\s+/,lt=function(e,t){if(!0===at.test(e))return!1;if(!0===it.test(e))return!1;if(!1===st.test(e))return!1;var r=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!t.hasOwnProperty(n)},ct=function(e,t){var r=t.cache.abbreviations;e=e||"";var n=[],a=[];if(!(e=String(e))||"string"!=typeof e||!1===nt.test(e))return n;for(var i=function(e){for(var t=[],r=e.split(ot),n=0;n0&&(n.push(l),a[u]="")}if(0===n.length)return[e];for(var c=1;c0?(t[t.length-1]+=i,t.push(s)):t.push(i+s),i=""):i+=s}return i&&(0===t.length&&(t[0]=""),t[t.length-1]+=i),t=(t=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof e&&("number"==typeof e?e=String(e):yt(e)&&(n=e)),n=(n=n||ct(e,t)).map((function(e){return bt(e)})),r=r||new et;var a=n.map((function(e){e=e.map((function(e){var t=new se(e);return r.add(t),t})),tt(e);var t=new Xe(e[0].id,e.length,r);return t.cache.terms=e,t}));return a},kt=function(e,t){var r=new et;return e.map((function(e,n){var a=e.terms.map((function(a,i){var o=new se(a.text);return o.pre=void 0!==a.pre?a.pre:"",void 0===a.post&&(a.post=" ",i>=e.terms.length-1&&(a.post=". ",n>=e.terms.length-1&&(a.post="."))),o.post=void 0!==a.post?a.post:" ",a.tags&&a.tags.forEach((function(e){return o.tag(e,"",t)})),r.add(o),o}));return tt(a),new Xe(a[0].id,a.length,r)}))},At={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦is,sounds",Value:"true¦a few",Noun:"true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc",Copula:"true¦a1is,w0;as,ere;m,re",PastTense:"true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan",Condition:"true¦if,lest,unless",Preposition:"true¦'o,-,aLbIcHdGexcept,fFiDmidQnotwithstandiRoBpSqua,sAt6u3vi2w0;/o,hereNith0;!in,oR;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n2ut;!f;f,n0;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",Gerund:"true¦accord0be0develop0go0result0stain0;ing",Negative:"true¦n0;ever,o0;!n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Plural:"true¦records",Conjunction:"true¦&,aFbBcuz,how9in caEno8o7p5supposing,t2v1wh0yet;eth9ile;ers4s;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Abbreviation:"true¦a0Tb0Qc0Kd0Ie0Ff0Cg0Ah08i06j04k02l00mRnOoNpIqHrFs9t6u5v2w0yb,µg;is0r,y0L;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;b1ce,d,e0sp;l,mp,nn,x;!l,sp;ask,e3fc,gt,i2q1r,s,t,u0;pt,rg;! ft;r,tu;c,nVp0;!t;b,d,e0;pSs,v;t,ue;a,d,enn3hd,l,p,r1s0t,vt;!eud;ef,o0;b,f,n;!a;ct,kla,nt,z;e0ov;b0e;!r;a7b,d,essrs,g,i4l3m2p1rHs0t;!tr;h,s;!e;!le;!n1s0;c,ter;!n;!j,r,sc;at,b,it,lb,m,ng,t0x;!d;an6b,g,m0;!ph;an,d,r,u0;l,n;a,da,e,n0;c,f;g,on,r0wy,z;!s;a0b,en,ov;!l;e1ig,l0m,r,t,y;! oz,a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0g,ist,l,m,r;c,f,pt,t;a3ca,g,l,m2o0pl,res,yn;!l0mdr,nn,rp;!o;!dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v",Pronoun:"true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:15;1:18;2:12;a15b0Sc0Jd0Ce09f04gZhViUjel0kitty,lSmOnNoMpHquestionGrEs9t6u4w3;ay,om02;nc0Zs 3;doll0Kst0M; rex,a4h3ic,ragedy,v show;ere,i1;l0x return;i6ky,omeoMt3uper bowl,yst14;ep4ri1u3;de0Xff;faSmoS;st2ze;al0i1o3;om,se;! mark;a6i2la5r4u3;dPrpoH;eroga00ie0Gobl0U;te,y2;rt,te0N;bjWceJthers,verview;othi1umb2;a5ee08o3;del,m3nopo0rni1th2;!my;n,yf0;i3unch;ne;ci1nsect;ead start,o3uman right;l0me4u3;se;! run;adf0entlem6irl02laci2od,rand4u3;l0y; slam,fa3mo3;th2;an;a6ella,ly,ol0r4un3;di1;ee market,iWo3;nti2sP;mi0th2;conomy,gg,ner7ven4x3;ampTecu9;i1t;ad8e5inn2o3ragonf0ude;cumentGg3i0l0or;gy;ath,t3;ec3;tive;!dy;a9eili1h7i5o3redit card;ttage,u3;ri2sin;ty,vil w3;ar;andeli2ocol3;ate;n3rF;ary;aCel0lesJo8r5u3;n3tterf0;ti1;eakfa4o3;!th2;st;dy,tt5y3;!fri3;end;le;nki1r3;ri2;er;d5l0noma0u3;nt;ly; homin5verti3;si1;ng;em",FemaleName:"true¦0:J3;1:J7;2:IG;3:IF;4:IX;5:IK;6:JO;7:H0;8:JK;9:JG;A:HN;B:HY;C:IT;D:JD;E:IP;F:HC;G:I0;aGRbFLcDPdCYeBOfB4gADh9Ti9Gj8Gk7Gl60m49n3No3Jp37qu36r2Ds16t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof2;e3Uf2la,ra;h3iKlIna,ynH;ab,ep;da,ma;da,h3iHra;nab;aKeJi0Fol5BuIvH;etAonDO;i0na;le0sen2;el,gm3Jn,rGJs8W;aoHme0nyi;m62yAE;aMendDYhiDFiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;cIktoriBMlAole7viH;anC3enJ0;kF9tor2;da,lA9nus,rHs0;a,nHoniH4;a,iFQ;leHnesH4;nIHrH;i1y;g9rHxH5;su5te;aYeUhRiNoLrIuHy3;i,la;acIZiHu0L;c2na,sH;hBPta;nHr0H;iBNya;aJffaEOnHs6;a,gtiH;ng;!nFQra;aIeHomasi0;a,l9Po8Ares1;l2ndolwethu;g9Go88rIssH;!a,ie;eHi,ri8;sa,za;bPlNmLnJrIs6tHwa0;ia0um;a63yn;iHya;a,ka,s6;arB6e3iHmEDra;!ka;a,iH;a,t6;at6it6;a0Fcarlet3We0BhXiTkye,neza0oRtNuIyH;bIBlvi1;e,ha,mayIEni7sIzH;an3MetAie,y;anHi8;!a,e,nH;aEe;aJeH;fHl5GphH;an4;cHZr5;b2fiA8m0OnHphi1;d3ia,ja,ya;er3lJmon1nIobh8PtH;a,i;dy;lEPv2;aMeIirHo0risF7y5;a,lDK;ba,e0i5lJrH;iHrDOyl;!d8Hfa;ia,lDX;hd,iMki3nJrIu0w0yH;la,ma,na;i,le9on,ron;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye81vH;da,inj;e0ife;en1i0ma;anA5bNd3Nh1RiBkMlLmJndIrHs6vannaE;aEi0;ra,y;aHi3;nt6ra;lDKma,ome;ee0in8Ru3;in1ri0;a05e00hYiVoIuH;by,thDH;bScRghQl2KnPsJwIxH;anAXie,y;an,e0;aIeHie,lD; merBLann8ll1marDBt7;!lHnn1;iHyn;e,nH;a,d9K;da,i,na;ayy8D;hel62io;bDKer7yn;a,cIkHmas,n9Fta,ya;ki,o;helGki;ea,iannGDoH;da,n1K;an0bJem9Agi0iInHta,y0;a88ee;han83na;a,eH;cEAkaE;bi0chIe,i0mo0nHquEKvCy0;di,ia;aEIelHiB;!e,le;een4ia0;aNeMhKipaluk,oJrHute66;iHudenCQ;scil3LyamvaB;lly,rt2;ilome0oebe,ylH;is,lis;arl,ggy,nelope,r5t3;ige,m0TnKo5rvaDGtIulH;a,etAin1;ricHsy,tBY;a,e,ia;do3i06;ctav2dIfCZis6lHphCZumC3yunbileg;a,ga,iv2;eHvAC;l2tA;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aEeCma;ll1mi;aNcLhariBOkKlaJna,sHta,vi;anHha;ur;!y;a,iDTki;hoGk9VolH;a,eDJ;!mh;hir,lHna,risFsreC;!a,lBT;asuLdKh2i6CnJomi8rgEPtHzanin zah3;aHhal4;li1s6;cy,etA;a,e9iEV;nngu30;a09ckenz4e01iMoJrignayani,uriDDyH;a,rH;a,lNna,tG;bi0i3llBInH;a,iH;ca,ka,qD3;a,cTkaSlNmi,nLrItzi,yH;ar;aIiam,lH;anEO;!l,nB;dy,eHh,n4;nhGrva;aKdJiCPlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5EgNi,lKrH;edi79iIjem,on,yH;em,l;em,sF;an4iHliF;nHsCE;a,da;!an,han;b0DcASd0Be,g09ha,i08ja,l06n04rLsoum60tKuIv82x9IyHz4;a,bell,ra,soB9;de,rH;a,eC;h8Fild1t4;a,cYgUiKjor4l7Sn4s6tJwa,yH;!aHbe6Wja9lAE;m,nBH;a,ha,in1;!aJbCBeIja,lDna,sHt64;!a,ol,sa;!l1H;! Jh,mInH;!a,e,n1;!awit,i;aliAHcJeduarBfernIjHlui5Y;o6Ful2;anB;ecil2la3;arJeIie,oHr44ueriA;!t;!ry;et42i37;el4Ui76y;dHon,ue5;akran7y;ak,en,iHk,lo3O;a,ka,nB;a,re,s4te;daHg4;!l3A;alDd4elHge,isDBon0;ei9in1yn;el,le;a0Ne0CiYoQuLyH;d2la,nH;!a,dIeBGnHsCL;!a,eBF;a,sCJ;aCWcJel0PiFlIna,pHz;e,i7;a,u,wa;iHy;a0Se,ja,l2JnB;is,l1SrJttIuHvel4;el5is1;e,ie;aKeIi8na,rH;a86i8;lHn1t7;ei;!in1;aSbb9CdRepa,lMnJsIv2zH;!a,be5LetAz4;a,etA;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lHy;iHy;aA0e;!aH;!n5F;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx4y5;iHt4;c2t2;e2LlCG;la,nHra;a,ie,o3;a,or1;a,gh,laH;!ni;!h,nH;a,d3e,n5P;cOdon97iNkes6mi9Ana,rMtJurIvHxmi,y5;ern1in2;a,e54ie,yn;as6iIoH;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a04eZhXiOlAKoNrJyH;lHra;a,ee,ie;istHy6D;a,en,iIyH;!na;!e,n59;nul,ri,urtnB0;aOerNlAZmJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stC;!na,ra;aHei3ongordzol;dij1w5;el7QiKjsi,lJnIrH;a,i,ri;d3na,za;ey,i,lBDs4y;ra,s6;bi7cAJdiat7IeB2iRlQmPnyakuma19rNss6KtKvi7yH;!e,lH;a,eH;e,i8L;a6DeIhHi4NlDri0y;ar6Ber6Bie,leCrB2y;!lyn8Gri0;a,en,iHl5Soli0yn;!ma,n3VsF;a5il1;ei8Ei,l4;a,tl6L;a07eYiVoNuH;anLdKliHst63;a8HeHsF;!n9tH;!a,te;e5Ji3Jy;a,i7;!anNcelDd6RelGhan7RlLni,sIva0yH;a,ce;eHie;fHlDph5U;a,in1;eHie;en,n1;!a,e,n41;lHng;!i1ClH;!i1B;anMle0nJrIsH;i8Csi8C;i,ri;!a,elGif2CnH;a,etAiHy;!e,f2A;a,e8EiInH;a,e8DiH;e,n1;cMd1mi,nIque4Xsmin3Ovie3y9zH;min8;a8eIiH;ce,e,n1s;!lHsFt0F;e,le;inIk4lDquelH;in1yn;da,ta;lRmPnOo0rNsIvaHzaro;!a0lu,na;aJiIlaHob84;!n9N;do3;!belHdo3;!a,e,l39;a77en1i0ma;a,di3es,gr6Yji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHusFyacin2B;da,ll4rten23snH;a,i9Q;lImaH;ri;aIdHlaI;a,egard;ry;ath1CiJlInriet7rmi9sH;sa,t1B;en2Sga,mi;di;bi2Dil8IlNnMrJsItHwa,yl8Iz7H;i5St4;n5Yti;iHmo51ri52;etH;!te;aEnaE;a,ey,l4;a03eXiSlQoOrKunJwH;enHyne1Q;!dolD;ay,el;acIetHiselB;a,chC;e,ieH;!la;ld1AogooH;sh;adys,enHor2yn2H;a,da,na;aKgi,lIna,ov89selHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald3Pi,m3Ctru8B;etAi4W;a,eHna;s26vieve;ma;bIil,le,mHrnet,yG;al5Ni5;i5FrielH;a,l1;aVeSiRloOoz2rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0O;n1s61;!ca;!rH;a,encH;e,ia;en,o0;lIn0rnH;!anB;ec2ic2;jr,n7rKtHy8;emIiHma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Nd0Ne0Mi0Lk7l04mWn4YrTsNtMuLvH;aJelIiH;!e,ta;in0Gyn;!ngel2S;geni1la,ni45;h5Sta;mLperanKtH;eIhHrel5;er;l30r8;za;a,eralB;iHma,nest2Jyn;cHka,n;a,ka;a,eMiJmH;aHie,y;!li9;lHn1;ee,iHy;a,e,ja;lHrald;da,y;aWeUiNlMma,no3oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c2da,f,nMsJzaH;!betHve7;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a;!in1na;leCs6;vi;eIiHna,wi0;e,th;l,n;aYeMh2iLjeneKoHul30;lor5Tminiq4In3FrHtt4;a,eCis,la,othHthy;ea,y;ba;an0AnaEon9x4ya;anQbPde,eOiMja,lJmetr2nHsir5K;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6D;dHrdH;re;!d5Cna;!b2HoraEra;a,d3nH;!a,e;hl2i0l0HmNnLphn1rIvi1XyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,etAiH;!ca,el1Cka,z;arHia;is;a0Se0Oh05i03lVoKrIynH;di,th2;istHy05;al,i0;lPnMrIurH;tn1E;aJd2NiHn2Nri9;!nH;a,e,n1;!l1X;cepci59n4sH;tanHuelo;ce,za;eHleC;en,tA;aJeoIotH;il51;!pat3;ir8rJudH;etAiH;a,ne;a,e,iH;ce,sZ;a3er3ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Ren,iHy;!an1e,n1;deJlseIrH;!i8yl;a,y;li9;nMrH;isKlImH;ai9;a,eHotA;n1tA;!sa;d3elGtH;al,elG;cIlH;esAi44;el2ilH;e,ia,y;itlZlYmilXndWrOsMtHy5;aKeJhHri0;erHleCrDy;in1;ri0;li0ri0;a33sH;a32ie;a,iNlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eHie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrH;andSeQiJoIyH;an0nn;nwDok8;an3DdgLg0XtH;n2XtH;!aInH;ey,i,y;ny;etH;!t8;an0e,nH;da,na;i8y;bbi8glarIlo05nH;i7n4;ka;ancHossom,ythe;a,he;an17lja0nHsm3I;i7tH;ou;aUcky,linTni7rPssOtJulaEvH;!erlH;ey,y;hJsy,tH;e,iHy8;e,na;!anH;ie,y;!ie;nHt6yl;adIiH;ce;etAi9;ay,da;!triH;ce,z;rbJyaH;rmH;aa;a3ie,o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn09oi,r04sUtTuPvOwa,yIzH;ra,u0;aKes6gJlIseH;!l;in;un;!nH;a,na;a,i2Ir2J;drJgus1RrIsteH;ja;el2;a,ey,i,y;aahua,he0;hIi2Gja,mi7s2DtrH;id;aMlIraqHt21;at;eIi8yH;!n;e,iHy;gh;!nH;ti;iJleIo6pi7;ta;en,n1tA;aHelG;!n1J;a00dje5eYgUiSjQnJohito,toHya;inetAnH;el5ia;!aKeIiHmJ;e,ka;!mHtA;ar4;!belIliFmU;sa;!le;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tA;te;! JbImHstasiNya;ar2;el;cla3jul2pau5;aLberKeliJiHy;e,l2naH;!ta;a,ja;!ly;hGiIl2nB;da;a,ra;le;aWba,ePiMlKma,thJyH;a,c2sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c2is6jaKksaKna,sJxH;aHia;!nd3;ia,saH;nd3;ra;ia;i0nIyH;ah,na;a,is,naEoud;la;c6da,leCmNnLsH;haElH;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;!gaK;ey,i8y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Actor:"true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦a01bYcQdPeOfiJgIhon,jr,king,lHmCoffic00p7queen,r3s0taoiseach,vice6;e1fc,gt,ir,r,u0;ltRpt,rg;cond liInBrgeaJ;abbi,e0;ar1p9s,v0;!erend; admirX;astOhd,r0vt;esideDi1of0;!essM;me mini4nce0;!ss;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:1I;1:1X;2:16;a1Rb1Jc1Ad17e10f0Ug0Nh0Ii0Ej0Dknowled1Ql08mYnews,oXpTrOsDt8vi7w3;a5ea0Bi4oo3;d,l;ldlife,ne;rmth,t0;neg17ol0Ctae;e6h5oothpaste,r3una;affTou3;ble,sers,t;ermod1Mund0;a,nnis;aBcene0Aeri2hAil9kittl2now,o8p6t4u3;g10nshi0Q;ati1Le3;am,el;ace1Ee3;ci2ed;ap,cc0;k,v0;eep,ingl2;d0Dfe18l3nd;m11t;a6e4ic3;e,ke0M;c3laxa0Isearch;ogni0Hrea0H;bi2in;aPe5hys1last9o3ress04;l3rk,w0;it1yA;a12trZ;bstetr1il,xygen;aAe8ilk,o5u3;mps,s3;ic;n3o0I;ey,o3;gamy;a3chan1;sl2t;chine3il,themat1; learn0Bry;aught0e5i4ogi0Su3;ck,g0I;ce,ghtn08ngui0QteratN;a3isM;th0;ewelAusti0L;ce,mp3nformaUtself;a3ortan0J;ti3;en0H;a6isto5o3;ck3mework,n3spitali0B;ey;ry;ir,libut,ppiD;ene6o4r3um,ymna0D;aCound;l3ssip;d,f; 3t1;editQpo3;ol;i7lour,o4urnit3;ure;od,rgive3uri0wl;ne3;ss;c9sh;conom1duca8lectr7n5quip6th1very3;body,o3thH;ne;joy3tertain3;ment;iciPon1;tiI;ar4iabet2raugh4;es;ts;aAelcius,h6iv1l5o3urrency;al,ld w3nfusiDttD;ar;ass1oth5;aos,e3;e4w3;ing;se;r7sh;a7eef,i4lood,owls,read,utt0;er;lliar4s3;on;ds;g3ss;ga3;ge;c8dvi7ero5ir4mnes3rt,thlet1;ty;craft;b1d3naut1;ynam1;ce;id,ou3;st1;ics",Infinitive:"true¦0:6S;1:76;2:5C;3:74;4:73;5:67;6:6F;7:6Y;8:6Q;9:72;A:70;B:6X;C:5X;D:77;E:6L;F:5B;a6Kb66c57d4De3Xf3Jg3Dh37i2Uj2Sk2Ql2Hm26n23o1Yp1Jr0Rs06tYuTvOwHyG;awn,ield;aJe1Zhist6iIoGre6D;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tEve;n,raD;d0t;aJiHoG;te,w;eGsB;!w;l6Jry;nHpGr4se;gra4Pli41;dGi9lo5Zpub3Q;erGo;mi5Cw1I;aMeLhKig5SoJrHuGwi7;ne,rn;aGe0Mi5Uu7y;de,in,nsf0p,v5J;r2ZuE;ank,reatC;nd,st;lk,rg1Qs9;aZcWeVhTi4Dkip,lSmRnee3Lo52pQtJuGwitE;bmBck,ff0gge7ppHrGspe5;ge,pri1rou4Zvi3;ly,o36;aLeKoJrHuG;dy,mb6;aFeGi3;ngthCss,tE;p,re;m,p;in,ke,r0Qy;la58oil,rink6;e1Zi6o3J;am,ip;a2iv0oG;ck,rtCut;arEem,le5n1r3tt6;aHo2rG;atEew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5V;eGiew,o36;al,l,rG;se,t;aFi2u44;eJi7oItG;!o2rG;i5uc20;l3rt;mb6nt,r3;e7i2;air,eHlGo43r0K;a8y;at;aFemb0i3Zo3;aHeGi3y;a1nt;te,x;a5Dr0J;act1Yer,le5u1;a13ei3k5PoGyc6;gni2Cnci6rd;ch,li2Bs5N;i1nG;ge,k;aTerSiRlOoMrIuG;b21ll,mp,rGsh;cha1s4Q;ai1eIiDoG;cGdu8greAhibBmi1te7vi2W;eAlaim;di5pa2ss,veD;iDp,rtr46sGur;e,t;aHead,uG;g,n4;n,y;ck,le;fo34mBsi7;ck,iDrt4Mss,u1;bJccur,ff0pera9utweIverGwe;co47lap,ta22u1wG;helm;igh;ser3taF;eHotG;e,i8;ed,gle5;aMeLiIoHuG;ltip3Grd0;nit13ve;nHrr12sreprG;eseD;d,g6us;asu2lt,n0Nr4;intaFna4rHtG;ch,t0;ch,kGry;et;aMeLiJoGu1C;aHck,oGve;k,sC;d,n;ft,g35ke,mBnk,st2YveG;!n;a2Fc0Et;b0Nck,uG;gh,nE;iGno34;ck,ll,ss;am,oFuG;d4mp;gno2mQnGss3H;cOdica9flu0MhNsKtIvG;eGol3;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abBibB;lu1Fr1D;agi24pG;lemeDo22ro3;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppCrm,te;aKloAove1PrIuG;arGeAi15;ant39d;aGip,ow,umb6;b,sp;in,th0ze;aReaQiOlMoJrHuncG;ti3J;acGeshC;tu2;cus,lHrG;ce,eca7m,s30;d,l24;a1ZoG;at,od,w;gu2lGni1Xt,x;e,l;r,tu2;il,stCvG;or;a15cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte19;a18eHi2laFoGreA;rt,se;ct,riG;en8;ci1t;el,han4;abGima9;li1J;ab6couXdHfor8ga4han8j03riEsu2t0vG;isi2Vy;!u2;body,er4pG;hasiGow0;ze;a07eUiLoKrHuG;mp;aHeAiG;ft;g,in;d4ubt;ff0p,re5sHvG;iZor8;aKcHliGmiApl1Btingui14;ke;oGuA;uGv0;ra4;gr1YppG;ear,ro3;cOeNfLliv0ma0Fny,pKsHterG;mi0G;cribe,er3iHtrG;oy;gn,re;a0Be0Ai5osB;eGi0By;at,ct;m,pC;iIlHrG;ea1;a2i06;de;ma4n8rGte;e,kC;a0Ae09h06i9l04oJrG;aHeGoAu0Hy;a9dB;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aFin0VrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laF;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen4n4r4se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aSePloOoMrIuG;lGry;ly;igHuG;sh;htC;en;a7mb,o7rrGth0un8;ow;ck;ar,lHnefBtrG;ay;ie3ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waB;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri3;ue;!i3;eaJlIroG;aEve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e4ow;ee;rd;aRdIju7mBoR;it;st;!reA;ss;cJhie3knowled4tiva9;te;ge;ve;eIouDu1;se;nt;pt;on",Unit:"true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s",Organization:"true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c",Demonym:"true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an",Possessive:"true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne",Currency:"true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s",City:"true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1ern1Mi0;en2Hlni2Z;lenc2Uncouv0Gr2Gughn;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg",Country:"true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Region:"true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma",Place:"true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt,rd;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il",Date:"true¦ago,t2week0yesterd4; e0e0;nd;mr2o0;d0morrow;ay;!w",FirstName:"true¦aKblair,cGdevFgabrieEhinaDjBk8l7m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9X;3:9H;4:9N;5:8J;6:9K;7:A0;8:9E;9:88;A:77;B:6E;C:6J;a9Ub8Lc7Kd6Xe6Rf6Dg5Vh58i54j4Pk45l3Nm2Rn2Eo26p1Nquispe,r17s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun7ZiDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s2;b0iss,lt0;a5Rgn0lDng,tanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr0Zss0val37;ba,obos;lasEsel7N;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1JhHi4j6ka3IoGrFsui,uD;om4ZrD;c4n0un1;an,embl8TynisA;dor95lst31m3rr9th;at5Mi7LoD;mErD;are6Ylaci64;ps2s0Y;hirBkah8Dnaka;a00chWeThPiNmKoItFuEvDzabo;en8Aobod34;ar7bot3lliv4zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Psa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmDngh,rbu;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Trra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr3saAto,v3;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Be0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag4es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1W;lishc24pDrti62u55we66;e2Tov48;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5PrEzD;demir,turk;ella3MtDwe5N;ega,iz;iDof6GsC;vDyn1F;ei8;aPri1;aLeJguy1iFoDune44ym4;rodahl,vDwak;ak3Uik5otn56;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray4varD;ro;jiDmu8shiD;ma;aXcVeQiPoIuD;lGnFrDssoli5T;atDpUr68;i,ov3;oz,te4B;d0l0;h4lIo0HrEsDza0Z;er,s;aFeEiDoz5r3Ete4B;!n6F;au,i8no,t4M;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeGij0j2ElFndErci0ssiDyer19;!er;e3Bo2Z;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Ns1;aSeMiIoGuEyD;!nch;k3nDo;d,gu;mbarDpe2Rvr3;di;!nDu,yana1R;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h4iSlQnez46oJrGuEvar4woD;k,n;cerDmar58znets5;a,o2G;aDem0i2Zyeziu;sni3PvD;ch3U;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3Q;huk;!ev3ic,s;e6uiveD;rt;eff0l3mu8nnun1;hn,lloe,minsArEstra31to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Pim0QoEuD;ng,r3;e2JhFnErge2Ju2NvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki26s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0CnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m4ng;a23dz3fEjga2Sk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz3g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aMeorgLheorghe,iJjonIoGrEuDw2;o,staf2Utierr7zm4;ayDg3iffitUub0;li1G;lub3Rme0JnD;calv9zale0I;aj,i;l,mDordaL;en7;iev3B;gnJlGmaFnd2No,rDs2Nuthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erMiIjeldsted,lor9oGrFuD;cDent9ji3F;hs;an1Wiedm4;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnandeVrD;arDei8;a,i;ov3;dHinste6riksCsDva0D;cob2ZpDtra2X;inoDosiM;za;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0YuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g4he0Hmingu7n2Ord19tD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w4;!ov3;gado,ic;th;bo0groot,jo03lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnErw6t2EviD;d5es,s;ieDku1S;ls1;ki;a05e00hNiobMlarkLoFrD;ivDuz;elli;h1lGntFop0rDs26x;byn,reD;a,ia;i,rer0O;em4liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDtterjee,v7;!d,g;ma,raboD;rty;bGl09ng3rD;eghetEnD;a,y;ti;an,ota0M;cer9lder2mpbeIrFstDvadi08;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a09eXhUiSlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nEzD;ev3;co;ancRshwD;as;a01oDuiy4;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b3ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl4yD;aEd6;in;la;aEsl4;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:E5;1:D6;2:DO;3:AY;4:D2;5:CG;6:CW;7:C8;8:B6;9:DL;A:DK;B:A6;C:C2;aCObBLcAJd9He8Nf85g7Ih6Ui6Ej5Ek52l4Dm35n2To2Np2Fqu2Dr1Ls11t0Eu0Dv07wTxSyIzD;aDor0;cDh9Tkaria,n5W;hEkD;!aCM;ar5WeCL;aLoFuD;sDu2KvBY;if,uf;nFsEusD;ouf,sD;ef;aDg;s,tD;an,h0;hli,nBMssX;avi3ho4;aMeKiFoDyaC2;jcie8Clfgang,odrow,utD;!er;lDnst1;bFey,frD1lD;aBDiD;am,e,s;e9Fur;i,nde8sD;!l7t1;de,lErr9yD;l1ne;lDt3;aAAy;aGiDladimir,ojte7Z;cEha0kt69nceDrgAJva0;!nt;e3Vt67;lentDnA5;in4Y;ghBVlyss5Cnax,sm0;aXeShOiMoHrFuEyD;!l3ro6s1;nAr5C;avAWeDist0oy,um0;ntAOv5Zy;bGdFmDny;!as,mDoharu;aCTie,y;!d;iBy;mDt5;!my,othy;adFeoEia8GomD;!as;!do8P;!de5;dGrD;en9LrD;an9KeDy;ll,n9J;!dy;dgh,ha,iDnn3req,tsu4T;cB5ka;aTcotRePhLiJoHpenc3tDur1Vylve9Kzym1;anFeDua8D;f0phBTvDwa8C;e62ie;!islaw,l7;lom1nBFuD;leyma6ta;dDlBm1yabonga;!dhart7Bn7;aFeD;lDrm0;d1t1;h7Une,qu10un,wn,y6;aDbasti0k2Al4Rrg4Oth,ymoAU;m5n;!tD;!ie,y;lEmDnti2Eq5Bul;!ke5MmCu4;ik,vato7X;aYeUheAAiQoHuEyD;an,ou;b7NdEf5pe7SssD;!elBZ;ol3Fy;an,bKcJdIel,geHh0landBQmGnFry,sEyD;!ce;coe,s;!aAHnC;an,eo;l47r;e5Og3n7olfo,ri7A;co,ky;bCeB7;cDl7;ar6Pc6OhEkDo;!ey,ie,y;a99ie;gEid,ub9x,yDza;an1InY;gA8iD;naA4s;ch70fa4lHmGndFpha4sEul,wi2HyD;an,mo82;h7Vm5;alBDol2Uy;iATon;f,ph;ent2inD;cy,t1;aIeGhilFier72ol,rD;aka16eD;m,st1;!ip,lip;dALrcy,tD;ar,e3Gr1X;b4Kdra7Ft4ZulD;!o17;ctav3Fi3liv3mAFndrej,rHsEtDumAw9;is,to;aEcAkAm0vD;al5Z;ma;i,l53vL;aLeJiFoDu3A;aDel,j5l0ma0r3K;h,m;cEg4i49kD;!au,h7Uola;holBkDolB;!olB;al,d,il,ls1vD;il8Y;hom,thD;anDy;!a4i4;aZeWiMoHuEyD;l2Jr1;hamEr6XstaD;fa,p5C;ed,mH;di0We,hamFis2FntEsDussa;es,he;e,y;ad,ed,mD;ad,ed;cIgu4hai,kGlFnEtchD;!e8;a8Aik;house,o0Bt1;ae5YeA4olD;aj;ah,hDk7;aEeD;al,l;el,l;hElv2rD;le,ri8v2;di,met;ay0ck,hTjd,ks2DlRmadWnQrKs1tFuricExD;!imilian9Nwe8;e,io;eGhEiBtDus,yB;!eo,hew,ia;eDis;us,w;j,o;cHio,kGlFqu7Dsha8tDv2;iDy;!m,n;in,on;!el,oPus;!el9IoOus;iGu4;achDcolm,ik;ai,y;amEdi,eDmoud;sh;adDm5T;ou;aXeQiOlo3EoKuEyD;le,nd1;cGiFkDth3uk;aDe;!s;gi,s,z;as,iaD;no;g0nn7SrenFuDv8Jwe8;!iD;e,s;!zo;am,oD;n4r;a8Cevi,la5JnIoGst3thaFvD;eDi;nte;bo;!nD;!a6Sel;!ny;mFnErDur5Hwr5H;ry,s;ce,d1;ar,o5A;aLeGhaled,iDrist5Iu4Vy6X;er0p,rD;by,k,ollD;os;en0iGnDrmit,v44;!dEnDt5Z;e1Ay;a8ri59;r,th;cp3j5m66na73rEspAthem,uD;ri;im,l;a02eUiSoGuD;an,lDst2;en,iD;an,en,o,us;aNeLhnKkubBnIrGsD;eEhDi8Bue;!ua;!ph;dDge;an,i,on;!aDny;h,s,th5I;!ath5Hie,nC;!l,sDy;ph;o,qu2;an,mD;!mC;d,ffIrFsD;sDus;!e;a6BemEmai6oDry;me,ni0Y;i7Ty;!e60rD;ey,y;cKd9kImHrFsEvi3yD;!d9s1;on,p3;ed,od,rDv56;e5Nod;al,es4Xis1;a,e,oDub;b,v;k,ob,quD;es;aWbQchiPgNkeMlija,nuLonut,rJsFtDv0;ai,suD;ki;aEha0i7DmaDsac;el,il;ac,iaD;h,s;a,vinDw2;!g;k,nngu5S;!r;nacDor;io;ka;ai,rahD;im;aPeJoIuDydA;be2KgGmber4WsD;eyEsD;a2e2;in,n;h,o;m3ra3Gsse2wa4B;aHctGitGnrErD;be2Dm0;iDy;!q11;or;th;bMlLmza,nKo,rFsEyD;a4Jd9;an,s0;lGo50rFuDv7;hi4Gki,tD;a,o;is1y;an,ey;k,s;!im;ib;aVeRiPlenOoLrHuD;ilEsD;!tavo;herme,lerD;mo;aFegDov3;!g,orD;io,y;dy,h5Wnt;nzaErD;an,d1;lo;!n;lbe5Ano,oD;rg3Hvan5A;ne,oFrD;aDry;ld,rd5H;ffr7rge;brEl9rDv2;la28r3Sth,y;e3EielD;!i5;aTePiNlLorr0NrD;anFedDitz;!dCeDri2B;ri2A;cFkD;!ie,lD;in,yn;esLisD;!co,z36;etch3oD;yd;d4lDnn,onn;ip;deriFliEng,rnD;an06;pe,x;co;bi0di,hd;ar04dZfrYit0lSmKnHo2rFsteb0th0uge6vDym9zra;an,eD;ns,re36;gi,i0DnDrol,v2w2;est4Pie;oEriqDzo;ue;ch;aJerIiEmD;aIe2Z;lErD;!h0;!iD;o,s;s1y;nu4;be0Cd1iGliFmEt1viDwood;n,s;er,o;ot1Ys;!as,j4NsD;ha;a2en;!dCgAmGoEuEwD;a2Din;arD;do;o0Wu0W;l,nD;est;a01eRiOoHrGuFwEylD;an,l0;ay6ight;a6dl7nc0st2;ag0ew;minGnEri0ugDvydBy2D;!lB;!a2MnDov0;e8ie,y;go,iDykB;cDk;!k;armuEeDll1on,rk;go;id;anKj0lbeJmetri5nHon,rGsFvEwDxt3;ay6ey;en,in;hawn,mo0B;ek,ri0I;is,nDv3;is,y;rt;!dD;re;an,lNmLnKrGvD;e,iD;! lucDd;as,ca;en,iFne8rDyl;eDin,yl;l3Bn;n,o,us;!e,i4ny;iDon;an,en,on;e,lB;as;a09e07hYiar0lNoIrGuEyrD;il,us;rtD;!is;aDistob0U;ig;dy,lGnErD;ey,neli5y;or,rD;ad;by,e,in,l2t1;aIeFiDyK;fDnt;fo0Ft1;meEt5velaD;nd;nt;rFuEyD;!t1;de;enD;ce;aIeGrisEuD;ck;!tD;i0oph3;st3;er;d,rDs;b4leD;s,y;cDdric,sA;il;lGmer1rD;ey,lEro8y;ll;!os,t1;eb,v2;a07eZiVlaUoRrEuDyr1;ddy,rtK;aLeGiFuEyD;an,ce,on;ce,no;an,ce;nEtD;!t;dEtD;!on;an,on;dEndD;en,on;!foDl7y;rd;bErDyd;is;!by;i6ke;bFlEshD;al;al,lC;ek;nHrDshoi;at,nEtD;!r1C;aDie;rd14;!edict,iEjam2nC;ie,y;to;kaMlazs,nHrD;n7rDt;eDy;tt;ey;dDeE;ar,iD;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il04m00nSputsiRrIsaHuFveEyDziz;a0kh0;ry;gust5st2;us;hi;aKchJiIjun,maHnFon,tDy0;hDu09;ur;av,oD;ld;an,nd0H;!el,ki;ie;ta;aq;as,dIgel0CtD;hoGoD;i6nD;!i09y;ne;ny;er,reDy;!as,i,s,w;iFmaDos;nu4r;el;ne,r,t;an,bePd9eJfHi,lGonFphXt1vD;aNin;on;so,zo;an,en;onTrD;edU;c,jaGksandFssaGxD;!andD;er,ru;ar,er;ndD;ro;rtN;ni;d9mA;ar;en;ad,eD;d,t;in;onD;so;aEi,olfDri0vik;!o;mDn;!a;dHeGraEuD;!bakr,lfazl;hDm;am;!l;allIelFoulaye,ulD;!lDrF;ah,o;! rD;ahm0;an;ah;av,on",Person:"true¦ashton kutchTbScNdLeJgastOhHinez,jFkEleDmCnettKoBp9r4s3t2v0;a0irgin maH;lentino rossi,n go3;aylor,heresa may,iger woods,yra banks;addam hussain,carlett johanssKlobodan milosevic,uC;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Verb:"true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en",PhrasalVerb:"true¦0:7E;1:72;2:7Q;3:7G;4:6V;5:7T;6:7I;7:71;8:6O;9:6P;A:5T;B:7L;C:7J;D:7D;E:7C;F:6Q;G:7S;H:46;a7Yb6Jc5Sd5Oe5Mf4Lg43h3Miron0j3Ik3Dl2Xm2Ln2Jo2Hp1ZquietFr1Ms0FtVuTvacuum 1wLyammerEzI;eroAip JonI;e0k0;by,up;aOeLhKiJorIrit5H;d 1k35;mp0n2Xpe0r8s8;eel Dip G;aJiIn2L;gh 0Crd0;n Dr 3S;it 60k8lk6rm 6Bsh 7Lt6Ov53;rgeEsI;e 9herA;aXeVhTiPoNrKuIype 68;ckArn I;d2in,o3Vup;aJiIot0y 2L;ckleFp G;ckFde 02;neFp Is4Q;d2o71up;ck KdJe Igh69me0p o0Kre0;aw3ba4d2in,up;e 60y 1;by,oC;ink Irow 6B;ba4ov7up;aIe 4Vll52;m 1r 01;ckEke Jlk I;ov7u53;aIba4d2in,o3Fup;ba4ft7p58w3;a0Nc0Me0Gh0Ci09l05m04n03o02pXquare WtOuMwI;earKiI;ngJtch I;aw3ba4o75; by;ck Iit 1m 1ss0;in,up;aNe10iMoKrIucH;aigh1ZiI;ke 6En3C;p Irm22;by,in,oC;nHr 1tc3V;cHmp0nd Ir6Xve6y 1;ba4d2up;d2oCup;arHeLiKlJrIurE;ingEuc8;a3Hit 47;l16n 1;e5Qll0;be4Prt0;ap 4Row D;ash 5Doke0;eep JiIow 9;c3Yp 1;in,oI;ff,v7;gn 4WngJt Iz8;d2o5up; al52le0;aKoIu4S;ot Iut0w 6B;aw3ba4f3IoC;cHdeAk56ve6;e Mll0nd LtI; Itl4G;d2in,o5upI;!on;aw3ba4d2in,o2Aup;o5to;al4Zout0rap4Z;il6v8;aTeQiPoLuI;b 4Sle0n Istl8;aIba4d2in5Ho3Tt3Bu3R;c29w3;ll Kot JuI;g2Vnd6;a29f32o5;arBin,o5;ng 51p6;aIel6inAnt0;c5Bd I;o33u0L;cHt0;aVeUiTlRoPrMsyc2JuI;ll Kt I;aIba4d2in,o1Rt3Fup;p3Kw3;ap3Jd2in,o5t3Dup;attleEess JiLoI;p 1;ah1Ron;iIp 5Fr3XurFwer 5F;nt0;ay4BuI;gAmp 9;ck Gg0leEn 9p48;el 4JncilA;c41ir 2Rn0ss KtJy I;ba4oC; d2c27;aw3ba4o1C;pIw3W;e3Vt D;arrowFerd0oI;d6teF;aQeNiMoKuI;ddl8lI;l 3I;cHp 1uth6ve I;al3Md2in,o5up;ss0x 1;asur8lJss I;a1Jup;t 9;ke Jn 9rIs1Sx0;k 9ry6;do,o47up;aVeTiOoIuck0;aMc3Gg LoIse0;k Ise3E;aft7ba4d2forw2Jin45ov7uI;nd7p;in,o0Q;d 9;e LghtKnJsIv1Y;ten G;e 1k 1; 1e36;arBd2;av1Mt 36velI; o3T;c8p 1sh ItchEugh6y20;in3To5;eJick6nock I;d2o3P;eIyA;l 2Pp I;aw3ba4d2fXin,o0Bto,up;aKoJuI;ic8mpA;ke30tF;c39zz 1;aUePiMoJuI;nkerFrry 1s0Z;lIneArse2W;d Ie 1;ba4d2fast,o05up;de Jt I;ba4on,up;aw3o5;aIlp0;d Kl 2Ar It 1;fIof;rom;in,oXu1H;cHm 1nJve Iz25;it,to;d Ig 2EkerK;d2in,o5;aWeQive Oloss 22oKrJunI; f0Q;in3Gow 2A; Iof 0Y;aJb1Dit,oIrBt0Su18;ff,n,v7;bo5ft7hOw3;aw3ba4d2in,oIup,w3;ff,n,ut;a1Dek0t I;aJb17d2oIrBup;ff,n,ut,v7;cJhIl1WrBt,w3;ead;ross;d aJnI;g 1;bo5;a0Ce05iWlSoOrKuI;cHel 1;k 1;eJighten IownEy 1;aw3oC;eIshe1N; 1z8;lKol I;aIwi1G;bo5rB;d 9low 1;aJeIip0;sh0;g 9ke0mIrI;e G;gPlNnLrJsIzzle0;h G;e Im 1;aw3ba4up;d0isI;h 1;e Il 19;aw3fN;ht ba4ure0;eNnJsI;s 1;cKd I;fIoC;or;e D;dWl 1;cMll Irm0t0W;ap05bKd2in,oJtI;hrough;ff,ut,v7;a4ehi20;e J;at0dge0nd Iy8;oCup;oKrI;ess 9op I;aw3bUin,o1D; 0Eubl8;aYhVlean 9oIross Dut 10;me LoJuntI; o1T;k 1l I;d2oC;aObNforLin,oKtJuI;nd7;ogeth7;ut,v7;th,wI;ard;a4y;pIrBw3;art;eIipA;ck DeI;r 1;lOncel0rLsKtch JveA; in;o1Cup;h Dt6;ry JvI;e 01;aw3o18;l ImF;aIba4d2o16up;rBw3;a0Ne0El07oYrNuI;bblKcklZil05lk 9ndlZrn 0Bst JtIy Gzz6;t D;in,o5up;e I;ov7;anReaPiIush6;ghMng I;aJba4d2forIin,o5up;th;bo5lIrBw3;ong;teI;n 1;k I;d2in,o5up;ch0;arPgFil 9n8oLssKttlJunce Ix D;aw3ba4;e 9; arB;k Dt 1;e 1;d2up; d2;d 1;aNeed0oIurt0;cKw I;aw3ba4d2o5up;ck;k I;in,oP;ck0nk0st6; oOaLef 1nd I;d2ov7up;er;up;r0t I;d2in,oIup;ff,ut;ff,nI;to;ck Oil0nKrgJsI;h D;ainEe D;g DkE; on;in,o5; o5;aw3d2o5up;ay;cRdNsk Kuction6; oC;ff;arBo5;ouI;nd;d I;d2oIup;ff,n;own;t G;o5up;ut",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ay,ight,ust;an,o0;uld",Adjective:"true¦0:7P;1:84;2:83;3:8A;4:7W;5:5S;6:58;7:4O;8:4N;9:81;A:6I;a6Wb6Gc63d5Je54f4Hg49h3Wi39j37k36l2Vm2Ln2Bo1Wp1Dquack,r12s0Ft07uMvJwByear5;arp0eFholeEiDoB;man5oBu6P;d6Rzy;despr7Ls5S;!sa7;eClBste2A;co1Nl o4W;!k5;aCiBola4M;b89ce versa,ol5H;ca3gabo6Gnilla;ltUnHpCrb5Msu4tterB;!mo7G; Eb1SpDsBti1M;ca7etBide dKtairs;!ti2;er,i3U;f36to da1;aLbeco75convin29deIeHfair,ivers4knGprecedVrEsCwB;iel3Nritt6A;i1XuB;pervis0spec3Y;eBu5;cognHgul6Tl6T;own;ndi2v64xpect0;cid0rB;!grou5ZsB;iz0tood;b7pp0Dssu6UuthorB;iz0;i26ra;aGeEhDi6AoCrB;i1oubl0us3M;geth6p,rp6Vuc67;ough4Wril33;en60l32mpBrr2X;o6Ati2;boo,lBn;ent0;aWcVeThSiQmug,nobbi3LoOpNqueami3LtFuBymb6H;bDi gener5DpBrpri6D;erBre0N;! dup6b,i2C;du0seq52;anda77eGiFrBunni2y3F;aightCiB;ki2p0; fBfB;or5K;ll,r5S;aBreotyp0;dfa6Cmi2;a55ec2Gir1Hlend6Cot on; call0le,mb6phist1XrBu0Vvi48;d6Ary;gnifica3nB;ce51g7;am2Re6ocki2ut;cBda1em5lfi32ni1Wpa6Jre8;o1Er42;at5Gient28reec5G;cr0me;aJeEiCoB;bu60tt51uQy4;ghtBv4;!-2BfA;ar,bel,condi1du6Dfres5AlEpublic42sCtard0vB;ea26;is4CoB;lu1na3;aQe1Cuc4A;b5TciBllyi2;al,st;aOeLicayu8lac5Ropuli5QrCuB;bl5Jmp0n51;eGiDoB;!b07fu5RmiBp6;ne3si2;mCor,sBva1;ti8;a53e;ci5MmB;a0EiB;er,um;ac20rBti1;fe9ma2XpleBv38;xi2;rBst;allelDtB;-tiBi4;me;!ed;bLffJkIld fashion0nHpGrg1Eth6utFvB;al,erB;!all,niCt,wB;eiBrouB;ght;do0Ter,g2Qsi4B;en,posi1; boa5Og2Oli8;!ay; gua5MbBli8;eat;eDsB;cBer0Eole1;e8u3O;d2Xse;aJeIiHoBua4X;nFrCtB;ab7;thB;!eB;rn;chala3descri58stop;ght5;arby,cessa44ighbor5xt;k0usia1A;aIeGiDoBultip7;bi7derBl0Vnth5ot,st;a1n;nBx0;dblo0RiaBor;tu37;ande3Qdi4NnaBre;ci2;cBgenta,in,j01keshift,le,mmoth,ny,sculi8;ab33ho;aKeFiCoBu15;uti14vi2;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda3K;!-0C;ngu3Zst,tt6;ap1Xind5no0A;agg0uB;niMstifi0veni7;de4gno4Klleg4mQnEpso 20rB;a1rB;eleBita0J;va3; KaJbr0corIdGfluenQiQnFsEtCviB;go0Fti2;a9en3SoxB;ic3B;a8i2Vul0D;a1er,oce3;iCoB;or;re9;deq3Qppr33;fBsitu,vitro;ro3;mFpB;arDerfe9oBrop6;li1rtB;a3ed;ti4;eBi0S;d2Vn3C;aIeFiDoBumdr3I;ne36ok0rrBs08ur5;if2Z;ghfalut1QspB;an2X;aClB;liYpfA;li2;lEnDrB;d04roB;wi2;dy;f,low0;ainfAener2Oiga24lHoGraDuB;ilBng ho;ty;cCtB;efAis;efA;ne,od;ea2Iob4;aTeNinMlKoFrB;a1VeDoz1MustB;raB;ti2;e2Gq10tfA;oDrB; keeps,eBm6tuna1;g03ign;liB;sh;aBue3;g31tte1P;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i3l27r Cux,voB;ri1uri1;oBreac1E;ff;aLfficie3lKmHnFre9there4veExB;a9cess,pe1QtraCuB;be2Nl0E;!va1E;n,ryday; BcouraEti0O;rou1sui1;erCiB;ne3;gi2;abo23dMe17i1;g6sB;t,ygB;oi2;er;aReJiDoBrea14ue;mina3ne,ubB;le,tfA;dact1Bfficu1OsCvB;er1K;creDeas0gruntl0hone1FordCtB;a3ressM;er5;et; HadpGfFgene1PliDrang0spe1PtCvoB;ut;ail0ermin0;be1Mca1ghB;tfA;ia3;an;facto;i5magBngeroUs0G;ed,i2;ly;ertaMhief,ivil,oDrB;aBowd0u0G;mp0vZz0;loImGnCrrBve0P;e9u1I;cre1fu0LgrDsCtB;empo0Dra0E;ta3;ue3;mer08pleB;te,x;ni4ss4;in;aNeIizarHlFoCrB;and new,isk,okN;gCna fiUttom,urgeoB;is;us;ank,indB;!i2;re;autifAhiDloCnBst,yoD;eUt;v0w;nd;ul;ckCnkru0WrrB;en;!wards; priori,b0Mc0Jd09fra08g04h03lYmWntiquVppSrMsIttracti06utheHvEwB;aCkB;wa0T;ke,re;ant garCerB;age;de;ntU;leep,piDsuDtonB;isB;hi2;ri2;ab,bitEroDtiB;fiB;ci4;ga3;raB;ry;are3etiNrB;oprB;ia1;at0;aJuB;si2;arEcohCeBiIl,oof;rt;olB;ic;mi2;ead;ainDgressiConiB;zi2;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda3;e3oCtra9;ct;lu1rbi2;ng;te;pt;aBve;rd;aze,e;ra3;nt",Comparable:"true¦0:41;1:4I;2:45;3:4B;4:3X;5:2Y;a4Ob44c3Od3De35f2Rg2Fh24i1Vj1Uk1Rl1Jm1Dn17o15p0Vqu0Tr0KsTtMuIvFw7y6za13;ell27ou3;aBe9hi1Yi7r6;o3y;ck0Ode,l6n1ry,se;d,y;a6i4Mt;k,ry;n1Tr6sK;m,y;a7e6ulgar;nge4rda2xi3;g9in,st;g0n6pco3Mse4;like0t6;i1r6;ue;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te4;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft5;aAe9iff,r7u6;pXr1;a6ict,o3;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi3;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp5;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p5;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in4le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b5isy,rm15sy;ce,mb5;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt5ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti3;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b5id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te4;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t5uiY;u1y;aIeeb5iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get4mG;my;erce8n6rm;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi3;gey,lm8r6;e4i3;ful;!i3;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i3;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd",TextValue:"true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th",Ordinal:"true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th",Cardinal:"true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s",Expression:"true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la",Adverb:"true¦a08by 06d02eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,well,ye0;p,s; to,wards5;h1iny bit,o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hYtimes,w09;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag02moW; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboU;deed,steV;en0;ce;or2u0;lArther0;!moJ; 0ev3;examp0good,suH;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju8trop;far,n0;ow; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Determiner:"true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er"},Dt=["Person","Place","Organization"],$t={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:Dt},Actor:{isA:"Noun",notA:Dt},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:Dt},Demonym:{isA:["Noun","ProperNoun"],notA:Dt},Possessive:{isA:"Noun"}},Pt={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"PastTense"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"},Auxiliary:{notA:["Noun","Adjective","Value"]}},Ht={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},jt=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],Et={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["AtMention"]},Determiner:{notA:jt},Conjunction:{notA:jt},Preposition:{notA:jt},QuestionWord:{notA:["Determiner"]},Currency:{isA:["Noun"]},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Nt={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},xt=function(e){return Object.keys(e).forEach((function(t){e[t].color?e[t].color=e[t].color:Nt[t]?e[t].color=Nt[t]:e[t].isA.some((function(r){return!!Nt[r]&&(e[t].color=Nt[r],!0)}))})),e},It=function(e){return Object.keys(e).forEach((function(t){for(var r=e[t],n=r.isA.length,a=0;a=0;i--,a*=36){var o=e.charCodeAt(i)-48;o>10&&(o-=7),t+=o*a}return t},Jt=function(e,t,r){var n=Vt(t);return n1&&(r.hasCompound[i[0]]=!0),"Singular"===t){var o=a.toPlural(e,r);n[o]=n[o]||"Plural"}if("Infinitive"===t)for(var s=a.conjugate(e,r),u=Object.keys(s),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",t=e[e.length-1];if(!0===er.hasOwnProperty(t))for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r={};return t&&t.irregulars&&!0===t.irregulars.verbs.hasOwnProperty(e)&&(r=Object.assign({},t.irregulars.verbs[e])),void 0===(r=Object.assign({},nr(e),r)).Gerund&&(r.Gerund=ir.Gerund(e)),void 0===r.PastTense&&(r.PastTense=ir.PastTense(e)),void 0===r.PresentTense&&(r.PresentTense=ir.PresentTense(e)),r},sr=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/oud$/,/...p$/],ur=[/ary$/],lr={nice:"nicest",late:"latest",hard:"hardest",inner:"innermost",outer:"outermost",far:"furthest",worse:"worst",bad:"worst",good:"best",big:"biggest",large:"largest"},cr=[{reg:/y$/i,repl:"iest"},{reg:/([aeiou])t$/i,repl:"$1ttest"},{reg:/([aeou])de$/i,repl:"$1dest"},{reg:/nge$/i,repl:"ngest"},{reg:/([aeiou])te$/i,repl:"$1test"}],hr=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/old$/,/oud$/,/e[ae]p$/],dr=[/ary$/,/ous$/],gr={grey:"greyer",gray:"grayer",green:"greener",yellow:"yellower",red:"redder",good:"better",well:"better",bad:"worse",sad:"sadder",big:"bigger"},pr=[{reg:/y$/i,repl:"ier"},{reg:/([aeiou])t$/i,repl:"$1tter"},{reg:/([aeou])de$/i,repl:"$1der"},{reg:/nge$/i,repl:"nger"}],fr={toSuperlative:function(e){if(lr.hasOwnProperty(e))return lr[e];for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=t.irregulars.nouns;if(r.hasOwnProperty(e))return r[e];var n=yr(e);return null!==n?n:br.test(e)?e+"es":e+"s"},kr=[[/([^v])ies$/i,"$1y"],[/ises$/i,"isis"],[/(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"],[/(eas)es$/i,"$1e"],[/(..[aeiou]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/(x|ch|ss|sh|z|o)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"],[/([m|l])ice$/i,"$1ouse"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ics)$/i,"$1"],[/s$/i,""]],Ar=function(e,t){var r,n=t.irregulars.nouns,a=(r=n,Object.keys(r).reduce((function(e,t){return e[r[t]]=t,e}),{}));if(a.hasOwnProperty(e))return a[e];for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof t&&"number"!=typeof t&&null!==t||(t={group:t});var r=Ke(e,t);if(0===r.length)return this.buildFrom([]);if(!1===Br(this,r))return this.buildFrom([]);var n=this.list.reduce((function(e,t){return e.concat(t.match(r))}),[]);return void 0!==t.group&&null!==t.group&&""!==t.group?this.buildFrom(n).groups(t.group):this.buildFrom(n)},t.not=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(0===r.length||!1===Br(this,r))return this;var n=this.list.reduce((function(e,t){return e.concat(t.not(r))}),[]);return this.buildFrom(n)},t.matchOne=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(!1===Br(this,r))return this.buildFrom([]);for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(!1===Br(this,r))return this.buildFrom([]);var n=this.list.filter((function(e){return!0===e.has(r)}));return this.buildFrom(n)},t.ifNo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.list.filter((function(e){return!1===e.has(r)}));return this.buildFrom(n)},t.has=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);return!1!==Br(this,r)&&this.list.some((function(e){return!0===e.has(r)}))},t.lookAhead=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e||(e=".*");var r=Ke(e,t),n=[];return this.list.forEach((function(e){n=n.concat(e.lookAhead(r))})),n=n.filter((function(e){return e})),this.buildFrom(n)},t.lookAfter=t.lookAhead,t.lookBehind=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e||(e=".*");var r=Ke(e,t),n=[];return this.list.forEach((function(e){n=n.concat(e.lookBehind(r))})),n=n.filter((function(e){return e})),this.buildFrom(n)},t.lookBefore=t.lookBehind,t.before=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.if(r).list,a=n.map((function(e){var t=e.terms().map((function(e){return e.id})),n=e.match(r)[0],a=t.indexOf(n.start);return 0===a||-1===a?null:e.buildFrom(e.start,a)}));return a=a.filter((function(e){return null!==e})),this.buildFrom(a)},t.after=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.if(r).list,a=n.map((function(e){var t=e.terms(),n=t.map((function(e){return e.id})),a=e.match(r)[0],i=n.indexOf(a.start);if(-1===i||!t[i+a.length])return null;var o=t[i+a.length].id,s=e.length-i-a.length;return e.buildFrom(o,s)}));return a=a.filter((function(e){return null!==e})),this.buildFrom(a)},t.hasAfter=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookAfter(e,t).found}))},t.hasBefore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookBefore(e,t).found}))}})),Gr=function(e,t,r,n){var a=[];"string"==typeof e&&(a=e.split(" ")),t.list.forEach((function(i){var o=i.terms();!0===r&&(o=o.filter((function(r){return r.canBe(e,t.world)}))),o.forEach((function(r,i){a.length>1?a[i]&&"."!==a[i]&&r.tag(a[i],n,t.world):r.tag(e,n,t.world)}))}))},zr={tag:function(e,t){return e?(Gr(e,this,!1,t),this):this},tagSafe:function(e,t){return e?(Gr(e,this,!0,t),this):this},unTag:function(e,t){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(e,t,r.world)}))})),this},canBe:function(e){if(!e)return this;var t=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(e,t))}),[]);return this.buildFrom(r)}},Tr={map:function(t){var r=this;if(!t)return this;var n=this.list.map((function(e,n){var a=r.buildFrom([e]);a.from=null;var i=t(a,n);return i&&i.list&&i.list[0]?i.list[0]:i}));return 0===(n=n.filter((function(e){return e}))).length?this.buildFrom(n):"object"!==e(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(e,t){var r=this;return e?(this.list.forEach((function(n,a){var i=r.buildFrom([n]);!0===t&&(i.from=null),e(i,a)})),this):this},filter:function(e){var t=this;if(!e)return this;var r=this.list.filter((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return this.buildFrom(r)},find:function(e){var t=this;if(!e)return this;var r=this.list.find((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return r?this.buildFrom([r]):void 0},some:function(e){var t=this;return e?this.list.some((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)})):this},random:function(e){if(!this.found)return this;var t=Math.floor(Math.random()*this.list.length);if(void 0===e){var r=[this.list[t]];return this.buildFrom(r)}return t+e>this.length&&(t=(t=this.length-e)<0?0:t),this.slice(t,t+e)}},Vr=function(e){return e.split(/[ -]/g)},Jr=function(e,t,r){for(var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return e.forEach((function(e,n){var a=!0;void 0!==t[n]&&(a=t[n]),e=(e=(e||"").toLowerCase()).replace(/[,;.!?]+$/,"");var i=Vr(e).map((function(e){return e.trim()}));r[i[0]]=r[i[0]]||{},1===i.length?r[i[0]].value=a:(r[i[0]].more=r[i[0]].more||[],r[i[0]].more.push({rest:i.slice(1),value:a}))})),r}(e,t),a=[],i=function(e){for(var t=r.list[e],i=t.terms().map((function(e){return e.reduced})),o=function(e){void 0!==n[i[e]]&&(void 0!==n[i[e]].more&&n[i[e]].more.forEach((function(r){void 0!==i[e+r.rest.length]&&(!0===r.rest.every((function(t,r){return t===i[e+r+1]}))&&a.push({id:t.terms()[e].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[i[e]].value&&a.push({id:t.terms()[e].id,value:n[i[e]].value,length:1}))},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return t?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(a){var i,o=t;if("function"==typeof t&&(o=t(a)),o&&"object"===e(o)&&"Doc"===o.isA)i=o.list,r.pool().merge(o.pool());else{if("string"!=typeof o)return;!1!==n.keepCase&&a.terms(0).isTitleCase()&&(o=Lr(o)),i=wt(o,r.world,r.pool());var s=r.buildFrom(i);s.tagger(),i=s.list}if(!0===n.keepTags){var u=a.json({terms:{tags:!0}}).terms;i[0].terms().forEach((function(e,t){u[t]&&e.tagSafe(u[t].tags,"keptTag",r.world)}))}a.replace(i[0],r)})),this):this.delete()},replace:function(e,t,r){return void 0===t?this.replaceWith(e,r):(this.match(e).replaceWith(t,r),this)}},Kr=x((function(e,t){var r=function(e){return e&&"[object Object]"===Object.prototype.toString.call(e)},n=function(e,t){var r=wt(e,t.world)[0],n=t.buildFrom([r]);return n.tagger(),t.list=n.list,t};t.append=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t?this.found?(this.uncache(),this.list.forEach((function(n){var a;r(t)&&"Doc"===t.isA?a=t.list[0].clone():"string"==typeof t&&(a=wt(t,e.world,e.pool())[0]),e.buildFrom([a]).tagger(),n.append(a,e)})),this):n(t,this):this},t.insertAfter=t.append,t.insertAt=t.append,t.prepend=function(e){var t=this;return e?this.found?(this.uncache(),this.list.forEach((function(n){var a;r(e)&&"Doc"===e.isA?a=e.list[0].clone():"string"==typeof e&&(a=wt(e,t.world,t.pool())[0]),t.buildFrom([a]).tagger(),n.prepend(a,t)})),this):n(e,this):this},t.insertBefore=t.prepend,t.concat=function(){this.uncache();for(var e=this.list.slice(0),t=0;t0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof t&&this.list[t])return this.list[t].json(r);!0===(t=n(t)).root&&this.list.forEach((function(t){t.terms().forEach((function(t){null===t.root&&t.setRoot(e.world)}))}));var a=this.list.map((function(r){return r.json(t,e.world)}));if((t.terms.offset||t.offset||t.terms.index||t.index)&&Wr(this,a,t),t.frequency||t.freq||t.count){var i={};this.list.forEach((function(e){var t=e.text("reduced");i[t]=i[t]||0,i[t]+=1})),this.list.forEach((function(e,t){a[t].count=i[e.text("reduced")]}))}if(t.unique){var o={};a=a.filter((function(e){return!0!==o[e.reduced]&&(o[e.reduced]=!0,!0)}))}return a},t.data=t.json})),Ur=x((function(e){var t="",r=function(e,t){for(e=e.toString();e.lengtht.count?-1:e.countn?1:0},length:function(e,t){var r=e.text().trim().length,n=t.text().trim().length;return rn?-1:0},wordCount:function(e,t){var r=e.wordCount(),n=t.wordCount();return rn?-1:0}};Yr.alphabetical=Yr.alpha,Yr.wordcount=Yr.wordCount;var en={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},tn={sort:function(e){return"freq"===(e=e||"alpha")||"frequency"===e||"topk"===e?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(t=this).list.forEach((function(e){var t=e.text(n);r[t]=r[t]||0,r[t]+=1})),t.list.sort((function(e,t){var a=r[e.text(n)],i=r[t.text(n)];return ai?-1:0})),t):en.hasOwnProperty(e)?function(e){var t={};return e.json({terms:{offset:!0}}).forEach((function(e){t[e.terms[0].id]=e.terms[0].offset.start})),e.list=e.list.sort((function(e,r){return t[e.start]>t[r.start]?1:t[e.start]0){a+=o;continue}}if(void 0===r[i]||!0!==r.hasOwnProperty(i))if(i===e[a].reduced||!0!==r.hasOwnProperty(e[a].reduced)){if(!0===wn.test(i)){var s=i.replace(wn,"");!0===r.hasOwnProperty(s)&&e[a].tag(r[s],"noprefix-lexicon",t)}}else e[a].tag(r[e[a].reduced],"lexicon",t);else e[a].tag(r[i],"lexicon",t)}return e},Dn=/[\'‘’‛‵′`´]$/,$n=/^(m|k|cm|km|m)\/(s|h|hr)$/,Pn=[[/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/,"Email"],[/^#[a-z0-9_\u00C0-\u00FF]{2,}$/,"HashTag"],[/^@1?[0-9](am|pm)$/i,"Time"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time"],[/^@\w{2,}$/,"AtMention"],[/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/,"Url"],[/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/,"Url"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time"],[/^[PMCE]ST$/,"Time"],[/^utc ?[+-]?[0-9]+?$/,"Time"],[/^[a-z0-9]*? o\'?clock$/,"Time"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date"],[/^ma?c\'.*/,"LastName"],[/^o\'[drlkn].*/,"LastName"],[/^ma?cd[aeiou]/,"LastName"],[/^(lol)+[sz]$/,"Expression"],[/^woo+a*?h?$/,"Expression"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^[-+]?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6][-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(k|m|b|bn)?\+?$/,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]\+?$/,["Money","Value"]],[/^[-+]?[\$£]?[0-9]([0-9,.])+?(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"]],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"]],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"]],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,"Fraction"],[/^[0-9.]{1,2}[-–][0-9]{1,2}$/,["Value","NumberRange"]],[/^[0-9.]{1,3}(st|nd|rd|th)?[-–][0-9\.]{1,3}(st|nd|rd|th)?$/,"NumberRange"],[/^[0-9.]+([a-z]{1,4})$/,"Value"]],Hn=/^[IVXLCDM]{2,}$/,jn=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,En="Adjective",Nn="Infinitive",xn="PresentTense",In="Singular",Fn="PastTense",Cn="Adverb",Bn="Expression",On="Actor",Gn="Verb",zn="Noun",Tn="LastName",Vn={a:[[/.[aeiou]na$/,zn],[/.[oau][wvl]ska$/,Tn],[/.[^aeiou]ica$/,In],[/^([hyj]a)+$/,Bn]],c:[[/.[^aeiou]ic$/,En]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fn],[/.[aeo]{2}[bdgmnprvz]ed$/,Fn],[/.[aeiou][sg]hed$/,Fn],[/.[aeiou]red$/,Fn],[/.[aeiou]r?ried$/,Fn],[/.[bcdgtr]led$/,Fn],[/.[aoui]f?led$/,Fn],[/.[iao]sed$/,Fn],[/[aeiou]n?[cs]ed$/,Fn],[/[aeiou][rl]?[mnf]ed$/,Fn],[/[aeiou][ns]?c?ked$/,Fn],[/[aeiou][nl]?ged$/,Fn],[/.[tdbwxz]ed$/,Fn],[/[^aeiou][aeiou][tvx]ed$/,Fn],[/.[cdlmnprstv]ied$/,Fn],[/[^aeiou]ard$/,In],[/[aeiou][^aeiou]id$/,En],[/.[vrl]id$/,En]],e:[[/.[lnr]ize$/,Nn],[/.[^aeiou]ise$/,Nn],[/.[aeiou]te$/,Nn],[/.[^aeiou][ai]ble$/,En],[/.[^aeiou]eable$/,En],[/.[ts]ive$/,En]],h:[[/.[^aeiouf]ish$/,En],[/.v[iy]ch$/,Tn],[/^ug?h+$/,Bn],[/^uh[ -]?oh$/,Bn]],i:[[/.[oau][wvl]ski$/,Tn]],k:[[/^(k){2}$/,Bn]],l:[[/.[gl]ial$/,En],[/.[^aeiou]ful$/,En],[/.[nrtumcd]al$/,En],[/.[^aeiou][ei]al$/,En]],m:[[/.[^aeiou]ium$/,In],[/[^aeiou]ism$/,In],[/^h*u*m+$/,Bn],[/^\d+ ?[ap]m$/,"Date"]],n:[[/.[lsrnpb]ian$/,En],[/[^aeiou]ician$/,On],[/[aeiou][ktrp]in$/,"Gerund"]],o:[[/^no+$/,Bn],[/^(yo)+$/,Bn],[/^woo+[pt]?$/,Bn]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,In],[/[^i]fer$/,Nn],[/.[^aeiou][ao]pher$/,On],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,En],[/[aeiou].*ist$/,En],[/^[a-z]et$/,Gn]],s:[[/.[^aeiou]ises$/,xn],[/.[rln]ates$/,xn],[/.[^z]ens$/,Gn],[/.[lstrn]us$/,In],[/.[aeiou]sks$/,xn],[/.[aeiou]kes$/,xn],[/[aeiou][^aeiou]is$/,In],[/[a-z]\'s$/,zn],[/^yes+$/,Bn]],v:[[/.[^aeiou][ai][kln]ov$/,Tn]],y:[[/.[cts]hy$/,En],[/.[st]ty$/,En],[/.[gk]y$/,En],[/.[tnl]ary$/,En],[/.[oe]ry$/,In],[/[rdntkbhs]ly$/,Cn],[/...lly$/,Cn],[/[bszmp]{2}y$/,En],[/.(gg|bb|zz)ly$/,En],[/.[ai]my$/,En],[/[ea]{2}zy$/,En],[/.[^aeiou]ity$/,In]]},Jn="Adjective",Mn="Infinitive",Sn="PresentTense",Ln="Singular",_n="PastTense",Kn="Adverb",qn="Plural",Rn="Actor",Wn="Verb",Qn="Noun",Un="LastName",Zn="Modal",Xn=[null,null,{ea:Ln,ia:Qn,ic:Jn,ly:Kn,"'n":Wn,"'t":Wn},{oed:_n,ued:_n,xed:_n," so":Kn,"'ll":Zn,"'re":"Copula",azy:Jn,eer:Qn,end:Wn,ped:_n,ffy:Jn,ify:Mn,ing:"Gerund",ize:Mn,lar:Jn,mum:Jn,nes:Sn,nny:Jn,oid:Jn,ous:Jn,que:Jn,rol:Ln,sis:Ln,zes:Sn},{amed:_n,aped:_n,ched:_n,lked:_n,nded:_n,cted:_n,dged:_n,akis:Un,cede:Mn,chuk:Un,czyk:Un,ects:Sn,ends:Wn,enko:Un,ette:Ln,fies:Sn,fore:Kn,gate:Mn,gone:Jn,ices:qn,ints:qn,ines:qn,ions:qn,less:Kn,llen:Jn,made:Jn,nsen:Un,oses:Sn,ould:Zn,some:Jn,sson:Un,tage:Mn,teen:"Value",tion:Ln,tive:Jn,tors:Qn,vice:Ln},{tized:_n,urned:_n,eased:_n,ances:qn,bound:Jn,ettes:qn,fully:Kn,ishes:Sn,ities:qn,marek:Un,nssen:Un,ology:Qn,ports:qn,rough:Jn,tches:Sn,tieth:"Ordinal",tures:qn,wards:Kn,where:Kn},{auskas:Un,keeper:Rn,logist:Rn,teenth:"Value"},{opoulos:Un,borough:"Place",sdottir:Un}],Yn={":(":!0,":)":!0,":P":!0,":p":!0,":O":!0,":3":!0,":|":!0,":/":!0,":\\":!0,":$":!0,":*":!0,":@":!0,":-(":!0,":-)":!0,":-P":!0,":-p":!0,":-O":!0,":-3":!0,":-|":!0,":-/":!0,":-\\":!0,":-$":!0,":-*":!0,":-@":!0,":^(":!0,":^)":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0,":^|":!0,":^/":!0,":^\\":!0,":^$":!0,":^*":!0,":^@":!0,"):":!0,"(:":!0,"$:":!0,"*:":!0,")-:":!0,"(-:":!0,"$-:":!0,"*-:":!0,")^:":!0,"(^:":!0,"$^:":!0,"*^:":!0,"<3":!0,"2){var a=n.clean[n.clean.length-2];if("s"===a)return void n.tag(["Possessive","Noun"],"end-tick",r);"n"===a&&n.tag(["Gerund"],"chillin",r)}$n.test(n.text)&&n.tag("Unit","per-sec",r)},regex:function(e,t){for(var r=e.text,n=0;n=2&&Hn.test(r)&&jn.test(r)&&e.tag("RomanNumeral","xvii",t)},suffix:function(e,t){!function(e,t){var r=e.clean.length,n=7;r<=n&&(n=r-1);for(var a=n;a>1;a-=1){var i=e.clean.substr(r-a,r);if(!0===Xn[i.length].hasOwnProperty(i)){var o=Xn[i.length][i];e.tagSafe(o,"suffix -"+i,t);break}}}(e,t),function(e,t){var r=e.clean,n=r[r.length-1];if(!0===Vn.hasOwnProperty(n))for(var a=Vn[n],i=0;i35)}(n=(n=n.trim()).replace(/[.!?,]$/,""))&&(e.tag("Emoji","comma-emoji",t),e.text=n,e.pre=e.pre.replace(":",""),e.post=e.post.replace(":","")),e.text.match(ea)&&(e.tag("Emoji","unicode-emoji",t),e.text=n),!0===(r=(r=n).replace(/^[:;]/,":"),Yn.hasOwnProperty(r))&&(e.tag("Emoticon","emoticon-emoji",t),e.text=n)}},ra=function(e,t){var r=e.world;ta.lexicon(t,r);for(var n=0;n3&&void 0!==r[n]&&!0===r.hasOwnProperty(n)&&e.tag(r[n],"stem-"+n,t)}}))},ga={isSingular:[/(ax|test)is$/i,/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,/(octop|vir)i$/i,/(rl)f$/i,/(alias|status)$/i,/(bu)s$/i,/(al|ad|at|er|et|ed|ad)o$/i,/(ti)um$/i,/(ti)a$/i,/sis$/i,/(?:(^f)fe|(lr)f)$/i,/hive$/i,/s[aeiou]+ns$/i,/(^aeiouy|qu)y$/i,/(x|ch|ss|sh|z)$/i,/(matr|vert|ind|cort)(ix|ex)$/i,/(m|l)ouse$/i,/(m|l)ice$/i,/(antenn|formul|nebul|vertebr|vit)a$/i,/.sis$/i,/^(?!talis|.*hu)(.*)man$/i],isPlural:[/(^v)ies$/i,/ises$/i,/ives$/i,/(antenn|formul|nebul|vertebr|vit)ae$/i,/(octop|vir|radi|nucle|fung|cact|stimul)i$/i,/(buffal|tomat|tornad)oes$/i,/(analy|ba|diagno|parenthe|progno|synop|the)ses$/i,/(vert|ind|cort)ices$/i,/(matr|append)ices$/i,/(x|ch|ss|sh|s|z|o)es$/i,/is$/i,/men$/i,/news$/i,/.tia$/i,/(^f)ves$/i,/(lr)ves$/i,/(^aeiouy|qu)ies$/i,/(m|l)ice$/i,/(cris|ax|test)es$/i,/(alias|status)es$/i,/ics$/i]},pa=["Uncountable","Pronoun","Place","Value","Person","Month","WeekDay","Holiday"],fa=[/ss$/,/sis$/,/[^aeiou][uo]s$/,/'s$/],ma=[/i$/,/ae$/],va=function(e,t){if(e.tags.Noun&&!e.tags.Acronym){var r=e.clean;if(e.tags.Singular||e.tags.Plural)return;if(r.length<=3)return void e.tag("Singular","short-singular",t);if(pa.find((function(t){return e.tags[t]})))return;if(ga.isPlural.find((function(e){return e.test(r)})))return void e.tag("Plural","plural-rules",t);if(ga.isSingular.find((function(e){return e.test(r)})))return void e.tag("Singular","singular-rules",t);if(!0===/s$/.test(r)){if(fa.find((function(e){return e.test(r)})))return;return void e.tag("Plural","plural-fallback",t)}if(ma.find((function(e){return e.test(r)})))return;e.tag("Singular","singular-fallback",t)}},ba=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","building society","bureau","cafe","caisse","capital","care","cathedral","center","central bank","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","daily news","data","departement","department","department store","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","evening news","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","health authority","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institute of technology","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","liberation army","limited","local authority","local health authority","machines","magazine","management","marine","marketing","markets","media","memorial","mercantile exchange","ministere","ministry","military","mobile","motor","motors","musee","museum","news","news service","observatory","office","oil","optical","orchestra","organization","partners","partnership","people's party","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","regional authority","regional health authority","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","social club","societe","society","sons","standard","state police","state university","stock exchange","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((function(e,t){return e[t]="Noun",e}),{}),ya=function(e){return!!e.tags.Noun&&(!(e.tags.Pronoun||e.tags.Comma||e.tags.Possessive)&&!!(e.tags.Organization||e.tags.Acronym||e.tags.Place||e.titleCase()))},wa=/^[A-Z]('s|,)?$/,ka=/([A-Z]\.){2}[A-Z]?/i,Aa={I:!0,A:!0},Da={neighbours:oa,case:la,stem:da,plural:va,organizations:function(e,t){for(var r=0;r5)&&e.isAcronym()}(e,t)?(e.tag("Acronym","acronym-step",t),e.tag("Noun","acronym-infer",t)):!Aa.hasOwnProperty(e.text)&&wa.test(e.text)&&(e.tag("Acronym","one-letter-acronym",t),e.tag("Noun","one-letter-infer",t)),e.tags.Organization&&e.text.length<=3&&e.tag("Acronym","acronym-org",t),e.tags.Organization&&e.isUpperCase()&&e.text.length<=6&&e.tag("Acronym","acronym-org-case",t))}))}},$a=function(e,t){var r=e.world;return Da.neighbours(t,r),Da.case(e),Da.stem(t,r),t.forEach((function(t){!1===t.isKnown()&&t.tag("Noun","noun-fallback",e.world)})),Da.organizations(t,r),Da.acronyms(t,r),t.forEach((function(t){Da.plural(t,e.world)})),e},Pa=/n't$/,Ha={"won't":["will","not"],wont:["will","not"],"can't":["can","not"],cant:["can","not"],cannot:["can","not"],"shan't":["should","not"],dont:["do","not"],dun:["do","not"]},ja=function(e,t){return!0===Ha.hasOwnProperty(e.clean)?Ha[e.clean]:"ain't"===e.clean||"aint"===e.clean?function(e,t){var r=t.terms(),n=r.indexOf(e),a=r.slice(0,n).find((function(e){return e.tags.Noun}));return a&&a.tags.Plural?["are","not"]:["is","not"]}(e,t):!0===Pa.test(e.clean)?[e.clean.replace(Pa,""),"not"]:null},Ea=/([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]([a-z]{1,2})$/i,Na={ll:"will",ve:"have",re:"are",m:"am","n't":"not"},xa=function(e){var t=e.text.match(Ea);return null===t?null:Na.hasOwnProperty(t[2])?[t[1],Na[t[2]]]:null},Ia={wanna:["want","to"],gonna:["going","to"],im:["i","am"],alot:["a","lot"],ive:["i","have"],imma:["I","will"],"where'd":["where","did"],whered:["where","did"],"when'd":["when","did"],whend:["when","did"],howd:["how","did"],whatd:["what","did"],dunno:["do","not","know"],brb:["be","right","back"],gtg:["got","to","go"],irl:["in","real","life"],tbh:["to","be","honest"],imo:["in","my","opinion"],til:["today","i","learned"],rn:["right","now"],twas:["it","was"],"@":["at"]},Fa=function(e){return Ia.hasOwnProperty(e.clean)?Ia[e.clean]:null},Ca=/([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]s$/i,Ba={that:!0,there:!0},Oa={here:!0,there:!0,everywhere:!0},Ga=function(e,t,r){var n=e.text.match(Ca);if(null!==n){if(!0===function(e,t){if(e.tags.Possessive)return!0;if(e.tags.Pronoun||e.tags.QuestionWord)return!1;if(Ba.hasOwnProperty(e.reduced))return!1;var r=t.get(e.next);if(!r)return!0;if(r.tags.Verb)return!!r.tags.Infinitive||!!r.tags.PresentTense;if(r.tags.Noun)return!0!==Oa.hasOwnProperty(r.reduced);var n=t.get(r.next);return!(!n||!n.tags.Noun||n.tags.Pronoun)||(r.tags.Adjective||r.tags.Adverb||r.tags.Verb,!1)}(e,t.pool))return e.tag("#Possessive","isPossessive",r),null;if(null!==n)return function(e,t){var r=t.terms(),n=r.indexOf(e);return r.slice(n+1,n+3).find((function(e){return e.tags.PastTense}))}(e,t)?[n[1],"has"]:[n[1],"is"]}return null},za=/[a-z\u00C0-\u00FF]'d$/,Ta={how:!0,what:!0},Va=function(e,t){if(za.test(e.clean)){for(var r=e.clean.replace(/'d$/,""),n=t.terms(),a=n.indexOf(e),i=n.slice(a+1,a+4),o=0;o0?pi=pi.concat(t):pi.push(e)})),pi.forEach((function(e){var t,r,n;return e.required=(t=e.reg,r=[],n=[],t.forEach((function(e){!0!==e.optional&&!0!==e.negative&&(void 0!==e.tag&&r.push(e.tag),void 0!==e.word&&n.push(e.word))})),{tags:Za(r),words:Za(n)}),e}));var fi=pi,mi=function(e){fi.forEach((function(t){var r=[];t.required.words.forEach((function(t){r.push(e._cache.words[t]||[])})),t.required.tags.forEach((function(t){r.push(e._cache.tags[t]||[])}));var n=function(e){if(0===e.length)return[];var t={};e.forEach((function(e){e=Za(e);for(var r=0;r5&&e.match("#Verb+").length>=2}));if(u.found){var l=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(l.eq(0))}return"number"==typeof t&&(n=n.get(t)),new e(n.list,this,this.world)},e},Di=function(e){var r=function(e){a(i,e);var r=u(i);function i(e,n,a){var o;return t(this,i),(o=r.call(this,e,n,a)).contracted=null,o}return n(i,[{key:"expand",value:function(){return this.list.forEach((function(e){var t=e.terms(),r=t[0].isTitleCase();t.forEach((function(e,r){e.set(e.implicit||e.text),e.implicit=void 0,r1&&void 0!==arguments[1]?arguments[1]:{},n=this.match("(#City && @hasComma) (#Region|#Country)"),a=this.not(n).splitAfter("@hasComma"),i=(a=a.concat(n)).quotations();return i.found&&(a=a.splitOn(i.eq(0))),a=a.match("#Noun+ (of|by)? the? #Noun+?"),!0!==t.keep_anaphora&&(a=(a=(a=(a=a.not("#Pronoun")).not("(there|these)")).not("(#Month|#WeekDay)")).not("(my|our|your|their|her|his)")),a=a.not("(of|for|by|the)$"),"number"==typeof e&&(a=a.get(e)),new r(a.list,this,this.world)},e},Ti=/\(/,Vi=/\)/,Ji=function(e){var r=function(e){a(i,e);var r=u(i);function i(){return t(this,i),r.apply(this,arguments)}return n(i,[{key:"unwrap",value:function(){return this.list.forEach((function(e){var t=e.terms(0);t.pre=t.pre.replace(Ti,"");var r=e.lastTerm();r.post=r.post.replace(Vi,"")})),this}}]),i}(e);return e.prototype.parentheses=function(e){var t=[];return this.list.forEach((function(e){for(var r=e.terms(),n=0;n0}}),Object.defineProperty(this,"length",{get:function(){return i.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(e,[{key:"tagger",value:function(){return bi(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),e}();oo.prototype.buildFrom=function(e){return e=e.map((function(e){return e.clone(!0)})),new oo(e,this,this.world)},oo.prototype.fromText=function(e){var t=wt(e,this.world,this.pool());return this.buildFrom(t)},Object.assign(oo.prototype,io.misc),Object.assign(oo.prototype,io.selections),ao(oo);var so={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(so).forEach((function(e){return oo.prototype[e]=oo.prototype[so[e]]}));var uo=oo,lo=function(e){var t=e.termList();return An(t,e.world),e.world.taggers.forEach((function(t){t(e)})),e};return function e(t){var r=t,n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;t&&r.addWords(t);var n=wt(e,r),a=new uo(n,null,r);return a.tagger(),a};return n.tokenize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=r;t&&((n=n.clone()).words={},n.addWords(t));var a=wt(e,n),i=new uo(a,null,n);return(t||i.world.taggers.length>0)&&lo(i),i},n.extend=function(e){return e(uo,r,this,Xe,se,et),this},n.fromJSON=function(e){var t=kt(e,r);return new uo(t,null,r)},n.clone=function(){return e(r.clone())},n.verbose=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(e),this},n.world=function(){return r},n.parseMatch=function(e,t){return Ke(e,t)},n.version="13.9.3",n.import=n.load,n.plugin=n.extend,n}(new Ir)})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;rr?n:r)+1;if(Math.abs(r-n)>(a||100))return a||100;for(var i,o,s,u,l,c,h=[],d=0;d4)return r;u=o===(s=t[i-1])?0:1,l=h[p-1][i]+1,(c=h[p][i-1]+1)1&&i>1&&o===t[i-2]&&e[p-2]===s&&(c=h[p-2][i-2]+u)2&&void 0!==arguments[2]?arguments[2]:3;if(e===t)return 1;if(e.lengtht.fuzzy)return!0;if(!0===t.soft&&(a=B(t.word,e.root))>t.fuzzy)return!0}return t.word===e.clean||t.word===e.text||t.word===e.reduced}return void 0!==t.tag?!0===e.tags[t.tag]:void 0!==t.method?"function"==typeof e[t.method]&&!0===e[t.method]():void 0!==t.regex?t.regex.test(e.clean):void 0!==t.fastOr?t.fastOr.hasOwnProperty(e.reduced)||t.fastOr.hasOwnProperty(e.text):void 0!==t.choices&&("and"===t.operator?t.choices.every((function(t){return O(e,t,r,n)})):t.choices.some((function(t){return O(e,t,r,n)})))},z=O=function(e,t,r,n){var a=G(e,t,r,n);return!0===t.negative?!a:a},T={},V={doesMatch:function(e,t,r){return z(this,e,t,r)},isAcronym:function(){return b(this.text)},isImplicit:function(){return""===this.text&&Boolean(this.implicit)},isKnown:function(){return Object.keys(this.tags).some((function(e){return!0!==T[e]}))},setRoot:function(e){var t=e.transforms,r=this.implicit||this.clean;if(this.tags.Plural&&(r=t.toSingular(r,e)),this.tags.Verb&&!this.tags.Negative&&!this.tags.Infinitive){var n=null;this.tags.PastTense?n="PastTense":this.tags.Gerund?n="Gerund":this.tags.PresentTense?n="PresentTense":this.tags.Participle?n="Participle":this.tags.Actor&&(n="Actor"),r=t.toInfinitive(r,e,n)}this.root=r}},J=/[\s-]/,M=/^[A-Z-]+$/,S={textOut:function(e,t,r){e=e||{};var n=this.text,a=this.pre,i=this.post;return!0===e.reduced&&(n=this.reduced||""),!0===e.root&&(n=this.root||""),!0===e.implicit&&this.implicit&&(n=this.implicit||""),!0===e.normal&&(n=this.clean||this.text||""),!0===e.root&&(n=this.root||this.reduced||""),!0===e.unicode&&(n=g(n)),!0===e.titlecase&&(this.tags.ProperNoun&&!this.titleCase()||(this.tags.Acronym?n=n.toUpperCase():M.test(n)&&!this.tags.Acronym&&(n=n.toLowerCase()))),!0===e.lowercase&&(n=n.toLowerCase()),!0===e.acronyms&&this.tags.Acronym&&(n=n.replace(/\./g,"")),!0!==e.whitespace&&!0!==e.root||(a="",i=" ",!1!==J.test(this.post)&&!e.last||this.implicit||(i="")),!0!==e.punctuation||e.root||(!0===this.hasPost(".")?i="."+i:!0===this.hasPost("?")?i="?"+i:!0===this.hasPost("!")?i="!"+i:!0===this.hasPost(",")?i=","+i:!0===this.hasEllipses()&&(i="..."+i)),!0!==t&&(a=""),!0!==r&&(i=""),!0===e.abbreviations&&this.tags.Abbreviation&&(i=i.replace(/^\./,"")),a+n+i}},L={Auxiliary:1,Possessive:1},_=function(e,t){var r=Object.keys(e.tags),n=t.tags;return r=r.sort((function(e,t){return L[t]||!n[t]?-1:n[t]?n[e]?n[e].lineage.length>n[t].lineage.length?1:n[e].isA.length>n[t].isA.length?-1:0:0:1}))},K={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},q={json:function(e,t){e=e||{};var r={};return(e=Object.assign({},K,e)).text&&(r.text=this.text),e.normal&&(r.normal=this.clean),e.tags&&(r.tags=Object.keys(this.tags)),e.clean&&(r.clean=this.clean),(e.id||e.offset)&&(r.id=this.id),e.implicit&&null!==this.implicit&&(r.implicit=this.implicit),e.whitespace&&(r.pre=this.pre,r.post=this.post),e.bestTag&&(r.bestTag=_(this,t)[0]),r}},R=Object.assign({},I,F,V,S,q);function W(){return"undefined"!=typeof window&&window.document}var U=function(e,t){for(e=e.toString();e.length0&&void 0!==arguments[0]?arguments[0]:"";t(this,e),r=String(r);var n=N(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=c(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(e,[{key:"set",value:function(e){var t=N(e);return this.text=t.text,this.clean=t.clean,this}}]),e}();oe.prototype.clone=function(){var e=new oe(this.text);return e.pre=this.pre,e.post=this.post,e.clean=this.clean,e.reduced=this.reduced,e.root=this.root,e.implicit=this.implicit,e.tags=Object.assign({},this.tags),e},Object.assign(oe.prototype,R),Object.assign(oe.prototype,ie);var se=oe,ue={terms:function(e){if(0===this.length)return[];if(this.cache.terms)return void 0!==e?this.cache.terms[e]:this.cache.terms;for(var t=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof e&&(e="normal"===e?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,normal:!0}:"reduced"===e?{punctuation:!1,titlecase:!1,lowercase:!0,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"implicit"===e?{punctuation:!0,implicit:!0,whitespace:!0,trim:!0}:"root"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),a=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(a=!0);var i=n.reduce((function(i,o,s){if(0===s&&""===o.text&&null!==o.implicit&&!e.implicit)return i;e.last=r&&s===n.length-1;var u=!0,l=!0;return!1===a&&(0===s&&t&&(u=!1),s===n.length-1&&r&&(l=!1)),i+o.textOut(e,u,l)}),"");return!0===a&&r&&(i=le(i)),!0===e.trim&&(i=i.trim()),i}},he={trim:function(){var e=this.terms();if(e.length>0){e[0].pre=e[0].pre.replace(/^\s+/,"");var t=e[e.length-1];t.post=t.post.replace(/\s+$/,"")}return this}},de=/[.?!]\s*$/,ge=function(e,t){t[0].pre=e[0].pre;var r,n,a=e[e.length-1],i=t[t.length-1];i.post=(r=a.post,n=i.post,de.test(n)?n+r.match(/\s*$/):r),a.post="",""===a.post&&(a.post+=" ")},pe=function(e,t,r){var n=e.terms(),a=t.terms();ge(n,a),function(e,t,r){var n=e[e.length-1],a=t[t.length-1],i=n.next;n.next=t[0].id,a.next=i,i&&(r.get(i).prev=a.id);var o=e[0].id;o&&(t[0].prev=o)}(n,a,e.pool);var i=[e],o=e.start,s=[r];return(s=s.concat(r.parents())).forEach((function(e){var t=e.list.filter((function(e){return e.hasId(o)}));i=i.concat(t)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length})),e.cache={},e},fe=/ /,me=function(e,t,r){var n=e.start,a=t.terms();!function(e){var t=e[e.length-1];!1===fe.test(t.post)&&(t.post+=" ")}(a),function(e,t,r){var n=r[r.length-1];n.next=e.start;var a=e.pool,i=a.get(e.start);i.prev&&(a.get(i.prev).next=t.start),r[0].prev=e.terms(0).prev,e.terms(0).prev=n.id}(e,t,a);var i=[e],o=[r];return(o=o.concat(r.parents())).forEach((function(e){var r=e.list.filter((function(e){return e.hasId(n)||e.hasId(t.start)}));i=i.concat(r)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length,e.start===n&&(e.start=t.start),e.cache={}})),e},ve=function(e,t){var r=t.pool(),n=e.terms(),a=r.get(n[0].prev)||{},i=r.get(n[n.length-1].next)||{};n[0].implicit&&a.implicit&&(a.set(a.implicit),a.post+=" "),function(e,t,r,n){var a=e.parents();a.push(e),a.forEach((function(e){var a=e.list.find((function(e){return e.hasId(t)}));a&&(a.length-=r,a.start===t&&(a.start=n.id),a.cache={})})),e.list=e.list.filter((function(e){return!(!e.start||!e.length)}))}(t,e.start,e.length,i),a&&(a.next=i.id),i&&(i.prev=a.id)},be={append:function(e,t){return pe(this,e,t),this},prepend:function(e,t){return me(this,e,t),this},delete:function(e){return ve(this,e),this},replace:function(e,t){var r=this.length;pe(this,e,t);var n=this.buildFrom(this.start,this.length);n.length=r,ve(n,t)},splitOn:function(e){var t=this.terms(),r={before:null,match:null,after:null},n=t.findIndex((function(t){return t.id===e.start}));if(-1===n)return r;var a=t.slice(0,n);a.length>0&&(r.before=this.buildFrom(a[0].id,a.length));var i=t.slice(n,n+e.length);i.length>0&&(r.match=this.buildFrom(i[0].id,i.length));var o=t.slice(n+e.length,t.length);return o.length>0&&(r.after=this.buildFrom(o[0].id,o.length,this.pool)),r}},ye={json:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r={};return e.text&&(r.text=this.text()),e.normal&&(r.normal=this.text("normal")),e.clean&&(r.clean=this.text("clean")),e.reduced&&(r.reduced=this.text("reduced")),e.implicit&&(r.implicit=this.text("implicit")),e.root&&(r.root=this.text("root")),e.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),e.terms&&(!0===e.terms&&(e.terms={}),r.terms=this.terms().map((function(r){return r.json(e.terms,t)}))),r}},we={lookAhead:function(e){e||(e=".*");var t=this.pool,r=[],n=this.terms();return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(e)},lookBehind:function(e){e||(e=".*");var t=this.pool,r=[];return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.prev))}(t.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(e)}},ke=Object.assign({},ue,ce,he,be,ye,we),Ae=function(e,t){if(0===t.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},De=x((function(e,t){t.getGreedy=function(e,t){for(var r=Object.assign({},e.regs[e.r],{start:!1,end:!1}),n=e.t;e.t1&&void 0!==arguments[1]?arguments[1]:0,n=e.regs[e.r],a=!1,i=0;it&&(t=r.length),n}))&&t},t.getGroup=function(e,t,r){if(e.groups[e.groupId])return e.groups[e.groupId];var n=e.terms[t].id;return e.groups[e.groupId]={group:String(r),start:n,length:0},e.groups[e.groupId]}})),$e=function(e,t,r,n){for(var a={t:0,terms:e,r:0,regs:t,groups:{},start_i:r,phrase_length:n,hasGroup:!1,groupId:null,previousGroup:null};a.ra.t)return null;if(!0===i.end&&a.start_i+a.t!==n)return null}if(!0===a.hasGroup){var f=De.getGroup(a,d,i.named);a.t>1&&i.greedy?f.length+=a.t-d:f.length++}}else{if(i.negative){var m=Object.assign({},i);if(m.negative=!1,!0===a.terms[a.t].doesMatch(m,a.start_i+a.t,a.phrase_length))return null}if(!0!==i.optional){if(a.terms[a.t].isImplicit()&&t[a.r-1]&&a.terms[a.t+1]){if(a.terms[a.t-1]&&a.terms[a.t-1].implicit===t[a.r-1].word)return null;if(a.terms[a.t+1].doesMatch(i,a.start_i+a.t,a.phrase_length)){a.t+=2;continue}}return null}}}else{var v=De.greedyTo(a,t[a.r+1]);if(void 0!==i.min&&v-a.ti.max){a.t=a.t+i.max;continue}if(null===v)return null;!0===a.hasGroup&&(De.getGroup(a,a.t,i.named).length=v-a.t),a.t=v}}return{match:a.terms.slice(0,a.t),groups:a.groups}},Pe=function(e,t,r){if(!r||0===r.length)return r;if(t.some((function(e){return e.end}))){var n=e[e.length-1];r=r.filter((function(e){return-1!==e.match.indexOf(n)}))}return r},He=/\{([0-9]+,?[0-9]*)\}/,je=/&&/,Ee=new RegExp(/^<(\S+)>/),Ne=function(e){return e[e.length-1]},xe=function(e){return e[0]},Ie=function(e){return e.substr(1)},Fe=function(e){return e.substr(0,e.length-1)},Ce=function(e){return e=Ie(e),e=Fe(e)},Be=function e(t){for(var r,n={},a=0;a<2;a+=1){if("$"===Ne(t)&&(n.end=!0,t=Fe(t)),"^"===xe(t)&&(n.start=!0,t=Ie(t)),("["===xe(t)||"]"===Ne(t))&&(n.named=!0,"["===xe(t)?n.groupType="]"===Ne(t)?"single":"start":n.groupType="end",t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===xe(t))){var i=Ee.exec(t);i.length>=2&&(n.named=i[1],t=t.replace(i[0],""))}if("+"===Ne(t)&&(n.greedy=!0,t=Fe(t)),"*"!==t&&"*"===Ne(t)&&"\\*"!==t&&(n.greedy=!0,t=Fe(t)),"?"===Ne(t)&&(n.optional=!0,t=Fe(t)),"!"===xe(t)&&(n.negative=!0,t=Ie(t)),"("===xe(t)&&")"===Ne(t)){je.test(t)?(n.choices=t.split(je),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=Ie(n.choices[0]);var o=n.choices.length-1;n.choices[o]=Fe(n.choices[o]),n.choices=n.choices.map((function(e){return e.trim()})),n.choices=n.choices.filter((function(e){return e})),n.choices=n.choices.map((function(t){return t.split(/ /g).map(e)})),t=""}if("/"===xe(t)&&"/"===Ne(t))return t=Ce(t),n.regex=new RegExp(t),n;if("~"===xe(t)&&"~"===Ne(t))return t=Ce(t),n.soft=!0,n.word=t,n}return!0===He.test(t)&&(t=t.replace(He,(function(e,t){var r=t.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,n.optional=!0,""}))),"#"===xe(t)?(n.tag=Ie(t),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===xe(t)?(n.method=Ie(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),n.word=t.toLowerCase()),n)},Oe=function(e){for(var t,r=!1,n=-1,a=0;a1&&void 0!==arguments[1]?arguments[1]:{},r=e.filter((function(e){return e.groupType})).length;return r>0&&(e=Oe(e)),t.fuzzy||(e=Ge(e)),e},Te=/[^[a-z]]\//g,Ve=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Je=function(e){var t=e.split(/([\^\[\!]*(?:<\S+>)?\(.*?\)[?+*]*\]?\$?)/);return t=t.map((function(e){return e.trim()})),Te.test(e)&&(t=function(e){return e.forEach((function(t,r){var n=t.match(Te);null!==n&&1===n.length&&e[r+1]&&(e[r]+=e[r+1],e[r+1]="",null!==(n=e[r].match(Te))&&1===n.length&&(e[r]+=e[r+2],e[r+2]=""))})),e=e.filter((function(e){return e}))}(t)),t},Me=function(e){var t=[];return e.forEach((function(e){if(/\(.*\)/.test(e))t.push(e);else{var r=e.split(" ");r=r.filter((function(e){return e})),t=t.concat(r)}})),t},Se=function(e){return[{choices:e.map((function(e){return[{word:e}]})),operator:"or"}]},Le=function(e){if(!e||!e.list||!e.list[0])return[];var t=[];return e.list.forEach((function(e){var r=[];e.terms().forEach((function(e){r.push(e.id)})),t.push(r)})),[{idBlocks:t}]},_e=function(e,t){return!0===t.fuzzy&&(t.fuzzy=.85),"number"==typeof t.fuzzy&&(e=e.map((function(e){return t.fuzzy>0&&e.word&&(e.fuzzy=t.fuzzy),e.choices&&e.choices.forEach((function(e){e.forEach((function(e){e.fuzzy=t.fuzzy}))})),e}))),e},Ke=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==t||""===t)return[];if("object"===e(t)){if(Ve(t)){if(0===t.length||!t[0])return[];if("object"===e(t[0]))return t;if("string"==typeof t[0])return Se(t)}return t&&"Doc"===t.isA?Le(t):[]}"number"==typeof t&&(t=String(t));var n=Je(t);return n=(n=Me(n)).map((function(e){return Be(e)})),n=ze(n,r),n=_e(n,r)},qe=function(e,t){for(var r=[],n=t[0].idBlocks,a=function(t){n.forEach((function(n){0!==n.length?n.every((function(r,n){return i=t,e[t+n].id===r}))&&(r.push({match:e.slice(t,t+n.length)}),t+=n.length-1):i=t})),i=t},i=0;i2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof t&&(t=Ke(t)),!0===Ae(e,t))return[];var n=t.filter((function(e){return!0!==e.optional&&!0!==e.negative})).length,a=e.terms(),i=[];if(t[0].idBlocks){var o=qe(a,t);if(o&&o.length>0)return Pe(a,t,o)}if(!0===t[0].start){var s=$e(a,t,0,a.length);return s&&s.match&&s.match.length>0&&(s.match=s.match.filter((function(e){return e})),i.push(s)),Pe(a,t,i)}for(var u=0;ua.length);u+=1){var l=$e(a.slice(u),t,u,a.length);if(l&&l.match&&l.match.length>0&&(u+=l.match.length-1,l.match=l.match.filter((function(e){return e})),i.push(l),!0===r))return Pe(a,t,i)}return Pe(a,t,i)},We=function(e,t){var r={};Re(e,t).forEach((function(e){e.match.forEach((function(e){r[e.id]=!0}))}));var n=e.terms(),a=[],i=[];return n.forEach((function(e){!0!==r[e.id]?i.push(e):i.length>0&&(a.push(i),i=[])})),i.length>0&&a.push(i),a},Ue={match:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Re(this,e,r);return n=n.map((function(e){var r=e.match,n=e.groups,a=t.buildFrom(r[0].id,r.length,n);return a.cache.terms=r,a}))},has:function(e){return Re(this,e,!0).length>0},not:function(e){var t=this,r=We(this,e);return r=r.map((function(e){return t.buildFrom(e[0].id,e.length)}))},canBe:function(e,t){for(var r=this,n=[],a=this.terms(),i=!1,o=0;o0})).map((function(e){return r.buildFrom(e[0].id,e.length)}))}},Qe=function e(r,n,a){t(this,e),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:a}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Qe.prototype.buildFrom=function(e,t,r){var n=new Qe(e,t,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Qe.prototype,Ue),Object.assign(Qe.prototype,ke);var Ze={term:"terms"};Object.keys(Ze).forEach((function(e){return Qe.prototype[e]=Qe.prototype[Ze[e]]}));var Xe=Qe,Ye=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(e,[{key:"add",value:function(e){return this.words[e.id]=e,this}},{key:"get",value:function(e){return this.words[e]}},{key:"remove",value:function(e){delete this.words[e]}},{key:"merge",value:function(e){return Object.assign(this.words,e.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),e}();Ye.prototype.clone=function(){var e=this,t=Object.keys(this.words).reduce((function(t,r){var n=e.words[r].clone();return t[n.id]=n,t}),{});return new Ye(t)};var et=Ye,tt=function(e){e.forEach((function(t,r){r>0&&(t.prev=e[r-1].id),e[r+1]&&(t.next=e[r+1].id)}))},rt=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,nt=/\S/,at=/[ .][A-Z]\.? *$/i,it=/(?:\u2026|\.{2,}) *$/,ot=/((?:\r?\n|\r)+)/,st=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,ut=/^\s+/,lt=function(e,t){if(!0===at.test(e))return!1;if(!0===it.test(e))return!1;if(!1===st.test(e))return!1;var r=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!t.hasOwnProperty(n)},ct=function(e,t){var r=t.cache.abbreviations;e=e||"";var n=[],a=[];if(!(e=String(e))||"string"!=typeof e||!1===nt.test(e))return n;for(var i=function(e){for(var t=[],r=e.split(ot),n=0;n0&&(n.push(l),a[u]="")}if(0===n.length)return[e];for(var c=1;c0?(t[t.length-1]+=i,t.push(s)):t.push(i+s),i=""):i+=s}return i&&(0===t.length&&(t[0]=""),t[t.length-1]+=i),t=(t=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof e&&("number"==typeof e?e=String(e):yt(e)&&(n=e)),n=(n=n||ct(e,t)).map((function(e){return bt(e)})),r=r||new et;var a=n.map((function(e){e=e.map((function(e){var t=new se(e);return r.add(t),t})),tt(e);var t=new Xe(e[0].id,e.length,r);return t.cache.terms=e,t}));return a},kt=function(e,t){var r=new et;return e.map((function(e,n){var a=e.terms.map((function(a,i){var o=new se(a.text);return o.pre=void 0!==a.pre?a.pre:"",void 0===a.post&&(a.post=" ",i>=e.terms.length-1&&(a.post=". ",n>=e.terms.length-1&&(a.post="."))),o.post=void 0!==a.post?a.post:" ",a.tags&&a.tags.forEach((function(e){return o.tag(e,"",t)})),r.add(o),o}));return tt(a),new Xe(a[0].id,a.length,r)}))},At=["Person","Place","Organization"],Dt={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:At},Actor:{isA:"Noun",notA:At},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:At},Demonym:{isA:["Noun","ProperNoun"],notA:At},Possessive:{isA:"Noun"}},$t={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"PastTense"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"},Auxiliary:{notA:["Noun","Adjective","Value"]}},Pt={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},Fraction:{isA:"Value",notA:["Noun"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},Ht=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],jt={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["AtMention"]},Determiner:{notA:Ht},Conjunction:{notA:Ht},Preposition:{notA:Ht},QuestionWord:{notA:["Determiner"]},Currency:{isA:["Noun"]},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Et={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},Nt=function(e){return Object.keys(e).forEach((function(t){e[t].color?e[t].color=e[t].color:Et[t]?e[t].color=Et[t]:e[t].isA.some((function(r){return!!Et[r]&&(e[t].color=Et[r],!0)}))})),e},xt=function(e){return Object.keys(e).forEach((function(t){for(var r=e[t],n=r.isA.length,a=0;a=0;i--,a*=36){var o=e.charCodeAt(i)-48;o>10&&(o-=7),t+=o*a}return t},Jt=function(e,t,r){var n=Vt(t);return n1&&(r.hasCompound[i[0]]=!0),void 0===_t[a]?void 0!==t[n]?("string"==typeof t[n]&&(t[n]=[t[n]]),"string"==typeof a?t[n].push(a):t[n]=t[n].concat(a)):t[n]=a:_t[a](t,n,r)}))},qt=function(e){var t=Object.assign({},Lt);return Object.keys(Gt).forEach((function(r){var n=St(Gt[r]);Object.keys(n).forEach((function(e){n[e]=r})),Kt(n,t,e)})),t},Rt=Kt,Wt=function(e){for(var t=e.irregulars.nouns,r=Object.keys(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:"",t=e[e.length-1];if(!0===tr.hasOwnProperty(t))for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r={};return t&&t.irregulars&&!0===t.irregulars.verbs.hasOwnProperty(e)&&(r=Object.assign({},t.irregulars.verbs[e])),void 0===(r=Object.assign({},ar(e),r)).Gerund&&(r.Gerund=or.Gerund(e)),void 0===r.PastTense&&(r.PastTense=or.PastTense(e)),void 0===r.PresentTense&&(r.PresentTense=or.PresentTense(e)),r},ur=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/oud$/,/...p$/],lr=[/ary$/],cr={nice:"nicest",late:"latest",hard:"hardest",inner:"innermost",outer:"outermost",far:"furthest",worse:"worst",bad:"worst",good:"best",big:"biggest",large:"largest"},hr=[{reg:/y$/i,repl:"iest"},{reg:/([aeiou])t$/i,repl:"$1ttest"},{reg:/([aeou])de$/i,repl:"$1dest"},{reg:/nge$/i,repl:"ngest"},{reg:/([aeiou])te$/i,repl:"$1test"}],dr=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/old$/,/oud$/,/e[ae]p$/],gr=[/ary$/,/ous$/],pr={grey:"greyer",gray:"grayer",green:"greener",yellow:"yellower",red:"redder",good:"better",well:"better",bad:"worse",sad:"sadder",big:"bigger"},fr=[{reg:/y$/i,repl:"ier"},{reg:/([aeiou])t$/i,repl:"$1tter"},{reg:/([aeou])de$/i,repl:"$1der"},{reg:/nge$/i,repl:"nger"}],mr={toSuperlative:function(e){if(cr.hasOwnProperty(e))return cr[e];for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=t.irregulars.nouns;if(r.hasOwnProperty(e))return r[e];var n=wr(e);return null!==n?n:yr.test(e)?e+"es":e+"s"},Ar=[[/([^v])ies$/i,"$1y"],[/ises$/i,"isis"],[/(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"],[/(eas)es$/i,"$1e"],[/(..[aeiou]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/(x|ch|ss|sh|z|o)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"],[/([m|l])ice$/i,"$1ouse"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ics)$/i,"$1"],[/s$/i,""]],Dr=function(e,t){var r,n=t.irregulars.nouns,a=(r=n,Object.keys(r).reduce((function(e,t){return e[r[t]]=t,e}),{}));if(a.hasOwnProperty(e))return a[e];for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof t&&"number"!=typeof t&&null!==t||(t={group:t});var r=Ke(e,t);if(0===r.length)return this.buildFrom([]);if(!1===Or(this,r))return this.buildFrom([]);var n=this.list.reduce((function(e,t){return e.concat(t.match(r))}),[]);return void 0!==t.group&&null!==t.group&&""!==t.group?this.buildFrom(n).groups(t.group):this.buildFrom(n)},t.not=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(0===r.length||!1===Or(this,r))return this;var n=this.list.reduce((function(e,t){return e.concat(t.not(r))}),[]);return this.buildFrom(n)},t.matchOne=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(!1===Or(this,r))return this.buildFrom([]);for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);if(!1===Or(this,r))return this.buildFrom([]);var n=this.list.filter((function(e){return!0===e.has(r)}));return this.buildFrom(n)},t.ifNo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.list.filter((function(e){return!1===e.has(r)}));return this.buildFrom(n)},t.has=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t);return!1!==Or(this,r)&&this.list.some((function(e){return!0===e.has(r)}))},t.lookAhead=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e||(e=".*");var r=Ke(e,t),n=[];return this.list.forEach((function(e){n=n.concat(e.lookAhead(r))})),n=n.filter((function(e){return e})),this.buildFrom(n)},t.lookAfter=t.lookAhead,t.lookBehind=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e||(e=".*");var r=Ke(e,t),n=[];return this.list.forEach((function(e){n=n.concat(e.lookBehind(r))})),n=n.filter((function(e){return e})),this.buildFrom(n)},t.lookBefore=t.lookBehind,t.before=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.if(r).list,a=n.map((function(e){var t=e.terms().map((function(e){return e.id})),n=e.match(r)[0],a=t.indexOf(n.start);return 0===a||-1===a?null:e.buildFrom(e.start,a)}));return a=a.filter((function(e){return null!==e})),this.buildFrom(a)},t.after=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ke(e,t),n=this.if(r).list,a=n.map((function(e){var t=e.terms(),n=t.map((function(e){return e.id})),a=e.match(r)[0],i=n.indexOf(a.start);if(-1===i||!t[i+a.length])return null;var o=t[i+a.length].id,s=e.length-i-a.length;return e.buildFrom(o,s)}));return a=a.filter((function(e){return null!==e})),this.buildFrom(a)},t.hasAfter=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookAfter(e,t).found}))},t.hasBefore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.filter((function(r){return r.lookBefore(e,t).found}))}})),zr=function(e,t,r,n){var a=[];"string"==typeof e&&(a=e.split(" ")),t.list.forEach((function(i){var o=i.terms();!0===r&&(o=o.filter((function(r){return r.canBe(e,t.world)}))),o.forEach((function(r,i){a.length>1?a[i]&&"."!==a[i]&&r.tag(a[i],n,t.world):r.tag(e,n,t.world)}))}))},Tr={tag:function(e,t){return e?(zr(e,this,!1,t),this):this},tagSafe:function(e,t){return e?(zr(e,this,!0,t),this):this},unTag:function(e,t){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(e,t,r.world)}))})),this},canBe:function(e){if(!e)return this;var t=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(e,t))}),[]);return this.buildFrom(r)}},Vr={map:function(t){var r=this;if(!t)return this;var n=this.list.map((function(e,n){var a=r.buildFrom([e]);a.from=null;var i=t(a,n);return i&&i.list&&i.list[0]?i.list[0]:i}));return 0===(n=n.filter((function(e){return e}))).length?this.buildFrom(n):"object"!==e(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(e,t){var r=this;return e?(this.list.forEach((function(n,a){var i=r.buildFrom([n]);!0===t&&(i.from=null),e(i,a)})),this):this},filter:function(e){var t=this;if(!e)return this;var r=this.list.filter((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return this.buildFrom(r)},find:function(e){var t=this;if(!e)return this;var r=this.list.find((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return r?this.buildFrom([r]):void 0},some:function(e){var t=this;return e?this.list.some((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)})):this},random:function(e){if(!this.found)return this;var t=Math.floor(Math.random()*this.list.length);if(void 0===e){var r=[this.list[t]];return this.buildFrom(r)}return t+e>this.length&&(t=(t=this.length-e)<0?0:t),this.slice(t,t+e)}},Jr=function(e){return e.split(/[ -]/g)},Mr=function(e,t,r){for(var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return e.forEach((function(e,n){var a=!0;void 0!==t[n]&&(a=t[n]),e=(e=(e||"").toLowerCase()).replace(/[,;.!?]+$/,"");var i=Jr(e).map((function(e){return e.trim()}));r[i[0]]=r[i[0]]||{},1===i.length?r[i[0]].value=a:(r[i[0]].more=r[i[0]].more||[],r[i[0]].more.push({rest:i.slice(1),value:a}))})),r}(e,t),a=[],i=function(e){for(var t=r.list[e],i=t.terms().map((function(e){return e.reduced})),o=function(e){void 0!==n[i[e]]&&(void 0!==n[i[e]].more&&n[i[e]].more.forEach((function(r){void 0!==i[e+r.rest.length]&&(!0===r.rest.every((function(t,r){return t===i[e+r+1]}))&&a.push({id:t.terms()[e].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[i[e]].value&&a.push({id:t.terms()[e].id,value:n[i[e]].value,length:1}))},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return t?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(a){var i,o=t;if("function"==typeof t&&(o=t(a)),o&&"object"===e(o)&&"Doc"===o.isA)i=o.list,r.pool().merge(o.pool());else{if("string"!=typeof o)return;!1!==n.keepCase&&a.terms(0).isTitleCase()&&(o=_r(o)),i=wt(o,r.world,r.pool());var s=r.buildFrom(i);s.tagger(),i=s.list}if(!0===n.keepTags){var u=a.json({terms:{tags:!0}}).terms;i[0].terms().forEach((function(e,t){u[t]&&e.tagSafe(u[t].tags,"keptTag",r.world)}))}a.replace(i[0],r)})),this):this.delete()},replace:function(e,t,r){return void 0===t?this.replaceWith(e,r):(this.match(e).replaceWith(t,r),this)}},qr=x((function(e,t){var r=function(e){return e&&"[object Object]"===Object.prototype.toString.call(e)},n=function(e,t){var r=wt(e,t.world)[0],n=t.buildFrom([r]);return n.tagger(),t.list=n.list,t};t.append=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t?this.found?(this.uncache(),this.list.forEach((function(n){var a;r(t)&&"Doc"===t.isA?a=t.list[0].clone():"string"==typeof t&&(a=wt(t,e.world,e.pool())[0]),e.buildFrom([a]).tagger(),n.append(a,e)})),this):n(t,this):this},t.insertAfter=t.append,t.insertAt=t.append,t.prepend=function(e){var t=this;return e?this.found?(this.uncache(),this.list.forEach((function(n){var a;r(e)&&"Doc"===e.isA?a=e.list[0].clone():"string"==typeof e&&(a=wt(e,t.world,t.pool())[0]),t.buildFrom([a]).tagger(),n.prepend(a,t)})),this):n(e,this):this},t.insertBefore=t.prepend,t.concat=function(){this.uncache();for(var e=this.list.slice(0),t=0;t0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof t&&this.list[t])return this.list[t].json(r);!0===(t=n(t)).root&&this.list.forEach((function(t){t.terms().forEach((function(t){null===t.root&&t.setRoot(e.world)}))}));var a=this.list.map((function(r){return r.json(t,e.world)}));if((t.terms.offset||t.offset||t.terms.index||t.index)&&Ur(this,a,t),t.frequency||t.freq||t.count){var i={};this.list.forEach((function(e){var t=e.text("reduced");i[t]=i[t]||0,i[t]+=1})),this.list.forEach((function(e,t){a[t].count=i[e.text("reduced")]}))}if(t.unique){var o={};a=a.filter((function(e){return!0!==o[e.reduced]&&(o[e.reduced]=!0,!0)}))}return a},t.data=t.json})),Zr=x((function(e){var t="",r=function(e,t){for(e=e.toString();e.lengtht.count?-1:e.countn?1:0},length:function(e,t){var r=e.text().trim().length,n=t.text().trim().length;return rn?-1:0},wordCount:function(e,t){var r=e.wordCount(),n=t.wordCount();return rn?-1:0}};en.alphabetical=en.alpha,en.wordcount=en.wordCount;var tn={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},rn={sort:function(e){return"freq"===(e=e||"alpha")||"frequency"===e||"topk"===e?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(t=this).list.forEach((function(e){var t=e.text(n);r[t]=r[t]||0,r[t]+=1})),t.list.sort((function(e,t){var a=r[e.text(n)],i=r[t.text(n)];return ai?-1:0})),t):tn.hasOwnProperty(e)?function(e){var t={};return e.json({terms:{offset:!0}}).forEach((function(e){t[e.terms[0].id]=e.terms[0].offset.start})),e.list=e.list.sort((function(e,r){return t[e.start]>t[r.start]?1:t[e.start]0){a+=o;continue}}if(void 0===r[i]||!0!==r.hasOwnProperty(i))if(i===e[a].reduced||!0!==r.hasOwnProperty(e[a].reduced)){if(!0===kn.test(i)){var s=i.replace(kn,"");!0===r.hasOwnProperty(s)&&e[a].tag(r[s],"noprefix-lexicon",t)}}else e[a].tag(r[e[a].reduced],"lexicon",t);else e[a].tag(r[i],"lexicon",t)}return e},$n=/[\'‘’‛‵′`´]$/,Pn=/^(m|k|cm|km|m)\/(s|h|hr)$/,Hn=[[/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/,"Email"],[/^#[a-z0-9_\u00C0-\u00FF]{2,}$/,"HashTag"],[/^@1?[0-9](am|pm)$/i,"Time"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time"],[/^@\w{2,}$/,"AtMention"],[/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/,"Url"],[/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/,"Url"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time"],[/^[PMCE]ST$/,"Time"],[/^utc ?[+-]?[0-9]+?$/,"Time"],[/^[a-z0-9]*? o\'?clock$/,"Time"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date"],[/^ma?c\'.*/,"LastName"],[/^o\'[drlkn].*/,"LastName"],[/^ma?cd[aeiou]/,"LastName"],[/^(lol)+[sz]$/,"Expression"],[/^woo+a*?h?$/,"Expression"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^[-+]?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6][-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(k|m|b|bn)?\+?$/,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]\+?$/,["Money","Value"]],[/^[-+]?[\$£]?[0-9]([0-9,.])+?(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"]],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"]],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"]],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"]],[/^[0-9.]{1,2}[-–][0-9]{1,2}$/,["Value","NumberRange"]],[/^[0-9.]{1,3}(st|nd|rd|th)?[-–][0-9\.]{1,3}(st|nd|rd|th)?$/,"NumberRange"],[/^[0-9.]+([a-z]{1,4})$/,"Value"]],jn=/^[IVXLCDM]{2,}$/,En=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Nn="Adjective",xn="Infinitive",In="PresentTense",Fn="Singular",Cn="PastTense",Bn="Adverb",On="Expression",Gn="Actor",zn="Verb",Tn="Noun",Vn="LastName",Jn={a:[[/.[aeiou]na$/,Tn],[/.[oau][wvl]ska$/,Vn],[/.[^aeiou]ica$/,Fn],[/^([hyj]a)+$/,On]],c:[[/.[^aeiou]ic$/,Nn]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Cn],[/.[aeo]{2}[bdgmnprvz]ed$/,Cn],[/.[aeiou][sg]hed$/,Cn],[/.[aeiou]red$/,Cn],[/.[aeiou]r?ried$/,Cn],[/.[bcdgtr]led$/,Cn],[/.[aoui]f?led$/,Cn],[/.[iao]sed$/,Cn],[/[aeiou]n?[cs]ed$/,Cn],[/[aeiou][rl]?[mnf]ed$/,Cn],[/[aeiou][ns]?c?ked$/,Cn],[/[aeiou][nl]?ged$/,Cn],[/.[tdbwxz]ed$/,Cn],[/[^aeiou][aeiou][tvx]ed$/,Cn],[/.[cdlmnprstv]ied$/,Cn],[/[^aeiou]ard$/,Fn],[/[aeiou][^aeiou]id$/,Nn],[/.[vrl]id$/,Nn]],e:[[/.[lnr]ize$/,xn],[/.[^aeiou]ise$/,xn],[/.[aeiou]te$/,xn],[/.[^aeiou][ai]ble$/,Nn],[/.[^aeiou]eable$/,Nn],[/.[ts]ive$/,Nn]],h:[[/.[^aeiouf]ish$/,Nn],[/.v[iy]ch$/,Vn],[/^ug?h+$/,On],[/^uh[ -]?oh$/,On]],i:[[/.[oau][wvl]ski$/,Vn]],k:[[/^(k){2}$/,On]],l:[[/.[gl]ial$/,Nn],[/.[^aeiou]ful$/,Nn],[/.[nrtumcd]al$/,Nn],[/.[^aeiou][ei]al$/,Nn]],m:[[/.[^aeiou]ium$/,Fn],[/[^aeiou]ism$/,Fn],[/^h*u*m+$/,On],[/^\d+ ?[ap]m$/,"Date"]],n:[[/.[lsrnpb]ian$/,Nn],[/[^aeiou]ician$/,Gn],[/[aeiou][ktrp]in$/,"Gerund"]],o:[[/^no+$/,On],[/^(yo)+$/,On],[/^woo+[pt]?$/,On]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Fn],[/[^i]fer$/,xn],[/.[^aeiou][ao]pher$/,Gn],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Nn],[/[aeiou].*ist$/,Nn],[/^[a-z]et$/,zn]],s:[[/.[^aeiou]ises$/,In],[/.[rln]ates$/,In],[/.[^z]ens$/,zn],[/.[lstrn]us$/,Fn],[/.[aeiou]sks$/,In],[/.[aeiou]kes$/,In],[/[aeiou][^aeiou]is$/,Fn],[/[a-z]\'s$/,Tn],[/^yes+$/,On]],v:[[/.[^aeiou][ai][kln]ov$/,Vn]],y:[[/.[cts]hy$/,Nn],[/.[st]ty$/,Nn],[/.[gk]y$/,Nn],[/.[tnl]ary$/,Nn],[/.[oe]ry$/,Fn],[/[rdntkbhs]ly$/,Bn],[/...lly$/,Bn],[/[bszmp]{2}y$/,Nn],[/.(gg|bb|zz)ly$/,Nn],[/.[ai]my$/,Nn],[/[ea]{2}zy$/,Nn],[/.[^aeiou]ity$/,Fn]]},Mn="Adjective",Sn="Infinitive",Ln="PresentTense",_n="Singular",Kn="PastTense",qn="Adverb",Rn="Plural",Wn="Actor",Un="Verb",Qn="Noun",Zn="LastName",Xn="Modal",Yn=[null,null,{ea:_n,ia:Qn,ic:Mn,ly:qn,"'n":Un,"'t":Un},{oed:Kn,ued:Kn,xed:Kn," so":qn,"'ll":Xn,"'re":"Copula",azy:Mn,eer:Qn,end:Un,ped:Kn,ffy:Mn,ify:Sn,ing:"Gerund",ize:Sn,lar:Mn,mum:Mn,nes:Ln,nny:Mn,oid:Mn,ous:Mn,que:Mn,rol:_n,sis:_n,zes:Ln},{amed:Kn,aped:Kn,ched:Kn,lked:Kn,nded:Kn,cted:Kn,dged:Kn,akis:Zn,cede:Sn,chuk:Zn,czyk:Zn,ects:Ln,ends:Un,enko:Zn,ette:_n,fies:Ln,fore:qn,gate:Sn,gone:Mn,ices:Rn,ints:Rn,ines:Rn,ions:Rn,less:qn,llen:Mn,made:Mn,nsen:Zn,oses:Ln,ould:Xn,some:Mn,sson:Zn,tage:Sn,teen:"Value",tion:_n,tive:Mn,tors:Qn,vice:_n},{tized:Kn,urned:Kn,eased:Kn,ances:Rn,bound:Mn,ettes:Rn,fully:qn,ishes:Ln,ities:Rn,marek:Zn,nssen:Zn,ology:Qn,ports:Rn,rough:Mn,tches:Ln,tieth:"Ordinal",tures:Rn,wards:qn,where:qn},{auskas:Zn,keeper:Wn,logist:Wn,teenth:"Value"},{opoulos:Zn,borough:"Place",sdottir:Zn}],ea={":(":!0,":)":!0,":P":!0,":p":!0,":O":!0,":3":!0,":|":!0,":/":!0,":\\":!0,":$":!0,":*":!0,":@":!0,":-(":!0,":-)":!0,":-P":!0,":-p":!0,":-O":!0,":-3":!0,":-|":!0,":-/":!0,":-\\":!0,":-$":!0,":-*":!0,":-@":!0,":^(":!0,":^)":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0,":^|":!0,":^/":!0,":^\\":!0,":^$":!0,":^*":!0,":^@":!0,"):":!0,"(:":!0,"$:":!0,"*:":!0,")-:":!0,"(-:":!0,"$-:":!0,"*-:":!0,")^:":!0,"(^:":!0,"$^:":!0,"*^:":!0,"<3":!0,"2){var a=n.clean[n.clean.length-2];if("s"===a)return void n.tag(["Possessive","Noun"],"end-tick",r);"n"===a&&n.tag(["Gerund"],"chillin",r)}Pn.test(n.text)&&n.tag("Unit","per-sec",r)},regex:function(e,t){for(var r=e.text,n=0;n=2&&jn.test(r)&&En.test(r)&&e.tag("RomanNumeral","xvii",t)},suffix:function(e,t){!function(e,t){var r=e.clean.length,n=7;r<=n&&(n=r-1);for(var a=n;a>1;a-=1){var i=e.clean.substr(r-a,r);if(!0===Yn[i.length].hasOwnProperty(i)){var o=Yn[i.length][i];e.tagSafe(o,"suffix -"+i,t);break}}}(e,t),function(e,t){var r=e.clean,n=r[r.length-1];if(!0===Jn.hasOwnProperty(n))for(var a=Jn[n],i=0;i35)}(n=(n=n.trim()).replace(/[.!?,]$/,""))&&(e.tag("Emoji","comma-emoji",t),e.text=n,e.pre=e.pre.replace(":",""),e.post=e.post.replace(":","")),e.text.match(ta)&&(e.tag("Emoji","unicode-emoji",t),e.text=n),!0===(r=(r=n).replace(/^[:;]/,":"),ea.hasOwnProperty(r))&&(e.tag("Emoticon","emoticon-emoji",t),e.text=n)}},na=function(e,t){var r=e.world;ra.lexicon(t,r);for(var n=0;n3&&void 0!==r[n]&&!0===r.hasOwnProperty(n)&&e.tag(r[n],"stem-"+n,t)}}))},pa={isSingular:[/(ax|test)is$/i,/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,/(octop|vir)i$/i,/(rl)f$/i,/(alias|status)$/i,/(bu)s$/i,/(al|ad|at|er|et|ed|ad)o$/i,/(ti)um$/i,/(ti)a$/i,/sis$/i,/(?:(^f)fe|(lr)f)$/i,/hive$/i,/s[aeiou]+ns$/i,/(^aeiouy|qu)y$/i,/(x|ch|ss|sh|z)$/i,/(matr|vert|ind|cort)(ix|ex)$/i,/(m|l)ouse$/i,/(m|l)ice$/i,/(antenn|formul|nebul|vertebr|vit)a$/i,/.sis$/i,/^(?!talis|.*hu)(.*)man$/i],isPlural:[/(^v)ies$/i,/ises$/i,/ives$/i,/(antenn|formul|nebul|vertebr|vit)ae$/i,/(octop|vir|radi|nucle|fung|cact|stimul)i$/i,/(buffal|tomat|tornad)oes$/i,/(analy|ba|diagno|parenthe|progno|synop|the)ses$/i,/(vert|ind|cort)ices$/i,/(matr|append)ices$/i,/(x|ch|ss|sh|s|z|o)es$/i,/is$/i,/men$/i,/news$/i,/.tia$/i,/(^f)ves$/i,/(lr)ves$/i,/(^aeiouy|qu)ies$/i,/(m|l)ice$/i,/(cris|ax|test)es$/i,/(alias|status)es$/i,/ics$/i]},fa=["Uncountable","Pronoun","Place","Value","Person","Month","WeekDay","Holiday"],ma=[/ss$/,/sis$/,/[^aeiou][uo]s$/,/'s$/],va=[/i$/,/ae$/],ba=function(e,t){if(e.tags.Noun&&!e.tags.Acronym){var r=e.clean;if(e.tags.Singular||e.tags.Plural)return;if(r.length<=3)return void e.tag("Singular","short-singular",t);if(fa.find((function(t){return e.tags[t]})))return;if(pa.isPlural.find((function(e){return e.test(r)})))return void e.tag("Plural","plural-rules",t);if(pa.isSingular.find((function(e){return e.test(r)})))return void e.tag("Singular","singular-rules",t);if(!0===/s$/.test(r)){if(ma.find((function(e){return e.test(r)})))return;return void e.tag("Plural","plural-fallback",t)}if(va.find((function(e){return e.test(r)})))return;e.tag("Singular","singular-fallback",t)}},ya=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","building society","bureau","cafe","caisse","capital","care","cathedral","center","central bank","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","daily news","data","departement","department","department store","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","evening news","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","health authority","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institute of technology","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","liberation army","limited","local authority","local health authority","machines","magazine","management","marine","marketing","markets","media","memorial","mercantile exchange","ministere","ministry","military","mobile","motor","motors","musee","museum","news","news service","observatory","office","oil","optical","orchestra","organization","partners","partnership","people's party","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","regional authority","regional health authority","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","social club","societe","society","sons","standard","state police","state university","stock exchange","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((function(e,t){return e[t]="Noun",e}),{}),wa=function(e){return!!e.tags.Noun&&(!(e.tags.Pronoun||e.tags.Comma||e.tags.Possessive)&&!!(e.tags.Organization||e.tags.Acronym||e.tags.Place||e.titleCase()))},ka=/^[A-Z]('s|,)?$/,Aa=/([A-Z]\.){2}[A-Z]?/i,Da={I:!0,A:!0},$a={neighbours:sa,case:ca,stem:ga,plural:ba,organizations:function(e,t){for(var r=0;r5)&&e.isAcronym()}(e,t)?(e.tag("Acronym","acronym-step",t),e.tag("Noun","acronym-infer",t)):!Da.hasOwnProperty(e.text)&&ka.test(e.text)&&(e.tag("Acronym","one-letter-acronym",t),e.tag("Noun","one-letter-infer",t)),e.tags.Organization&&e.text.length<=3&&e.tag("Acronym","acronym-org",t),e.tags.Organization&&e.isUpperCase()&&e.text.length<=6&&e.tag("Acronym","acronym-org-case",t))}))}},Pa=function(e,t){var r=e.world;return $a.neighbours(t,r),$a.case(e),$a.stem(t,r),t.forEach((function(t){!1===t.isKnown()&&t.tag("Noun","noun-fallback",e.world)})),$a.organizations(t,r),$a.acronyms(t,r),t.forEach((function(t){$a.plural(t,e.world)})),e},Ha=/n't$/,ja={"won't":["will","not"],wont:["will","not"],"can't":["can","not"],cant:["can","not"],cannot:["can","not"],"shan't":["should","not"],dont:["do","not"],dun:["do","not"]},Ea=function(e,t){return!0===ja.hasOwnProperty(e.clean)?ja[e.clean]:"ain't"===e.clean||"aint"===e.clean?function(e,t){var r=t.terms(),n=r.indexOf(e),a=r.slice(0,n).find((function(e){return e.tags.Noun}));return a&&a.tags.Plural?["are","not"]:["is","not"]}(e,t):!0===Ha.test(e.clean)?[e.clean.replace(Ha,""),"not"]:null},Na=/([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]([a-z]{1,2})$/i,xa={ll:"will",ve:"have",re:"are",m:"am","n't":"not"},Ia=function(e){var t=e.text.match(Na);return null===t?null:xa.hasOwnProperty(t[2])?[t[1],xa[t[2]]]:null},Fa={wanna:["want","to"],gonna:["going","to"],im:["i","am"],alot:["a","lot"],ive:["i","have"],imma:["I","will"],"where'd":["where","did"],whered:["where","did"],"when'd":["when","did"],whend:["when","did"],howd:["how","did"],whatd:["what","did"],dunno:["do","not","know"],brb:["be","right","back"],gtg:["got","to","go"],irl:["in","real","life"],tbh:["to","be","honest"],imo:["in","my","opinion"],til:["today","i","learned"],rn:["right","now"],twas:["it","was"],"@":["at"]},Ca=function(e){return Fa.hasOwnProperty(e.clean)?Fa[e.clean]:null},Ba=/([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]s$/i,Oa={that:!0,there:!0},Ga={here:!0,there:!0,everywhere:!0},za=function(e,t,r){var n=e.text.match(Ba);if(null!==n){if(!0===function(e,t){if(e.tags.Possessive)return!0;if(e.tags.Pronoun||e.tags.QuestionWord)return!1;if(Oa.hasOwnProperty(e.reduced))return!1;var r=t.get(e.next);if(!r)return!0;if(r.tags.Verb)return!!r.tags.Infinitive||!!r.tags.PresentTense;if(r.tags.Noun)return!0!==Ga.hasOwnProperty(r.reduced);var n=t.get(r.next);return!(!n||!n.tags.Noun||n.tags.Pronoun)||(r.tags.Adjective||r.tags.Adverb||r.tags.Verb,!1)}(e,t.pool))return e.tag("#Possessive","isPossessive",r),null;if(null!==n)return function(e,t){var r=t.terms(),n=r.indexOf(e);return r.slice(n+1,n+3).find((function(e){return e.tags.PastTense}))}(e,t)?[n[1],"has"]:[n[1],"is"]}return null},Ta=/[a-z\u00C0-\u00FF]'d$/,Va={how:!0,what:!0},Ja=function(e,t){if(Ta.test(e.clean)){for(var r=e.clean.replace(/'d$/,""),n=t.terms(),a=n.indexOf(e),i=n.slice(a+1,a+4),o=0;o0?fi=fi.concat(t):fi.push(e)})),fi.forEach((function(e){var t,r,n;return e.required=(t=e.reg,r=[],n=[],t.forEach((function(e){!0!==e.optional&&!0!==e.negative&&(void 0!==e.tag&&r.push(e.tag),void 0!==e.word&&n.push(e.word))})),{tags:Xa(r),words:Xa(n)}),e}));var mi=fi,vi=function(e){mi.forEach((function(t){var r=[];t.required.words.forEach((function(t){r.push(e._cache.words[t]||[])})),t.required.tags.forEach((function(t){r.push(e._cache.tags[t]||[])}));var n=function(e){if(0===e.length)return[];var t={};e.forEach((function(e){e=Xa(e);for(var r=0;r5&&e.match("#Verb+").length>=2}));if(u.found){var l=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(l.eq(0))}return"number"==typeof t&&(n=n.get(t)),new e(n.list,this,this.world)},e},$i=function(e){var r=function(e){a(i,e);var r=u(i);function i(e,n,a){var o;return t(this,i),(o=r.call(this,e,n,a)).contracted=null,o}return n(i,[{key:"expand",value:function(){return this.list.forEach((function(e){var t=e.terms(),r=t[0].isTitleCase();t.forEach((function(e,r){e.set(e.implicit||e.text),e.implicit=void 0,r1&&void 0!==arguments[1]?arguments[1]:{},n=this.match("(#City && @hasComma) (#Region|#Country)"),a=this.not(n).splitAfter("@hasComma"),i=(a=a.concat(n)).quotations();return i.found&&(a=a.splitOn(i.eq(0))),a=a.match("#Noun+ (of|by)? the? #Noun+?"),!0!==t.keep_anaphora&&(a=(a=(a=(a=a.not("#Pronoun")).not("(there|these)")).not("(#Month|#WeekDay)")).not("(my|our|your|their|her|his)")),a=a.not("(of|for|by|the)$"),"number"==typeof e&&(a=a.get(e)),new r(a.list,this,this.world)},e},Vi=/\(/,Ji=/\)/,Mi=function(e){var r=function(e){a(i,e);var r=u(i);function i(){return t(this,i),r.apply(this,arguments)}return n(i,[{key:"unwrap",value:function(){return this.list.forEach((function(e){var t=e.terms(0);t.pre=t.pre.replace(Vi,"");var r=e.lastTerm();r.post=r.post.replace(Ji,"")})),this}}]),i}(e);return e.prototype.parentheses=function(e){var t=[];return this.list.forEach((function(e){for(var r=e.terms(),n=0;n0}}),Object.defineProperty(this,"length",{get:function(){return i.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(e,[{key:"tagger",value:function(){return yi(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),e}();so.prototype.buildFrom=function(e){return e=e.map((function(e){return e.clone(!0)})),new so(e,this,this.world)},so.prototype.fromText=function(e){var t=wt(e,this.world,this.pool());return this.buildFrom(t)},Object.assign(so.prototype,oo.misc),Object.assign(so.prototype,oo.selections),io(so);var uo={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(uo).forEach((function(e){return so.prototype[e]=so.prototype[uo[e]]}));var lo=so,co=function(e){var t=e.termList();return Dn(t,e.world),e.world.taggers.forEach((function(t){t(e)})),e};return function e(t){var r=t,n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;t&&r.addWords(t);var n=wt(e,r),a=new lo(n,null,r);return a.tagger(),a};return n.tokenize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=r;t&&((n=n.clone()).words={},n.addWords(t));var a=wt(e,n),i=new lo(a,null,n);return(t||i.world.taggers.length>0)&&co(i),i},n.extend=function(e){return e(lo,r,this,Xe,se,et),this},n.fromJSON=function(e){var t=kt(e,r);return new lo(t,null,r)},n.clone=function(){return e(r.clone())},n.verbose=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(e),this},n.world=function(){return r},n.parseMatch=function(e,t){return Ke(e,t)},n.version="13.10.0",n.import=n.load,n.plugin=n.extend,n}(new Fr)})); diff --git a/builds/compromise.mjs b/builds/compromise.mjs index b94a9f482..f19a2f818 100644 --- a/builds/compromise.mjs +++ b/builds/compromise.mjs @@ -1,4 +1,4 @@ -/* compromise 13.9.3 MIT */ +/* compromise 13.10.0 MIT */ function _typeof(obj) { "@babel/helpers - typeof"; @@ -1289,8 +1289,8 @@ var Term = /*#__PURE__*/function () { this.text = obj.text || ''; this.clean = obj.clean; this.reduced = obj.reduced; - this.root = null; - this.implicit = null; + this.root = null; + this.implicit = null; this.pre = obj.pre || ''; this.post = obj.post || ''; this.tags = {}; @@ -2210,40 +2210,56 @@ var _matchLogic = createCommonjsModule(function (module, exports) { } } - if (state.terms[state.t].doesMatch(reg, state.start_i + state.t, state.phrase_length) === true) { - return true; - } - return false; }; // match complex OR cases like (a|b|foo bar) exports.doOrBlock = function (state) { var skipN = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var reg = state.regs[state.r]; + var block = state.regs[state.r]; var wasFound = false; // do each multiword sequence - for (var c = 0; c < reg.choices.length; c += 1) { + for (var c = 0; c < block.choices.length; c += 1) { // try to match this list of tokens - var block = reg.choices[c]; - wasFound = block.every(function (cr, w_index) { - var tryTerm = state.t + w_index + skipN; + var regs = block.choices[c]; + wasFound = regs.every(function (cr, w_index) { + var extra = 0; + var t = state.t + w_index + skipN + extra; - if (state.terms[tryTerm] === undefined) { + if (state.terms[t] === undefined) { return false; } - return state.terms[tryTerm].doesMatch(cr, tryTerm + state.start_i, state.phrase_length); + var foundBlock = state.terms[t].doesMatch(cr, t + state.start_i, state.phrase_length); // this can be greedy - '(foo+ bar)' + + if (foundBlock === true && cr.greedy === true) { + for (var i = 1; i < state.terms.length; i += 1) { + var term = state.terms[t + i]; + + if (term) { + var keepGoing = term.doesMatch(cr, state.start_i + i, state.phrase_length); + + if (keepGoing === true) { + extra += 1; + } else { + break; + } + } + } + } + + skipN += extra; + return foundBlock; }); if (wasFound) { - skipN += block.length; + skipN += regs.length; break; } } // we found a match - is it greedy though? - if (wasFound && reg.greedy === true) { + if (wasFound && block.greedy === true) { return exports.doOrBlock(state, skipN); // try it again! } @@ -2335,11 +2351,11 @@ var tryHere = function tryHere(terms, regs, start_i, phrase_length) { state.groupId = _id(reg.named); state.previousGroup = state.groupId; } - } //hve we run-out of terms? + } //have we run-out of terms? if (!state.terms[state.t]) { - //are all remaining regs optional? + //are all remaining regs optional or negative? var haveNeeds = regs.slice(state.r).some(function (remain) { return !remain.optional; }); @@ -2423,18 +2439,31 @@ var tryHere = function tryHere(terms, regs, start_i, phrase_length) { } else if (!reg.optional) { return null; //die } - } + } // ok, finally test the term/reg + + + var term = state.terms[state.t]; + var doesMatch = term.doesMatch(reg, state.start_i + state.t, state.phrase_length); + + if (reg.anything === true || doesMatch === true || _matchLogic.isEndGreedy(reg, state)) { + var startAt = state.t; // if it's a negative optional match... :0 - if (reg.anything === true || _matchLogic.isEndGreedy(reg, state)) { - var startAt = state.t; // okay, it was a match, but if it optional too, + if (reg.optional && regs[state.r + 1] && reg.negative) { + continue; + } // okay, it was a match, but if it's optional too, // we should check the next reg too, to skip it? + if (reg.optional && regs[state.r + 1]) { // does the next reg match it too? - if (state.terms[state.t].doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { + var nextRegMatched = term.doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length); + + if (reg.negative || nextRegMatched) { // but does the next reg match the next term?? // only skip if it doesn't - if (!state.terms[state.t + 1] || !state.terms[state.t + 1].doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { + var nextTerm = state.terms[state.t + 1]; + + if (!nextTerm || !nextTerm.doesMatch(regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { state.r += 1; } } @@ -2482,6 +2511,19 @@ var tryHere = function tryHere(terms, regs, start_i, phrase_length) { } continue; + } // ok, it doesn't match. + // did it *actually match* a negative? + + + if (reg.negative) { + var tmpReg = Object.assign({}, reg); + tmpReg.negative = false; // try removing it + + var foundNeg = state.terms[state.t].doesMatch(tmpReg, state.start_i + state.t, state.phrase_length); + + if (foundNeg === true) { + return null; //bye! + } } //bah, who cares, keep going @@ -2494,8 +2536,7 @@ var tryHere = function tryHere(terms, regs, start_i, phrase_length) { // if the last match was implicit too, we're missing a word. if (state.terms[state.t - 1] && state.terms[state.t - 1].implicit === regs[state.r - 1].word) { return null; - } // console.log(state.terms[state.t]) - // does the next one match? + } // does the next one match? if (state.terms[state.t + 1].doesMatch(reg, state.start_i + state.t, state.phrase_length)) { @@ -3813,60 +3854,7 @@ var fromJSON = function fromJSON(json, world) { var fromJSON_1 = fromJSON; -var _version = '13.9.3'; - -var _data = { - "Comparative": "true¦better", - "Superlative": "true¦earlier", - "PresentTense": "true¦is,sounds", - "Value": "true¦a few", - "Noun": "true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc", - "Copula": "true¦a1is,w0;as,ere;m,re", - "PastTense": "true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan", - "Condition": "true¦if,lest,unless", - "Preposition": "true¦'o,-,aLbIcHdGexcept,fFiDmidQnotwithstandiRoBpSqua,sAt6u3vi2w0;/o,hereNith0;!in,oR;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n2ut;!f;f,n0;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", - "Gerund": "true¦accord0be0develop0go0result0stain0;ing", - "Negative": "true¦n0;ever,o0;!n,t", - "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", - "Plural": "true¦records", - "Conjunction": "true¦&,aFbBcuz,how9in caEno8o7p5supposing,t2v1wh0yet;eth9ile;ers4s;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", - "Abbreviation": "true¦a0Tb0Qc0Kd0Ie0Ff0Cg0Ah08i06j04k02l00mRnOoNpIqHrFs9t6u5v2w0yb,µg;is0r,y0L;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;b1ce,d,e0sp;l,mp,nn,x;!l,sp;ask,e3fc,gt,i2q1r,s,t,u0;pt,rg;! ft;r,tu;c,nVp0;!t;b,d,e0;pSs,v;t,ue;a,d,enn3hd,l,p,r1s0t,vt;!eud;ef,o0;b,f,n;!a;ct,kla,nt,z;e0ov;b0e;!r;a7b,d,essrs,g,i4l3m2p1rHs0t;!tr;h,s;!e;!le;!n1s0;c,ter;!n;!j,r,sc;at,b,it,lb,m,ng,t0x;!d;an6b,g,m0;!ph;an,d,r,u0;l,n;a,da,e,n0;c,f;g,on,r0wy,z;!s;a0b,en,ov;!l;e1ig,l0m,r,t,y;! oz,a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0g,ist,l,m,r;c,f,pt,t;a3ca,g,l,m2o0pl,res,yn;!l0mdr,nn,rp;!o;!dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v", - "Pronoun": "true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true¦0:15;1:18;2:12;a15b0Sc0Jd0Ce09f04gZhViUjel0kitty,lSmOnNoMpHquestionGrEs9t6u4w3;ay,om02;nc0Zs 3;doll0Kst0M; rex,a4h3ic,ragedy,v show;ere,i1;l0x return;i6ky,omeoMt3uper bowl,yst14;ep4ri1u3;de0Xff;faSmoS;st2ze;al0i1o3;om,se;! mark;a6i2la5r4u3;dPrpoH;eroga00ie0Gobl0U;te,y2;rt,te0N;bjWceJthers,verview;othi1umb2;a5ee08o3;del,m3nopo0rni1th2;!my;n,yf0;i3unch;ne;ci1nsect;ead start,o3uman right;l0me4u3;se;! run;adf0entlem6irl02laci2od,rand4u3;l0y; slam,fa3mo3;th2;an;a6ella,ly,ol0r4un3;di1;ee market,iWo3;nti2sP;mi0th2;conomy,gg,ner7ven4x3;ampTecu9;i1t;ad8e5inn2o3ragonf0ude;cumentGg3i0l0or;gy;ath,t3;ec3;tive;!dy;a9eili1h7i5o3redit card;ttage,u3;ri2sin;ty,vil w3;ar;andeli2ocol3;ate;n3rF;ary;aCel0lesJo8r5u3;n3tterf0;ti1;eakfa4o3;!th2;st;dy,tt5y3;!fri3;end;le;nki1r3;ri2;er;d5l0noma0u3;nt;ly; homin5verti3;si1;ng;em", - "FemaleName": "true¦0:J3;1:J7;2:IG;3:IF;4:IX;5:IK;6:JO;7:H0;8:JK;9:JG;A:HN;B:HY;C:IT;D:JD;E:IP;F:HC;G:I0;aGRbFLcDPdCYeBOfB4gADh9Ti9Gj8Gk7Gl60m49n3No3Jp37qu36r2Ds16t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof2;e3Uf2la,ra;h3iKlIna,ynH;ab,ep;da,ma;da,h3iHra;nab;aKeJi0Fol5BuIvH;etAonDO;i0na;le0sen2;el,gm3Jn,rGJs8W;aoHme0nyi;m62yAE;aMendDYhiDFiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;cIktoriBMlAole7viH;anC3enJ0;kF9tor2;da,lA9nus,rHs0;a,nHoniH4;a,iFQ;leHnesH4;nIHrH;i1y;g9rHxH5;su5te;aYeUhRiNoLrIuHy3;i,la;acIZiHu0L;c2na,sH;hBPta;nHr0H;iBNya;aJffaEOnHs6;a,gtiH;ng;!nFQra;aIeHomasi0;a,l9Po8Ares1;l2ndolwethu;g9Go88rIssH;!a,ie;eHi,ri8;sa,za;bPlNmLnJrIs6tHwa0;ia0um;a63yn;iHya;a,ka,s6;arB6e3iHmEDra;!ka;a,iH;a,t6;at6it6;a0Fcarlet3We0BhXiTkye,neza0oRtNuIyH;bIBlvi1;e,ha,mayIEni7sIzH;an3MetAie,y;anHi8;!a,e,nH;aEe;aJeH;fHl5GphH;an4;cHZr5;b2fiA8m0OnHphi1;d3ia,ja,ya;er3lJmon1nIobh8PtH;a,i;dy;lEPv2;aMeIirHo0risF7y5;a,lDK;ba,e0i5lJrH;iHrDOyl;!d8Hfa;ia,lDX;hd,iMki3nJrIu0w0yH;la,ma,na;i,le9on,ron;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye81vH;da,inj;e0ife;en1i0ma;anA5bNd3Nh1RiBkMlLmJndIrHs6vannaE;aEi0;ra,y;aHi3;nt6ra;lDKma,ome;ee0in8Ru3;in1ri0;a05e00hYiVoIuH;by,thDH;bScRghQl2KnPsJwIxH;anAXie,y;an,e0;aIeHie,lD; merBLann8ll1marDBt7;!lHnn1;iHyn;e,nH;a,d9K;da,i,na;ayy8D;hel62io;bDKer7yn;a,cIkHmas,n9Fta,ya;ki,o;helGki;ea,iannGDoH;da,n1K;an0bJem9Agi0iInHta,y0;a88ee;han83na;a,eH;cEAkaE;bi0chIe,i0mo0nHquEKvCy0;di,ia;aEIelHiB;!e,le;een4ia0;aNeMhKipaluk,oJrHute66;iHudenCQ;scil3LyamvaB;lly,rt2;ilome0oebe,ylH;is,lis;arl,ggy,nelope,r5t3;ige,m0TnKo5rvaDGtIulH;a,etAin1;ricHsy,tBY;a,e,ia;do3i06;ctav2dIfCZis6lHphCZumC3yunbileg;a,ga,iv2;eHvAC;l2tA;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aEeCma;ll1mi;aNcLhariBOkKlaJna,sHta,vi;anHha;ur;!y;a,iDTki;hoGk9VolH;a,eDJ;!mh;hir,lHna,risFsreC;!a,lBT;asuLdKh2i6CnJomi8rgEPtHzanin zah3;aHhal4;li1s6;cy,etA;a,e9iEV;nngu30;a09ckenz4e01iMoJrignayani,uriDDyH;a,rH;a,lNna,tG;bi0i3llBInH;a,iH;ca,ka,qD3;a,cTkaSlNmi,nLrItzi,yH;ar;aIiam,lH;anEO;!l,nB;dy,eHh,n4;nhGrva;aKdJiCPlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5EgNi,lKrH;edi79iIjem,on,yH;em,l;em,sF;an4iHliF;nHsCE;a,da;!an,han;b0DcASd0Be,g09ha,i08ja,l06n04rLsoum60tKuIv82x9IyHz4;a,bell,ra,soB9;de,rH;a,eC;h8Fild1t4;a,cYgUiKjor4l7Sn4s6tJwa,yH;!aHbe6Wja9lAE;m,nBH;a,ha,in1;!aJbCBeIja,lDna,sHt64;!a,ol,sa;!l1H;! Jh,mInH;!a,e,n1;!awit,i;aliAHcJeduarBfernIjHlui5Y;o6Ful2;anB;ecil2la3;arJeIie,oHr44ueriA;!t;!ry;et42i37;el4Ui76y;dHon,ue5;akran7y;ak,en,iHk,lo3O;a,ka,nB;a,re,s4te;daHg4;!l3A;alDd4elHge,isDBon0;ei9in1yn;el,le;a0Ne0CiYoQuLyH;d2la,nH;!a,dIeBGnHsCL;!a,eBF;a,sCJ;aCWcJel0PiFlIna,pHz;e,i7;a,u,wa;iHy;a0Se,ja,l2JnB;is,l1SrJttIuHvel4;el5is1;e,ie;aKeIi8na,rH;a86i8;lHn1t7;ei;!in1;aSbb9CdRepa,lMnJsIv2zH;!a,be5LetAz4;a,etA;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lHy;iHy;aA0e;!aH;!n5F;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx4y5;iHt4;c2t2;e2LlCG;la,nHra;a,ie,o3;a,or1;a,gh,laH;!ni;!h,nH;a,d3e,n5P;cOdon97iNkes6mi9Ana,rMtJurIvHxmi,y5;ern1in2;a,e54ie,yn;as6iIoH;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a04eZhXiOlAKoNrJyH;lHra;a,ee,ie;istHy6D;a,en,iIyH;!na;!e,n59;nul,ri,urtnB0;aOerNlAZmJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stC;!na,ra;aHei3ongordzol;dij1w5;el7QiKjsi,lJnIrH;a,i,ri;d3na,za;ey,i,lBDs4y;ra,s6;bi7cAJdiat7IeB2iRlQmPnyakuma19rNss6KtKvi7yH;!e,lH;a,eH;e,i8L;a6DeIhHi4NlDri0y;ar6Ber6Bie,leCrB2y;!lyn8Gri0;a,en,iHl5Soli0yn;!ma,n3VsF;a5il1;ei8Ei,l4;a,tl6L;a07eYiVoNuH;anLdKliHst63;a8HeHsF;!n9tH;!a,te;e5Ji3Jy;a,i7;!anNcelDd6RelGhan7RlLni,sIva0yH;a,ce;eHie;fHlDph5U;a,in1;eHie;en,n1;!a,e,n41;lHng;!i1ClH;!i1B;anMle0nJrIsH;i8Csi8C;i,ri;!a,elGif2CnH;a,etAiHy;!e,f2A;a,e8EiInH;a,e8DiH;e,n1;cMd1mi,nIque4Xsmin3Ovie3y9zH;min8;a8eIiH;ce,e,n1s;!lHsFt0F;e,le;inIk4lDquelH;in1yn;da,ta;lRmPnOo0rNsIvaHzaro;!a0lu,na;aJiIlaHob84;!n9N;do3;!belHdo3;!a,e,l39;a77en1i0ma;a,di3es,gr6Yji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHusFyacin2B;da,ll4rten23snH;a,i9Q;lImaH;ri;aIdHlaI;a,egard;ry;ath1CiJlInriet7rmi9sH;sa,t1B;en2Sga,mi;di;bi2Dil8IlNnMrJsItHwa,yl8Iz7H;i5St4;n5Yti;iHmo51ri52;etH;!te;aEnaE;a,ey,l4;a03eXiSlQoOrKunJwH;enHyne1Q;!dolD;ay,el;acIetHiselB;a,chC;e,ieH;!la;ld1AogooH;sh;adys,enHor2yn2H;a,da,na;aKgi,lIna,ov89selHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald3Pi,m3Ctru8B;etAi4W;a,eHna;s26vieve;ma;bIil,le,mHrnet,yG;al5Ni5;i5FrielH;a,l1;aVeSiRloOoz2rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0O;n1s61;!ca;!rH;a,encH;e,ia;en,o0;lIn0rnH;!anB;ec2ic2;jr,n7rKtHy8;emIiHma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Nd0Ne0Mi0Lk7l04mWn4YrTsNtMuLvH;aJelIiH;!e,ta;in0Gyn;!ngel2S;geni1la,ni45;h5Sta;mLperanKtH;eIhHrel5;er;l30r8;za;a,eralB;iHma,nest2Jyn;cHka,n;a,ka;a,eMiJmH;aHie,y;!li9;lHn1;ee,iHy;a,e,ja;lHrald;da,y;aWeUiNlMma,no3oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c2da,f,nMsJzaH;!betHve7;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a;!in1na;leCs6;vi;eIiHna,wi0;e,th;l,n;aYeMh2iLjeneKoHul30;lor5Tminiq4In3FrHtt4;a,eCis,la,othHthy;ea,y;ba;an0AnaEon9x4ya;anQbPde,eOiMja,lJmetr2nHsir5K;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6D;dHrdH;re;!d5Cna;!b2HoraEra;a,d3nH;!a,e;hl2i0l0HmNnLphn1rIvi1XyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,etAiH;!ca,el1Cka,z;arHia;is;a0Se0Oh05i03lVoKrIynH;di,th2;istHy05;al,i0;lPnMrIurH;tn1E;aJd2NiHn2Nri9;!nH;a,e,n1;!l1X;cepci59n4sH;tanHuelo;ce,za;eHleC;en,tA;aJeoIotH;il51;!pat3;ir8rJudH;etAiH;a,ne;a,e,iH;ce,sZ;a3er3ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Ren,iHy;!an1e,n1;deJlseIrH;!i8yl;a,y;li9;nMrH;isKlImH;ai9;a,eHotA;n1tA;!sa;d3elGtH;al,elG;cIlH;esAi44;el2ilH;e,ia,y;itlZlYmilXndWrOsMtHy5;aKeJhHri0;erHleCrDy;in1;ri0;li0ri0;a33sH;a32ie;a,iNlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eHie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrH;andSeQiJoIyH;an0nn;nwDok8;an3DdgLg0XtH;n2XtH;!aInH;ey,i,y;ny;etH;!t8;an0e,nH;da,na;i8y;bbi8glarIlo05nH;i7n4;ka;ancHossom,ythe;a,he;an17lja0nHsm3I;i7tH;ou;aUcky,linTni7rPssOtJulaEvH;!erlH;ey,y;hJsy,tH;e,iHy8;e,na;!anH;ie,y;!ie;nHt6yl;adIiH;ce;etAi9;ay,da;!triH;ce,z;rbJyaH;rmH;aa;a3ie,o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn09oi,r04sUtTuPvOwa,yIzH;ra,u0;aKes6gJlIseH;!l;in;un;!nH;a,na;a,i2Ir2J;drJgus1RrIsteH;ja;el2;a,ey,i,y;aahua,he0;hIi2Gja,mi7s2DtrH;id;aMlIraqHt21;at;eIi8yH;!n;e,iHy;gh;!nH;ti;iJleIo6pi7;ta;en,n1tA;aHelG;!n1J;a00dje5eYgUiSjQnJohito,toHya;inetAnH;el5ia;!aKeIiHmJ;e,ka;!mHtA;ar4;!belIliFmU;sa;!le;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tA;te;! JbImHstasiNya;ar2;el;cla3jul2pau5;aLberKeliJiHy;e,l2naH;!ta;a,ja;!ly;hGiIl2nB;da;a,ra;le;aWba,ePiMlKma,thJyH;a,c2sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c2is6jaKksaKna,sJxH;aHia;!nd3;ia,saH;nd3;ra;ia;i0nIyH;ah,na;a,is,naEoud;la;c6da,leCmNnLsH;haElH;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;!gaK;ey,i8y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya", - "Actor": "true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", - "Honorific": "true¦a01bYcQdPeOfiJgIhon,jr,king,lHmCoffic00p7queen,r3s0taoiseach,vice6;e1fc,gt,ir,r,u0;ltRpt,rg;cond liInBrgeaJ;abbi,e0;ar1p9s,v0;!erend; admirX;astOhd,r0vt;esideDi1of0;!essM;me mini4nce0;!ss;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al", - "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", - "Uncountable": "true¦0:1I;1:1X;2:16;a1Rb1Jc1Ad17e10f0Ug0Nh0Ii0Ej0Dknowled1Ql08mYnews,oXpTrOsDt8vi7w3;a5ea0Bi4oo3;d,l;ldlife,ne;rmth,t0;neg17ol0Ctae;e6h5oothpaste,r3una;affTou3;ble,sers,t;ermod1Mund0;a,nnis;aBcene0Aeri2hAil9kittl2now,o8p6t4u3;g10nshi0Q;ati1Le3;am,el;ace1Ee3;ci2ed;ap,cc0;k,v0;eep,ingl2;d0Dfe18l3nd;m11t;a6e4ic3;e,ke0M;c3laxa0Isearch;ogni0Hrea0H;bi2in;aPe5hys1last9o3ress04;l3rk,w0;it1yA;a12trZ;bstetr1il,xygen;aAe8ilk,o5u3;mps,s3;ic;n3o0I;ey,o3;gamy;a3chan1;sl2t;chine3il,themat1; learn0Bry;aught0e5i4ogi0Su3;ck,g0I;ce,ghtn08ngui0QteratN;a3isM;th0;ewelAusti0L;ce,mp3nformaUtself;a3ortan0J;ti3;en0H;a6isto5o3;ck3mework,n3spitali0B;ey;ry;ir,libut,ppiD;ene6o4r3um,ymna0D;aCound;l3ssip;d,f; 3t1;editQpo3;ol;i7lour,o4urnit3;ure;od,rgive3uri0wl;ne3;ss;c9sh;conom1duca8lectr7n5quip6th1very3;body,o3thH;ne;joy3tertain3;ment;iciPon1;tiI;ar4iabet2raugh4;es;ts;aAelcius,h6iv1l5o3urrency;al,ld w3nfusiDttD;ar;ass1oth5;aos,e3;e4w3;ing;se;r7sh;a7eef,i4lood,owls,read,utt0;er;lliar4s3;on;ds;g3ss;ga3;ge;c8dvi7ero5ir4mnes3rt,thlet1;ty;craft;b1d3naut1;ynam1;ce;id,ou3;st1;ics", - "Infinitive": "true¦0:6S;1:76;2:5C;3:74;4:73;5:67;6:6F;7:6Y;8:6Q;9:72;A:70;B:6X;C:5X;D:77;E:6L;F:5B;a6Kb66c57d4De3Xf3Jg3Dh37i2Uj2Sk2Ql2Hm26n23o1Yp1Jr0Rs06tYuTvOwHyG;awn,ield;aJe1Zhist6iIoGre6D;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tEve;n,raD;d0t;aJiHoG;te,w;eGsB;!w;l6Jry;nHpGr4se;gra4Pli41;dGi9lo5Zpub3Q;erGo;mi5Cw1I;aMeLhKig5SoJrHuGwi7;ne,rn;aGe0Mi5Uu7y;de,in,nsf0p,v5J;r2ZuE;ank,reatC;nd,st;lk,rg1Qs9;aZcWeVhTi4Dkip,lSmRnee3Lo52pQtJuGwitE;bmBck,ff0gge7ppHrGspe5;ge,pri1rou4Zvi3;ly,o36;aLeKoJrHuG;dy,mb6;aFeGi3;ngthCss,tE;p,re;m,p;in,ke,r0Qy;la58oil,rink6;e1Zi6o3J;am,ip;a2iv0oG;ck,rtCut;arEem,le5n1r3tt6;aHo2rG;atEew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5V;eGiew,o36;al,l,rG;se,t;aFi2u44;eJi7oItG;!o2rG;i5uc20;l3rt;mb6nt,r3;e7i2;air,eHlGo43r0K;a8y;at;aFemb0i3Zo3;aHeGi3y;a1nt;te,x;a5Dr0J;act1Yer,le5u1;a13ei3k5PoGyc6;gni2Cnci6rd;ch,li2Bs5N;i1nG;ge,k;aTerSiRlOoMrIuG;b21ll,mp,rGsh;cha1s4Q;ai1eIiDoG;cGdu8greAhibBmi1te7vi2W;eAlaim;di5pa2ss,veD;iDp,rtr46sGur;e,t;aHead,uG;g,n4;n,y;ck,le;fo34mBsi7;ck,iDrt4Mss,u1;bJccur,ff0pera9utweIverGwe;co47lap,ta22u1wG;helm;igh;ser3taF;eHotG;e,i8;ed,gle5;aMeLiIoHuG;ltip3Grd0;nit13ve;nHrr12sreprG;eseD;d,g6us;asu2lt,n0Nr4;intaFna4rHtG;ch,t0;ch,kGry;et;aMeLiJoGu1C;aHck,oGve;k,sC;d,n;ft,g35ke,mBnk,st2YveG;!n;a2Fc0Et;b0Nck,uG;gh,nE;iGno34;ck,ll,ss;am,oFuG;d4mp;gno2mQnGss3H;cOdica9flu0MhNsKtIvG;eGol3;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abBibB;lu1Fr1D;agi24pG;lemeDo22ro3;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppCrm,te;aKloAove1PrIuG;arGeAi15;ant39d;aGip,ow,umb6;b,sp;in,th0ze;aReaQiOlMoJrHuncG;ti3J;acGeshC;tu2;cus,lHrG;ce,eca7m,s30;d,l24;a1ZoG;at,od,w;gu2lGni1Xt,x;e,l;r,tu2;il,stCvG;or;a15cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte19;a18eHi2laFoGreA;rt,se;ct,riG;en8;ci1t;el,han4;abGima9;li1J;ab6couXdHfor8ga4han8j03riEsu2t0vG;isi2Vy;!u2;body,er4pG;hasiGow0;ze;a07eUiLoKrHuG;mp;aHeAiG;ft;g,in;d4ubt;ff0p,re5sHvG;iZor8;aKcHliGmiApl1Btingui14;ke;oGuA;uGv0;ra4;gr1YppG;ear,ro3;cOeNfLliv0ma0Fny,pKsHterG;mi0G;cribe,er3iHtrG;oy;gn,re;a0Be0Ai5osB;eGi0By;at,ct;m,pC;iIlHrG;ea1;a2i06;de;ma4n8rGte;e,kC;a0Ae09h06i9l04oJrG;aHeGoAu0Hy;a9dB;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aFin0VrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laF;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen4n4r4se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aSePloOoMrIuG;lGry;ly;igHuG;sh;htC;en;a7mb,o7rrGth0un8;ow;ck;ar,lHnefBtrG;ay;ie3ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waB;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri3;ue;!i3;eaJlIroG;aEve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e4ow;ee;rd;aRdIju7mBoR;it;st;!reA;ss;cJhie3knowled4tiva9;te;ge;ve;eIouDu1;se;nt;pt;on", - "Unit": "true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", - "Organization": "true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c", - "Demonym": "true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an", - "Possessive": "true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne", - "Currency": "true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s", - "City": "true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1ern1Mi0;en2Hlni2Z;lenc2Uncouv0Gr2Gughn;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg", - "Country": "true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an", - "Region": "true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma", - "Place": "true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt,rd;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s", - "WeekDay": "true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", - "Month": "true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il", - "Date": "true¦ago,t2week0yesterd4; e0e0;nd;mr2o0;d0morrow;ay;!w", - "FirstName": "true¦aKblair,cGdevFgabrieEhinaDjBk8l7m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is", - "LastName": "true¦0:9F;1:9V;2:9X;3:9H;4:9N;5:8J;6:9K;7:A0;8:9E;9:88;A:77;B:6E;C:6J;a9Ub8Lc7Kd6Xe6Rf6Dg5Vh58i54j4Pk45l3Nm2Rn2Eo26p1Nquispe,r17s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun7ZiDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s2;b0iss,lt0;a5Rgn0lDng,tanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr0Zss0val37;ba,obos;lasEsel7N;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1JhHi4j6ka3IoGrFsui,uD;om4ZrD;c4n0un1;an,embl8TynisA;dor95lst31m3rr9th;at5Mi7LoD;mErD;are6Ylaci64;ps2s0Y;hirBkah8Dnaka;a00chWeThPiNmKoItFuEvDzabo;en8Aobod34;ar7bot3lliv4zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Psa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmDngh,rbu;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Trra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr3saAto,v3;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Be0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag4es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1W;lishc24pDrti62u55we66;e2Tov48;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5PrEzD;demir,turk;ella3MtDwe5N;ega,iz;iDof6GsC;vDyn1F;ei8;aPri1;aLeJguy1iFoDune44ym4;rodahl,vDwak;ak3Uik5otn56;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray4varD;ro;jiDmu8shiD;ma;aXcVeQiPoIuD;lGnFrDssoli5T;atDpUr68;i,ov3;oz,te4B;d0l0;h4lIo0HrEsDza0Z;er,s;aFeEiDoz5r3Ete4B;!n6F;au,i8no,t4M;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeGij0j2ElFndErci0ssiDyer19;!er;e3Bo2Z;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Ns1;aSeMiIoGuEyD;!nch;k3nDo;d,gu;mbarDpe2Rvr3;di;!nDu,yana1R;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h4iSlQnez46oJrGuEvar4woD;k,n;cerDmar58znets5;a,o2G;aDem0i2Zyeziu;sni3PvD;ch3U;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3Q;huk;!ev3ic,s;e6uiveD;rt;eff0l3mu8nnun1;hn,lloe,minsArEstra31to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Pim0QoEuD;ng,r3;e2JhFnErge2Ju2NvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki26s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0CnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m4ng;a23dz3fEjga2Sk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz3g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aMeorgLheorghe,iJjonIoGrEuDw2;o,staf2Utierr7zm4;ayDg3iffitUub0;li1G;lub3Rme0JnD;calv9zale0I;aj,i;l,mDordaL;en7;iev3B;gnJlGmaFnd2No,rDs2Nuthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erMiIjeldsted,lor9oGrFuD;cDent9ji3F;hs;an1Wiedm4;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnandeVrD;arDei8;a,i;ov3;dHinste6riksCsDva0D;cob2ZpDtra2X;inoDosiM;za;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0YuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g4he0Hmingu7n2Ord19tD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w4;!ov3;gado,ic;th;bo0groot,jo03lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnErw6t2EviD;d5es,s;ieDku1S;ls1;ki;a05e00hNiobMlarkLoFrD;ivDuz;elli;h1lGntFop0rDs26x;byn,reD;a,ia;i,rer0O;em4liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDtterjee,v7;!d,g;ma,raboD;rty;bGl09ng3rD;eghetEnD;a,y;ti;an,ota0M;cer9lder2mpbeIrFstDvadi08;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a09eXhUiSlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nEzD;ev3;co;ancRshwD;as;a01oDuiy4;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b3ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl4yD;aEd6;in;la;aEsl4;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", - "MaleName": "true¦0:E5;1:D6;2:DO;3:AY;4:D2;5:CG;6:CW;7:C8;8:B6;9:DL;A:DK;B:A6;C:C2;aCObBLcAJd9He8Nf85g7Ih6Ui6Ej5Ek52l4Dm35n2To2Np2Fqu2Dr1Ls11t0Eu0Dv07wTxSyIzD;aDor0;cDh9Tkaria,n5W;hEkD;!aCM;ar5WeCL;aLoFuD;sDu2KvBY;if,uf;nFsEusD;ouf,sD;ef;aDg;s,tD;an,h0;hli,nBMssX;avi3ho4;aMeKiFoDyaC2;jcie8Clfgang,odrow,utD;!er;lDnst1;bFey,frD1lD;aBDiD;am,e,s;e9Fur;i,nde8sD;!l7t1;de,lErr9yD;l1ne;lDt3;aAAy;aGiDladimir,ojte7Z;cEha0kt69nceDrgAJva0;!nt;e3Vt67;lentDnA5;in4Y;ghBVlyss5Cnax,sm0;aXeShOiMoHrFuEyD;!l3ro6s1;nAr5C;avAWeDist0oy,um0;ntAOv5Zy;bGdFmDny;!as,mDoharu;aCTie,y;!d;iBy;mDt5;!my,othy;adFeoEia8GomD;!as;!do8P;!de5;dGrD;en9LrD;an9KeDy;ll,n9J;!dy;dgh,ha,iDnn3req,tsu4T;cB5ka;aTcotRePhLiJoHpenc3tDur1Vylve9Kzym1;anFeDua8D;f0phBTvDwa8C;e62ie;!islaw,l7;lom1nBFuD;leyma6ta;dDlBm1yabonga;!dhart7Bn7;aFeD;lDrm0;d1t1;h7Une,qu10un,wn,y6;aDbasti0k2Al4Rrg4Oth,ymoAU;m5n;!tD;!ie,y;lEmDnti2Eq5Bul;!ke5MmCu4;ik,vato7X;aYeUheAAiQoHuEyD;an,ou;b7NdEf5pe7SssD;!elBZ;ol3Fy;an,bKcJdIel,geHh0landBQmGnFry,sEyD;!ce;coe,s;!aAHnC;an,eo;l47r;e5Og3n7olfo,ri7A;co,ky;bCeB7;cDl7;ar6Pc6OhEkDo;!ey,ie,y;a99ie;gEid,ub9x,yDza;an1InY;gA8iD;naA4s;ch70fa4lHmGndFpha4sEul,wi2HyD;an,mo82;h7Vm5;alBDol2Uy;iATon;f,ph;ent2inD;cy,t1;aIeGhilFier72ol,rD;aka16eD;m,st1;!ip,lip;dALrcy,tD;ar,e3Gr1X;b4Kdra7Ft4ZulD;!o17;ctav3Fi3liv3mAFndrej,rHsEtDumAw9;is,to;aEcAkAm0vD;al5Z;ma;i,l53vL;aLeJiFoDu3A;aDel,j5l0ma0r3K;h,m;cEg4i49kD;!au,h7Uola;holBkDolB;!olB;al,d,il,ls1vD;il8Y;hom,thD;anDy;!a4i4;aZeWiMoHuEyD;l2Jr1;hamEr6XstaD;fa,p5C;ed,mH;di0We,hamFis2FntEsDussa;es,he;e,y;ad,ed,mD;ad,ed;cIgu4hai,kGlFnEtchD;!e8;a8Aik;house,o0Bt1;ae5YeA4olD;aj;ah,hDk7;aEeD;al,l;el,l;hElv2rD;le,ri8v2;di,met;ay0ck,hTjd,ks2DlRmadWnQrKs1tFuricExD;!imilian9Nwe8;e,io;eGhEiBtDus,yB;!eo,hew,ia;eDis;us,w;j,o;cHio,kGlFqu7Dsha8tDv2;iDy;!m,n;in,on;!el,oPus;!el9IoOus;iGu4;achDcolm,ik;ai,y;amEdi,eDmoud;sh;adDm5T;ou;aXeQiOlo3EoKuEyD;le,nd1;cGiFkDth3uk;aDe;!s;gi,s,z;as,iaD;no;g0nn7SrenFuDv8Jwe8;!iD;e,s;!zo;am,oD;n4r;a8Cevi,la5JnIoGst3thaFvD;eDi;nte;bo;!nD;!a6Sel;!ny;mFnErDur5Hwr5H;ry,s;ce,d1;ar,o5A;aLeGhaled,iDrist5Iu4Vy6X;er0p,rD;by,k,ollD;os;en0iGnDrmit,v44;!dEnDt5Z;e1Ay;a8ri59;r,th;cp3j5m66na73rEspAthem,uD;ri;im,l;a02eUiSoGuD;an,lDst2;en,iD;an,en,o,us;aNeLhnKkubBnIrGsD;eEhDi8Bue;!ua;!ph;dDge;an,i,on;!aDny;h,s,th5I;!ath5Hie,nC;!l,sDy;ph;o,qu2;an,mD;!mC;d,ffIrFsD;sDus;!e;a6BemEmai6oDry;me,ni0Y;i7Ty;!e60rD;ey,y;cKd9kImHrFsEvi3yD;!d9s1;on,p3;ed,od,rDv56;e5Nod;al,es4Xis1;a,e,oDub;b,v;k,ob,quD;es;aWbQchiPgNkeMlija,nuLonut,rJsFtDv0;ai,suD;ki;aEha0i7DmaDsac;el,il;ac,iaD;h,s;a,vinDw2;!g;k,nngu5S;!r;nacDor;io;ka;ai,rahD;im;aPeJoIuDydA;be2KgGmber4WsD;eyEsD;a2e2;in,n;h,o;m3ra3Gsse2wa4B;aHctGitGnrErD;be2Dm0;iDy;!q11;or;th;bMlLmza,nKo,rFsEyD;a4Jd9;an,s0;lGo50rFuDv7;hi4Gki,tD;a,o;is1y;an,ey;k,s;!im;ib;aVeRiPlenOoLrHuD;ilEsD;!tavo;herme,lerD;mo;aFegDov3;!g,orD;io,y;dy,h5Wnt;nzaErD;an,d1;lo;!n;lbe5Ano,oD;rg3Hvan5A;ne,oFrD;aDry;ld,rd5H;ffr7rge;brEl9rDv2;la28r3Sth,y;e3EielD;!i5;aTePiNlLorr0NrD;anFedDitz;!dCeDri2B;ri2A;cFkD;!ie,lD;in,yn;esLisD;!co,z36;etch3oD;yd;d4lDnn,onn;ip;deriFliEng,rnD;an06;pe,x;co;bi0di,hd;ar04dZfrYit0lSmKnHo2rFsteb0th0uge6vDym9zra;an,eD;ns,re36;gi,i0DnDrol,v2w2;est4Pie;oEriqDzo;ue;ch;aJerIiEmD;aIe2Z;lErD;!h0;!iD;o,s;s1y;nu4;be0Cd1iGliFmEt1viDwood;n,s;er,o;ot1Ys;!as,j4NsD;ha;a2en;!dCgAmGoEuEwD;a2Din;arD;do;o0Wu0W;l,nD;est;a01eRiOoHrGuFwEylD;an,l0;ay6ight;a6dl7nc0st2;ag0ew;minGnEri0ugDvydBy2D;!lB;!a2MnDov0;e8ie,y;go,iDykB;cDk;!k;armuEeDll1on,rk;go;id;anKj0lbeJmetri5nHon,rGsFvEwDxt3;ay6ey;en,in;hawn,mo0B;ek,ri0I;is,nDv3;is,y;rt;!dD;re;an,lNmLnKrGvD;e,iD;! lucDd;as,ca;en,iFne8rDyl;eDin,yl;l3Bn;n,o,us;!e,i4ny;iDon;an,en,on;e,lB;as;a09e07hYiar0lNoIrGuEyrD;il,us;rtD;!is;aDistob0U;ig;dy,lGnErD;ey,neli5y;or,rD;ad;by,e,in,l2t1;aIeFiDyK;fDnt;fo0Ft1;meEt5velaD;nd;nt;rFuEyD;!t1;de;enD;ce;aIeGrisEuD;ck;!tD;i0oph3;st3;er;d,rDs;b4leD;s,y;cDdric,sA;il;lGmer1rD;ey,lEro8y;ll;!os,t1;eb,v2;a07eZiVlaUoRrEuDyr1;ddy,rtK;aLeGiFuEyD;an,ce,on;ce,no;an,ce;nEtD;!t;dEtD;!on;an,on;dEndD;en,on;!foDl7y;rd;bErDyd;is;!by;i6ke;bFlEshD;al;al,lC;ek;nHrDshoi;at,nEtD;!r1C;aDie;rd14;!edict,iEjam2nC;ie,y;to;kaMlazs,nHrD;n7rDt;eDy;tt;ey;dDeE;ar,iD;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il04m00nSputsiRrIsaHuFveEyDziz;a0kh0;ry;gust5st2;us;hi;aKchJiIjun,maHnFon,tDy0;hDu09;ur;av,oD;ld;an,nd0H;!el,ki;ie;ta;aq;as,dIgel0CtD;hoGoD;i6nD;!i09y;ne;ny;er,reDy;!as,i,s,w;iFmaDos;nu4r;el;ne,r,t;an,bePd9eJfHi,lGonFphXt1vD;aNin;on;so,zo;an,en;onTrD;edU;c,jaGksandFssaGxD;!andD;er,ru;ar,er;ndD;ro;rtN;ni;d9mA;ar;en;ad,eD;d,t;in;onD;so;aEi,olfDri0vik;!o;mDn;!a;dHeGraEuD;!bakr,lfazl;hDm;am;!l;allIelFoulaye,ulD;!lDrF;ah,o;! rD;ahm0;an;ah;av,on", - "Person": "true¦ashton kutchTbScNdLeJgastOhHinez,jFkEleDmCnettKoBp9r4s3t2v0;a0irgin maH;lentino rossi,n go3;aylor,heresa may,iger woods,yra banks;addam hussain,carlett johanssKlobodan milosevic,uC;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", - "PhrasalVerb": "true¦0:7E;1:72;2:7Q;3:7G;4:6V;5:7T;6:7I;7:71;8:6O;9:6P;A:5T;B:7L;C:7J;D:7D;E:7C;F:6Q;G:7S;H:46;a7Yb6Jc5Sd5Oe5Mf4Lg43h3Miron0j3Ik3Dl2Xm2Ln2Jo2Hp1ZquietFr1Ms0FtVuTvacuum 1wLyammerEzI;eroAip JonI;e0k0;by,up;aOeLhKiJorIrit5H;d 1k35;mp0n2Xpe0r8s8;eel Dip G;aJiIn2L;gh 0Crd0;n Dr 3S;it 60k8lk6rm 6Bsh 7Lt6Ov53;rgeEsI;e 9herA;aXeVhTiPoNrKuIype 68;ckArn I;d2in,o3Vup;aJiIot0y 2L;ckleFp G;ckFde 02;neFp Is4Q;d2o71up;ck KdJe Igh69me0p o0Kre0;aw3ba4d2in,up;e 60y 1;by,oC;ink Irow 6B;ba4ov7up;aIe 4Vll52;m 1r 01;ckEke Jlk I;ov7u53;aIba4d2in,o3Fup;ba4ft7p58w3;a0Nc0Me0Gh0Ci09l05m04n03o02pXquare WtOuMwI;earKiI;ngJtch I;aw3ba4o75; by;ck Iit 1m 1ss0;in,up;aNe10iMoKrIucH;aigh1ZiI;ke 6En3C;p Irm22;by,in,oC;nHr 1tc3V;cHmp0nd Ir6Xve6y 1;ba4d2up;d2oCup;arHeLiKlJrIurE;ingEuc8;a3Hit 47;l16n 1;e5Qll0;be4Prt0;ap 4Row D;ash 5Doke0;eep JiIow 9;c3Yp 1;in,oI;ff,v7;gn 4WngJt Iz8;d2o5up; al52le0;aKoIu4S;ot Iut0w 6B;aw3ba4f3IoC;cHdeAk56ve6;e Mll0nd LtI; Itl4G;d2in,o5upI;!on;aw3ba4d2in,o2Aup;o5to;al4Zout0rap4Z;il6v8;aTeQiPoLuI;b 4Sle0n Istl8;aIba4d2in5Ho3Tt3Bu3R;c29w3;ll Kot JuI;g2Vnd6;a29f32o5;arBin,o5;ng 51p6;aIel6inAnt0;c5Bd I;o33u0L;cHt0;aVeUiTlRoPrMsyc2JuI;ll Kt I;aIba4d2in,o1Rt3Fup;p3Kw3;ap3Jd2in,o5t3Dup;attleEess JiLoI;p 1;ah1Ron;iIp 5Fr3XurFwer 5F;nt0;ay4BuI;gAmp 9;ck Gg0leEn 9p48;el 4JncilA;c41ir 2Rn0ss KtJy I;ba4oC; d2c27;aw3ba4o1C;pIw3W;e3Vt D;arrowFerd0oI;d6teF;aQeNiMoKuI;ddl8lI;l 3I;cHp 1uth6ve I;al3Md2in,o5up;ss0x 1;asur8lJss I;a1Jup;t 9;ke Jn 9rIs1Sx0;k 9ry6;do,o47up;aVeTiOoIuck0;aMc3Gg LoIse0;k Ise3E;aft7ba4d2forw2Jin45ov7uI;nd7p;in,o0Q;d 9;e LghtKnJsIv1Y;ten G;e 1k 1; 1e36;arBd2;av1Mt 36velI; o3T;c8p 1sh ItchEugh6y20;in3To5;eJick6nock I;d2o3P;eIyA;l 2Pp I;aw3ba4d2fXin,o0Bto,up;aKoJuI;ic8mpA;ke30tF;c39zz 1;aUePiMoJuI;nkerFrry 1s0Z;lIneArse2W;d Ie 1;ba4d2fast,o05up;de Jt I;ba4on,up;aw3o5;aIlp0;d Kl 2Ar It 1;fIof;rom;in,oXu1H;cHm 1nJve Iz25;it,to;d Ig 2EkerK;d2in,o5;aWeQive Oloss 22oKrJunI; f0Q;in3Gow 2A; Iof 0Y;aJb1Dit,oIrBt0Su18;ff,n,v7;bo5ft7hOw3;aw3ba4d2in,oIup,w3;ff,n,ut;a1Dek0t I;aJb17d2oIrBup;ff,n,ut,v7;cJhIl1WrBt,w3;ead;ross;d aJnI;g 1;bo5;a0Ce05iWlSoOrKuI;cHel 1;k 1;eJighten IownEy 1;aw3oC;eIshe1N; 1z8;lKol I;aIwi1G;bo5rB;d 9low 1;aJeIip0;sh0;g 9ke0mIrI;e G;gPlNnLrJsIzzle0;h G;e Im 1;aw3ba4up;d0isI;h 1;e Il 19;aw3fN;ht ba4ure0;eNnJsI;s 1;cKd I;fIoC;or;e D;dWl 1;cMll Irm0t0W;ap05bKd2in,oJtI;hrough;ff,ut,v7;a4ehi20;e J;at0dge0nd Iy8;oCup;oKrI;ess 9op I;aw3bUin,o1D; 0Eubl8;aYhVlean 9oIross Dut 10;me LoJuntI; o1T;k 1l I;d2oC;aObNforLin,oKtJuI;nd7;ogeth7;ut,v7;th,wI;ard;a4y;pIrBw3;art;eIipA;ck DeI;r 1;lOncel0rLsKtch JveA; in;o1Cup;h Dt6;ry JvI;e 01;aw3o18;l ImF;aIba4d2o16up;rBw3;a0Ne0El07oYrNuI;bblKcklZil05lk 9ndlZrn 0Bst JtIy Gzz6;t D;in,o5up;e I;ov7;anReaPiIush6;ghMng I;aJba4d2forIin,o5up;th;bo5lIrBw3;ong;teI;n 1;k I;d2in,o5up;ch0;arPgFil 9n8oLssKttlJunce Ix D;aw3ba4;e 9; arB;k Dt 1;e 1;d2up; d2;d 1;aNeed0oIurt0;cKw I;aw3ba4d2o5up;ck;k I;in,oP;ck0nk0st6; oOaLef 1nd I;d2ov7up;er;up;r0t I;d2in,oIup;ff,ut;ff,nI;to;ck Oil0nKrgJsI;h D;ainEe D;g DkE; on;in,o5; o5;aw3d2o5up;ay;cRdNsk Kuction6; oC;ff;arBo5;ouI;nd;d I;d2oIup;ff,n;own;t G;o5up;ut", - "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ay,ight,ust;an,o0;uld", - "Adjective": "true¦0:7P;1:84;2:83;3:8A;4:7W;5:5S;6:58;7:4O;8:4N;9:81;A:6I;a6Wb6Gc63d5Je54f4Hg49h3Wi39j37k36l2Vm2Ln2Bo1Wp1Dquack,r12s0Ft07uMvJwByear5;arp0eFholeEiDoB;man5oBu6P;d6Rzy;despr7Ls5S;!sa7;eClBste2A;co1Nl o4W;!k5;aCiBola4M;b89ce versa,ol5H;ca3gabo6Gnilla;ltUnHpCrb5Msu4tterB;!mo7G; Eb1SpDsBti1M;ca7etBide dKtairs;!ti2;er,i3U;f36to da1;aLbeco75convin29deIeHfair,ivers4knGprecedVrEsCwB;iel3Nritt6A;i1XuB;pervis0spec3Y;eBu5;cognHgul6Tl6T;own;ndi2v64xpect0;cid0rB;!grou5ZsB;iz0tood;b7pp0Dssu6UuthorB;iz0;i26ra;aGeEhDi6AoCrB;i1oubl0us3M;geth6p,rp6Vuc67;ough4Wril33;en60l32mpBrr2X;o6Ati2;boo,lBn;ent0;aWcVeThSiQmug,nobbi3LoOpNqueami3LtFuBymb6H;bDi gener5DpBrpri6D;erBre0N;! dup6b,i2C;du0seq52;anda77eGiFrBunni2y3F;aightCiB;ki2p0; fBfB;or5K;ll,r5S;aBreotyp0;dfa6Cmi2;a55ec2Gir1Hlend6Cot on; call0le,mb6phist1XrBu0Vvi48;d6Ary;gnifica3nB;ce51g7;am2Re6ocki2ut;cBda1em5lfi32ni1Wpa6Jre8;o1Er42;at5Gient28reec5G;cr0me;aJeEiCoB;bu60tt51uQy4;ghtBv4;!-2BfA;ar,bel,condi1du6Dfres5AlEpublic42sCtard0vB;ea26;is4CoB;lu1na3;aQe1Cuc4A;b5TciBllyi2;al,st;aOeLicayu8lac5Ropuli5QrCuB;bl5Jmp0n51;eGiDoB;!b07fu5RmiBp6;ne3si2;mCor,sBva1;ti8;a53e;ci5MmB;a0EiB;er,um;ac20rBti1;fe9ma2XpleBv38;xi2;rBst;allelDtB;-tiBi4;me;!ed;bLffJkIld fashion0nHpGrg1Eth6utFvB;al,erB;!all,niCt,wB;eiBrouB;ght;do0Ter,g2Qsi4B;en,posi1; boa5Og2Oli8;!ay; gua5MbBli8;eat;eDsB;cBer0Eole1;e8u3O;d2Xse;aJeIiHoBua4X;nFrCtB;ab7;thB;!eB;rn;chala3descri58stop;ght5;arby,cessa44ighbor5xt;k0usia1A;aIeGiDoBultip7;bi7derBl0Vnth5ot,st;a1n;nBx0;dblo0RiaBor;tu37;ande3Qdi4NnaBre;ci2;cBgenta,in,j01keshift,le,mmoth,ny,sculi8;ab33ho;aKeFiCoBu15;uti14vi2;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda3K;!-0C;ngu3Zst,tt6;ap1Xind5no0A;agg0uB;niMstifi0veni7;de4gno4Klleg4mQnEpso 20rB;a1rB;eleBita0J;va3; KaJbr0corIdGfluenQiQnFsEtCviB;go0Fti2;a9en3SoxB;ic3B;a8i2Vul0D;a1er,oce3;iCoB;or;re9;deq3Qppr33;fBsitu,vitro;ro3;mFpB;arDerfe9oBrop6;li1rtB;a3ed;ti4;eBi0S;d2Vn3C;aIeFiDoBumdr3I;ne36ok0rrBs08ur5;if2Z;ghfalut1QspB;an2X;aClB;liYpfA;li2;lEnDrB;d04roB;wi2;dy;f,low0;ainfAener2Oiga24lHoGraDuB;ilBng ho;ty;cCtB;efAis;efA;ne,od;ea2Iob4;aTeNinMlKoFrB;a1VeDoz1MustB;raB;ti2;e2Gq10tfA;oDrB; keeps,eBm6tuna1;g03ign;liB;sh;aBue3;g31tte1P;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i3l27r Cux,voB;ri1uri1;oBreac1E;ff;aLfficie3lKmHnFre9there4veExB;a9cess,pe1QtraCuB;be2Nl0E;!va1E;n,ryday; BcouraEti0O;rou1sui1;erCiB;ne3;gi2;abo23dMe17i1;g6sB;t,ygB;oi2;er;aReJiDoBrea14ue;mina3ne,ubB;le,tfA;dact1Bfficu1OsCvB;er1K;creDeas0gruntl0hone1FordCtB;a3ressM;er5;et; HadpGfFgene1PliDrang0spe1PtCvoB;ut;ail0ermin0;be1Mca1ghB;tfA;ia3;an;facto;i5magBngeroUs0G;ed,i2;ly;ertaMhief,ivil,oDrB;aBowd0u0G;mp0vZz0;loImGnCrrBve0P;e9u1I;cre1fu0LgrDsCtB;empo0Dra0E;ta3;ue3;mer08pleB;te,x;ni4ss4;in;aNeIizarHlFoCrB;and new,isk,okN;gCna fiUttom,urgeoB;is;us;ank,indB;!i2;re;autifAhiDloCnBst,yoD;eUt;v0w;nd;ul;ckCnkru0WrrB;en;!wards; priori,b0Mc0Jd09fra08g04h03lYmWntiquVppSrMsIttracti06utheHvEwB;aCkB;wa0T;ke,re;ant garCerB;age;de;ntU;leep,piDsuDtonB;isB;hi2;ri2;ab,bitEroDtiB;fiB;ci4;ga3;raB;ry;are3etiNrB;oprB;ia1;at0;aJuB;si2;arEcohCeBiIl,oof;rt;olB;ic;mi2;ead;ainDgressiConiB;zi2;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda3;e3oCtra9;ct;lu1rbi2;ng;te;pt;aBve;rd;aze,e;ra3;nt", - "Comparable": "true¦0:41;1:4I;2:45;3:4B;4:3X;5:2Y;a4Ob44c3Od3De35f2Rg2Fh24i1Vj1Uk1Rl1Jm1Dn17o15p0Vqu0Tr0KsTtMuIvFw7y6za13;ell27ou3;aBe9hi1Yi7r6;o3y;ck0Ode,l6n1ry,se;d,y;a6i4Mt;k,ry;n1Tr6sK;m,y;a7e6ulgar;nge4rda2xi3;g9in,st;g0n6pco3Mse4;like0t6;i1r6;ue;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te4;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft5;aAe9iff,r7u6;pXr1;a6ict,o3;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi3;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp5;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p5;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in4le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b5isy,rm15sy;ce,mb5;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt5ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti3;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b5id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te4;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t5uiY;u1y;aIeeb5iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get4mG;my;erce8n6rm;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi3;gey,lm8r6;e4i3;ful;!i3;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i3;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", - "TextValue": "true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th", - "Ordinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", - "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", - "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", - "Adverb": "true¦a08by 06d02eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,well,ye0;p,s; to,wards5;h1iny bit,o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hYtimes,w09;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag02moW; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboU;deed,steV;en0;ce;or2u0;lArther0;!moJ; 0ev3;examp0good,suH;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju8trop;far,n0;ow; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", - "Determiner": "true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er" -}; +var _version = '13.10.0'; var entity = ['Person', 'Place', 'Organization']; var nouns = { @@ -4058,6 +4046,10 @@ var values = { isA: 'Value', notA: ['Ordinal'] }, + Fraction: { + isA: 'Value', + notA: ['Noun'] + }, RomanNumeral: { isA: 'Cardinal', //can be a person, too @@ -4362,6 +4354,58 @@ var build = function build() { var tags = build(); +var _data = { + "Comparative": "true¦better", + "Superlative": "true¦earlier", + "PresentTense": "true¦is,sounds", + "Value": "true¦a few", + "Noun": "true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc", + "Copula": "true¦a1is,w0;as,ere;m,re", + "PastTense": "true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan", + "Condition": "true¦if,lest,unless", + "Preposition": "true¦'o,-,aLbIcHdGexcept,fFiDmidQnotwithstandiRoBpSqua,sAt6u3vi2w0;/o,hereNith0;!in,oR;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n2ut;!f;f,n0;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", + "Gerund": "true¦accord0be0develop0go0result0stain0;ing", + "Negative": "true¦n0;ever,o0;!n,t", + "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", + "Plural": "true¦records", + "Conjunction": "true¦&,aFbBcuz,how9in caEno8o7p5supposing,t2v1wh0yet;eth9ile;ers4s;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", + "Abbreviation": "true¦a0Jb0Gc0Ad08e05f02g01h00iYjWkanVlTmNnKoJpFque,rDs8t6u5v2w0;is0r,y0B;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;ce,e0;l,mp,nn,x;ask,e2fc,gt,i1q,r,s,t,u0;pt,rg;r,tu;c,nJp0;!t;b,d,e0;pGs,v;a,d,ennNhd,l,p,r1s0vt;!eud;ef,o0;b,f,n;ct,kla,nt;e0ov;b0e;!r;a4d,essrs,i1lle,me,r7s0t;!tr;n1s0;c,ter;!n;!j,r,sc;at,it,lb,ng,t0;!d;!s;an,d,r,u0;l,n;a,da,e,n0;c,f;on,wy;a,en,ov;e1ig,l0m,r,t,y;!a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0ist,r;c,f,pt,t;a3ca,l,m2o0pl,res,yn;!l0m1nn,rp;!o;dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v", + "Pronoun": "true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s", + "Singular": "true¦0:15;1:18;2:12;a15b0Sc0Jd0Ce09f04gZhViUjel0kitty,lSmOnNoMpHquestionGrEs9t6u4w3;ay,om02;nc0Zs 3;doll0Kst0M; rex,a4h3ic,ragedy,v show;ere,i1;l0x return;i6ky,omeoMt3uper bowl,yst14;ep4ri1u3;de0Xff;faSmoS;st2ze;al0i1o3;om,se;! mark;a6i2la5r4u3;dPrpoH;eroga00ie0Gobl0U;te,y2;rt,te0N;bjWceJthers,verview;othi1umb2;a5ee08o3;del,m3nopo0rni1th2;!my;n,yf0;i3unch;ne;ci1nsect;ead start,o3uman right;l0me4u3;se;! run;adf0entlem6irl02laci2od,rand4u3;l0y; slam,fa3mo3;th2;an;a6ella,ly,ol0r4un3;di1;ee market,iWo3;nti2sP;mi0th2;conomy,gg,ner7ven4x3;ampTecu9;i1t;ad8e5inn2o3ragonf0ude;cumentGg3i0l0or;gy;ath,t3;ec3;tive;!dy;a9eili1h7i5o3redit card;ttage,u3;ri2sin;ty,vil w3;ar;andeli2ocol3;ate;n3rF;ary;aCel0lesJo8r5u3;n3tterf0;ti1;eakfa4o3;!th2;st;dy,tt5y3;!fri3;end;le;nki1r3;ri2;er;d5l0noma0u3;nt;ly; homin5verti3;si1;ng;em", + "FemaleName": "true¦0:J3;1:J7;2:IG;3:IF;4:IX;5:IK;6:JO;7:H0;8:JK;9:JG;A:HN;B:HY;C:IT;D:JD;E:IP;F:HC;G:I0;aGRbFLcDPdCYeBOfB4gADh9Ti9Gj8Gk7Gl60m49n3No3Jp37qu36r2Ds16t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof2;e3Uf2la,ra;h3iKlIna,ynH;ab,ep;da,ma;da,h3iHra;nab;aKeJi0Fol5BuIvH;etAonDO;i0na;le0sen2;el,gm3Jn,rGJs8W;aoHme0nyi;m62yAE;aMendDYhiDFiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;cIktoriBMlAole7viH;anC3enJ0;kF9tor2;da,lA9nus,rHs0;a,nHoniH4;a,iFQ;leHnesH4;nIHrH;i1y;g9rHxH5;su5te;aYeUhRiNoLrIuHy3;i,la;acIZiHu0L;c2na,sH;hBPta;nHr0H;iBNya;aJffaEOnHs6;a,gtiH;ng;!nFQra;aIeHomasi0;a,l9Po8Ares1;l2ndolwethu;g9Go88rIssH;!a,ie;eHi,ri8;sa,za;bPlNmLnJrIs6tHwa0;ia0um;a63yn;iHya;a,ka,s6;arB6e3iHmEDra;!ka;a,iH;a,t6;at6it6;a0Fcarlet3We0BhXiTkye,neza0oRtNuIyH;bIBlvi1;e,ha,mayIEni7sIzH;an3MetAie,y;anHi8;!a,e,nH;aEe;aJeH;fHl5GphH;an4;cHZr5;b2fiA8m0OnHphi1;d3ia,ja,ya;er3lJmon1nIobh8PtH;a,i;dy;lEPv2;aMeIirHo0risF7y5;a,lDK;ba,e0i5lJrH;iHrDOyl;!d8Hfa;ia,lDX;hd,iMki3nJrIu0w0yH;la,ma,na;i,le9on,ron;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye81vH;da,inj;e0ife;en1i0ma;anA5bNd3Nh1RiBkMlLmJndIrHs6vannaE;aEi0;ra,y;aHi3;nt6ra;lDKma,ome;ee0in8Ru3;in1ri0;a05e00hYiVoIuH;by,thDH;bScRghQl2KnPsJwIxH;anAXie,y;an,e0;aIeHie,lD; merBLann8ll1marDBt7;!lHnn1;iHyn;e,nH;a,d9K;da,i,na;ayy8D;hel62io;bDKer7yn;a,cIkHmas,n9Fta,ya;ki,o;helGki;ea,iannGDoH;da,n1K;an0bJem9Agi0iInHta,y0;a88ee;han83na;a,eH;cEAkaE;bi0chIe,i0mo0nHquEKvCy0;di,ia;aEIelHiB;!e,le;een4ia0;aNeMhKipaluk,oJrHute66;iHudenCQ;scil3LyamvaB;lly,rt2;ilome0oebe,ylH;is,lis;arl,ggy,nelope,r5t3;ige,m0TnKo5rvaDGtIulH;a,etAin1;ricHsy,tBY;a,e,ia;do3i06;ctav2dIfCZis6lHphCZumC3yunbileg;a,ga,iv2;eHvAC;l2tA;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aEeCma;ll1mi;aNcLhariBOkKlaJna,sHta,vi;anHha;ur;!y;a,iDTki;hoGk9VolH;a,eDJ;!mh;hir,lHna,risFsreC;!a,lBT;asuLdKh2i6CnJomi8rgEPtHzanin zah3;aHhal4;li1s6;cy,etA;a,e9iEV;nngu30;a09ckenz4e01iMoJrignayani,uriDDyH;a,rH;a,lNna,tG;bi0i3llBInH;a,iH;ca,ka,qD3;a,cTkaSlNmi,nLrItzi,yH;ar;aIiam,lH;anEO;!l,nB;dy,eHh,n4;nhGrva;aKdJiCPlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5EgNi,lKrH;edi79iIjem,on,yH;em,l;em,sF;an4iHliF;nHsCE;a,da;!an,han;b0DcASd0Be,g09ha,i08ja,l06n04rLsoum60tKuIv82x9IyHz4;a,bell,ra,soB9;de,rH;a,eC;h8Fild1t4;a,cYgUiKjor4l7Sn4s6tJwa,yH;!aHbe6Wja9lAE;m,nBH;a,ha,in1;!aJbCBeIja,lDna,sHt64;!a,ol,sa;!l1H;! Jh,mInH;!a,e,n1;!awit,i;aliAHcJeduarBfernIjHlui5Y;o6Ful2;anB;ecil2la3;arJeIie,oHr44ueriA;!t;!ry;et42i37;el4Ui76y;dHon,ue5;akran7y;ak,en,iHk,lo3O;a,ka,nB;a,re,s4te;daHg4;!l3A;alDd4elHge,isDBon0;ei9in1yn;el,le;a0Ne0CiYoQuLyH;d2la,nH;!a,dIeBGnHsCL;!a,eBF;a,sCJ;aCWcJel0PiFlIna,pHz;e,i7;a,u,wa;iHy;a0Se,ja,l2JnB;is,l1SrJttIuHvel4;el5is1;e,ie;aKeIi8na,rH;a86i8;lHn1t7;ei;!in1;aSbb9CdRepa,lMnJsIv2zH;!a,be5LetAz4;a,etA;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lHy;iHy;aA0e;!aH;!n5F;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx4y5;iHt4;c2t2;e2LlCG;la,nHra;a,ie,o3;a,or1;a,gh,laH;!ni;!h,nH;a,d3e,n5P;cOdon97iNkes6mi9Ana,rMtJurIvHxmi,y5;ern1in2;a,e54ie,yn;as6iIoH;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a04eZhXiOlAKoNrJyH;lHra;a,ee,ie;istHy6D;a,en,iIyH;!na;!e,n59;nul,ri,urtnB0;aOerNlAZmJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stC;!na,ra;aHei3ongordzol;dij1w5;el7QiKjsi,lJnIrH;a,i,ri;d3na,za;ey,i,lBDs4y;ra,s6;bi7cAJdiat7IeB2iRlQmPnyakuma19rNss6KtKvi7yH;!e,lH;a,eH;e,i8L;a6DeIhHi4NlDri0y;ar6Ber6Bie,leCrB2y;!lyn8Gri0;a,en,iHl5Soli0yn;!ma,n3VsF;a5il1;ei8Ei,l4;a,tl6L;a07eYiVoNuH;anLdKliHst63;a8HeHsF;!n9tH;!a,te;e5Ji3Jy;a,i7;!anNcelDd6RelGhan7RlLni,sIva0yH;a,ce;eHie;fHlDph5U;a,in1;eHie;en,n1;!a,e,n41;lHng;!i1ClH;!i1B;anMle0nJrIsH;i8Csi8C;i,ri;!a,elGif2CnH;a,etAiHy;!e,f2A;a,e8EiInH;a,e8DiH;e,n1;cMd1mi,nIque4Xsmin3Ovie3y9zH;min8;a8eIiH;ce,e,n1s;!lHsFt0F;e,le;inIk4lDquelH;in1yn;da,ta;lRmPnOo0rNsIvaHzaro;!a0lu,na;aJiIlaHob84;!n9N;do3;!belHdo3;!a,e,l39;a77en1i0ma;a,di3es,gr6Yji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHusFyacin2B;da,ll4rten23snH;a,i9Q;lImaH;ri;aIdHlaI;a,egard;ry;ath1CiJlInriet7rmi9sH;sa,t1B;en2Sga,mi;di;bi2Dil8IlNnMrJsItHwa,yl8Iz7H;i5St4;n5Yti;iHmo51ri52;etH;!te;aEnaE;a,ey,l4;a03eXiSlQoOrKunJwH;enHyne1Q;!dolD;ay,el;acIetHiselB;a,chC;e,ieH;!la;ld1AogooH;sh;adys,enHor2yn2H;a,da,na;aKgi,lIna,ov89selHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald3Pi,m3Ctru8B;etAi4W;a,eHna;s26vieve;ma;bIil,le,mHrnet,yG;al5Ni5;i5FrielH;a,l1;aVeSiRloOoz2rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0O;n1s61;!ca;!rH;a,encH;e,ia;en,o0;lIn0rnH;!anB;ec2ic2;jr,n7rKtHy8;emIiHma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Nd0Ne0Mi0Lk7l04mWn4YrTsNtMuLvH;aJelIiH;!e,ta;in0Gyn;!ngel2S;geni1la,ni45;h5Sta;mLperanKtH;eIhHrel5;er;l30r8;za;a,eralB;iHma,nest2Jyn;cHka,n;a,ka;a,eMiJmH;aHie,y;!li9;lHn1;ee,iHy;a,e,ja;lHrald;da,y;aWeUiNlMma,no3oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c2da,f,nMsJzaH;!betHve7;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a;!in1na;leCs6;vi;eIiHna,wi0;e,th;l,n;aYeMh2iLjeneKoHul30;lor5Tminiq4In3FrHtt4;a,eCis,la,othHthy;ea,y;ba;an0AnaEon9x4ya;anQbPde,eOiMja,lJmetr2nHsir5K;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6D;dHrdH;re;!d5Cna;!b2HoraEra;a,d3nH;!a,e;hl2i0l0HmNnLphn1rIvi1XyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,etAiH;!ca,el1Cka,z;arHia;is;a0Se0Oh05i03lVoKrIynH;di,th2;istHy05;al,i0;lPnMrIurH;tn1E;aJd2NiHn2Nri9;!nH;a,e,n1;!l1X;cepci59n4sH;tanHuelo;ce,za;eHleC;en,tA;aJeoIotH;il51;!pat3;ir8rJudH;etAiH;a,ne;a,e,iH;ce,sZ;a3er3ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Ren,iHy;!an1e,n1;deJlseIrH;!i8yl;a,y;li9;nMrH;isKlImH;ai9;a,eHotA;n1tA;!sa;d3elGtH;al,elG;cIlH;esAi44;el2ilH;e,ia,y;itlZlYmilXndWrOsMtHy5;aKeJhHri0;erHleCrDy;in1;ri0;li0ri0;a33sH;a32ie;a,iNlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eHie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrH;andSeQiJoIyH;an0nn;nwDok8;an3DdgLg0XtH;n2XtH;!aInH;ey,i,y;ny;etH;!t8;an0e,nH;da,na;i8y;bbi8glarIlo05nH;i7n4;ka;ancHossom,ythe;a,he;an17lja0nHsm3I;i7tH;ou;aUcky,linTni7rPssOtJulaEvH;!erlH;ey,y;hJsy,tH;e,iHy8;e,na;!anH;ie,y;!ie;nHt6yl;adIiH;ce;etAi9;ay,da;!triH;ce,z;rbJyaH;rmH;aa;a3ie,o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn09oi,r04sUtTuPvOwa,yIzH;ra,u0;aKes6gJlIseH;!l;in;un;!nH;a,na;a,i2Ir2J;drJgus1RrIsteH;ja;el2;a,ey,i,y;aahua,he0;hIi2Gja,mi7s2DtrH;id;aMlIraqHt21;at;eIi8yH;!n;e,iHy;gh;!nH;ti;iJleIo6pi7;ta;en,n1tA;aHelG;!n1J;a00dje5eYgUiSjQnJohito,toHya;inetAnH;el5ia;!aKeIiHmJ;e,ka;!mHtA;ar4;!belIliFmU;sa;!le;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tA;te;! JbImHstasiNya;ar2;el;cla3jul2pau5;aLberKeliJiHy;e,l2naH;!ta;a,ja;!ly;hGiIl2nB;da;a,ra;le;aWba,ePiMlKma,thJyH;a,c2sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c2is6jaKksaKna,sJxH;aHia;!nd3;ia,saH;nd3;ra;ia;i0nIyH;ah,na;a,is,naEoud;la;c6da,leCmNnLsH;haElH;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;!gaK;ey,i8y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya", + "Actor": "true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", + "Honorific": "true¦a01bYcQdPeOfiJgIhon,jr,king,lHmCoffic00p7queen,r3s0taoiseach,vice6;e1fc,gt,ir,r,u0;ltRpt,rg;cond liInBrgeaJ;abbi,e0;ar1p9s,v0;!erend; admirX;astOhd,r0vt;esideDi1of0;!essM;me mini4nce0;!ss;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al", + "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", + "Uncountable": "true¦0:1I;1:1X;2:16;a1Rb1Jc1Ad17e10f0Ug0Nh0Ii0Ej0Dknowled1Ql08mYnews,oXpTrOsDt8vi7w3;a5ea0Bi4oo3;d,l;ldlife,ne;rmth,t0;neg17ol0Ctae;e6h5oothpaste,r3una;affTou3;ble,sers,t;ermod1Mund0;a,nnis;aBcene0Aeri2hAil9kittl2now,o8p6t4u3;g10nshi0Q;ati1Le3;am,el;ace1Ee3;ci2ed;ap,cc0;k,v0;eep,ingl2;d0Dfe18l3nd;m11t;a6e4ic3;e,ke0M;c3laxa0Isearch;ogni0Hrea0H;bi2in;aPe5hys1last9o3ress04;l3rk,w0;it1yA;a12trZ;bstetr1il,xygen;aAe8ilk,o5u3;mps,s3;ic;n3o0I;ey,o3;gamy;a3chan1;sl2t;chine3il,themat1; learn0Bry;aught0e5i4ogi0Su3;ck,g0I;ce,ghtn08ngui0QteratN;a3isM;th0;ewelAusti0L;ce,mp3nformaUtself;a3ortan0J;ti3;en0H;a6isto5o3;ck3mework,n3spitali0B;ey;ry;ir,libut,ppiD;ene6o4r3um,ymna0D;aCound;l3ssip;d,f; 3t1;editQpo3;ol;i7lour,o4urnit3;ure;od,rgive3uri0wl;ne3;ss;c9sh;conom1duca8lectr7n5quip6th1very3;body,o3thH;ne;joy3tertain3;ment;iciPon1;tiI;ar4iabet2raugh4;es;ts;aAelcius,h6iv1l5o3urrency;al,ld w3nfusiDttD;ar;ass1oth5;aos,e3;e4w3;ing;se;r7sh;a7eef,i4lood,owls,read,utt0;er;lliar4s3;on;ds;g3ss;ga3;ge;c8dvi7ero5ir4mnes3rt,thlet1;ty;craft;b1d3naut1;ynam1;ce;id,ou3;st1;ics", + "Infinitive": "true¦0:6S;1:76;2:5C;3:74;4:73;5:67;6:6F;7:6Y;8:6Q;9:72;A:70;B:6X;C:5X;D:77;E:6L;F:5B;a6Kb66c57d4De3Xf3Jg3Dh37i2Uj2Sk2Ql2Hm26n23o1Yp1Jr0Rs06tYuTvOwHyG;awn,ield;aJe1Zhist6iIoGre6D;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tEve;n,raD;d0t;aJiHoG;te,w;eGsB;!w;l6Jry;nHpGr4se;gra4Pli41;dGi9lo5Zpub3Q;erGo;mi5Cw1I;aMeLhKig5SoJrHuGwi7;ne,rn;aGe0Mi5Uu7y;de,in,nsf0p,v5J;r2ZuE;ank,reatC;nd,st;lk,rg1Qs9;aZcWeVhTi4Dkip,lSmRnee3Lo52pQtJuGwitE;bmBck,ff0gge7ppHrGspe5;ge,pri1rou4Zvi3;ly,o36;aLeKoJrHuG;dy,mb6;aFeGi3;ngthCss,tE;p,re;m,p;in,ke,r0Qy;la58oil,rink6;e1Zi6o3J;am,ip;a2iv0oG;ck,rtCut;arEem,le5n1r3tt6;aHo2rG;atEew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5V;eGiew,o36;al,l,rG;se,t;aFi2u44;eJi7oItG;!o2rG;i5uc20;l3rt;mb6nt,r3;e7i2;air,eHlGo43r0K;a8y;at;aFemb0i3Zo3;aHeGi3y;a1nt;te,x;a5Dr0J;act1Yer,le5u1;a13ei3k5PoGyc6;gni2Cnci6rd;ch,li2Bs5N;i1nG;ge,k;aTerSiRlOoMrIuG;b21ll,mp,rGsh;cha1s4Q;ai1eIiDoG;cGdu8greAhibBmi1te7vi2W;eAlaim;di5pa2ss,veD;iDp,rtr46sGur;e,t;aHead,uG;g,n4;n,y;ck,le;fo34mBsi7;ck,iDrt4Mss,u1;bJccur,ff0pera9utweIverGwe;co47lap,ta22u1wG;helm;igh;ser3taF;eHotG;e,i8;ed,gle5;aMeLiIoHuG;ltip3Grd0;nit13ve;nHrr12sreprG;eseD;d,g6us;asu2lt,n0Nr4;intaFna4rHtG;ch,t0;ch,kGry;et;aMeLiJoGu1C;aHck,oGve;k,sC;d,n;ft,g35ke,mBnk,st2YveG;!n;a2Fc0Et;b0Nck,uG;gh,nE;iGno34;ck,ll,ss;am,oFuG;d4mp;gno2mQnGss3H;cOdica9flu0MhNsKtIvG;eGol3;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abBibB;lu1Fr1D;agi24pG;lemeDo22ro3;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppCrm,te;aKloAove1PrIuG;arGeAi15;ant39d;aGip,ow,umb6;b,sp;in,th0ze;aReaQiOlMoJrHuncG;ti3J;acGeshC;tu2;cus,lHrG;ce,eca7m,s30;d,l24;a1ZoG;at,od,w;gu2lGni1Xt,x;e,l;r,tu2;il,stCvG;or;a15cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte19;a18eHi2laFoGreA;rt,se;ct,riG;en8;ci1t;el,han4;abGima9;li1J;ab6couXdHfor8ga4han8j03riEsu2t0vG;isi2Vy;!u2;body,er4pG;hasiGow0;ze;a07eUiLoKrHuG;mp;aHeAiG;ft;g,in;d4ubt;ff0p,re5sHvG;iZor8;aKcHliGmiApl1Btingui14;ke;oGuA;uGv0;ra4;gr1YppG;ear,ro3;cOeNfLliv0ma0Fny,pKsHterG;mi0G;cribe,er3iHtrG;oy;gn,re;a0Be0Ai5osB;eGi0By;at,ct;m,pC;iIlHrG;ea1;a2i06;de;ma4n8rGte;e,kC;a0Ae09h06i9l04oJrG;aHeGoAu0Hy;a9dB;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aFin0VrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laF;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen4n4r4se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aSePloOoMrIuG;lGry;ly;igHuG;sh;htC;en;a7mb,o7rrGth0un8;ow;ck;ar,lHnefBtrG;ay;ie3ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waB;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri3;ue;!i3;eaJlIroG;aEve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e4ow;ee;rd;aRdIju7mBoR;it;st;!reA;ss;cJhie3knowled4tiva9;te;ge;ve;eIouDu1;se;nt;pt;on", + "Unit": "true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", + "Organization": "true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c", + "Demonym": "true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an", + "Possessive": "true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne", + "Currency": "true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s", + "City": "true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1ern1Mi0;en2Hlni2Z;lenc2Uncouv0Gr2Gughn;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg", + "Country": "true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an", + "Region": "true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma", + "Place": "true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt,rd;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s", + "WeekDay": "true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", + "Month": "true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il", + "Date": "true¦ago,t2week0yesterd4; e0e0;nd;mr2o0;d0morrow;ay;!w", + "FirstName": "true¦aKblair,cGdevFgabrieEhinaDjBk8l7m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is", + "LastName": "true¦0:9F;1:9V;2:9X;3:9H;4:9N;5:8J;6:9K;7:A0;8:9E;9:88;A:77;B:6E;C:6J;a9Ub8Lc7Kd6Xe6Rf6Dg5Vh58i54j4Pk45l3Nm2Rn2Eo26p1Nquispe,r17s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun7ZiDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s2;b0iss,lt0;a5Rgn0lDng,tanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr0Zss0val37;ba,obos;lasEsel7N;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1JhHi4j6ka3IoGrFsui,uD;om4ZrD;c4n0un1;an,embl8TynisA;dor95lst31m3rr9th;at5Mi7LoD;mErD;are6Ylaci64;ps2s0Y;hirBkah8Dnaka;a00chWeThPiNmKoItFuEvDzabo;en8Aobod34;ar7bot3lliv4zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Psa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmDngh,rbu;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Trra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr3saAto,v3;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Be0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag4es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1W;lishc24pDrti62u55we66;e2Tov48;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5PrEzD;demir,turk;ella3MtDwe5N;ega,iz;iDof6GsC;vDyn1F;ei8;aPri1;aLeJguy1iFoDune44ym4;rodahl,vDwak;ak3Uik5otn56;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray4varD;ro;jiDmu8shiD;ma;aXcVeQiPoIuD;lGnFrDssoli5T;atDpUr68;i,ov3;oz,te4B;d0l0;h4lIo0HrEsDza0Z;er,s;aFeEiDoz5r3Ete4B;!n6F;au,i8no,t4M;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeGij0j2ElFndErci0ssiDyer19;!er;e3Bo2Z;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Ns1;aSeMiIoGuEyD;!nch;k3nDo;d,gu;mbarDpe2Rvr3;di;!nDu,yana1R;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h4iSlQnez46oJrGuEvar4woD;k,n;cerDmar58znets5;a,o2G;aDem0i2Zyeziu;sni3PvD;ch3U;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3Q;huk;!ev3ic,s;e6uiveD;rt;eff0l3mu8nnun1;hn,lloe,minsArEstra31to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Pim0QoEuD;ng,r3;e2JhFnErge2Ju2NvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki26s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0CnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m4ng;a23dz3fEjga2Sk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz3g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aMeorgLheorghe,iJjonIoGrEuDw2;o,staf2Utierr7zm4;ayDg3iffitUub0;li1G;lub3Rme0JnD;calv9zale0I;aj,i;l,mDordaL;en7;iev3B;gnJlGmaFnd2No,rDs2Nuthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erMiIjeldsted,lor9oGrFuD;cDent9ji3F;hs;an1Wiedm4;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnandeVrD;arDei8;a,i;ov3;dHinste6riksCsDva0D;cob2ZpDtra2X;inoDosiM;za;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0YuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g4he0Hmingu7n2Ord19tD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w4;!ov3;gado,ic;th;bo0groot,jo03lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnErw6t2EviD;d5es,s;ieDku1S;ls1;ki;a05e00hNiobMlarkLoFrD;ivDuz;elli;h1lGntFop0rDs26x;byn,reD;a,ia;i,rer0O;em4liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDtterjee,v7;!d,g;ma,raboD;rty;bGl09ng3rD;eghetEnD;a,y;ti;an,ota0M;cer9lder2mpbeIrFstDvadi08;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a09eXhUiSlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nEzD;ev3;co;ancRshwD;as;a01oDuiy4;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b3ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl4yD;aEd6;in;la;aEsl4;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", + "MaleName": "true¦0:E5;1:D6;2:DO;3:AY;4:D2;5:CG;6:CW;7:C8;8:B6;9:DL;A:DK;B:A6;C:C2;aCObBLcAJd9He8Nf85g7Ih6Ui6Ej5Ek52l4Dm35n2To2Np2Fqu2Dr1Ls11t0Eu0Dv07wTxSyIzD;aDor0;cDh9Tkaria,n5W;hEkD;!aCM;ar5WeCL;aLoFuD;sDu2KvBY;if,uf;nFsEusD;ouf,sD;ef;aDg;s,tD;an,h0;hli,nBMssX;avi3ho4;aMeKiFoDyaC2;jcie8Clfgang,odrow,utD;!er;lDnst1;bFey,frD1lD;aBDiD;am,e,s;e9Fur;i,nde8sD;!l7t1;de,lErr9yD;l1ne;lDt3;aAAy;aGiDladimir,ojte7Z;cEha0kt69nceDrgAJva0;!nt;e3Vt67;lentDnA5;in4Y;ghBVlyss5Cnax,sm0;aXeShOiMoHrFuEyD;!l3ro6s1;nAr5C;avAWeDist0oy,um0;ntAOv5Zy;bGdFmDny;!as,mDoharu;aCTie,y;!d;iBy;mDt5;!my,othy;adFeoEia8GomD;!as;!do8P;!de5;dGrD;en9LrD;an9KeDy;ll,n9J;!dy;dgh,ha,iDnn3req,tsu4T;cB5ka;aTcotRePhLiJoHpenc3tDur1Vylve9Kzym1;anFeDua8D;f0phBTvDwa8C;e62ie;!islaw,l7;lom1nBFuD;leyma6ta;dDlBm1yabonga;!dhart7Bn7;aFeD;lDrm0;d1t1;h7Une,qu10un,wn,y6;aDbasti0k2Al4Rrg4Oth,ymoAU;m5n;!tD;!ie,y;lEmDnti2Eq5Bul;!ke5MmCu4;ik,vato7X;aYeUheAAiQoHuEyD;an,ou;b7NdEf5pe7SssD;!elBZ;ol3Fy;an,bKcJdIel,geHh0landBQmGnFry,sEyD;!ce;coe,s;!aAHnC;an,eo;l47r;e5Og3n7olfo,ri7A;co,ky;bCeB7;cDl7;ar6Pc6OhEkDo;!ey,ie,y;a99ie;gEid,ub9x,yDza;an1InY;gA8iD;naA4s;ch70fa4lHmGndFpha4sEul,wi2HyD;an,mo82;h7Vm5;alBDol2Uy;iATon;f,ph;ent2inD;cy,t1;aIeGhilFier72ol,rD;aka16eD;m,st1;!ip,lip;dALrcy,tD;ar,e3Gr1X;b4Kdra7Ft4ZulD;!o17;ctav3Fi3liv3mAFndrej,rHsEtDumAw9;is,to;aEcAkAm0vD;al5Z;ma;i,l53vL;aLeJiFoDu3A;aDel,j5l0ma0r3K;h,m;cEg4i49kD;!au,h7Uola;holBkDolB;!olB;al,d,il,ls1vD;il8Y;hom,thD;anDy;!a4i4;aZeWiMoHuEyD;l2Jr1;hamEr6XstaD;fa,p5C;ed,mH;di0We,hamFis2FntEsDussa;es,he;e,y;ad,ed,mD;ad,ed;cIgu4hai,kGlFnEtchD;!e8;a8Aik;house,o0Bt1;ae5YeA4olD;aj;ah,hDk7;aEeD;al,l;el,l;hElv2rD;le,ri8v2;di,met;ay0ck,hTjd,ks2DlRmadWnQrKs1tFuricExD;!imilian9Nwe8;e,io;eGhEiBtDus,yB;!eo,hew,ia;eDis;us,w;j,o;cHio,kGlFqu7Dsha8tDv2;iDy;!m,n;in,on;!el,oPus;!el9IoOus;iGu4;achDcolm,ik;ai,y;amEdi,eDmoud;sh;adDm5T;ou;aXeQiOlo3EoKuEyD;le,nd1;cGiFkDth3uk;aDe;!s;gi,s,z;as,iaD;no;g0nn7SrenFuDv8Jwe8;!iD;e,s;!zo;am,oD;n4r;a8Cevi,la5JnIoGst3thaFvD;eDi;nte;bo;!nD;!a6Sel;!ny;mFnErDur5Hwr5H;ry,s;ce,d1;ar,o5A;aLeGhaled,iDrist5Iu4Vy6X;er0p,rD;by,k,ollD;os;en0iGnDrmit,v44;!dEnDt5Z;e1Ay;a8ri59;r,th;cp3j5m66na73rEspAthem,uD;ri;im,l;a02eUiSoGuD;an,lDst2;en,iD;an,en,o,us;aNeLhnKkubBnIrGsD;eEhDi8Bue;!ua;!ph;dDge;an,i,on;!aDny;h,s,th5I;!ath5Hie,nC;!l,sDy;ph;o,qu2;an,mD;!mC;d,ffIrFsD;sDus;!e;a6BemEmai6oDry;me,ni0Y;i7Ty;!e60rD;ey,y;cKd9kImHrFsEvi3yD;!d9s1;on,p3;ed,od,rDv56;e5Nod;al,es4Xis1;a,e,oDub;b,v;k,ob,quD;es;aWbQchiPgNkeMlija,nuLonut,rJsFtDv0;ai,suD;ki;aEha0i7DmaDsac;el,il;ac,iaD;h,s;a,vinDw2;!g;k,nngu5S;!r;nacDor;io;ka;ai,rahD;im;aPeJoIuDydA;be2KgGmber4WsD;eyEsD;a2e2;in,n;h,o;m3ra3Gsse2wa4B;aHctGitGnrErD;be2Dm0;iDy;!q11;or;th;bMlLmza,nKo,rFsEyD;a4Jd9;an,s0;lGo50rFuDv7;hi4Gki,tD;a,o;is1y;an,ey;k,s;!im;ib;aVeRiPlenOoLrHuD;ilEsD;!tavo;herme,lerD;mo;aFegDov3;!g,orD;io,y;dy,h5Wnt;nzaErD;an,d1;lo;!n;lbe5Ano,oD;rg3Hvan5A;ne,oFrD;aDry;ld,rd5H;ffr7rge;brEl9rDv2;la28r3Sth,y;e3EielD;!i5;aTePiNlLorr0NrD;anFedDitz;!dCeDri2B;ri2A;cFkD;!ie,lD;in,yn;esLisD;!co,z36;etch3oD;yd;d4lDnn,onn;ip;deriFliEng,rnD;an06;pe,x;co;bi0di,hd;ar04dZfrYit0lSmKnHo2rFsteb0th0uge6vDym9zra;an,eD;ns,re36;gi,i0DnDrol,v2w2;est4Pie;oEriqDzo;ue;ch;aJerIiEmD;aIe2Z;lErD;!h0;!iD;o,s;s1y;nu4;be0Cd1iGliFmEt1viDwood;n,s;er,o;ot1Ys;!as,j4NsD;ha;a2en;!dCgAmGoEuEwD;a2Din;arD;do;o0Wu0W;l,nD;est;a01eRiOoHrGuFwEylD;an,l0;ay6ight;a6dl7nc0st2;ag0ew;minGnEri0ugDvydBy2D;!lB;!a2MnDov0;e8ie,y;go,iDykB;cDk;!k;armuEeDll1on,rk;go;id;anKj0lbeJmetri5nHon,rGsFvEwDxt3;ay6ey;en,in;hawn,mo0B;ek,ri0I;is,nDv3;is,y;rt;!dD;re;an,lNmLnKrGvD;e,iD;! lucDd;as,ca;en,iFne8rDyl;eDin,yl;l3Bn;n,o,us;!e,i4ny;iDon;an,en,on;e,lB;as;a09e07hYiar0lNoIrGuEyrD;il,us;rtD;!is;aDistob0U;ig;dy,lGnErD;ey,neli5y;or,rD;ad;by,e,in,l2t1;aIeFiDyK;fDnt;fo0Ft1;meEt5velaD;nd;nt;rFuEyD;!t1;de;enD;ce;aIeGrisEuD;ck;!tD;i0oph3;st3;er;d,rDs;b4leD;s,y;cDdric,sA;il;lGmer1rD;ey,lEro8y;ll;!os,t1;eb,v2;a07eZiVlaUoRrEuDyr1;ddy,rtK;aLeGiFuEyD;an,ce,on;ce,no;an,ce;nEtD;!t;dEtD;!on;an,on;dEndD;en,on;!foDl7y;rd;bErDyd;is;!by;i6ke;bFlEshD;al;al,lC;ek;nHrDshoi;at,nEtD;!r1C;aDie;rd14;!edict,iEjam2nC;ie,y;to;kaMlazs,nHrD;n7rDt;eDy;tt;ey;dDeE;ar,iD;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il04m00nSputsiRrIsaHuFveEyDziz;a0kh0;ry;gust5st2;us;hi;aKchJiIjun,maHnFon,tDy0;hDu09;ur;av,oD;ld;an,nd0H;!el,ki;ie;ta;aq;as,dIgel0CtD;hoGoD;i6nD;!i09y;ne;ny;er,reDy;!as,i,s,w;iFmaDos;nu4r;el;ne,r,t;an,bePd9eJfHi,lGonFphXt1vD;aNin;on;so,zo;an,en;onTrD;edU;c,jaGksandFssaGxD;!andD;er,ru;ar,er;ndD;ro;rtN;ni;d9mA;ar;en;ad,eD;d,t;in;onD;so;aEi,olfDri0vik;!o;mDn;!a;dHeGraEuD;!bakr,lfazl;hDm;am;!l;allIelFoulaye,ulD;!lDrF;ah,o;! rD;ahm0;an;ah;av,on", + "Person": "true¦ashton kutchTbScNdLeJgastOhHinez,jFkEleDmCnettKoBp9r4s3t2v0;a0irgin maH;lentino rossi,n go3;aylor,heresa may,iger woods,yra banks;addam hussain,carlett johanssKlobodan milosevic,uC;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", + "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", + "PhrasalVerb": "true¦0:7E;1:72;2:7Q;3:7G;4:6V;5:7T;6:7I;7:71;8:6O;9:6P;A:5T;B:7L;C:7J;D:7D;E:7C;F:6Q;G:7S;H:46;a7Yb6Jc5Sd5Oe5Mf4Lg43h3Miron0j3Ik3Dl2Xm2Ln2Jo2Hp1ZquietFr1Ms0FtVuTvacuum 1wLyammerEzI;eroAip JonI;e0k0;by,up;aOeLhKiJorIrit5H;d 1k35;mp0n2Xpe0r8s8;eel Dip G;aJiIn2L;gh 0Crd0;n Dr 3S;it 60k8lk6rm 6Bsh 7Lt6Ov53;rgeEsI;e 9herA;aXeVhTiPoNrKuIype 68;ckArn I;d2in,o3Vup;aJiIot0y 2L;ckleFp G;ckFde 02;neFp Is4Q;d2o71up;ck KdJe Igh69me0p o0Kre0;aw3ba4d2in,up;e 60y 1;by,oC;ink Irow 6B;ba4ov7up;aIe 4Vll52;m 1r 01;ckEke Jlk I;ov7u53;aIba4d2in,o3Fup;ba4ft7p58w3;a0Nc0Me0Gh0Ci09l05m04n03o02pXquare WtOuMwI;earKiI;ngJtch I;aw3ba4o75; by;ck Iit 1m 1ss0;in,up;aNe10iMoKrIucH;aigh1ZiI;ke 6En3C;p Irm22;by,in,oC;nHr 1tc3V;cHmp0nd Ir6Xve6y 1;ba4d2up;d2oCup;arHeLiKlJrIurE;ingEuc8;a3Hit 47;l16n 1;e5Qll0;be4Prt0;ap 4Row D;ash 5Doke0;eep JiIow 9;c3Yp 1;in,oI;ff,v7;gn 4WngJt Iz8;d2o5up; al52le0;aKoIu4S;ot Iut0w 6B;aw3ba4f3IoC;cHdeAk56ve6;e Mll0nd LtI; Itl4G;d2in,o5upI;!on;aw3ba4d2in,o2Aup;o5to;al4Zout0rap4Z;il6v8;aTeQiPoLuI;b 4Sle0n Istl8;aIba4d2in5Ho3Tt3Bu3R;c29w3;ll Kot JuI;g2Vnd6;a29f32o5;arBin,o5;ng 51p6;aIel6inAnt0;c5Bd I;o33u0L;cHt0;aVeUiTlRoPrMsyc2JuI;ll Kt I;aIba4d2in,o1Rt3Fup;p3Kw3;ap3Jd2in,o5t3Dup;attleEess JiLoI;p 1;ah1Ron;iIp 5Fr3XurFwer 5F;nt0;ay4BuI;gAmp 9;ck Gg0leEn 9p48;el 4JncilA;c41ir 2Rn0ss KtJy I;ba4oC; d2c27;aw3ba4o1C;pIw3W;e3Vt D;arrowFerd0oI;d6teF;aQeNiMoKuI;ddl8lI;l 3I;cHp 1uth6ve I;al3Md2in,o5up;ss0x 1;asur8lJss I;a1Jup;t 9;ke Jn 9rIs1Sx0;k 9ry6;do,o47up;aVeTiOoIuck0;aMc3Gg LoIse0;k Ise3E;aft7ba4d2forw2Jin45ov7uI;nd7p;in,o0Q;d 9;e LghtKnJsIv1Y;ten G;e 1k 1; 1e36;arBd2;av1Mt 36velI; o3T;c8p 1sh ItchEugh6y20;in3To5;eJick6nock I;d2o3P;eIyA;l 2Pp I;aw3ba4d2fXin,o0Bto,up;aKoJuI;ic8mpA;ke30tF;c39zz 1;aUePiMoJuI;nkerFrry 1s0Z;lIneArse2W;d Ie 1;ba4d2fast,o05up;de Jt I;ba4on,up;aw3o5;aIlp0;d Kl 2Ar It 1;fIof;rom;in,oXu1H;cHm 1nJve Iz25;it,to;d Ig 2EkerK;d2in,o5;aWeQive Oloss 22oKrJunI; f0Q;in3Gow 2A; Iof 0Y;aJb1Dit,oIrBt0Su18;ff,n,v7;bo5ft7hOw3;aw3ba4d2in,oIup,w3;ff,n,ut;a1Dek0t I;aJb17d2oIrBup;ff,n,ut,v7;cJhIl1WrBt,w3;ead;ross;d aJnI;g 1;bo5;a0Ce05iWlSoOrKuI;cHel 1;k 1;eJighten IownEy 1;aw3oC;eIshe1N; 1z8;lKol I;aIwi1G;bo5rB;d 9low 1;aJeIip0;sh0;g 9ke0mIrI;e G;gPlNnLrJsIzzle0;h G;e Im 1;aw3ba4up;d0isI;h 1;e Il 19;aw3fN;ht ba4ure0;eNnJsI;s 1;cKd I;fIoC;or;e D;dWl 1;cMll Irm0t0W;ap05bKd2in,oJtI;hrough;ff,ut,v7;a4ehi20;e J;at0dge0nd Iy8;oCup;oKrI;ess 9op I;aw3bUin,o1D; 0Eubl8;aYhVlean 9oIross Dut 10;me LoJuntI; o1T;k 1l I;d2oC;aObNforLin,oKtJuI;nd7;ogeth7;ut,v7;th,wI;ard;a4y;pIrBw3;art;eIipA;ck DeI;r 1;lOncel0rLsKtch JveA; in;o1Cup;h Dt6;ry JvI;e 01;aw3o18;l ImF;aIba4d2o16up;rBw3;a0Ne0El07oYrNuI;bblKcklZil05lk 9ndlZrn 0Bst JtIy Gzz6;t D;in,o5up;e I;ov7;anReaPiIush6;ghMng I;aJba4d2forIin,o5up;th;bo5lIrBw3;ong;teI;n 1;k I;d2in,o5up;ch0;arPgFil 9n8oLssKttlJunce Ix D;aw3ba4;e 9; arB;k Dt 1;e 1;d2up; d2;d 1;aNeed0oIurt0;cKw I;aw3ba4d2o5up;ck;k I;in,oP;ck0nk0st6; oOaLef 1nd I;d2ov7up;er;up;r0t I;d2in,oIup;ff,ut;ff,nI;to;ck Oil0nKrgJsI;h D;ainEe D;g DkE; on;in,o5; o5;aw3d2o5up;ay;cRdNsk Kuction6; oC;ff;arBo5;ouI;nd;d I;d2oIup;ff,n;own;t G;o5up;ut", + "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ay,ight,ust;an,o0;uld", + "Adjective": "true¦0:7P;1:84;2:83;3:8A;4:7W;5:5S;6:58;7:4O;8:4N;9:81;A:6I;a6Wb6Gc63d5Je54f4Hg49h3Wi39j37k36l2Vm2Ln2Bo1Wp1Dquack,r12s0Ft07uMvJwByear5;arp0eFholeEiDoB;man5oBu6P;d6Rzy;despr7Ls5S;!sa7;eClBste2A;co1Nl o4W;!k5;aCiBola4M;b89ce versa,ol5H;ca3gabo6Gnilla;ltUnHpCrb5Msu4tterB;!mo7G; Eb1SpDsBti1M;ca7etBide dKtairs;!ti2;er,i3U;f36to da1;aLbeco75convin29deIeHfair,ivers4knGprecedVrEsCwB;iel3Nritt6A;i1XuB;pervis0spec3Y;eBu5;cognHgul6Tl6T;own;ndi2v64xpect0;cid0rB;!grou5ZsB;iz0tood;b7pp0Dssu6UuthorB;iz0;i26ra;aGeEhDi6AoCrB;i1oubl0us3M;geth6p,rp6Vuc67;ough4Wril33;en60l32mpBrr2X;o6Ati2;boo,lBn;ent0;aWcVeThSiQmug,nobbi3LoOpNqueami3LtFuBymb6H;bDi gener5DpBrpri6D;erBre0N;! dup6b,i2C;du0seq52;anda77eGiFrBunni2y3F;aightCiB;ki2p0; fBfB;or5K;ll,r5S;aBreotyp0;dfa6Cmi2;a55ec2Gir1Hlend6Cot on; call0le,mb6phist1XrBu0Vvi48;d6Ary;gnifica3nB;ce51g7;am2Re6ocki2ut;cBda1em5lfi32ni1Wpa6Jre8;o1Er42;at5Gient28reec5G;cr0me;aJeEiCoB;bu60tt51uQy4;ghtBv4;!-2BfA;ar,bel,condi1du6Dfres5AlEpublic42sCtard0vB;ea26;is4CoB;lu1na3;aQe1Cuc4A;b5TciBllyi2;al,st;aOeLicayu8lac5Ropuli5QrCuB;bl5Jmp0n51;eGiDoB;!b07fu5RmiBp6;ne3si2;mCor,sBva1;ti8;a53e;ci5MmB;a0EiB;er,um;ac20rBti1;fe9ma2XpleBv38;xi2;rBst;allelDtB;-tiBi4;me;!ed;bLffJkIld fashion0nHpGrg1Eth6utFvB;al,erB;!all,niCt,wB;eiBrouB;ght;do0Ter,g2Qsi4B;en,posi1; boa5Og2Oli8;!ay; gua5MbBli8;eat;eDsB;cBer0Eole1;e8u3O;d2Xse;aJeIiHoBua4X;nFrCtB;ab7;thB;!eB;rn;chala3descri58stop;ght5;arby,cessa44ighbor5xt;k0usia1A;aIeGiDoBultip7;bi7derBl0Vnth5ot,st;a1n;nBx0;dblo0RiaBor;tu37;ande3Qdi4NnaBre;ci2;cBgenta,in,j01keshift,le,mmoth,ny,sculi8;ab33ho;aKeFiCoBu15;uti14vi2;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda3K;!-0C;ngu3Zst,tt6;ap1Xind5no0A;agg0uB;niMstifi0veni7;de4gno4Klleg4mQnEpso 20rB;a1rB;eleBita0J;va3; KaJbr0corIdGfluenQiQnFsEtCviB;go0Fti2;a9en3SoxB;ic3B;a8i2Vul0D;a1er,oce3;iCoB;or;re9;deq3Qppr33;fBsitu,vitro;ro3;mFpB;arDerfe9oBrop6;li1rtB;a3ed;ti4;eBi0S;d2Vn3C;aIeFiDoBumdr3I;ne36ok0rrBs08ur5;if2Z;ghfalut1QspB;an2X;aClB;liYpfA;li2;lEnDrB;d04roB;wi2;dy;f,low0;ainfAener2Oiga24lHoGraDuB;ilBng ho;ty;cCtB;efAis;efA;ne,od;ea2Iob4;aTeNinMlKoFrB;a1VeDoz1MustB;raB;ti2;e2Gq10tfA;oDrB; keeps,eBm6tuna1;g03ign;liB;sh;aBue3;g31tte1P;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i3l27r Cux,voB;ri1uri1;oBreac1E;ff;aLfficie3lKmHnFre9there4veExB;a9cess,pe1QtraCuB;be2Nl0E;!va1E;n,ryday; BcouraEti0O;rou1sui1;erCiB;ne3;gi2;abo23dMe17i1;g6sB;t,ygB;oi2;er;aReJiDoBrea14ue;mina3ne,ubB;le,tfA;dact1Bfficu1OsCvB;er1K;creDeas0gruntl0hone1FordCtB;a3ressM;er5;et; HadpGfFgene1PliDrang0spe1PtCvoB;ut;ail0ermin0;be1Mca1ghB;tfA;ia3;an;facto;i5magBngeroUs0G;ed,i2;ly;ertaMhief,ivil,oDrB;aBowd0u0G;mp0vZz0;loImGnCrrBve0P;e9u1I;cre1fu0LgrDsCtB;empo0Dra0E;ta3;ue3;mer08pleB;te,x;ni4ss4;in;aNeIizarHlFoCrB;and new,isk,okN;gCna fiUttom,urgeoB;is;us;ank,indB;!i2;re;autifAhiDloCnBst,yoD;eUt;v0w;nd;ul;ckCnkru0WrrB;en;!wards; priori,b0Mc0Jd09fra08g04h03lYmWntiquVppSrMsIttracti06utheHvEwB;aCkB;wa0T;ke,re;ant garCerB;age;de;ntU;leep,piDsuDtonB;isB;hi2;ri2;ab,bitEroDtiB;fiB;ci4;ga3;raB;ry;are3etiNrB;oprB;ia1;at0;aJuB;si2;arEcohCeBiIl,oof;rt;olB;ic;mi2;ead;ainDgressiConiB;zi2;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda3;e3oCtra9;ct;lu1rbi2;ng;te;pt;aBve;rd;aze,e;ra3;nt", + "Comparable": "true¦0:41;1:4I;2:45;3:4B;4:3X;5:2Y;a4Ob44c3Od3De35f2Rg2Fh24i1Vj1Uk1Rl1Jm1Dn17o15p0Vqu0Tr0KsTtMuIvFw7y6za13;ell27ou3;aBe9hi1Yi7r6;o3y;ck0Ode,l6n1ry,se;d,y;a6i4Mt;k,ry;n1Tr6sK;m,y;a7e6ulgar;nge4rda2xi3;g9in,st;g0n6pco3Mse4;like0t6;i1r6;ue;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te4;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft5;aAe9iff,r7u6;pXr1;a6ict,o3;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi3;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp5;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p5;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in4le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b5isy,rm15sy;ce,mb5;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt5ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti3;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b5id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te4;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t5uiY;u1y;aIeeb5iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get4mG;my;erce8n6rm;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi3;gey,lm8r6;e4i3;ful;!i3;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i3;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", + "TextOrdinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", + "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", + "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", + "Adverb": "true¦a08by 06d02eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,well,ye0;p,s; to,wards5;h1iny bit,o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hYtimes,w09;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag02moW; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboU;deed,steV;en0;ce;or2u0;lArther0;!moJ; 0ev3;examp0good,suH;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju8trop;far,n0;ow; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", + "Determiner": "true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er" +}; + var seq = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", cache = seq.split("").reduce(function (n, o, e) { return n[o] = e, n; @@ -4481,104 +4525,153 @@ var unpack_1 = unpack, var efrtUnpack_min = unpack_1$1; -//safely add it to the lexicon -var addWord = function addWord(word, tag, lex) { - if (lex[word] !== undefined) { - if (typeof lex[word] === 'string') { - lex[word] = [lex[word]]; - } - - if (typeof tag === 'string') { - lex[word].push(tag); - } else { - lex[word] = lex[word].concat(tag); - } - } else { - lex[word] = tag; - } -}; // blast-out more forms for some given words - - -var addMore = function addMore(word, tag, world) { - var lexicon = world.words; - var transform = world.transforms; // cache multi-words - - var words = word.split(' '); +//words that can't be compressed, for whatever reason +var misc$1 = { + // numbers + '20th century fox': 'Organization', + // '3m': 'Organization', + '7 eleven': 'Organization', + 'motel 6': 'Organization', + g8: 'Organization', + vh1: 'Organization', + q1: 'Date', + q2: 'Date', + q3: 'Date', + q4: 'Date', + her: ['Possessive', 'Pronoun'], + his: ['Possessive', 'Pronoun'], + their: ['Possessive', 'Pronoun'], + themselves: ['Possessive', 'Pronoun'], + your: ['Possessive', 'Pronoun'], + our: ['Possessive', 'Pronoun'], + my: ['Possessive', 'Pronoun'], + its: ['Possessive', 'Pronoun'] +}; - if (words.length > 1) { - //cache the beginning word - world.hasCompound[words[0]] = true; - } // inflect our nouns +var fancy = { + Unit: function Unit(lex, w) { + lex[w] = ['Abbreviation', 'Unit']; + }, + Cardinal: function Cardinal(lex, w) { + lex[w] = ['TextValue', 'Cardinal']; + }, + TextOrdinal: function TextOrdinal(lex, w) { + lex[w] = ['Ordinal', 'TextValue']; + lex[w + 's'] = ['TextValue', 'Fraction']; // add 'millionths' + }, + // add plural/singular forms + Singular: function Singular(lex, w, world) { + lex[w] = 'Singular'; + var plural = world.transforms.toPlural(w, world); + lex[plural] = lex[plural] || 'Plural'; + }, + // conjugate these verbs + Infinitive: function Infinitive(lex, w, world) { + lex[w] = 'Infinitive'; + var conj = world.transforms.conjugate(w, world); + var tags = Object.keys(conj); + for (var i = 0; i < tags.length; i++) { + var str = conj[tags[i]]; + lex[str] = lex[str] || tags[i]; // only if it's safe + } + }, + // conjugate other Adjectival forms + Comparable: function Comparable(lex, w, world) { + lex[w] = 'Comparable'; + var conj = world.transforms.adjectives(w); + var tags = Object.keys(conj); - if (tag === 'Singular') { - var plural = transform.toPlural(word, world); - lexicon[plural] = lexicon[plural] || 'Plural'; // only if it's safe - } //conjugate our verbs + for (var i = 0; i < tags.length; i++) { + var word = conj[tags[i]]; + lex[word] = lex[word] || tags[i]; // only if it's safe + } + }, + //conjugate phrasal-verbs + PhrasalVerb: function PhrasalVerb(lex, w, world) { + // whole thing + lex[w] = ['PhrasalVerb', 'Infinitive']; //add original form + var words = w.split(' '); // lex[words[0]] = lex[words[0]] || 'Infinitive' + // //conjugate first word - if (tag === 'Infinitive') { - var conj = transform.conjugate(word, world); + var conj = world.transforms.conjugate(words[0], world); var tags = Object.keys(conj); for (var i = 0; i < tags.length; i++) { - var w = conj[tags[i]]; - lexicon[w] = lexicon[w] || tags[i]; // only if it's safe + var str = conj[tags[i]] + ' ' + words[1]; + lex[str] = lex[str] || ['PhrasalVerb', tags[i]]; + world.hasCompound[conj[tags[i]]] = true; } - } //derive more adjective forms + }, + // inflect our demonyms - 'germans' + Demonym: function Demonym(lex, w, world) { + lex[w] = 'Demonym'; + var plural = world.transforms.toPlural(w, world); + lex[plural] = lex[plural] || ['Demonym', 'Plural']; // only if it's safe + } +}; // let a user explode their lexicon, too +var addWords = function addWords(wordsObj, lex, world) { + Object.keys(wordsObj).forEach(function (word) { + var tag = wordsObj[word]; // abbreviation-words are used in our tokenizer - if (tag === 'Comparable') { - var _conj = transform.adjectives(word); + if (tag === 'Abbreviation' || tag === 'Unit') { + world.cache.abbreviations[word] = true; + } // cache multi-words - var _tags = Object.keys(_conj); - for (var _i = 0; _i < _tags.length; _i++) { - var _w = _conj[_tags[_i]]; - lexicon[_w] = lexicon[_w] || _tags[_i]; // only if it's safe - } - } //conjugate phrasal-verbs + var multi = word.split(' '); + if (multi.length > 1) { + world.hasCompound[multi[0]] = true; + } // do some ad-hoc work before adding it - if (tag === 'PhrasalVerb') { - //add original form - addWord(word, 'Infinitive', lexicon); //conjugate first word - var _conj2 = transform.conjugate(words[0], world); + if (fancy[tag] !== undefined) { + fancy[tag](lex, word, world); + return; + } //set it in our lexicon, basic - var _tags2 = Object.keys(_conj2); - for (var _i2 = 0; _i2 < _tags2.length; _i2++) { - //add it to our cache - world.hasCompound[_conj2[_tags2[_i2]]] = true; //first + last words + if (lex[word] === undefined) { + lex[word] = tag; + return; + } // if we already have that word - var _w2 = _conj2[_tags2[_i2]] + ' ' + words[1]; - addWord(_w2, _tags2[_i2], lexicon); - addWord(_w2, 'PhrasalVerb', lexicon); + if (typeof lex[word] === 'string') { + lex[word] = [lex[word]]; } - } // inflect our demonyms - 'germans' + if (typeof tag === 'string') { + lex[word].push(tag); + } else { + lex[word] = lex[word].concat(tag); + } + }); +}; // we do some ad-hoc stuff here, building-up our word-list - if (tag === 'Demonym') { - var _plural = transform.toPlural(word, world); - lexicon[_plural] = lexicon[_plural] || ['Demonym', 'Plural']; // only if it's safe - } -}; // throw a bunch of words in our lexicon -// const doWord = function(words, tag, world) { -// let lexicon = world.words -// for (let i = 0; i < words.length; i++) { -// addWord(words[i], tag, lexicon) -// // do some fancier stuff -// addMore(words[i], tag, world) -// } -// } +var buildOut = function buildOut(world) { + //our bag of words + var lexicon = Object.assign({}, misc$1); // start adding words to the lex + + Object.keys(_data).forEach(function (tag) { + var wordsObj = efrtUnpack_min(_data[tag]); // this part sucks + + Object.keys(wordsObj).forEach(function (w) { + wordsObj[w] = tag; + }); + addWords(wordsObj, lexicon, world); + }); // console.log(Object.keys(lexicon).length) + return lexicon; +}; -var addWords = { - addWord: addWord, - addMore: addMore +var unpack_1$2 = { + buildOut: buildOut, + addWords: addWords }; // add words from plurals and conjugations data @@ -4620,29 +4713,6 @@ var addIrregulars = function addIrregulars(world) { var addIrregulars_1 = addIrregulars; -//words that can't be compressed, for whatever reason -var misc$1 = { - // numbers - '20th century fox': 'Organization', - // '3m': 'Organization', - '7 eleven': 'Organization', - 'motel 6': 'Organization', - g8: 'Organization', - vh1: 'Organization', - q1: 'Date', - q2: 'Date', - q3: 'Date', - q4: 'Date', - her: ['Possessive', 'Pronoun'], - his: ['Possessive', 'Pronoun'], - their: ['Possessive', 'Pronoun'], - themselves: ['Possessive', 'Pronoun'], - your: ['Possessive', 'Pronoun'], - our: ['Possessive', 'Pronoun'], - my: ['Possessive', 'Pronoun'], - its: ['Possessive', 'Pronoun'] -}; - //nouns with irregular plural/singular forms //used in noun.inflect, and also in the lexicon. var plurals = { @@ -6384,7 +6454,7 @@ var World = /*#__PURE__*/function () { // quiet these properties from a console.log Object.defineProperty(this, 'words', { enumerable: false, - value: misc$1, + value: {}, writable: true }); Object.defineProperty(this, 'hasCompound', { @@ -6411,20 +6481,18 @@ var World = /*#__PURE__*/function () { enumerable: false, value: [], writable: true - }); // add our misc word-list - // this.addWords(misc) - // add our compressed data to lexicon - - this.unpackWords(_data); // add our irregulars to lexicon - - addIrregulars_1(this); // cache our abbreviations for our sentence-parser + }); // cache our abbreviations for our sentence-parser Object.defineProperty(this, 'cache', { enumerable: false, value: { - abbreviations: this.getByTag('Abbreviation') + abbreviations: {} } - }); + }); // add our compressed data to lexicon + + this.words = unpack_1$2.buildOut(this); // add our irregulars to lexicon + + addIrregulars_1(this); } /** more logs for debugging */ @@ -6440,59 +6508,19 @@ var World = /*#__PURE__*/function () { value: function isVerbose() { return _isVerbose; } - /** get all terms in our lexicon with this tag */ - - }, { - key: "getByTag", - value: function getByTag(tag) { - var lex = this.words; - var res = {}; - var words = Object.keys(lex); - - for (var i = 0; i < words.length; i++) { - if (typeof lex[words[i]] === 'string') { - if (lex[words[i]] === tag) { - res[words[i]] = true; - } - } else if (lex[words[i]].some(function (t) { - return t === tag; - })) { - res[words[i]] = true; - } - } - - return res; - } - /** augment our lingustic data with new data */ - - }, { - key: "unpackWords", - value: function unpackWords(lex) { - var tags = Object.keys(lex); - - for (var i = 0; i < tags.length; i++) { - var words = Object.keys(efrtUnpack_min(lex[tags[i]])); - - for (var w = 0; w < words.length; w++) { - addWords.addWord(words[w], tags[i], this.words); // do some fancier stuff - - addWords.addMore(words[w], tags[i], this); - } - } - } /** put new words into our lexicon, properly */ }, { key: "addWords", - value: function addWords$1(obj) { - var keys = Object.keys(obj); - - for (var i = 0; i < keys.length; i++) { - var word = keys[i].toLowerCase(); - addWords.addWord(word, obj[keys[i]], this.words); // do some fancier stuff - - addWords.addMore(word, obj[keys[i]], this); - } + value: function addWords(wordObj) { + // clean them up a bit + var cleaned = {}; + Object.keys(wordObj).forEach(function (w) { + var tag = wordObj[w]; + w = w.toLowerCase().trim(); + cleaned[w] = tag; + }); + unpack_1$2.addWords(cleaned, this.words, this); } /** add new custom conjugations */ @@ -9424,7 +9452,7 @@ var startsWith = [//web tags [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/, ['Percent', 'Cardinal', 'NumericValue']], //7% .. [/^\.[0-9]+%$/, ['Percent', 'Cardinal', 'NumericValue']], //.7% .. //fraction -[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, 'Fraction'], //3/2ths +[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, ['Fraction', 'NumericValue']], //3/2ths //range [/^[0-9.]{1,2}[-–][0-9]{1,2}$/, ['Value', 'NumberRange']], //7-8 [/^[0-9.]{1,3}(st|nd|rd|th)?[-–][0-9\.]{1,3}(st|nd|rd|th)?$/, 'NumberRange'], //5-7 @@ -10770,7 +10798,11 @@ var miscCorrection = function miscCorrection(doc) { } // well i've been... - doc.match('^(well|so|okay)').tag('Expression', 'well-'); //been walking + doc.match('^(well|so|okay)').tag('Expression', 'well-'); // 10th of a second + + doc.match('#Value [of a second]', 0).unTag('Value', 'of-a-second'); // 30 seconds + + doc.match('#Value [seconds]', 0).unTag('Value', '30-seconds').tag(['Unit', 'Plural']); //been walking m = hasTag(doc, 'Gerund'); m.match("(be|been) (#Adverb|not)+? #Gerund").not('#Verb$').tag('Auxiliary', 'be-walking'); // directive verb - 'use reverse' diff --git a/changelog.md b/changelog.md index 354a68723..5c972cd95 100644 --- a/changelog.md +++ b/changelog.md @@ -9,9 +9,15 @@ compromise uses semver, and pushes to npm frequently While all _Major_ releases should be reviewed, our only two _large_ releases are **v6** in 2016 and and **v12** in 2019. Others have been mostly incremental, or niche. +#### 13.10.0 [Feb 2021] +- **[new]** - #Fraction tag and improved fraction support (thanks Jakeii!) +- **[fix]** - edge-case match issues with `!` syntax +- **[change]** - update deps +- updates for `compromise-dates@1.4.0`, `compromise-numbers@1.2.0` + #### 13.9.3 [Feb 2021] - **[fix]** - fix weird ordering issue with named exports #815 diff --git a/data/index.js b/data/index.js index 60347271b..ea9b6ab17 100644 --- a/data/index.js +++ b/data/index.js @@ -41,11 +41,11 @@ const data = [ [require('./adjectives/adjectives'), 'Adjective'], [require('./adjectives/comparables'), 'Comparable'], //numbers - [require('./numbers/ordinals'), ['TextValue', 'Ordinal']], - [require('./numbers/cardinals'), ['TextValue', 'Cardinal']], + [require('./numbers/ordinals'), 'TextOrdinal'], + [require('./numbers/cardinals'), 'Cardinal'], //abbreviations [require('./abbreviations/misc'), 'Abbreviation'], - [require('./abbreviations/units'), ['Abbreviation', 'Unit']], + [require('./abbreviations/units'), 'Unit'], [require('./abbreviations/nouns'), ['Abbreviation', 'Noun']], [require('./abbreviations/honorifics'), ['Abbreviation', 'Honorific']], [require('./abbreviations/months'), ['Abbreviation', 'Month']], diff --git a/package-lock.json b/package-lock.json index 5c2908884..c96160a9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "compromise", - "version": "13.9.0", + "version": "13.9.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,19 +20,19 @@ "dev": true }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.17.tgz", + "integrity": "sha512-V3CuX1aBywbJvV2yzJScRxeiiw0v2KZZYYE3giywxzFJL13RiyPjaaDwhDnxmgFTTS7FgvM2ijr4QmKNIu0AtQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", + "@babel/generator": "^7.12.17", + "@babel/helper-module-transforms": "^7.12.17", + "@babel/helpers": "^7.12.17", + "@babel/parser": "^7.12.17", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/traverse": "^7.12.17", + "@babel/types": "^7.12.17", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -69,9 +69,9 @@ } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -82,12 +82,12 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.17.tgz", + "integrity": "sha512-DSA7ruZrY4WI8VxuS1jWSRezFnghEoYEFrZcw9BizQRmOZiUsiHl59+qEARGPqPikwA/GPTyRCi7isuCK/oyqg==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.17", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -99,9 +99,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -127,9 +127,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -156,9 +156,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -169,34 +169,34 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz", - "integrity": "sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.17.tgz", + "integrity": "sha512-5EkibqLVYOuZ89BSg2lv+GG8feywLuvMXNYgf0Im4MssE0mFWPztSpJbildNnUgw0bLI2EsIN4MpSHC2iUJkQA==", "dev": true, "requires": { "@babel/compat-data": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", + "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^5.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", - "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.17.tgz", + "integrity": "sha512-I/nurmTxIxHV0M+rIpfQBF1oN342+yvl2kwZUrQuOClMamHF1w5tknfZubgNOLRoA73SzBFAdFcpb4M9HwOeWQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.17", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-replace-supers": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz", - "integrity": "sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.12.13", @@ -219,9 +219,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -249,9 +249,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -277,9 +277,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -305,9 +305,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -318,12 +318,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.17.tgz", + "integrity": "sha512-Bzv4p3ODgS/qpBE0DiJ9qf5WxSmrQ8gVTe8ClMfwwsY2x/rhykxxy3bXzG7AGTnPB2ij37zGJ/Q/6FruxHxsxg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.17" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -333,9 +333,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -355,9 +355,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.17.tgz", + "integrity": "sha512-sFL+p6zOCQMm9vilo06M4VHuTxUAwa6IxgL56Tq1DVtA0ziAGTH1ThmJq7xwPqdQlgAbKX3fb0oZNbtRIyA5KQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.12.13", @@ -366,8 +366,8 @@ "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/traverse": "^7.12.17", + "@babel/types": "^7.12.17", "lodash": "^4.17.19" }, "dependencies": { @@ -387,9 +387,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -415,9 +415,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -451,9 +451,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -482,9 +482,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -510,9 +510,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -538,9 +538,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -566,9 +566,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -585,9 +585,9 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", "dev": true }, "@babel/helper-wrap-function": { @@ -609,9 +609,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -622,14 +622,14 @@ } }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.17.tgz", + "integrity": "sha512-tEpjqSBGt/SFEsFikKds1sLNChKKGGR17flIgQKXH4fG6m9gTgl3gnOC1giHNyaBCSKuTfxaSzHi7UnvqiVKxg==", "dev": true, "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/traverse": "^7.12.17", + "@babel/types": "^7.12.17" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -639,9 +639,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -671,9 +671,9 @@ } }, "@babel/parser": { - "version": "7.12.14", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", - "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.17.tgz", + "integrity": "sha512-r1yKkiUTYMQ8LiEI0UcQx5ETw5dpTLn9wijn9hk6KkTtOK95FndDN10M+8/s6k/Ymlbivw0Av9q4SlgF80PtHg==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -698,12 +698,12 @@ } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.17.tgz", + "integrity": "sha512-ZNGoFZqrnuy9H2izB2jLlnNDAfVPlGl5NhFEiFe4D84ix9GQGygF+CWMGHKuE+bpyS/AOuDQCnkiRNqW2IzS1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, @@ -779,9 +779,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", - "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.17.tgz", + "integrity": "sha512-TvxwI80pWftrGPKHNfkvX/HnoeSTR7gC4ezWnAL39PuktYUe6r8kEpOLTYnkBTsaoeazXm2jHJ22EQ81sdgfcA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13", @@ -953,9 +953,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1266,19 +1266,19 @@ } }, "@babel/preset-env": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.13.tgz", - "integrity": "sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.17.tgz", + "integrity": "sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==", "dev": true, "requires": { "@babel/compat-data": "^7.12.13", - "@babel/helper-compilation-targets": "^7.12.13", + "@babel/helper-compilation-targets": "^7.12.17", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", + "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-proposal-async-generator-functions": "^7.12.13", "@babel/plugin-proposal-class-properties": "^7.12.13", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.17", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.12.13", "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", @@ -1286,7 +1286,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.12.13", "@babel/plugin-proposal-object-rest-spread": "^7.12.13", "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", - "@babel/plugin-proposal-optional-chaining": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.12.17", "@babel/plugin-proposal-private-methods": "^7.12.13", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0", @@ -1334,7 +1334,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.17", "core-js-compat": "^3.8.0", "semver": "^5.5.0" }, @@ -1355,9 +1355,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1381,9 +1381,9 @@ } }, "@babel/runtime": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", - "integrity": "sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==", + "version": "7.12.18", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", + "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -1427,9 +1427,9 @@ } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1440,17 +1440,17 @@ } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.17.tgz", + "integrity": "sha512-LGkTqDqdiwC6Q7fWSwQoas/oyiEYw6Hqjve5KOSykXkmFJFqzvGMb9niaUEag3Rlve492Mkye3gLw9FTv94fdQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", + "@babel/generator": "^7.12.17", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/parser": "^7.12.17", + "@babel/types": "^7.12.17", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -1483,9 +1483,9 @@ } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz", + "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1567,9 +1567,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz", - "integrity": "sha512-zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz", + "integrity": "sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -1581,12 +1581,12 @@ }, "dependencies": { "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } } @@ -1656,12 +1656,12 @@ } }, "amble": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/amble/-/amble-1.2.0.tgz", - "integrity": "sha512-fiITM1Y0JvXuDQ+Oa0W138Nghw+O5uKQahtcMQymKx0ohNuJj1t89eq4FRohgq8YN6sSJLVerv5ENXiZ3YQPEA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/amble/-/amble-1.3.0.tgz", + "integrity": "sha512-CODkx6oHXpvGTkPechpe9JoZycsQ6xmLrnx4wudkW+gro6HrtAFSThWO5/Nlr0D7UPQolshty9zFVx0890FVbA==", "dev": true, "requires": { - "chokidar": "3.4.3", + "chokidar": "3.5.1", "colorette": "1.2.1" } }, @@ -1751,9 +1751,9 @@ "dev": true }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "brace-expansion": { @@ -1835,9 +1835,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001183", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz", - "integrity": "sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw==", + "version": "1.0.30001191", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", + "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", "dev": true }, "chalk": { @@ -1852,14 +1852,14 @@ } }, "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -1946,12 +1946,12 @@ } }, "core-js-compat": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz", - "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", + "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==", "dev": true, "requires": { - "browserslist": "^4.16.1", + "browserslist": "^4.16.3", "semver": "7.0.0" }, "dependencies": { @@ -2077,9 +2077,9 @@ "integrity": "sha512-9xUSSj7qcUxz+0r4X3+bwUNttEfGfK5AH+LVa1aTpqdAfrN5VhROYCfcF+up4hp5OL7IUKcZJJrzAGipQRDoiQ==" }, "electron-to-chromium": { - "version": "1.3.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.653.tgz", - "integrity": "sha512-LehOhcl74u9fkV9Un6WahJ+Xh+0FZLCCDnKYis1Olx1DX2ugRww5PJicE65OG8yznMj8EOQZRcz6FSV1xKxqsA==", + "version": "1.3.671", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz", + "integrity": "sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ==", "dev": true }, "emoji-regex": { @@ -2249,9 +2249,9 @@ "dev": true }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -2274,9 +2274,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz", - "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -2468,9 +2468,9 @@ } }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-core-module": { @@ -2549,11 +2549,12 @@ } }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -2585,14 +2586,14 @@ } }, "is-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz", - "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", "dev": true, "requires": { "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", "foreach": "^2.0.5", "has-symbols": "^1.0.1" } @@ -2942,12 +2943,12 @@ "dev": true }, "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -3257,18 +3258,18 @@ } }, "rollup": { - "version": "2.38.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.4.tgz", - "integrity": "sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg==", + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.0.tgz", + "integrity": "sha512-+WR3bttcq7zE+BntH09UxaW3bQo3vItuYeLsyk4dL2tuwbeSKJuvwiawyhEnvRdRgrII0Uzk00FpctHO/zB1kw==", "dev": true, "requires": { "fsevents": "~2.3.1" }, "dependencies": { "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true } @@ -3475,14 +3476,14 @@ } }, "string.prototype.trim": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", - "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", + "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.18.0-next.2" } }, "string.prototype.trimend": { @@ -3618,12 +3619,12 @@ } }, "tape": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.1.1.tgz", - "integrity": "sha512-ujhT+ZJPqSGY9Le02mIGBnyWo7Ks05FEGS9PnlqECr3sM3KyV4CSCXAvSBJKMN+t+aZYLKEFUEo0l4wFJMhppQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-5.2.0.tgz", + "integrity": "sha512-J7stlwNrBEpHlZvbvPEAFvMmqIy79kMYvXiyekl5w6O7C2HF63bFKi8su70mdUtZZvNMm7EbIzLyI+fk6U9Ntg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "deep-equal": "^2.0.5", "defined": "^1.0.0", "dotignore": "^0.1.2", @@ -3631,12 +3632,12 @@ "glob": "^7.1.6", "has": "^1.0.3", "inherits": "^2.0.4", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", "minimist": "^1.2.5", "object-inspect": "^1.9.0", "object-is": "^1.1.4", "object.assign": "^4.1.2", - "resolve": "^1.19.0", + "resolve": "^2.0.0-next.3", "resumer": "^0.0.0", "string.prototype.trim": "^1.2.3", "through": "^2.3.8" @@ -3649,12 +3650,12 @@ "dev": true }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } } diff --git a/package.json b/package.json index 913a84a32..6c0ebb0a6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Spencer Kelly (http://spencermounta.in)", "name": "compromise", "description": "modest natural language processing", - "version": "13.9.3", + "version": "13.10.0", "main": "./builds/compromise.js", "unpkg": "./builds/compromise.min.js", "module": "./builds/compromise.mjs", @@ -69,23 +69,23 @@ "efrt-unpack": "2.2.0" }, "devDependencies": { - "@babel/core": "7.12.13", - "@babel/preset-env": "7.12.13", + "@babel/core": "7.12.17", + "@babel/preset-env": "7.12.17", "@rollup/plugin-alias": "3.1.2", "@rollup/plugin-commonjs": "17.1.0", "@rollup/plugin-json": "4.1.0", - "@rollup/plugin-node-resolve": "11.1.1", - "amble": "1.2.0", + "@rollup/plugin-node-resolve": "11.2.0", + "amble": "1.3.0", "codecov": "3.8.1", "efrt": "2.2.2", "nyc": "^15.1.0", - "rollup": "2.38.4", + "rollup": "2.39.0", "rollup-plugin-babel": "4.4.0", "rollup-plugin-filesize-check": "0.0.1", "rollup-plugin-terser": "7.0.2", "shelljs": "0.8.4", "tap-dancer": "0.3.1", - "tape": "5.1.1" + "tape": "5.2.0" }, "eslintIgnore": [ "builds/*.js", diff --git a/plugins/adjectives/package.json b/plugins/adjectives/package.json index a398bc88e..0129b80e8 100644 --- a/plugins/adjectives/package.json +++ b/plugins/adjectives/package.json @@ -32,7 +32,7 @@ "builds/*.js" ], "peerDependencies": { - "compromise": "^12.*.*" + "compromise": ">=12.0.0" }, "dependencies": { "pure-md5": "0.1.13" diff --git a/plugins/dates/README.md b/plugins/dates/README.md index 6e0ea7273..3428d8ca1 100644 --- a/plugins/dates/README.md +++ b/plugins/dates/README.md @@ -140,6 +140,8 @@ const context = { timezone: 'Canada/Eastern', //the default timezone is 'ETC/UTC' today: '2020-02-20', //the implicit, or reference day/year punt: { weeks: 2 }, // the implied duration to use for 'after june 2nd' + dayStart: '8:00am', + dayEndt: '5:30pm' } nlp('in two days') @@ -186,6 +188,21 @@ Units: * **Minute** - '4:32pm' +## API +- **[.dates()](https://observablehq.com/@spencermountain/compromise-dates)** - 'June 2021', 'next week' + - **[.dates().json()](https://observablehq.com/@spencermountain/compromise-dates)** - overloaded output with date metadata + - **[.dates().format('')](https://observablehq.com/@spencermountain/compromise-dates)** - convert the dates to specific formats + - **[.dates().toShortForm()](https://observablehq.com/@spencermountain/compromise-dates)** - convert 'Wednesday' to 'Wed', etc + - **[.dates().toLongForm()](https://observablehq.com/@spencermountain/compromise-dates)** - convert 'Feb' to 'February', etc +- **.durations()** - 'seven days and two hours', '30mins' + - **.json()** - overloaded json output with duration info + - **.get()** - grab parsed duration +- **.times()** - 'three pm', '9 oclock' + - **.json()** - overloaded json output with time info + - **.get()** - grab parsed time + + + ## Opinions ### Start of week @@ -251,4 +268,8 @@ compromise will tag anything that looks like a date, but not validate the dates Work in progress. + +Work on compromise-date is sponsored by [Simform](https://www.simform.com/) + + MIT diff --git a/plugins/dates/builds/compromise-dates.js b/plugins/dates/builds/compromise-dates.js index 1e9d712b3..ef7e89692 100644 --- a/plugins/dates/builds/compromise-dates.js +++ b/plugins/dates/builds/compromise-dates.js @@ -1,4 +1,4 @@ -/* compromise-dates 1.3.1 MIT */ +/* compromise-dates 1.4.0 MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -278,7 +278,7 @@ v = cardinal.match('(q1|q2|q3|q4) [#Cardinal]', 0); tagYear(v, 'in-year-2'); //2nd quarter 2009 - v = cardinal.match('#Ordinal quarter [#Cardinal]', 0); + v = cardinal.match('#Ordinal quarter of? [#Cardinal]', 0); tagYear(v, 'in-year-3'); //in the year 1998 v = cardinal.match('the year [#Cardinal]', 0); @@ -287,7 +287,12 @@ v = cardinal.match('it (is|was) [#Cardinal]', 0); tagYearSafe(v, 'in-year-5'); // re-tag this part - cardinal.match("".concat(sections, " of #Year")).tag('Date'); + cardinal.match("".concat(sections, " of #Year")).tag('Date'); //between 1999 and 1998 + + var _m = cardinal.match('between [#Cardinal] and [#Cardinal]'); + + tagYear(_m.groups('0'), 'between-year-and-year-1'); + tagYear(_m.groups('1'), 'between-year-and-year-2'); } var time = doc["if"]('#Time'); @@ -420,10 +425,13 @@ doc.match('/^[0-9]{2}/[0-9]{2}/').tag('Date', here$3).unTag('Value'); // 3 in the morning - doc.match('[#Value] (in|at) the? (morning|evening|night|nighttime)').tag('Time', here$3); // quarter to seven (not march 5 to 7) + doc.match('[#Value] (in|at) the? (morning|evening|night|nighttime)').tag('Time', here$3); if (doc.has('#Cardinal') && !doc.has('#Month')) { - doc.match('1? (half|quarter|25|15|10|5) (past|after|to) #Cardinal').tag('Time', here$3); + // quarter to seven (not march 5 to 7) + doc.match('1? (half|quarter|25|15|10|5) (past|after|to) #Cardinal').tag('Time', here$3); // ten to seven + + doc.match('(5|10|15|20|five|ten|fifteen|20) (to|after|past) [#Cardinal]').tag('Time', here$3); //add check for 1 to 1 etc. } //timezone @@ -442,8 +450,10 @@ doc.match('(in|for|by|near|at) #Timezone').tag('Timezone', here$3); // 2pm eastern doc.match('#Time [(eastern|mountain|pacific|central)]', 0).tag('Timezone', here$3); - } + } // around four thirty + + doc.match('(at|around|near) [#Cardinal (thirty|fifteen) (am|pm)?]', 0).tag('Time', here$3); return doc; }; @@ -473,6 +483,21 @@ var _05Shifts = shiftTagger; + var tagIntervals = function tagIntervals(doc) { + // july 3rd and 4th + doc.match('#Month #Ordinal and #Ordinal').tag('Date', 'ord-and-ord'); // every other week + + doc.match('every other #Duration').tag('Date', 'every-other'); // every weekend + + doc.match('(every|any|each|a) (day|weekday|week day|weekend|weekend day)').tag('Date', 'any-weekday'); // any-wednesday + + doc.match('(every|any|each|a) (#WeekDay)').tag('Date', 'any-wednesday'); // any week + + doc.match('(every|any|each|a) (#Duration)').tag('Date', 'any-week'); + }; + + var _06Intervals = tagIntervals; + var here$5 = 'fix-tagger'; // var fixUp = function fixUp(doc) { @@ -548,9 +573,11 @@ if (d.has('about #Holiday')) { d.match('about').unTag('#Date', 'about-thanksgiving'); - } // a month from now + } // second quarter of 2020 + d.match('#Ordinal quarter of? #Year').unTag('Fraction'); // a month from now + d.match('(from|by|before) now').unTag('Time'); // dangling date-chunks // if (d.has('!#Date (in|of|by|for) !#Date')) { // d.unTag('Date', 'dangling-date') @@ -563,9 +590,9 @@ return doc; }; - var _06Fixup = fixUp; + var _07Fixup = fixUp; - var methods = [_00Basic, _01Values, _02Dates, _03Sections, _04Time, _05Shifts, _06Fixup]; // normalizations to run before tagger + var methods = [_00Basic, _01Values, _02Dates, _03Sections, _04Time, _05Shifts, _06Intervals, _07Fixup]; // normalizations to run before tagger var normalize = function normalize(doc) { // turn '20mins' into '20 mins' @@ -588,7 +615,8 @@ var _tags = { FinancialQuarter: { - isA: 'Date' + isA: 'Date', + notA: 'Fraction' }, // 'summer' Season: { @@ -626,10 +654,10 @@ return fn(module, module.exports), module.exports; } - /* spencermountain/spacetime 6.12.3 Apache 2.0 */ + /* spencermountain/spacetime 6.12.5 Apache 2.0 */ var spacetime = createCommonjsModule(function (module, exports) { (function (global, factory) { - module.exports = factory() ; + module.exports = factory() ; })(commonjsGlobal, function () { function _slicedToArray(arr, i) { @@ -710,8 +738,7 @@ var inSummerTime = function inSummerTime(epoch, start, end, summerOffset, winterOffset) { var year = new Date(epoch).getUTCFullYear(); var startUtc = toUtc(start, winterOffset, year); - var endUtc = toUtc(end, summerOffset, year); // console.log(epoch, endUtc) - // simple number comparison now + var endUtc = toUtc(end, summerOffset, year); // simple number comparison now return epoch >= startUtc && epoch < endUtc; }; @@ -1175,7 +1202,7 @@ if (startUnit !== s.d.getFullYear()) { s.epoch = original; - } //incriment by day + } //increment by day while (s.d.getMonth() < n) { @@ -3245,10 +3272,11 @@ unit = fns.normalize(unit); if (units$2[unit]) { + // go to beginning, go to next one, step back 1ms s = units$2[unit](s); // startof s = s.add(1, unit); - s = s.subtract(1, 'milliseconds'); + s = s.subtract(1, 'millisecond'); return s; } @@ -4546,7 +4574,13 @@ } var old = this.clone(); - unit = fns.normalize(unit); // support 'fortnight' alias + unit = fns.normalize(unit); + + if (unit === 'millisecond') { + s.epoch += num; + return s; + } // support 'fortnight' alias + if (unit === 'fortnight') { num *= 2; @@ -4559,7 +4593,7 @@ } else if (unit === 'week') { s.epoch += milliseconds.day * (num * 7); } else if (unit === 'quarter' || unit === 'season') { - s.epoch += milliseconds.month * (num * 3.1); //go a little too-far + s.epoch += milliseconds.month * (num * 3); } else if (unit === 'quarterhour') { s.epoch += milliseconds.minute * 15 * num; } //now ensure our milliseconds/etc are in-line @@ -4608,22 +4642,40 @@ if (num !== 0 && old.isSame(s, 'day')) { want.date = old.date() + num; } - } //ensure year has changed (leap-years) - else if (unit === 'year') { - var wantYear = old.year() + num; - var haveYear = s.year(); - - if (haveYear < wantYear) { - s.epoch += milliseconds.day; - } else if (haveYear > wantYear) { - s.epoch += milliseconds.day; + } // ensure a quarter is 3 months over + else if (unit === 'quarter') { + want.month = old.month() + num * 3; + want.year = old.year(); // handle rollover + + if (want.month < 0) { + var years = Math.floor(want.month / 12); + var remainder = want.month + Math.abs(years) * 12; + want.month = remainder; + want.year += years; + } else if (want.month >= 12) { + var _years = Math.floor(want.month / 12); + + want.month = want.month % 12; + want.year += _years; } - } //these are easier - else if (unit === 'decade') { - want.year = s.year() + 10; - } else if (unit === 'century') { - want.year = s.year() + 100; - } //keep current date, unless the month doesn't have it. + + want.date = old.date(); + } //ensure year has changed (leap-years) + else if (unit === 'year') { + var wantYear = old.year() + num; + var haveYear = s.year(); + + if (haveYear < wantYear) { + s.epoch += milliseconds.day; + } else if (haveYear > wantYear) { + s.epoch += milliseconds.day; + } + } //these are easier + else if (unit === 'decade') { + want.year = s.year() + 10; + } else if (unit === 'century') { + want.year = s.year() + 100; + } //keep current date, unless the month doesn't have it. if (keepDate[unit]) { @@ -4635,7 +4687,10 @@ } } - walk_1(s, want); + if (Object.keys(want).length > 1) { + walk_1(s, want); + } + return s; }; //subtract is only add *-1 @@ -4928,7 +4983,7 @@ }; var whereIts_1 = whereIts; - var _version = '6.12.3'; + var _version = '6.12.5'; var main$1 = function main(input, tz, options) { return new spacetime(input, tz, options); @@ -5241,7 +5296,8 @@ var dates = ['weekday', 'summer', 'winter', 'autumn', 'some day', 'one day', 'all day', 'some point', 'eod', 'eom', 'eoy', 'standard time', 'daylight time', 'tommorrow']; - var durations = ['centuries', 'century', 'day', 'days', 'decade', 'decades', 'hour', 'hours', 'hr', 'hrs', 'millisecond', 'milliseconds', 'minute', 'minutes', 'min', 'mins', 'month', 'months', 'seconds', 'sec', 'secs', 'week end', 'week ends', 'weekend', 'weekends', 'week', 'weeks', 'wk', 'wks', 'year', 'years', 'yr', 'yrs', 'quarter', 'quarters', 'qtr', 'qtrs', 'season', 'seasons']; + var durations = ['centuries', 'century', 'day', 'days', 'decade', 'decades', 'hour', 'hours', 'hr', 'hrs', 'millisecond', 'milliseconds', 'minute', 'minutes', 'min', 'mins', 'month', 'months', 'seconds', 'sec', 'secs', 'week end', 'week ends', 'weekend', 'weekends', 'week', 'weeks', 'wk', 'wks', 'year', 'years', 'yr', 'yrs', 'quarter', // 'quarters', + 'qtr', 'qtrs', 'season', 'seasons']; var holidays = ['all hallows eve', 'all saints day', 'all sts day', 'april fools', 'armistice day', 'australia day', 'bastille day', 'boxing day', 'canada day', 'christmas eve', 'christmas', 'cinco de mayo', 'day of the dead', 'dia de muertos', 'dieciseis de septiembre', 'emancipation day', 'grito de dolores', 'groundhog day', 'halloween', 'harvey milk day', 'inauguration day', 'independence day', 'independents day', 'juneteenth', 'labour day', 'national freedom day', 'national nurses day', 'new years eve', 'new years', 'purple heart day', 'rememberance day', 'rosa parks day', 'saint andrews day', 'saint patricks day', 'saint stephens day', 'saint valentines day', 'st andrews day', 'st patricks day', 'st stephens day', 'st valentines day ', 'valentines day', 'valentines', 'veterans day', 'victoria day', 'womens equality day', 'xmas', // Fixed religious and cultural holidays // Catholic + Christian @@ -5266,1172 +5322,1230 @@ }); var words = lex; - var knownUnits = { - second: true, - minute: true, - hour: true, - day: true, - week: true, - weekend: true, - month: true, - season: true, - quarter: true, - year: true - }; - var aliases = { - wk: 'week', - min: 'minute', - sec: 'second', - weekend: 'week' //for now... + var Unit = /*#__PURE__*/function () { + function Unit(input, unit, context) { + _classCallCheck(this, Unit); - }; + this.unit = unit || 'day'; + context = context || {}; + var today = {}; - var parseUnit = function parseUnit(m) { - var unit = m.match('#Duration').text('normal'); - unit = unit.replace(/s$/, ''); // support shorthands like 'min' + if (context.today) { + today = { + date: context.today.date(), + month: context.today.month(), + year: context.today.year() + }; + } // set it to the beginning of the given unit - if (aliases.hasOwnProperty(unit)) { - unit = aliases[unit]; - } - return unit; - }; //turn '5 weeks before' to {weeks:5} + var d = spacetime(input, context.timezone, { + today: today + }); // set to beginning? + // if (d.isValid() && keepTime !== true) { + // d = d.startOf(this.unit) + // } + Object.defineProperty(this, 'd', { + enumerable: false, + writable: true, + value: d + }); + Object.defineProperty(this, 'context', { + enumerable: false, + writable: true, + value: context + }); + } // make a new one - var parseShift = function parseShift(doc) { - var result = {}; - var shift = doc.match('#DateShift+'); - if (shift.found === false) { - return result; - } // '5 weeks' + _createClass(Unit, [{ + key: "clone", + value: function clone() { + var d = new Unit(this.d, this.unit, this.context); + return d; + } + }, { + key: "log", + value: function log() { + console.log('--'); + this.d.log(); + console.log('\n'); + return this; + } + }, { + key: "applyShift", + value: function applyShift() { + var _this = this; + var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + Object.keys(obj).forEach(function (unit) { + _this.d = _this.d.add(obj[unit], unit); + }); + return this; + } + }, { + key: "applyTime", + value: function applyTime(str) { + if (str) { + this.d = this.d.time(str); + } else { + this.d = this.d.startOf('day'); //zero-out time + } - shift.match('#Cardinal #Duration').forEach(function (ts) { - var num = ts.match('#Cardinal').text('normal'); - num = parseFloat(num); + return this; + } + }, { + key: "applyWeekDay", + value: function applyWeekDay(day) { + if (day) { + var epoch = this.d.epoch; + this.d = this.d.day(day); - if (num && typeof num === 'number') { - var unit = parseUnit(ts); + if (this.d.epoch < epoch) { + this.d = this.d.add(1, 'week'); + } + } - if (knownUnits[unit] === true) { - result[unit] = num; + return this; + } + }, { + key: "applyRel", + value: function applyRel(rel) { + if (rel === 'next') { + return this.next(); + } + + if (rel === 'last') { + return this.last(); } + + return this; } - }); //is it 2 weeks ago? → -2 + }, { + key: "applySection", + value: function applySection(section) { + if (section === 'start') { + return this.start(); + } - if (shift.has('(before|ago|hence|back)$') === true) { - Object.keys(result).forEach(function (k) { - return result[k] *= -1; - }); - } + if (section === 'end') { + return this.end(); + } - shift.remove('#Cardinal #Duration'); // supoprt '1 day after tomorrow' + if (section === 'middle') { + return this.middle(); + } - var m = shift.match('[#Duration] [
(after|before)]'); + return this; + } + }, { + key: "format", + value: function format(fmt) { + return this.d.format(fmt); + } + }, { + key: "start", + value: function start() { + this.d = this.d.startOf(this.unit); - if (m.found) { - var unit = m.groups('unit').text('reduced'); // unit = unit.replace(/s$/, '') + if (this.context.dayStart) { + this.d = this.d.time(this.context.dayStart); + } - var dir = m.groups('dir').text('reduced'); + return this; + } + }, { + key: "end", + value: function end() { + this.d = this.d.endOf(this.unit); - if (dir === 'after') { - result[unit] = 1; - } else if (dir === 'before') { - result[unit] = -1; + if (this.context.dayEnd) { + this.d = this.d.time(this.context.dayEnd); + } + + return this; } - } // in half an hour + }, { + key: "middle", + value: function middle() { + var diff = this.d.diff(this.d.endOf(this.unit)); + var minutes = Math.round(diff.minutes / 2); + this.d = this.d.add(minutes, 'minutes'); + return this; + } // the millescond before + }, { + key: "before", + value: function before() { + this.d = this.d.minus(1, this.unit); + this.d = this.d.endOf(this.unit); - m = shift.match('half (a|an) [#Duration]', 0); + if (this.context.dayEnd) { + this.d = this.d.time(this.context.dayEnd); + } - if (m.found) { - var _unit = parseUnit(m); + return this; + } // 'after 2019' - result[_unit] = 0.5; - } // finally, remove it from our text + }, { + key: "after", + value: function after() { + this.d = this.d.add(1, this.unit); + this.d = this.d.startOf(this.unit); + return this; + } // tricky: 'next june' 'next tuesday' + }, { + key: "next", + value: function next() { + this.d = this.d.add(1, this.unit); + this.d = this.d.startOf(this.unit); + return this; + } // tricky: 'last june' 'last tuesday' - doc.remove('#DateShift'); - return result; - }; + }, { + key: "last", + value: function last() { + this.d = this.d.minus(1, this.unit); + this.d = this.d.startOf(this.unit); + return this; + } + }]); - var _01Shift = parseShift; + return Unit; + }(); - /* - a 'counter' is a Unit determined after a point - * first hour of x - * 7th week in x - * last year in x - * - unlike a shift, like "2 weeks after x" - */ - var oneBased = { - minute: true - }; + var Unit_1 = Unit; - var getCounter = function getCounter(doc) { - // 7th week of - var m = doc.match('[#Value] [#Duration+] (of|in)'); + var Day = /*#__PURE__*/function (_Unit) { + _inherits(Day, _Unit); - if (m.found) { - var obj = m.groups(); - var num = obj.num.text('reduced'); - var unit = obj.unit.text('reduced'); - var found = { - unit: unit, - num: Number(num) || 0 - }; // 0-based or 1-based units + var _super = _createSuper(Day); - if (!oneBased[unit]) { - found.num -= 1; + function Day(input, unit, context) { + var _this; + + _classCallCheck(this, Day); + + _this = _super.call(this, input, unit, context); + _this.unit = 'day'; + + if (_this.d.isValid()) { + _this.d = _this.d.startOf('day'); } - doc = doc.remove(m); - return found; - } // first week of + return _this; + } + return Day; + }(Unit_1); // like 'feb 2' - m = doc.match('[(first|initial|last|final)] [#Duration+] (of|in)'); - if (m.found) { - var _obj = m.groups(); + var CalendarDate = /*#__PURE__*/function (_Day) { + _inherits(CalendarDate, _Day); - var dir = _obj.dir.text('reduced'); + var _super2 = _createSuper(CalendarDate); - var _unit = _obj.unit.text('reduced'); + function CalendarDate(input, unit, context) { + var _this2; - if (dir === 'initial') { - dir = 'first'; - } + _classCallCheck(this, CalendarDate); - if (dir === 'final') { - dir = 'last'; + _this2 = _super2.call(this, input, unit, context); + _this2.unit = 'day'; + + if (_this2.d.isValid()) { + _this2.d = _this2.d.startOf('day'); } - var _found = { - unit: _unit, - dir: dir - }; - doc = doc.remove(m); - return _found; + return _this2; } - return {}; - }; + _createClass(CalendarDate, [{ + key: "next", + value: function next() { + this.d = this.d.add(1, 'year'); + return this; + } + }, { + key: "last", + value: function last() { + this.d = this.d.minus(1, 'year'); + return this; + } + }]); - var _02Counter = getCounter; + return CalendarDate; + }(Day); - var hardCoded = { - daybreak: '7:00am', - //ergh - breakfast: '8:00am', - morning: '9:00am', - noon: '12:00pm', - midday: '12:00pm', - afternoon: '2:00pm', - lunchtime: '12:00pm', - evening: '6:00pm', - dinnertime: '6:00pm', - night: '8:00pm', - eod: '10:00pm', - midnight: '12:00am' - }; + var WeekDay = /*#__PURE__*/function (_Day2) { + _inherits(WeekDay, _Day2); - var halfPast = function halfPast(m, s) { - var hour = m.match('#Cardinal$').text('reduced'); - var term = m.match('(half|quarter|25|15|10|5)'); - var mins = term.text('reduced'); + var _super3 = _createSuper(WeekDay); - if (term.has('half')) { - mins = '30'; - } + function WeekDay(input, unit, context) { + var _this3; - if (term.has('quarter')) { - mins = '15'; - } + _classCallCheck(this, WeekDay); - var behind = m.has('to'); // apply it + _this3 = _super3.call(this, input, unit, context); + _this3.unit = 'week'; // is the input just a weekday? - s = s.hour(hour); - s = s.startOf('hour'); // assume 'half past 5' is 5pm + if (typeof input === 'string') { + _this3.d = spacetime(context.today, context.timezone); + _this3.d = _this3.d.day(input); // assume a wednesday in the future - if (hour < 6) { - s = s.ampm('pm'); - } + if (_this3.d.isBefore(context.today)) { + _this3.d = _this3.d.add(7, 'days'); + } + } else { + _this3.d = input; + } - if (behind) { - s = s.subtract(mins, 'minutes'); - } else { - s = s.add(mins, 'minutes'); + _this3.weekDay = _this3.d.dayName(); + + if (_this3.d.isValid()) { + _this3.d = _this3.d.startOf('day'); + } + + return _this3; } - return s; - }; + _createClass(WeekDay, [{ + key: "clone", + value: function clone() { + //overloaded method + return new WeekDay(this.d, this.unit, this.context); + } + }, { + key: "end", + value: function end() { + //overloaded method + this.d = this.d.endOf('day'); - var parseTime = function parseTime(doc, context) { - var time = doc.match('(at|by|for|before|this)? #Time+'); + if (this.context.dayEnd) { + this.d = this.d.time(this.context.dayEnd); + } - if (time.found) { - doc.remove(time); - } // get the main part of the time + return this; + } + }, { + key: "next", + value: function next() { + this.d = this.d.add(7, 'days'); + this.d = this.d.day(this.weekDay); + return this; + } + }, { + key: "last", + value: function last() { + this.d = this.d.minus(7, 'days'); + this.d = this.d.day(this.weekDay); + return this; + } + }]); + return WeekDay; + }(Day); // like 'haloween' - time = time.not('^(at|by|for|before|this)'); - time = time.not('sharp'); - time = time.not('on the dot'); - var s = spacetime.now(context.timezone); - var now = s.clone(); // check for known-times (like 'today') - var timeStr = time.text('reduced'); + var Holiday = /*#__PURE__*/function (_CalendarDate) { + _inherits(Holiday, _CalendarDate); - if (hardCoded.hasOwnProperty(timeStr)) { - return hardCoded[timeStr]; - } // '5 oclock' + var _super4 = _createSuper(Holiday); + function Holiday(input, unit, context) { + var _this4; - var m = time.match('^#Cardinal oclock (am|pm)?'); + _classCallCheck(this, Holiday); - if (m.found) { - m = m.not('oclock'); - s = s.hour(m.text('reduced')); - s = s.startOf('hour'); + _this4 = _super4.call(this, input, unit, context); + _this4.unit = 'day'; - if (s.isValid() && !s.isEqual(now)) { - return s.time(); + if (_this4.d.isValid()) { + _this4.d = _this4.d.startOf('day'); } - } // 'quarter to two' + return _this4; + } - m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal'); + return Holiday; + }(CalendarDate); - if (m.found) { - s = halfPast(m, s); + var _day = { + Day: Day, + WeekDay: WeekDay, + CalendarDate: CalendarDate, + Holiday: Holiday + }; - if (s.isValid() && !s.isEqual(now)) { - return s.time(); - } - } // '4 in the evening' + var AnyMonth = /*#__PURE__*/function (_Unit) { + _inherits(AnyMonth, _Unit); + var _super = _createSuper(AnyMonth); - m = time.match('[(after|before)]'); + + if (m.found) { + var unit = m.groups('unit').text('reduced'); // unit = unit.replace(/s$/, '') + + var dir = m.groups('dir').text('reduced'); + + if (dir === 'after') { + result[unit] = 1; + } else if (dir === 'before') { + result[unit] = -1; } - }, { - key: "last", - value: function last() { - this.d = this.d.minus(7, 'days'); - this.d = this.d.day(this.weekDay); - return this; + } // in half an hour + + + m = shift.match('half (a|an) [#Duration]', 0); + + if (m.found) { + var _unit = parseUnit(m); + + result[_unit] = 0.5; + } // finally, remove it from our text + + + doc.remove('#DateShift'); + return result; + }; + + var _01Shift = parseShift; + + /* + a 'counter' is a Unit determined after a point + * first hour of x + * 7th week in x + * last year in x + * + unlike a shift, like "2 weeks after x" + */ + var oneBased = { + minute: true + }; + + var getCounter = function getCounter(doc) { + // 7th week of + var m = doc.match('[#Value] [#Duration+] (of|in)'); + + if (m.found) { + var obj = m.groups(); + var num = obj.num.text('reduced'); + var unit = obj.unit.text('reduced'); + var found = { + unit: unit, + num: Number(num) || 0 + }; // 0-based or 1-based units + + if (!oneBased[unit]) { + found.num -= 1; } - }]); - return WeekDay; - }(Day); // like 'haloween' + doc = doc.remove(m); + return found; + } // first week of - var Holiday = /*#__PURE__*/function (_CalendarDate) { - _inherits(Holiday, _CalendarDate); + m = doc.match('[(first|initial|last|final)] [#Duration+] (of|in)'); - var _super4 = _createSuper(Holiday); + if (m.found) { + var _obj = m.groups(); - function Holiday(input, unit, context) { - var _this4; + var dir = _obj.dir.text('reduced'); - _classCallCheck(this, Holiday); + var _unit = _obj.unit.text('reduced'); - _this4 = _super4.call(this, input, unit, context); - _this4.unit = 'day'; + if (dir === 'initial') { + dir = 'first'; + } - if (_this4.d.isValid()) { - _this4.d = _this4.d.startOf('day'); + if (dir === 'final') { + dir = 'last'; } - return _this4; + var _found = { + unit: _unit, + dir: dir + }; + doc = doc.remove(m); + return _found; } - return Holiday; - }(CalendarDate); + return {}; + }; - var _day = { - Day: Day, - WeekDay: WeekDay, - CalendarDate: CalendarDate, - Holiday: Holiday + var _02Counter = getCounter; + + var hardCoded = { + daybreak: '7:00am', + //ergh + breakfast: '8:00am', + morning: '9:00am', + noon: '12:00pm', + midday: '12:00pm', + afternoon: '2:00pm', + lunchtime: '12:00pm', + evening: '6:00pm', + dinnertime: '6:00pm', + night: '8:00pm', + eod: '10:00pm', + midnight: '12:00am' }; - var AnyMonth = /*#__PURE__*/function (_Unit) { - _inherits(AnyMonth, _Unit); + var halfPast = function halfPast(m, s) { + var hour = m.match('#Cardinal$').text('reduced'); + var term = m.match('(half|quarter|25|15|10|5)'); + var mins = term.text('reduced'); - var _super = _createSuper(AnyMonth); + if (term.has('half')) { + mins = '30'; + } - function AnyMonth(input, unit, context) { - var _this; + if (term.has('quarter')) { + mins = '15'; + } - _classCallCheck(this, AnyMonth); + var behind = m.has('to'); // apply it - _this = _super.call(this, input, unit, context); - _this.unit = 'month'; // set to beginning + s = s.hour(hour); + s = s.startOf('hour'); // assume 'half past 5' is 5pm - if (_this.d.isValid()) { - _this.d = _this.d.startOf(_this.unit); - } + if (hour < 6) { + s = s.ampm('pm'); + } - return _this; + if (behind) { + s = s.subtract(mins, 'minutes'); + } else { + s = s.add(mins, 'minutes'); } - return AnyMonth; - }(Unit_1); // a specific month, like 'March' + return s; + }; + var parseTime = function parseTime(doc, context) { + var time = doc.match('(at|by|for|before|this)? #Time+'); - var Month = /*#__PURE__*/function (_Unit2) { - _inherits(Month, _Unit2); + if (time.found) { + doc.remove(time); + } // get the main part of the time - var _super2 = _createSuper(Month); - function Month(input, unit, context) { - var _this2; + time = time.not('^(at|by|for|before|this)'); + time = time.not('sharp'); + time = time.not('on the dot'); + var s = spacetime.now(context.timezone); + var now = s.clone(); // check for known-times (like 'today') - _classCallCheck(this, Month); + var timeStr = time.text('reduced'); - _this2 = _super2.call(this, input, unit, context); - _this2.unit = 'month'; // set to beginning + if (hardCoded.hasOwnProperty(timeStr)) { + return hardCoded[timeStr]; + } // '5 oclock' - if (_this2.d.isValid()) { - _this2.d = _this2.d.startOf(_this2.unit); - } - return _this2; - } + var m = time.match('^#Cardinal oclock (am|pm)?'); - _createClass(Month, [{ - key: "next", - value: function next() { - this.d = this.d.add(1, 'year'); - this.d = this.d.startOf('month'); - return this; - } - }, { - key: "last", - value: function last() { - this.d = this.d.minus(1, 'year'); - this.d = this.d.startOf('month'); - return this; + if (m.found) { + m = m.not('oclock'); + s = s.hour(m.text('reduced')); + s = s.startOf('hour'); + + if (s.isValid() && !s.isEqual(now)) { + var ampm = m.match('(am|pm)').text('reduced'); + s = s.ampm(ampm); + return s.time(); } - }]); + } // 'quarter to two' - return Month; - }(Unit_1); - var AnyQuarter = /*#__PURE__*/function (_Unit3) { - _inherits(AnyQuarter, _Unit3); + m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal'); - var _super3 = _createSuper(AnyQuarter); + if (m.found) { + s = halfPast(m, s); - function AnyQuarter(input, unit, context) { - var _this3; + if (s.isValid() && !s.isEqual(now)) { + return s.time(); + } + } // '4 in the evening' - _classCallCheck(this, AnyQuarter); - _this3 = _super3.call(this, input, unit, context); - _this3.unit = 'quarter'; // set to beginning + m = time.match('[(after|before)]')\n if (m.found) {\n let unit = m.groups('unit').text('reduced')\n // unit = unit.replace(/s$/, '')\n let dir = m.groups('dir').text('reduced')\n if (dir === 'after') {\n result[unit] = 1\n } else if (dir === 'before') {\n result[unit] = -1\n }\n }\n // in half an hour\n m = shift.match('half (a|an) [#Duration]', 0)\n if (m.found) {\n let unit = parseUnit(m)\n result[unit] = 0.5\n }\n // finally, remove it from our text\n doc.remove('#DateShift')\n return result\n}\nmodule.exports = parseShift\n","/*\na 'counter' is a Unit determined after a point\n * first hour of x\n * 7th week in x\n * last year in x\n * \nunlike a shift, like \"2 weeks after x\"\n*/\nconst oneBased = {\n minute: true,\n}\nconst getCounter = function (doc) {\n // 7th week of\n let m = doc.match('[#Value] [#Duration+] (of|in)')\n if (m.found) {\n let obj = m.groups()\n let num = obj.num.text('reduced')\n let unit = obj.unit.text('reduced')\n let found = {\n unit: unit,\n num: Number(num) || 0,\n }\n // 0-based or 1-based units\n if (!oneBased[unit]) {\n found.num -= 1\n }\n doc = doc.remove(m)\n return found\n }\n // first week of\n m = doc.match('[(first|initial|last|final)] [#Duration+] (of|in)')\n if (m.found) {\n let obj = m.groups()\n let dir = obj.dir.text('reduced')\n let unit = obj.unit.text('reduced')\n if (dir === 'initial') {\n dir = 'first'\n }\n if (dir === 'final') {\n dir = 'last'\n }\n let found = {\n unit: unit,\n dir: dir,\n }\n doc = doc.remove(m)\n return found\n }\n\n return {}\n}\nmodule.exports = getCounter\n","const spacetime = require('spacetime')\n\nconst hardCoded = {\n daybreak: '7:00am', //ergh\n breakfast: '8:00am',\n morning: '9:00am',\n noon: '12:00pm',\n midday: '12:00pm',\n afternoon: '2:00pm',\n lunchtime: '12:00pm',\n evening: '6:00pm',\n dinnertime: '6:00pm',\n night: '8:00pm',\n eod: '10:00pm',\n midnight: '12:00am',\n}\n\nconst halfPast = function (m, s) {\n let hour = m.match('#Cardinal$').text('reduced')\n\n let term = m.match('(half|quarter|25|15|10|5)')\n let mins = term.text('reduced')\n if (term.has('half')) {\n mins = '30'\n }\n if (term.has('quarter')) {\n mins = '15'\n }\n let behind = m.has('to')\n // apply it\n s = s.hour(hour)\n s = s.startOf('hour')\n // assume 'half past 5' is 5pm\n if (hour < 6) {\n s = s.ampm('pm')\n }\n if (behind) {\n s = s.subtract(mins, 'minutes')\n } else {\n s = s.add(mins, 'minutes')\n }\n return s\n}\n\nconst parseTime = function (doc, context) {\n let time = doc.match('(at|by|for|before|this)? #Time+')\n if (time.found) {\n doc.remove(time)\n }\n // get the main part of the time\n time = time.not('^(at|by|for|before|this)')\n time = time.not('sharp')\n time = time.not('on the dot')\n let s = spacetime.now(context.timezone)\n let now = s.clone()\n\n // check for known-times (like 'today')\n let timeStr = time.text('reduced')\n if (hardCoded.hasOwnProperty(timeStr)) {\n return hardCoded[timeStr]\n }\n\n // '5 oclock'\n let m = time.match('^#Cardinal oclock (am|pm)?')\n if (m.found) {\n m = m.not('oclock')\n s = s.hour(m.text('reduced'))\n s = s.startOf('hour')\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n\n // 'quarter to two'\n m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal')\n if (m.found) {\n s = halfPast(m, s)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n // '4 in the evening'\n m = time.match('[*] (through|thru) [*]',\n // parse: (m, context) => {\n // let from = m.groups('a')\n // let to = m.groups('b')\n // from = parseDate(from, context)\n // to = parseDate(to, context)\n // if (from && to) {\n // return {\n // start: from,\n // end: to.end(),\n // }\n // }\n // return null\n // },\n // },\n\n // {\n // // 'A until B' (not inclusive end)\n // match: 'from? [*] (to|until|upto) [*]',\n // parse: (m, context) => {\n // let from = m.groups('a')\n // let to = m.groups('b')\n // from = parseDate(from, context)\n // to = parseDate(to, context)\n // if (from && to) {\n // return {\n // start: from,\n // end: to.end(),\n // }\n // }\n // return null\n // },\n // },\n\n {\n // 'before june'\n match: '^due? (by|before) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n let start = new Unit(context.today, null, context)\n if (start.d.isAfter(unit.d)) {\n start = unit.clone().applyShift({ weeks: -2 })\n }\n // end the night before\n let end = unit.clone().applyShift({ day: -1 })\n return {\n start: start,\n end: end.end(),\n }\n }\n return null\n },\n },\n\n {\n // 'in june'\n match: '^(on|in|at|@) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n return { start: unit, end: unit.clone().end() }\n }\n return null\n },\n },\n\n {\n // 'after june'\n match: '^(after|following) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n unit = unit.after()\n return {\n start: unit.clone(),\n end: punt(unit.clone(), context),\n }\n }\n return null\n },\n },\n {\n // 'in june'\n match: '^(on|during|in|during) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n return {\n start: unit,\n end: unit.clone().end(),\n }\n }\n return null\n },\n },\n]\n","const parseDate = require('../parseDate/parse')\nconst ranges = require('./ranges')\n\n// loop thru each range template\nconst parseRange = function (doc, context) {\n // try each template in order\n for (let i = 0; i < ranges.length; i += 1) {\n let fmt = ranges[i]\n let m = doc.match(fmt.match)\n if (m.found) {\n if (fmt.group !== undefined) {\n m = m.groups(fmt.group)\n }\n let res = fmt.parse(m, context)\n if (res !== null) {\n // console.log(fmt.match)\n return res\n }\n }\n }\n //else, try whole thing\n let unit = parseDate(doc, context)\n if (unit) {\n return {\n start: unit,\n end: unit.clone().end(),\n }\n }\n return {\n start: null,\n end: null,\n }\n}\nmodule.exports = parseRange\n","const normalize = function (doc) {\n doc = doc.clone()\n if (!doc.numbers) {\n console.warn(\"Compromise: compromise-dates cannot find plugin dependency 'compromise-number'\")\n } else {\n // convert 'two' to 2\n let num = doc.numbers()\n num.toNumber()\n num.toCardinal(false)\n // num.normalize()\n }\n // // expand 'aug 20-21'\n doc.contractions().expand()\n // // remove adverbs\n doc.adverbs().remove()\n // // 'week-end'\n doc.replace('week end', 'weekend').tag('Date')\n // // 'a up to b'\n doc.replace('up to', 'upto').tag('Date')\n // 'in a few years'\n let m = doc.match('in [a few] #Duration')\n if (m.found) {\n m.groups('0').replaceWith('2')\n m.tag('DateShift')\n }\n return doc\n}\nmodule.exports = normalize\n","const spacetime = require('spacetime')\nconst parseRanges = require('./02-ranges')\nconst normalize = require('./normalize')\n\nconst getDate = function (doc, context) {\n // validate context a bit\n context = context || {}\n context.timezone = context.timezone || 'ETC/UTC'\n context.today = spacetime(context.today || null, context.timezone)\n //turn 'five' into 5..\n doc = normalize(doc)\n //interpret 'between [A] and [B]'...\n return parseRanges(doc, context)\n}\nmodule.exports = getDate\n","let arr = [\n ['mon', 'monday'],\n ['tue', 'tuesday'],\n ['tues', 'tuesday'],\n ['wed', 'wednesday'],\n ['thu', 'thursday'],\n ['thurs', 'thursday'],\n ['fri', 'friday'],\n ['sat', 'saturday'],\n ['sun', 'sunday'],\n\n ['jan', 'january'],\n ['feb', 'february'],\n ['mar', 'march'],\n ['apr', 'april'],\n ['jun', 'june'],\n ['jul', 'july'],\n ['aug', 'august'],\n ['sep', 'september'],\n ['sept', 'september'],\n ['oct', 'october'],\n ['nov', 'november'],\n ['dec', 'december'],\n]\n\narr = arr.map(a => {\n return { short: a[0], long: a[1] }\n})\n\nmodule.exports = arr\n","const parse = require('./find')\nconst abbrevs = require('./data/_abbrevs')\n\nmodule.exports = {\n /** overload the original json with date information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n let format = options.format || 'iso'\n this.forEach((doc) => {\n let json = doc.json(options)[0]\n let obj = parse(doc, this.context)\n let start = obj.start ? obj.start.format(format) : null\n let end = obj.end ? obj.end.format(format) : null\n // set iso strings to json result\n json.date = {\n start: start,\n end: end,\n }\n // add duration\n if (start && end) {\n json.date.duration = obj.start.d.diff(obj.end.d)\n // we don't need these\n delete json.date.duration.milliseconds\n delete json.date.duration.seconds\n }\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n\n /** render all dates according to a specific format */\n format: function (fmt) {\n this.forEach((doc) => {\n let obj = parse(doc, this.context)\n let str = ''\n if (obj.start) {\n str = obj.start.format(fmt)\n if (obj.end) {\n let end = obj.start.format(fmt)\n if (str !== end) {\n str += ' to ' + end\n }\n }\n doc.replaceWith(str, { keepTags: true, keepCase: false })\n }\n })\n return this\n },\n /** replace 'Fri' with 'Friday', etc*/\n toLongForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.short, a.long, true)\n })\n return this\n },\n /** replace 'Friday' with 'Fri', etc*/\n toShortForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.long, a.short, true)\n })\n return this\n },\n}\n","const known = {\n century: true,\n day: true,\n decade: true,\n hour: true,\n millisecond: true,\n minute: true,\n month: true,\n second: true,\n weekend: true,\n week: true,\n year: true,\n quarter: true,\n season: true,\n}\n\nlet mapping = {\n hr: 'hour',\n min: 'minute',\n sec: 'second',\n 'week end': 'weekend',\n wk: 'week',\n yr: 'year',\n qtr: 'quarter',\n}\n// add plurals\nObject.keys(mapping).forEach((k) => {\n mapping[k + 's'] = mapping[k]\n})\n\nconst parse = function (doc) {\n let duration = {}\n //parse '8 minutes'\n doc.match('#Value+ #Duration').forEach((m) => {\n let num = m.numbers().get(0)\n let unit = m.match('#Duration').nouns().toSingular().text()\n // turn 'mins' into 'minute'\n if (mapping.hasOwnProperty(unit)) {\n unit = mapping[unit]\n }\n if (known.hasOwnProperty(unit) && num) {\n duration[unit] = num\n }\n })\n return duration\n}\nmodule.exports = parse\n","const parse = require('./parse')\n\nconst methods = {\n /** overload the original json with duration information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n this.forEach((doc) => {\n let json = doc.json(options)\n json.duration = parse(doc)\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n /** change to a standard duration format */\n normalize: function () {\n this.forEach((doc) => {\n let duration = parse(doc)\n let list = []\n Object.keys(duration).forEach((unit) => {\n let num = duration[unit]\n let word = unit\n if (num !== 1) {\n word += 's'\n }\n list.push(`${num} ${word}`)\n })\n // splice-in an 'and'\n if (list.length > 1) {\n let beforeEnd = list.length - 1\n list.splice(beforeEnd, 0, 'and')\n }\n let text = list.join(' ')\n doc.replaceWith(text)\n })\n return this\n },\n}\n\nconst addDurations = function (Doc) {\n /** phrases like '2 months', or '2mins' */\n class Durations extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = {}\n }\n }\n //add-in methods\n Object.assign(Durations.prototype, methods)\n\n /** phrases like '2 months' */\n Doc.prototype.durations = function (n) {\n let m = this.match('#Value+ #Duration and? #Value+? #Duration?')\n if (typeof n === 'number') {\n m = m.get(n)\n }\n return new Durations(m.list, this, this.world)\n }\n}\nmodule.exports = addDurations\n","const tagger = require('./01-tagger')\nconst tags = require('./data/_tags')\nconst words = require('./data/words')\nconst methods = require('./methods')\nconst addDurations = require('./durations')\nconst spacetime = require('spacetime')\n\nconst opts = {\n punt: { weeks: 2 },\n}\n\nconst addMethods = function (Doc, world) {\n // our new tags\n world.addTags(tags)\n // add info for the date plugin\n world.addWords(words)\n // run our tagger\n world.postProcess(tagger)\n\n // add .durations() class + methods\n addDurations(Doc, world)\n\n /** phraes like 'nov 2nd' or 'on tuesday' */\n class Dates extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = opts\n }\n }\n //add-in methods\n Object.assign(Dates.prototype, methods)\n\n Doc.prototype.dates = function (n) {\n let context = {}\n if (n && typeof n === 'object') {\n context = n\n n = null\n }\n context = Object.assign({}, context, opts)\n // let r = this.clauses()\n let dates = this.match('#Date+')\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n let d = new Dates(dates.list, this, this.world)\n if (context.today) {\n context.today = spacetime(context.today, context.timezone)\n }\n d.context = context\n return d\n }\n}\n\nmodule.exports = addMethods\n"],"names":["preps","thisNext","sections","seasons","tagYear","m","reason","found","forEach","p","str","text","num","parseInt","tag","tagYearSafe","tagDates","doc","match","month","val","ifNo","duration","unTag","season","date","not","cardinal","v","time","here","values","has","replaceWith","dateTagger","sectionTagger","timeTagger","notIf","shiftTagger","fixUp","oops","d","knownDate","lastTerm","terms","methods","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","normalize","numbers","tagDate","fn","FinancialQuarter","isA","Season","Year","notA","Duration","Holiday","Timezone","DateShift","global","factory","module","this","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","Array","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_i","_s","next","done","push","value","length","err","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","name","from","test","len","arr2","TypeError","MSEC_IN_HOUR","toUtc","dstChange","offset","year","_dstChange$split","split","_dstChange$split2","rest","_rest$split","_rest$split2","day","hour","Date","UTC","inSummerTime","epoch","start","end","summerOffset","winterOffset","getUTCFullYear","startUtc","endUtc","summerTime","quickOffset","s","zones","timezones","obj","tz","console","warn","dst","jul","dec","hem","inSummer","quick","_build","_build$1","freeze","__proto__","_prefixes","createCommonjsModule","exports","getCjsExportFromNamespace","data","all","keys","k","Number","names","replace","before","unpack","fallbackTZ","safeIntl","Intl","DateTimeFormat","format","resolvedOptions","timezone","timeZone","toLowerCase","guessTz","guessTz_1","isOffset","isNumber","utcOffset","gmtOffset","toIana","parseOffset","parseOffset_1","local","cities","reduce","h","city","lookupTz","error","trim","hasOwnProperty","id","Error","find","millisecond","second","minute","week","milliseconds","walk","unit","previous","current","startUnit","original","diff","Math","abs","halfStep","units","valid","walkTo","getMonth","getFullYear","seconds","wants","old","clone","silent","walk_1","shortMonths","longMonths","buildMapping","sep","months","short","long","mapping","set","i18n","parseOffset$1","parseFloat","parseOffset_1$1","parseTime","arguments","startOf","concat","substring","ampm","_h","parseTime_1","monthLengths","monthLengths_1","fns","isLeapYear","isDate","isNaN","valueOf","input","isObject","isBoolean","zeroPad","pad","join","titleCase","toUpperCase","substr","ordinal","j","toCardinal","String","getEpoch","tmp","getTime","beADate","formatTimezone","delimiter","sign","absOffset","hours","minutes","hasDate","max","hasDate_1","months$1","parseYear","today","strFmt","reg","parse","givenTz","options","british","_today","quarter","getDate","strParse","getNow","now","dates","tonight","tomorrow","add","yesterday","subtract","christmas","newYears","namedDates","minimumEpoch","defaults","handleArray","order","handleObject","assign","parseInput","res","isValid","_res","shortDays","longDays","days","aliases","tues","thur","thurs","titleCaseEnabled","caseFormat","useTitleCase","isoOffset","_offset","applyCaseFormat","dayName","dayShort","dayNumber","dayOrdinal","dayPad","dateOrdinal","datePad","monthName","monthShort","monthNumber","monthOrdinal","monthPad","isoMonth","yearShort","isoYear","isNegative","time24","hour24","hour12","hourPad","hour24Pad","minutePad","secondPad","era","json","numeric","numericUs","numericUk","mmDd","iso","h24","ms","isoShort","isoUtc","toISOString","nice","nice24","niceYear","niceDay","niceFull","niceFull24","mdy","dmy","ymd","printFormat","out","indexOf","_","fmt","_out","format_1","G","GG","GGG","GGGG","y","yy","yyy","yyyy","yyyyy","Q","QQ","QQQ","QQQQ","M","MM","MMM","MMMM","w","ww","dd","D","dayOfYear","DD","DDD","E","EE","EEE","EEEE","EEEEE","e","ee","eee","eeee","eeeee","a","aa","aaa","aaaa","h12","hh","H","HH","mm","ss","A","z","zz","zzz","zzzz","Z","ZZ","ZZZ","ZZZZ","addAlias","_char","to","toName","escapeChars","filter","ch","combineRepeated","c","map","unixFmt","txt","unixFmt_1","units$1","doUnit","endOf","percent","toFixed","progress","progress_1","nearest","prog","nearest_1","climb","b","isBefore","isAfter","diffOne","one","fastYear","years","msDiff","weeks","waterfall","reverseDiff","main","reversed","diff$1","qualifiers","almost","over","getDiff","later","earlier","isSame","u","pluralize","since","isNow","every","rounded","qualified","precise","englishValues","englishValue","nextUnit","nextValue","splice","since_1","north","south","quarters","units$2","quarterhour","_weekStart","q","hemisphere","decade","century","startOf_1","isDay","result","every_1","parseDst","epochShift","hasDst","Boolean","default_offset","change","back","summer","winter","isDST","timezone_1","units$3","input$1","hasDST","leapYear","last","goto","isAwake","isAsleep","log","logYear","_this","debug","fromNow","weekStart","inDST","round","each","methods_1","isLeapYear$1","validate","confirm","want","shift","sec","methods$1","getMilliseconds","getSeconds","getMinutes","getHours","hourFloat","_minute","_hour","which","dayTime","times","morning","breakfast","noon","lunch","afternoon","evening","dinner","night","midnight","_01Time","methods$2","getDay","_02Date","clearMinutes","methods$3","sum","setDate","setFullYear","setHours","setMinutes","setMonth","toAdd","minus","thisOne","skipWeeks","_month","floor","millenium","_03Year","methods$4","addMethods","Space","query","isLeapYear$2","getMonthLength","rollMonth","_years","rollDaysDown","rollDaysUp","_model","daysBack","order$1","keep","dstAwareUnits","keepDate","addMethods$1","SpaceTime","_sum","wantYear","haveYear","plus","print","addMethods$2","tzAware","same","addMethods$3","isEqual","isBetween","isInclusive","startEpoch","endEpoch","compare","addMethods$4","defineProperty","get","bias","getTimezoneOffset","toLocalDate","spacetime","whereIts","startHour","endHour","tzs","whereIts_1","_version","main$1","setToday","extend","version","plugin","src","america","asia","europe","africa","aus","pac","informal","bst","ireland","cet","cest","eet","eest","trt","etc","utc","gmt","sast","acst","acdt","aest","aedt","awst","awdt","acwst","lhst","lhdt","msk","russian","cst","cdt","mst","mdt","ast","adt","est","edt","pst","pdt","ahst","ahdt","hst","nst","ndt","brt","brasília","brasilia","amt","east","easst","vet","pyt","pyst","cot","clst","cldt","uyt","ist","irst","irdt","iranian","pkt","ict","ct","almt","yakt","gst","uae","hkt","wib","wita","idt","israeli","krat","myt","sgt","kst","uzt","vlat","mvt","mut","mht","sst","chst","pgt","iana","formal","lex","knownUnits","weekend","wk","min","parseUnit","parseShift","ts","remove","groups","dir","oneBased","getCounter","hardCoded","daybreak","midday","lunchtime","dinnertime","eod","halfPast","term","mins","behind","context","timeStr","desc","g","parseRelative","rel","parseSection","parseTimezone","Unit","enumerable","writable","section","middle","Day","CalendarDate","WeekDay","weekDay","AnyMonth","Month","AnyQuarter","Quarter","Week","WeekEnd","Hour","Minute","Moment","knownWord","eom","eoy","tommorrow","tmrw","define","feb","apr","oct","parseHoliday","spacetimeHoliday","milliscond","instant","yr","qtr","hr","matchStr","nextLast","Model","fmtToday","parseYearly","parseExplicit","impliedYear","applyCounter","counter","tokens","relative","holiday","require$$7","require$$8","yearly","require$$9","explicit","require$$10","transform","require$$11","parseDate","applyShift","applyRel","applySection","applyTime","punt","append","year2","prepend","fromDate","toDate","group","after","parseRange","ranges","toNumber","contractions","expand","adverbs","parseRanges","keepTags","keepCase","toLongForm","abbrevs","toShortForm","known","nouns","toSingular","list","word","beforeEnd","addDurations","Doc","Durations","durations","world","opts","addTags","tags","addWords","words","postProcess","tagger","Dates"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"compromise-dates.js","sources":["../src/01-tagger/00-basic.js","../src/01-tagger/01-values.js","../src/01-tagger/02-dates.js","../src/01-tagger/03-sections.js","../src/01-tagger/04-time.js","../src/01-tagger/05-shifts.js","../src/01-tagger/06-intervals.js","../src/01-tagger/07-fixup.js","../src/01-tagger/index.js","../src/data/_tags.js","../node_modules/spacetime/builds/spacetime.js","../src/data/_timezones.js","../src/data/words/dates.js","../src/data/words/durations.js","../src/data/words/holidays.js","../src/data/words/times.js","../src/data/words/index.js","../src/parseDate/units/Unit.js","../src/parseDate/units/_day.js","../src/parseDate/units/_year.js","../src/parseDate/units/_week.js","../src/parseDate/units/_time.js","../src/parseDate/units/index.js","../src/parseDate/01-tokenize/01-shift.js","../src/parseDate/01-tokenize/02-counter.js","../src/parseDate/01-tokenize/03-time.js","../src/parseDate/01-tokenize/04-relative.js","../src/parseDate/01-tokenize/05-section.js","../src/parseDate/01-tokenize/06-timezone.js","../src/parseDate/01-tokenize/07-weekday.js","../src/parseDate/02-parse/01-today.js","../node_modules/spacetime-holiday/builds/spacetime-holiday.js","../src/parseDate/02-parse/02-holidays.js","../src/parseDate/02-parse/03-next-last.js","../src/parseDate/02-parse/04-yearly.js","../src/parseDate/02-parse/05-explicit.js","../src/parseDate/03-transform/addCounter.js","../src/parseDate/parse.js","../src/02-ranges/intervals.js","../src/02-ranges/ranges.js","../src/02-ranges/index.js","../src/normalize.js","../src/generate.js","../src/parse.js","../src/data/_abbrevs.js","../src/methods.js","../src/durations/parse.js","../src/durations/index.js","../src/times/parse.js","../src/times/index.js","../src/index.js"],"sourcesContent":["//ambiguous 'may' and 'march'\nconst preps = '(in|by|before|during|on|until|after|of|within|all)' //6\nconst thisNext = '(last|next|this|previous|current|upcoming|coming)' //2\nconst sections = '(start|end|middle|starting|ending|midpoint|beginning)' //2\nconst seasons = '(spring|summer|winter|fall|autumn)'\n\n//ensure a year is approximately typical for common years\n//please change in one thousand years\nconst tagYear = (m, reason) => {\n if (m.found !== true) {\n return\n }\n m.forEach((p) => {\n let str = p.text('reduced')\n let num = parseInt(str, 10)\n if (num && num > 1000 && num < 3000) {\n p.tag('Year', reason)\n }\n })\n}\n//same, but for less-confident values\nconst tagYearSafe = (m, reason) => {\n if (m.found !== true) {\n return\n }\n m.forEach((p) => {\n let str = p.text('reduced')\n let num = parseInt(str, 10)\n if (num && num > 1900 && num < 2030) {\n p.tag('Year', reason)\n }\n })\n}\n\nconst tagDates = function (doc) {\n // in the evening\n doc.match('in the (night|evening|morning|afternoon|day|daytime)').tag('Time', 'in-the-night')\n // 8 pm\n doc.match('(#Value|#Time) (am|pm)').tag('Time', 'value-ampm')\n // 22-aug\n // doc.match('/^[0-9]{2}-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov)/').tag('Date', '20-jan')\n // 2012-06\n doc.match('/^[0-9]{4}-[0-9]{2}$/').tag('Date', '2012-06')\n\n // misc weekday words\n doc.match('(tue|thu)').tag('WeekDay', 'misc-weekday')\n\n //months:\n let month = doc.if('#Month')\n if (month.found === true) {\n //June 5-7th\n month.match(`#Month #Date+`).tag('Date', 'correction-numberRange')\n //5th of March\n month.match('#Value of #Month').tag('Date', 'value-of-month')\n //5 March\n month.match('#Cardinal #Month').tag('Date', 'cardinal-month')\n //march 5 to 7\n month.match('#Month #Value to #Value').tag('Date', 'value-to-value')\n //march the 12th\n month.match('#Month the #Value').tag('Date', 'month-the-value')\n }\n\n //months:\n let val = doc.if('#Value')\n if (val.found === true) {\n //june 7\n val.match('(#WeekDay|#Month) #Value').ifNo('#Money').tag('Date', 'date-value')\n\n //7 june\n val.match('#Value (#WeekDay|#Month)').ifNo('#Money').tag('Date', 'value-date')\n\n //may twenty five\n val.match('#TextValue #TextValue').if('#Date').tag('#Date', 'textvalue-date')\n\n //two thursdays back\n val.match('#Value (#WeekDay|#Duration) back').tag('#Date', '3-back')\n\n //eg 'year'\n let duration = val.if('#Duration')\n if (duration.found === true) {\n //for 4 months\n duration.match('for #Value #Duration').tag('Date', 'for-x-duration')\n //two days before\n duration.match('#Value #Duration #Conjunction').tag('Date', 'val-duration-conjunction')\n //for four days\n duration.match(`${preps}? #Value #Duration`).tag('Date', 'value-duration')\n //two years old\n duration.match('#Value #Duration old').unTag('Date', 'val-years-old')\n }\n }\n\n //seasons\n let season = doc.if(seasons)\n if (season.found === true) {\n season.match(`${preps}? ${thisNext} ${seasons}`).tag('Date', 'thisNext-season')\n season.match(`the? ${sections} of ${seasons}`).tag('Date', 'section-season')\n season.match(`${seasons} ${preps}? #Cardinal`).tag('Date', 'season-year')\n }\n\n //rest-dates\n let date = doc.if('#Date')\n if (date.found === true) {\n //june the 5th\n date.match('#Date the? #Ordinal').tag('Date', 'correction')\n //last month\n date.match(`${thisNext} #Date`).tag('Date', 'thisNext')\n //by 5 March\n date.match('due? (by|before|after|until) #Date').tag('Date', 'by')\n //next feb\n date.match('(last|next|this|previous|current|upcoming|coming|the) #Date').tag('Date', 'next-feb')\n //start of june\n date.match(`the? ${sections} of #Date`).tag('Date', 'section-of')\n //fifth week in 1998\n date.match('#Ordinal #Duration in #Date').tag('Date', 'duration-in')\n //early in june\n date.match('(early|late) (at|in)? the? #Date').tag('Time', 'early-evening')\n //tomorrow before 3\n date.match('#Date (by|before|after|at|@|about) #Cardinal').not('^#Date').tag('Time', 'date-before-Cardinal')\n //saturday am\n date.match('#Date [(am|pm)]', 0).unTag('Verb').unTag('Copula').tag('Time', 'date-am')\n //feb to june\n date.match('#Date (#Preposition|to) #Date').ifNo('#Duration').tag('Date', 'date-prep-date')\n //2nd quarter of 2019\n // date.match('#Date of #Date').tag('Date', 'date-of-date')\n }\n\n //year/cardinal tagging\n let cardinal = doc.if('#Cardinal')\n if (cardinal.found === true) {\n let v = cardinal.match(`#Date #Value [#Cardinal]`, 0)\n tagYear(v, 'date-value-year')\n //scoops up a bunch\n v = cardinal.match(`#Date [#Cardinal]`, 0)\n tagYearSafe(v, 'date-year')\n //middle of 1999\n v = cardinal.match(`${sections} of [#Cardinal]`)\n tagYearSafe(v, 'section-year')\n //feb 8 2018\n v = cardinal.match(`#Month #Value [#Cardinal]`, 0)\n tagYear(v, 'month-value-year')\n //feb 8 to 10th 2018\n v = cardinal.match(`#Month #Value to #Value [#Cardinal]`, 0)\n tagYear(v, 'month-range-year')\n //in 1998\n v = cardinal.match(`(in|of|by|during|before|starting|ending|for|year|since) [#Cardinal]`, 0)\n tagYear(v, 'in-year-1')\n //q2 2009\n v = cardinal.match('(q1|q2|q3|q4) [#Cardinal]', 0)\n tagYear(v, 'in-year-2')\n //2nd quarter 2009\n v = cardinal.match('#Ordinal quarter of? [#Cardinal]', 0)\n tagYear(v, 'in-year-3')\n //in the year 1998\n v = cardinal.match('the year [#Cardinal]', 0)\n tagYear(v, 'in-year-4')\n //it was 1998\n v = cardinal.match('it (is|was) [#Cardinal]', 0)\n tagYearSafe(v, 'in-year-5')\n // re-tag this part\n cardinal.match(`${sections} of #Year`).tag('Date')\n //between 1999 and 1998\n let m = cardinal.match('between [#Cardinal] and [#Cardinal]')\n tagYear(m.groups('0'), 'between-year-and-year-1')\n tagYear(m.groups('1'), 'between-year-and-year-2')\n }\n\n let time = doc.if('#Time')\n if (time.found === true) {\n //by 6pm\n time.match('(by|before|after|at|@|about) #Time').tag('Time', 'preposition-time')\n //7 7pm\n // time.match('#Cardinal #Time').not('#Year').tag('Time', 'value-time')\n //2pm est\n time.match('#Time [(eastern|pacific|central|mountain)]', 0).tag('Date', 'timezone')\n //6pm est\n time.match('#Time [(est|pst|gmt)]', 0).tag('Date', 'timezone abbr')\n }\n //'2020' bare input\n let m = doc.match('^/^20[012][0-9]$/$')\n tagYearSafe(m, '2020-ish')\n\n // in 20mins\n doc.match('(in|after) /^[0-9]+(min|sec|wk)s?/').tag('Date', 'shift-units')\n return doc\n}\nmodule.exports = tagDates\n","const here = 'date-values'\n//\nconst values = function (doc) {\n // a year ago\n if (!doc.has('once [a] #Duration')) {\n doc.match('[a] #Duration', 0).replaceWith('1').tag('Cardinal', here)\n }\n if (doc.has('#Value')) {\n //june 5 to 7th\n doc.match('#Month #Value to #Value of? #Year?').tag('Date', here)\n //5 to 7th june\n doc.match('#Value to #Value of? #Month #Year?').tag('Date', here)\n //third week of may\n doc.match('#Value #Duration of #Date').tag('Date', here)\n //two days after\n doc.match('#Value+ #Duration (after|before|into|later|afterwards|ago)?').tag('Date', here)\n //two days\n doc.match('#Value #Date').tag('Date', here)\n //june 5th\n doc.match('#Date #Value').tag('Date', here)\n //tuesday at 5\n doc.match('#Date #Preposition #Value').tag('Date', here)\n //tomorrow before 3\n doc.match('#Date (after|before|during|on|in) #Value').tag('Date', here)\n //a year and a half\n doc.match('#Value (year|month|week|day) and a half').tag('Date', here)\n //5 and a half years\n doc.match('#Value and a half (years|months|weeks|days)').tag('Date', here)\n //on the fifth\n doc.match('on the #Ordinal').tag('Date', here)\n }\n return doc\n}\nmodule.exports = values\n","const here = 'date-tagger'\n//\nconst dateTagger = function (doc) {\n doc.match('(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)').match('#Noun').tag('Season', here)\n doc.match('(q1|q2|q3|q4)').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) quarter').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) season').tag('Season', here)\n\n if (doc.has('#Date')) {\n //friday to sunday\n doc.match('#Date #Preposition #Date').tag('Date', here)\n //once a day..\n doc.match('(once|twice) (a|an|each) #Date').tag('Date', here)\n //TODO:fixme\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here)\n //tuesday\n doc.match('#Date+').tag('Date', here)\n //by June\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here)\n //a year after..\n doc.match('a #Duration').tag('Date', here)\n //between x and y\n doc.match('(between|from) #Date').tag('Date', here)\n doc.match('(to|until|upto) #Date').tag('Date', here)\n doc.match('#Date and #Date').tag('Date', here)\n //during this june\n doc.match('(by|until|after|before|during|on|in|following|since) (next|this|last)? (#Date|#Date)').tag('Date', here)\n //day after next\n doc.match('the? #Date after next one?').tag('Date', here)\n //approximately...\n doc.match('(about|approx|approximately|around) #Date').tag('Date', here)\n }\n return doc\n}\nmodule.exports = dateTagger\n","const here = 'section-tagger'\n//\nconst sectionTagger = function (doc) {\n if (doc.has('#Date')) {\n // //next september\n doc.match('this? (last|next|past|this|previous|current|upcoming|coming|the) #Date').tag('Date', here)\n //starting this june\n doc.match('(starting|beginning|ending) #Date').tag('Date', here)\n //start of june\n doc.match('the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)').tag('Date', here)\n //this coming june\n doc.match('(the|this) #Date').tag('Date', here)\n //january up to june\n doc.match('#Date up to #Date').tag('Date', here)\n }\n return doc\n}\nmodule.exports = sectionTagger\n","const here = 'time-tagger'\n\n//\nconst timeTagger = function (doc) {\n // 2 oclock\n doc.match('#Cardinal oclock').tag('Time', here)\n // 13h30\n doc.match('/^[0-9]{2}h[0-9]{2}$/').tag('Time', here)\n // 03/02\n doc.match('/^[0-9]{2}/[0-9]{2}/').tag('Date', here).unTag('Value')\n // 3 in the morning\n doc.match('[#Value] (in|at) the? (morning|evening|night|nighttime)').tag('Time', here)\n if (doc.has('#Cardinal') && !doc.has('#Month')) {\n // quarter to seven (not march 5 to 7)\n doc.match('1? (half|quarter|25|15|10|5) (past|after|to) #Cardinal').tag('Time', here)\n // ten to seven\n doc.match('(5|10|15|20|five|ten|fifteen|20) (to|after|past) [#Cardinal]').tag('Time', here) //add check for 1 to 1 etc.\n }\n //timezone\n if (doc.has('#Date')) {\n // iso (2020-03-02T00:00:00.000Z)\n doc.match('/^[0-9]{4}[:-][0-9]{2}[:-][0-9]{2}T[0-9]/').tag('Time', here)\n // tuesday at 4\n doc.match('#Date [at #Cardinal]', 0).notIf('#Year').tag('Time', here)\n // half an hour\n doc.match('half an (hour|minute|second)').tag('Date', here)\n //eastern daylight time\n doc.match('#Noun (standard|daylight|central|mountain)? time').tag('Timezone', here)\n //utc+5\n doc.match('/^utc[+-][0-9]/').tag('Timezone', here)\n doc.match('/^gmt[+-][0-9]/').tag('Timezone', here)\n\n doc.match('(in|for|by|near|at) #Timezone').tag('Timezone', here)\n // 2pm eastern\n doc.match('#Time [(eastern|mountain|pacific|central)]', 0).tag('Timezone', here)\n }\n // around four thirty\n doc.match('(at|around|near) [#Cardinal (thirty|fifteen) (am|pm)?]', 0).tag('Time', here)\n return doc\n}\nmodule.exports = timeTagger\n","const here = 'shift-tagger'\n//\nconst shiftTagger = function (doc) {\n if (doc.has('#Date')) {\n //'two days before'/ 'nine weeks frow now'\n doc.match('#Cardinal #Duration (before|after|ago|from|hence|back)').tag('DateShift', here)\n // in two weeks\n doc.match('in #Cardinal #Duration').tag('DateShift', here)\n // in a few weeks\n doc.match('in a (few|couple) of? #Duration').tag('DateShift', here)\n //two weeks and three days before\n doc.match('#Cardinal #Duration and? #DateShift').tag('DateShift', here)\n doc.match('#DateShift and #Cardinal #Duration').tag('DateShift', here)\n // 'day after tomorrow'\n doc.match('[#Duration (after|before)] #Date', 0).tag('DateShift', here)\n // in half an hour\n doc.match('in half (a|an) #Duration').tag('DateShift', here)\n }\n return doc\n}\nmodule.exports = shiftTagger\n","const tagIntervals = function (doc) {\n // july 3rd and 4th\n doc.match('#Month #Ordinal and #Ordinal').tag('Date', 'ord-and-ord')\n // every other week\n doc.match('every other #Duration').tag('Date', 'every-other')\n // every weekend\n doc.match('(every|any|each|a) (day|weekday|week day|weekend|weekend day)').tag('Date', 'any-weekday')\n // any-wednesday\n doc.match('(every|any|each|a) (#WeekDay)').tag('Date', 'any-wednesday')\n // any week\n doc.match('(every|any|each|a) (#Duration)').tag('Date', 'any-week')\n}\nmodule.exports = tagIntervals\n","const here = 'fix-tagger'\n//\nconst fixUp = function (doc) {\n //fixups\n if (doc.has('#Date')) {\n //first day by monday\n let oops = doc.match('#Date+ by #Date+')\n if (oops.found && !oops.has('^due')) {\n oops.match('^#Date+').unTag('Date', 'by-monday')\n }\n\n let d = doc.match('#Date+')\n //'spa day'\n d.match('^day$').unTag('Date', 'spa-day')\n // tomorrow's meeting\n d.match('(in|of|by|for)? (#Possessive && #Date)').unTag('Date', 'tomorrows meeting')\n\n let knownDate = '(yesterday|today|tomorrow)'\n if (d.has(knownDate)) {\n //yesterday 7\n d.match(`${knownDate} [#Value]$`).unTag('Date', 'yesterday-7')\n //7 yesterday\n d.match(`^[#Value] ${knownDate}$`, 0).unTag('Date', '7 yesterday')\n //friday yesterday\n d.match(`#WeekDay+ ${knownDate}$`).unTag('Date').lastTerm().tag('Date', 'fri-yesterday')\n\n // yesterday yesterday\n // d.match(`${knownDate}+ ${knownDate}$`)\n // .unTag('Date')\n // .lastTerm()\n // .tag('Date', here)\n d.match(`(this|last|next) #Date ${knownDate}$`).unTag('Date').lastTerm().tag('Date', 'this month yesterday')\n }\n //tomorrow on 5\n d.match(`on #Cardinal$`).unTag('Date', here)\n //this tomorrow\n d.match(`this tomorrow`).terms(0).unTag('Date', 'this-tomorrow')\n //q2 2019\n d.match(`(q1|q2|q3|q4) #Year`).tag('Date', here)\n //5 tuesday\n // d.match(`^#Value #WeekDay`).terms(0).unTag('Date');\n //5 next week\n d.match(`^#Value (this|next|last)`).terms(0).unTag('Date', here)\n\n if (d.has('(last|this|next)')) {\n //this month 7\n d.match(`(last|this|next) #Duration #Value`).terms(2).unTag('Date', here)\n //7 this month\n d.match(`!#Month #Value (last|this|next) #Date`).terms(0).unTag('Date', here)\n }\n //january 5 5\n if (d.has('(#Year|#Time|#TextValue|#NumberRange)') === false) {\n d.match('(#Month|#WeekDay) #Value #Value').terms(2).unTag('Date', here)\n }\n //between june\n if (d.has('^between') && !d.has('and .')) {\n d.unTag('Date', here)\n }\n //june june\n if (d.has('#Month #Month') && !d.has('@hasHyphen') && !d.has('@hasComma')) {\n d.match('#Month').lastTerm().unTag('Date', 'month-month')\n }\n // log the hours\n if (d.has('(minutes|seconds|weeks|hours|days|months)') && !d.has('#Value #Duration')) {\n d.match('(minutes|seconds|weeks|hours|days|months)').unTag('Date', 'log-hours')\n }\n // about thanksgiving\n if (d.has('about #Holiday')) {\n d.match('about').unTag('#Date', 'about-thanksgiving')\n }\n\n // second quarter of 2020\n d.match('#Ordinal quarter of? #Year').unTag('Fraction')\n\n // a month from now\n d.match('(from|by|before) now').unTag('Time')\n // dangling date-chunks\n // if (d.has('!#Date (in|of|by|for) !#Date')) {\n // d.unTag('Date', 'dangling-date')\n // }\n // the day after next\n d.match('#Date+').match('^the').unTag('Date')\n }\n return doc\n}\nmodule.exports = fixUp\n","const methods = [\n require('./00-basic'),\n require('./01-values'),\n require('./02-dates'),\n require('./03-sections'),\n require('./04-time'),\n require('./05-shifts'),\n require('./06-intervals'),\n require('./07-fixup'),\n]\n\n// normalizations to run before tagger\nconst normalize = function (doc) {\n // turn '20mins' into '20 mins'\n doc.numbers().normalize() // this is sorta problematic\n return doc\n}\n\n// run each of the taggers\nconst tagDate = function (doc) {\n doc = normalize(doc)\n // run taggers\n methods.forEach((fn) => fn(doc))\n return doc\n}\nmodule.exports = tagDate\n","module.exports = {\n FinancialQuarter: {\n isA: 'Date',\n notA: 'Fraction',\n },\n // 'summer'\n Season: {\n isA: 'Date',\n },\n // '1982'\n Year: {\n isA: ['Date'],\n notA: 'RomanNumeral',\n },\n // 'months'\n Duration: {\n isA: ['Date', 'Noun'],\n },\n // 'easter'\n Holiday: {\n isA: ['Date', 'Noun'],\n },\n // 'PST'\n Timezone: {\n isA: ['Date', 'Noun'],\n notA: ['Adjective', 'DateShift'],\n },\n // 'two weeks before'\n DateShift: {\n isA: ['Date'],\n notA: ['TimeZone', 'Holiday'],\n },\n}\n","/* spencermountain/spacetime 6.12.5 Apache 2.0 */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.spacetime = factory());\n}(this, (function () { 'use strict';\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var MSEC_IN_HOUR = 60 * 60 * 1000; //convert our local date syntax a javascript UTC date\n\n var toUtc = function toUtc(dstChange, offset, year) {\n var _dstChange$split = dstChange.split('/'),\n _dstChange$split2 = _slicedToArray(_dstChange$split, 2),\n month = _dstChange$split2[0],\n rest = _dstChange$split2[1];\n\n var _rest$split = rest.split(':'),\n _rest$split2 = _slicedToArray(_rest$split, 2),\n day = _rest$split2[0],\n hour = _rest$split2[1];\n\n return Date.UTC(year, month - 1, day, hour) - offset * MSEC_IN_HOUR;\n }; // compare epoch with dst change events (in utc)\n\n\n var inSummerTime = function inSummerTime(epoch, start, end, summerOffset, winterOffset) {\n var year = new Date(epoch).getUTCFullYear();\n var startUtc = toUtc(start, winterOffset, year);\n var endUtc = toUtc(end, summerOffset, year); // simple number comparison now\n\n return epoch >= startUtc && epoch < endUtc;\n };\n\n var summerTime = inSummerTime;\n\n // it reproduces some things in ./index.js, but speeds up spacetime considerably\n\n var quickOffset = function quickOffset(s) {\n var zones = s.timezones;\n var obj = zones[s.tz];\n\n if (obj === undefined) {\n console.warn(\"Warning: couldn't find timezone \" + s.tz);\n return 0;\n }\n\n if (obj.dst === undefined) {\n return obj.offset;\n } //get our two possible offsets\n\n\n var jul = obj.offset;\n var dec = obj.offset + 1; // assume it's the same for now\n\n if (obj.hem === 'n') {\n dec = jul - 1;\n }\n\n var split = obj.dst.split('->');\n var inSummer = summerTime(s.epoch, split[0], split[1], jul, dec);\n\n if (inSummer === true) {\n return jul;\n }\n\n return dec;\n };\n\n var quick = quickOffset;\n\n var _build = {\n \t\"9|s\": \"2/dili,2/jayapura\",\n \t\"9|n\": \"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau\",\n \t\"9.5|s|04/04:03->10/03:02\": \"4/adelaide,4/broken_hill,4/south,4/yancowinna\",\n \t\"9.5|s\": \"4/darwin,4/north\",\n \t\"8|s|03/08:01->10/04:00\": \"12/casey\",\n \t\"8|s\": \"2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west\",\n \t\"8|n|03/25:03->09/29:23\": \"2/ulan_bator\",\n \t\"8|n\": \"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar\",\n \t\"8.75|s\": \"4/eucla\",\n \t\"7|s\": \"12/davis,2/jakarta,9/christmas\",\n \t\"7|n\": \"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane\",\n \t\"6|s\": \"12/vostok\",\n \t\"6|n\": \"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/qostanay,2/thimbu,2/thimphu,2/urumqi,9/chagos\",\n \t\"6.5|n\": \"2/rangoon,2/yangon,9/cocos\",\n \t\"5|s\": \"12/mawson,9/kerguelen\",\n \t\"5|n\": \"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives\",\n \t\"5.75|n\": \"2/kathmandu,2/katmandu\",\n \t\"5.5|n\": \"2/calcutta,2/colombo,2/kolkata\",\n \t\"4|s\": \"9/reunion\",\n \t\"4|n\": \"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius\",\n \t\"4.5|n|03/22:00->09/21:24\": \"2/tehran\",\n \t\"4.5|n\": \"2/kabul\",\n \t\"3|s\": \"12/syowa,9/antananarivo\",\n \t\"3|n|03/28:03->10/31:04\": \"2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye\",\n \t\"3|n|03/28:02->10/31:03\": \"8/chisinau,8/tiraspol\",\n \t\"3|n|03/28:00->10/30:24\": \"2/beirut\",\n \t\"3|n|03/27:00->10/30:01\": \"2/gaza,2/hebron\",\n \t\"3|n|03/26:02->10/31:02\": \"2/jerusalem,2/tel_aviv\",\n \t\"3|n|03/26:00->10/29:01\": \"2/amman\",\n \t\"3|n|03/26:00->10/28:24\": \"2/damascus\",\n \t\"3|n\": \"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte\",\n \t\"2|s|03/28:02->10/31:02\": \"12/troll\",\n \t\"2|s\": \"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane\",\n \t\"2|n|03/28:02->10/31:03\": \"0/ceuta,arctic/longyearbyen,3/jan_mayen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich\",\n \t\"2|n\": \"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad\",\n \t\"1|s|04/02:01->09/03:03\": \"0/windhoek\",\n \t\"1|s\": \"0/kinshasa,0/luanda\",\n \t\"1|n|04/11:03->05/16:02\": \"0/casablanca,0/el_aaiun\",\n \t\"1|n|03/28:01->10/31:02\": \"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london\",\n \t\"1|n\": \"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis\",\n \t\"14|n\": \"11/kiritimati\",\n \t\"13|s|04/04:04->09/26:03\": \"11/apia\",\n \t\"13|s|01/15:02->11/05:03\": \"11/tongatapu\",\n \t\"13|n\": \"11/enderbury,11/fakaofo\",\n \t\"12|s|04/04:03->09/26:02\": \"12/mcmurdo,12/south_pole,11/auckland\",\n \t\"12|s|01/17:03->11/14:02\": \"11/fiji\",\n \t\"12|n\": \"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis\",\n \t\"12.75|s|04/04:03->04/04:02\": \"11/chatham\",\n \t\"11|s|04/04:03->10/03:02\": \"12/macquarie\",\n \t\"11|s\": \"11/bougainville\",\n \t\"11|n\": \"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape\",\n \t\"11.5|n|04/04:03->10/03:02\": \"11/norfolk\",\n \t\"10|s|04/04:03->10/03:02\": \"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria\",\n \t\"10|s\": \"12/dumontdurville,4/brisbane,4/lindeman,4/queensland\",\n \t\"10|n\": \"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap\",\n \t\"10.5|s|04/04:01->10/03:02\": \"4/lhi,4/lord_howe\",\n \t\"0|n|03/28:00->10/31:01\": \"1/scoresbysund,3/azores\",\n \t\"0|n\": \"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu\",\n \t\"-9|n|03/14:02->11/07:02\": \"1/adak,1/atka\",\n \t\"-9|n\": \"11/gambier\",\n \t\"-9.5|n\": \"11/marquesas\",\n \t\"-8|n|03/14:02->11/07:02\": \"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat\",\n \t\"-8|n\": \"11/pitcairn\",\n \t\"-7|n|03/14:02->11/07:02\": \"1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,6/pacific,10/bajanorte\",\n \t\"-7|n|03/08:02->11/01:01\": \"1/dawson,1/whitehorse,6/yukon\",\n \t\"-7|n\": \"1/creston,1/dawson_creek,1/fort_nelson,1/hermosillo,1/phoenix\",\n \t\"-6|s|04/03:22->09/04:22\": \"7/easterisland,11/easter\",\n \t\"-6|n|04/04:02->10/31:02\": \"1/chihuahua,1/mazatlan,10/bajasur\",\n \t\"-6|n|03/14:02->11/07:02\": \"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain\",\n \t\"-6|n\": \"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos\",\n \t\"-5|s\": \"1/lima,1/rio_branco,5/acre\",\n \t\"-5|n|04/04:02->10/31:02\": \"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general\",\n \t\"-5|n|03/14:02->11/07:02\": \"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central\",\n \t\"-5|n|03/12:03->11/05:01\": \"1/north_dakota\",\n \t\"-5|n\": \"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre\",\n \t\"-4|s|05/13:23->08/13:01\": \"12/palmer\",\n \t\"-4|s|04/03:24->09/05:00\": \"1/santiago,7/continental\",\n \t\"-4|s|03/27:24->10/03:00\": \"1/asuncion\",\n \t\"-4|s|02/16:24->11/03:00\": \"1/campo_grande,1/cuiaba\",\n \t\"-4|s\": \"1/la_paz,1/manaus,5/west\",\n \t\"-4|n|03/14:02->11/07:02\": \"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern\",\n \t\"-4|n|03/14:00->11/07:01\": \"1/havana\",\n \t\"-4|n|03/12:03->11/05:01\": \"1/indiana,1/kentucky\",\n \t\"-4|n\": \"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin\",\n \t\"-3|s\": \"1/argentina,1/buenos_aires,1/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,5/east\",\n \t\"-3|n|03/27:22->10/30:23\": \"1/nuuk\",\n \t\"-3|n|03/14:02->11/07:02\": \"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic\",\n \t\"-3|n\": \"1/araguaina,1/bahia,1/belem,1/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem\",\n \t\"-2|s\": \"5/denoronha\",\n \t\"-2|n|03/27:22->10/30:23\": \"1/godthab\",\n \t\"-2|n|03/14:02->11/07:02\": \"1/miquelon\",\n \t\"-2|n\": \"1/noronha,3/south_georgia\",\n \t\"-2.5|n|03/14:02->11/07:02\": \"1/st_johns,6/newfoundland\",\n \t\"-1|n\": \"3/cape_verde\",\n \t\"-11|n\": \"11/midway,11/niue,11/pago_pago,11/samoa\",\n \t\"-10|n\": \"11/honolulu,11/johnston,11/rarotonga,11/tahiti\"\n };\n\n var _build$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': _build\n });\n\n //prefixes for iana names..\n var _prefixes = ['africa', 'america', 'asia', 'atlantic', 'australia', 'brazil', 'canada', 'chile', 'europe', 'indian', 'mexico', 'pacific', 'antarctica', 'etc'];\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n function getCjsExportFromNamespace (n) {\n \treturn n && n['default'] || n;\n }\n\n var data = getCjsExportFromNamespace(_build$1);\n\n var all = {};\n Object.keys(data).forEach(function (k) {\n var split = k.split('|');\n var obj = {\n offset: Number(split[0]),\n hem: split[1]\n };\n\n if (split[2]) {\n obj.dst = split[2];\n }\n\n var names = data[k].split(',');\n names.forEach(function (str) {\n str = str.replace(/(^[0-9]+)\\//, function (before, num) {\n num = Number(num);\n return _prefixes[num] + '/';\n });\n all[str] = obj;\n });\n });\n all['utc'] = {\n offset: 0,\n hem: 'n' //default to northern hemisphere - (sorry!)\n\n }; //add etc/gmt+n\n\n for (var i = -14; i <= 14; i += 0.5) {\n var num = i;\n\n if (num > 0) {\n num = '+' + num;\n }\n\n var name = 'etc/gmt' + num;\n all[name] = {\n offset: i * -1,\n //they're negative!\n hem: 'n' //(sorry)\n\n };\n name = 'utc/gmt' + num; //this one too, why not.\n\n all[name] = {\n offset: i * -1,\n hem: 'n'\n };\n }\n\n var unpack = all;\n\n //find the implicit iana code for this machine.\n //safely query the Intl object\n //based on - https://bitbucket.org/pellepim/jstimezonedetect/src\n var fallbackTZ = 'utc'; //\n //this Intl object is not supported often, yet\n\n var safeIntl = function safeIntl() {\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return null;\n }\n\n var format = Intl.DateTimeFormat();\n\n if (typeof format === 'undefined' || typeof format.resolvedOptions === 'undefined') {\n return null;\n }\n\n var timezone = format.resolvedOptions().timeZone;\n\n if (!timezone) {\n return null;\n }\n\n return timezone.toLowerCase();\n };\n\n var guessTz = function guessTz() {\n var timezone = safeIntl();\n\n if (timezone === null) {\n return fallbackTZ;\n }\n\n return timezone;\n }; //do it once per computer\n\n\n var guessTz_1 = guessTz;\n\n var isOffset = /(\\-?[0-9]+)h(rs)?/i;\n var isNumber = /(\\-?[0-9]+)/;\n var utcOffset = /utc([\\-+]?[0-9]+)/i;\n var gmtOffset = /gmt([\\-+]?[0-9]+)/i;\n\n var toIana = function toIana(num) {\n num = Number(num);\n\n if (num >= -13 && num <= 13) {\n num = num * -1; //it's opposite!\n\n num = (num > 0 ? '+' : '') + num; //add plus sign\n\n return 'etc/gmt' + num;\n }\n\n return null;\n };\n\n var parseOffset = function parseOffset(tz) {\n // '+5hrs'\n var m = tz.match(isOffset);\n\n if (m !== null) {\n return toIana(m[1]);\n } // 'utc+5'\n\n\n m = tz.match(utcOffset);\n\n if (m !== null) {\n return toIana(m[1]);\n } // 'GMT-5' (not opposite)\n\n\n m = tz.match(gmtOffset);\n\n if (m !== null) {\n var num = Number(m[1]) * -1;\n return toIana(num);\n } // '+5'\n\n\n m = tz.match(isNumber);\n\n if (m !== null) {\n return toIana(m[1]);\n }\n\n return null;\n };\n\n var parseOffset_1 = parseOffset;\n\n var local = guessTz_1(); //add all the city names by themselves\n\n var cities = Object.keys(unpack).reduce(function (h, k) {\n var city = k.split('/')[1] || '';\n city = city.replace(/_/g, ' ');\n h[city] = k;\n return h;\n }, {}); //try to match these against iana form\n\n var normalize = function normalize(tz) {\n tz = tz.replace(/ time/g, '');\n tz = tz.replace(/ (standard|daylight|summer)/g, '');\n tz = tz.replace(/\\b(east|west|north|south)ern/g, '$1');\n tz = tz.replace(/\\b(africa|america|australia)n/g, '$1');\n tz = tz.replace(/\\beuropean/g, 'europe');\n tz = tz.replace(/\\islands/g, 'island');\n return tz;\n }; // try our best to reconcile the timzone to this given string\n\n\n var lookupTz = function lookupTz(str, zones) {\n if (!str) {\n return local;\n }\n\n if (typeof str !== 'string') {\n console.error(\"Timezone must be a string - recieved: '\", str, \"'\\n\");\n }\n\n var tz = str.trim();\n var split = str.split('/'); //support long timezones like 'America/Argentina/Rio_Gallegos'\n\n if (split.length > 2 && zones.hasOwnProperty(tz) === false) {\n tz = split[0] + '/' + split[1];\n }\n\n tz = tz.toLowerCase();\n\n if (zones.hasOwnProperty(tz) === true) {\n return tz;\n } //lookup more loosely..\n\n\n tz = normalize(tz);\n\n if (zones.hasOwnProperty(tz) === true) {\n return tz;\n } //try city-names\n\n\n if (cities.hasOwnProperty(tz) === true) {\n return cities[tz];\n } // //try to parse '-5h'\n\n\n if (/[0-9]/.test(tz) === true) {\n var id = parseOffset_1(tz);\n\n if (id) {\n return id;\n }\n }\n\n throw new Error(\"Spacetime: Cannot find timezone named: '\" + str + \"'. Please enter an IANA timezone id.\");\n };\n\n var find = lookupTz;\n\n var o = {\n millisecond: 1\n };\n o.second = 1000;\n o.minute = 60000;\n o.hour = 3.6e6; // dst is supported post-hoc\n\n o.day = 8.64e7; //\n\n o.date = o.day;\n o.month = 8.64e7 * 29.5; //(average)\n\n o.week = 6.048e8;\n o.year = 3.154e10; // leap-years are supported post-hoc\n //add plurals\n\n Object.keys(o).forEach(function (k) {\n o[k + 's'] = o[k];\n });\n var milliseconds = o;\n\n var walk = function walk(s, n, fn, unit, previous) {\n var current = s.d[fn]();\n\n if (current === n) {\n return; //already there\n }\n\n var startUnit = previous === null ? null : s.d[previous]();\n var original = s.epoch; //try to get it as close as we can\n\n var diff = n - current;\n s.epoch += milliseconds[unit] * diff; //DST edge-case: if we are going many days, be a little conservative\n // console.log(unit, diff)\n\n if (unit === 'day') {\n // s.epoch -= ms.minute\n //but don't push it over a month\n if (Math.abs(diff) > 28 && n < 28) {\n s.epoch += milliseconds.hour;\n }\n } // 1st time: oops, did we change previous unit? revert it.\n\n\n if (previous !== null && startUnit !== s.d[previous]()) {\n // console.warn('spacetime warning: missed setting ' + unit)\n s.epoch = original; // s.epoch += ms[unit] * diff * 0.89 // maybe try and make it close...?\n } //repair it if we've gone too far or something\n //(go by half-steps, just in case)\n\n\n var halfStep = milliseconds[unit] / 2;\n\n while (s.d[fn]() < n) {\n s.epoch += halfStep;\n }\n\n while (s.d[fn]() > n) {\n s.epoch -= halfStep;\n } // 2nd time: did we change previous unit? revert it.\n\n\n if (previous !== null && startUnit !== s.d[previous]()) {\n // console.warn('spacetime warning: missed setting ' + unit)\n s.epoch = original;\n }\n }; //find the desired date by a increment/check while loop\n\n\n var units = {\n year: {\n valid: function valid(n) {\n return n > -4000 && n < 4000;\n },\n walkTo: function walkTo(s, n) {\n return walk(s, n, 'getFullYear', 'year', null);\n }\n },\n month: {\n valid: function valid(n) {\n return n >= 0 && n <= 11;\n },\n walkTo: function walkTo(s, n) {\n var d = s.d;\n var current = d.getMonth();\n var original = s.epoch;\n var startUnit = d.getFullYear();\n\n if (current === n) {\n return;\n } //try to get it as close as we can..\n\n\n var diff = n - current;\n s.epoch += milliseconds.day * (diff * 28); //special case\n //oops, did we change the year? revert it.\n\n if (startUnit !== s.d.getFullYear()) {\n s.epoch = original;\n } //increment by day\n\n\n while (s.d.getMonth() < n) {\n s.epoch += milliseconds.day;\n }\n\n while (s.d.getMonth() > n) {\n s.epoch -= milliseconds.day;\n }\n }\n },\n date: {\n valid: function valid(n) {\n return n > 0 && n <= 31;\n },\n walkTo: function walkTo(s, n) {\n return walk(s, n, 'getDate', 'day', 'getMonth');\n }\n },\n hour: {\n valid: function valid(n) {\n return n >= 0 && n < 24;\n },\n walkTo: function walkTo(s, n) {\n return walk(s, n, 'getHours', 'hour', 'getDate');\n }\n },\n minute: {\n valid: function valid(n) {\n return n >= 0 && n < 60;\n },\n walkTo: function walkTo(s, n) {\n return walk(s, n, 'getMinutes', 'minute', 'getHours');\n }\n },\n second: {\n valid: function valid(n) {\n return n >= 0 && n < 60;\n },\n walkTo: function walkTo(s, n) {\n //do this one directly\n s.epoch = s.seconds(n).epoch;\n }\n },\n millisecond: {\n valid: function valid(n) {\n return n >= 0 && n < 1000;\n },\n walkTo: function walkTo(s, n) {\n //do this one directly\n s.epoch = s.milliseconds(n).epoch;\n }\n }\n };\n\n var walkTo = function walkTo(s, wants) {\n var keys = Object.keys(units);\n var old = s.clone();\n\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n var n = wants[k];\n\n if (n === undefined) {\n n = old[k]();\n }\n\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n } //make-sure it's valid\n\n\n if (!units[k].valid(n)) {\n s.epoch = null;\n\n if (s.silent === false) {\n console.warn('invalid ' + k + ': ' + n);\n }\n\n return;\n }\n\n units[k].walkTo(s, n);\n }\n\n return;\n };\n\n var walk_1 = walkTo;\n\n var shortMonths = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sept', 'oct', 'nov', 'dec'];\n var longMonths = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\n\n function buildMapping() {\n var obj = {\n sep: 8 //support this format\n\n };\n\n for (var i = 0; i < shortMonths.length; i++) {\n obj[shortMonths[i]] = i;\n }\n\n for (var _i = 0; _i < longMonths.length; _i++) {\n obj[longMonths[_i]] = _i;\n }\n\n return obj;\n }\n\n var months = {\n \"short\": function short() {\n return shortMonths;\n },\n \"long\": function long() {\n return longMonths;\n },\n mapping: function mapping() {\n return buildMapping();\n },\n set: function set(i18n) {\n shortMonths = i18n[\"short\"] || shortMonths;\n longMonths = i18n[\"long\"] || longMonths;\n }\n };\n\n //pull-apart ISO offsets, like \"+0100\"\n var parseOffset$1 = function parseOffset(s, offset) {\n if (!offset) {\n return s;\n } //this is a fancy-move\n\n\n if (offset === 'Z' || offset === 'z') {\n offset = '+0000';\n } // according to ISO8601, tz could be hh:mm, hhmm or hh\n // so need few more steps before the calculation.\n\n\n var num = 0; // for (+-)hh:mm\n\n if (/^[\\+-]?[0-9]{2}:[0-9]{2}$/.test(offset)) {\n //support \"+01:00\"\n if (/:00/.test(offset) === true) {\n offset = offset.replace(/:00/, '');\n } //support \"+01:30\"\n\n\n if (/:30/.test(offset) === true) {\n offset = offset.replace(/:30/, '.5');\n }\n } // for (+-)hhmm\n\n\n if (/^[\\+-]?[0-9]{4}$/.test(offset)) {\n offset = offset.replace(/30$/, '.5');\n }\n\n num = parseFloat(offset); //divide by 100 or 10 - , \"+0100\", \"+01\"\n\n if (Math.abs(num) > 100) {\n num = num / 100;\n } //okay, try to match it to a utc timezone\n //remember - this is opposite! a -5 offset maps to Etc/GMT+5 ¯\\_(:/)_/¯\n //https://askubuntu.com/questions/519550/why-is-the-8-timezone-called-gmt-8-in-the-filesystem\n\n\n num *= -1;\n\n if (num >= 0) {\n num = '+' + num;\n }\n\n var tz = 'etc/gmt' + num;\n var zones = s.timezones;\n\n if (zones[tz]) {\n // log a warning if we're over-writing a given timezone?\n // console.log('changing timezone to: ' + tz)\n s.tz = tz;\n }\n\n return s;\n };\n\n var parseOffset_1$1 = parseOffset$1;\n\n var parseTime = function parseTime(s) {\n var str = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n str = str.replace(/^\\s+/, '').toLowerCase(); //trim\n //formal time formats - 04:30.23\n\n var arr = str.match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\\.]?([0-9]{1,4})?/);\n\n if (arr !== null) {\n //validate it a little\n var h = Number(arr[1]);\n\n if (h < 0 || h > 24) {\n return s.startOf('day');\n }\n\n var m = Number(arr[2]); //don't accept '5:3pm'\n\n if (arr[2].length < 2 || m < 0 || m > 59) {\n return s.startOf('day');\n }\n\n if (arr[4] > 999) {\n // fix overflow issue with milliseconds, if input is longer than standard (e.g. 2017-08-06T09:00:00.123456Z)\n arr[4] = parseInt(\"\".concat(arr[4]).substring(0, 3), 10);\n }\n\n s = s.hour(h);\n s = s.minute(m);\n s = s.seconds(arr[3] || 0);\n s = s.millisecond(arr[4] || 0); //parse-out am/pm\n\n var ampm = str.match(/[\\b0-9](am|pm)\\b/);\n\n if (ampm !== null && ampm[1]) {\n s = s.ampm(ampm[1]);\n }\n\n return s;\n } //try an informal form - 5pm (no minutes)\n\n\n arr = str.match(/([0-9]+) ?(am|pm)/);\n\n if (arr !== null && arr[1]) {\n var _h = Number(arr[1]); //validate it a little..\n\n\n if (_h > 12 || _h < 1) {\n return s.startOf('day');\n }\n\n s = s.hour(arr[1] || 0);\n s = s.ampm(arr[2]);\n s = s.startOf('hour');\n return s;\n } //no time info found, use start-of-day\n\n\n s = s.startOf('day');\n return s;\n };\n\n var parseTime_1 = parseTime;\n\n var monthLengths = [31, // January - 31 days\n 28, // February - 28 days in a common year and 29 days in leap years\n 31, // March - 31 days\n 30, // April - 30 days\n 31, // May - 31 days\n 30, // June - 30 days\n 31, // July - 31 days\n 31, // August - 31 days\n 30, // September - 30 days\n 31, // October - 31 days\n 30, // November - 30 days\n 31 // December - 31 days\n ];\n var monthLengths_1 = monthLengths; // 28 - feb\n\n var fns = createCommonjsModule(function (module, exports) {\n //git:blame @JuliasCaesar https://www.timeanddate.com/date/leapyear.html\n exports.isLeapYear = function (year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }; // unsurprisingly-nasty `typeof date` call\n\n\n exports.isDate = function (d) {\n return Object.prototype.toString.call(d) === '[object Date]' && !isNaN(d.valueOf());\n };\n\n exports.isArray = function (input) {\n return Object.prototype.toString.call(input) === '[object Array]';\n };\n\n exports.isObject = function (input) {\n return Object.prototype.toString.call(input) === '[object Object]';\n };\n\n exports.isBoolean = function (input) {\n return Object.prototype.toString.call(input) === '[object Boolean]';\n };\n\n exports.zeroPad = function (str) {\n var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var pad = '0';\n str = str + '';\n return str.length >= len ? str : new Array(len - str.length + 1).join(pad) + str;\n };\n\n exports.titleCase = function (str) {\n if (!str) {\n return '';\n }\n\n return str[0].toUpperCase() + str.substr(1);\n };\n\n exports.ordinal = function (i) {\n var j = i % 10;\n var k = i % 100;\n\n if (j === 1 && k !== 11) {\n return i + 'st';\n }\n\n if (j === 2 && k !== 12) {\n return i + 'nd';\n }\n\n if (j === 3 && k !== 13) {\n return i + 'rd';\n }\n\n return i + 'th';\n }; //strip 'st' off '1st'..\n\n\n exports.toCardinal = function (str) {\n str = String(str);\n str = str.replace(/([0-9])(st|nd|rd|th)$/i, '$1');\n return parseInt(str, 10);\n }; //used mostly for cleanup of unit names, like 'months'\n\n\n exports.normalize = function () {\n var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n str = str.toLowerCase().trim();\n str = str.replace(/ies$/, 'y'); //'centuries'\n\n str = str.replace(/s$/, '');\n str = str.replace(/-/g, '');\n\n if (str === 'day' || str === 'days') {\n return 'date';\n }\n\n if (str === 'min' || str === 'mins') {\n return 'minute';\n }\n\n return str;\n };\n\n exports.getEpoch = function (tmp) {\n //support epoch\n if (typeof tmp === 'number') {\n return tmp;\n } //suport date objects\n\n\n if (exports.isDate(tmp)) {\n return tmp.getTime();\n }\n\n if (tmp.epoch) {\n return tmp.epoch;\n }\n\n return null;\n }; //make sure this input is a spacetime obj\n\n\n exports.beADate = function (d, s) {\n if (exports.isObject(d) === false) {\n return s.clone().set(d);\n }\n\n return d;\n };\n\n exports.formatTimezone = function (offset) {\n var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var sign = offset > 0 ? '+' : '-';\n var absOffset = Math.abs(offset);\n var hours = exports.zeroPad(parseInt('' + absOffset, 10));\n var minutes = exports.zeroPad(absOffset % 1 * 60);\n return \"\".concat(sign).concat(hours).concat(delimiter).concat(minutes);\n };\n });\n fns.isLeapYear;\n fns.isDate;\n fns.isArray;\n fns.isObject;\n fns.isBoolean;\n fns.zeroPad;\n fns.titleCase;\n fns.ordinal;\n fns.toCardinal;\n fns.normalize;\n fns.getEpoch;\n fns.beADate;\n fns.formatTimezone;\n\n var isLeapYear = fns.isLeapYear; //given a month, return whether day number exists in it\n\n var hasDate = function hasDate(obj) {\n //invalid values\n if (monthLengths_1.hasOwnProperty(obj.month) !== true) {\n return false;\n } //support leap-year in february\n\n\n if (obj.month === 1) {\n if (isLeapYear(obj.year) && obj.date <= 29) {\n return true;\n } else {\n return obj.date <= 28;\n }\n } //is this date too-big for this month?\n\n\n var max = monthLengths_1[obj.month] || 0;\n\n if (obj.date <= max) {\n return true;\n }\n\n return false;\n };\n\n var hasDate_1 = hasDate;\n\n var months$1 = months.mapping();\n\n var parseYear = function parseYear() {\n var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var today = arguments.length > 1 ? arguments[1] : undefined;\n var year = parseInt(str.trim(), 10); // use a given year from options.today\n\n if (!year && today) {\n year = today.year;\n } // fallback to this year\n\n\n year = year || new Date().getFullYear();\n return year;\n };\n\n var strFmt = [//iso-this 1998-05-30T22:00:00:000Z, iso-that 2017-04-03T08:00:00-0700\n {\n reg: /^(\\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\\-\\+:]+)?$/i,\n parse: function parse(s, arr, givenTz, options) {\n var month = parseInt(arr[2], 10) - 1;\n var obj = {\n year: arr[1],\n month: month,\n date: arr[3]\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n parseOffset_1$1(s, arr[5]);\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //iso \"2015-03-25\" or \"2015/03/25\" or \"2015/03/25 12:26:14 PM\"\n {\n reg: /^([0-9]{4})[\\-\\/.]([0-9]{1,2})[\\-\\/.]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: function parse(s, arr) {\n var obj = {\n year: arr[1],\n month: parseInt(arr[2], 10) - 1,\n date: parseInt(arr[3], 10)\n };\n\n if (obj.month >= 12) {\n //support yyyy/dd/mm (weird, but ok)\n obj.date = parseInt(arr[2], 10);\n obj.month = parseInt(arr[3], 10) - 1;\n }\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //mm/dd/yyyy - uk/canada \"6/28/2019, 12:26:14 PM\"\n {\n reg: /^([0-9]{1,2})[\\-\\/.]([0-9]{1,2})[\\-\\/.]?([0-9]{4})?,?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: function parse(s, arr) {\n var month = parseInt(arr[1], 10) - 1;\n var date = parseInt(arr[2], 10); //support dd/mm/yyy\n\n if (s.british || month >= 12) {\n date = parseInt(arr[1], 10);\n month = parseInt(arr[2], 10) - 1;\n }\n\n var year = parseYear(arr[3], s._today) || new Date().getFullYear();\n var obj = {\n year: year,\n month: month,\n date: date\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, // '2012-06' last attempt at iso-like format\n {\n reg: /^([0-9]{4})[\\-\\/]([0-9]{2})$/i,\n parse: function parse(s, arr, givenTz, options) {\n var month = parseInt(arr[2], 10) - 1;\n var obj = {\n year: arr[1],\n month: month,\n date: 1\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n parseOffset_1$1(s, arr[5]);\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //common british format - \"25-feb-2015\"\n {\n reg: /^([0-9]{1,2})[\\-\\/]([a-z]+)[\\-\\/]?([0-9]{4})?$/i,\n parse: function parse(s, arr) {\n var month = months$1[arr[2].toLowerCase()];\n var year = parseYear(arr[3], s._today);\n var obj = {\n year: year,\n month: month,\n date: fns.toCardinal(arr[1] || '')\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //alt short format - \"feb-25-2015\"\n {\n reg: /^([a-z]+)[\\-\\/]([0-9]{1,2})[\\-\\/]?([0-9]{4})?$/i,\n parse: function parse(s, arr) {\n var month = months$1[arr[1].toLowerCase()];\n var year = parseYear(arr[3], s._today);\n var obj = {\n year: year,\n month: month,\n date: fns.toCardinal(arr[2] || '')\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //Long \"Mar 25 2015\"\n //February 22, 2017 15:30:00\n {\n reg: /^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,\n parse: function parse(s, arr) {\n var month = months$1[arr[1].toLowerCase()];\n var year = parseYear(arr[3], s._today);\n var obj = {\n year: year,\n month: month,\n date: fns.toCardinal(arr[2] || '')\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //February 2017 (implied date)\n {\n reg: /^([a-z]+) ([0-9]{4})$/i,\n parse: function parse(s, arr) {\n var month = months$1[arr[1].toLowerCase()];\n var year = parseYear(arr[2], s._today);\n var obj = {\n year: year,\n month: month,\n date: s._today.date || 1\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, //Long \"25 Mar 2015\"\n {\n reg: /^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: function parse(s, arr) {\n var month = months$1[arr[2].toLowerCase()];\n\n if (!month) {\n return null;\n }\n\n var year = parseYear(arr[3], s._today);\n var obj = {\n year: year,\n month: month,\n date: fns.toCardinal(arr[1])\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s;\n }\n }, {\n // 'q2 2002'\n reg: /^(q[0-9])( of)?( [0-9]{4})?/i,\n parse: function parse(s, arr) {\n var quarter = arr[1] || '';\n s = s.quarter(quarter);\n var year = arr[3] || '';\n\n if (year) {\n year = year.trim();\n s = s.year(year);\n }\n\n return s;\n }\n }, {\n // 'summer 2002'\n reg: /^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,\n parse: function parse(s, arr) {\n var season = arr[1] || '';\n s = s.season(season);\n var year = arr[3] || '';\n\n if (year) {\n year = year.trim();\n s = s.year(year);\n }\n\n return s;\n }\n }, {\n // '200bc'\n reg: /^[0-9,]+ ?b\\.?c\\.?$/i,\n parse: function parse(s, arr) {\n var str = arr[0] || ''; //make negative-year\n\n str = str.replace(/^([0-9,]+) ?b\\.?c\\.?$/i, '-$1'); //remove commas\n\n str = str.replace(/,/g, '');\n var year = parseInt(str.trim(), 10);\n var d = new Date();\n var obj = {\n year: year,\n month: d.getMonth(),\n date: d.getDate()\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s);\n return s;\n }\n }, {\n // '200ad'\n reg: /^[0-9,]+ ?(a\\.?d\\.?|c\\.?e\\.?)$/i,\n parse: function parse(s, arr) {\n var str = arr[0] || ''; //remove commas\n\n str = str.replace(/,/g, '');\n var year = parseInt(str.trim(), 10);\n var d = new Date();\n var obj = {\n year: year,\n month: d.getMonth(),\n date: d.getDate()\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s);\n return s;\n }\n }, {\n // '1992'\n reg: /^[0-9]{4}( ?a\\.?d\\.?)?$/i,\n parse: function parse(s, arr) {\n var today = s._today;\n var year = parseYear(arr[0], today);\n var d = new Date(); // using today's date, but a new month is awkward.\n\n if (today.month && !today.date) {\n today.date = 1;\n }\n\n var obj = {\n year: year,\n month: today.month || d.getMonth(),\n date: today.date || d.getDate()\n };\n\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s;\n }\n\n walk_1(s, obj);\n s = parseTime_1(s);\n return s;\n }\n }];\n var strParse = strFmt;\n\n // pull in 'today' data for the baseline moment\n var getNow = function getNow(s) {\n s.epoch = Date.now();\n Object.keys(s._today || {}).forEach(function (k) {\n if (typeof s[k] === 'function') {\n s = s[k](s._today[k]);\n }\n });\n return s;\n };\n\n var dates = {\n now: function now(s) {\n return getNow(s);\n },\n today: function today(s) {\n return getNow(s);\n },\n tonight: function tonight(s) {\n s = getNow(s);\n s = s.hour(18); //6pm\n\n return s;\n },\n tomorrow: function tomorrow(s) {\n s = getNow(s);\n s = s.add(1, 'day');\n s = s.startOf('day');\n return s;\n },\n yesterday: function yesterday(s) {\n s = getNow(s);\n s = s.subtract(1, 'day');\n s = s.startOf('day');\n return s;\n },\n christmas: function christmas(s) {\n var year = getNow(s).year();\n s = s.set([year, 11, 25, 18, 0, 0]); // Dec 25\n\n return s;\n },\n 'new years': function newYears(s) {\n var year = getNow(s).year();\n s = s.set([year, 11, 31, 18, 0, 0]); // Dec 31\n\n return s;\n }\n };\n dates['new years eve'] = dates['new years'];\n var namedDates = dates;\n\n // - can't use built-in js parser ;(\n //=========================================\n // ISO Date\t \"2015-03-25\"\n // Short Date\t\"03/25/2015\" or \"2015/03/25\"\n // Long Date\t\"Mar 25 2015\" or \"25 Mar 2015\"\n // Full Date\t\"Wednesday March 25 2015\"\n //=========================================\n //-- also -\n // if the given epoch is really small, they've probably given seconds and not milliseconds\n // anything below this number is likely (but not necessarily) a mistaken input.\n // this may seem like an arbitrary number, but it's 'within jan 1970'\n // this is only really ambiguous until 2054 or so\n\n var minimumEpoch = 2500000000;\n var defaults = {\n year: new Date().getFullYear(),\n month: 0,\n date: 1\n }; //support [2016, 03, 01] format\n\n var handleArray = function handleArray(s, arr, today) {\n if (arr.length === 0) {\n return s;\n }\n\n var order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond'];\n\n for (var i = 0; i < order.length; i++) {\n var num = arr[i] || today[order[i]] || defaults[order[i]] || 0;\n s = s[order[i]](num);\n }\n\n return s;\n }; //support {year:2016, month:3} format\n\n\n var handleObject = function handleObject(s, obj, today) {\n // if obj is empty, do nothing\n if (Object.keys(obj).length === 0) {\n return s;\n }\n\n obj = Object.assign({}, defaults, today, obj);\n var keys = Object.keys(obj);\n\n for (var i = 0; i < keys.length; i++) {\n var unit = keys[i]; //make sure we have this method\n\n if (s[unit] === undefined || typeof s[unit] !== 'function') {\n continue;\n } //make sure the value is a number\n\n\n if (obj[unit] === null || obj[unit] === undefined || obj[unit] === '') {\n continue;\n }\n\n var num = obj[unit] || today[unit] || defaults[unit] || 0;\n s = s[unit](num);\n }\n\n return s;\n }; //find the epoch from different input styles\n\n\n var parseInput = function parseInput(s, input, givenTz) {\n var today = s._today || defaults; //if we've been given a epoch number, it's easy\n\n if (typeof input === 'number') {\n if (input > 0 && input < minimumEpoch && s.silent === false) {\n console.warn(' - Warning: You are setting the date to January 1970.');\n console.warn(' - did input seconds instead of milliseconds?');\n }\n\n s.epoch = input;\n return s;\n } //set tmp time\n\n\n s.epoch = Date.now(); // overwrite tmp time with 'today' value, if exists\n\n if (s._today && fns.isObject(s._today) && Object.keys(s._today).length > 0) {\n var res = handleObject(s, today, defaults);\n\n if (res.isValid()) {\n s.epoch = res.epoch;\n }\n } // null input means 'now'\n\n\n if (input === null || input === undefined || input === '') {\n return s; //k, we're good.\n } //support input of Date() object\n\n\n if (fns.isDate(input) === true) {\n s.epoch = input.getTime();\n return s;\n } //support [2016, 03, 01] format\n\n\n if (fns.isArray(input) === true) {\n s = handleArray(s, input, today);\n return s;\n } //support {year:2016, month:3} format\n\n\n if (fns.isObject(input) === true) {\n //support spacetime object as input\n if (input.epoch) {\n s.epoch = input.epoch;\n s.tz = input.tz;\n return s;\n }\n\n s = handleObject(s, input, today);\n return s;\n } //input as a string..\n\n\n if (typeof input !== 'string') {\n return s;\n } //little cleanup..\n\n\n input = input.replace(/\\b(mon|tues|wed|wednes|thu|thurs|fri|sat|satur|sun)(day)?\\b/i, '');\n input = input.replace(/,/g, '');\n input = input.replace(/ +/g, ' ').trim(); //try some known-words, like 'now'\n\n if (namedDates.hasOwnProperty(input) === true) {\n s = namedDates[input](s);\n return s;\n } //try each text-parse template, use the first good result\n\n\n for (var i = 0; i < strParse.length; i++) {\n var m = input.match(strParse[i].reg);\n\n if (m) {\n // console.log(strFmt[i].reg)\n var _res = strParse[i].parse(s, m, givenTz);\n\n if (_res !== null && _res.isValid()) {\n return _res;\n }\n }\n }\n\n if (s.silent === false) {\n console.warn(\"Warning: couldn't parse date-string: '\" + input + \"'\");\n }\n\n s.epoch = null;\n return s;\n };\n\n var input = parseInput;\n\n var shortDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n var longDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n var days = {\n \"short\": function short() {\n return shortDays;\n },\n \"long\": function long() {\n return longDays;\n },\n set: function set(i18n) {\n shortDays = i18n[\"short\"] || shortDays;\n longDays = i18n[\"long\"] || longDays;\n },\n aliases: {\n tues: 2,\n thur: 4,\n thurs: 4\n }\n };\n\n var titleCaseEnabled = true;\n var caseFormat = {\n useTitleCase: function useTitleCase() {\n return titleCaseEnabled;\n },\n set: function set(useTitleCase) {\n titleCaseEnabled = useTitleCase;\n }\n };\n\n // it's kind of nuts how involved this is\n // \"+01:00\", \"+0100\", or simply \"+01\"\n\n var isoOffset = function isoOffset(s) {\n var offset = s.timezone().current.offset;\n return !offset ? 'Z' : fns.formatTimezone(offset, ':');\n };\n\n var _offset = isoOffset;\n\n var applyCaseFormat = function applyCaseFormat(str) {\n if (caseFormat.useTitleCase()) {\n return fns.titleCase(str);\n }\n\n return str;\n };\n\n var format = {\n day: function day(s) {\n return applyCaseFormat(s.dayName());\n },\n 'day-short': function dayShort(s) {\n return applyCaseFormat(days[\"short\"]()[s.day()]);\n },\n 'day-number': function dayNumber(s) {\n return s.day();\n },\n 'day-ordinal': function dayOrdinal(s) {\n return fns.ordinal(s.day());\n },\n 'day-pad': function dayPad(s) {\n return fns.zeroPad(s.day());\n },\n date: function date(s) {\n return s.date();\n },\n 'date-ordinal': function dateOrdinal(s) {\n return fns.ordinal(s.date());\n },\n 'date-pad': function datePad(s) {\n return fns.zeroPad(s.date());\n },\n month: function month(s) {\n return applyCaseFormat(s.monthName());\n },\n 'month-short': function monthShort(s) {\n return applyCaseFormat(months[\"short\"]()[s.month()]);\n },\n 'month-number': function monthNumber(s) {\n return s.month();\n },\n 'month-ordinal': function monthOrdinal(s) {\n return fns.ordinal(s.month());\n },\n 'month-pad': function monthPad(s) {\n return fns.zeroPad(s.month());\n },\n 'iso-month': function isoMonth(s) {\n return fns.zeroPad(s.month() + 1);\n },\n //1-based months\n year: function year(s) {\n var year = s.year();\n\n if (year > 0) {\n return year;\n }\n\n year = Math.abs(year);\n return year + ' BC';\n },\n 'year-short': function yearShort(s) {\n var year = s.year();\n\n if (year > 0) {\n return \"'\".concat(String(s.year()).substr(2, 4));\n }\n\n year = Math.abs(year);\n return year + ' BC';\n },\n 'iso-year': function isoYear(s) {\n var year = s.year();\n var isNegative = year < 0;\n var str = fns.zeroPad(Math.abs(year), 4); //0-padded\n\n if (isNegative) {\n //negative years are for some reason 6-digits ('-00008')\n str = fns.zeroPad(str, 6);\n str = '-' + str;\n }\n\n return str;\n },\n time: function time(s) {\n return s.time();\n },\n 'time-24': function time24(s) {\n return \"\".concat(s.hour24(), \":\").concat(fns.zeroPad(s.minute()));\n },\n hour: function hour(s) {\n return s.hour12();\n },\n 'hour-pad': function hourPad(s) {\n return fns.zeroPad(s.hour12());\n },\n 'hour-24': function hour24(s) {\n return s.hour24();\n },\n 'hour-24-pad': function hour24Pad(s) {\n return fns.zeroPad(s.hour24());\n },\n minute: function minute(s) {\n return s.minute();\n },\n 'minute-pad': function minutePad(s) {\n return fns.zeroPad(s.minute());\n },\n second: function second(s) {\n return s.second();\n },\n 'second-pad': function secondPad(s) {\n return fns.zeroPad(s.second());\n },\n ampm: function ampm(s) {\n return s.ampm();\n },\n quarter: function quarter(s) {\n return 'Q' + s.quarter();\n },\n season: function season(s) {\n return s.season();\n },\n era: function era(s) {\n return s.era();\n },\n json: function json(s) {\n return s.json();\n },\n timezone: function timezone(s) {\n return s.timezone().name;\n },\n offset: function offset(s) {\n return _offset(s);\n },\n numeric: function numeric(s) {\n return \"\".concat(s.year(), \"/\").concat(fns.zeroPad(s.month() + 1), \"/\").concat(fns.zeroPad(s.date()));\n },\n // yyyy/mm/dd\n 'numeric-us': function numericUs(s) {\n return \"\".concat(fns.zeroPad(s.month() + 1), \"/\").concat(fns.zeroPad(s.date()), \"/\").concat(s.year());\n },\n // mm/dd/yyyy\n 'numeric-uk': function numericUk(s) {\n return \"\".concat(fns.zeroPad(s.date()), \"/\").concat(fns.zeroPad(s.month() + 1), \"/\").concat(s.year());\n },\n //dd/mm/yyyy\n 'mm/dd': function mmDd(s) {\n return \"\".concat(fns.zeroPad(s.month() + 1), \"/\").concat(fns.zeroPad(s.date()));\n },\n //mm/dd\n // ... https://en.wikipedia.org/wiki/ISO_8601 ;(((\n iso: function iso(s) {\n var year = s.format('iso-year');\n var month = fns.zeroPad(s.month() + 1); //1-based months\n\n var date = fns.zeroPad(s.date());\n var hour = fns.zeroPad(s.h24());\n var minute = fns.zeroPad(s.minute());\n var second = fns.zeroPad(s.second());\n var ms = fns.zeroPad(s.millisecond(), 3);\n var offset = _offset(s);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(date, \"T\").concat(hour, \":\").concat(minute, \":\").concat(second, \".\").concat(ms).concat(offset); //2018-03-09T08:50:00.000-05:00\n },\n 'iso-short': function isoShort(s) {\n var month = fns.zeroPad(s.month() + 1); //1-based months\n\n var date = fns.zeroPad(s.date());\n return \"\".concat(s.year(), \"-\").concat(month, \"-\").concat(date); //2017-02-15\n },\n 'iso-utc': function isoUtc(s) {\n return new Date(s.epoch).toISOString(); //2017-03-08T19:45:28.367Z\n },\n //i made these up\n nice: function nice(s) {\n return \"\".concat(months[\"short\"]()[s.month()], \" \").concat(fns.ordinal(s.date()), \", \").concat(s.time());\n },\n 'nice-24': function nice24(s) {\n return \"\".concat(months[\"short\"]()[s.month()], \" \").concat(fns.ordinal(s.date()), \", \").concat(s.hour24(), \":\").concat(fns.zeroPad(s.minute()));\n },\n 'nice-year': function niceYear(s) {\n return \"\".concat(months[\"short\"]()[s.month()], \" \").concat(fns.ordinal(s.date()), \", \").concat(s.year());\n },\n 'nice-day': function niceDay(s) {\n return \"\".concat(days[\"short\"]()[s.day()], \" \").concat(applyCaseFormat(months[\"short\"]()[s.month()]), \" \").concat(fns.ordinal(s.date()));\n },\n 'nice-full': function niceFull(s) {\n return \"\".concat(s.dayName(), \" \").concat(applyCaseFormat(s.monthName()), \" \").concat(fns.ordinal(s.date()), \", \").concat(s.time());\n },\n 'nice-full-24': function niceFull24(s) {\n return \"\".concat(s.dayName(), \" \").concat(applyCaseFormat(s.monthName()), \" \").concat(fns.ordinal(s.date()), \", \").concat(s.hour24(), \":\").concat(fns.zeroPad(s.minute()));\n }\n }; //aliases\n\n var aliases = {\n 'day-name': 'day',\n 'month-name': 'month',\n 'iso 8601': 'iso',\n 'time-h24': 'time-24',\n 'time-12': 'time',\n 'time-h12': 'time',\n tz: 'timezone',\n 'day-num': 'day-number',\n 'month-num': 'month-number',\n 'month-iso': 'iso-month',\n 'year-iso': 'iso-year',\n 'nice-short': 'nice',\n 'nice-short-24': 'nice-24',\n mdy: 'numeric-us',\n dmy: 'numeric-uk',\n ymd: 'numeric',\n 'yyyy/mm/dd': 'numeric',\n 'mm/dd/yyyy': 'numeric-us',\n 'dd/mm/yyyy': 'numeric-us',\n 'little-endian': 'numeric-uk',\n 'big-endian': 'numeric',\n 'day-nice': 'nice-day'\n };\n Object.keys(aliases).forEach(function (k) {\n return format[k] = format[aliases[k]];\n });\n\n var printFormat = function printFormat(s) {\n var str = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n //don't print anything if it's an invalid date\n if (s.isValid() !== true) {\n return '';\n } //support .format('month')\n\n\n if (format.hasOwnProperty(str)) {\n var out = format[str](s) || '';\n\n if (str !== 'json') {\n out = String(out);\n\n if (str !== 'ampm') {\n out = applyCaseFormat(out);\n }\n }\n\n return out;\n } //support '{hour}:{minute}' notation\n\n\n if (str.indexOf('{') !== -1) {\n var sections = /\\{(.+?)\\}/g;\n str = str.replace(sections, function (_, fmt) {\n fmt = fmt.toLowerCase().trim();\n\n if (format.hasOwnProperty(fmt)) {\n var _out = String(format[fmt](s));\n\n if (fmt !== 'ampm') {\n return applyCaseFormat(_out);\n }\n\n return _out;\n }\n\n return '';\n });\n return str;\n }\n\n return s.format('iso-short');\n };\n\n var format_1 = printFormat;\n\n var pad = fns.zeroPad;\n var formatTimezone = fns.formatTimezone; //parse this insane unix-time-templating thing, from the 19th century\n //http://unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns\n //time-symbols we support\n\n var mapping = {\n G: function G(s) {\n return s.era();\n },\n GG: function GG(s) {\n return s.era();\n },\n GGG: function GGG(s) {\n return s.era();\n },\n GGGG: function GGGG(s) {\n return s.era() === 'AD' ? 'Anno Domini' : 'Before Christ';\n },\n //year\n y: function y(s) {\n return s.year();\n },\n yy: function yy(s) {\n //last two chars\n return parseInt(String(s.year()).substr(2, 4), 10);\n },\n yyy: function yyy(s) {\n return s.year();\n },\n yyyy: function yyyy(s) {\n return s.year();\n },\n yyyyy: function yyyyy(s) {\n return '0' + s.year();\n },\n // u: (s) => {},//extended non-gregorian years\n //quarter\n Q: function Q(s) {\n return s.quarter();\n },\n QQ: function QQ(s) {\n return s.quarter();\n },\n QQQ: function QQQ(s) {\n return s.quarter();\n },\n QQQQ: function QQQQ(s) {\n return s.quarter();\n },\n //month\n M: function M(s) {\n return s.month() + 1;\n },\n MM: function MM(s) {\n return pad(s.month() + 1);\n },\n MMM: function MMM(s) {\n return s.format('month-short');\n },\n MMMM: function MMMM(s) {\n return s.format('month');\n },\n //week\n w: function w(s) {\n return s.week();\n },\n ww: function ww(s) {\n return pad(s.week());\n },\n //week of month\n // W: (s) => s.week(),\n //date of month\n d: function d(s) {\n return s.date();\n },\n dd: function dd(s) {\n return pad(s.date());\n },\n //date of year\n D: function D(s) {\n return s.dayOfYear();\n },\n DD: function DD(s) {\n return pad(s.dayOfYear());\n },\n DDD: function DDD(s) {\n return pad(s.dayOfYear(), 3);\n },\n // F: (s) => {},//date of week in month\n // g: (s) => {},//modified julian day\n //day\n E: function E(s) {\n return s.format('day-short');\n },\n EE: function EE(s) {\n return s.format('day-short');\n },\n EEE: function EEE(s) {\n return s.format('day-short');\n },\n EEEE: function EEEE(s) {\n return s.format('day');\n },\n EEEEE: function EEEEE(s) {\n return s.format('day')[0];\n },\n e: function e(s) {\n return s.day();\n },\n ee: function ee(s) {\n return s.day();\n },\n eee: function eee(s) {\n return s.format('day-short');\n },\n eeee: function eeee(s) {\n return s.format('day');\n },\n eeeee: function eeeee(s) {\n return s.format('day')[0];\n },\n //am/pm\n a: function a(s) {\n return s.ampm().toUpperCase();\n },\n aa: function aa(s) {\n return s.ampm().toUpperCase();\n },\n aaa: function aaa(s) {\n return s.ampm().toUpperCase();\n },\n aaaa: function aaaa(s) {\n return s.ampm().toUpperCase();\n },\n //hour\n h: function h(s) {\n return s.h12();\n },\n hh: function hh(s) {\n return pad(s.h12());\n },\n H: function H(s) {\n return s.hour();\n },\n HH: function HH(s) {\n return pad(s.hour());\n },\n // j: (s) => {},//weird hour format\n m: function m(s) {\n return s.minute();\n },\n mm: function mm(s) {\n return pad(s.minute());\n },\n s: function s(_s) {\n return _s.second();\n },\n ss: function ss(s) {\n return pad(s.second());\n },\n //milliseconds in the day\n A: function A(s) {\n return s.epoch - s.startOf('day').epoch;\n },\n //timezone\n z: function z(s) {\n return s.timezone().name;\n },\n zz: function zz(s) {\n return s.timezone().name;\n },\n zzz: function zzz(s) {\n return s.timezone().name;\n },\n zzzz: function zzzz(s) {\n return s.timezone().name;\n },\n Z: function Z(s) {\n return formatTimezone(s.timezone().current.offset);\n },\n ZZ: function ZZ(s) {\n return formatTimezone(s.timezone().current.offset);\n },\n ZZZ: function ZZZ(s) {\n return formatTimezone(s.timezone().current.offset);\n },\n ZZZZ: function ZZZZ(s) {\n return formatTimezone(s.timezone().current.offset, ':');\n }\n };\n\n var addAlias = function addAlias(_char, to, n) {\n var name = _char;\n var toName = to;\n\n for (var i = 0; i < n; i += 1) {\n mapping[name] = mapping[toName];\n name += _char;\n toName += to;\n }\n };\n\n addAlias('q', 'Q', 4);\n addAlias('L', 'M', 4);\n addAlias('Y', 'y', 4);\n addAlias('c', 'e', 4);\n addAlias('k', 'H', 2);\n addAlias('K', 'h', 2);\n addAlias('S', 's', 2);\n addAlias('v', 'z', 4);\n addAlias('V', 'Z', 4); // support unix-style escaping with ' character\n\n var escapeChars = function escapeChars(arr) {\n for (var i = 0; i < arr.length; i += 1) {\n if (arr[i] === \"'\") {\n // greedy-search for next apostrophe\n for (var o = i + 1; o < arr.length; o += 1) {\n if (arr[o]) {\n arr[i] += arr[o];\n }\n\n if (arr[o] === \"'\") {\n arr[o] = null;\n break;\n }\n\n arr[o] = null;\n }\n }\n }\n\n return arr.filter(function (ch) {\n return ch;\n });\n }; //combine consecutive chars, like 'yyyy' as one.\n\n\n var combineRepeated = function combineRepeated(arr) {\n for (var i = 0; i < arr.length; i += 1) {\n var c = arr[i]; // greedy-forward\n\n for (var o = i + 1; o < arr.length; o += 1) {\n if (arr[o] === c) {\n arr[i] += arr[o];\n arr[o] = null;\n } else {\n break;\n }\n }\n } // '' means one apostrophe\n\n\n arr = arr.filter(function (ch) {\n return ch;\n });\n arr = arr.map(function (str) {\n if (str === \"''\") {\n str = \"'\";\n }\n\n return str;\n });\n return arr;\n };\n\n var unixFmt = function unixFmt(s, str) {\n var arr = str.split(''); // support character escaping\n\n arr = escapeChars(arr); //combine 'yyyy' as string.\n\n arr = combineRepeated(arr);\n return arr.reduce(function (txt, c) {\n if (mapping[c] !== undefined) {\n txt += mapping[c](s) || '';\n } else {\n // 'unescape'\n if (/^'.{1,}'$/.test(c)) {\n c = c.replace(/'/g, '');\n }\n\n txt += c;\n }\n\n return txt;\n }, '');\n };\n\n var unixFmt_1 = unixFmt;\n\n var units$1 = ['year', 'season', 'quarter', 'month', 'week', 'day', 'quarterHour', 'hour', 'minute'];\n\n var doUnit = function doUnit(s, k) {\n var start = s.clone().startOf(k);\n var end = s.clone().endOf(k);\n var duration = end.epoch - start.epoch;\n var percent = (s.epoch - start.epoch) / duration;\n return parseFloat(percent.toFixed(2));\n }; //how far it is along, from 0-1\n\n\n var progress = function progress(s, unit) {\n if (unit) {\n unit = fns.normalize(unit);\n return doUnit(s, unit);\n }\n\n var obj = {};\n units$1.forEach(function (k) {\n obj[k] = doUnit(s, k);\n });\n return obj;\n };\n\n var progress_1 = progress;\n\n var nearest = function nearest(s, unit) {\n //how far have we gone?\n var prog = s.progress();\n unit = fns.normalize(unit); //fix camel-case for this one\n\n if (unit === 'quarterhour') {\n unit = 'quarterHour';\n }\n\n if (prog[unit] !== undefined) {\n // go forward one?\n if (prog[unit] > 0.5) {\n s = s.add(1, unit);\n } // go to start\n\n\n s = s.startOf(unit);\n } else if (s.silent === false) {\n console.warn(\"no known unit '\" + unit + \"'\");\n }\n\n return s;\n };\n\n var nearest_1 = nearest;\n\n //increment until dates are the same\n var climb = function climb(a, b, unit) {\n var i = 0;\n a = a.clone();\n\n while (a.isBefore(b)) {\n //do proper, expensive increment to catch all-the-tricks\n a = a.add(1, unit);\n i += 1;\n } //oops, we went too-far..\n\n\n if (a.isAfter(b, unit)) {\n i -= 1;\n }\n\n return i;\n }; // do a thurough +=1 on the unit, until they match\n // for speed-reasons, only used on day, month, week.\n\n\n var diffOne = function diffOne(a, b, unit) {\n if (a.isBefore(b)) {\n return climb(a, b, unit);\n } else {\n return climb(b, a, unit) * -1; //reverse it\n }\n };\n\n var one = diffOne;\n\n // 2020 - 2019 may be 1 year, or 0 years\n // - '1 year difference' means 366 days during a leap year\n\n var fastYear = function fastYear(a, b) {\n var years = b.year() - a.year(); // should we decrement it by 1?\n\n a = a.year(b.year());\n\n if (a.isAfter(b)) {\n years -= 1;\n }\n\n return years;\n }; // use a waterfall-method for computing a diff of any 'pre-knowable' units\n // compute years, then compute months, etc..\n // ... then ms-math for any very-small units\n\n\n var diff = function diff(a, b) {\n // an hour is always the same # of milliseconds\n // so these units can be 'pre-calculated'\n var msDiff = b.epoch - a.epoch;\n var obj = {\n milliseconds: msDiff,\n seconds: parseInt(msDiff / 1000, 10)\n };\n obj.minutes = parseInt(obj.seconds / 60, 10);\n obj.hours = parseInt(obj.minutes / 60, 10); //do the year\n\n var tmp = a.clone();\n obj.years = fastYear(tmp, b);\n tmp = a.add(obj.years, 'year'); //there's always 12 months in a year...\n\n obj.months = obj.years * 12;\n tmp = a.add(obj.months, 'month');\n obj.months += one(tmp, b, 'month'); // there's always atleast 52 weeks in a year..\n // (month * 4) isn't as close\n\n obj.weeks = obj.years * 52;\n tmp = a.add(obj.weeks, 'week');\n obj.weeks += one(tmp, b, 'week'); // there's always atleast 7 days in a week\n\n obj.days = obj.weeks * 7;\n tmp = a.add(obj.days, 'day');\n obj.days += one(tmp, b, 'day');\n return obj;\n };\n\n var waterfall = diff;\n\n var reverseDiff = function reverseDiff(obj) {\n Object.keys(obj).forEach(function (k) {\n obj[k] *= -1;\n });\n return obj;\n }; // this method counts a total # of each unit, between a, b.\n // '1 month' means 28 days in february\n // '1 year' means 366 days in a leap year\n\n\n var main = function main(a, b, unit) {\n b = fns.beADate(b, a); //reverse values, if necessary\n\n var reversed = false;\n\n if (a.isAfter(b)) {\n var tmp = a;\n a = b;\n b = tmp;\n reversed = true;\n } //compute them all (i know!)\n\n\n var obj = waterfall(a, b);\n\n if (reversed) {\n obj = reverseDiff(obj);\n } //return just the requested unit\n\n\n if (unit) {\n //make sure it's plural-form\n unit = fns.normalize(unit);\n\n if (/s$/.test(unit) !== true) {\n unit += 's';\n }\n\n if (unit === 'dates') {\n unit = 'days';\n }\n\n return obj[unit];\n }\n\n return obj;\n };\n\n var diff$1 = main;\n\n //our conceptual 'break-points' for each unit\n\n var qualifiers = {\n months: {\n almost: 10,\n over: 4\n },\n days: {\n almost: 25,\n over: 10\n },\n hours: {\n almost: 20,\n over: 8\n },\n minutes: {\n almost: 50,\n over: 20\n },\n seconds: {\n almost: 50,\n over: 20\n }\n }; //get number of hours/minutes... between the two dates\n\n function getDiff(a, b) {\n var isBefore = a.isBefore(b);\n var later = isBefore ? b : a;\n var earlier = isBefore ? a : b;\n earlier = earlier.clone();\n var diff = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n Object.keys(diff).forEach(function (unit) {\n if (earlier.isSame(later, unit)) {\n return;\n }\n\n var max = earlier.diff(later, unit);\n earlier = earlier.add(max, unit);\n diff[unit] = max;\n }); //reverse it, if necessary\n\n if (isBefore) {\n Object.keys(diff).forEach(function (u) {\n if (diff[u] !== 0) {\n diff[u] *= -1;\n }\n });\n }\n\n return diff;\n } // Expects a plural unit arg\n\n\n function pluralize(value, unit) {\n if (value === 1) {\n unit = unit.slice(0, -1);\n }\n\n return value + ' ' + unit;\n } //create the human-readable diff between the two dates\n\n\n var since = function since(start, end) {\n end = fns.beADate(end, start);\n var diff = getDiff(start, end);\n var isNow = Object.keys(diff).every(function (u) {\n return !diff[u];\n });\n\n if (isNow === true) {\n return {\n diff: diff,\n rounded: 'now',\n qualified: 'now',\n precise: 'now'\n };\n }\n\n var rounded;\n var qualified;\n var precise;\n var englishValues = []; //go through each value and create its text-representation\n\n Object.keys(diff).forEach(function (unit, i, units) {\n var value = Math.abs(diff[unit]);\n\n if (value === 0) {\n return;\n }\n\n var englishValue = pluralize(value, unit);\n englishValues.push(englishValue);\n\n if (!rounded) {\n rounded = qualified = englishValue;\n\n if (i > 4) {\n return;\n } //is it a 'almost' something, etc?\n\n\n var nextUnit = units[i + 1];\n var nextValue = Math.abs(diff[nextUnit]);\n\n if (nextValue > qualifiers[nextUnit].almost) {\n rounded = pluralize(value + 1, unit);\n qualified = 'almost ' + rounded;\n } else if (nextValue > qualifiers[nextUnit].over) qualified = 'over ' + englishValue;\n }\n }); //make them into a string\n\n precise = englishValues.splice(0, 2).join(', '); //handle before/after logic\n\n if (start.isAfter(end) === true) {\n rounded += ' ago';\n qualified += ' ago';\n precise += ' ago';\n } else {\n rounded = 'in ' + rounded;\n qualified = 'in ' + qualified;\n precise = 'in ' + precise;\n }\n\n return {\n diff: diff,\n rounded: rounded,\n qualified: qualified,\n precise: precise\n };\n };\n\n var since_1 = since;\n\n //https://www.timeanddate.com/calendar/aboutseasons.html\n // Spring - from March 1 to May 31;\n // Summer - from June 1 to August 31;\n // Fall (autumn) - from September 1 to November 30; and,\n // Winter - from December 1 to February 28 (February 29 in a leap year).\n var seasons = {\n north: [['spring', 2, 1], //spring march 1\n ['summer', 5, 1], //june 1\n ['fall', 8, 1], //sept 1\n ['autumn', 8, 1], //sept 1\n ['winter', 11, 1] //dec 1\n ],\n south: [['fall', 2, 1], //march 1\n ['autumn', 2, 1], //march 1\n ['winter', 5, 1], //june 1\n ['spring', 8, 1], //sept 1\n ['summer', 11, 1] //dec 1\n ]\n };\n\n var quarters = [null, [0, 1], //jan 1\n [3, 1], //apr 1\n [6, 1], //july 1\n [9, 1] //oct 1\n ];\n\n var units$2 = {\n minute: function minute(s) {\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s;\n },\n quarterhour: function quarterhour(s) {\n var minute = s.minutes();\n\n if (minute >= 45) {\n s = s.minutes(45);\n } else if (minute >= 30) {\n s = s.minutes(30);\n } else if (minute >= 15) {\n s = s.minutes(15);\n } else {\n s = s.minutes(0);\n }\n\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s;\n },\n hour: function hour(s) {\n walk_1(s, {\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n },\n day: function day(s) {\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n },\n week: function week(s) {\n var original = s.clone();\n s = s.day(s._weekStart); //monday\n\n if (s.isAfter(original)) {\n s = s.subtract(1, 'week');\n }\n\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n },\n month: function month(s) {\n walk_1(s, {\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n },\n quarter: function quarter(s) {\n var q = s.quarter();\n\n if (quarters[q]) {\n walk_1(s, {\n month: quarters[q][0],\n date: quarters[q][1],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n }\n\n return s;\n },\n season: function season(s) {\n var current = s.season();\n var hem = 'north';\n\n if (s.hemisphere() === 'South') {\n hem = 'south';\n }\n\n for (var i = 0; i < seasons[hem].length; i++) {\n if (seasons[hem][i][0] === current) {\n //winter goes between years\n var year = s.year();\n\n if (current === 'winter' && s.month() < 3) {\n year -= 1;\n }\n\n walk_1(s, {\n year: year,\n month: seasons[hem][i][1],\n date: seasons[hem][i][2],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n }\n }\n\n return s;\n },\n year: function year(s) {\n walk_1(s, {\n month: 0,\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s;\n },\n decade: function decade(s) {\n s = s.startOf('year');\n var year = s.year();\n var decade = parseInt(year / 10, 10) * 10;\n s = s.year(decade);\n return s;\n },\n century: function century(s) {\n s = s.startOf('year');\n var year = s.year(); // near 0AD goes '-1 | +1'\n\n var decade = parseInt(year / 100, 10) * 100;\n s = s.year(decade);\n return s;\n }\n };\n units$2.date = units$2.day;\n\n var startOf = function startOf(a, unit) {\n var s = a.clone();\n unit = fns.normalize(unit);\n\n if (units$2[unit]) {\n return units$2[unit](s);\n }\n\n if (unit === 'summer' || unit === 'winter') {\n s = s.season(unit);\n return units$2.season(s);\n }\n\n return s;\n }; //piggy-backs off startOf\n\n\n var endOf = function endOf(a, unit) {\n var s = a.clone();\n unit = fns.normalize(unit);\n\n if (units$2[unit]) {\n // go to beginning, go to next one, step back 1ms\n s = units$2[unit](s); // startof\n\n s = s.add(1, unit);\n s = s.subtract(1, 'millisecond');\n return s;\n }\n\n return s;\n };\n\n var startOf_1 = {\n startOf: startOf,\n endOf: endOf\n };\n\n var isDay = function isDay(unit) {\n if (days[\"short\"]().find(function (s) {\n return s === unit;\n })) {\n return true;\n }\n\n if (days[\"long\"]().find(function (s) {\n return s === unit;\n })) {\n return true;\n }\n\n return false;\n }; // return a list of the weeks/months/days between a -> b\n // returns spacetime objects in the timezone of the input\n\n\n var every = function every(start) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var end = arguments.length > 2 ? arguments[2] : undefined;\n\n if (!unit || !end) {\n return [];\n } //cleanup unit param\n\n\n unit = fns.normalize(unit); //cleanup to param\n\n end = start.clone().set(end); //swap them, if they're backwards\n\n if (start.isAfter(end)) {\n var tmp = start;\n start = end;\n end = tmp;\n } //support 'every wednesday'\n\n\n var d = start.clone();\n\n if (isDay(unit)) {\n d = d.next(unit);\n unit = 'week';\n } else {\n d = d.next(unit);\n } //okay, actually start doing it\n\n\n var result = [];\n\n while (d.isBefore(end)) {\n result.push(d);\n d = d.add(1, unit);\n }\n\n return result;\n };\n\n var every_1 = every;\n\n var parseDst = function parseDst(dst) {\n if (!dst) {\n return [];\n }\n\n return dst.split('->');\n };\n\n var titleCase = function titleCase(str) {\n str = str[0].toUpperCase() + str.substr(1);\n str = str.replace(/\\/gmt/, '/GMT');\n str = str.replace(/[\\/_]([a-z])/gi, function (s) {\n return s.toUpperCase();\n });\n return str;\n }; //get metadata about this timezone\n\n\n var timezone = function timezone(s) {\n var zones = s.timezones;\n var tz = s.tz;\n\n if (zones.hasOwnProperty(tz) === false) {\n tz = find(s.tz, zones);\n }\n\n if (tz === null) {\n if (s.silent === false) {\n console.warn(\"Warn: could not find given or local timezone - '\" + s.tz + \"'\");\n }\n\n return {\n current: {\n epochShift: 0\n }\n };\n }\n\n var found = zones[tz];\n var result = {\n name: titleCase(tz),\n hasDst: Boolean(found.dst),\n default_offset: found.offset,\n //do north-hemisphere version as default (sorry!)\n hemisphere: found.hem === 's' ? 'South' : 'North',\n current: {}\n };\n\n if (result.hasDst) {\n var arr = parseDst(found.dst);\n result.change = {\n start: arr[0],\n back: arr[1]\n };\n } //find the offsets for summer/winter times\n //(these variable names are north-centric)\n\n\n var summer = found.offset; // (july)\n\n var winter = summer; // (january) assume it's the same for now\n\n if (result.hasDst === true) {\n if (result.hemisphere === 'North') {\n winter = summer - 1;\n } else {\n //southern hemisphere\n winter = found.offset + 1;\n }\n } //find out which offset to use right now\n //use 'summer' time july-time\n\n\n if (result.hasDst === false) {\n result.current.offset = summer;\n result.current.isDST = false;\n } else if (summerTime(s.epoch, result.change.start, result.change.back, summer, winter) === true) {\n result.current.offset = summer;\n result.current.isDST = result.hemisphere === 'North'; //dst 'on' in winter in north\n } else {\n //use 'winter' january-time\n result.current.offset = winter;\n result.current.isDST = result.hemisphere === 'South'; //dst 'on' in summer in south\n }\n\n return result;\n };\n\n var timezone_1 = timezone;\n\n var units$3 = ['century', 'decade', 'year', 'month', 'date', 'day', 'hour', 'minute', 'second', 'millisecond']; //the spacetime instance methods (also, the API)\n\n var methods = {\n set: function set(input$1, tz) {\n var s = this.clone();\n s = input(s, input$1, null);\n\n if (tz) {\n this.tz = find(tz);\n }\n\n return s;\n },\n timezone: function timezone() {\n return timezone_1(this);\n },\n isDST: function isDST() {\n return timezone_1(this).current.isDST;\n },\n hasDST: function hasDST() {\n return timezone_1(this).hasDst;\n },\n offset: function offset() {\n return timezone_1(this).current.offset * 60;\n },\n hemisphere: function hemisphere() {\n return timezone_1(this).hemisphere;\n },\n format: function format(fmt) {\n return format_1(this, fmt);\n },\n unixFmt: function unixFmt(fmt) {\n return unixFmt_1(this, fmt);\n },\n startOf: function startOf(unit) {\n return startOf_1.startOf(this, unit);\n },\n endOf: function endOf(unit) {\n return startOf_1.endOf(this, unit);\n },\n leapYear: function leapYear() {\n var year = this.year();\n return fns.isLeapYear(year);\n },\n progress: function progress(unit) {\n return progress_1(this, unit);\n },\n nearest: function nearest(unit) {\n return nearest_1(this, unit);\n },\n diff: function diff(d, unit) {\n return diff$1(this, d, unit);\n },\n since: function since(d) {\n if (!d) {\n d = this.clone().set();\n }\n\n return since_1(this, d);\n },\n next: function next(unit) {\n var s = this.add(1, unit);\n return s.startOf(unit);\n },\n //the start of the previous year/week/century\n last: function last(unit) {\n var s = this.subtract(1, unit);\n return s.startOf(unit);\n },\n isValid: function isValid() {\n //null/undefined epochs\n if (!this.epoch && this.epoch !== 0) {\n return false;\n }\n\n return !isNaN(this.d.getTime());\n },\n //travel to this timezone\n \"goto\": function goto(tz) {\n var s = this.clone();\n s.tz = find(tz, s.timezones); //science!\n\n return s;\n },\n //get each week/month/day between a -> b\n every: function every(unit, to) {\n return every_1(this, unit, to);\n },\n isAwake: function isAwake() {\n var hour = this.hour(); //10pm -> 8am\n\n if (hour < 8 || hour > 22) {\n return false;\n }\n\n return true;\n },\n isAsleep: function isAsleep() {\n return !this.isAwake();\n },\n //pretty-printing\n log: function log() {\n console.log('');\n console.log(format_1(this, 'nice-short'));\n return this;\n },\n logYear: function logYear() {\n console.log('');\n console.log(format_1(this, 'full-short'));\n return this;\n },\n json: function json() {\n var _this = this;\n\n return units$3.reduce(function (h, unit) {\n h[unit] = _this[unit]();\n return h;\n }, {});\n },\n debug: function debug() {\n var tz = this.timezone();\n var date = this.format('MM') + ' ' + this.format('date-ordinal') + ' ' + this.year();\n date += '\\n - ' + this.format('time');\n console.log('\\n\\n', date + '\\n - ' + tz.name + ' (' + tz.current.offset + ')');\n return this;\n },\n //alias of 'since' but opposite - like moment.js\n from: function from(d) {\n d = this.clone().set(d);\n return d.since(this);\n },\n fromNow: function fromNow() {\n var d = this.clone().set(Date.now());\n return d.since(this);\n },\n weekStart: function weekStart(input) {\n //accept a number directly\n if (typeof input === 'number') {\n this._weekStart = input;\n return this;\n }\n\n if (typeof input === 'string') {\n // accept 'wednesday'\n input = input.toLowerCase().trim();\n var num = days[\"short\"]().indexOf(input);\n\n if (num === -1) {\n num = days[\"long\"]().indexOf(input);\n }\n\n if (num === -1) {\n num = 1; //go back to default\n }\n\n this._weekStart = num;\n } else {\n console.warn('Spacetime Error: Cannot understand .weekStart() input:', input);\n }\n\n return this;\n }\n }; // aliases\n\n methods.inDST = methods.isDST;\n methods.round = methods.nearest;\n methods.each = methods.every;\n var methods_1 = methods;\n\n //these methods wrap around them.\n\n var isLeapYear$1 = fns.isLeapYear;\n\n var validate = function validate(n) {\n //handle number as a string\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n }\n\n return n;\n };\n\n var order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond']; //reduce hostile micro-changes when moving dates by millisecond\n\n var confirm = function confirm(s, tmp, unit) {\n var n = order.indexOf(unit);\n var arr = order.slice(n, order.length);\n\n for (var i = 0; i < arr.length; i++) {\n var want = tmp[arr[i]]();\n s[arr[i]](want);\n }\n\n return s;\n };\n\n var set = {\n milliseconds: function milliseconds(s, n) {\n n = validate(n);\n var current = s.millisecond();\n var diff = current - n; //milliseconds to shift by\n\n return s.epoch - diff;\n },\n seconds: function seconds(s, n) {\n n = validate(n);\n var diff = s.second() - n;\n var shift = diff * milliseconds.second;\n return s.epoch - shift;\n },\n minutes: function minutes(s, n) {\n n = validate(n);\n var old = s.clone();\n var diff = s.minute() - n;\n var shift = diff * milliseconds.minute;\n s.epoch -= shift; // check against a screw-up\n // if (old.hour() != s.hour()) {\n // walkTo(old, {\n // minute: n\n // })\n // return old.epoch\n // }\n\n confirm(s, old, 'second');\n return s.epoch;\n },\n hours: function hours(s, n) {\n n = validate(n);\n\n if (n >= 24) {\n n = 24;\n } else if (n < 0) {\n n = 0;\n }\n\n var old = s.clone();\n var diff = s.hour() - n;\n var shift = diff * milliseconds.hour;\n s.epoch -= shift; // oops, did we change the day?\n\n if (s.date() !== old.date()) {\n s = old.clone();\n\n if (diff > 1) {\n diff -= 1;\n }\n\n if (diff < 1) {\n diff += 1;\n }\n\n shift = diff * milliseconds.hour;\n s.epoch -= shift;\n }\n\n walk_1(s, {\n hour: n\n });\n confirm(s, old, 'minute');\n return s.epoch;\n },\n //support setting time by '4:25pm' - this isn't very-well developed..\n time: function time(s, str) {\n var m = str.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);\n\n if (!m) {\n //fallback to support just '2am'\n m = str.match(/([0-9]{1,2}) ?(am|pm)/);\n\n if (!m) {\n return s.epoch;\n }\n\n m.splice(2, 0, '0'); //add implicit 0 minutes\n\n m.splice(3, 0, ''); //add implicit seconds\n }\n\n var h24 = false;\n var hour = parseInt(m[1], 10);\n var minute = parseInt(m[2], 10);\n\n if (hour > 12) {\n h24 = true;\n } //make the hour into proper 24h time\n\n\n if (h24 === false) {\n if (m[4] === 'am' && hour === 12) {\n //12am is midnight\n hour = 0;\n }\n\n if (m[4] === 'pm' && hour < 12) {\n //12pm is noon\n hour += 12;\n }\n } // handle seconds\n\n\n m[3] = m[3] || '';\n m[3] = m[3].replace(/:/, '');\n var sec = parseInt(m[3], 10) || 0;\n s = s.hour(hour);\n s = s.minute(minute);\n s = s.second(sec);\n s = s.millisecond(0);\n return s.epoch;\n },\n date: function date(s, n) {\n n = validate(n); //avoid setting february 31st\n\n if (n > 28) {\n var month = s.month();\n var max = monthLengths_1[month]; // support leap day in february\n\n if (month === 1 && n === 29 && isLeapYear$1(s.year())) {\n max = 29;\n }\n\n if (n > max) {\n n = max;\n }\n } //avoid setting < 0\n\n\n if (n <= 0) {\n n = 1;\n }\n\n walk_1(s, {\n date: n\n });\n return s.epoch;\n },\n //this one's tricky\n month: function month(s, n) {\n if (typeof n === 'string') {\n n = months.mapping()[n.toLowerCase()];\n }\n\n n = validate(n); //don't go past december\n\n if (n >= 12) {\n n = 11;\n }\n\n if (n <= 0) {\n n = 0;\n }\n\n var date = s.date(); //there's no 30th of february, etc.\n\n if (date > monthLengths_1[n]) {\n //make it as close as we can..\n date = monthLengths_1[n];\n }\n\n walk_1(s, {\n month: n,\n date: date\n });\n return s.epoch;\n },\n year: function year(s, n) {\n // support '97\n if (typeof n === 'string' && /^'[0-9]{2}$/.test(n)) {\n n = n.replace(/'/, '').trim();\n n = Number(n); // '89 is 1989\n\n if (n > 30) {\n //change this in 10y\n n = 1900 + n;\n } else {\n // '12 is 2012\n n = 2000 + n;\n }\n }\n\n n = validate(n);\n walk_1(s, {\n year: n\n });\n return s.epoch;\n },\n dayOfYear: function dayOfYear(s, n) {\n n = validate(n);\n var old = s.clone();\n n -= 1; //days are 1-based\n\n if (n <= 0) {\n n = 0;\n } else if (n >= 365) {\n n = 364;\n }\n\n s = s.startOf('year');\n s = s.add(n, 'day');\n confirm(s, old, 'hour');\n return s.epoch;\n }\n };\n\n var methods$1 = {\n millisecond: function millisecond(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.milliseconds(s, num);\n return s;\n }\n\n return this.d.getMilliseconds();\n },\n second: function second(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.seconds(s, num);\n return s;\n }\n\n return this.d.getSeconds();\n },\n minute: function minute(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.minutes(s, num);\n return s;\n }\n\n return this.d.getMinutes();\n },\n hour: function hour(num) {\n var d = this.d;\n\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.hours(s, num);\n return s;\n }\n\n return d.getHours();\n },\n //'3:30' is 3.5\n hourFloat: function hourFloat(num) {\n if (num !== undefined) {\n var s = this.clone();\n\n var _minute = num % 1;\n\n _minute = _minute * 60;\n\n var _hour = parseInt(num, 10);\n\n s.epoch = set.hours(s, _hour);\n s.epoch = set.minutes(s, _minute);\n return s;\n }\n\n var d = this.d;\n var hour = d.getHours();\n var minute = d.getMinutes();\n minute = minute / 60;\n return hour + minute;\n },\n // hour in 12h format\n hour12: function hour12(str) {\n var d = this.d;\n\n if (str !== undefined) {\n var s = this.clone();\n str = '' + str;\n var m = str.match(/^([0-9]+)(am|pm)$/);\n\n if (m) {\n var hour = parseInt(m[1], 10);\n\n if (m[2] === 'pm') {\n hour += 12;\n }\n\n s.epoch = set.hours(s, hour);\n }\n\n return s;\n } //get the hour\n\n\n var hour12 = d.getHours();\n\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n }\n\n if (hour12 === 0) {\n hour12 = 12;\n }\n\n return hour12;\n },\n //some ambiguity here with 12/24h\n time: function time(str) {\n if (str !== undefined) {\n var s = this.clone();\n str = str.toLowerCase().trim();\n s.epoch = set.time(s, str);\n return s;\n }\n\n return \"\".concat(this.h12(), \":\").concat(fns.zeroPad(this.minute())).concat(this.ampm());\n },\n // either 'am' or 'pm'\n ampm: function ampm(input) {\n var which = 'am';\n var hour = this.hour();\n\n if (hour >= 12) {\n which = 'pm';\n }\n\n if (typeof input !== 'string') {\n return which;\n } //okay, we're doing a setter\n\n\n var s = this.clone();\n input = input.toLowerCase().trim(); //ampm should never change the day\n // - so use `.hour(n)` instead of `.minus(12,'hour')`\n\n if (hour >= 12 && input === 'am') {\n //noon is 12pm\n hour -= 12;\n return s.hour(hour);\n }\n\n if (hour < 12 && input === 'pm') {\n hour += 12;\n return s.hour(hour);\n }\n\n return s;\n },\n //some hard-coded times of day, like 'noon'\n dayTime: function dayTime(str) {\n if (str !== undefined) {\n var times = {\n morning: '7:00am',\n breakfast: '7:00am',\n noon: '12:00am',\n lunch: '12:00pm',\n afternoon: '2:00pm',\n evening: '6:00pm',\n dinner: '6:00pm',\n night: '11:00pm',\n midnight: '23:59pm'\n };\n var s = this.clone();\n str = str || '';\n str = str.toLowerCase();\n\n if (times.hasOwnProperty(str) === true) {\n s = s.time(times[str]);\n }\n\n return s;\n }\n\n var h = this.hour();\n\n if (h < 6) {\n return 'night';\n }\n\n if (h < 12) {\n //until noon\n return 'morning';\n }\n\n if (h < 17) {\n //until 5pm\n return 'afternoon';\n }\n\n if (h < 22) {\n //until 10pm\n return 'evening';\n }\n\n return 'night';\n },\n //parse a proper iso string\n iso: function iso(num) {\n if (num !== undefined) {\n return this.set(num);\n }\n\n return this.format('iso');\n }\n };\n var _01Time = methods$1;\n\n var methods$2 = {\n // # day in the month\n date: function date(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.date(s, num);\n return s;\n }\n\n return this.d.getDate();\n },\n //like 'wednesday' (hard!)\n day: function day(input) {\n if (input === undefined) {\n return this.d.getDay();\n }\n\n var original = this.clone();\n var want = input; // accept 'wednesday'\n\n if (typeof input === 'string') {\n input = input.toLowerCase();\n\n if (days.aliases.hasOwnProperty(input)) {\n want = days.aliases[input];\n } else {\n want = days[\"short\"]().indexOf(input);\n\n if (want === -1) {\n want = days[\"long\"]().indexOf(input);\n }\n }\n } //move approx\n\n\n var day = this.d.getDay();\n var diff = day - want;\n var s = this.subtract(diff, 'days'); //tighten it back up\n\n walk_1(s, {\n hour: original.hour(),\n minute: original.minute(),\n second: original.second()\n });\n return s;\n },\n //these are helpful name-wrappers\n dayName: function dayName(input) {\n if (input === undefined) {\n return days[\"long\"]()[this.day()];\n }\n\n var s = this.clone();\n s = s.day(input);\n return s;\n },\n //either name or number\n month: function month(input) {\n if (input !== undefined) {\n var s = this.clone();\n s.epoch = set.month(s, input);\n return s;\n }\n\n return this.d.getMonth();\n }\n };\n var _02Date = methods$2;\n\n var clearMinutes = function clearMinutes(s) {\n s = s.minute(0);\n s = s.second(0);\n s = s.millisecond(1);\n return s;\n };\n\n var methods$3 = {\n // day 0-366\n dayOfYear: function dayOfYear(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.dayOfYear(s, num);\n return s;\n } //days since newyears - jan 1st is 1, jan 2nd is 2...\n\n\n var sum = 0;\n var month = this.d.getMonth();\n var tmp; //count the num days in each month\n\n for (var i = 1; i <= month; i++) {\n tmp = new Date();\n tmp.setDate(1);\n tmp.setFullYear(this.d.getFullYear()); //the year matters, because leap-years\n\n tmp.setHours(1);\n tmp.setMinutes(1);\n tmp.setMonth(i);\n tmp.setHours(-2); //the last day of the month\n\n sum += tmp.getDate();\n }\n\n return sum + this.d.getDate();\n },\n //since the start of the year\n week: function week(num) {\n // week-setter\n if (num !== undefined) {\n var s = this.clone();\n s = s.month(0);\n s = s.date(1);\n s = s.day('monday');\n s = clearMinutes(s); //first week starts first Thurs in Jan\n // so mon dec 28th is 1st week\n // so mon dec 29th is not the week\n\n if (s.monthName() === 'december' && s.date() >= 28) {\n s = s.add(1, 'week');\n }\n\n num -= 1; //1-based\n\n s = s.add(num, 'weeks');\n return s;\n } //find-out which week it is\n\n\n var tmp = this.clone();\n tmp = tmp.month(0);\n tmp = tmp.date(1);\n tmp = clearMinutes(tmp);\n tmp = tmp.day('monday'); //don't go into last-year\n\n if (tmp.monthName() === 'december' && tmp.date() >= 28) {\n tmp = tmp.add(1, 'week');\n } // is first monday the 1st?\n\n\n var toAdd = 1;\n\n if (tmp.date() === 1) {\n toAdd = 0;\n }\n\n tmp = tmp.minus(1, 'second');\n var thisOne = this.epoch; //if the week technically hasn't started yet\n\n if (tmp.epoch > thisOne) {\n return 1;\n } //speed it up, if we can\n\n\n var i = 0;\n var skipWeeks = this.month() * 4;\n tmp.epoch += milliseconds.week * skipWeeks;\n i += skipWeeks;\n\n for (; i < 52; i++) {\n if (tmp.epoch > thisOne) {\n return i + toAdd;\n }\n\n tmp = tmp.add(1, 'week');\n }\n\n return 52;\n },\n //'january'\n monthName: function monthName(input) {\n if (input === undefined) {\n return months[\"long\"]()[this.month()];\n }\n\n var s = this.clone();\n s = s.month(input);\n return s;\n },\n //q1, q2, q3, q4\n quarter: function quarter(num) {\n if (num !== undefined) {\n if (typeof num === 'string') {\n num = num.replace(/^q/i, '');\n num = parseInt(num, 10);\n }\n\n if (quarters[num]) {\n var s = this.clone();\n var _month = quarters[num][0];\n s = s.month(_month);\n s = s.date(1);\n s = s.startOf('day');\n return s;\n }\n }\n\n var month = this.d.getMonth();\n\n for (var i = 1; i < quarters.length; i++) {\n if (month < quarters[i][0]) {\n return i - 1;\n }\n }\n\n return 4;\n },\n //spring, summer, winter, fall\n season: function season(input) {\n var hem = 'north';\n\n if (this.hemisphere() === 'South') {\n hem = 'south';\n }\n\n if (input !== undefined) {\n var s = this.clone();\n\n for (var i = 0; i < seasons[hem].length; i++) {\n if (input === seasons[hem][i][0]) {\n s = s.month(seasons[hem][i][1]);\n s = s.date(1);\n s = s.startOf('day');\n }\n }\n\n return s;\n }\n\n var month = this.d.getMonth();\n\n for (var _i = 0; _i < seasons[hem].length - 1; _i++) {\n if (month >= seasons[hem][_i][1] && month < seasons[hem][_i + 1][1]) {\n return seasons[hem][_i][0];\n }\n }\n\n return 'winter';\n },\n //the year number\n year: function year(num) {\n if (num !== undefined) {\n var s = this.clone();\n s.epoch = set.year(s, num);\n return s;\n }\n\n return this.d.getFullYear();\n },\n //bc/ad years\n era: function era(str) {\n if (str !== undefined) {\n var s = this.clone();\n str = str.toLowerCase(); //TODO: there is no year-0AD i think. may have off-by-1 error here\n\n var year = s.d.getFullYear(); //make '1992' into 1992bc..\n\n if (str === 'bc' && year > 0) {\n s.epoch = set.year(s, year * -1);\n } //make '1992bc' into '1992'\n\n\n if (str === 'ad' && year < 0) {\n s.epoch = set.year(s, year * -1);\n }\n\n return s;\n }\n\n if (this.d.getFullYear() < 0) {\n return 'BC';\n }\n\n return 'AD';\n },\n // 2019 -> 2010\n decade: function decade(input) {\n if (input !== undefined) {\n input = String(input);\n input = input.replace(/([0-9])'?s$/, '$1'); //1950's\n\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n\n if (!input) {\n console.warn('Spacetime: Invalid decade input');\n return this;\n } // assume 20th century?? for '70s'.\n\n\n if (input.length === 2 && /[0-9][0-9]/.test(input)) {\n input = '19' + input;\n }\n\n var year = Number(input);\n\n if (isNaN(year)) {\n return this;\n } // round it down to the decade\n\n\n year = Math.floor(year / 10) * 10;\n return this.year(year); //.startOf('decade')\n }\n\n return this.startOf('decade').year();\n },\n // 1950 -> 19+1\n century: function century(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n\n input = input.replace(/([0-9]+) ?(b\\.?c\\.?|a\\.?d\\.?)/i, function (a, b, c) {\n if (c.match(/b\\.?c\\.?/i)) {\n b = '-' + b;\n }\n\n return b;\n });\n input = input.replace(/c$/, ''); //20thC\n }\n\n var year = Number(input);\n\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid century input');\n return this;\n } // there is no century 0\n\n\n if (year === 0) {\n year = 1;\n }\n\n if (year >= 0) {\n year = (year - 1) * 100;\n } else {\n year = (year + 1) * 100;\n }\n\n return this.year(year);\n } // century getter\n\n\n var num = this.startOf('century').year();\n num = Math.floor(num / 100);\n\n if (num < 0) {\n return num - 1;\n }\n\n return num + 1;\n },\n // 2019 -> 2+1\n millenium: function millenium(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n\n input = Number(input);\n\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid millenium input');\n return this;\n }\n }\n\n if (input > 0) {\n input -= 1;\n }\n\n var year = input * 1000; // there is no year 0\n\n if (year === 0) {\n year = 1;\n }\n\n return this.year(year);\n } // get the current millenium\n\n\n var num = Math.floor(this.year() / 1000);\n\n if (num >= 0) {\n num += 1;\n }\n\n return num;\n }\n };\n var _03Year = methods$3;\n\n var methods$4 = Object.assign({}, _01Time, _02Date, _03Year); //aliases\n\n methods$4.milliseconds = methods$4.millisecond;\n methods$4.seconds = methods$4.second;\n methods$4.minutes = methods$4.minute;\n methods$4.hours = methods$4.hour;\n methods$4.hour24 = methods$4.hour;\n methods$4.h12 = methods$4.hour12;\n methods$4.h24 = methods$4.hour24;\n methods$4.days = methods$4.day;\n\n var addMethods = function addMethods(Space) {\n //hook the methods into prototype\n Object.keys(methods$4).forEach(function (k) {\n Space.prototype[k] = methods$4[k];\n });\n };\n\n var query = addMethods;\n\n var isLeapYear$2 = fns.isLeapYear;\n\n var getMonthLength = function getMonthLength(month, year) {\n if (month === 1 && isLeapYear$2(year)) {\n return 29;\n }\n\n return monthLengths_1[month];\n }; //month is the one thing we 'model/compute'\n //- because ms-shifting can be off by enough\n\n\n var rollMonth = function rollMonth(want, old) {\n //increment year\n if (want.month > 0) {\n var years = parseInt(want.month / 12, 10);\n want.year = old.year() + years;\n want.month = want.month % 12;\n } else if (want.month < 0) {\n //decrement year\n var _years = Math.floor(Math.abs(want.month) / 13, 10);\n\n _years = Math.abs(_years) + 1;\n want.year = old.year() - _years; //ignore extras\n\n want.month = want.month % 12;\n want.month = want.month + 12;\n\n if (want.month === 12) {\n want.month = 0;\n }\n }\n\n return want;\n }; // briefly support day=-2 (this does not need to be perfect.)\n\n\n var rollDaysDown = function rollDaysDown(want, old, sum) {\n want.year = old.year();\n want.month = old.month();\n var date = old.date();\n want.date = date - Math.abs(sum);\n\n while (want.date < 1) {\n want.month -= 1;\n\n if (want.month < 0) {\n want.month = 11;\n want.year -= 1;\n }\n\n var max = getMonthLength(want.month, want.year);\n want.date += max;\n }\n\n return want;\n }; // briefly support day=33 (this does not need to be perfect.)\n\n\n var rollDaysUp = function rollDaysUp(want, old, sum) {\n var year = old.year();\n var month = old.month();\n var max = getMonthLength(month, year);\n\n while (sum > max) {\n sum -= max;\n month += 1;\n\n if (month >= 12) {\n month -= 12;\n year += 1;\n }\n\n max = getMonthLength(month, year);\n }\n\n want.month = month;\n want.date = sum;\n return want;\n };\n\n var _model = {\n months: rollMonth,\n days: rollDaysUp,\n daysBack: rollDaysDown\n };\n\n // but briefly:\n // millisecond-math, and some post-processing covers most-things\n // we 'model' the calendar here only a little bit\n // and that usually works-out...\n\n var order$1 = ['millisecond', 'second', 'minute', 'hour', 'date', 'month'];\n var keep = {\n second: order$1.slice(0, 1),\n minute: order$1.slice(0, 2),\n quarterhour: order$1.slice(0, 2),\n hour: order$1.slice(0, 3),\n date: order$1.slice(0, 4),\n month: order$1.slice(0, 4),\n quarter: order$1.slice(0, 4),\n season: order$1.slice(0, 4),\n year: order$1,\n decade: order$1,\n century: order$1\n };\n keep.week = keep.hour;\n keep.season = keep.date;\n keep.quarter = keep.date; // Units need to be dst adjuested\n\n var dstAwareUnits = {\n year: true,\n quarter: true,\n season: true,\n month: true,\n week: true,\n day: true\n };\n var keepDate = {\n month: true,\n quarter: true,\n season: true,\n year: true\n };\n\n var addMethods$1 = function addMethods(SpaceTime) {\n SpaceTime.prototype.add = function (num, unit) {\n var s = this.clone();\n\n if (!unit || num === 0) {\n return s; //don't bother\n }\n\n var old = this.clone();\n unit = fns.normalize(unit);\n\n if (unit === 'millisecond') {\n s.epoch += num;\n return s;\n } // support 'fortnight' alias\n\n\n if (unit === 'fortnight') {\n num *= 2;\n unit = 'week';\n } //move forward by the estimated milliseconds (rough)\n\n\n if (milliseconds[unit]) {\n s.epoch += milliseconds[unit] * num;\n } else if (unit === 'week') {\n s.epoch += milliseconds.day * (num * 7);\n } else if (unit === 'quarter' || unit === 'season') {\n s.epoch += milliseconds.month * (num * 3);\n } else if (unit === 'quarterhour') {\n s.epoch += milliseconds.minute * 15 * num;\n } //now ensure our milliseconds/etc are in-line\n\n\n var want = {};\n\n if (keep[unit]) {\n keep[unit].forEach(function (u) {\n want[u] = old[u]();\n });\n }\n\n if (dstAwareUnits[unit]) {\n var diff = old.timezone().current.offset - s.timezone().current.offset;\n s.epoch += diff * 3600 * 1000;\n } //ensure month/year has ticked-over\n\n\n if (unit === 'month') {\n want.month = old.month() + num; //month is the one unit we 'model' directly\n\n want = _model.months(want, old);\n } //support coercing a week, too\n\n\n if (unit === 'week') {\n var sum = old.date() + num * 7;\n\n if (sum <= 28 && sum > 1) {\n want.date = sum;\n }\n } //support 25-hour day-changes on dst-changes\n else if (unit === 'date') {\n if (num < 0) {\n want = _model.daysBack(want, old, num);\n } else {\n //specify a naive date number, if it's easy to do...\n var _sum = old.date() + num; // ok, model this one too\n\n\n want = _model.days(want, old, _sum);\n } //manually punt it if we haven't moved at all..\n\n\n if (num !== 0 && old.isSame(s, 'day')) {\n want.date = old.date() + num;\n }\n } // ensure a quarter is 3 months over\n else if (unit === 'quarter') {\n want.month = old.month() + num * 3;\n want.year = old.year(); // handle rollover\n\n if (want.month < 0) {\n var years = Math.floor(want.month / 12);\n var remainder = want.month + Math.abs(years) * 12;\n want.month = remainder;\n want.year += years;\n } else if (want.month >= 12) {\n var _years = Math.floor(want.month / 12);\n\n want.month = want.month % 12;\n want.year += _years;\n }\n\n want.date = old.date();\n } //ensure year has changed (leap-years)\n else if (unit === 'year') {\n var wantYear = old.year() + num;\n var haveYear = s.year();\n\n if (haveYear < wantYear) {\n s.epoch += milliseconds.day;\n } else if (haveYear > wantYear) {\n s.epoch += milliseconds.day;\n }\n } //these are easier\n else if (unit === 'decade') {\n want.year = s.year() + 10;\n } else if (unit === 'century') {\n want.year = s.year() + 100;\n } //keep current date, unless the month doesn't have it.\n\n\n if (keepDate[unit]) {\n var max = monthLengths_1[want.month];\n want.date = old.date();\n\n if (want.date > max) {\n want.date = max;\n }\n }\n\n if (Object.keys(want).length > 1) {\n walk_1(s, want);\n }\n\n return s;\n }; //subtract is only add *-1\n\n\n SpaceTime.prototype.subtract = function (num, unit) {\n var s = this.clone();\n return s.add(num * -1, unit);\n }; //add aliases\n\n\n SpaceTime.prototype.minus = SpaceTime.prototype.subtract;\n SpaceTime.prototype.plus = SpaceTime.prototype.add;\n };\n\n var add = addMethods$1;\n\n //make a string, for easy comparison between dates\n var print = {\n millisecond: function millisecond(s) {\n return s.epoch;\n },\n second: function second(s) {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute(), s.second()].join('-');\n },\n minute: function minute(s) {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute()].join('-');\n },\n hour: function hour(s) {\n return [s.year(), s.month(), s.date(), s.hour()].join('-');\n },\n day: function day(s) {\n return [s.year(), s.month(), s.date()].join('-');\n },\n week: function week(s) {\n return [s.year(), s.week()].join('-');\n },\n month: function month(s) {\n return [s.year(), s.month()].join('-');\n },\n quarter: function quarter(s) {\n return [s.year(), s.quarter()].join('-');\n },\n year: function year(s) {\n return s.year();\n }\n };\n print.date = print.day;\n\n var addMethods$2 = function addMethods(SpaceTime) {\n SpaceTime.prototype.isSame = function (b, unit) {\n var tzAware = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var a = this;\n\n if (!unit) {\n return null;\n }\n\n if (typeof b === 'string' || typeof b === 'number') {\n b = new SpaceTime(b, this.timezone.name);\n } //support 'seconds' aswell as 'second'\n\n\n unit = unit.replace(/s$/, ''); // make them the same timezone for proper comparison\n\n if (tzAware === true && a.tz !== b.tz) {\n b = b.clone();\n b.tz = a.tz;\n }\n\n if (print[unit]) {\n return print[unit](a) === print[unit](b);\n }\n\n return null;\n };\n };\n\n var same = addMethods$2;\n\n var addMethods$3 = function addMethods(SpaceTime) {\n var methods = {\n isAfter: function isAfter(d) {\n d = fns.beADate(d, this);\n var epoch = fns.getEpoch(d);\n\n if (epoch === null) {\n return null;\n }\n\n return this.epoch > epoch;\n },\n isBefore: function isBefore(d) {\n d = fns.beADate(d, this);\n var epoch = fns.getEpoch(d);\n\n if (epoch === null) {\n return null;\n }\n\n return this.epoch < epoch;\n },\n isEqual: function isEqual(d) {\n d = fns.beADate(d, this);\n var epoch = fns.getEpoch(d);\n\n if (epoch === null) {\n return null;\n }\n\n return this.epoch === epoch;\n },\n isBetween: function isBetween(start, end) {\n var isInclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n start = fns.beADate(start, this);\n end = fns.beADate(end, this);\n var startEpoch = fns.getEpoch(start);\n\n if (startEpoch === null) {\n return null;\n }\n\n var endEpoch = fns.getEpoch(end);\n\n if (endEpoch === null) {\n return null;\n }\n\n if (isInclusive) {\n return this.isBetween(start, end) || this.isEqual(start) || this.isEqual(end);\n }\n\n return startEpoch < this.epoch && this.epoch < endEpoch;\n }\n }; //hook them into proto\n\n Object.keys(methods).forEach(function (k) {\n SpaceTime.prototype[k] = methods[k];\n });\n };\n\n var compare = addMethods$3;\n\n var addMethods$4 = function addMethods(SpaceTime) {\n var methods = {\n i18n: function i18n(data) {\n //change the day names\n if (fns.isObject(data.days)) {\n days.set(data.days);\n } //change the month names\n\n\n if (fns.isObject(data.months)) {\n months.set(data.months);\n } // change the the display style of the month / day names\n\n\n if (fns.isBoolean(data.useTitleCase)) {\n caseFormat.set(data.useTitleCase);\n }\n }\n }; //hook them into proto\n\n Object.keys(methods).forEach(function (k) {\n SpaceTime.prototype[k] = methods[k];\n });\n };\n\n var i18n = addMethods$4;\n\n var timezones = unpack; //fake timezone-support, for fakers (es5 class)\n\n var SpaceTime = function SpaceTime(input$1, tz) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n //the holy moment\n this.epoch = null; //the shift for the given timezone\n\n this.tz = find(tz, timezones); //whether to output warnings to console\n\n this.silent = options.silent || true; // favour british interpretation of 02/02/2018, etc\n\n this.british = options.dmy || options.british; //does the week start on sunday, or monday:\n\n this._weekStart = 1; //default to monday\n\n if (options.weekStart !== undefined) {\n this._weekStart = options.weekStart;\n } // the reference today date object, (for testing)\n\n\n this._today = {};\n\n if (options.today !== undefined) {\n this._today = options.today;\n } //add getter/setters\n\n\n Object.defineProperty(this, 'd', {\n //return a js date object\n get: function get() {\n var offset = quick(this); //every computer is somewhere- get this computer's built-in offset\n\n var bias = new Date(this.epoch).getTimezoneOffset() || 0; //movement\n\n var shift = bias + offset * 60; //in minutes\n\n shift = shift * 60 * 1000; //in ms\n //remove this computer's offset\n\n var epoch = this.epoch + shift;\n var d = new Date(epoch);\n return d;\n }\n }); //add this data on the object, to allow adding new timezones\n\n Object.defineProperty(this, 'timezones', {\n get: function get() {\n return timezones;\n },\n set: function set(obj) {\n timezones = obj;\n return obj;\n }\n }); //parse the various formats\n\n var tmp = input(this, input$1, tz);\n this.epoch = tmp.epoch;\n }; //(add instance methods to prototype)\n\n\n Object.keys(methods_1).forEach(function (k) {\n SpaceTime.prototype[k] = methods_1[k];\n }); // ¯\\_(ツ)_/¯\n\n SpaceTime.prototype.clone = function () {\n return new SpaceTime(this.epoch, this.tz, {\n silent: this.silent,\n weekStart: this._weekStart,\n today: this._today\n });\n }; //return native date object at the same epoch\n\n\n SpaceTime.prototype.toLocalDate = function () {\n return new Date(this.epoch);\n }; //append more methods\n\n\n query(SpaceTime);\n add(SpaceTime);\n same(SpaceTime);\n compare(SpaceTime);\n i18n(SpaceTime);\n var spacetime = SpaceTime;\n\n var whereIts = function whereIts(a, b) {\n var start = new spacetime(null);\n var end = new spacetime(null);\n start = start.time(a); //if b is undefined, use as 'within one hour'\n\n if (b) {\n end = end.time(b);\n } else {\n end = start.add(59, 'minutes');\n }\n\n var startHour = start.hour();\n var endHour = end.hour();\n var tzs = Object.keys(start.timezones).filter(function (tz) {\n if (tz.indexOf('/') === -1) {\n return false;\n }\n\n var m = new spacetime(null, tz);\n var hour = m.hour(); //do 'calendar-compare' not real-time-compare\n\n if (hour >= startHour && hour <= endHour) {\n //test minutes too, if applicable\n if (hour === startHour && m.minute() < start.minute()) {\n return false;\n }\n\n if (hour === endHour && m.minute() > end.minute()) {\n return false;\n }\n\n return true;\n }\n\n return false;\n });\n return tzs;\n };\n\n var whereIts_1 = whereIts;\n\n var _version = '6.12.5';\n\n var main$1 = function main(input, tz, options) {\n return new spacetime(input, tz, options);\n }; // set all properties of a given 'today' object\n\n\n var setToday = function setToday(s) {\n var today = s._today || {};\n Object.keys(today).forEach(function (k) {\n s = s[k](today[k]);\n });\n return s;\n }; //some helper functions on the main method\n\n\n main$1.now = function (tz, options) {\n var s = new spacetime(new Date().getTime(), tz, options);\n s = setToday(s);\n return s;\n };\n\n main$1.today = function (tz, options) {\n var s = new spacetime(new Date().getTime(), tz, options);\n s = setToday(s);\n return s.startOf('day');\n };\n\n main$1.tomorrow = function (tz, options) {\n var s = new spacetime(new Date().getTime(), tz, options);\n s = setToday(s);\n return s.add(1, 'day').startOf('day');\n };\n\n main$1.yesterday = function (tz, options) {\n var s = new spacetime(new Date().getTime(), tz, options);\n s = setToday(s);\n return s.subtract(1, 'day').startOf('day');\n };\n\n main$1.extend = function (obj) {\n Object.keys(obj).forEach(function (k) {\n spacetime.prototype[k] = obj[k];\n });\n return this;\n };\n\n main$1.timezones = function () {\n var s = new spacetime();\n return s.timezones;\n }; //find tz by time\n\n\n main$1.whereIts = whereIts_1;\n main$1.version = _version; //aliases:\n\n main$1.plugin = main$1.extend;\n var src = main$1;\n\n return src;\n\n})));\n","// some opinionated-but-common-sense timezone abbreviations\n// these timezone abbreviations are wholly made-up by me, Spencer Kelly, with no expertise in geography\n// generated humbly from https://github.com/spencermountain/spacetime-informal\nconst spacetime = require('spacetime')\n\nconst america = 'America/'\nconst asia = 'Asia/'\nconst europe = 'Europe/'\nconst africa = 'Africa/'\nconst aus = 'Australia/'\nconst pac = 'Pacific/'\n\nconst informal = {\n //europe\n 'british summer time': europe + 'London',\n bst: europe + 'London',\n 'british time': europe + 'London',\n 'britain time': europe + 'London',\n 'irish summer time': europe + 'Dublin',\n 'irish time': europe + 'Dublin',\n ireland: europe + 'Dublin',\n 'central european time': europe + 'Berlin',\n cet: europe + 'Berlin',\n 'central european summer time': europe + 'Berlin',\n cest: europe + 'Berlin',\n 'central europe': europe + 'Berlin',\n 'eastern european time': europe + 'Riga',\n eet: europe + 'Riga',\n 'eastern european summer time': europe + 'Riga',\n eest: europe + 'Riga',\n 'eastern europe time': europe + 'Riga',\n 'western european time': europe + 'Lisbon',\n // wet: europe+'Lisbon',\n 'western european summer time': europe + 'Lisbon',\n // west: europe+'Lisbon',\n 'western europe': europe + 'Lisbon',\n 'turkey standard time': europe + 'Istanbul',\n trt: europe + 'Istanbul',\n 'turkish time': europe + 'Istanbul',\n\n //africa\n etc: africa + 'Freetown',\n utc: africa + 'Freetown',\n 'greenwich standard time': africa + 'Freetown',\n gmt: africa + 'Freetown',\n 'east africa time': africa + 'Nairobi',\n // eat: africa+'Nairobi',\n 'east african time': africa + 'Nairobi',\n 'eastern africa time': africa + 'Nairobi',\n 'central africa time': africa + 'Khartoum',\n // cat: africa+'Khartoum',\n 'central african time': africa + 'Khartoum',\n 'south africa standard time': africa + 'Johannesburg',\n sast: africa + 'Johannesburg',\n 'southern africa': africa + 'Johannesburg',\n 'south african': africa + 'Johannesburg',\n 'west africa standard time': africa + 'Lagos',\n // wat: africa+'Lagos',\n 'western africa time': africa + 'Lagos',\n 'west african time': africa + 'Lagos',\n\n 'australian central standard time': aus + 'Adelaide',\n acst: aus + 'Adelaide',\n 'australian central daylight time': aus + 'Adelaide',\n acdt: aus + 'Adelaide',\n 'australia central': aus + 'Adelaide',\n 'australian eastern standard time': aus + 'Brisbane',\n aest: aus + 'Brisbane',\n 'australian eastern daylight time': aus + 'Brisbane',\n aedt: aus + 'Brisbane',\n 'australia east': aus + 'Brisbane',\n 'australian western standard time': aus + 'Perth',\n awst: aus + 'Perth',\n 'australian western daylight time': aus + 'Perth',\n awdt: aus + 'Perth',\n 'australia west': aus + 'Perth',\n 'australian central western standard time': aus + 'Eucla',\n acwst: aus + 'Eucla',\n 'australia central west': aus + 'Eucla',\n 'lord howe standard time': aus + 'Lord_Howe',\n lhst: aus + 'Lord_Howe',\n 'lord howe daylight time': aus + 'Lord_Howe',\n lhdt: aus + 'Lord_Howe',\n 'russian standard time': europe + 'Moscow',\n msk: europe + 'Moscow',\n russian: europe + 'Moscow',\n\n //america\n 'central standard time': america + 'Chicago',\n 'central time': america + 'Chicago',\n cst: america + 'Havana',\n 'central daylight time': america + 'Chicago',\n cdt: america + 'Havana',\n 'mountain standard time': america + 'Denver',\n 'mountain time': america + 'Denver',\n mst: america + 'Denver',\n 'mountain daylight time': america + 'Denver',\n mdt: america + 'Denver',\n 'atlantic standard time': america + 'Halifax',\n 'atlantic time': america + 'Halifax',\n ast: asia + 'Baghdad',\n 'atlantic daylight time': america + 'Halifax',\n adt: america + 'Halifax',\n 'eastern standard time': america + 'New_York',\n 'eastern time': america + 'New_York',\n est: america + 'New_York',\n 'eastern daylight time': america + 'New_York',\n edt: america + 'New_York',\n 'pacific time': america + 'Los_Angeles',\n 'pacific standard time': america + 'Los_Angeles',\n pst: america + 'Los_Angeles',\n 'pacific daylight time': america + 'Los_Angeles',\n pdt: america + 'Los_Angeles',\n 'alaskan standard time': america + 'Anchorage',\n 'alaskan time': america + 'Anchorage',\n ahst: america + 'Anchorage',\n 'alaskan daylight time': america + 'Anchorage',\n ahdt: america + 'Anchorage',\n 'hawaiian standard time': pac + 'Honolulu',\n 'hawaiian time': pac + 'Honolulu',\n hst: pac + 'Honolulu',\n 'aleutian time': pac + 'Honolulu',\n 'hawaii time': pac + 'Honolulu',\n 'newfoundland standard time': america + 'St_Johns',\n 'newfoundland time': america + 'St_Johns',\n nst: america + 'St_Johns',\n 'newfoundland daylight time': america + 'St_Johns',\n ndt: america + 'St_Johns',\n 'brazil time': america + 'Sao_Paulo',\n brt: america + 'Sao_Paulo',\n brasília: america + 'Sao_Paulo',\n brasilia: america + 'Sao_Paulo',\n 'brazilian time': america + 'Sao_Paulo',\n 'argentina time': america + 'Buenos_Aires',\n // art: a+'Buenos_Aires',\n 'argentinian time': america + 'Buenos_Aires',\n 'amazon time': america + 'Manaus',\n amt: america + 'Manaus',\n 'amazonian time': america + 'Manaus',\n 'easter island standard time': 'Chile/Easterisland',\n east: 'Chile/Easterisland',\n 'easter island summer time': 'Chile/Easterisland',\n easst: 'Chile/Easterisland',\n 'venezuelan standard time': america + 'Caracas',\n 'venezuelan time': america + 'Caracas',\n vet: america + 'Caracas',\n 'venezuela time': america + 'Caracas',\n 'paraguay time': america + 'Asuncion',\n pyt: america + 'Asuncion',\n 'paraguay summer time': america + 'Asuncion',\n pyst: america + 'Asuncion',\n 'cuba standard time': america + 'Havana',\n 'cuba time': america + 'Havana',\n 'cuba daylight time': america + 'Havana',\n 'cuban time': america + 'Havana',\n 'bolivia time': america + 'La_Paz',\n // bot: a+'La_Paz',\n 'bolivian time': america + 'La_Paz',\n 'colombia time': america + 'Bogota',\n cot: america + 'Bogota',\n 'colombian time': america + 'Bogota',\n 'acre time': america + 'Eirunepe',\n // act: a+'Eirunepe',\n 'peru time': america + 'Lima',\n // pet: a+'Lima',\n 'chile standard time': america + 'Punta_Arenas',\n 'chile time': america + 'Punta_Arenas',\n clst: america + 'Punta_Arenas',\n 'chile summer time': america + 'Punta_Arenas',\n cldt: america + 'Punta_Arenas',\n 'uruguay time': america + 'Montevideo',\n uyt: america + 'Montevideo',\n\n //asia\n ist: asia + 'Jerusalem',\n 'arabic standard time': asia + 'Baghdad',\n 'arabic time': asia + 'Baghdad',\n 'arab time': asia + 'Baghdad',\n 'iran standard time': asia + 'Tehran',\n 'iran time': asia + 'Tehran',\n irst: asia + 'Tehran',\n 'iran daylight time': asia + 'Tehran',\n irdt: asia + 'Tehran',\n iranian: asia + 'Tehran',\n 'pakistan standard time': asia + 'Karachi',\n 'pakistan time': asia + 'Karachi',\n pkt: asia + 'Karachi',\n 'india standard time': asia + 'Kolkata',\n 'indian time': asia + 'Kolkata',\n 'indochina time': asia + 'Bangkok',\n ict: asia + 'Bangkok',\n 'south east asia': asia + 'Bangkok',\n 'china standard time': asia + 'Shanghai',\n ct: asia + 'Shanghai',\n 'chinese time': asia + 'Shanghai',\n 'alma-ata time': asia + 'Almaty',\n almt: asia + 'Almaty',\n 'oral time': asia + 'Oral',\n 'orat time': asia + 'Oral',\n 'yakutsk time': asia + 'Yakutsk',\n yakt: asia + 'Yakutsk',\n 'gulf standard time': asia + 'Dubai',\n 'gulf time': asia + 'Dubai',\n gst: asia + 'Dubai',\n uae: asia + 'Dubai',\n 'hong kong time': asia + 'Hong_Kong',\n hkt: asia + 'Hong_Kong',\n 'western indonesian time': asia + 'Jakarta',\n wib: asia + 'Jakarta',\n 'indonesia time': asia + 'Jakarta',\n 'central indonesian time': asia + 'Makassar',\n wita: asia + 'Makassar',\n 'israel daylight time': asia + 'Jerusalem',\n idt: asia + 'Jerusalem',\n 'israel standard time': asia + 'Jerusalem',\n 'israel time': asia + 'Jerusalem',\n israeli: asia + 'Jerusalem',\n 'krasnoyarsk time': asia + 'Krasnoyarsk',\n krat: asia + 'Krasnoyarsk',\n 'malaysia time': asia + 'Kuala_Lumpur',\n myt: asia + 'Kuala_Lumpur',\n 'singapore time': asia + 'Singapore',\n sgt: asia + 'Singapore',\n 'korea standard time': asia + 'Seoul',\n 'korea time': asia + 'Seoul',\n kst: asia + 'Seoul',\n 'korean time': asia + 'Seoul',\n 'uzbekistan time': asia + 'Samarkand',\n uzt: asia + 'Samarkand',\n 'vladivostok time': asia + 'Vladivostok',\n vlat: asia + 'Vladivostok',\n\n //indian\n 'maldives time': 'Indian/Maldives',\n mvt: 'Indian/Maldives',\n 'mauritius time': 'Indian/Mauritius',\n mut: 'Indian/Mauritius',\n\n // pacific\n 'marshall islands time': pac + 'Kwajalein',\n mht: pac + 'Kwajalein',\n 'samoa standard time': pac + 'Midway',\n sst: pac + 'Midway',\n 'somoan time': pac + 'Midway',\n 'chamorro standard time': pac + 'Guam',\n chst: pac + 'Guam',\n 'papua new guinea time': pac + 'Bougainville',\n pgt: pac + 'Bougainville',\n}\n\n//add the official iana zonefile names\nlet iana = spacetime().timezones\nlet formal = Object.keys(iana).reduce((h, k) => {\n h[k] = k\n return h\n}, {})\nmodule.exports = Object.assign({}, informal, formal)\n","module.exports = [\n 'weekday',\n\n 'summer',\n 'winter',\n 'autumn',\n\n 'some day',\n 'one day',\n 'all day',\n 'some point',\n\n 'eod',\n 'eom',\n 'eoy',\n 'standard time',\n 'daylight time',\n 'tommorrow',\n]\n","module.exports = [\n 'centuries',\n 'century',\n 'day',\n 'days',\n 'decade',\n 'decades',\n 'hour',\n 'hours',\n 'hr',\n 'hrs',\n 'millisecond',\n 'milliseconds',\n 'minute',\n 'minutes',\n 'min',\n 'mins',\n 'month',\n 'months',\n 'seconds',\n 'sec',\n 'secs',\n 'week end',\n 'week ends',\n 'weekend',\n 'weekends',\n 'week',\n 'weeks',\n 'wk',\n 'wks',\n 'year',\n 'years',\n 'yr',\n 'yrs',\n 'quarter',\n // 'quarters',\n 'qtr',\n 'qtrs',\n 'season',\n 'seasons',\n]\n","module.exports = [\n 'all hallows eve',\n 'all saints day',\n 'all sts day',\n 'april fools',\n 'armistice day',\n 'australia day',\n 'bastille day',\n 'boxing day',\n 'canada day',\n 'christmas eve',\n 'christmas',\n 'cinco de mayo',\n 'day of the dead',\n 'dia de muertos',\n 'dieciseis de septiembre',\n 'emancipation day',\n 'grito de dolores',\n 'groundhog day',\n 'halloween',\n 'harvey milk day',\n 'inauguration day',\n 'independence day',\n 'independents day',\n 'juneteenth',\n 'labour day',\n 'national freedom day',\n 'national nurses day',\n 'new years eve',\n 'new years',\n 'purple heart day',\n 'rememberance day',\n 'rosa parks day',\n 'saint andrews day',\n 'saint patricks day',\n 'saint stephens day',\n 'saint valentines day',\n 'st andrews day',\n 'st patricks day',\n 'st stephens day',\n 'st valentines day ',\n 'valentines day',\n 'valentines',\n 'veterans day',\n 'victoria day',\n 'womens equality day',\n 'xmas',\n // Fixed religious and cultural holidays\n // Catholic + Christian\n 'epiphany',\n 'orthodox christmas day',\n 'orthodox new year',\n 'assumption of mary',\n 'all souls day',\n 'feast of the immaculate conception',\n 'feast of our lady of guadalupe',\n\n // Kwanzaa\n 'kwanzaa',\n // Pagan / metal 🤘\n 'imbolc',\n 'beltaine',\n 'lughnassadh',\n 'samhain',\n 'martin luther king day',\n 'mlk day',\n 'presidents day',\n 'mardi gras',\n 'tax day',\n 'commonwealth day',\n 'mothers day',\n 'memorial day',\n 'fathers day',\n 'columbus day',\n 'indigenous peoples day',\n 'canadian thanksgiving',\n 'election day',\n 'thanksgiving',\n 't-day',\n 'turkey day',\n 'black friday',\n 'cyber monday',\n // Astronomical religious and cultural holidays\n 'ash wednesday',\n 'palm sunday',\n 'maundy thursday',\n 'good friday',\n 'holy saturday',\n 'easter',\n 'easter sunday',\n 'easter monday',\n 'orthodox good friday',\n 'orthodox holy saturday',\n 'orthodox easter',\n 'orthodox easter monday',\n 'ascension day',\n 'pentecost',\n 'whitsunday',\n 'whit sunday',\n 'whit monday',\n 'trinity sunday',\n 'corpus christi',\n 'advent',\n // Jewish\n 'tu bishvat',\n 'tu bshevat',\n 'purim',\n 'passover',\n 'yom hashoah',\n 'lag baomer',\n 'shavuot',\n 'tisha bav',\n 'rosh hashana',\n 'yom kippur',\n 'sukkot',\n 'shmini atzeret',\n 'simchat torah',\n 'chanukah',\n 'hanukkah',\n // Muslim\n 'isra and miraj',\n 'lailat al-qadr',\n 'eid al-fitr',\n 'id al-Fitr',\n 'eid ul-Fitr',\n 'ramadan',\n 'eid al-adha',\n 'muharram',\n 'the prophets birthday',\n 'ostara',\n 'march equinox',\n 'vernal equinox',\n 'litha',\n 'june solistice',\n 'summer solistice',\n 'mabon',\n 'september equinox',\n 'fall equinox',\n 'autumnal equinox',\n 'yule',\n 'december solstice',\n 'winter solstice',\n // Additional important holidays\n 'chinese new year',\n 'diwali',\n]\n","module.exports = [\n 'noon',\n 'midnight',\n 'now',\n 'morning',\n 'tonight',\n 'evening',\n 'afternoon',\n 'night',\n 'breakfast time',\n 'lunchtime',\n 'dinnertime',\n 'sometime',\n 'midday',\n 'eod',\n 'oclock',\n 'oclock',\n 'all day',\n 'at night',\n]\n","const timezones = require('../_timezones')\nconst data = [\n [require('./dates'), '#Date'],\n [require('./durations'), '#Duration'],\n [require('./holidays'), '#Holiday'],\n [require('./times'), '#Time'],\n [Object.keys(timezones), '#Timezone'],\n]\nlet lex = {\n 'a couple': 'Value',\n}\ndata.forEach((a) => {\n for (let i = 0; i < a[0].length; i++) {\n lex[a[0][i]] = a[1]\n }\n})\n\nmodule.exports = lex\n","const spacetime = require('spacetime')\n\nclass Unit {\n constructor(input, unit, context) {\n this.unit = unit || 'day'\n context = context || {}\n let today = {}\n if (context.today) {\n today = {\n date: context.today.date(),\n month: context.today.month(),\n year: context.today.year(),\n }\n }\n // set it to the beginning of the given unit\n let d = spacetime(input, context.timezone, { today: today })\n\n // set to beginning?\n // if (d.isValid() && keepTime !== true) {\n // d = d.startOf(this.unit)\n // }\n Object.defineProperty(this, 'd', {\n enumerable: false,\n writable: true,\n value: d,\n })\n Object.defineProperty(this, 'context', {\n enumerable: false,\n writable: true,\n value: context,\n })\n }\n // make a new one\n clone() {\n let d = new Unit(this.d, this.unit, this.context)\n return d\n }\n log() {\n console.log('--')\n this.d.log()\n console.log('\\n')\n return this\n }\n applyShift(obj = {}) {\n Object.keys(obj).forEach((unit) => {\n this.d = this.d.add(obj[unit], unit)\n })\n return this\n }\n applyTime(str) {\n if (str) {\n this.d = this.d.time(str)\n } else {\n this.d = this.d.startOf('day') //zero-out time\n }\n return this\n }\n applyWeekDay(day) {\n if (day) {\n let epoch = this.d.epoch\n this.d = this.d.day(day)\n if (this.d.epoch < epoch) {\n this.d = this.d.add(1, 'week')\n }\n }\n return this\n }\n applyRel(rel) {\n if (rel === 'next') {\n return this.next()\n }\n if (rel === 'last') {\n return this.last()\n }\n return this\n }\n applySection(section) {\n if (section === 'start') {\n return this.start()\n }\n if (section === 'end') {\n return this.end()\n }\n if (section === 'middle') {\n return this.middle()\n }\n return this\n }\n format(fmt) {\n return this.d.format(fmt)\n }\n start() {\n this.d = this.d.startOf(this.unit)\n if (this.context.dayStart) {\n this.d = this.d.time(this.context.dayStart)\n }\n return this\n }\n end() {\n this.d = this.d.endOf(this.unit)\n if (this.context.dayEnd) {\n this.d = this.d.time(this.context.dayEnd)\n }\n return this\n }\n middle() {\n let diff = this.d.diff(this.d.endOf(this.unit))\n let minutes = Math.round(diff.minutes / 2)\n this.d = this.d.add(minutes, 'minutes')\n return this\n }\n // the millescond before\n before() {\n this.d = this.d.minus(1, this.unit)\n this.d = this.d.endOf(this.unit)\n if (this.context.dayEnd) {\n this.d = this.d.time(this.context.dayEnd)\n }\n return this\n }\n // 'after 2019'\n after() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'next june' 'next tuesday'\n next() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'last june' 'last tuesday'\n last() {\n this.d = this.d.minus(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\nmodule.exports = Unit\n","const spacetime = require('spacetime')\nconst Unit = require('./Unit')\n\nclass Day extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n if (this.d.isValid()) {\n this.d = this.d.startOf('day')\n }\n }\n}\n\n// like 'feb 2'\nclass CalendarDate extends Day {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n if (this.d.isValid()) {\n this.d = this.d.startOf('day')\n }\n }\n next() {\n this.d = this.d.add(1, 'year')\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n return this\n }\n}\n\nclass WeekDay extends Day {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'week'\n // is the input just a weekday?\n if (typeof input === 'string') {\n this.d = spacetime(context.today, context.timezone)\n this.d = this.d.day(input)\n // assume a wednesday in the future\n if (this.d.isBefore(context.today)) {\n this.d = this.d.add(7, 'days')\n }\n } else {\n this.d = input\n }\n this.weekDay = this.d.dayName()\n if (this.d.isValid()) {\n this.d = this.d.startOf('day')\n }\n }\n clone() {\n //overloaded method\n return new WeekDay(this.d, this.unit, this.context)\n }\n end() {\n //overloaded method\n this.d = this.d.endOf('day')\n if (this.context.dayEnd) {\n this.d = this.d.time(this.context.dayEnd)\n }\n return this\n }\n next() {\n this.d = this.d.add(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n last() {\n this.d = this.d.minus(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n}\n\n// like 'haloween'\nclass Holiday extends CalendarDate {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n if (this.d.isValid()) {\n this.d = this.d.startOf('day')\n }\n }\n}\n\nmodule.exports = {\n Day: Day,\n WeekDay: WeekDay,\n CalendarDate: CalendarDate,\n Holiday: Holiday,\n}\n","const Unit = require('./Unit')\n\n// a specific month, like 'March'\nclass AnyMonth extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'month'\n // set to beginning\n if (this.d.isValid()) {\n this.d = this.d.startOf(this.unit)\n }\n }\n}\n\n// a specific month, like 'March'\nclass Month extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'month'\n // set to beginning\n if (this.d.isValid()) {\n this.d = this.d.startOf(this.unit)\n }\n }\n next() {\n this.d = this.d.add(1, 'year')\n this.d = this.d.startOf('month')\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n this.d = this.d.startOf('month')\n return this\n }\n}\nclass AnyQuarter extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'quarter'\n // set to beginning\n if (this.d.isValid()) {\n this.d = this.d.startOf(this.unit)\n }\n }\n last() {\n this.d = this.d.minus(1, 'quarter')\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\n\nclass Quarter extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'quarter'\n // set to beginning\n if (this.d.isValid()) {\n this.d = this.d.startOf(this.unit)\n }\n }\n next() {\n this.d = this.d.add(1, 'year')\n this.d = this.d.startOf(this.unit)\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\nclass Season extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'season'\n // set to beginning\n if (this.d.isValid()) {\n this.d = this.d.startOf(this.unit)\n }\n }\n next() {\n this.d = this.d.add(1, 'year')\n this.d = this.d.startOf(this.unit)\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\nclass Year extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'year'\n if (this.d.isValid()) {\n this.d = this.d.startOf('year')\n }\n }\n}\n\nmodule.exports = {\n AnyMonth: AnyMonth,\n Month: Month,\n Quarter: Quarter,\n AnyQuarter: AnyQuarter,\n Season: Season,\n Year: Year,\n}\n","const Unit = require('./Unit')\n\nclass Week extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'week'\n if (this.d.isValid()) {\n this.d = this.d.startOf('week')\n }\n }\n}\n\n//may need some work\nclass WeekEnd extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'week'\n if (this.d.isValid()) {\n this.d = this.d.day('saturday')\n this.d = this.d.startOf('day')\n }\n }\n start() {\n this.d = this.d.day('saturday').startOf('day')\n return this\n }\n // end() {\n // this.d = this.d.day('sunday').endOf('day')\n // return this\n // }\n next() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf('weekend')\n return this\n }\n last() {\n this.d = this.d.minus(1, this.unit)\n this.d = this.d.startOf('weekend')\n return this\n }\n}\n\nmodule.exports = {\n Week: Week,\n WeekEnd: WeekEnd,\n}\n","const Unit = require('./Unit')\n\nclass Hour extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context, true)\n this.unit = 'hour'\n if (this.d.isValid()) {\n this.d = this.d.startOf('hour')\n }\n }\n}\nclass Minute extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context, true)\n this.unit = 'minute'\n if (this.d.isValid()) {\n this.d = this.d.startOf('minute')\n }\n }\n}\nclass Moment extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context, true)\n this.unit = 'millisecond'\n }\n}\n\nmodule.exports = {\n Hour: Hour,\n Minute: Minute,\n Moment: Moment,\n}\n","module.exports = Object.assign(\n { Unit: require('./Unit') },\n require('./_day'),\n require('./_year'),\n require('./_week'),\n require('./_time')\n)\n","const knownUnits = {\n second: true,\n minute: true,\n hour: true,\n day: true,\n week: true,\n weekend: true,\n month: true,\n season: true,\n quarter: true,\n year: true,\n}\n\nconst aliases = {\n wk: 'week',\n min: 'minute',\n sec: 'second',\n weekend: 'week', //for now...\n}\n\nconst parseUnit = function (m) {\n let unit = m.match('#Duration').text('normal')\n unit = unit.replace(/s$/, '')\n // support shorthands like 'min'\n if (aliases.hasOwnProperty(unit)) {\n unit = aliases[unit]\n }\n return unit\n}\n\n//turn '5 weeks before' to {weeks:5}\nconst parseShift = function (doc) {\n let result = {}\n let shift = doc.match('#DateShift+')\n if (shift.found === false) {\n return result\n }\n // '5 weeks'\n shift.match('#Cardinal #Duration').forEach((ts) => {\n let num = ts.match('#Cardinal').text('normal')\n num = parseFloat(num)\n if (num && typeof num === 'number') {\n let unit = parseUnit(ts)\n if (knownUnits[unit] === true) {\n result[unit] = num\n }\n }\n })\n //is it 2 weeks ago? → -2\n if (shift.has('(before|ago|hence|back)$') === true) {\n Object.keys(result).forEach((k) => (result[k] *= -1))\n }\n shift.remove('#Cardinal #Duration')\n // supoprt '1 day after tomorrow'\n let m = shift.match('[#Duration] [(after|before)]')\n if (m.found) {\n let unit = m.groups('unit').text('reduced')\n // unit = unit.replace(/s$/, '')\n let dir = m.groups('dir').text('reduced')\n if (dir === 'after') {\n result[unit] = 1\n } else if (dir === 'before') {\n result[unit] = -1\n }\n }\n // in half an hour\n m = shift.match('half (a|an) [#Duration]', 0)\n if (m.found) {\n let unit = parseUnit(m)\n result[unit] = 0.5\n }\n // finally, remove it from our text\n doc.remove('#DateShift')\n return result\n}\nmodule.exports = parseShift\n","/*\na 'counter' is a Unit determined after a point\n * first hour of x\n * 7th week in x\n * last year in x\n * \nunlike a shift, like \"2 weeks after x\"\n*/\nconst oneBased = {\n minute: true,\n}\nconst getCounter = function (doc) {\n // 7th week of\n let m = doc.match('[#Value] [#Duration+] (of|in)')\n if (m.found) {\n let obj = m.groups()\n let num = obj.num.text('reduced')\n let unit = obj.unit.text('reduced')\n let found = {\n unit: unit,\n num: Number(num) || 0,\n }\n // 0-based or 1-based units\n if (!oneBased[unit]) {\n found.num -= 1\n }\n doc = doc.remove(m)\n return found\n }\n // first week of\n m = doc.match('[(first|initial|last|final)] [#Duration+] (of|in)')\n if (m.found) {\n let obj = m.groups()\n let dir = obj.dir.text('reduced')\n let unit = obj.unit.text('reduced')\n if (dir === 'initial') {\n dir = 'first'\n }\n if (dir === 'final') {\n dir = 'last'\n }\n let found = {\n unit: unit,\n dir: dir,\n }\n doc = doc.remove(m)\n return found\n }\n\n return {}\n}\nmodule.exports = getCounter\n","const spacetime = require('spacetime')\n\nconst hardCoded = {\n daybreak: '7:00am', //ergh\n breakfast: '8:00am',\n morning: '9:00am',\n noon: '12:00pm',\n midday: '12:00pm',\n afternoon: '2:00pm',\n lunchtime: '12:00pm',\n evening: '6:00pm',\n dinnertime: '6:00pm',\n night: '8:00pm',\n eod: '10:00pm',\n midnight: '12:00am',\n}\n\nconst halfPast = function (m, s) {\n let hour = m.match('#Cardinal$').text('reduced')\n\n let term = m.match('(half|quarter|25|15|10|5)')\n let mins = term.text('reduced')\n if (term.has('half')) {\n mins = '30'\n }\n if (term.has('quarter')) {\n mins = '15'\n }\n let behind = m.has('to')\n // apply it\n s = s.hour(hour)\n s = s.startOf('hour')\n // assume 'half past 5' is 5pm\n if (hour < 6) {\n s = s.ampm('pm')\n }\n if (behind) {\n s = s.subtract(mins, 'minutes')\n } else {\n s = s.add(mins, 'minutes')\n }\n return s\n}\n\nconst parseTime = function (doc, context) {\n let time = doc.match('(at|by|for|before|this)? #Time+')\n if (time.found) {\n doc.remove(time)\n }\n // get the main part of the time\n time = time.not('^(at|by|for|before|this)')\n time = time.not('sharp')\n time = time.not('on the dot')\n let s = spacetime.now(context.timezone)\n let now = s.clone()\n\n // check for known-times (like 'today')\n let timeStr = time.text('reduced')\n if (hardCoded.hasOwnProperty(timeStr)) {\n return hardCoded[timeStr]\n }\n\n // '5 oclock'\n let m = time.match('^#Cardinal oclock (am|pm)?')\n if (m.found) {\n m = m.not('oclock')\n s = s.hour(m.text('reduced'))\n s = s.startOf('hour')\n if (s.isValid() && !s.isEqual(now)) {\n let ampm = m.match('(am|pm)').text('reduced')\n s = s.ampm(ampm)\n return s.time()\n }\n }\n\n // 'quarter to two'\n m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal')\n if (m.found) {\n s = halfPast(m, s)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n // '4 in the evening'\n m = time.match('[*] (through|thru) [*]',\n // parse: (m, context) => {\n // let from = m.groups('a')\n // let to = m.groups('b')\n // from = parseDate(from, context)\n // to = parseDate(to, context)\n // if (from && to) {\n // return {\n // start: from,\n // end: to.end(),\n // }\n // }\n // return null\n // },\n // },\n\n // {\n // // 'A until B' (not inclusive end)\n // match: 'from? [*] (to|until|upto) [*]',\n // parse: (m, context) => {\n // let from = m.groups('a')\n // let to = m.groups('b')\n // from = parseDate(from, context)\n // to = parseDate(to, context)\n // if (from && to) {\n // return {\n // start: from,\n // end: to.end(),\n // }\n // }\n // return null\n // },\n // },\n\n {\n // 'before june'\n match: '^due? (by|before) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n let start = new Unit(context.today, null, context)\n if (start.d.isAfter(unit.d)) {\n start = unit.clone().applyShift({ weeks: -2 })\n }\n // end the night before\n let end = unit.clone().applyShift({ day: -1 })\n return {\n start: start,\n end: end.end(),\n }\n }\n return null\n },\n },\n\n {\n // 'in june'\n match: '^(on|in|at|@) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n return { start: unit, end: unit.clone().end() }\n }\n return null\n },\n },\n\n {\n // 'after june'\n match: '^(after|following) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n unit = unit.after()\n return {\n start: unit.clone(),\n end: punt(unit.clone(), context),\n }\n }\n return null\n },\n },\n {\n // 'in june'\n match: '^(on|during|in|during) [*]',\n group: 0,\n parse: (m, context) => {\n let unit = parseDate(m, context)\n if (unit) {\n return {\n start: unit,\n end: unit.clone().end(),\n }\n }\n return null\n },\n },\n]\n","const parseDate = require('../parseDate/parse')\nconst parseInterval = require('./intervals')\nconst ranges = require('./ranges')\n\n// loop thru each range template\nconst parseRange = function (doc, context) {\n // parse-out 'every week ..'\n let interval = parseInterval(doc, context) || {}\n // try each template in order\n for (let i = 0; i < ranges.length; i += 1) {\n let fmt = ranges[i]\n let m = doc.match(fmt.match)\n if (m.found) {\n if (fmt.group !== undefined) {\n m = m.groups(fmt.group)\n }\n let res = fmt.parse(m, context)\n if (res !== null) {\n // console.log(fmt.match)\n return Object.assign({}, interval, res)\n }\n }\n }\n //else, try whole thing\n let res = {\n start: null,\n end: null,\n }\n let unit = parseDate(doc, context)\n if (unit) {\n res = {\n start: unit,\n end: unit.clone().end(),\n }\n }\n let combined = Object.assign({}, interval, res)\n return combined\n}\nmodule.exports = parseRange\n","const normalize = function (doc) {\n doc = doc.clone()\n\n // 'four thirty' -> 4:30\n let m = doc.match('[#Cardinal] [(thirty|fifteen)]').match('#Time+')\n if (m.found) {\n let hour = m.groups('hour')\n let min = m.groups('min')\n let num = hour.values().get(0)\n if (num > 0 && num <= 12) {\n let mins = min.values().get(0)\n let str = `${num}:${mins}`\n m.replaceWith(str)\n }\n }\n\n if (!doc.numbers) {\n console.warn(\"Compromise: compromise-dates cannot find plugin dependency 'compromise-number'\")\n } else {\n // convert 'two' to 2\n let num = doc.numbers()\n num.toNumber()\n num.toCardinal(false)\n }\n // // expand 'aug 20-21'\n doc.contractions().expand()\n // // remove adverbs\n doc.adverbs().remove()\n // // 'week-end'\n doc.replace('week end', 'weekend').tag('Date')\n // // 'a up to b'\n doc.replace('up to', 'upto').tag('Date')\n // 'in a few years'\n m = doc.match('in [a few] #Duration')\n if (m.found) {\n m.groups('0').replaceWith('2')\n m.tag('DateShift')\n }\n\n return doc\n}\nmodule.exports = normalize\n","const spacetime = require('spacetime')\nconst maxDate = 8640000000000000\n\nconst shouldPick = function (s, byDay) {\n if (byDay && byDay[s.dayName()] !== true) {\n return false\n }\n return true\n}\n\n// list possible dates of a repeating date\nconst generateDates = function (result, context) {\n let list = []\n let max_count = context.max_repeat || 12\n let s = spacetime(result.start || context.today, context.timezone)\n // should we stop at the end date?\n let end = spacetime(result.end, context.timezone)\n let toAdd = Object.keys(result.repeat.interval)\n if (toAdd[0] && s.isSame(end, toAdd[0]) === true) {\n // ignore the end date!\n end = spacetime(maxDate, context.timezone)\n }\n // should we only include these days?\n let byDay = null\n if (result.repeat.filter) {\n byDay = result.repeat.filter.weekDays\n }\n // start going!\n let loops = 0\n while (list.length < max_count && s.epoch < end.epoch) {\n if (shouldPick(s, byDay, end)) {\n list.push(s.iso())\n }\n toAdd.forEach((unit) => {\n s = s.add(result.repeat.interval[unit], unit)\n })\n loops += 1\n if (loops > 10000) {\n console.warn('Warning: Possible infinite loop in date-parser')\n console.log(result.repeat)\n break\n }\n }\n result.repeat.generated = list\n return result\n}\nmodule.exports = generateDates\n","const spacetime = require('spacetime')\nconst parseRanges = require('./02-ranges')\nconst normalize = require('./normalize')\nconst generate = require('./generate')\n\nconst addDuration = function (start, end) {\n let duration = {}\n if (start && end) {\n duration = start.d.diff(end.d)\n // we don't need these\n delete duration.milliseconds\n delete duration.seconds\n }\n return duration\n}\n\nconst toISO = function (unit) {\n if (unit && unit.d) {\n return unit.d.format('iso')\n }\n return null\n}\n\nconst getDate = function (doc, context) {\n // validate context a bit\n context = context || {}\n context.timezone = context.timezone || 'ETC/UTC'\n context.today = spacetime(context.today || null, context.timezone)\n //turn 'five' into 5..\n doc = normalize(doc)\n //interpret 'between [A] and [B]'...\n let result = parseRanges(doc, context)\n // add duration\n result.duration = addDuration(result.start, result.end)\n // format as iso\n result.start = toISO(result.start)\n result.end = toISO(result.end)\n // generate interval dates\n if (result.repeat) {\n result = generate(result, context)\n }\n\n return result\n}\nmodule.exports = getDate\n","let arr = [\n ['mon', 'monday'],\n ['tue', 'tuesday'],\n ['tues', 'tuesday'],\n ['wed', 'wednesday'],\n ['thu', 'thursday'],\n ['thurs', 'thursday'],\n ['fri', 'friday'],\n ['sat', 'saturday'],\n ['sun', 'sunday'],\n\n ['jan', 'january'],\n ['feb', 'february'],\n ['mar', 'march'],\n ['apr', 'april'],\n ['jun', 'june'],\n ['jul', 'july'],\n ['aug', 'august'],\n ['sep', 'september'],\n ['sept', 'september'],\n ['oct', 'october'],\n ['nov', 'november'],\n ['dec', 'december'],\n]\n\narr = arr.map(a => {\n return { short: a[0], long: a[1] }\n})\n\nmodule.exports = arr\n","const parse = require('./parse')\nconst spacetime = require('spacetime')\nconst abbrevs = require('./data/_abbrevs')\n\nmodule.exports = {\n /** easy getter for the start/end dates */\n get: function (options) {\n let arr = []\n this.forEach((doc) => {\n let found = parse(doc, this.context)\n arr.push(found)\n })\n if (typeof options === 'number') {\n return arr[options]\n }\n return arr\n },\n /** overload the original json with date information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n this.forEach((doc) => {\n let json = doc.json(options)[0]\n let found = parse(doc, this.context)\n json.date = found\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n\n /** render all dates according to a specific format */\n format: function (fmt) {\n this.forEach((doc) => {\n let obj = parse(doc, this.context)\n if (obj.start) {\n let start = spacetime(obj.start, this.context.timezone)\n let str = start.format(fmt)\n if (obj.end) {\n let end = spacetime(obj.end, this.context.timezone)\n if (start.isSame(end, 'day') === false) {\n str += ' to ' + end.format(fmt)\n }\n }\n doc.replaceWith(str, { keepTags: true, keepCase: false })\n }\n })\n return this\n },\n /** replace 'Fri' with 'Friday', etc*/\n toLongForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.short, a.long, true)\n })\n return this\n },\n /** replace 'Friday' with 'Fri', etc*/\n toShortForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.long, a.short, true)\n })\n return this\n },\n}\n","const known = {\n century: true,\n day: true,\n decade: true,\n hour: true,\n millisecond: true,\n minute: true,\n month: true,\n second: true,\n weekend: true,\n week: true,\n year: true,\n quarter: true,\n season: true,\n}\n\nlet mapping = {\n hr: 'hour',\n min: 'minute',\n sec: 'second',\n 'week end': 'weekend',\n wk: 'week',\n yr: 'year',\n qtr: 'quarter',\n}\n// add plurals\nObject.keys(mapping).forEach((k) => {\n mapping[k + 's'] = mapping[k]\n})\n\nconst parse = function (doc) {\n let duration = {}\n //parse '8 minutes'\n doc.match('#Value+ #Duration').forEach((m) => {\n let num = m.numbers().get(0)\n let unit = m.match('#Duration').nouns().toSingular().text()\n // turn 'mins' into 'minute'\n if (mapping.hasOwnProperty(unit)) {\n unit = mapping[unit]\n }\n if (known.hasOwnProperty(unit) && num) {\n duration[unit] = num\n }\n })\n return duration\n}\nmodule.exports = parse\n","const parse = require('./parse')\n\nconst methods = {\n /** easy getter for the time */\n get: function (options) {\n let arr = []\n this.forEach((doc) => {\n let res = parse(doc)\n arr.push(res)\n })\n if (typeof options === 'number') {\n return arr[options]\n }\n return arr\n },\n /** overload the original json with duration information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n this.forEach((doc) => {\n let json = doc.json(options)\n json.duration = parse(doc)\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n /** change to a standard duration format */\n normalize: function () {\n this.forEach((doc) => {\n let duration = parse(doc)\n let list = []\n Object.keys(duration).forEach((unit) => {\n let num = duration[unit]\n let word = unit\n if (num !== 1) {\n word += 's'\n }\n list.push(`${num} ${word}`)\n })\n // splice-in an 'and'\n if (list.length > 1) {\n let beforeEnd = list.length - 1\n list.splice(beforeEnd, 0, 'and')\n }\n let text = list.join(' ')\n doc.replaceWith(text)\n })\n return this\n },\n}\n\nconst addDurations = function (Doc) {\n /** phrases like '2 months', or '2mins' */\n class Durations extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = {}\n }\n }\n //add-in methods\n Object.assign(Durations.prototype, methods)\n\n /** phrases like '2 months' */\n Doc.prototype.durations = function (n) {\n let m = this.match('#Value+ #Duration and? #Value+? #Duration?')\n if (typeof n === 'number') {\n m = m.get(n)\n }\n return new Durations(m.list, this, this.world)\n }\n}\nmodule.exports = addDurations\n","const normalize = require('../normalize')\nconst parseTime = require('../parseDate/01-tokenize/03-time')\n\nconst parse = function (m, context) {\n m = normalize(m)\n let res = parseTime(m, context)\n return res\n}\nmodule.exports = parse\n","const parse = require('./parse')\n\nconst methods = {\n /** easy getter for the time */\n get: function (options) {\n let arr = []\n this.forEach((doc) => {\n let res = parse(doc, this.context)\n arr.push(res)\n })\n if (typeof options === 'number') {\n return arr[options]\n }\n return arr\n },\n /** overload the original json with duration information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n this.forEach((doc) => {\n let json = doc.json(options)\n json.time = parse(doc, this.context)\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n}\n\nconst addTimes = function (Doc) {\n /** phrases like '2 months', or '2mins' */\n class Times extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = {}\n }\n }\n //add-in methods\n Object.assign(Times.prototype, methods)\n\n /** phrases like '4pm' */\n Doc.prototype.times = function (n) {\n let m = this.match('#Time+ (am|pm)?')\n // m.debug()\n if (typeof n === 'number') {\n m = m.get(n)\n }\n return new Times(m.list, this, this.world)\n }\n}\nmodule.exports = addTimes\n","const tagger = require('./01-tagger')\nconst tags = require('./data/_tags')\nconst words = require('./data/words')\nconst methods = require('./methods')\nconst addDurations = require('./durations')\nconst addTimes = require('./times')\nconst spacetime = require('spacetime')\n\nconst opts = {\n punt: { weeks: 2 },\n}\n\nconst addMethods = function (Doc, world) {\n // our new tags\n world.addTags(tags)\n // add info for the date plugin\n world.addWords(words)\n // run our tagger\n world.postProcess(tagger)\n\n // add .durations() class + methods\n addDurations(Doc, world)\n // add .times() class + methods\n addTimes(Doc, world)\n\n /** phraes like 'nov 2nd' or 'on tuesday' */\n class Dates extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = opts\n }\n }\n //add-in methods\n Object.assign(Dates.prototype, methods)\n\n Doc.prototype.dates = function (n) {\n let context = {}\n if (n && typeof n === 'object') {\n context = n\n n = null\n }\n context = Object.assign({}, context, opts)\n // let r = this.clauses()\n let dates = this.match('#Date+')\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n let d = new Dates(dates.list, this, this.world)\n if (context.today) {\n context.today = spacetime(context.today, context.timezone)\n }\n d.context = context\n return d\n }\n}\n\nmodule.exports = addMethods\n"],"names":["preps","thisNext","sections","seasons","tagYear","m","reason","found","forEach","p","str","text","num","parseInt","tag","tagYearSafe","tagDates","doc","match","month","val","ifNo","duration","unTag","season","date","not","cardinal","v","groups","time","here","values","has","replaceWith","dateTagger","sectionTagger","timeTagger","notIf","shiftTagger","tagIntervals","fixUp","oops","d","knownDate","lastTerm","terms","methods","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","normalize","numbers","tagDate","fn","FinancialQuarter","isA","notA","Season","Year","Duration","Holiday","Timezone","DateShift","global","factory","module","this","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","Array","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_i","_s","next","done","push","value","length","err","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","name","from","test","len","arr2","TypeError","MSEC_IN_HOUR","toUtc","dstChange","offset","year","_dstChange$split","split","_dstChange$split2","rest","_rest$split","_rest$split2","day","hour","Date","UTC","inSummerTime","epoch","start","end","summerOffset","winterOffset","getUTCFullYear","startUtc","endUtc","summerTime","quickOffset","s","zones","timezones","obj","tz","console","warn","dst","jul","dec","hem","inSummer","quick","_build","_build$1","freeze","__proto__","_prefixes","createCommonjsModule","exports","getCjsExportFromNamespace","data","all","keys","k","Number","names","replace","before","unpack","fallbackTZ","safeIntl","Intl","DateTimeFormat","format","resolvedOptions","timezone","timeZone","toLowerCase","guessTz","guessTz_1","isOffset","isNumber","utcOffset","gmtOffset","toIana","parseOffset","parseOffset_1","local","cities","reduce","h","city","lookupTz","error","trim","hasOwnProperty","id","Error","find","millisecond","second","minute","week","milliseconds","walk","unit","previous","current","startUnit","original","diff","Math","abs","halfStep","units","valid","walkTo","getMonth","getFullYear","seconds","wants","old","clone","silent","walk_1","shortMonths","longMonths","buildMapping","sep","months","short","long","mapping","set","i18n","parseOffset$1","parseFloat","parseOffset_1$1","parseTime","arguments","startOf","concat","substring","ampm","_h","parseTime_1","monthLengths","monthLengths_1","fns","isLeapYear","isDate","isNaN","valueOf","input","isObject","isBoolean","zeroPad","pad","join","titleCase","toUpperCase","substr","ordinal","j","toCardinal","String","getEpoch","tmp","getTime","beADate","formatTimezone","delimiter","sign","absOffset","hours","minutes","hasDate","max","hasDate_1","months$1","parseYear","today","strFmt","reg","parse","givenTz","options","british","_today","quarter","getDate","strParse","getNow","now","dates","tonight","tomorrow","add","yesterday","subtract","christmas","newYears","namedDates","minimumEpoch","defaults","handleArray","order","handleObject","assign","parseInput","res","isValid","_res","shortDays","longDays","days","aliases","tues","thur","thurs","titleCaseEnabled","caseFormat","useTitleCase","isoOffset","_offset","applyCaseFormat","dayName","dayShort","dayNumber","dayOrdinal","dayPad","dateOrdinal","datePad","monthName","monthShort","monthNumber","monthOrdinal","monthPad","isoMonth","yearShort","isoYear","isNegative","time24","hour24","hour12","hourPad","hour24Pad","minutePad","secondPad","era","json","numeric","numericUs","numericUk","mmDd","iso","h24","ms","isoShort","isoUtc","toISOString","nice","nice24","niceYear","niceDay","niceFull","niceFull24","mdy","dmy","ymd","printFormat","out","indexOf","_","fmt","_out","format_1","G","GG","GGG","GGGG","y","yy","yyy","yyyy","yyyyy","Q","QQ","QQQ","QQQQ","M","MM","MMM","MMMM","w","ww","dd","D","dayOfYear","DD","DDD","E","EE","EEE","EEEE","EEEEE","e","ee","eee","eeee","eeeee","a","aa","aaa","aaaa","h12","hh","H","HH","mm","ss","A","z","zz","zzz","zzzz","Z","ZZ","ZZZ","ZZZZ","addAlias","_char","to","toName","escapeChars","filter","ch","combineRepeated","c","map","unixFmt","txt","unixFmt_1","units$1","doUnit","endOf","percent","toFixed","progress","progress_1","nearest","prog","nearest_1","climb","b","isBefore","isAfter","diffOne","one","fastYear","years","msDiff","weeks","waterfall","reverseDiff","main","reversed","diff$1","qualifiers","almost","over","getDiff","later","earlier","isSame","u","pluralize","since","isNow","every","rounded","qualified","precise","englishValues","englishValue","nextUnit","nextValue","splice","since_1","north","south","quarters","units$2","quarterhour","_weekStart","q","hemisphere","decade","century","startOf_1","isDay","result","every_1","parseDst","epochShift","hasDst","Boolean","default_offset","change","back","summer","winter","isDST","timezone_1","units$3","input$1","hasDST","leapYear","last","goto","isAwake","isAsleep","log","logYear","_this","debug","fromNow","weekStart","inDST","round","each","methods_1","isLeapYear$1","validate","confirm","want","shift","sec","methods$1","getMilliseconds","getSeconds","getMinutes","getHours","hourFloat","_minute","_hour","which","dayTime","times","morning","breakfast","noon","lunch","afternoon","evening","dinner","night","midnight","_01Time","methods$2","getDay","_02Date","clearMinutes","methods$3","sum","setDate","setFullYear","setHours","setMinutes","setMonth","toAdd","minus","thisOne","skipWeeks","_month","floor","millenium","_03Year","methods$4","addMethods","Space","query","isLeapYear$2","getMonthLength","rollMonth","_years","rollDaysDown","rollDaysUp","_model","daysBack","order$1","keep","dstAwareUnits","keepDate","addMethods$1","SpaceTime","_sum","remainder","wantYear","haveYear","plus","print","addMethods$2","tzAware","same","addMethods$3","isEqual","isBetween","isInclusive","startEpoch","endEpoch","compare","addMethods$4","defineProperty","get","bias","getTimezoneOffset","toLocalDate","spacetime","whereIts","startHour","endHour","tzs","whereIts_1","_version","main$1","setToday","extend","version","plugin","src","america","asia","europe","africa","aus","pac","informal","bst","ireland","cet","cest","eet","eest","trt","etc","utc","gmt","sast","acst","acdt","aest","aedt","awst","awdt","acwst","lhst","lhdt","msk","russian","cst","cdt","mst","mdt","ast","adt","est","edt","pst","pdt","ahst","ahdt","hst","nst","ndt","brt","brasília","brasilia","amt","east","easst","vet","pyt","pyst","cot","clst","cldt","uyt","ist","irst","irdt","iranian","pkt","ict","ct","almt","yakt","gst","uae","hkt","wib","wita","idt","israeli","krat","myt","sgt","kst","uzt","vlat","mvt","mut","mht","sst","chst","pgt","iana","formal","lex","Unit","context","enumerable","writable","rel","section","middle","dayStart","dayEnd","Day","CalendarDate","WeekDay","weekDay","AnyMonth","Month","AnyQuarter","Quarter","Week","WeekEnd","Hour","Minute","Moment","knownUnits","weekend","wk","min","parseUnit","parseShift","ts","remove","dir","oneBased","getCounter","hardCoded","daybreak","midday","lunchtime","dinnertime","eod","halfPast","term","mins","behind","timeStr","desc","g","parseRelative","parseSection","parseTimezone","parseWeekday","knownWord","eom","eoy","tommorrow","tmrw","define","feb","apr","oct","parseHoliday","spacetimeHoliday","milliscond","instant","yr","qtr","hr","matchStr","nextLast","Model","fmtToday","parseYearly","parseExplicit","impliedYear","applyCounter","counter","tokens","relative","weekday","require$$8","holiday","require$$9","require$$10","yearly","require$$11","explicit","require$$12","transform","require$$13","parseDate","applyShift","applyWeekDay","applyRel","applySection","applyTime","dayNames","mon","tue","wed","thu","fri","sat","sun","monday","tuesday","wednesday","thursday","friday","saturday","sunday","parseLogic","parseIntervals","repeat","interval","choose","nouns","toSingular","weekDays","punt","append","year2","prepend","fromDate","toDate","group","after","parseRange","parseInterval","ranges","combined","toNumber","contractions","expand","adverbs","maxDate","shouldPick","byDay","generateDates","list","max_count","max_repeat","loops","generated","addDuration","toISO","parseRanges","generate","keepTags","keepCase","toLongForm","abbrevs","toShortForm","known","word","beforeEnd","addDurations","Doc","Durations","durations","world","addTimes","Times","opts","addTags","tags","addWords","words","postProcess","tagger","Dates"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/dates/builds/compromise-dates.min.js b/plugins/dates/builds/compromise-dates.min.js index 141e46724..8c3d120c0 100644 --- a/plugins/dates/builds/compromise-dates.min.js +++ b/plugins/dates/builds/compromise-dates.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).compromiseDates=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var a=0;a1e3&&n<3e3&&t.tag("Year",e)}))},f=function(t,e){!0===t.found&&t.forEach((function(t){var a=t.text("reduced"),n=parseInt(a,10);n&&n>1900&&n<2030&&t.tag("Year",e)}))},y="date-values",p="date-tagger",g="section-tagger",v="time-tagger",b="shift-tagger",w="fix-tagger",k=[function(t){t.match("in the (night|evening|morning|afternoon|day|daytime)").tag("Time","in-the-night"),t.match("(#Value|#Time) (am|pm)").tag("Time","value-ampm"),t.match("/^[0-9]{4}-[0-9]{2}$/").tag("Date","2012-06"),t.match("(tue|thu)").tag("WeekDay","misc-weekday");var e=t.if("#Month");!0===e.found&&(e.match("#Month #Date+").tag("Date","correction-numberRange"),e.match("#Value of #Month").tag("Date","value-of-month"),e.match("#Cardinal #Month").tag("Date","cardinal-month"),e.match("#Month #Value to #Value").tag("Date","value-to-value"),e.match("#Month the #Value").tag("Date","month-the-value"));var a=t.if("#Value");if(!0===a.found){a.match("(#WeekDay|#Month) #Value").ifNo("#Money").tag("Date","date-value"),a.match("#Value (#WeekDay|#Month)").ifNo("#Money").tag("Date","value-date"),a.match("#TextValue #TextValue").if("#Date").tag("#Date","textvalue-date"),a.match("#Value (#WeekDay|#Duration) back").tag("#Date","3-back");var n=a.if("#Duration");!0===n.found&&(n.match("for #Value #Duration").tag("Date","for-x-duration"),n.match("#Value #Duration #Conjunction").tag("Date","val-duration-conjunction"),n.match("".concat(c,"? #Value #Duration")).tag("Date","value-duration"),n.match("#Value #Duration old").unTag("Date","val-years-old"))}var r=t.if(l);!0===r.found&&(r.match("".concat(c,"? ").concat(d," ").concat(l)).tag("Date","thisNext-season"),r.match("the? ".concat(h," of ").concat(l)).tag("Date","section-season"),r.match("".concat(l," ").concat(c,"? #Cardinal")).tag("Date","season-year"));var i=t.if("#Date");!0===i.found&&(i.match("#Date the? #Ordinal").tag("Date","correction"),i.match("".concat(d," #Date")).tag("Date","thisNext"),i.match("due? (by|before|after|until) #Date").tag("Date","by"),i.match("(last|next|this|previous|current|upcoming|coming|the) #Date").tag("Date","next-feb"),i.match("the? ".concat(h," of #Date")).tag("Date","section-of"),i.match("#Ordinal #Duration in #Date").tag("Date","duration-in"),i.match("(early|late) (at|in)? the? #Date").tag("Time","early-evening"),i.match("#Date (by|before|after|at|@|about) #Cardinal").not("^#Date").tag("Time","date-before-Cardinal"),i.match("#Date [(am|pm)]",0).unTag("Verb").unTag("Copula").tag("Time","date-am"),i.match("#Date (#Preposition|to) #Date").ifNo("#Duration").tag("Date","date-prep-date"));var o=t.if("#Cardinal");if(!0===o.found){var u=o.match("#Date #Value [#Cardinal]",0);m(u,"date-value-year"),u=o.match("#Date [#Cardinal]",0),f(u,"date-year"),u=o.match("".concat(h," of [#Cardinal]")),f(u,"section-year"),u=o.match("#Month #Value [#Cardinal]",0),m(u,"month-value-year"),u=o.match("#Month #Value to #Value [#Cardinal]",0),m(u,"month-range-year"),u=o.match("(in|of|by|during|before|starting|ending|for|year|since) [#Cardinal]",0),m(u,"in-year-1"),u=o.match("(q1|q2|q3|q4) [#Cardinal]",0),m(u,"in-year-2"),u=o.match("#Ordinal quarter [#Cardinal]",0),m(u,"in-year-3"),u=o.match("the year [#Cardinal]",0),m(u,"in-year-4"),u=o.match("it (is|was) [#Cardinal]",0),f(u,"in-year-5"),o.match("".concat(h," of #Year")).tag("Date")}var s=t.if("#Time");!0===s.found&&(s.match("(by|before|after|at|@|about) #Time").tag("Time","preposition-time"),s.match("#Time [(eastern|pacific|central|mountain)]",0).tag("Date","timezone"),s.match("#Time [(est|pst|gmt)]",0).tag("Date","timezone abbr"));var y=t.match("^/^20[012][0-9]$/$");return f(y,"2020-ish"),t.match("(in|after) /^[0-9]+(min|sec|wk)s?/").tag("Date","shift-units"),t},function(t){return t.has("once [a] #Duration")||t.match("[a] #Duration",0).replaceWith("1").tag("Cardinal",y),t.has("#Value")&&(t.match("#Month #Value to #Value of? #Year?").tag("Date",y),t.match("#Value to #Value of? #Month #Year?").tag("Date",y),t.match("#Value #Duration of #Date").tag("Date",y),t.match("#Value+ #Duration (after|before|into|later|afterwards|ago)?").tag("Date",y),t.match("#Value #Date").tag("Date",y),t.match("#Date #Value").tag("Date",y),t.match("#Date #Preposition #Value").tag("Date",y),t.match("#Date (after|before|during|on|in) #Value").tag("Date",y),t.match("#Value (year|month|week|day) and a half").tag("Date",y),t.match("#Value and a half (years|months|weeks|days)").tag("Date",y),t.match("on the #Ordinal").tag("Date",y)),t},function(t){return t.match("(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)").match("#Noun").tag("Season",p),t.match("(q1|q2|q3|q4)").tag("FinancialQuarter",p),t.match("(this|next|last|current) quarter").tag("FinancialQuarter",p),t.match("(this|next|last|current) season").tag("Season",p),t.has("#Date")&&(t.match("#Date #Preposition #Date").tag("Date",p),t.match("(once|twice) (a|an|each) #Date").tag("Date",p),t.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",p),t.match("#Date+").tag("Date",p),t.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",p),t.match("a #Duration").tag("Date",p),t.match("(between|from) #Date").tag("Date",p),t.match("(to|until|upto) #Date").tag("Date",p),t.match("#Date and #Date").tag("Date",p),t.match("(by|until|after|before|during|on|in|following|since) (next|this|last)? (#Date|#Date)").tag("Date",p),t.match("the? #Date after next one?").tag("Date",p),t.match("(about|approx|approximately|around) #Date").tag("Date",p)),t},function(t){return t.has("#Date")&&(t.match("this? (last|next|past|this|previous|current|upcoming|coming|the) #Date").tag("Date",g),t.match("(starting|beginning|ending) #Date").tag("Date",g),t.match("the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)").tag("Date",g),t.match("(the|this) #Date").tag("Date",g),t.match("#Date up to #Date").tag("Date",g)),t},function(t){return t.match("#Cardinal oclock").tag("Time",v),t.match("/^[0-9]{2}h[0-9]{2}$/").tag("Time",v),t.match("/^[0-9]{2}/[0-9]{2}/").tag("Date",v).unTag("Value"),t.match("[#Value] (in|at) the? (morning|evening|night|nighttime)").tag("Time",v),t.has("#Cardinal")&&!t.has("#Month")&&t.match("1? (half|quarter|25|15|10|5) (past|after|to) #Cardinal").tag("Time",v),t.has("#Date")&&(t.match("/^[0-9]{4}[:-][0-9]{2}[:-][0-9]{2}T[0-9]/").tag("Time",v),t.match("#Date [at #Cardinal]",0).notIf("#Year").tag("Time",v),t.match("half an (hour|minute|second)").tag("Date",v),t.match("#Noun (standard|daylight|central|mountain)? time").tag("Timezone",v),t.match("/^utc[+-][0-9]/").tag("Timezone",v),t.match("/^gmt[+-][0-9]/").tag("Timezone",v),t.match("(in|for|by|near|at) #Timezone").tag("Timezone",v),t.match("#Time [(eastern|mountain|pacific|central)]",0).tag("Timezone",v)),t},function(t){return t.has("#Date")&&(t.match("#Cardinal #Duration (before|after|ago|from|hence|back)").tag("DateShift",b),t.match("in #Cardinal #Duration").tag("DateShift",b),t.match("in a (few|couple) of? #Duration").tag("DateShift",b),t.match("#Cardinal #Duration and? #DateShift").tag("DateShift",b),t.match("#DateShift and #Cardinal #Duration").tag("DateShift",b),t.match("[#Duration (after|before)] #Date",0).tag("DateShift",b),t.match("in half (a|an) #Duration").tag("DateShift",b)),t},function(t){if(t.has("#Date")){var e=t.match("#Date+ by #Date+");e.found&&!e.has("^due")&&e.match("^#Date+").unTag("Date","by-monday");var a=t.match("#Date+");a.match("^day$").unTag("Date","spa-day"),a.match("(in|of|by|for)? (#Possessive && #Date)").unTag("Date","tomorrows meeting");var n="(yesterday|today|tomorrow)";a.has(n)&&(a.match("".concat(n," [#Value]$")).unTag("Date","yesterday-7"),a.match("^[#Value] ".concat(n,"$"),0).unTag("Date","7 yesterday"),a.match("#WeekDay+ ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","fri-yesterday"),a.match("(this|last|next) #Date ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","this month yesterday")),a.match("on #Cardinal$").unTag("Date",w),a.match("this tomorrow").terms(0).unTag("Date","this-tomorrow"),a.match("(q1|q2|q3|q4) #Year").tag("Date",w),a.match("^#Value (this|next|last)").terms(0).unTag("Date",w),a.has("(last|this|next)")&&(a.match("(last|this|next) #Duration #Value").terms(2).unTag("Date",w),a.match("!#Month #Value (last|this|next) #Date").terms(0).unTag("Date",w)),!1===a.has("(#Year|#Time|#TextValue|#NumberRange)")&&a.match("(#Month|#WeekDay) #Value #Value").terms(2).unTag("Date",w),a.has("^between")&&!a.has("and .")&&a.unTag("Date",w),!a.has("#Month #Month")||a.has("@hasHyphen")||a.has("@hasComma")||a.match("#Month").lastTerm().unTag("Date","month-month"),a.has("(minutes|seconds|weeks|hours|days|months)")&&!a.has("#Value #Duration")&&a.match("(minutes|seconds|weeks|hours|days|months)").unTag("Date","log-hours"),a.has("about #Holiday")&&a.match("about").unTag("#Date","about-thanksgiving"),a.match("(from|by|before) now").unTag("Time"),a.match("#Date+").match("^the").unTag("Date")}return t}],D=function(t){return t=function(t){return t.numbers().normalize(),t}(t),k.forEach((function(e){return e(t)})),t},A={FinancialQuarter:{isA:"Date"},Season:{isA:"Date"},Year:{isA:["Date"],notA:"RomanNumeral"},Duration:{isA:["Date","Noun"]},Holiday:{isA:["Date","Noun"]},Timezone:{isA:["Date","Noun"],notA:["Adjective","DateShift"]},DateShift:{isA:["Date"],notA:["TimeZone","Holiday"]}};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function O(t){var e={exports:{}};return t(e,e.exports),e.exports}var x=O((function(t,e){t.exports=function(){function t(t,r){return e(t)||a(t,r)||n(t,r)||i()}function e(t){if(Array.isArray(t))return t}function a(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var a=[],n=!0,r=!1,i=void 0;try{for(var o,u=t[Symbol.iterator]();!(n=(o=u.next()).done)&&(a.push(o.value),!e||a.length!==e);n=!0);}catch(t){r=!0,i=t}finally{try{n||null==u.return||u.return()}finally{if(r)throw i}}return a}}function n(t,e){if(t){if("string"==typeof t)return r(t,e);var a=Object.prototype.toString.call(t).slice(8,-1);return"Object"===a&&t.constructor&&(a=t.constructor.name),"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?r(t,e):void 0}}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var a=0,n=new Array(e);a=o&&t");return!0===s(t.epoch,r[0],r[1],a,n)?a:n},d={"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau","9.5|s|04/04:03->10/03:02":"4/adelaide,4/broken_hill,4/south,4/yancowinna","9.5|s":"4/darwin,4/north","8|s|03/08:01->10/04:00":"12/casey","8|s":"2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west","8|n|03/25:03->09/29:23":"2/ulan_bator","8|n":"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/qostanay,2/thimbu,2/thimphu,2/urumqi,9/chagos","6.5|n":"2/rangoon,2/yangon,9/cocos","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives","5.75|n":"2/kathmandu,2/katmandu","5.5|n":"2/calcutta,2/colombo,2/kolkata","4|s":"9/reunion","4|n":"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius","4.5|n|03/22:00->09/21:24":"2/tehran","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|03/28:03->10/31:04":"2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye","3|n|03/28:02->10/31:03":"8/chisinau,8/tiraspol","3|n|03/28:00->10/30:24":"2/beirut","3|n|03/27:00->10/30:01":"2/gaza,2/hebron","3|n|03/26:02->10/31:02":"2/jerusalem,2/tel_aviv","3|n|03/26:00->10/29:01":"2/amman","3|n|03/26:00->10/28:24":"2/damascus","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte","2|s|03/28:02->10/31:02":"12/troll","2|s":"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane","2|n|03/28:02->10/31:03":"0/ceuta,arctic/longyearbyen,3/jan_mayen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich","2|n":"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad","1|s|04/02:01->09/03:03":"0/windhoek","1|s":"0/kinshasa,0/luanda","1|n|04/11:03->05/16:02":"0/casablanca,0/el_aaiun","1|n|03/28:01->10/31:02":"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london","1|n":"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s|04/04:04->09/26:03":"11/apia","13|s|01/15:02->11/05:03":"11/tongatapu","13|n":"11/enderbury,11/fakaofo","12|s|04/04:03->09/26:02":"12/mcmurdo,12/south_pole,11/auckland","12|s|01/17:03->11/14:02":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis","12.75|s|04/04:03->04/04:02":"11/chatham","11|s|04/04:03->10/03:02":"12/macquarie","11|s":"11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n|04/04:03->10/03:02":"11/norfolk","10|s|04/04:03->10/03:02":"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,4/queensland","10|n":"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap","10.5|s|04/04:01->10/03:02":"4/lhi,4/lord_howe","0|n|03/28:00->10/31:01":"1/scoresbysund,3/azores","0|n":"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu","-9|n|03/14:02->11/07:02":"1/adak,1/atka","-9|n":"11/gambier","-9.5|n":"11/marquesas","-8|n|03/14:02->11/07:02":"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat","-8|n":"11/pitcairn","-7|n|03/14:02->11/07:02":"1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,6/pacific,10/bajanorte","-7|n|03/08:02->11/01:01":"1/dawson,1/whitehorse,6/yukon","-7|n":"1/creston,1/dawson_creek,1/fort_nelson,1/hermosillo,1/phoenix","-6|s|04/03:22->09/04:22":"7/easterisland,11/easter","-6|n|04/04:02->10/31:02":"1/chihuahua,1/mazatlan,10/bajasur","-6|n|03/14:02->11/07:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain","-6|n":"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos","-5|s":"1/lima,1/rio_branco,5/acre","-5|n|04/04:02->10/31:02":"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general","-5|n|03/14:02->11/07:02":"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central","-5|n|03/12:03->11/05:01":"1/north_dakota","-5|n":"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre","-4|s|05/13:23->08/13:01":"12/palmer","-4|s|04/03:24->09/05:00":"1/santiago,7/continental","-4|s|03/27:24->10/03:00":"1/asuncion","-4|s|02/16:24->11/03:00":"1/campo_grande,1/cuiaba","-4|s":"1/la_paz,1/manaus,5/west","-4|n|03/14:02->11/07:02":"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern","-4|n|03/14:00->11/07:01":"1/havana","-4|n|03/12:03->11/05:01":"1/indiana,1/kentucky","-4|n":"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin","-3|s":"1/argentina,1/buenos_aires,1/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,5/east","-3|n|03/27:22->10/30:23":"1/nuuk","-3|n|03/14:02->11/07:02":"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic","-3|n":"1/araguaina,1/bahia,1/belem,1/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem","-2|s":"5/denoronha","-2|n|03/27:22->10/30:23":"1/godthab","-2|n|03/14:02->11/07:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia","-2.5|n|03/14:02->11/07:02":"1/st_johns,6/newfoundland","-1|n":"3/cape_verde","-11|n":"11/midway,11/niue,11/pago_pago,11/samoa","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti"},h=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"];function l(t,e){return t(e={exports:{}},e.exports),e.exports}function m(t){return t&&t.default||t}var f=m(Object.freeze({__proto__:null,default:d})),y={};Object.keys(f).forEach((function(t){var e=t.split("|"),a={offset:Number(e[0]),hem:e[1]};e[2]&&(a.dst=e[2]),f[t].split(",").forEach((function(t){t=t.replace(/(^[0-9]+)\//,(function(t,e){return e=Number(e),h[e]+"/"})),y[t]=a}))})),y.utc={offset:0,hem:"n"};for(var p=-14;p<=14;p+=.5){var g=p;g>0&&(g="+"+g);var v="etc/gmt"+g;y[v]={offset:-1*p,hem:"n"},y[v="utc/gmt"+g]={offset:-1*p,hem:"n"}}var b=y,w="utc",k=function(){if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;var t=Intl.DateTimeFormat();if(void 0===t||void 0===t.resolvedOptions)return null;var e=t.resolvedOptions().timeZone;return e?e.toLowerCase():null},D=/(\-?[0-9]+)h(rs)?/i,A=/(\-?[0-9]+)/,O=/utc([\-+]?[0-9]+)/i,x=/gmt([\-+]?[0-9]+)/i,z=function(t){return(t=Number(t))>=-13&&t<=13?"etc/gmt"+(t=((t*=-1)>0?"+":"")+t):null},j=function(t){var e=t.match(D);if(null!==e)return z(e[1]);if(null!==(e=t.match(O)))return z(e[1]);if(null!==(e=t.match(x))){var a=-1*Number(e[1]);return z(a)}return null!==(e=t.match(A))?z(e[1]):null},_=function(){var t=k();return null===t?w:t}(),T=Object.keys(b).reduce((function(t,e){var a=e.split("/")[1]||"";return t[a=a.replace(/_/g," ")]=e,t}),{}),q=function(t){return t=(t=(t=(t=(t=(t=t.replace(/ time/g,"")).replace(/ (standard|daylight|summer)/g,"")).replace(/\b(east|west|north|south)ern/g,"$1")).replace(/\b(africa|america|australia)n/g,"$1")).replace(/\beuropean/g,"europe")).replace(/\islands/g,"island")},M=function(t,e){if(!t)return _;"string"!=typeof t&&console.error("Timezone must be a string - recieved: '",t,"'\n");var a=t.trim(),n=t.split("/");if(n.length>2&&!1===e.hasOwnProperty(a)&&(a=n[0]+"/"+n[1]),a=a.toLowerCase(),!0===e.hasOwnProperty(a))return a;if(a=q(a),!0===e.hasOwnProperty(a))return a;if(!0===T.hasOwnProperty(a))return T[a];if(!0===/[0-9]/.test(a)){var r=j(a);if(r)return r}throw new Error("Spacetime: Cannot find timezone named: '"+t+"'. Please enter an IANA timezone id.")},S={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};S.date=S.day,S.month=25488e5,S.week=6048e5,S.year=3154e7,Object.keys(S).forEach((function(t){S[t+"s"]=S[t]}));var V=S,E=function(t,e,a,n,r){var i=t.d[a]();if(i!==e){var o=null===r?null:t.d[r](),u=t.epoch,s=e-i;t.epoch+=V[n]*s,"day"===n&&Math.abs(s)>28&&e<28&&(t.epoch+=V.hour),null!==r&&o!==t.d[r]()&&(t.epoch=u);for(var c=V[n]/2;t.d[a]()e;)t.epoch-=c;null!==r&&o!==t.d[r]()&&(t.epoch=u)}},C={year:{valid:function(t){return t>-4e3&&t<4e3},walkTo:function(t,e){return E(t,e,"getFullYear","year",null)}},month:{valid:function(t){return t>=0&&t<=11},walkTo:function(t,e){var a=t.d,n=a.getMonth(),r=t.epoch,i=a.getFullYear();if(n!==e){var o=e-n;for(t.epoch+=V.day*(28*o),i!==t.d.getFullYear()&&(t.epoch=r);t.d.getMonth()e;)t.epoch-=V.day}}},date:{valid:function(t){return t>0&&t<=31},walkTo:function(t,e){return E(t,e,"getDate","day","getMonth")}},hour:{valid:function(t){return t>=0&&t<24},walkTo:function(t,e){return E(t,e,"getHours","hour","getDate")}},minute:{valid:function(t){return t>=0&&t<60},walkTo:function(t,e){return E(t,e,"getMinutes","minute","getHours")}},second:{valid:function(t){return t>=0&&t<60},walkTo:function(t,e){t.epoch=t.seconds(e).epoch}},millisecond:{valid:function(t){return t>=0&&t<1e3},walkTo:function(t,e){t.epoch=t.milliseconds(e).epoch}}},P=function(t,e){for(var a=Object.keys(C),n=t.clone(),r=0;r100&&(a/=100),(a*=-1)>=0&&(a="+"+a);var n="etc/gmt"+a;return t.timezones[n]&&(t.tz=n),t},H=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=(e=e.replace(/^\s+/,"").toLowerCase()).match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\.]?([0-9]{1,4})?/);if(null!==a){var n=Number(a[1]);if(n<0||n>24)return t.startOf("day");var r=Number(a[2]);if(a[2].length<2||r<0||r>59)return t.startOf("day");a[4]>999&&(a[4]=parseInt("".concat(a[4]).substring(0,3),10)),t=(t=(t=(t=t.hour(n)).minute(r)).seconds(a[3]||0)).millisecond(a[4]||0);var i=e.match(/[\b0-9](am|pm)\b/);return null!==i&&i[1]&&(t=t.ampm(i[1])),t}if(null!==(a=e.match(/([0-9]+) ?(am|pm)/))&&a[1]){var o=Number(a[1]);return o>12||o<1?t.startOf("day"):t=(t=(t=t.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return t=t.startOf("day")},B=[31,28,31,30,31,30,31,31,30,31,30,31],F=l((function(t,e){e.isLeapYear=function(t){return t%4==0&&t%100!=0||t%400==0},e.isDate=function(t){return"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(t.valueOf())},e.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},e.isObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)},e.isBoolean=function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},e.zeroPad=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,a="0";return(t+="").length>=e?t:new Array(e-t.length+1).join(a)+t},e.titleCase=function(t){return t?t[0].toUpperCase()+t.substr(1):""},e.ordinal=function(t){var e=t%10,a=t%100;return 1===e&&11!==a?t+"st":2===e&&12!==a?t+"nd":3===e&&13!==a?t+"rd":t+"th"},e.toCardinal=function(t){return t=(t=String(t)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(t,10)},e.normalize=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return"day"===(t=(t=(t=(t=t.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))||"days"===t?"date":"min"===t||"mins"===t?"minute":t},e.getEpoch=function(t){return"number"==typeof t?t:e.isDate(t)?t.getTime():t.epoch?t.epoch:null},e.beADate=function(t,a){return!1===e.isObject(t)?a.clone().set(t):t},e.formatTimezone=function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"+":"-",r=Math.abs(t),i=e.zeroPad(parseInt(""+r,10)),o=e.zeroPad(r%1*60);return"".concat(n).concat(i).concat(a).concat(o)}}));F.isLeapYear,F.isDate,F.isArray,F.isObject,F.isBoolean,F.zeroPad,F.titleCase,F.ordinal,F.toCardinal,F.normalize,F.getEpoch,F.beADate,F.formatTimezone;var W=F.isLeapYear,J=function(t){if(!0!==B.hasOwnProperty(t.month))return!1;if(1===t.month)return!!(W(t.year)&&t.date<=29)||t.date<=28;var e=B[t.month]||0;return t.date<=e},Q=I.mapping(),K=function(){var t=arguments.length>1?arguments[1]:void 0,e=parseInt((arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim(),10);return!e&&t&&(e=t.year),e=e||(new Date).getFullYear()},R=[{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/i,parse:function(t,e,a,n){var r=parseInt(e[2],10)-1,i={year:e[1],month:r,date:e[3]};return!1===J(i)?(t.epoch=null,t):(L(t,e[5]),P(t,i),t=H(t,e[4]))}},{reg:/^([0-9]{4})[\-\/.]([0-9]{1,2})[\-\/.]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(t,e){var a={year:e[1],month:parseInt(e[2],10)-1,date:parseInt(e[3],10)};return a.month>=12&&(a.date=parseInt(e[2],10),a.month=parseInt(e[3],10)-1),!1===J(a)?(t.epoch=null,t):(P(t,a),t=H(t,e[4]))}},{reg:/^([0-9]{1,2})[\-\/.]([0-9]{1,2})[\-\/.]?([0-9]{4})?,?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(t,e){var a=parseInt(e[1],10)-1,n=parseInt(e[2],10);(t.british||a>=12)&&(n=parseInt(e[1],10),a=parseInt(e[2],10)-1);var r={year:K(e[3],t._today)||(new Date).getFullYear(),month:a,date:n};return!1===J(r)?(t.epoch=null,t):(P(t,r),t=H(t,e[4]))}},{reg:/^([0-9]{4})[\-\/]([0-9]{2})$/i,parse:function(t,e,a,n){var r=parseInt(e[2],10)-1,i={year:e[1],month:r,date:1};return!1===J(i)?(t.epoch=null,t):(L(t,e[5]),P(t,i),t=H(t,e[4]))}},{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:function(t,e){var a=Q[e[2].toLowerCase()],n={year:K(e[3],t._today),month:a,date:F.toCardinal(e[1]||"")};return!1===J(n)?(t.epoch=null,t):(P(t,n),t=H(t,e[4]))}},{reg:/^([a-z]+)[\-\/]([0-9]{1,2})[\-\/]?([0-9]{4})?$/i,parse:function(t,e){var a=Q[e[1].toLowerCase()],n={year:K(e[3],t._today),month:a,date:F.toCardinal(e[2]||"")};return!1===J(n)?(t.epoch=null,t):(P(t,n),t=H(t,e[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:function(t,e){var a=Q[e[1].toLowerCase()],n={year:K(e[3],t._today),month:a,date:F.toCardinal(e[2]||"")};return!1===J(n)?(t.epoch=null,t):(P(t,n),t=H(t,e[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:function(t,e){var a=Q[e[1].toLowerCase()],n={year:K(e[2],t._today),month:a,date:t._today.date||1};return!1===J(n)?(t.epoch=null,t):(P(t,n),t=H(t,e[4]))}},{reg:/^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(t,e){var a=Q[e[2].toLowerCase()];if(!a)return null;var n={year:K(e[3],t._today),month:a,date:F.toCardinal(e[1])};return!1===J(n)?(t.epoch=null,t):(P(t,n),t=H(t,e[4]))}},{reg:/^(q[0-9])( of)?( [0-9]{4})?/i,parse:function(t,e){var a=e[1]||"";t=t.quarter(a);var n=e[3]||"";return n&&(n=n.trim(),t=t.year(n)),t}},{reg:/^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,parse:function(t,e){var a=e[1]||"";t=t.season(a);var n=e[3]||"";return n&&(n=n.trim(),t=t.year(n)),t}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:function(t,e){var a=e[0]||"";a=(a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1")).replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===J(i)?(t.epoch=null,t):(P(t,i),t=H(t))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:function(t,e){var a=e[0]||"";a=a.replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===J(i)?(t.epoch=null,t):(P(t,i),t=H(t))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:function(t,e){var a=t._today,n=K(e[0],a),r=new Date;a.month&&!a.date&&(a.date=1);var i={year:n,month:a.month||r.getMonth(),date:a.date||r.getDate()};return!1===J(i)?(t.epoch=null,t):(P(t,i),t=H(t))}}],Z=function(t){return t.epoch=Date.now(),Object.keys(t._today||{}).forEach((function(e){"function"==typeof t[e]&&(t=t[e](t._today[e]))})),t},G={now:function(t){return Z(t)},today:function(t){return Z(t)},tonight:function(t){return t=(t=Z(t)).hour(18)},tomorrow:function(t){return t=(t=(t=Z(t)).add(1,"day")).startOf("day")},yesterday:function(t){return t=(t=(t=Z(t)).subtract(1,"day")).startOf("day")},christmas:function(t){var e=Z(t).year();return t=t.set([e,11,25,18,0,0])},"new years":function(t){var e=Z(t).year();return t=t.set([e,11,31,18,0,0])}};G["new years eve"]=G["new years"];var U=G,X=25e8,tt={year:(new Date).getFullYear(),month:0,date:1},et=function(t,e,a){if(0===e.length)return t;for(var n=["year","month","date","hour","minute","second","millisecond"],r=0;r0&&e0){var r=at(t,n,tt);r.isValid()&&(t.epoch=r.epoch)}if(null==e||""===e)return t;if(!0===F.isDate(e))return t.epoch=e.getTime(),t;if(!0===F.isArray(e))return t=et(t,e,n);if(!0===F.isObject(e))return e.epoch?(t.epoch=e.epoch,t.tz=e.tz,t):t=at(t,e,n);if("string"!=typeof e)return t;if(e=(e=(e=e.replace(/\b(mon|tues|wed|wednes|thu|thurs|fri|sat|satur|sun)(day)?\b/i,"")).replace(/,/g,"")).replace(/ +/g," ").trim(),!0===U.hasOwnProperty(e))return t=U[e](t);for(var i=0;i0?e:(e=Math.abs(e),e+" BC")},"year-short":function(t){var e=t.year();return e>0?"'".concat(String(t.year()).substr(2,4)):(e=Math.abs(e))+" BC"},"iso-year":function(t){var e=t.year(),a=e<0,n=F.zeroPad(Math.abs(e),4);return a&&(n="-"+(n=F.zeroPad(n,6))),n},time:function(t){return t.time()},"time-24":function(t){return"".concat(t.hour24(),":").concat(F.zeroPad(t.minute()))},hour:function(t){return t.hour12()},"hour-pad":function(t){return F.zeroPad(t.hour12())},"hour-24":function(t){return t.hour24()},"hour-24-pad":function(t){return F.zeroPad(t.hour24())},minute:function(t){return t.minute()},"minute-pad":function(t){return F.zeroPad(t.minute())},second:function(t){return t.second()},"second-pad":function(t){return F.zeroPad(t.second())},ampm:function(t){return t.ampm()},quarter:function(t){return"Q"+t.quarter()},season:function(t){return t.season()},era:function(t){return t.era()},json:function(t){return t.json()},timezone:function(t){return t.timezone().name},offset:function(t){return ct(t)},numeric:function(t){return"".concat(t.year(),"/").concat(F.zeroPad(t.month()+1),"/").concat(F.zeroPad(t.date()))},"numeric-us":function(t){return"".concat(F.zeroPad(t.month()+1),"/").concat(F.zeroPad(t.date()),"/").concat(t.year())},"numeric-uk":function(t){return"".concat(F.zeroPad(t.date()),"/").concat(F.zeroPad(t.month()+1),"/").concat(t.year())},"mm/dd":function(t){return"".concat(F.zeroPad(t.month()+1),"/").concat(F.zeroPad(t.date()))},iso:function(t){var e=t.format("iso-year"),a=F.zeroPad(t.month()+1),n=F.zeroPad(t.date()),r=F.zeroPad(t.h24()),i=F.zeroPad(t.minute()),o=F.zeroPad(t.second()),u=F.zeroPad(t.millisecond(),3),s=ct(t);return"".concat(e,"-").concat(a,"-").concat(n,"T").concat(r,":").concat(i,":").concat(o,".").concat(u).concat(s)},"iso-short":function(t){var e=F.zeroPad(t.month()+1),a=F.zeroPad(t.date());return"".concat(t.year(),"-").concat(e,"-").concat(a)},"iso-utc":function(t){return new Date(t.epoch).toISOString()},nice:function(t){return"".concat(I.short()[t.month()]," ").concat(F.ordinal(t.date()),", ").concat(t.time())},"nice-24":function(t){return"".concat(I.short()[t.month()]," ").concat(F.ordinal(t.date()),", ").concat(t.hour24(),":").concat(F.zeroPad(t.minute()))},"nice-year":function(t){return"".concat(I.short()[t.month()]," ").concat(F.ordinal(t.date()),", ").concat(t.year())},"nice-day":function(t){return"".concat(ot.short()[t.day()]," ").concat(dt(I.short()[t.month()])," ").concat(F.ordinal(t.date()))},"nice-full":function(t){return"".concat(t.dayName()," ").concat(dt(t.monthName())," ").concat(F.ordinal(t.date()),", ").concat(t.time())},"nice-full-24":function(t){return"".concat(t.dayName()," ").concat(dt(t.monthName())," ").concat(F.ordinal(t.date()),", ").concat(t.hour24(),":").concat(F.zeroPad(t.minute()))}},lt={"day-name":"day","month-name":"month","iso 8601":"iso","time-h24":"time-24","time-12":"time","time-h12":"time",tz:"timezone","day-num":"day-number","month-num":"month-number","month-iso":"iso-month","year-iso":"iso-year","nice-short":"nice","nice-short-24":"nice-24",mdy:"numeric-us",dmy:"numeric-uk",ymd:"numeric","yyyy/mm/dd":"numeric","mm/dd/yyyy":"numeric-us","dd/mm/yyyy":"numeric-us","little-endian":"numeric-uk","big-endian":"numeric","day-nice":"nice-day"};Object.keys(lt).forEach((function(t){return ht[t]=ht[lt[t]]}));var mt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!0!==t.isValid())return"";if(ht.hasOwnProperty(e)){var a=ht[e](t)||"";return"json"!==e&&(a=String(a),"ampm"!==e&&(a=dt(a))),a}if(-1!==e.indexOf("{")){var n=/\{(.+?)\}/g;return e=e.replace(n,(function(e,a){if(a=a.toLowerCase().trim(),ht.hasOwnProperty(a)){var n=String(ht[a](t));return"ampm"!==a?dt(n):n}return""}))}return t.format("iso-short")},ft=F.zeroPad,yt=F.formatTimezone,pt={G:function(t){return t.era()},GG:function(t){return t.era()},GGG:function(t){return t.era()},GGGG:function(t){return"AD"===t.era()?"Anno Domini":"Before Christ"},y:function(t){return t.year()},yy:function(t){return parseInt(String(t.year()).substr(2,4),10)},yyy:function(t){return t.year()},yyyy:function(t){return t.year()},yyyyy:function(t){return"0"+t.year()},Q:function(t){return t.quarter()},QQ:function(t){return t.quarter()},QQQ:function(t){return t.quarter()},QQQQ:function(t){return t.quarter()},M:function(t){return t.month()+1},MM:function(t){return ft(t.month()+1)},MMM:function(t){return t.format("month-short")},MMMM:function(t){return t.format("month")},w:function(t){return t.week()},ww:function(t){return ft(t.week())},d:function(t){return t.date()},dd:function(t){return ft(t.date())},D:function(t){return t.dayOfYear()},DD:function(t){return ft(t.dayOfYear())},DDD:function(t){return ft(t.dayOfYear(),3)},E:function(t){return t.format("day-short")},EE:function(t){return t.format("day-short")},EEE:function(t){return t.format("day-short")},EEEE:function(t){return t.format("day")},EEEEE:function(t){return t.format("day")[0]},e:function(t){return t.day()},ee:function(t){return t.day()},eee:function(t){return t.format("day-short")},eeee:function(t){return t.format("day")},eeeee:function(t){return t.format("day")[0]},a:function(t){return t.ampm().toUpperCase()},aa:function(t){return t.ampm().toUpperCase()},aaa:function(t){return t.ampm().toUpperCase()},aaaa:function(t){return t.ampm().toUpperCase()},h:function(t){return t.h12()},hh:function(t){return ft(t.h12())},H:function(t){return t.hour()},HH:function(t){return ft(t.hour())},m:function(t){return t.minute()},mm:function(t){return ft(t.minute())},s:function(t){return t.second()},ss:function(t){return ft(t.second())},A:function(t){return t.epoch-t.startOf("day").epoch},z:function(t){return t.timezone().name},zz:function(t){return t.timezone().name},zzz:function(t){return t.timezone().name},zzzz:function(t){return t.timezone().name},Z:function(t){return yt(t.timezone().current.offset)},ZZ:function(t){return yt(t.timezone().current.offset)},ZZZ:function(t){return yt(t.timezone().current.offset)},ZZZZ:function(t){return yt(t.timezone().current.offset,":")}},gt=function(t,e,a){for(var n=t,r=e,i=0;i.5&&(t=t.add(1,e)),t=t.startOf(e)):!1===t.silent&&console.warn("no known unit '"+e+"'"),t},xt=function(t,e,a){var n=0;for(t=t.clone();t.isBefore(e);)t=t.add(1,a),n+=1;return t.isAfter(e,a)&&(n-=1),n},zt=function(t,e,a){return t.isBefore(e)?xt(t,e,a):-1*xt(e,t,a)},jt=function(t,e){var a=e.year()-t.year();return(t=t.year(e.year())).isAfter(e)&&(a-=1),a},_t=function(t,e){var a=e.epoch-t.epoch,n={milliseconds:a,seconds:parseInt(a/1e3,10)};n.minutes=parseInt(n.seconds/60,10),n.hours=parseInt(n.minutes/60,10);var r=t.clone();return n.years=jt(r,e),r=t.add(n.years,"year"),n.months=12*n.years,r=t.add(n.months,"month"),n.months+=zt(r,e,"month"),n.weeks=52*n.years,r=t.add(n.weeks,"week"),n.weeks+=zt(r,e,"week"),n.days=7*n.weeks,r=t.add(n.days,"day"),n.days+=zt(r,e,"day"),n},Tt=function(t){return Object.keys(t).forEach((function(e){t[e]*=-1})),t},qt=function(t,e,a){e=F.beADate(e,t);var n=!1;if(t.isAfter(e)){var r=t;t=e,e=r,n=!0}var i=_t(t,e);return n&&(i=Tt(i)),a?(a=F.normalize(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),i[a]):i},Mt={months:{almost:10,over:4},days:{almost:25,over:10},hours:{almost:20,over:8},minutes:{almost:50,over:20},seconds:{almost:50,over:20}};function St(t,e){var a=t.isBefore(e),n=a?e:t,r=a?t:e;r=r.clone();var i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach((function(t){if(!r.isSame(n,t)){var e=r.diff(n,t);r=r.add(e,t),i[t]=e}})),a&&Object.keys(i).forEach((function(t){0!==i[t]&&(i[t]*=-1)})),i}function Vt(t,e){return 1===t&&(e=e.slice(0,-1)),t+" "+e}var Et=function(t,e){var a,n,r,i=St(t,e=F.beADate(e,t));if(!0===Object.keys(i).every((function(t){return!i[t]})))return{diff:i,rounded:"now",qualified:"now",precise:"now"};var o=[];return Object.keys(i).forEach((function(t,e,r){var u=Math.abs(i[t]);if(0!==u){var s=Vt(u,t);if(o.push(s),!a){if(a=n=s,e>4)return;var c=r[e+1],d=Math.abs(i[c]);d>Mt[c].almost?(a=Vt(u+1,t),n="almost "+a):d>Mt[c].over&&(n="over "+s)}}})),r=o.splice(0,2).join(", "),!0===t.isAfter(e)?(a+=" ago",n+=" ago",r+=" ago"):(a="in "+a,n="in "+n,r="in "+r),{diff:i,rounded:a,qualified:n,precise:r}},Ct={north:[["spring",2,1],["summer",5,1],["fall",8,1],["autumn",8,1],["winter",11,1]],south:[["fall",2,1],["autumn",2,1],["winter",5,1],["spring",8,1],["summer",11,1]]},Pt=[null,[0,1],[3,1],[6,1],[9,1]],Nt={minute:function(t){return P(t,{second:0,millisecond:0}),t},quarterhour:function(t){var e=t.minutes();return t=e>=45?t.minutes(45):e>=30?t.minutes(30):e>=15?t.minutes(15):t.minutes(0),P(t,{second:0,millisecond:0}),t},hour:function(t){return P(t,{minute:0,second:0,millisecond:0}),t},day:function(t){return P(t,{hour:0,minute:0,second:0,millisecond:0}),t},week:function(t){var e=t.clone();return(t=t.day(t._weekStart)).isAfter(e)&&(t=t.subtract(1,"week")),P(t,{hour:0,minute:0,second:0,millisecond:0}),t},month:function(t){return P(t,{date:1,hour:0,minute:0,second:0,millisecond:0}),t},quarter:function(t){var e=t.quarter();return Pt[e]&&P(t,{month:Pt[e][0],date:Pt[e][1],hour:0,minute:0,second:0,millisecond:0}),t},season:function(t){var e=t.season(),a="north";"South"===t.hemisphere()&&(a="south");for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2?arguments[2]:void 0;if(!e||!a)return[];if(e=F.normalize(e),a=t.clone().set(a),t.isAfter(a)){var n=t;t=a,a=n}var r=t.clone();$t(e)?(r=r.next(e),e="week"):r=r.next(e);for(var i=[];r.isBefore(a);)i.push(r),r=r.add(1,e);return i},Lt=function(t){return t?t.split("->"):[]},Ht=function(t){return t=(t=(t=t[0].toUpperCase()+t.substr(1)).replace(/\/gmt/,"/GMT")).replace(/[\/_]([a-z])/gi,(function(t){return t.toUpperCase()}))},Bt=function(t){var e=t.timezones,a=t.tz;if(!1===e.hasOwnProperty(a)&&(a=M(t.tz,e)),null===a)return!1===t.silent&&console.warn("Warn: could not find given or local timezone - '"+t.tz+"'"),{current:{epochShift:0}};var n=e[a],r={name:Ht(a),hasDst:Boolean(n.dst),default_offset:n.offset,hemisphere:"s"===n.hem?"South":"North",current:{}};if(r.hasDst){var i=Lt(n.dst);r.change={start:i[0],back:i[1]}}var o=n.offset,u=o;return!0===r.hasDst&&(u="North"===r.hemisphere?o-1:n.offset+1),!1===r.hasDst?(r.current.offset=o,r.current.isDST=!1):!0===s(t.epoch,r.change.start,r.change.back,o,u)?(r.current.offset=o,r.current.isDST="North"===r.hemisphere):(r.current.offset=u,r.current.isDST="South"===r.hemisphere),r},Ft=["century","decade","year","month","date","day","hour","minute","second","millisecond"],Wt={set:function(t,e){var a=this.clone();return a=nt(a,t,null),e&&(this.tz=M(e)),a},timezone:function(){return Bt(this)},isDST:function(){return Bt(this).current.isDST},hasDST:function(){return Bt(this).hasDst},offset:function(){return 60*Bt(this).current.offset},hemisphere:function(){return Bt(this).hemisphere},format:function(t){return mt(this,t)},unixFmt:function(t){return wt(this,t)},startOf:function(t){return Yt.startOf(this,t)},endOf:function(t){return Yt.endOf(this,t)},leapYear:function(){var t=this.year();return F.isLeapYear(t)},progress:function(t){return At(this,t)},nearest:function(t){return Ot(this,t)},diff:function(t,e){return qt(this,t,e)},since:function(t){return t||(t=this.clone().set()),Et(this,t)},next:function(t){return this.add(1,t).startOf(t)},last:function(t){return this.subtract(1,t).startOf(t)},isValid:function(){return!(!this.epoch&&0!==this.epoch||isNaN(this.d.getTime()))},goto:function(t){var e=this.clone();return e.tz=M(t,e.timezones),e},every:function(t,e){return It(this,t,e)},isAwake:function(){var t=this.hour();return!(t<8||t>22)},isAsleep:function(){return!this.isAwake()},log:function(){return console.log(""),console.log(mt(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(mt(this,"full-short")),this},json:function(){var t=this;return Ft.reduce((function(e,a){return e[a]=t[a](),e}),{})},debug:function(){var t=this.timezone(),e=this.format("MM")+" "+this.format("date-ordinal")+" "+this.year();return e+="\n - "+this.format("time"),console.log("\n\n",e+"\n - "+t.name+" ("+t.current.offset+")"),this},from:function(t){return(t=this.clone().set(t)).since(this)},fromNow:function(){return this.clone().set(Date.now()).since(this)},weekStart:function(t){if("number"==typeof t)return this._weekStart=t,this;if("string"==typeof t){t=t.toLowerCase().trim();var e=ot.short().indexOf(t);-1===e&&(e=ot.long().indexOf(t)),-1===e&&(e=1),this._weekStart=e}else console.warn("Spacetime Error: Cannot understand .weekStart() input:",t);return this}};Wt.inDST=Wt.isDST,Wt.round=Wt.nearest,Wt.each=Wt.every;var Jt=Wt,Qt=F.isLeapYear,Kt=function(t){return"string"==typeof t&&(t=parseInt(t,10)),t},Rt=["year","month","date","hour","minute","second","millisecond"],Zt=function(t,e,a){for(var n=Rt.indexOf(a),r=Rt.slice(n,Rt.length),i=0;i=24?e=24:e<0&&(e=0);var a=t.clone(),n=t.hour()-e,r=n*V.hour;return t.epoch-=r,t.date()!==a.date()&&(t=a.clone(),n>1&&(n-=1),n<1&&(n+=1),r=n*V.hour,t.epoch-=r),P(t,{hour:e}),Zt(t,a,"minute"),t.epoch},time:function(t,e){var a=e.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);if(!a){if(!(a=e.match(/([0-9]{1,2}) ?(am|pm)/)))return t.epoch;a.splice(2,0,"0"),a.splice(3,0,"")}var n=!1,r=parseInt(a[1],10),i=parseInt(a[2],10);r>12&&(n=!0),!1===n&&("am"===a[4]&&12===r&&(r=0),"pm"===a[4]&&r<12&&(r+=12)),a[3]=a[3]||"",a[3]=a[3].replace(/:/,"");var o=parseInt(a[3],10)||0;return(t=(t=(t=(t=t.hour(r)).minute(i)).second(o)).millisecond(0)).epoch},date:function(t,e){if((e=Kt(e))>28){var a=t.month(),n=B[a];1===a&&29===e&&Qt(t.year())&&(n=29),e>n&&(e=n)}return e<=0&&(e=1),P(t,{date:e}),t.epoch},month:function(t,e){"string"==typeof e&&(e=I.mapping()[e.toLowerCase()]),(e=Kt(e))>=12&&(e=11),e<=0&&(e=0);var a=t.date();return a>B[e]&&(a=B[e]),P(t,{month:e,date:a}),t.epoch},year:function(t,e){return"string"==typeof e&&/^'[0-9]{2}$/.test(e)&&(e=e.replace(/'/,"").trim(),e=(e=Number(e))>30?1900+e:2e3+e),e=Kt(e),P(t,{year:e}),t.epoch},dayOfYear:function(t,e){e=Kt(e);var a=t.clone();return(e-=1)<=0?e=0:e>=365&&(e=364),t=(t=t.startOf("year")).add(e,"day"),Zt(t,a,"hour"),t.epoch}},Ut={millisecond:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.milliseconds(e,t),e}return this.d.getMilliseconds()},second:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.seconds(e,t),e}return this.d.getSeconds()},minute:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.minutes(e,t),e}return this.d.getMinutes()},hour:function(t){var e=this.d;if(void 0!==t){var a=this.clone();return a.epoch=Gt.hours(a,t),a}return e.getHours()},hourFloat:function(t){if(void 0!==t){var e=this.clone(),a=t%1;a*=60;var n=parseInt(t,10);return e.epoch=Gt.hours(e,n),e.epoch=Gt.minutes(e,a),e}var r=this.d,i=r.getHours(),o=r.getMinutes();return i+(o/=60)},hour12:function(t){var e=this.d;if(void 0!==t){var a=this.clone(),n=(t=""+t).match(/^([0-9]+)(am|pm)$/);if(n){var r=parseInt(n[1],10);"pm"===n[2]&&(r+=12),a.epoch=Gt.hours(a,r)}return a}var i=e.getHours();return i>12&&(i-=12),0===i&&(i=12),i},time:function(t){if(void 0!==t){var e=this.clone();return t=t.toLowerCase().trim(),e.epoch=Gt.time(e,t),e}return"".concat(this.h12(),":").concat(F.zeroPad(this.minute())).concat(this.ampm())},ampm:function(t){var e="am",a=this.hour();if(a>=12&&(e="pm"),"string"!=typeof t)return e;var n=this.clone();return t=t.toLowerCase().trim(),a>=12&&"am"===t?(a-=12,n.hour(a)):a<12&&"pm"===t?(a+=12,n.hour(a)):n},dayTime:function(t){if(void 0!==t){var e={morning:"7:00am",breakfast:"7:00am",noon:"12:00am",lunch:"12:00pm",afternoon:"2:00pm",evening:"6:00pm",dinner:"6:00pm",night:"11:00pm",midnight:"23:59pm"},a=this.clone();return t=(t=t||"").toLowerCase(),!0===e.hasOwnProperty(t)&&(a=a.time(e[t])),a}var n=this.hour();return n<6?"night":n<12?"morning":n<17?"afternoon":n<22?"evening":"night"},iso:function(t){return void 0!==t?this.set(t):this.format("iso")}},Xt={date:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.date(e,t),e}return this.d.getDate()},day:function(t){if(void 0===t)return this.d.getDay();var e=this.clone(),a=t;"string"==typeof t&&(t=t.toLowerCase(),ot.aliases.hasOwnProperty(t)?a=ot.aliases[t]:-1===(a=ot.short().indexOf(t))&&(a=ot.long().indexOf(t)));var n=this.d.getDay(),r=n-a,i=this.subtract(r,"days");return P(i,{hour:e.hour(),minute:e.minute(),second:e.second()}),i},dayName:function(t){if(void 0===t)return ot.long()[this.day()];var e=this.clone();return e=e.day(t)},month:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.month(e,t),e}return this.d.getMonth()}},te=function(t){return t=(t=(t=t.minute(0)).second(0)).millisecond(1)},ee={dayOfYear:function(t){if(void 0!==t){var e=this.clone();return e.epoch=Gt.dayOfYear(e,t),e}for(var a,n=0,r=this.d.getMonth(),i=1;i<=r;i++)(a=new Date).setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(i),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(t){if(void 0!==t){var e=this.clone();return e=(e=(e=e.month(0)).date(1)).day("monday"),"december"===(e=te(e)).monthName()&&e.date()>=28&&(e=e.add(1,"week")),t-=1,e=e.add(t,"weeks")}var a=this.clone();a=(a=a.month(0)).date(1),"december"===(a=(a=te(a)).day("monday")).monthName()&&a.date()>=28&&(a=a.add(1,"week"));var n=1;1===a.date()&&(n=0),a=a.minus(1,"second");var r=this.epoch;if(a.epoch>r)return 1;var i=0,o=4*this.month();for(a.epoch+=V.week*o,i+=o;i<52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},monthName:function(t){if(void 0===t)return I.long()[this.month()];var e=this.clone();return e=e.month(t)},quarter:function(t){if(void 0!==t&&("string"==typeof t&&(t=t.replace(/^q/i,""),t=parseInt(t,10)),Pt[t])){var e=this.clone(),a=Pt[t][0];return e=(e=(e=e.month(a)).date(1)).startOf("day")}for(var n=this.d.getMonth(),r=1;r=Ct[e][i][1]&&r0&&(e.epoch=Gt.year(e,-1*a)),"ad"===t&&a<0&&(e.epoch=Gt.year(e,-1*a)),e}return this.d.getFullYear()<0?"BC":"AD"},decade:function(t){if(void 0!==t){if(!(t=(t=(t=String(t)).replace(/([0-9])'?s$/,"$1")).replace(/([0-9])(th|rd|st|nd)/,"$1")))return console.warn("Spacetime: Invalid decade input"),this;2===t.length&&/[0-9][0-9]/.test(t)&&(t="19"+t);var e=Number(t);return isNaN(e)?this:(e=10*Math.floor(e/10),this.year(e))}return this.startOf("decade").year()},century:function(t){if(void 0!==t){"string"==typeof t&&(t=(t=(t=t.replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/([0-9]+) ?(b\.?c\.?|a\.?d\.?)/i,(function(t,e,a){return a.match(/b\.?c\.?/i)&&(e="-"+e),e}))).replace(/c$/,""));var e=Number(t);return isNaN(t)?(console.warn("Spacetime: Invalid century input"),this):(0===e&&(e=1),e=e>=0?100*(e-1):100*(e+1),this.year(e))}var a=this.startOf("century").year();return(a=Math.floor(a/100))<0?a-1:a+1},millenium:function(t){if(void 0!==t){if("string"==typeof t&&(t=t.replace(/([0-9])(th|rd|st|nd)/,"$1"),t=Number(t),isNaN(t)))return console.warn("Spacetime: Invalid millenium input"),this;t>0&&(t-=1);var e=1e3*t;return 0===e&&(e=1),this.year(e)}var a=Math.floor(this.year()/1e3);return a>=0&&(a+=1),a}},ae=Object.assign({},Ut,Xt,ee);ae.milliseconds=ae.millisecond,ae.seconds=ae.second,ae.minutes=ae.minute,ae.hours=ae.hour,ae.hour24=ae.hour,ae.h12=ae.hour12,ae.h24=ae.hour24,ae.days=ae.day;var ne=function(t){Object.keys(ae).forEach((function(e){t.prototype[e]=ae[e]}))},re=F.isLeapYear,ie=function(t,e){return 1===t&&re(e)?29:B[t]},oe={months:function(t,e){if(t.month>0){var a=parseInt(t.month/12,10);t.year=e.year()+a,t.month=t.month%12}else if(t.month<0){var n=Math.floor(Math.abs(t.month)/13,10);n=Math.abs(n)+1,t.year=e.year()-n,t.month=t.month%12,t.month=t.month+12,12===t.month&&(t.month=0)}return t},days:function(t,e,a){for(var n=e.year(),r=e.month(),i=ie(r,n);a>i;)a-=i,(r+=1)>=12&&(r-=12,n+=1),i=ie(r,n);return t.month=r,t.date=a,t},daysBack:function(t,e,a){t.year=e.year(),t.month=e.month();var n=e.date();for(t.date=n-Math.abs(a);t.date<1;){t.month-=1,t.month<0&&(t.month=11,t.year-=1);var r=ie(t.month,t.year);t.date+=r}return t}},ue=["millisecond","second","minute","hour","date","month"],se={second:ue.slice(0,1),minute:ue.slice(0,2),quarterhour:ue.slice(0,2),hour:ue.slice(0,3),date:ue.slice(0,4),month:ue.slice(0,4),quarter:ue.slice(0,4),season:ue.slice(0,4),year:ue,decade:ue,century:ue};se.week=se.hour,se.season=se.date,se.quarter=se.date;var ce={year:!0,quarter:!0,season:!0,month:!0,week:!0,day:!0},de={month:!0,quarter:!0,season:!0,year:!0},he=function(t){t.prototype.add=function(t,e){var a=this.clone();if(!e||0===t)return a;var n=this.clone();"fortnight"===(e=F.normalize(e))&&(t*=2,e="week"),V[e]?a.epoch+=V[e]*t:"week"===e?a.epoch+=V.day*(7*t):"quarter"===e||"season"===e?a.epoch+=V.month*(3.1*t):"quarterhour"===e&&(a.epoch+=15*V.minute*t);var r={};if(se[e]&&se[e].forEach((function(t){r[t]=n[t]()})),ce[e]){var i=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*i*1e3}if("month"===e&&(r.month=n.month()+t,r=oe.months(r,n)),"week"===e){var o=n.date()+7*t;o<=28&&o>1&&(r.date=o)}else if("date"===e){if(t<0)r=oe.daysBack(r,n,t);else{var u=n.date()+t;r=oe.days(r,n,u)}0!==t&&n.isSame(a,"day")&&(r.date=n.date()+t)}else if("year"===e){var s=n.year()+t,c=a.year();(cs)&&(a.epoch+=V.day)}else"decade"===e?r.year=a.year()+10:"century"===e&&(r.year=a.year()+100);if(de[e]){var d=B[r.month];r.date=n.date(),r.date>d&&(r.date=d)}return P(a,r),a},t.prototype.subtract=function(t,e){return this.clone().add(-1*t,e)},t.prototype.minus=t.prototype.subtract,t.prototype.plus=t.prototype.add},le={millisecond:function(t){return t.epoch},second:function(t){return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second()].join("-")},minute:function(t){return[t.year(),t.month(),t.date(),t.hour(),t.minute()].join("-")},hour:function(t){return[t.year(),t.month(),t.date(),t.hour()].join("-")},day:function(t){return[t.year(),t.month(),t.date()].join("-")},week:function(t){return[t.year(),t.week()].join("-")},month:function(t){return[t.year(),t.month()].join("-")},quarter:function(t){return[t.year(),t.quarter()].join("-")},year:function(t){return t.year()}};le.date=le.day;var me=function(t){t.prototype.isSame=function(e,a){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=this;return a?("string"!=typeof e&&"number"!=typeof e||(e=new t(e,this.timezone.name)),a=a.replace(/s$/,""),!0===n&&r.tz!==e.tz&&((e=e.clone()).tz=r.tz),le[a]?le[a](r)===le[a](e):null):null}},fe=function(t){var e={isAfter:function(t){t=F.beADate(t,this);var e=F.getEpoch(t);return null===e?null:this.epoch>e},isBefore:function(t){t=F.beADate(t,this);var e=F.getEpoch(t);return null===e?null:this.epoch2&&void 0!==arguments[2]&&arguments[2];t=F.beADate(t,this),e=F.beADate(e,this);var n=F.getEpoch(t);if(null===n)return null;var r=F.getEpoch(e);return null===r?null:a?this.isBetween(t,e)||this.isEqual(t)||this.isEqual(e):n2&&void 0!==arguments[2]?arguments[2]:{};this.epoch=null,this.tz=M(e,pe),this.silent=a.silent||!0,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),this._today={},void 0!==a.today&&(this._today=a.today),Object.defineProperty(this,"d",{get:function(){var t=c(this),e=(new Date(this.epoch).getTimezoneOffset()||0)+60*t;e=60*e*1e3;var a=this.epoch+e;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:function(){return pe},set:function(t){return pe=t,t}});var n=nt(this,t,e);this.epoch=n.epoch};Object.keys(Jt).forEach((function(t){ge.prototype[t]=Jt[t]})),ge.prototype.clone=function(){return new ge(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart,today:this._today})},ge.prototype.toLocalDate=function(){return new Date(this.epoch)},ne(ge),he(ge),me(ge),fe(ge),ye(ge);var ve=ge,be=function(t,e){var a=new ve(null),n=new ve(null);a=a.time(t),n=e?n.time(e):a.add(59,"minutes");var r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter((function(t){if(-1===t.indexOf("/"))return!1;var e=new ve(null,t),o=e.hour();return o>=r&&o<=i&&!(o===r&&e.minute()n.minute())}))},we="6.12.3",ke=function(t,e,a){return new ve(t,e,a)},De=function(t){var e=t._today||{};return Object.keys(e).forEach((function(a){t=t[a](e[a])})),t};return ke.now=function(t,e){var a=new ve((new Date).getTime(),t,e);return a=De(a)},ke.today=function(t,e){var a=new ve((new Date).getTime(),t,e);return(a=De(a)).startOf("day")},ke.tomorrow=function(t,e){var a=new ve((new Date).getTime(),t,e);return(a=De(a)).add(1,"day").startOf("day")},ke.yesterday=function(t,e){var a=new ve((new Date).getTime(),t,e);return(a=De(a)).subtract(1,"day").startOf("day")},ke.extend=function(t){return Object.keys(t).forEach((function(e){ve.prototype[e]=t[e]})),this},ke.timezones=function(){return(new ve).timezones},ke.whereIts=be,ke.version=we,ke.plugin=ke.extend,ke}()})),z="Australia/",j="Pacific/",_={"british summer time":"Europe/London",bst:"Europe/London","british time":"Europe/London","britain time":"Europe/London","irish summer time":"Europe/Dublin","irish time":"Europe/Dublin",ireland:"Europe/Dublin","central european time":"Europe/Berlin",cet:"Europe/Berlin","central european summer time":"Europe/Berlin",cest:"Europe/Berlin","central europe":"Europe/Berlin","eastern european time":"Europe/Riga",eet:"Europe/Riga","eastern european summer time":"Europe/Riga",eest:"Europe/Riga","eastern europe time":"Europe/Riga","western european time":"Europe/Lisbon","western european summer time":"Europe/Lisbon","western europe":"Europe/Lisbon","turkey standard time":"Europe/Istanbul",trt:"Europe/Istanbul","turkish time":"Europe/Istanbul",etc:"Africa/Freetown",utc:"Africa/Freetown","greenwich standard time":"Africa/Freetown",gmt:"Africa/Freetown","east africa time":"Africa/Nairobi","east african time":"Africa/Nairobi","eastern africa time":"Africa/Nairobi","central africa time":"Africa/Khartoum","central african time":"Africa/Khartoum","south africa standard time":"Africa/Johannesburg",sast:"Africa/Johannesburg","southern africa":"Africa/Johannesburg","south african":"Africa/Johannesburg","west africa standard time":"Africa/Lagos","western africa time":"Africa/Lagos","west african time":"Africa/Lagos","australian central standard time":z+"Adelaide",acst:z+"Adelaide","australian central daylight time":z+"Adelaide",acdt:z+"Adelaide","australia central":z+"Adelaide","australian eastern standard time":z+"Brisbane",aest:z+"Brisbane","australian eastern daylight time":z+"Brisbane",aedt:z+"Brisbane","australia east":z+"Brisbane","australian western standard time":z+"Perth",awst:z+"Perth","australian western daylight time":z+"Perth",awdt:z+"Perth","australia west":z+"Perth","australian central western standard time":z+"Eucla",acwst:z+"Eucla","australia central west":z+"Eucla","lord howe standard time":z+"Lord_Howe",lhst:z+"Lord_Howe","lord howe daylight time":z+"Lord_Howe",lhdt:z+"Lord_Howe","russian standard time":"Europe/Moscow",msk:"Europe/Moscow",russian:"Europe/Moscow","central standard time":"America/Chicago","central time":"America/Chicago",cst:"America/Havana","central daylight time":"America/Chicago",cdt:"America/Havana","mountain standard time":"America/Denver","mountain time":"America/Denver",mst:"America/Denver","mountain daylight time":"America/Denver",mdt:"America/Denver","atlantic standard time":"America/Halifax","atlantic time":"America/Halifax",ast:"Asia/Baghdad","atlantic daylight time":"America/Halifax",adt:"America/Halifax","eastern standard time":"America/New_York","eastern time":"America/New_York",est:"America/New_York","eastern daylight time":"America/New_York",edt:"America/New_York","pacific time":"America/Los_Angeles","pacific standard time":"America/Los_Angeles",pst:"America/Los_Angeles","pacific daylight time":"America/Los_Angeles",pdt:"America/Los_Angeles","alaskan standard time":"America/Anchorage","alaskan time":"America/Anchorage",ahst:"America/Anchorage","alaskan daylight time":"America/Anchorage",ahdt:"America/Anchorage","hawaiian standard time":j+"Honolulu","hawaiian time":j+"Honolulu",hst:j+"Honolulu","aleutian time":j+"Honolulu","hawaii time":j+"Honolulu","newfoundland standard time":"America/St_Johns","newfoundland time":"America/St_Johns",nst:"America/St_Johns","newfoundland daylight time":"America/St_Johns",ndt:"America/St_Johns","brazil time":"America/Sao_Paulo",brt:"America/Sao_Paulo","brasília":"America/Sao_Paulo",brasilia:"America/Sao_Paulo","brazilian time":"America/Sao_Paulo","argentina time":"America/Buenos_Aires","argentinian time":"America/Buenos_Aires","amazon time":"America/Manaus",amt:"America/Manaus","amazonian time":"America/Manaus","easter island standard time":"Chile/Easterisland",east:"Chile/Easterisland","easter island summer time":"Chile/Easterisland",easst:"Chile/Easterisland","venezuelan standard time":"America/Caracas","venezuelan time":"America/Caracas",vet:"America/Caracas","venezuela time":"America/Caracas","paraguay time":"America/Asuncion",pyt:"America/Asuncion","paraguay summer time":"America/Asuncion",pyst:"America/Asuncion","cuba standard time":"America/Havana","cuba time":"America/Havana","cuba daylight time":"America/Havana","cuban time":"America/Havana","bolivia time":"America/La_Paz","bolivian time":"America/La_Paz","colombia time":"America/Bogota",cot:"America/Bogota","colombian time":"America/Bogota","acre time":"America/Eirunepe","peru time":"America/Lima","chile standard time":"America/Punta_Arenas","chile time":"America/Punta_Arenas",clst:"America/Punta_Arenas","chile summer time":"America/Punta_Arenas",cldt:"America/Punta_Arenas","uruguay time":"America/Montevideo",uyt:"America/Montevideo",ist:"Asia/Jerusalem","arabic standard time":"Asia/Baghdad","arabic time":"Asia/Baghdad","arab time":"Asia/Baghdad","iran standard time":"Asia/Tehran","iran time":"Asia/Tehran",irst:"Asia/Tehran","iran daylight time":"Asia/Tehran",irdt:"Asia/Tehran",iranian:"Asia/Tehran","pakistan standard time":"Asia/Karachi","pakistan time":"Asia/Karachi",pkt:"Asia/Karachi","india standard time":"Asia/Kolkata","indian time":"Asia/Kolkata","indochina time":"Asia/Bangkok",ict:"Asia/Bangkok","south east asia":"Asia/Bangkok","china standard time":"Asia/Shanghai",ct:"Asia/Shanghai","chinese time":"Asia/Shanghai","alma-ata time":"Asia/Almaty",almt:"Asia/Almaty","oral time":"Asia/Oral","orat time":"Asia/Oral","yakutsk time":"Asia/Yakutsk",yakt:"Asia/Yakutsk","gulf standard time":"Asia/Dubai","gulf time":"Asia/Dubai",gst:"Asia/Dubai",uae:"Asia/Dubai","hong kong time":"Asia/Hong_Kong",hkt:"Asia/Hong_Kong","western indonesian time":"Asia/Jakarta",wib:"Asia/Jakarta","indonesia time":"Asia/Jakarta","central indonesian time":"Asia/Makassar",wita:"Asia/Makassar","israel daylight time":"Asia/Jerusalem",idt:"Asia/Jerusalem","israel standard time":"Asia/Jerusalem","israel time":"Asia/Jerusalem",israeli:"Asia/Jerusalem","krasnoyarsk time":"Asia/Krasnoyarsk",krat:"Asia/Krasnoyarsk","malaysia time":"Asia/Kuala_Lumpur",myt:"Asia/Kuala_Lumpur","singapore time":"Asia/Singapore",sgt:"Asia/Singapore","korea standard time":"Asia/Seoul","korea time":"Asia/Seoul",kst:"Asia/Seoul","korean time":"Asia/Seoul","uzbekistan time":"Asia/Samarkand",uzt:"Asia/Samarkand","vladivostok time":"Asia/Vladivostok",vlat:"Asia/Vladivostok","maldives time":"Indian/Maldives",mvt:"Indian/Maldives","mauritius time":"Indian/Mauritius",mut:"Indian/Mauritius","marshall islands time":j+"Kwajalein",mht:j+"Kwajalein","samoa standard time":j+"Midway",sst:j+"Midway","somoan time":j+"Midway","chamorro standard time":j+"Guam",chst:j+"Guam","papua new guinea time":j+"Bougainville",pgt:j+"Bougainville"},T=x().timezones,q=Object.keys(T).reduce((function(t,e){return t[e]=e,t}),{}),M=Object.assign({},_,q),S=[[["weekday","summer","winter","autumn","some day","one day","all day","some point","eod","eom","eoy","standard time","daylight time","tommorrow"],"#Date"],[["centuries","century","day","days","decade","decades","hour","hours","hr","hrs","millisecond","milliseconds","minute","minutes","min","mins","month","months","seconds","sec","secs","week end","week ends","weekend","weekends","week","weeks","wk","wks","year","years","yr","yrs","quarter","quarters","qtr","qtrs","season","seasons"],"#Duration"],[["all hallows eve","all saints day","all sts day","april fools","armistice day","australia day","bastille day","boxing day","canada day","christmas eve","christmas","cinco de mayo","day of the dead","dia de muertos","dieciseis de septiembre","emancipation day","grito de dolores","groundhog day","halloween","harvey milk day","inauguration day","independence day","independents day","juneteenth","labour day","national freedom day","national nurses day","new years eve","new years","purple heart day","rememberance day","rosa parks day","saint andrews day","saint patricks day","saint stephens day","saint valentines day","st andrews day","st patricks day","st stephens day","st valentines day ","valentines day","valentines","veterans day","victoria day","womens equality day","xmas","epiphany","orthodox christmas day","orthodox new year","assumption of mary","all souls day","feast of the immaculate conception","feast of our lady of guadalupe","kwanzaa","imbolc","beltaine","lughnassadh","samhain","martin luther king day","mlk day","presidents day","mardi gras","tax day","commonwealth day","mothers day","memorial day","fathers day","columbus day","indigenous peoples day","canadian thanksgiving","election day","thanksgiving","t-day","turkey day","black friday","cyber monday","ash wednesday","palm sunday","maundy thursday","good friday","holy saturday","easter","easter sunday","easter monday","orthodox good friday","orthodox holy saturday","orthodox easter","orthodox easter monday","ascension day","pentecost","whitsunday","whit sunday","whit monday","trinity sunday","corpus christi","advent","tu bishvat","tu bshevat","purim","passover","yom hashoah","lag baomer","shavuot","tisha bav","rosh hashana","yom kippur","sukkot","shmini atzeret","simchat torah","chanukah","hanukkah","isra and miraj","lailat al-qadr","eid al-fitr","id al-Fitr","eid ul-Fitr","ramadan","eid al-adha","muharram","the prophets birthday","ostara","march equinox","vernal equinox","litha","june solistice","summer solistice","mabon","september equinox","fall equinox","autumnal equinox","yule","december solstice","winter solstice","chinese new year","diwali"],"#Holiday"],[["noon","midnight","now","morning","tonight","evening","afternoon","night","breakfast time","lunchtime","dinnertime","sometime","midday","eod","oclock","oclock","all day","at night"],"#Time"],[Object.keys(M),"#Timezone"]],V={"a couple":"Value"};S.forEach((function(t){for(var e=0;e#Duration] [(after|before)]");if(n.found){var r=n.groups("unit").text("reduced"),i=n.groups("dir").text("reduced");"after"===i?e[r]=1:"before"===i&&(e[r]=-1)}if((n=a.match("half (a|an) [#Duration]",0)).found){var o=N(n);e[o]=.5}return t.remove("#DateShift"),e},$={minute:!0},I=function(t){var e=t.match("[#Value] [#Duration+] (of|in)");if(e.found){var a=e.groups(),n=a.num.text("reduced"),r=a.unit.text("reduced"),i={unit:r,num:Number(n)||0};return $[r]||(i.num-=1),t=t.remove(e),i}if((e=t.match("[(first|initial|last|final)] [#Duration+] (of|in)")).found){var o=e.groups(),u=o.dir.text("reduced");"initial"===u&&(u="first"),"final"===u&&(u="last");var s={unit:o.unit.text("reduced"),dir:u};return t=t.remove(e),s}return{}},L={daybreak:"7:00am",breakfast:"8:00am",morning:"9:00am",noon:"12:00pm",midday:"12:00pm",afternoon:"2:00pm",lunchtime:"12:00pm",evening:"6:00pm",dinnertime:"6:00pm",night:"8:00pm",eod:"10:00pm",midnight:"12:00am"},H=function(t,e){var a=t.match("(at|by|for|before|this)? #Time+");a.found&&t.remove(a),a=(a=(a=a.not("^(at|by|for|before|this)")).not("sharp")).not("on the dot");var n=x.now(e.timezone),r=n.clone(),i=a.text("reduced");if(L.hasOwnProperty(i))return L[i];var o=a.match("^#Cardinal oclock (am|pm)?");if(o.found&&(o=o.not("oclock"),(n=(n=n.hour(o.text("reduced"))).startOf("hour")).isValid()&&!n.isEqual(r)))return n.time();if((o=a.match("(half|quarter|25|15|10|5) (past|after|to) #Cardinal")).found&&(n=function(t,e){var a=t.match("#Cardinal$").text("reduced"),n=t.match("(half|quarter|25|15|10|5)"),r=n.text("reduced");n.has("half")&&(r="30"),n.has("quarter")&&(r="15");var i=t.has("to");return e=(e=e.hour(a)).startOf("hour"),a<6&&(e=e.ampm("pm")),i?e.subtract(r,"minutes"):e.add(r,"minutes")}(o,n)).isValid()&&!n.isEqual(r))return n.time();if((o=a.match("[