tpmkms_4wp 9.3.0-beta.5 → 9.3.0-beta.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/common/animals.instance.json +0 -65
  2. package/common/asking.js +16 -2
  3. package/common/colors.instance.json +28 -70
  4. package/common/comparable.instance.json +0 -15
  5. package/common/concept.test.json +279 -193
  6. package/common/crew.instance.json +0 -166
  7. package/common/dateTimeSelectors.instance.json +151 -0
  8. package/common/dateTimeSelectors.js +171 -0
  9. package/common/dateTimeSelectors.test.json +85622 -0
  10. package/common/dates.instance.json +285 -479
  11. package/common/dates.js +111 -10
  12. package/common/dates.test.json +11021 -514
  13. package/common/dialogues.js +8 -46
  14. package/common/dimension.instance.json +0 -5
  15. package/common/edible.instance.json +56 -160
  16. package/common/emotions.instance.json +0 -5
  17. package/common/evaluate.js +1 -1
  18. package/common/events.js +1 -1
  19. package/common/fastfood.instance.json +149 -880
  20. package/common/fastfood.test.json +16291 -6597
  21. package/common/formulas.instance.json +0 -5
  22. package/common/helpers/dateTimeSelectors.js +198 -0
  23. package/common/helpers/dialogues.js +11 -8
  24. package/common/helpers/properties.js +2 -2
  25. package/common/helpers.js +57 -32
  26. package/common/hierarchy.js +9 -9
  27. package/common/kirk.instance.json +0 -5
  28. package/common/length.instance.json +0 -75
  29. package/common/math.instance.json +0 -5
  30. package/common/menus.instance.json +0 -35
  31. package/common/meta.js +2 -2
  32. package/common/numbers.js +1 -1
  33. package/common/numbers.test.json +89 -23
  34. package/common/ordering.instance.json +0 -10
  35. package/common/people.instance.json +36 -40
  36. package/common/percentages.js +1 -1
  37. package/common/pipboy.instance.json +56 -85
  38. package/common/pipboy.test.json +4377 -3386
  39. package/common/pokemon.instance.json +0 -65
  40. package/common/pressure.instance.json +0 -20
  41. package/common/properties.instance.json +0 -5
  42. package/common/properties.js +4 -4
  43. package/common/reminders.instance.json +196 -10
  44. package/common/reminders.js +273 -79
  45. package/common/reminders.test.json +71435 -23
  46. package/common/reports.instance.json +2 -12
  47. package/common/scorekeeper.test.json +3565 -7550
  48. package/common/spock.instance.json +0 -5
  49. package/common/temperature.instance.json +112 -20
  50. package/common/time.js +63 -30
  51. package/common/time.test.json +4124 -124
  52. package/common/ui.instance.json +0 -5
  53. package/common/ui.js +3 -1
  54. package/common/weight.instance.json +0 -60
  55. package/common/wp.instance.json +56 -70
  56. package/common/wp.test.json +8057 -3867
  57. package/main.js +2 -0
  58. package/package.json +8 -4
@@ -278,11 +278,6 @@
278
278
  "article",
279
279
  false
280
280
  ],
281
- [
282
- "evaluate",
283
- "verb",
284
- false
285
- ],
286
281
  [
287
282
  "every",
288
283
  "article",
@@ -0,0 +1,198 @@
1
+ const pluralize = require('pluralize')
2
+ const deepEqual = require('deep-equal')
3
+ const { chooseNumber, zip } = require('../helpers.js')
4
+ const { compose, translationMapping, translationMappingToInstantiatorMappings } = require('./meta.js')
5
+
6
+ const dayMap = {
7
+ 'sunday_dates': 0,
8
+ 'monday_dates': 1,
9
+ 'tuesday_dates': 2,
10
+ 'wednesday_dates': 3,
11
+ 'thursday_dates': 4,
12
+ 'friday_dates': 5,
13
+ 'saturday_dates': 6
14
+ };
15
+
16
+ function getNextDayOfWeek(date, targetDay) {
17
+
18
+ const targetDayNum = dayMap[targetDay.toLowerCase()]
19
+ if (!targetDayNum) {
20
+ return
21
+ }
22
+ const currentDay = date.getDay();
23
+
24
+ let daysUntilNext = targetDayNum - currentDay;
25
+ if (daysUntilNext <= 0) {
26
+ daysUntilNext += 7; // If target day is today or past, get next week's occurrence
27
+ }
28
+
29
+ const nextDate = new Date(date);
30
+ nextDate.setDate(date.getDate() + daysUntilNext);
31
+ return nextDate;
32
+ }
33
+
34
+ function toMonthNumber(value) {
35
+ const map = {
36
+ "jan_dates": 1,
37
+ "feb_dates": 2,
38
+ "mar_dates": 3,
39
+ "apr_dates": 4,
40
+ "may_dates": 5,
41
+ "jun_dates": 6,
42
+ "jul_dates": 7,
43
+ "aug_dates": 8,
44
+ "sept_dates": 9,
45
+ "oct_dates": 10,
46
+ "nov_dates": 11,
47
+ "dec_dates": 12,
48
+ "january_dates": 1,
49
+ "february_dates": 2,
50
+ "march_dates": 3,
51
+ "april_dates": 4,
52
+ "june_dates": 6,
53
+ "july_dates": 7,
54
+ "august_dates": 8,
55
+ "september_dates": 9,
56
+ "october_dates": 10,
57
+ "november_dates": 11,
58
+ "december_dates": 12,
59
+ }
60
+ return map[value]
61
+ }
62
+
63
+ function getTime(time) {
64
+ let hour = 0
65
+ const minute = 0
66
+ const second = 0
67
+ let hour_offset = 0
68
+ if (time.time?.ampm?.ampm == 'pm') {
69
+ hour_offset = 12
70
+ }
71
+ if (time.marker == 'integer') {
72
+ hour = time.value
73
+ } else if (time.marker == 'atTime') {
74
+ hour = time.time.value
75
+ }
76
+ hour += hour_offset
77
+ if (time.hour) {
78
+ hour = time.hour
79
+ }
80
+ if (time.second) {
81
+ second = time.second
82
+ }
83
+ if (time.minute) {
84
+ minute = time.minute
85
+ }
86
+ return { hour, minute, second }
87
+ }
88
+
89
+ instantiate = (isA, now, context) => {
90
+ const getType = (context, type) => {
91
+ if (context.marker == 'onDate_dates' && context.date?.marker == type) {
92
+ return context.date
93
+ } if (context.marker == type) {
94
+ return context
95
+ }
96
+ }
97
+ let value
98
+ if (value = getType(context, 'monthDay_dates')) {
99
+ const day = value.day.value;
100
+ // const month = toMonthNumber(value.month.value);
101
+ const month = value.month.month_ordinal
102
+ const currentMonth = now.getMonth() + 1; // 1-based (January = 1)
103
+ const currentYear = now.getFullYear();
104
+ const year = currentMonth >= month ? currentYear + 1 : currentYear;
105
+ const date = new Date(year, month-1, day)
106
+ return date.toISOString()
107
+ } else if (value = getType(context, 'monthDayYear_dates')) {
108
+ const day = value.day.value;
109
+ // const month = toMonthNumber(value.month.value);
110
+ const month = value.month.month_ordinal
111
+ const year = value.year.value;
112
+ const date = new Date(year, month-1, day)
113
+ return date.toISOString()
114
+ } else if (isA(context?.marker, 'dateTimeSelector')) {
115
+ // (on date) OR (date)
116
+ const date = context.date?.date || context.date
117
+ const dateTimeSelector = getNextDayOfWeek(now, date.value)
118
+ const time = context.time || context.defaultTime
119
+ if (time) {
120
+ const hms = getTime(time)
121
+ dateTimeSelector.setHours(hms.hour)
122
+ dateTimeSelector.setMinutes(hms.minute)
123
+ dateTimeSelector.setSeconds(hms.second)
124
+ dateTimeSelector.setMilliseconds(0)
125
+ }
126
+ return dateTimeSelector.toISOString()
127
+ } else if (context.dateTimeSelector) {
128
+ const dateTimeSelector = getNextDayOfWeek(now, context.dateTimeSelector?.value)
129
+ if (dateTimeSelector) {
130
+ return dateTimeSelector.toISOString()
131
+ }
132
+ } else if (context.value) {
133
+ const dateTimeSelector = getNextDayOfWeek(now, context.value)
134
+ if (dateTimeSelector) {
135
+ return dateTimeSelector.toISOString()
136
+ }
137
+ }
138
+ }
139
+
140
+ // function getNthDayOfMonth(dayName, ordinal, monthName, year = new Date().getFullYear()) {
141
+ function getNthDayOfMonth(dayName, ordinal, monthName, now) {
142
+ // Validate inputs
143
+ const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
144
+ const months = [ 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december' ];
145
+
146
+ let year = now.getFullYear()
147
+
148
+ dayName = dayName.toLowerCase();
149
+ monthName = monthName.toLowerCase();
150
+
151
+ if (!days.includes(dayName)) throw new Error('Invalid day name');
152
+ if (!months.includes(monthName)) throw new Error('Invalid month name');
153
+ if (!Number.isInteger(ordinal) || ordinal < 1 || ordinal > 5) throw new Error('Ordinal must be an integer between 1 and 5');
154
+
155
+ const monthIndex = months.indexOf(monthName);
156
+ if (monthIndex <= now.getMonth()) {
157
+ year += 1
158
+ }
159
+ const targetDayIndex = days.indexOf(dayName);
160
+
161
+ const date = new Date(year, monthIndex, 1);
162
+
163
+ while (date.getDay() !== targetDayIndex) {
164
+ date.setDate(date.getDate() + 1);
165
+ }
166
+
167
+ date.setDate(date.getDate() + (ordinal - 1) * 7);
168
+
169
+ if (date.getMonth() !== monthIndex) {
170
+ throw new Error(`The ${ordinal}th ${dayName} does not exist in ${monthName} ${year}`);
171
+ }
172
+
173
+ return date.toISOString();
174
+ }
175
+
176
+ function getNthWeekdayAfterDate(startDate, weekday_ordinal, n) {
177
+ // Ensure startDate is a Date object
178
+ const date = new Date(startDate);
179
+ let weekday_index = weekday_ordinal - 1
180
+ // Normalize weekday_index (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
181
+ weekday_index = (weekday_index % 7 + 7) % 7;
182
+ // Get current day of the week
183
+ const currentDay = date.getDay();
184
+ // Calculate days until the next desired weekday_index
185
+ let daysUntilNext = (weekday_index - currentDay + 7) % 7;
186
+ if (daysUntilNext === 0) daysUntilNext = 7; // Move to next occurrence if already on the desired weekday_index
187
+ // Calculate total days to add: days until next weekday_index + 7 days for each additional occurrence
188
+ const daysToAdd = daysUntilNext + (n - 1) * 7;
189
+ // Add days to the start date
190
+ date.setDate(date.getDate() + daysToAdd);
191
+ return date.toISOString();
192
+ }
193
+
194
+ module.exports = {
195
+ instantiate,
196
+ getNthDayOfMonth,
197
+ getNthWeekdayAfterDate,
198
+ }
@@ -77,12 +77,7 @@ class API {
77
77
  }
78
78
 
79
79
  // word is for one or many
80
- makeObject({config, context, types=[], source_value=undefined, doPluralize=true} = {}) {
81
- /*
82
- if (!context.unknown) {
83
- return context.value
84
- }
85
- */
80
+ async makeObject({config, context, types=[], source_value=undefined, doPluralize=true, initial={}} = {}) {
86
81
  if (typeof context == 'string') {
87
82
  context = { word: context, value: context }
88
83
  }
@@ -103,11 +98,18 @@ class API {
103
98
  }
104
99
  return concept
105
100
  }
101
+
102
+ initial.value = source_value || concept
103
+ await this.args.s({ value, makeObject: true, initial })
106
104
  // config.addOperator({ pattern: `(["${fixUps(concept)}"])`, allowDups: true })
107
- config.addOperator({ pattern: `(["${concept}"])`, allowDups: true })
105
+ config.addOperator({ pattern: `(["${concept}"|])`, allowDups: true })
108
106
  config.addBridge({ id: concept, level: 0, bridge: `{ ...next(operator), value: or(operator.value, '${source_value || concept}') }` , allowDups: true })
107
+
109
108
  const addConcept = (word, number) => {
110
- config.addWord(word, { id: concept, initial: `{ value: "${source_value || concept}", number: "${number}" }` } )
109
+ if (number) {
110
+ initial.number = number
111
+ }
112
+ config.addWord(word, { id: concept, initial: JSON.stringify(initial) } )
111
113
  const baseTypes = [
112
114
  'theAble',
113
115
  'queryable',
@@ -119,6 +121,7 @@ class API {
119
121
  this.setupObjectHierarchy(config, concept, {types: allTypes});
120
122
  }
121
123
 
124
+ pluralize.isSingular(word)
122
125
  if (pluralize.isSingular(word)) {
123
126
  addConcept(word, 'one')
124
127
  doPluralize && addConcept(pluralize.plural(word), 'many')
@@ -546,9 +546,9 @@ class API {
546
546
  }
547
547
  }
548
548
 
549
- makeObject(args) {
549
+ async makeObject(args) {
550
550
  const types = [ 'hierarchyAble', 'object', 'property' ];
551
- return args.km("dialogues").api.makeObject({ ...args, types: (args.types || []).concat(types) });
551
+ return await args.km("dialogues").api.makeObject({ ...args, types: (args.types || []).concat(types) });
552
552
  }
553
553
 
554
554
  relation_add (relations) {
package/common/helpers.js CHANGED
@@ -152,6 +152,7 @@ const toEValue = (context) => {
152
152
  }
153
153
 
154
154
  const defaultContextCheckValidify = (properties) => {
155
+ return // new way
155
156
  for (const value of properties) {
156
157
  if (typeof value == 'string') {
157
158
  continue
@@ -163,46 +164,70 @@ const defaultContextCheckValidify = (properties) => {
163
164
  }
164
165
  }
165
166
 
166
- const defaultContextCheckProperties = ['marker', 'text', 'verbatim', 'isResponse', { property: 'response', filter: ['marker', 'text', 'verbatim'] }]
167
+ const defaultContextCheckProperties = ['marker', 'text', 'verbatim', 'isResponse', 'types', { property: 'response', filter: ['marker', 'text', 'verbatim'] }]
167
168
 
168
- const expand_checks = (properties) => {
169
- const expanded = []
170
- for (const property of properties) {
171
- defaultContextCheckValidify(properties)
172
- if (typeof property == 'string') {
173
- expanded.push({ property, filter: defaultContextCheckProperties })
169
+ const expand_checks = (properties, variables = {}) => {
170
+ let expanded = []
171
+ if (properties == 'defaults') {
172
+ return defaultContextCheckProperties
173
+ }
174
+ if (properties.variable) {
175
+ return variables[properties.variable]
176
+ }
177
+ if (Array.isArray(properties)) {
178
+ for (const property of properties) {
179
+ defaultContextCheckValidify(properties)
180
+ if (typeof property == 'string') {
181
+ expanded.push({ property, filter: defaultContextCheckProperties })
182
+ } else if (property.property && property.filter) {
183
+ expanded.push({ property: property.property, filter: [defaultContextCheckProperties, ...expand_checks(property.filter, variables)] })
184
+ } else {
185
+ expanded = [...expanded, ...expand_checks(property, variables)]
186
+ }
187
+ }
188
+ return expanded
189
+ }
190
+ for (const key of Object.keys(properties)) {
191
+ if (key === '_') {
192
+ expanded = [...expanded, ...defaultContextCheckProperties]
174
193
  } else {
175
- expanded.push({ property: property.property, filter: [...defaultContextCheckProperties, ...expand_checks(property.filter)] })
194
+ expanded.push({ property: key, filter: [...expand_checks(properties[key], variables)] })
176
195
  }
177
196
  }
178
197
  return expanded
198
+
179
199
  }
180
200
 
181
- const defaultContextCheck = (properties = []) => {
201
+ const defaultContextCheck = (properties = [], variables={}, minimal=false) => {
182
202
  defaultContextCheckValidify(properties)
183
- return [
184
- ...defaultContextCheckProperties,
185
- // ...properties.map((property) => { return { property, filter: defaultContextCheckProperties } }),
186
- ...expand_checks(properties),
187
- (object) => {
188
- if (typeof object.value == 'object') {
189
- return { property: 'value', filter: defaultContextCheckProperties }
190
- } else {
191
- return 'value'
192
- }
193
- },
194
- (object) => {
195
- if (!Array.isArray(object.modifiers)) {
196
- return
197
- }
198
- if (typeof object.modifiers[0] == 'object') {
199
- return { property: 'modifiers', filter: defaultContextCheckProperties }
200
- } else {
201
- return 'modifiers'
202
- }
203
- },
204
- { property: 'modifiers', isPropertyList: true, filter: defaultContextCheckProperties }
205
- ]
203
+ variables.defaults = defaultContextCheckProperties
204
+ if (minimal) {
205
+ return expand_checks(properties, variables)
206
+ } else {
207
+ return [
208
+ ...defaultContextCheckProperties,
209
+ // ...properties.map((property) => { return { property, filter: defaultContextCheckProperties } }),
210
+ ...expand_checks(properties, variables),
211
+ (object) => {
212
+ if (typeof object.value == 'object') {
213
+ return { property: 'value', filter: defaultContextCheckProperties }
214
+ } else {
215
+ return 'value'
216
+ }
217
+ },
218
+ (object) => {
219
+ if (!Array.isArray(object.modifiers)) {
220
+ return
221
+ }
222
+ if (typeof object.modifiers[0] == 'object') {
223
+ return { property: 'modifiers', filter: defaultContextCheckProperties }
224
+ } else {
225
+ return 'modifiers'
226
+ }
227
+ },
228
+ { property: 'modifiers', isPropertyList: true, filter: defaultContextCheckProperties }
229
+ ]
230
+ }
206
231
  }
207
232
 
208
233
  const isA = (hierarchy) => (child, parent, { strict=false } = {}) => {
@@ -164,15 +164,15 @@ const config = {
164
164
  notes: 'c is a y',
165
165
  where: where(),
166
166
  match: ({context, listable}) => listable(context.marker, 'hierarchyAble') && !context.pullFromContext && !context.wantsValue && context.same && !context.same.pullFromContext && context.same.wantsValue,
167
- apply: ({context, km, objects, asList, baseConfig : config}) => {
167
+ apply: async ({context, km, objects, asList, baseConfig : config}) => {
168
168
  const api = km('properties').api
169
169
  // mark c as an instance?
170
170
  const oneConcepts = asList(context);
171
171
  const twoConcepts = asList(context.same);
172
172
  for (let oneConcept of oneConcepts.value) {
173
173
  for (let twoConcept of twoConcepts.value) {
174
- oneConcept = api.makeObject({config, context})
175
- twoConcept = api.makeObject({config, context: context.same})
174
+ oneConcept = await api.makeObject({config, context})
175
+ twoConcept = await api.makeObject({config, context: context.same})
176
176
  api.rememberIsA(oneConcept, twoConcept)
177
177
  }
178
178
  }
@@ -183,14 +183,14 @@ const config = {
183
183
  notes: 'an x is a y',
184
184
  where: where(),
185
185
  match: ({context, listable}) => listable(context.marker, 'hierarchyAble') && !context.pullFromContext && context.wantsValue && context.same,
186
- apply: ({context, km, objects, baseConfig : config, asList}) => {
186
+ apply: async ({context, km, objects, baseConfig : config, asList}) => {
187
187
  const api = km('properties').api
188
188
  const oneConcepts = asList(context);
189
189
  const twoConcepts = asList(context.same);
190
190
  for (let oneConcept of oneConcepts.value) {
191
191
  for (let twoConcept of twoConcepts.value) {
192
- oneConcept = api.makeObject({config, context})
193
- twoConcept = api.makeObject({config, context: context.same})
192
+ oneConcept = await api.makeObject({config, context})
193
+ twoConcept = await api.makeObject({config, context: context.same})
194
194
  api.rememberIsA(oneConcept, twoConcept)
195
195
  context.sameWasProcessed = true
196
196
  }
@@ -246,15 +246,15 @@ const config = {
246
246
 
247
247
  return listable(context, 'hierarchyAble') && context.same && context.same.concept && !context.query
248
248
  },
249
- apply: (args) => {
249
+ apply: async (args) => {
250
250
  const {callId, config, objects, km, context, asList, listable} = args
251
251
  const api = km('properties').api
252
252
  const oneConcepts = asList(context);
253
253
  const twoConcepts = asList(context.same);
254
254
  for (const oneConcept of oneConcepts.value) {
255
255
  for (const twoConcept of twoConcepts.value) {
256
- oneConceptId = api.makeObject({...args, context: oneConcept})
257
- twoConceptId = api.makeObject({...args, context: twoConcept})
256
+ oneConceptId = await api.makeObject({...args, context: oneConcept})
257
+ twoConceptId = await api.makeObject({...args, context: twoConcept})
258
258
  api.rememberIsA(oneConceptId, twoConceptId)
259
259
  context.sameWasProcessed = true
260
260
  }
@@ -500,11 +500,6 @@
500
500
  "theAble",
501
501
  false
502
502
  ],
503
- [
504
- "evaluate",
505
- "verb",
506
- false
507
- ],
508
503
  [
509
504
  "every",
510
505
  "article",
@@ -254,11 +254,6 @@
254
254
  "article",
255
255
  false
256
256
  ],
257
- [
258
- "evaluate",
259
- "verb",
260
- false
261
- ],
262
257
  [
263
258
  "every",
264
259
  "article",
@@ -1686,11 +1681,6 @@
1686
1681
  "article",
1687
1682
  false
1688
1683
  ],
1689
- [
1690
- "evaluate",
1691
- "verb",
1692
- false
1693
- ],
1694
1684
  [
1695
1685
  "every",
1696
1686
  "article",
@@ -4182,11 +4172,6 @@
4182
4172
  "article",
4183
4173
  false
4184
4174
  ],
4185
- [
4186
- "evaluate",
4187
- "verb",
4188
- false
4189
- ],
4190
4175
  [
4191
4176
  "every",
4192
4177
  "article",
@@ -5898,11 +5883,6 @@
5898
5883
  "article",
5899
5884
  false
5900
5885
  ],
5901
- [
5902
- "evaluate",
5903
- "verb",
5904
- false
5905
- ],
5906
5886
  [
5907
5887
  "every",
5908
5888
  "article",
@@ -7614,11 +7594,6 @@
7614
7594
  "article",
7615
7595
  false
7616
7596
  ],
7617
- [
7618
- "evaluate",
7619
- "verb",
7620
- false
7621
- ],
7622
7597
  [
7623
7598
  "every",
7624
7599
  "article",
@@ -9321,11 +9296,6 @@
9321
9296
  "article",
9322
9297
  false
9323
9298
  ],
9324
- [
9325
- "evaluate",
9326
- "verb",
9327
- false
9328
- ],
9329
9299
  [
9330
9300
  "every",
9331
9301
  "article",
@@ -11038,11 +11008,6 @@
11038
11008
  "article",
11039
11009
  false
11040
11010
  ],
11041
- [
11042
- "evaluate",
11043
- "verb",
11044
- false
11045
- ],
11046
11011
  [
11047
11012
  "every",
11048
11013
  "article",
@@ -12755,11 +12720,6 @@
12755
12720
  "article",
12756
12721
  false
12757
12722
  ],
12758
- [
12759
- "evaluate",
12760
- "verb",
12761
- false
12762
- ],
12763
12723
  [
12764
12724
  "every",
12765
12725
  "article",
@@ -14462,11 +14422,6 @@
14462
14422
  "article",
14463
14423
  false
14464
14424
  ],
14465
- [
14466
- "evaluate",
14467
- "verb",
14468
- false
14469
- ],
14470
14425
  [
14471
14426
  "every",
14472
14427
  "article",
@@ -16178,11 +16133,6 @@
16178
16133
  "article",
16179
16134
  false
16180
16135
  ],
16181
- [
16182
- "evaluate",
16183
- "verb",
16184
- false
16185
- ],
16186
16136
  [
16187
16137
  "every",
16188
16138
  "article",
@@ -17894,11 +17844,6 @@
17894
17844
  "article",
17895
17845
  false
17896
17846
  ],
17897
- [
17898
- "evaluate",
17899
- "verb",
17900
- false
17901
- ],
17902
17847
  [
17903
17848
  "every",
17904
17849
  "article",
@@ -19610,11 +19555,6 @@
19610
19555
  "article",
19611
19556
  false
19612
19557
  ],
19613
- [
19614
- "evaluate",
19615
- "verb",
19616
- false
19617
- ],
19618
19558
  [
19619
19559
  "every",
19620
19560
  "article",
@@ -21240,11 +21180,6 @@
21240
21180
  "article",
21241
21181
  false
21242
21182
  ],
21243
- [
21244
- "evaluate",
21245
- "verb",
21246
- false
21247
- ],
21248
21183
  [
21249
21184
  "every",
21250
21185
  "article",
@@ -22947,11 +22882,6 @@
22947
22882
  "article",
22948
22883
  false
22949
22884
  ],
22950
- [
22951
- "evaluate",
22952
- "verb",
22953
- false
22954
- ],
22955
22885
  [
22956
22886
  "every",
22957
22887
  "article",
@@ -24664,11 +24594,6 @@
24664
24594
  "article",
24665
24595
  false
24666
24596
  ],
24667
- [
24668
- "evaluate",
24669
- "verb",
24670
- false
24671
- ],
24672
24597
  [
24673
24598
  "every",
24674
24599
  "article",
@@ -364,11 +364,6 @@
364
364
  "article",
365
365
  false
366
366
  ],
367
- [
368
- "evaluate",
369
- "verb",
370
- false
371
- ],
372
367
  [
373
368
  "every",
374
369
  "article",