File Coverage

blib/lib/Lingua/EN/Inflexion/Verbs.pm
Criterion Covered Total %
statement 1580 2624 60.2
branch 41 58 70.6
condition n/a
subroutine 14 14 100.0
pod 0 10 0.0
total 1635 2706 60.4


line stmt bran cond sub pod time code
1             ##########################################
2             ## NOTE: This module was autogenerated. ##
3             ## Contains no user-servicable parts!!! ##
4             ##########################################
5              
6             package Lingua::EN::Inflexion::Verbs;
7 24     24   349 use 5.010; use strict; use warnings;
  24     24   74  
  24     24   110  
  24         37  
  24         468  
  24         100  
  24         38  
  24         721  
8 24     24   110 no if $] >= 5.018, warnings => "experimental::smartmatch";
  24         40  
  24         156  
9              
10             our $VERSION = 20150508.065741;
11              
12             my $plural_of = {
13             abides => "abide",
14             aches => "ache",
15             am => "are",
16             are => "are",
17             arises => "arise",
18             asks => "ask",
19             avalanches => "avalanche",
20             awakes => "awake",
21             beats => "beat",
22             becomes => "become",
23             begets => "beget",
24             begins => "begin",
25             beholds => "behold",
26             bellyaches => "bellyache",
27             bends => "bend",
28             bets => "bet",
29             binds => "bind",
30             bites => "bite",
31             bleeds => "bleed",
32             blitzes => "blitz",
33             blows => "blow",
34             breaks => "break",
35             breeds => "breed",
36             brings => "bring",
37             broadcasts => "broadcast",
38             builds => "build",
39             burns => "burn",
40             bursts => "burst",
41             busts => "bust",
42             caches => "cache",
43             can => "can",
44             casts => "cast",
45             catches => "catch",
46             changes => "change",
47             chooses => "choose",
48             claps => "clap",
49             clings => "cling",
50             comes => "come",
51             continues => "continue",
52             costs => "cost",
53             could => "could",
54             creches => "creche",
55             creeps => "creep",
56             dares => "dare",
57             deals => "deal",
58             dies => "die",
59             digs => "dig",
60             dives => "dive",
61             douches => "douche",
62             drags => "drag",
63             dreams => "dream",
64             drinks => "drink",
65             drives => "drive",
66             dwells => "dwell",
67             eats => "eat",
68             expects => "expect",
69             falls => "fall",
70             feels => "feel",
71             fights => "fight",
72             finds => "find",
73             flees => "flee",
74             flies => "fly",
75             flings => "fling",
76             follows => "follow",
77             forbids => "forbid",
78             forecasts => "forecast",
79             foresees => "foresee",
80             foretells => "foretell",
81             forgets => "forget",
82             forgives => "forgive",
83             forsakes => "forsake",
84             gets => "get",
85             gilds => "gild",
86             gives => "give",
87             goes => "go",
88             grinds => "grind",
89             happens => "happen",
90             has => "have",
91             helps => "help",
92             hews => "hew",
93             hits => "hit",
94             holds => "hold",
95             hurts => "hurt",
96             inlays => "inlay",
97             insists => "insist",
98             interlays => "interlay",
99             irises => "iris",
100             is => "are",
101             keeps => "keep",
102             kills => "kill",
103             kneels => "kneel",
104             knits => "knit",
105             knows => "know",
106             lays => "lay",
107             leads => "lead",
108             leans => "lean",
109             leaps => "leap",
110             learns => "learn",
111             leaves => "leave",
112             lies => "lie",
113             likes => "like",
114             lives => "live",
115             looks => "look",
116             loses => "lose",
117             loves => "love",
118             may => "may",
119             means => "mean",
120             meets => "meet",
121             menus => "menu",
122             might => "might",
123             misleads => "mislead",
124             mistakes => "mistake",
125             misunderstands => "misunderstand",
126             moves => "move",
127             must => "must",
128             needs => "need",
129             niches => "niche",
130             ought => "ought",
131             overdraws => "overdraw",
132             overhears => "overhear",
133             overtakes => "overtake",
134             presets => "preset",
135             proves => "prove",
136             provides => "provide",
137             psyches => "psyche",
138             puts => "put",
139             quits => "quit",
140             quizzes => "quiz",
141             reaches => "reach",
142             remains => "remain",
143             remembers => "remember",
144             rends => "rend",
145             rides => "ride",
146             rids => "rid",
147             rings => "ring",
148             rises => "rise",
149             rives => "rive",
150             runs => "run",
151             s => "",
152             saws => "saw",
153             seeks => "seek",
154             seems => "seem",
155             shakes => "shake",
156             shall => "shall",
157             shaves => "shave",
158             sheds => "shed",
159             shits => "shit",
160             shoes => "shoe",
161             should => "should",
162             shows => "show",
163             shrinks => "shrink",
164             sings => "sing",
165             sinks => "sink",
166             sits => "sit",
167             skis => "ski",
168             slays => "slay",
169             slides => "slide",
170             slinks => "slink",
171             slits => "slit",
172             smells => "smell",
173             smites => "smite",
174             sneaks => "sneak",
175             sows => "sow",
176             speaks => "speak",
177             speeds => "speed",
178             spends => "spend",
179             spits => "spit",
180             spoils => "spoil",
181             springs => "spring",
182             stands => "stand",
183             staves => "stave",
184             stays => "stay",
185             steals => "steal",
186             stings => "sting",
187             stinks => "stink",
188             stops => "stop",
189             strews => "strew",
190             strides => "stride",
191             strips => "strip",
192             strives => "strive",
193             sublets => "sublet",
194             sunburns => "sunburn",
195             swears => "swear",
196             sweats => "sweat",
197             sweeps => "sweep",
198             swells => "swell",
199             swims => "swim",
200             swings => "swing",
201             talks => "talk",
202             tears => "tear",
203             thrives => "thrive",
204             thrusts => "thrust",
205             treads => "tread",
206             undergoes => "undergo",
207             understands => "understand",
208             undertakes => "undertake",
209             upsets => "upset",
210             vexes => "vex",
211             waits => "wait",
212             wakes => "wake",
213             walks => "walk",
214             wants => "want",
215             was => "were",
216             watches => "watch",
217             wears => "wear",
218             weeps => "weep",
219             wends => "wend",
220             will => "will",
221             wins => "win",
222             withdraws => "withdraw",
223             withholds => "withhold",
224             withstands => "withstand",
225             would => "would",
226             wrings => "wring",
227             };
228              
229             my $singular_of = {
230             "" => "s",
231             "abide" => "abides",
232             "ache" => "aches",
233             "are" => "is",
234             "arise" => "arises",
235             "ask" => "asks",
236             "avalanche" => "avalanches",
237             "awake" => "awakes",
238             "beat" => "beats",
239             "become" => "becomes",
240             "beget" => "begets",
241             "begin" => "begins",
242             "behold" => "beholds",
243             "bellyache" => "bellyaches",
244             "bend" => "bends",
245             "bet" => "bets",
246             "bind" => "binds",
247             "bite" => "bites",
248             "bleed" => "bleeds",
249             "blitz" => "blitzes",
250             "blow" => "blows",
251             "break" => "breaks",
252             "breed" => "breeds",
253             "bring" => "brings",
254             "broadcast" => "broadcasts",
255             "build" => "builds",
256             "burn" => "burns",
257             "burst" => "bursts",
258             "bust" => "busts",
259             "cache" => "caches",
260             "can" => "can",
261             "cast" => "casts",
262             "catch" => "catches",
263             "change" => "changes",
264             "choose" => "chooses",
265             "clap" => "claps",
266             "cling" => "clings",
267             "come" => "comes",
268             "continue" => "continues",
269             "cost" => "costs",
270             "could" => "could",
271             "creche" => "creches",
272             "creep" => "creeps",
273             "dare" => "dares",
274             "deal" => "deals",
275             "die" => "dies",
276             "dig" => "digs",
277             "dive" => "dives",
278             "douche" => "douches",
279             "drag" => "drags",
280             "dream" => "dreams",
281             "drink" => "drinks",
282             "drive" => "drives",
283             "dwell" => "dwells",
284             "eat" => "eats",
285             "expect" => "expects",
286             "fall" => "falls",
287             "feel" => "feels",
288             "fight" => "fights",
289             "find" => "finds",
290             "flee" => "flees",
291             "fling" => "flings",
292             "fly" => "flies",
293             "follow" => "follows",
294             "forbid" => "forbids",
295             "forecast" => "forecasts",
296             "foresee" => "foresees",
297             "foretell" => "foretells",
298             "forget" => "forgets",
299             "forgive" => "forgives",
300             "forsake" => "forsakes",
301             "get" => "gets",
302             "gild" => "gilds",
303             "give" => "gives",
304             "go" => "goes",
305             "grind" => "grinds",
306             "happen" => "happens",
307             "have" => "has",
308             "help" => "helps",
309             "hew" => "hews",
310             "hit" => "hits",
311             "hold" => "holds",
312             "hurt" => "hurts",
313             "inlay" => "inlays",
314             "insist" => "insists",
315             "interlay" => "interlays",
316             "iris" => "irises",
317             "keep" => "keeps",
318             "kill" => "kills",
319             "kneel" => "kneels",
320             "knit" => "knits",
321             "know" => "knows",
322             "lay" => "lays",
323             "lead" => "leads",
324             "lean" => "leans",
325             "leap" => "leaps",
326             "learn" => "learns",
327             "leave" => "leaves",
328             "lie" => "lies",
329             "like" => "likes",
330             "live" => "lives",
331             "look" => "looks",
332             "lose" => "loses",
333             "love" => "loves",
334             "may" => "may",
335             "mean" => "means",
336             "meet" => "meets",
337             "menu" => "menus",
338             "might" => "might",
339             "mislead" => "misleads",
340             "mistake" => "mistakes",
341             "misunderstand" => "misunderstands",
342             "move" => "moves",
343             "must" => "must",
344             "need" => "needs",
345             "niche" => "niches",
346             "ought" => "ought",
347             "overdraw" => "overdraws",
348             "overhear" => "overhears",
349             "overtake" => "overtakes",
350             "preset" => "presets",
351             "prove" => "proves",
352             "provide" => "provides",
353             "psyche" => "psyches",
354             "put" => "puts",
355             "quit" => "quits",
356             "quiz" => "quizzes",
357             "reach" => "reaches",
358             "remain" => "remains",
359             "remember" => "remembers",
360             "rend" => "rends",
361             "rid" => "rids",
362             "ride" => "rides",
363             "ring" => "rings",
364             "rise" => "rises",
365             "rive" => "rives",
366             "run" => "runs",
367             "saw" => "saws",
368             "seek" => "seeks",
369             "seem" => "seems",
370             "shake" => "shakes",
371             "shall" => "shall",
372             "shave" => "shaves",
373             "shed" => "sheds",
374             "shit" => "shits",
375             "shoe" => "shoes",
376             "should" => "should",
377             "show" => "shows",
378             "shrink" => "shrinks",
379             "sing" => "sings",
380             "sink" => "sinks",
381             "sit" => "sits",
382             "ski" => "skis",
383             "slay" => "slays",
384             "slide" => "slides",
385             "slink" => "slinks",
386             "slit" => "slits",
387             "smell" => "smells",
388             "smite" => "smites",
389             "sneak" => "sneaks",
390             "sow" => "sows",
391             "speak" => "speaks",
392             "speed" => "speeds",
393             "spend" => "spends",
394             "spit" => "spits",
395             "spoil" => "spoils",
396             "spring" => "springs",
397             "stand" => "stands",
398             "stave" => "staves",
399             "stay" => "stays",
400             "steal" => "steals",
401             "sting" => "stings",
402             "stink" => "stinks",
403             "stop" => "stops",
404             "strew" => "strews",
405             "stride" => "strides",
406             "strip" => "strips",
407             "strive" => "strives",
408             "sublet" => "sublets",
409             "sunburn" => "sunburns",
410             "swear" => "swears",
411             "sweat" => "sweats",
412             "sweep" => "sweeps",
413             "swell" => "swells",
414             "swim" => "swims",
415             "swing" => "swings",
416             "talk" => "talks",
417             "tear" => "tears",
418             "thrive" => "thrives",
419             "thrust" => "thrusts",
420             "tread" => "treads",
421             "undergo" => "undergoes",
422             "understand" => "understands",
423             "undertake" => "undertakes",
424             "upset" => "upsets",
425             "vex" => "vexes",
426             "wait" => "waits",
427             "wake" => "wakes",
428             "walk" => "walks",
429             "want" => "wants",
430             "watch" => "watches",
431             "wear" => "wears",
432             "weep" => "weeps",
433             "wend" => "wends",
434             "were" => "was",
435             "will" => "will",
436             "win" => "wins",
437             "withdraw" => "withdraws",
438             "withhold" => "withholds",
439             "withstand" => "withstands",
440             "would" => "would",
441             "wring" => "wrings",
442             };
443              
444             my $past_of = {
445             "" => "_",
446             "_" => "could",
447             "abide" => "abided",
448             "abided" => "abided",
449             "abides" => "abided",
450             "abiding" => "abided",
451             "ache" => "ached",
452             "ached" => "ached",
453             "aches" => "ached",
454             "aching" => "ached",
455             "am" => "was",
456             "are" => "were",
457             "arise" => "arose",
458             "arisen" => "arose",
459             "arises" => "arose",
460             "arising" => "arose",
461             "ask" => "asked",
462             "asked" => "asked",
463             "asking" => "asked",
464             "asks" => "asked",
465             "avalanche" => "avalanched",
466             "avalanched" => "avalanched",
467             "avalanches" => "avalanched",
468             "avalanching" => "avalanched",
469             "awake" => "awoke",
470             "awakening" => "awoke",
471             "awakes" => "awoke",
472             "awoken" => "awoke",
473             "beat" => "beat",
474             "beaten" => "beat",
475             "beating" => "beat",
476             "beats" => "beat",
477             "become" => "became",
478             "becomes" => "became",
479             "becoming" => "became",
480             "been" => "was",
481             "beget" => "begot",
482             "begets" => "begot",
483             "begetting" => "begot",
484             "begin" => "began",
485             "beginning" => "began",
486             "begins" => "began",
487             "begotten" => "begot",
488             "begun" => "began",
489             "beheld" => "beheld",
490             "behold" => "beheld",
491             "beholding" => "beheld",
492             "beholds" => "beheld",
493             "being" => "was",
494             "bellyache" => "bellyached",
495             "bellyached" => "bellyached",
496             "bellyaches" => "bellyached",
497             "bellyaching" => "bellyached",
498             "bend" => "bent",
499             "bending" => "bent",
500             "bends" => "bent",
501             "bent" => "bent",
502             "bet" => "bet",
503             "bets" => "bet",
504             "betting" => "bet",
505             "bind" => "bound",
506             "binding" => "bound",
507             "binds" => "bound",
508             "bite" => "bit",
509             "bites" => "bit",
510             "biting" => "bit",
511             "bitten" => "bit",
512             "bled" => "bled",
513             "bleed" => "bled",
514             "bleeding" => "bled",
515             "bleeds" => "bled",
516             "blitz" => "blitzed",
517             "blitzed" => "blitzed",
518             "blitzes" => "blitzed",
519             "blitzing" => "blitzed",
520             "blow" => "blew",
521             "blowing" => "blew",
522             "blown" => "blew",
523             "blows" => "blew",
524             "bound" => "bound",
525             "break" => "broke",
526             "breaking" => "broke",
527             "breaks" => "broke",
528             "bred" => "bred",
529             "breed" => "bred",
530             "breeding" => "bred",
531             "breeds" => "bred",
532             "bring" => "brought",
533             "bringing" => "brought",
534             "brings" => "brought",
535             "broadcast" => "broadcast",
536             "broadcasting" => "broadcast",
537             "broadcasts" => "broadcast",
538             "broken" => "broke",
539             "brought" => "brought",
540             "build" => "built",
541             "building" => "built",
542             "builds" => "built",
543             "built" => "built",
544             "burn" => "burnt",
545             "burning" => "burnt",
546             "burns" => "burnt",
547             "burnt" => "burnt",
548             "burst" => "burst",
549             "bursting" => "burst",
550             "bursts" => "burst",
551             "bust" => "bust",
552             "busting" => "bust",
553             "busts" => "bust",
554             "cache" => "cached",
555             "cached" => "cached",
556             "caches" => "cached",
557             "caching" => "cached",
558             "can" => "could",
559             "cast" => "cast",
560             "casting" => "cast",
561             "casts" => "cast",
562             "catch" => "caught",
563             "catches" => "caught",
564             "catching" => "caught",
565             "caught" => "caught",
566             "change" => "changed",
567             "changed" => "changed",
568             "changes" => "changed",
569             "changing" => "changed",
570             "choose" => "chose",
571             "chooses" => "chose",
572             "choosing" => "chose",
573             "chosen" => "chose",
574             "clap" => "clapped",
575             "clapped" => "clapped",
576             "clapping" => "clapped",
577             "claps" => "clapped",
578             "cling" => "clung",
579             "clinging" => "clung",
580             "clings" => "clung",
581             "clung" => "clung",
582             "come" => "came",
583             "comes" => "came",
584             "coming" => "came",
585             "continue" => "continued",
586             "continued" => "continued",
587             "continues" => "continued",
588             "continuing" => "continued",
589             "cost" => "cost",
590             "costing" => "cost",
591             "costs" => "cost",
592             "could" => "_",
593             "creche" => "creched",
594             "creched" => "creched",
595             "creches" => "creched",
596             "creching" => "creched",
597             "creep" => "crept",
598             "creeping" => "crept",
599             "creeps" => "crept",
600             "crept" => "crept",
601             "dare" => "dared",
602             "dared" => "dared",
603             "dares" => "dared",
604             "daring" => "dared",
605             "deal" => "dealt",
606             "dealing" => "dealt",
607             "deals" => "dealt",
608             "dealt" => "dealt",
609             "die" => "died",
610             "died" => "died",
611             "dies" => "died",
612             "dig" => "dug",
613             "digging" => "dug",
614             "digs" => "dug",
615             "dive" => "dived",
616             "dived" => "dived",
617             "dives" => "dived",
618             "diving" => "dived",
619             "douche" => "douched",
620             "douched" => "douched",
621             "douches" => "douched",
622             "douching" => "douched",
623             "drag" => "dragged",
624             "dragged" => "dragged",
625             "dragging" => "dragged",
626             "drags" => "dragged",
627             "dream" => "dreamed",
628             "dreamed" => "dreamed",
629             "dreaming" => "dreamed",
630             "dreams" => "dreamed",
631             "drink" => "drank",
632             "drinking" => "drank",
633             "drinks" => "drank",
634             "drive" => "drove",
635             "driven" => "drove",
636             "drives" => "drove",
637             "driving" => "drove",
638             "drunk" => "drank",
639             "dug" => "dug",
640             "dwell" => "dwelt",
641             "dwelling" => "dwelt",
642             "dwells" => "dwelt",
643             "dwelt" => "dwelt",
644             "dying" => "died",
645             "eat" => "ate",
646             "eaten" => "ate",
647             "eating" => "ate",
648             "eats" => "ate",
649             "expect" => "expected",
650             "expected" => "expected",
651             "expecting" => "expected",
652             "expects" => "expected",
653             "fall" => "fell",
654             "fallen" => "fell",
655             "falling" => "fell",
656             "falls" => "fell",
657             "feel" => "felt",
658             "feeling" => "felt",
659             "feels" => "felt",
660             "felt" => "felt",
661             "fight" => "fought",
662             "fighting" => "fought",
663             "fights" => "fought",
664             "find" => "found",
665             "finding" => "found",
666             "finds" => "found",
667             "fled" => "fled",
668             "flee" => "fled",
669             "fleeing" => "fled",
670             "flees" => "fled",
671             "flies" => "flew",
672             "fling" => "flung",
673             "flinging" => "flung",
674             "flings" => "flung",
675             "flown" => "flew",
676             "flung" => "flung",
677             "fly" => "flew",
678             "flying" => "flew",
679             "follow" => "followed",
680             "followed" => "followed",
681             "following" => "followed",
682             "follows" => "followed",
683             "forbid" => "forbade",
684             "forbidden" => "forbade",
685             "forbidding" => "forbade",
686             "forbids" => "forbade",
687             "forecast" => "forecast",
688             "forecasting" => "forecast",
689             "forecasts" => "forecast",
690             "foresee" => "foresaw",
691             "foreseeing" => "foresaw",
692             "foreseen" => "foresaw",
693             "foresees" => "foresaw",
694             "foretell" => "foretold",
695             "foretelling" => "foretold",
696             "foretells" => "foretold",
697             "foretold" => "foretold",
698             "forget" => "forgot",
699             "forgets" => "forgot",
700             "forgetting" => "forgot",
701             "forgive" => "forgave",
702             "forgiven" => "forgave",
703             "forgives" => "forgave",
704             "forgiving" => "forgave",
705             "forgotten" => "forgot",
706             "forsake" => "forsook",
707             "forsaken" => "forsook",
708             "forsakes" => "forsook",
709             "forsaking" => "forsook",
710             "fought" => "fought",
711             "found" => "found",
712             "get" => "got",
713             "gets" => "got",
714             "getting" => "got",
715             "gild" => "gilded",
716             "gilded" => "gilded",
717             "gilding" => "gilded",
718             "gilds" => "gilded",
719             "give" => "gave",
720             "given" => "gave",
721             "gives" => "gave",
722             "giving" => "gave",
723             "go" => "went",
724             "goes" => "went",
725             "going" => "went",
726             "gone" => "went",
727             "gotten" => "got",
728             "grind" => "ground",
729             "grinding" => "ground",
730             "grinds" => "ground",
731             "ground" => "ground",
732             "had" => "had",
733             "happen" => "happened",
734             "happened" => "happened",
735             "happening" => "happened",
736             "happens" => "happened",
737             "has" => "had",
738             "have" => "had",
739             "having" => "had",
740             "held" => "held",
741             "help" => "helped",
742             "helped" => "helped",
743             "helping" => "helped",
744             "helps" => "helped",
745             "hew" => "hewed",
746             "hewing" => "hewed",
747             "hewn" => "hewed",
748             "hews" => "hewed",
749             "hit" => "hit",
750             "hits" => "hit",
751             "hitting" => "hit",
752             "hold" => "held",
753             "holding" => "held",
754             "holds" => "held",
755             "hurt" => "hurt",
756             "hurting" => "hurt",
757             "hurts" => "hurt",
758             "inlaid" => "inlaid",
759             "inlay" => "inlaid",
760             "inlaying" => "inlaid",
761             "inlays" => "inlaid",
762             "insist" => "insisted",
763             "insisted" => "insisted",
764             "insisting" => "insisted",
765             "insists" => "insisted",
766             "interlaid" => "interlaid",
767             "interlay" => "interlaid",
768             "interlaying" => "interlaid",
769             "interlays" => "interlaid",
770             "iris" => "irised",
771             "irised" => "irised",
772             "irises" => "irised",
773             "irising" => "irised",
774             "is" => "was",
775             "keep" => "kept",
776             "keeping" => "kept",
777             "keeps" => "kept",
778             "kept" => "kept",
779             "kill" => "killed",
780             "killed" => "killed",
781             "killing" => "killed",
782             "kills" => "killed",
783             "kneel" => "knelt",
784             "kneeling" => "knelt",
785             "kneels" => "knelt",
786             "knelt" => "knelt",
787             "knit" => "knitted",
788             "knits" => "knitted",
789             "knitted" => "knitted",
790             "knitting" => "knitted",
791             "know" => "knew",
792             "knowing" => "knew",
793             "known" => "knew",
794             "knows" => "knew",
795             "laid" => "laid",
796             "lain" => "lay",
797             "lay" => "laid",
798             "laying" => "laid",
799             "lays" => "laid",
800             "lead" => "led",
801             "leading" => "led",
802             "leads" => "led",
803             "lean" => "leaned",
804             "leaned" => "leaned",
805             "leaning" => "leaned",
806             "leans" => "leaned",
807             "leap" => "leapt",
808             "leaping" => "leapt",
809             "leaps" => "leapt",
810             "leapt" => "leapt",
811             "learn" => "learned",
812             "learned" => "learned",
813             "learning" => "learned",
814             "learns" => "learned",
815             "leave" => "left",
816             "leaves" => "left",
817             "leaving" => "left",
818             "led" => "led",
819             "left" => "left",
820             "lie" => "lay",
821             "lies" => "lay",
822             "like" => "liked",
823             "liked" => "liked",
824             "likes" => "liked",
825             "liking" => "liked",
826             "live" => "lived",
827             "lived" => "lived",
828             "lives" => "lived",
829             "living" => "lived",
830             "look" => "looked",
831             "looked" => "looked",
832             "looking" => "looked",
833             "looks" => "looked",
834             "lose" => "lost",
835             "loses" => "lost",
836             "losing" => "lost",
837             "lost" => "lost",
838             "love" => "loved",
839             "loved" => "loved",
840             "loves" => "loved",
841             "loving" => "loved",
842             "lying" => "lay",
843             "may" => "_",
844             "mean" => "meant",
845             "meaning" => "meant",
846             "means" => "meant",
847             "meant" => "meant",
848             "meet" => "met",
849             "meeting" => "met",
850             "meets" => "met",
851             "menu" => "menued",
852             "menued" => "menued",
853             "menuing" => "menued",
854             "menus" => "menued",
855             "met" => "met",
856             "might" => "_",
857             "mislead" => "misled",
858             "misleading" => "misled",
859             "misleads" => "misled",
860             "misled" => "misled",
861             "mistake" => "mistook",
862             "mistaken" => "mistook",
863             "mistakes" => "mistook",
864             "mistaking" => "mistook",
865             "misunderstand" => "misunderstood",
866             "misunderstanding" => "misunderstood",
867             "misunderstands" => "misunderstood",
868             "misunderstood" => "misunderstood",
869             "move" => "moved",
870             "moved" => "moved",
871             "moves" => "moved",
872             "moving" => "moved",
873             "must" => "_",
874             "need" => "needed",
875             "needed" => "needed",
876             "needing" => "needed",
877             "needs" => "needed",
878             "niche" => "niched",
879             "niched" => "niched",
880             "nicheing" => "niched",
881             "niches" => "niched",
882             "ought" => "_",
883             "overdraw" => "overdrew",
884             "overdrawing" => "overdrew",
885             "overdrawn" => "overdrew",
886             "overdraws" => "overdrew",
887             "overhear" => "overheard",
888             "overheard" => "overheard",
889             "overhearing" => "overheard",
890             "overhears" => "overheard",
891             "overtake" => "overtook",
892             "overtaken" => "overtook",
893             "overtakes" => "overtook",
894             "overtaking" => "overtook",
895             "preset" => "preset",
896             "presets" => "preset",
897             "presetting" => "preset",
898             "prove" => "proved",
899             "proved" => "proved",
900             "proven" => "proved",
901             "proves" => "proved",
902             "provide" => "provided",
903             "provided" => "provided",
904             "provides" => "provided",
905             "providing" => "provided",
906             "proving" => "proved",
907             "psyche" => "psyched",
908             "psyched" => "psyched",
909             "psyches" => "psyched",
910             "psyching" => "psyched",
911             "put" => "put",
912             "puts" => "put",
913             "putting" => "put",
914             "quit" => "quit",
915             "quits" => "quit",
916             "quitting" => "quit",
917             "quiz" => "quizzed",
918             "quizzed" => "quizzed",
919             "quizzes" => "quizzed",
920             "quizzing" => "quizzed",
921             "reach" => "reached",
922             "reached" => "reached",
923             "reaches" => "reached",
924             "reaching" => "reached",
925             "remain" => "remained",
926             "remained" => "remained",
927             "remaining" => "remained",
928             "remains" => "remained",
929             "remember" => "remembered",
930             "remembered" => "remembered",
931             "remembering" => "remembered",
932             "remembers" => "remembered",
933             "rend" => "rent",
934             "rending" => "rent",
935             "rends" => "rent",
936             "rent" => "rent",
937             "rid" => "rid",
938             "ridden" => "rode",
939             "ridding" => "rid",
940             "ride" => "rode",
941             "rides" => "rode",
942             "riding" => "rode",
943             "rids" => "rid",
944             "ring" => "rang",
945             "ringing" => "rang",
946             "rings" => "rang",
947             "rise" => "rose",
948             "risen" => "rose",
949             "rises" => "rose",
950             "rising" => "rose",
951             "rive" => "rived",
952             "riven" => "rived",
953             "rives" => "rived",
954             "riving" => "rived",
955             "run" => "ran",
956             "rung" => "rang",
957             "running" => "ran",
958             "runs" => "ran",
959             "s" => "_",
960             "sat" => "sat",
961             "saw" => "sawed",
962             "sawing" => "sawed",
963             "sawn" => "sawed",
964             "saws" => "sawed",
965             "seek" => "sought",
966             "seeking" => "sought",
967             "seeks" => "sought",
968             "seem" => "seemed",
969             "seemed" => "seemed",
970             "seeming" => "seemed",
971             "seems" => "seemed",
972             "shake" => "shook",
973             "shaken" => "shook",
974             "shakes" => "shook",
975             "shaking" => "shook",
976             "shall" => "_",
977             "shave" => "shaved",
978             "shaved" => "shaved",
979             "shaves" => "shaved",
980             "shaving" => "shaved",
981             "shed" => "shed",
982             "shedding" => "shed",
983             "sheds" => "shed",
984             "shit" => "shat",
985             "shits" => "shat",
986             "shitted" => "shat",
987             "shitting" => "shat",
988             "shod" => "shod",
989             "shoe" => "shod",
990             "shoeing" => "shod",
991             "shoes" => "shod",
992             "should" => "_",
993             "show" => "showed",
994             "showing" => "showed",
995             "shown" => "showed",
996             "shows" => "showed",
997             "shrink" => "shrank",
998             "shrinking" => "shrank",
999             "shrinks" => "shrank",
1000             "shrunk" => "shrank",
1001             "sing" => "sang",
1002             "singing" => "sang",
1003             "sings" => "sang",
1004             "sink" => "sank",
1005             "sinking" => "sank",
1006             "sinks" => "sank",
1007             "sit" => "sat",
1008             "sits" => "sat",
1009             "sitting" => "sat",
1010             "ski" => "skied",
1011             "skied" => "skied",
1012             "skiing" => "skied",
1013             "skis" => "skied",
1014             "slain" => "slew",
1015             "slay" => "slew",
1016             "slaying" => "slew",
1017             "slays" => "slew",
1018             "slid" => "slid",
1019             "slide" => "slid",
1020             "slides" => "slid",
1021             "sliding" => "slid",
1022             "slink" => "slunk",
1023             "slinking" => "slunk",
1024             "slinks" => "slunk",
1025             "slit" => "slit",
1026             "slits" => "slit",
1027             "slitting" => "slit",
1028             "slunk" => "slunk",
1029             "smell" => "smelled",
1030             "smelled" => "smelled",
1031             "smelling" => "smelled",
1032             "smells" => "smelled",
1033             "smite" => "smote",
1034             "smites" => "smote",
1035             "smiting" => "smote",
1036             "smitten" => "smote",
1037             "sneak" => "sneaked",
1038             "sneaked" => "sneaked",
1039             "sneaking" => "sneaked",
1040             "sneaks" => "sneaked",
1041             "sought" => "sought",
1042             "sow" => "sowed",
1043             "sowing" => "sowed",
1044             "sown" => "sowed",
1045             "sows" => "sowed",
1046             "spat" => "spat",
1047             "speak" => "spoke",
1048             "speaking" => "spoke",
1049             "speaks" => "spoke",
1050             "sped" => "sped",
1051             "speed" => "sped",
1052             "speeding" => "sped",
1053             "speeds" => "sped",
1054             "spend" => "spent",
1055             "spending" => "spent",
1056             "spends" => "spent",
1057             "spent" => "spent",
1058             "spit" => "spat",
1059             "spits" => "spat",
1060             "spitting" => "spat",
1061             "spoil" => "spoilt",
1062             "spoiled" => "spoilt",
1063             "spoiling" => "spoilt",
1064             "spoils" => "spoilt",
1065             "spoken" => "spoke",
1066             "spring" => "sprang",
1067             "springing" => "sprang",
1068             "springs" => "sprang",
1069             "sprung" => "sprang",
1070             "stand" => "stood",
1071             "standing" => "stood",
1072             "stands" => "stood",
1073             "stave" => "staved",
1074             "staved" => "staved",
1075             "staves" => "staved",
1076             "staving" => "staved",
1077             "stay" => "stayed",
1078             "stayed" => "stayed",
1079             "staying" => "stayed",
1080             "stays" => "stayed",
1081             "steal" => "stole",
1082             "stealing" => "stole",
1083             "steals" => "stole",
1084             "sting" => "stung",
1085             "stinging" => "stung",
1086             "stings" => "stung",
1087             "stink" => "stank",
1088             "stinking" => "stank",
1089             "stinks" => "stank",
1090             "stolen" => "stole",
1091             "stood" => "stood",
1092             "stop" => "stopped",
1093             "stopped" => "stopped",
1094             "stopping" => "stopped",
1095             "stops" => "stopped",
1096             "strew" => "strewed",
1097             "strewing" => "strewed",
1098             "strewn" => "strewed",
1099             "strews" => "strewed",
1100             "stride" => "strode",
1101             "strides" => "strode",
1102             "striding" => "strode",
1103             "strip" => "stripped",
1104             "stripped" => "stripped",
1105             "stripping" => "stripped",
1106             "strips" => "stripped",
1107             "strive" => "strove",
1108             "strived" => "strove",
1109             "strives" => "strove",
1110             "striving" => "strove",
1111             "strode" => "strode",
1112             "stung" => "stung",
1113             "stunk" => "stank",
1114             "sublet" => "sublet",
1115             "sublets" => "sublet",
1116             "subletting" => "sublet",
1117             "sunburn" => "sunburned",
1118             "sunburned" => "sunburned",
1119             "sunburning" => "sunburned",
1120             "sunburns" => "sunburned",
1121             "sung" => "sang",
1122             "sunk" => "sank",
1123             "swear" => "swore",
1124             "swearing" => "swore",
1125             "swears" => "swore",
1126             "sweat" => "sweat",
1127             "sweated" => "sweat",
1128             "sweating" => "sweat",
1129             "sweats" => "sweat",
1130             "sweep" => "swept",
1131             "sweeping" => "swept",
1132             "sweeps" => "swept",
1133             "swell" => "swelled",
1134             "swelling" => "swelled",
1135             "swells" => "swelled",
1136             "swept" => "swept",
1137             "swim" => "swam",
1138             "swimming" => "swam",
1139             "swims" => "swam",
1140             "swing" => "swung",
1141             "swinging" => "swung",
1142             "swings" => "swung",
1143             "swollen" => "swelled",
1144             "sworn" => "swore",
1145             "swum" => "swam",
1146             "swung" => "swung",
1147             "talk" => "talked",
1148             "talked" => "talked",
1149             "talking" => "talked",
1150             "talks" => "talked",
1151             "tear" => "tore",
1152             "tearing" => "tore",
1153             "tears" => "tore",
1154             "thrive" => "thrived",
1155             "thrived" => "thrived",
1156             "thrives" => "thrived",
1157             "thriving" => "thrived",
1158             "thrust" => "thrust",
1159             "thrusting" => "thrust",
1160             "thrusts" => "thrust",
1161             "torn" => "tore",
1162             "tread" => "trod",
1163             "treading" => "trod",
1164             "treads" => "trod",
1165             "trodden" => "trod",
1166             "undergo" => "underwent",
1167             "undergoes" => "underwent",
1168             "undergoing" => "underwent",
1169             "undergone" => "underwent",
1170             "understand" => "understood",
1171             "understanding" => "understood",
1172             "understands" => "understood",
1173             "understood" => "understood",
1174             "undertake" => "undertook",
1175             "undertaken" => "undertook",
1176             "undertakes" => "undertook",
1177             "undertaking" => "undertook",
1178             "upset" => "upset",
1179             "upsets" => "upset",
1180             "upsetting" => "upset",
1181             "vex" => "vexed",
1182             "vexed" => "vexed",
1183             "vexes" => "vexed",
1184             "vexing" => "vexed",
1185             "wait" => "waited",
1186             "waited" => "waited",
1187             "waiting" => "waited",
1188             "waits" => "waited",
1189             "wake" => "woke",
1190             "wakes" => "woke",
1191             "waking" => "woke",
1192             "walk" => "walked",
1193             "walked" => "walked",
1194             "walking" => "walked",
1195             "walks" => "walked",
1196             "want" => "wanted",
1197             "wanted" => "wanted",
1198             "wanting" => "wanted",
1199             "wants" => "wanted",
1200             "was" => "was",
1201             "watch" => "watched",
1202             "watched" => "watched",
1203             "watches" => "watched",
1204             "watching" => "watched",
1205             "wear" => "wore",
1206             "wearing" => "wore",
1207             "wears" => "wore",
1208             "weep" => "wept",
1209             "weeping" => "wept",
1210             "weeps" => "wept",
1211             "wend" => "wended",
1212             "wended" => "wended",
1213             "wending" => "wended",
1214             "wends" => "wended",
1215             "wept" => "wept",
1216             "were" => "were",
1217             "will" => "willed",
1218             "willed" => "willed",
1219             "willing" => "willed",
1220             "win" => "won",
1221             "winning" => "won",
1222             "wins" => "won",
1223             "withdraw" => "withdrew",
1224             "withdrawing" => "withdrew",
1225             "withdrawn" => "withdrew",
1226             "withdraws" => "withdrew",
1227             "withheld" => "withheld",
1228             "withhold" => "withheld",
1229             "withholding" => "withheld",
1230             "withholds" => "withheld",
1231             "withstand" => "withstood",
1232             "withstanding" => "withstood",
1233             "withstands" => "withstood",
1234             "withstood" => "withstood",
1235             "woken" => "woke",
1236             "won" => "won",
1237             "worn" => "wore",
1238             "would" => "_",
1239             "wring" => "wrung",
1240             "wringing" => "wrung",
1241             "wrings" => "wrung",
1242             "wrung" => "wrung",
1243             };
1244              
1245             my $pres_part_of = {
1246             "" => "_",
1247             "_" => "_",
1248             "abide" => "abiding",
1249             "abided" => "abiding",
1250             "abides" => "abiding",
1251             "abiding" => "abiding",
1252             "ache" => "aching",
1253             "ached" => "aching",
1254             "aches" => "aching",
1255             "aching" => "aching",
1256             "am" => "being",
1257             "are" => "being",
1258             "arise" => "arising",
1259             "arisen" => "arising",
1260             "arises" => "arising",
1261             "arising" => "arising",
1262             "arose" => "arising",
1263             "ask" => "asking",
1264             "asked" => "asking",
1265             "asking" => "asking",
1266             "asks" => "asking",
1267             "ate" => "eating",
1268             "avalanche" => "avalanching",
1269             "avalanched" => "avalanching",
1270             "avalanches" => "avalanching",
1271             "avalanching" => "avalanching",
1272             "awake" => "awakening",
1273             "awakening" => "awakening",
1274             "awakes" => "awakening",
1275             "awoke" => "awakening",
1276             "awoken" => "awakening",
1277             "beat" => "beating",
1278             "beaten" => "beating",
1279             "beating" => "beating",
1280             "beats" => "beating",
1281             "became" => "becoming",
1282             "become" => "becoming",
1283             "becomes" => "becoming",
1284             "becoming" => "becoming",
1285             "been" => "being",
1286             "began" => "beginning",
1287             "beget" => "begetting",
1288             "begets" => "begetting",
1289             "begetting" => "begetting",
1290             "begin" => "beginning",
1291             "beginning" => "beginning",
1292             "begins" => "beginning",
1293             "begot" => "begetting",
1294             "begotten" => "begetting",
1295             "begun" => "beginning",
1296             "beheld" => "beholding",
1297             "behold" => "beholding",
1298             "beholding" => "beholding",
1299             "beholds" => "beholding",
1300             "being" => "being",
1301             "bellyache" => "bellyaching",
1302             "bellyached" => "bellyaching",
1303             "bellyaches" => "bellyaching",
1304             "bellyaching" => "bellyaching",
1305             "bend" => "bending",
1306             "bending" => "bending",
1307             "bends" => "bending",
1308             "bent" => "bending",
1309             "bet" => "betting",
1310             "bets" => "betting",
1311             "betting" => "betting",
1312             "bind" => "binding",
1313             "binding" => "binding",
1314             "binds" => "binding",
1315             "bit" => "biting",
1316             "bite" => "biting",
1317             "bites" => "biting",
1318             "biting" => "biting",
1319             "bitten" => "biting",
1320             "bled" => "bleeding",
1321             "bleed" => "bleeding",
1322             "bleeding" => "bleeding",
1323             "bleeds" => "bleeding",
1324             "blew" => "blowing",
1325             "blitz" => "blitzing",
1326             "blitzed" => "blitzing",
1327             "blitzes" => "blitzing",
1328             "blitzing" => "blitzing",
1329             "blow" => "blowing",
1330             "blowing" => "blowing",
1331             "blown" => "blowing",
1332             "blows" => "blowing",
1333             "bound" => "binding",
1334             "break" => "breaking",
1335             "breaking" => "breaking",
1336             "breaks" => "breaking",
1337             "bred" => "breeding",
1338             "breed" => "breeding",
1339             "breeding" => "breeding",
1340             "breeds" => "breeding",
1341             "bring" => "bringing",
1342             "bringing" => "bringing",
1343             "brings" => "bringing",
1344             "broadcast" => "broadcasting",
1345             "broadcasting" => "broadcasting",
1346             "broadcasts" => "broadcasting",
1347             "broke" => "breaking",
1348             "broken" => "breaking",
1349             "brought" => "bringing",
1350             "build" => "building",
1351             "building" => "building",
1352             "builds" => "building",
1353             "built" => "building",
1354             "burn" => "burning",
1355             "burning" => "burning",
1356             "burns" => "burning",
1357             "burnt" => "burning",
1358             "burst" => "bursting",
1359             "bursting" => "bursting",
1360             "bursts" => "bursting",
1361             "bust" => "busting",
1362             "busting" => "busting",
1363             "busts" => "busting",
1364             "cache" => "caching",
1365             "cached" => "caching",
1366             "caches" => "caching",
1367             "caching" => "caching",
1368             "came" => "coming",
1369             "can" => "_",
1370             "cast" => "casting",
1371             "casting" => "casting",
1372             "casts" => "casting",
1373             "catch" => "catching",
1374             "catches" => "catching",
1375             "catching" => "catching",
1376             "caught" => "catching",
1377             "change" => "changing",
1378             "changed" => "changing",
1379             "changes" => "changing",
1380             "changing" => "changing",
1381             "choose" => "choosing",
1382             "chooses" => "choosing",
1383             "choosing" => "choosing",
1384             "chose" => "choosing",
1385             "chosen" => "choosing",
1386             "clap" => "clapping",
1387             "clapped" => "clapping",
1388             "clapping" => "clapping",
1389             "claps" => "clapping",
1390             "cling" => "clinging",
1391             "clinging" => "clinging",
1392             "clings" => "clinging",
1393             "clung" => "clinging",
1394             "come" => "coming",
1395             "comes" => "coming",
1396             "coming" => "coming",
1397             "continue" => "continuing",
1398             "continued" => "continuing",
1399             "continues" => "continuing",
1400             "continuing" => "continuing",
1401             "cost" => "costing",
1402             "costing" => "costing",
1403             "costs" => "costing",
1404             "could" => "_",
1405             "creche" => "creching",
1406             "creched" => "creching",
1407             "creches" => "creching",
1408             "creching" => "creching",
1409             "creep" => "creeping",
1410             "creeping" => "creeping",
1411             "creeps" => "creeping",
1412             "crept" => "creeping",
1413             "dare" => "daring",
1414             "dared" => "daring",
1415             "dares" => "daring",
1416             "daring" => "daring",
1417             "deal" => "dealing",
1418             "dealing" => "dealing",
1419             "deals" => "dealing",
1420             "dealt" => "dealing",
1421             "die" => "dying",
1422             "died" => "dying",
1423             "dies" => "dying",
1424             "dig" => "digging",
1425             "digging" => "digging",
1426             "digs" => "digging",
1427             "dive" => "diving",
1428             "dived" => "diving",
1429             "dives" => "diving",
1430             "diving" => "diving",
1431             "douche" => "douching",
1432             "douched" => "douching",
1433             "douches" => "douching",
1434             "douching" => "douching",
1435             "drag" => "dragging",
1436             "dragged" => "dragging",
1437             "dragging" => "dragging",
1438             "drags" => "dragging",
1439             "drank" => "drinking",
1440             "dream" => "dreaming",
1441             "dreamed" => "dreaming",
1442             "dreaming" => "dreaming",
1443             "dreams" => "dreaming",
1444             "drink" => "drinking",
1445             "drinking" => "drinking",
1446             "drinks" => "drinking",
1447             "drive" => "driving",
1448             "driven" => "driving",
1449             "drives" => "driving",
1450             "driving" => "driving",
1451             "drove" => "driving",
1452             "drunk" => "drinking",
1453             "dug" => "digging",
1454             "dwell" => "dwelling",
1455             "dwelling" => "dwelling",
1456             "dwells" => "dwelling",
1457             "dwelt" => "dwelling",
1458             "dying" => "dying",
1459             "eat" => "eating",
1460             "eaten" => "eating",
1461             "eating" => "eating",
1462             "eats" => "eating",
1463             "expect" => "expecting",
1464             "expected" => "expecting",
1465             "expecting" => "expecting",
1466             "expects" => "expecting",
1467             "fall" => "falling",
1468             "fallen" => "falling",
1469             "falling" => "falling",
1470             "falls" => "falling",
1471             "feel" => "feeling",
1472             "feeling" => "feeling",
1473             "feels" => "feeling",
1474             "fell" => "falling",
1475             "felt" => "feeling",
1476             "fight" => "fighting",
1477             "fighting" => "fighting",
1478             "fights" => "fighting",
1479             "find" => "finding",
1480             "finding" => "finding",
1481             "finds" => "finding",
1482             "fled" => "fleeing",
1483             "flee" => "fleeing",
1484             "fleeing" => "fleeing",
1485             "flees" => "fleeing",
1486             "flew" => "flying",
1487             "flies" => "flying",
1488             "fling" => "flinging",
1489             "flinging" => "flinging",
1490             "flings" => "flinging",
1491             "flown" => "flying",
1492             "flung" => "flinging",
1493             "fly" => "flying",
1494             "flying" => "flying",
1495             "follow" => "following",
1496             "followed" => "following",
1497             "following" => "following",
1498             "follows" => "following",
1499             "forbade" => "forbidding",
1500             "forbid" => "forbidding",
1501             "forbidden" => "forbidding",
1502             "forbidding" => "forbidding",
1503             "forbids" => "forbidding",
1504             "forecast" => "forecasting",
1505             "forecasting" => "forecasting",
1506             "forecasts" => "forecasting",
1507             "foresaw" => "foreseeing",
1508             "foresee" => "foreseeing",
1509             "foreseeing" => "foreseeing",
1510             "foreseen" => "foreseeing",
1511             "foresees" => "foreseeing",
1512             "foretell" => "foretelling",
1513             "foretelling" => "foretelling",
1514             "foretells" => "foretelling",
1515             "foretold" => "foretelling",
1516             "forgave" => "forgiving",
1517             "forget" => "forgetting",
1518             "forgets" => "forgetting",
1519             "forgetting" => "forgetting",
1520             "forgive" => "forgiving",
1521             "forgiven" => "forgiving",
1522             "forgives" => "forgiving",
1523             "forgiving" => "forgiving",
1524             "forgot" => "forgetting",
1525             "forgotten" => "forgetting",
1526             "forsake" => "forsaking",
1527             "forsaken" => "forsaking",
1528             "forsakes" => "forsaking",
1529             "forsaking" => "forsaking",
1530             "forsook" => "forsaking",
1531             "fought" => "fighting",
1532             "found" => "finding",
1533             "gave" => "giving",
1534             "get" => "getting",
1535             "gets" => "getting",
1536             "getting" => "getting",
1537             "gild" => "gilding",
1538             "gilded" => "gilding",
1539             "gilding" => "gilding",
1540             "gilds" => "gilding",
1541             "give" => "giving",
1542             "given" => "giving",
1543             "gives" => "giving",
1544             "giving" => "giving",
1545             "go" => "going",
1546             "goes" => "going",
1547             "going" => "going",
1548             "gone" => "going",
1549             "got" => "getting",
1550             "gotten" => "getting",
1551             "grind" => "grinding",
1552             "grinding" => "grinding",
1553             "grinds" => "grinding",
1554             "ground" => "grinding",
1555             "had" => "having",
1556             "happen" => "happening",
1557             "happened" => "happening",
1558             "happening" => "happening",
1559             "happens" => "happening",
1560             "has" => "having",
1561             "have" => "having",
1562             "having" => "having",
1563             "held" => "holding",
1564             "help" => "helping",
1565             "helped" => "helping",
1566             "helping" => "helping",
1567             "helps" => "helping",
1568             "hew" => "hewing",
1569             "hewed" => "hewing",
1570             "hewing" => "hewing",
1571             "hewn" => "hewing",
1572             "hews" => "hewing",
1573             "hit" => "hitting",
1574             "hits" => "hitting",
1575             "hitting" => "hitting",
1576             "hold" => "holding",
1577             "holding" => "holding",
1578             "holds" => "holding",
1579             "hurt" => "hurting",
1580             "hurting" => "hurting",
1581             "hurts" => "hurting",
1582             "inlaid" => "inlaying",
1583             "inlay" => "inlaying",
1584             "inlaying" => "inlaying",
1585             "inlays" => "inlaying",
1586             "insist" => "insisting",
1587             "insisted" => "insisting",
1588             "insisting" => "insisting",
1589             "insists" => "insisting",
1590             "interlaid" => "interlaying",
1591             "interlay" => "interlaying",
1592             "interlaying" => "interlaying",
1593             "interlays" => "interlaying",
1594             "iris" => "irising",
1595             "irised" => "irising",
1596             "irises" => "irising",
1597             "irising" => "irising",
1598             "is" => "being",
1599             "keep" => "keeping",
1600             "keeping" => "keeping",
1601             "keeps" => "keeping",
1602             "kept" => "keeping",
1603             "kill" => "killing",
1604             "killed" => "killing",
1605             "killing" => "killing",
1606             "kills" => "killing",
1607             "kneel" => "kneeling",
1608             "kneeling" => "kneeling",
1609             "kneels" => "kneeling",
1610             "knelt" => "kneeling",
1611             "knew" => "knowing",
1612             "knit" => "knitting",
1613             "knits" => "knitting",
1614             "knitted" => "knitting",
1615             "knitting" => "knitting",
1616             "know" => "knowing",
1617             "knowing" => "knowing",
1618             "known" => "knowing",
1619             "knows" => "knowing",
1620             "laid" => "laying",
1621             "lain" => "lying",
1622             "lay" => "laying",
1623             "laying" => "laying",
1624             "lays" => "laying",
1625             "lead" => "leading",
1626             "leading" => "leading",
1627             "leads" => "leading",
1628             "lean" => "leaning",
1629             "leaned" => "leaning",
1630             "leaning" => "leaning",
1631             "leans" => "leaning",
1632             "leap" => "leaping",
1633             "leaping" => "leaping",
1634             "leaps" => "leaping",
1635             "leapt" => "leaping",
1636             "learn" => "learning",
1637             "learned" => "learning",
1638             "learning" => "learning",
1639             "learns" => "learning",
1640             "leave" => "leaving",
1641             "leaves" => "leaving",
1642             "leaving" => "leaving",
1643             "led" => "leading",
1644             "left" => "leaving",
1645             "lie" => "lying",
1646             "lies" => "lying",
1647             "like" => "liking",
1648             "liked" => "liking",
1649             "likes" => "liking",
1650             "liking" => "liking",
1651             "live" => "living",
1652             "lived" => "living",
1653             "lives" => "living",
1654             "living" => "living",
1655             "look" => "looking",
1656             "looked" => "looking",
1657             "looking" => "looking",
1658             "looks" => "looking",
1659             "lose" => "losing",
1660             "loses" => "losing",
1661             "losing" => "losing",
1662             "lost" => "losing",
1663             "love" => "loving",
1664             "loved" => "loving",
1665             "loves" => "loving",
1666             "loving" => "loving",
1667             "lying" => "lying",
1668             "may" => "_",
1669             "mean" => "meaning",
1670             "meaning" => "meaning",
1671             "means" => "meaning",
1672             "meant" => "meaning",
1673             "meet" => "meeting",
1674             "meeting" => "meeting",
1675             "meets" => "meeting",
1676             "menu" => "menuing",
1677             "menued" => "menuing",
1678             "menuing" => "menuing",
1679             "menus" => "menuing",
1680             "met" => "meeting",
1681             "might" => "_",
1682             "mislead" => "misleading",
1683             "misleading" => "misleading",
1684             "misleads" => "misleading",
1685             "misled" => "misleading",
1686             "mistake" => "mistaking",
1687             "mistaken" => "mistaking",
1688             "mistakes" => "mistaking",
1689             "mistaking" => "mistaking",
1690             "mistook" => "mistaking",
1691             "misunderstand" => "misunderstanding",
1692             "misunderstanding" => "misunderstanding",
1693             "misunderstands" => "misunderstanding",
1694             "misunderstood" => "misunderstanding",
1695             "move" => "moving",
1696             "moved" => "moving",
1697             "moves" => "moving",
1698             "moving" => "moving",
1699             "must" => "_",
1700             "need" => "needing",
1701             "needed" => "needing",
1702             "needing" => "needing",
1703             "needs" => "needing",
1704             "niche" => "nicheing",
1705             "niched" => "nicheing",
1706             "nicheing" => "nicheing",
1707             "niches" => "nicheing",
1708             "ought" => "_",
1709             "overdraw" => "overdrawing",
1710             "overdrawing" => "overdrawing",
1711             "overdrawn" => "overdrawing",
1712             "overdraws" => "overdrawing",
1713             "overdrew" => "overdrawing",
1714             "overhear" => "overhearing",
1715             "overheard" => "overhearing",
1716             "overhearing" => "overhearing",
1717             "overhears" => "overhearing",
1718             "overtake" => "overtaking",
1719             "overtaken" => "overtaking",
1720             "overtakes" => "overtaking",
1721             "overtaking" => "overtaking",
1722             "overtook" => "overtaking",
1723             "preset" => "presetting",
1724             "presets" => "presetting",
1725             "presetting" => "presetting",
1726             "prove" => "proving",
1727             "proved" => "proving",
1728             "proven" => "proving",
1729             "proves" => "proving",
1730             "provide" => "providing",
1731             "provided" => "providing",
1732             "provides" => "providing",
1733             "providing" => "providing",
1734             "proving" => "proving",
1735             "psyche" => "psyching",
1736             "psyched" => "psyching",
1737             "psyches" => "psyching",
1738             "psyching" => "psyching",
1739             "put" => "putting",
1740             "puts" => "putting",
1741             "putting" => "putting",
1742             "quit" => "quitting",
1743             "quits" => "quitting",
1744             "quitting" => "quitting",
1745             "quiz" => "quizzing",
1746             "quizzed" => "quizzing",
1747             "quizzes" => "quizzing",
1748             "quizzing" => "quizzing",
1749             "ran" => "running",
1750             "rang" => "ringing",
1751             "reach" => "reaching",
1752             "reached" => "reaching",
1753             "reaches" => "reaching",
1754             "reaching" => "reaching",
1755             "remain" => "remaining",
1756             "remained" => "remaining",
1757             "remaining" => "remaining",
1758             "remains" => "remaining",
1759             "remember" => "remembering",
1760             "remembered" => "remembering",
1761             "remembering" => "remembering",
1762             "remembers" => "remembering",
1763             "rend" => "rending",
1764             "rending" => "rending",
1765             "rends" => "rending",
1766             "rent" => "rending",
1767             "rid" => "ridding",
1768             "ridden" => "riding",
1769             "ridding" => "ridding",
1770             "ride" => "riding",
1771             "rides" => "riding",
1772             "riding" => "riding",
1773             "rids" => "ridding",
1774             "ring" => "ringing",
1775             "ringing" => "ringing",
1776             "rings" => "ringing",
1777             "rise" => "rising",
1778             "risen" => "rising",
1779             "rises" => "rising",
1780             "rising" => "rising",
1781             "rive" => "riving",
1782             "rived" => "riving",
1783             "riven" => "riving",
1784             "rives" => "riving",
1785             "riving" => "riving",
1786             "rode" => "riding",
1787             "rose" => "rising",
1788             "run" => "running",
1789             "rung" => "ringing",
1790             "running" => "running",
1791             "runs" => "running",
1792             "s" => "_",
1793             "sang" => "singing",
1794             "sank" => "sinking",
1795             "sat" => "sitting",
1796             "saw" => "sawing",
1797             "sawed" => "sawing",
1798             "sawing" => "sawing",
1799             "sawn" => "sawing",
1800             "saws" => "sawing",
1801             "seek" => "seeking",
1802             "seeking" => "seeking",
1803             "seeks" => "seeking",
1804             "seem" => "seeming",
1805             "seemed" => "seeming",
1806             "seeming" => "seeming",
1807             "seems" => "seeming",
1808             "shake" => "shaking",
1809             "shaken" => "shaking",
1810             "shakes" => "shaking",
1811             "shaking" => "shaking",
1812             "shall" => "_",
1813             "shat" => "shitting",
1814             "shave" => "shaving",
1815             "shaved" => "shaving",
1816             "shaves" => "shaving",
1817             "shaving" => "shaving",
1818             "shed" => "shedding",
1819             "shedding" => "shedding",
1820             "sheds" => "shedding",
1821             "shit" => "shitting",
1822             "shits" => "shitting",
1823             "shitted" => "shitting",
1824             "shitting" => "shitting",
1825             "shod" => "shoeing",
1826             "shoe" => "shoeing",
1827             "shoeing" => "shoeing",
1828             "shoes" => "shoeing",
1829             "shook" => "shaking",
1830             "should" => "_",
1831             "show" => "showing",
1832             "showed" => "showing",
1833             "showing" => "showing",
1834             "shown" => "showing",
1835             "shows" => "showing",
1836             "shrank" => "shrinking",
1837             "shrink" => "shrinking",
1838             "shrinking" => "shrinking",
1839             "shrinks" => "shrinking",
1840             "shrunk" => "shrinking",
1841             "sing" => "singing",
1842             "singing" => "singing",
1843             "sings" => "singing",
1844             "sink" => "sinking",
1845             "sinking" => "sinking",
1846             "sinks" => "sinking",
1847             "sit" => "sitting",
1848             "sits" => "sitting",
1849             "sitting" => "sitting",
1850             "ski" => "skiing",
1851             "skied" => "skiing",
1852             "skiing" => "skiing",
1853             "skis" => "skiing",
1854             "slain" => "slaying",
1855             "slay" => "slaying",
1856             "slaying" => "slaying",
1857             "slays" => "slaying",
1858             "slew" => "slaying",
1859             "slid" => "sliding",
1860             "slide" => "sliding",
1861             "slides" => "sliding",
1862             "sliding" => "sliding",
1863             "slink" => "slinking",
1864             "slinking" => "slinking",
1865             "slinks" => "slinking",
1866             "slit" => "slitting",
1867             "slits" => "slitting",
1868             "slitting" => "slitting",
1869             "slunk" => "slinking",
1870             "smell" => "smelling",
1871             "smelled" => "smelling",
1872             "smelling" => "smelling",
1873             "smells" => "smelling",
1874             "smite" => "smiting",
1875             "smites" => "smiting",
1876             "smiting" => "smiting",
1877             "smitten" => "smiting",
1878             "smote" => "smiting",
1879             "sneak" => "sneaking",
1880             "sneaked" => "sneaking",
1881             "sneaking" => "sneaking",
1882             "sneaks" => "sneaking",
1883             "sought" => "seeking",
1884             "sow" => "sowing",
1885             "sowed" => "sowing",
1886             "sowing" => "sowing",
1887             "sown" => "sowing",
1888             "sows" => "sowing",
1889             "spat" => "spitting",
1890             "speak" => "speaking",
1891             "speaking" => "speaking",
1892             "speaks" => "speaking",
1893             "sped" => "speeding",
1894             "speed" => "speeding",
1895             "speeding" => "speeding",
1896             "speeds" => "speeding",
1897             "spend" => "spending",
1898             "spending" => "spending",
1899             "spends" => "spending",
1900             "spent" => "spending",
1901             "spit" => "spitting",
1902             "spits" => "spitting",
1903             "spitting" => "spitting",
1904             "spoil" => "spoiling",
1905             "spoiled" => "spoiling",
1906             "spoiling" => "spoiling",
1907             "spoils" => "spoiling",
1908             "spoilt" => "spoiling",
1909             "spoke" => "speaking",
1910             "spoken" => "speaking",
1911             "sprang" => "springing",
1912             "spring" => "springing",
1913             "springing" => "springing",
1914             "springs" => "springing",
1915             "sprung" => "springing",
1916             "stand" => "standing",
1917             "standing" => "standing",
1918             "stands" => "standing",
1919             "stank" => "stinking",
1920             "stave" => "staving",
1921             "staved" => "staving",
1922             "staves" => "staving",
1923             "staving" => "staving",
1924             "stay" => "staying",
1925             "stayed" => "staying",
1926             "staying" => "staying",
1927             "stays" => "staying",
1928             "steal" => "stealing",
1929             "stealing" => "stealing",
1930             "steals" => "stealing",
1931             "sting" => "stinging",
1932             "stinging" => "stinging",
1933             "stings" => "stinging",
1934             "stink" => "stinking",
1935             "stinking" => "stinking",
1936             "stinks" => "stinking",
1937             "stole" => "stealing",
1938             "stolen" => "stealing",
1939             "stood" => "standing",
1940             "stop" => "stopping",
1941             "stopped" => "stopping",
1942             "stopping" => "stopping",
1943             "stops" => "stopping",
1944             "strew" => "strewing",
1945             "strewed" => "strewing",
1946             "strewing" => "strewing",
1947             "strewn" => "strewing",
1948             "strews" => "strewing",
1949             "stride" => "striding",
1950             "strides" => "striding",
1951             "striding" => "striding",
1952             "strip" => "stripping",
1953             "stripped" => "stripping",
1954             "stripping" => "stripping",
1955             "strips" => "stripping",
1956             "strive" => "striving",
1957             "strived" => "striving",
1958             "strives" => "striving",
1959             "striving" => "striving",
1960             "strode" => "striding",
1961             "strove" => "striving",
1962             "stung" => "stinging",
1963             "stunk" => "stinking",
1964             "sublet" => "subletting",
1965             "sublets" => "subletting",
1966             "subletting" => "subletting",
1967             "sunburn" => "sunburning",
1968             "sunburned" => "sunburning",
1969             "sunburning" => "sunburning",
1970             "sunburns" => "sunburning",
1971             "sung" => "singing",
1972             "sunk" => "sinking",
1973             "swam" => "swimming",
1974             "swear" => "swearing",
1975             "swearing" => "swearing",
1976             "swears" => "swearing",
1977             "sweat" => "sweating",
1978             "sweated" => "sweating",
1979             "sweating" => "sweating",
1980             "sweats" => "sweating",
1981             "sweep" => "sweeping",
1982             "sweeping" => "sweeping",
1983             "sweeps" => "sweeping",
1984             "swell" => "swelling",
1985             "swelled" => "swelling",
1986             "swelling" => "swelling",
1987             "swells" => "swelling",
1988             "swept" => "sweeping",
1989             "swim" => "swimming",
1990             "swimming" => "swimming",
1991             "swims" => "swimming",
1992             "swing" => "swinging",
1993             "swinging" => "swinging",
1994             "swings" => "swinging",
1995             "swollen" => "swelling",
1996             "swore" => "swearing",
1997             "sworn" => "swearing",
1998             "swum" => "swimming",
1999             "swung" => "swinging",
2000             "talk" => "talking",
2001             "talked" => "talking",
2002             "talking" => "talking",
2003             "talks" => "talking",
2004             "tear" => "tearing",
2005             "tearing" => "tearing",
2006             "tears" => "tearing",
2007             "thrive" => "thriving",
2008             "thrived" => "thriving",
2009             "thrives" => "thriving",
2010             "thriving" => "thriving",
2011             "thrust" => "thrusting",
2012             "thrusting" => "thrusting",
2013             "thrusts" => "thrusting",
2014             "tore" => "tearing",
2015             "torn" => "tearing",
2016             "tread" => "treading",
2017             "treading" => "treading",
2018             "treads" => "treading",
2019             "trod" => "treading",
2020             "trodden" => "treading",
2021             "undergo" => "undergoing",
2022             "undergoes" => "undergoing",
2023             "undergoing" => "undergoing",
2024             "undergone" => "undergoing",
2025             "understand" => "understanding",
2026             "understanding" => "understanding",
2027             "understands" => "understanding",
2028             "understood" => "understanding",
2029             "undertake" => "undertaking",
2030             "undertaken" => "undertaking",
2031             "undertakes" => "undertaking",
2032             "undertaking" => "undertaking",
2033             "undertook" => "undertaking",
2034             "underwent" => "undergoing",
2035             "upset" => "upsetting",
2036             "upsets" => "upsetting",
2037             "upsetting" => "upsetting",
2038             "vex" => "vexing",
2039             "vexed" => "vexing",
2040             "vexes" => "vexing",
2041             "vexing" => "vexing",
2042             "wait" => "waiting",
2043             "waited" => "waiting",
2044             "waiting" => "waiting",
2045             "waits" => "waiting",
2046             "wake" => "waking",
2047             "wakes" => "waking",
2048             "waking" => "waking",
2049             "walk" => "walking",
2050             "walked" => "walking",
2051             "walking" => "walking",
2052             "walks" => "walking",
2053             "want" => "wanting",
2054             "wanted" => "wanting",
2055             "wanting" => "wanting",
2056             "wants" => "wanting",
2057             "was" => "being",
2058             "watch" => "watching",
2059             "watched" => "watching",
2060             "watches" => "watching",
2061             "watching" => "watching",
2062             "wear" => "wearing",
2063             "wearing" => "wearing",
2064             "wears" => "wearing",
2065             "weep" => "weeping",
2066             "weeping" => "weeping",
2067             "weeps" => "weeping",
2068             "wend" => "wending",
2069             "wended" => "wending",
2070             "wending" => "wending",
2071             "wends" => "wending",
2072             "went" => "going",
2073             "wept" => "weeping",
2074             "were" => "being",
2075             "will" => "willing",
2076             "willed" => "willing",
2077             "willing" => "willing",
2078             "win" => "winning",
2079             "winning" => "winning",
2080             "wins" => "winning",
2081             "withdraw" => "withdrawing",
2082             "withdrawing" => "withdrawing",
2083             "withdrawn" => "withdrawing",
2084             "withdraws" => "withdrawing",
2085             "withdrew" => "withdrawing",
2086             "withheld" => "withholding",
2087             "withhold" => "withholding",
2088             "withholding" => "withholding",
2089             "withholds" => "withholding",
2090             "withstand" => "withstanding",
2091             "withstanding" => "withstanding",
2092             "withstands" => "withstanding",
2093             "withstood" => "withstanding",
2094             "woke" => "waking",
2095             "woken" => "waking",
2096             "won" => "winning",
2097             "wore" => "wearing",
2098             "worn" => "wearing",
2099             "would" => "_",
2100             "wring" => "wringing",
2101             "wringing" => "wringing",
2102             "wrings" => "wringing",
2103             "wrung" => "wringing",
2104             };
2105              
2106             my $past_part_of = {
2107             "" => "_",
2108             "_" => "_",
2109             "abide" => "abided",
2110             "abided" => "abided",
2111             "abides" => "abided",
2112             "abiding" => "abided",
2113             "ache" => "ached",
2114             "ached" => "ached",
2115             "aches" => "ached",
2116             "aching" => "ached",
2117             "am" => "been",
2118             "are" => "been",
2119             "arise" => "arisen",
2120             "arisen" => "arisen",
2121             "arises" => "arisen",
2122             "arising" => "arisen",
2123             "arose" => "arisen",
2124             "ask" => "asked",
2125             "asked" => "asked",
2126             "asking" => "asked",
2127             "asks" => "asked",
2128             "ate" => "eaten",
2129             "avalanche" => "avalanched",
2130             "avalanched" => "avalanched",
2131             "avalanches" => "avalanched",
2132             "avalanching" => "avalanched",
2133             "awake" => "awoken",
2134             "awakening" => "awoken",
2135             "awakes" => "awoken",
2136             "awoke" => "awoken",
2137             "awoken" => "awoken",
2138             "beat" => "beaten",
2139             "beaten" => "beaten",
2140             "beating" => "beaten",
2141             "beats" => "beaten",
2142             "became" => "become",
2143             "become" => "become",
2144             "becomes" => "become",
2145             "becoming" => "become",
2146             "been" => "been",
2147             "began" => "begun",
2148             "beget" => "begotten",
2149             "begets" => "begotten",
2150             "begetting" => "begotten",
2151             "begin" => "begun",
2152             "beginning" => "begun",
2153             "begins" => "begun",
2154             "begot" => "begotten",
2155             "begotten" => "begotten",
2156             "begun" => "begun",
2157             "beheld" => "beheld",
2158             "behold" => "beheld",
2159             "beholding" => "beheld",
2160             "beholds" => "beheld",
2161             "being" => "been",
2162             "bellyache" => "bellyached",
2163             "bellyached" => "bellyached",
2164             "bellyaches" => "bellyached",
2165             "bellyaching" => "bellyached",
2166             "bend" => "bent",
2167             "bending" => "bent",
2168             "bends" => "bent",
2169             "bent" => "bent",
2170             "bet" => "bet",
2171             "bets" => "bet",
2172             "betting" => "bet",
2173             "bind" => "bound",
2174             "binding" => "bound",
2175             "binds" => "bound",
2176             "bit" => "bitten",
2177             "bite" => "bitten",
2178             "bites" => "bitten",
2179             "biting" => "bitten",
2180             "bitten" => "bitten",
2181             "bled" => "bled",
2182             "bleed" => "bled",
2183             "bleeding" => "bled",
2184             "bleeds" => "bled",
2185             "blew" => "blown",
2186             "blitz" => "blitzed",
2187             "blitzed" => "blitzed",
2188             "blitzes" => "blitzed",
2189             "blitzing" => "blitzed",
2190             "blow" => "blown",
2191             "blowing" => "blown",
2192             "blown" => "blown",
2193             "blows" => "blown",
2194             "bound" => "bound",
2195             "break" => "broken",
2196             "breaking" => "broken",
2197             "breaks" => "broken",
2198             "bred" => "bred",
2199             "breed" => "bred",
2200             "breeding" => "bred",
2201             "breeds" => "bred",
2202             "bring" => "brought",
2203             "bringing" => "brought",
2204             "brings" => "brought",
2205             "broadcast" => "broadcast",
2206             "broadcasting" => "broadcast",
2207             "broadcasts" => "broadcast",
2208             "broke" => "broken",
2209             "broken" => "broken",
2210             "brought" => "brought",
2211             "build" => "built",
2212             "building" => "built",
2213             "builds" => "built",
2214             "built" => "built",
2215             "burn" => "burnt",
2216             "burning" => "burnt",
2217             "burns" => "burnt",
2218             "burnt" => "burnt",
2219             "burst" => "burst",
2220             "bursting" => "burst",
2221             "bursts" => "burst",
2222             "bust" => "bust",
2223             "busting" => "bust",
2224             "busts" => "bust",
2225             "cache" => "cached",
2226             "cached" => "cached",
2227             "caches" => "cached",
2228             "caching" => "cached",
2229             "came" => "come",
2230             "can" => "_",
2231             "cast" => "cast",
2232             "casting" => "cast",
2233             "casts" => "cast",
2234             "catch" => "caught",
2235             "catches" => "caught",
2236             "catching" => "caught",
2237             "caught" => "caught",
2238             "change" => "changed",
2239             "changed" => "changed",
2240             "changes" => "changed",
2241             "changing" => "changed",
2242             "choose" => "chosen",
2243             "chooses" => "chosen",
2244             "choosing" => "chosen",
2245             "chose" => "chosen",
2246             "chosen" => "chosen",
2247             "clap" => "clapped",
2248             "clapped" => "clapped",
2249             "clapping" => "clapped",
2250             "claps" => "clapped",
2251             "cling" => "clung",
2252             "clinging" => "clung",
2253             "clings" => "clung",
2254             "clung" => "clung",
2255             "come" => "come",
2256             "comes" => "come",
2257             "coming" => "come",
2258             "continue" => "continued",
2259             "continued" => "continued",
2260             "continues" => "continued",
2261             "continuing" => "continued",
2262             "cost" => "cost",
2263             "costing" => "cost",
2264             "costs" => "cost",
2265             "could" => "_",
2266             "creche" => "creched",
2267             "creched" => "creched",
2268             "creches" => "creched",
2269             "creching" => "creched",
2270             "creep" => "crept",
2271             "creeping" => "crept",
2272             "creeps" => "crept",
2273             "crept" => "crept",
2274             "dare" => "dared",
2275             "dared" => "dared",
2276             "dares" => "dared",
2277             "daring" => "dared",
2278             "deal" => "dealt",
2279             "dealing" => "dealt",
2280             "deals" => "dealt",
2281             "dealt" => "dealt",
2282             "die" => "died",
2283             "died" => "died",
2284             "dies" => "died",
2285             "dig" => "dug",
2286             "digging" => "dug",
2287             "digs" => "dug",
2288             "dive" => "dived",
2289             "dived" => "dived",
2290             "dives" => "dived",
2291             "diving" => "dived",
2292             "douche" => "douched",
2293             "douched" => "douched",
2294             "douches" => "douched",
2295             "douching" => "douched",
2296             "drag" => "dragged",
2297             "dragged" => "dragged",
2298             "dragging" => "dragged",
2299             "drags" => "dragged",
2300             "drank" => "drunk",
2301             "dream" => "dreamed",
2302             "dreamed" => "dreamed",
2303             "dreaming" => "dreamed",
2304             "dreams" => "dreamed",
2305             "drink" => "drunk",
2306             "drinking" => "drunk",
2307             "drinks" => "drunk",
2308             "drive" => "driven",
2309             "driven" => "driven",
2310             "drives" => "driven",
2311             "driving" => "driven",
2312             "drove" => "driven",
2313             "drunk" => "drunk",
2314             "dug" => "dug",
2315             "dwell" => "dwelt",
2316             "dwelling" => "dwelt",
2317             "dwells" => "dwelt",
2318             "dwelt" => "dwelt",
2319             "dying" => "died",
2320             "eat" => "eaten",
2321             "eaten" => "eaten",
2322             "eating" => "eaten",
2323             "eats" => "eaten",
2324             "expect" => "expected",
2325             "expected" => "expected",
2326             "expecting" => "expected",
2327             "expects" => "expected",
2328             "fall" => "fallen",
2329             "fallen" => "fallen",
2330             "falling" => "fallen",
2331             "falls" => "fallen",
2332             "feel" => "felt",
2333             "feeling" => "felt",
2334             "feels" => "felt",
2335             "fell" => "fallen",
2336             "felt" => "felt",
2337             "fight" => "fought",
2338             "fighting" => "fought",
2339             "fights" => "fought",
2340             "find" => "found",
2341             "finding" => "found",
2342             "finds" => "found",
2343             "fled" => "fled",
2344             "flee" => "fled",
2345             "fleeing" => "fled",
2346             "flees" => "fled",
2347             "flew" => "flown",
2348             "flies" => "flown",
2349             "fling" => "flung",
2350             "flinging" => "flung",
2351             "flings" => "flung",
2352             "flown" => "flown",
2353             "flung" => "flung",
2354             "fly" => "flown",
2355             "flying" => "flown",
2356             "follow" => "followed",
2357             "followed" => "followed",
2358             "following" => "followed",
2359             "follows" => "followed",
2360             "forbade" => "forbidden",
2361             "forbid" => "forbidden",
2362             "forbidden" => "forbidden",
2363             "forbidding" => "forbidden",
2364             "forbids" => "forbidden",
2365             "forecast" => "forecast",
2366             "forecasting" => "forecast",
2367             "forecasts" => "forecast",
2368             "foresaw" => "foreseen",
2369             "foresee" => "foreseen",
2370             "foreseeing" => "foreseen",
2371             "foreseen" => "foreseen",
2372             "foresees" => "foreseen",
2373             "foretell" => "foretold",
2374             "foretelling" => "foretold",
2375             "foretells" => "foretold",
2376             "foretold" => "foretold",
2377             "forgave" => "forgiven",
2378             "forget" => "forgotten",
2379             "forgets" => "forgotten",
2380             "forgetting" => "forgotten",
2381             "forgive" => "forgiven",
2382             "forgiven" => "forgiven",
2383             "forgives" => "forgiven",
2384             "forgiving" => "forgiven",
2385             "forgot" => "forgotten",
2386             "forgotten" => "forgotten",
2387             "forsake" => "forsaken",
2388             "forsaken" => "forsaken",
2389             "forsakes" => "forsaken",
2390             "forsaking" => "forsaken",
2391             "forsook" => "forsaken",
2392             "fought" => "fought",
2393             "found" => "found",
2394             "gave" => "given",
2395             "get" => "gotten",
2396             "gets" => "gotten",
2397             "getting" => "gotten",
2398             "gild" => "gilded",
2399             "gilded" => "gilded",
2400             "gilding" => "gilded",
2401             "gilds" => "gilded",
2402             "give" => "given",
2403             "given" => "given",
2404             "gives" => "given",
2405             "giving" => "given",
2406             "go" => "gone",
2407             "goes" => "gone",
2408             "going" => "gone",
2409             "gone" => "gone",
2410             "got" => "gotten",
2411             "gotten" => "gotten",
2412             "grind" => "ground",
2413             "grinding" => "ground",
2414             "grinds" => "ground",
2415             "ground" => "ground",
2416             "had" => "had",
2417             "happen" => "happened",
2418             "happened" => "happened",
2419             "happening" => "happened",
2420             "happens" => "happened",
2421             "has" => "had",
2422             "have" => "had",
2423             "having" => "had",
2424             "held" => "held",
2425             "help" => "helped",
2426             "helped" => "helped",
2427             "helping" => "helped",
2428             "helps" => "helped",
2429             "hew" => "hewn",
2430             "hewed" => "hewn",
2431             "hewing" => "hewn",
2432             "hewn" => "hewn",
2433             "hews" => "hewn",
2434             "hit" => "hit",
2435             "hits" => "hit",
2436             "hitting" => "hit",
2437             "hold" => "held",
2438             "holding" => "held",
2439             "holds" => "held",
2440             "hurt" => "hurt",
2441             "hurting" => "hurt",
2442             "hurts" => "hurt",
2443             "inlaid" => "inlaid",
2444             "inlay" => "inlaid",
2445             "inlaying" => "inlaid",
2446             "inlays" => "inlaid",
2447             "insist" => "insisted",
2448             "insisted" => "insisted",
2449             "insisting" => "insisted",
2450             "insists" => "insisted",
2451             "interlaid" => "interlaid",
2452             "interlay" => "interlaid",
2453             "interlaying" => "interlaid",
2454             "interlays" => "interlaid",
2455             "iris" => "irised",
2456             "irised" => "irised",
2457             "irises" => "irised",
2458             "irising" => "irised",
2459             "is" => "been",
2460             "keep" => "kept",
2461             "keeping" => "kept",
2462             "keeps" => "kept",
2463             "kept" => "kept",
2464             "kill" => "killed",
2465             "killed" => "killed",
2466             "killing" => "killed",
2467             "kills" => "killed",
2468             "kneel" => "knelt",
2469             "kneeling" => "knelt",
2470             "kneels" => "knelt",
2471             "knelt" => "knelt",
2472             "knew" => "known",
2473             "knit" => "knitted",
2474             "knits" => "knitted",
2475             "knitted" => "knitted",
2476             "knitting" => "knitted",
2477             "know" => "known",
2478             "knowing" => "known",
2479             "known" => "known",
2480             "knows" => "known",
2481             "laid" => "laid",
2482             "lain" => "lain",
2483             "lay" => "laid",
2484             "laying" => "laid",
2485             "lays" => "laid",
2486             "lead" => "led",
2487             "leading" => "led",
2488             "leads" => "led",
2489             "lean" => "leaned",
2490             "leaned" => "leaned",
2491             "leaning" => "leaned",
2492             "leans" => "leaned",
2493             "leap" => "leapt",
2494             "leaping" => "leapt",
2495             "leaps" => "leapt",
2496             "leapt" => "leapt",
2497             "learn" => "learned",
2498             "learned" => "learned",
2499             "learning" => "learned",
2500             "learns" => "learned",
2501             "leave" => "left",
2502             "leaves" => "left",
2503             "leaving" => "left",
2504             "led" => "led",
2505             "left" => "left",
2506             "lie" => "lain",
2507             "lies" => "lain",
2508             "like" => "liked",
2509             "liked" => "liked",
2510             "likes" => "liked",
2511             "liking" => "liked",
2512             "live" => "lived",
2513             "lived" => "lived",
2514             "lives" => "lived",
2515             "living" => "lived",
2516             "look" => "looked",
2517             "looked" => "looked",
2518             "looking" => "looked",
2519             "looks" => "looked",
2520             "lose" => "lost",
2521             "loses" => "lost",
2522             "losing" => "lost",
2523             "lost" => "lost",
2524             "love" => "loved",
2525             "loved" => "loved",
2526             "loves" => "loved",
2527             "loving" => "loved",
2528             "lying" => "lain",
2529             "may" => "_",
2530             "mean" => "meant",
2531             "meaning" => "meant",
2532             "means" => "meant",
2533             "meant" => "meant",
2534             "meet" => "met",
2535             "meeting" => "met",
2536             "meets" => "met",
2537             "menu" => "menued",
2538             "menued" => "menued",
2539             "menuing" => "menued",
2540             "menus" => "menued",
2541             "met" => "met",
2542             "might" => "_",
2543             "mislead" => "misled",
2544             "misleading" => "misled",
2545             "misleads" => "misled",
2546             "misled" => "misled",
2547             "mistake" => "mistaken",
2548             "mistaken" => "mistaken",
2549             "mistakes" => "mistaken",
2550             "mistaking" => "mistaken",
2551             "mistook" => "mistaken",
2552             "misunderstand" => "misunderstood",
2553             "misunderstanding" => "misunderstood",
2554             "misunderstands" => "misunderstood",
2555             "misunderstood" => "misunderstood",
2556             "move" => "moved",
2557             "moved" => "moved",
2558             "moves" => "moved",
2559             "moving" => "moved",
2560             "must" => "_",
2561             "need" => "needed",
2562             "needed" => "needed",
2563             "needing" => "needed",
2564             "needs" => "needed",
2565             "niche" => "niched",
2566             "niched" => "niched",
2567             "nicheing" => "niched",
2568             "niches" => "niched",
2569             "ought" => "_",
2570             "overdraw" => "overdrawn",
2571             "overdrawing" => "overdrawn",
2572             "overdrawn" => "overdrawn",
2573             "overdraws" => "overdrawn",
2574             "overdrew" => "overdrawn",
2575             "overhear" => "overheard",
2576             "overheard" => "overheard",
2577             "overhearing" => "overheard",
2578             "overhears" => "overheard",
2579             "overtake" => "overtaken",
2580             "overtaken" => "overtaken",
2581             "overtakes" => "overtaken",
2582             "overtaking" => "overtaken",
2583             "overtook" => "overtaken",
2584             "preset" => "preset",
2585             "presets" => "preset",
2586             "presetting" => "preset",
2587             "prove" => "proven",
2588             "proved" => "proven",
2589             "proven" => "proven",
2590             "proves" => "proven",
2591             "provide" => "provided",
2592             "provided" => "provided",
2593             "provides" => "provided",
2594             "providing" => "provided",
2595             "proving" => "proven",
2596             "psyche" => "psyched",
2597             "psyched" => "psyched",
2598             "psyches" => "psyched",
2599             "psyching" => "psyched",
2600             "put" => "put",
2601             "puts" => "put",
2602             "putting" => "put",
2603             "quit" => "quit",
2604             "quits" => "quit",
2605             "quitting" => "quit",
2606             "quiz" => "quizzed",
2607             "quizzed" => "quizzed",
2608             "quizzes" => "quizzed",
2609             "quizzing" => "quizzed",
2610             "ran" => "run",
2611             "rang" => "rung",
2612             "reach" => "reached",
2613             "reached" => "reached",
2614             "reaches" => "reached",
2615             "reaching" => "reached",
2616             "remain" => "remained",
2617             "remained" => "remained",
2618             "remaining" => "remained",
2619             "remains" => "remained",
2620             "remember" => "remembered",
2621             "remembered" => "remembered",
2622             "remembering" => "remembered",
2623             "remembers" => "remembered",
2624             "rend" => "rent",
2625             "rending" => "rent",
2626             "rends" => "rent",
2627             "rent" => "rent",
2628             "rid" => "rid",
2629             "ridden" => "ridden",
2630             "ridding" => "rid",
2631             "ride" => "ridden",
2632             "rides" => "ridden",
2633             "riding" => "ridden",
2634             "rids" => "rid",
2635             "ring" => "rung",
2636             "ringing" => "rung",
2637             "rings" => "rung",
2638             "rise" => "risen",
2639             "risen" => "risen",
2640             "rises" => "risen",
2641             "rising" => "risen",
2642             "rive" => "riven",
2643             "rived" => "riven",
2644             "riven" => "riven",
2645             "rives" => "riven",
2646             "riving" => "riven",
2647             "rode" => "ridden",
2648             "rose" => "risen",
2649             "run" => "run",
2650             "rung" => "rung",
2651             "running" => "run",
2652             "runs" => "run",
2653             "s" => "_",
2654             "sang" => "sung",
2655             "sank" => "sunk",
2656             "sat" => "sat",
2657             "saw" => "sawn",
2658             "sawed" => "sawn",
2659             "sawing" => "sawn",
2660             "sawn" => "sawn",
2661             "saws" => "sawn",
2662             "seek" => "sought",
2663             "seeking" => "sought",
2664             "seeks" => "sought",
2665             "seem" => "seemed",
2666             "seemed" => "seemed",
2667             "seeming" => "seemed",
2668             "seems" => "seemed",
2669             "shake" => "shaken",
2670             "shaken" => "shaken",
2671             "shakes" => "shaken",
2672             "shaking" => "shaken",
2673             "shall" => "_",
2674             "shat" => "shitted",
2675             "shave" => "shaved",
2676             "shaved" => "shaved",
2677             "shaves" => "shaved",
2678             "shaving" => "shaved",
2679             "shed" => "shed",
2680             "shedding" => "shed",
2681             "sheds" => "shed",
2682             "shit" => "shitted",
2683             "shits" => "shitted",
2684             "shitted" => "shitted",
2685             "shitting" => "shitted",
2686             "shod" => "shod",
2687             "shoe" => "shod",
2688             "shoeing" => "shod",
2689             "shoes" => "shod",
2690             "shook" => "shaken",
2691             "should" => "_",
2692             "show" => "shown",
2693             "showed" => "shown",
2694             "showing" => "shown",
2695             "shown" => "shown",
2696             "shows" => "shown",
2697             "shrank" => "shrunk",
2698             "shrink" => "shrunk",
2699             "shrinking" => "shrunk",
2700             "shrinks" => "shrunk",
2701             "shrunk" => "shrunk",
2702             "sing" => "sung",
2703             "singing" => "sung",
2704             "sings" => "sung",
2705             "sink" => "sunk",
2706             "sinking" => "sunk",
2707             "sinks" => "sunk",
2708             "sit" => "sat",
2709             "sits" => "sat",
2710             "sitting" => "sat",
2711             "ski" => "skied",
2712             "skied" => "skied",
2713             "skiing" => "skied",
2714             "skis" => "skied",
2715             "slain" => "slain",
2716             "slay" => "slain",
2717             "slaying" => "slain",
2718             "slays" => "slain",
2719             "slew" => "slain",
2720             "slid" => "slid",
2721             "slide" => "slid",
2722             "slides" => "slid",
2723             "sliding" => "slid",
2724             "slink" => "slunk",
2725             "slinking" => "slunk",
2726             "slinks" => "slunk",
2727             "slit" => "slit",
2728             "slits" => "slit",
2729             "slitting" => "slit",
2730             "slunk" => "slunk",
2731             "smell" => "smelled",
2732             "smelled" => "smelled",
2733             "smelling" => "smelled",
2734             "smells" => "smelled",
2735             "smite" => "smitten",
2736             "smites" => "smitten",
2737             "smiting" => "smitten",
2738             "smitten" => "smitten",
2739             "smote" => "smitten",
2740             "sneak" => "sneaked",
2741             "sneaked" => "sneaked",
2742             "sneaking" => "sneaked",
2743             "sneaks" => "sneaked",
2744             "sought" => "sought",
2745             "sow" => "sown",
2746             "sowed" => "sown",
2747             "sowing" => "sown",
2748             "sown" => "sown",
2749             "sows" => "sown",
2750             "spat" => "spat",
2751             "speak" => "spoken",
2752             "speaking" => "spoken",
2753             "speaks" => "spoken",
2754             "sped" => "sped",
2755             "speed" => "sped",
2756             "speeding" => "sped",
2757             "speeds" => "sped",
2758             "spend" => "spent",
2759             "spending" => "spent",
2760             "spends" => "spent",
2761             "spent" => "spent",
2762             "spit" => "spat",
2763             "spits" => "spat",
2764             "spitting" => "spat",
2765             "spoil" => "spoiled",
2766             "spoiled" => "spoiled",
2767             "spoiling" => "spoiled",
2768             "spoils" => "spoiled",
2769             "spoilt" => "spoiled",
2770             "spoke" => "spoken",
2771             "spoken" => "spoken",
2772             "sprang" => "sprung",
2773             "spring" => "sprung",
2774             "springing" => "sprung",
2775             "springs" => "sprung",
2776             "sprung" => "sprung",
2777             "stand" => "stood",
2778             "standing" => "stood",
2779             "stands" => "stood",
2780             "stank" => "stunk",
2781             "stave" => "staved",
2782             "staved" => "staved",
2783             "staves" => "staved",
2784             "staving" => "staved",
2785             "stay" => "stayed",
2786             "stayed" => "stayed",
2787             "staying" => "stayed",
2788             "stays" => "stayed",
2789             "steal" => "stolen",
2790             "stealing" => "stolen",
2791             "steals" => "stolen",
2792             "sting" => "stung",
2793             "stinging" => "stung",
2794             "stings" => "stung",
2795             "stink" => "stunk",
2796             "stinking" => "stunk",
2797             "stinks" => "stunk",
2798             "stole" => "stolen",
2799             "stolen" => "stolen",
2800             "stood" => "stood",
2801             "stop" => "stopped",
2802             "stopped" => "stopped",
2803             "stopping" => "stopped",
2804             "stops" => "stopped",
2805             "strew" => "strewn",
2806             "strewed" => "strewn",
2807             "strewing" => "strewn",
2808             "strewn" => "strewn",
2809             "strews" => "strewn",
2810             "stride" => "strode",
2811             "strides" => "strode",
2812             "striding" => "strode",
2813             "strip" => "stripped",
2814             "stripped" => "stripped",
2815             "stripping" => "stripped",
2816             "strips" => "stripped",
2817             "strive" => "strived",
2818             "strived" => "strived",
2819             "strives" => "strived",
2820             "striving" => "strived",
2821             "strode" => "strode",
2822             "strove" => "strived",
2823             "stung" => "stung",
2824             "stunk" => "stunk",
2825             "sublet" => "sublet",
2826             "sublets" => "sublet",
2827             "subletting" => "sublet",
2828             "sunburn" => "sunburned",
2829             "sunburned" => "sunburned",
2830             "sunburning" => "sunburned",
2831             "sunburns" => "sunburned",
2832             "sung" => "sung",
2833             "sunk" => "sunk",
2834             "swam" => "swum",
2835             "swear" => "sworn",
2836             "swearing" => "sworn",
2837             "swears" => "sworn",
2838             "sweat" => "sweated",
2839             "sweated" => "sweated",
2840             "sweating" => "sweated",
2841             "sweats" => "sweated",
2842             "sweep" => "swept",
2843             "sweeping" => "swept",
2844             "sweeps" => "swept",
2845             "swell" => "swollen",
2846             "swelled" => "swollen",
2847             "swelling" => "swollen",
2848             "swells" => "swollen",
2849             "swept" => "swept",
2850             "swim" => "swum",
2851             "swimming" => "swum",
2852             "swims" => "swum",
2853             "swing" => "swung",
2854             "swinging" => "swung",
2855             "swings" => "swung",
2856             "swollen" => "swollen",
2857             "swore" => "sworn",
2858             "sworn" => "sworn",
2859             "swum" => "swum",
2860             "swung" => "swung",
2861             "talk" => "talked",
2862             "talked" => "talked",
2863             "talking" => "talked",
2864             "talks" => "talked",
2865             "tear" => "torn",
2866             "tearing" => "torn",
2867             "tears" => "torn",
2868             "thrive" => "thrived",
2869             "thrived" => "thrived",
2870             "thrives" => "thrived",
2871             "thriving" => "thrived",
2872             "thrust" => "thrust",
2873             "thrusting" => "thrust",
2874             "thrusts" => "thrust",
2875             "tore" => "torn",
2876             "torn" => "torn",
2877             "tread" => "trodden",
2878             "treading" => "trodden",
2879             "treads" => "trodden",
2880             "trod" => "trodden",
2881             "trodden" => "trodden",
2882             "undergo" => "undergone",
2883             "undergoes" => "undergone",
2884             "undergoing" => "undergone",
2885             "undergone" => "undergone",
2886             "understand" => "understood",
2887             "understanding" => "understood",
2888             "understands" => "understood",
2889             "understood" => "understood",
2890             "undertake" => "undertaken",
2891             "undertaken" => "undertaken",
2892             "undertakes" => "undertaken",
2893             "undertaking" => "undertaken",
2894             "undertook" => "undertaken",
2895             "underwent" => "undergone",
2896             "upset" => "upset",
2897             "upsets" => "upset",
2898             "upsetting" => "upset",
2899             "vex" => "vexed",
2900             "vexed" => "vexed",
2901             "vexes" => "vexed",
2902             "vexing" => "vexed",
2903             "wait" => "waited",
2904             "waited" => "waited",
2905             "waiting" => "waited",
2906             "waits" => "waited",
2907             "wake" => "woken",
2908             "wakes" => "woken",
2909             "waking" => "woken",
2910             "walk" => "walked",
2911             "walked" => "walked",
2912             "walking" => "walked",
2913             "walks" => "walked",
2914             "want" => "wanted",
2915             "wanted" => "wanted",
2916             "wanting" => "wanted",
2917             "wants" => "wanted",
2918             "was" => "been",
2919             "watch" => "watched",
2920             "watched" => "watched",
2921             "watches" => "watched",
2922             "watching" => "watched",
2923             "wear" => "worn",
2924             "wearing" => "worn",
2925             "wears" => "worn",
2926             "weep" => "wept",
2927             "weeping" => "wept",
2928             "weeps" => "wept",
2929             "wend" => "wended",
2930             "wended" => "wended",
2931             "wending" => "wended",
2932             "wends" => "wended",
2933             "went" => "gone",
2934             "wept" => "wept",
2935             "were" => "been",
2936             "will" => "willed",
2937             "willed" => "willed",
2938             "willing" => "willed",
2939             "win" => "won",
2940             "winning" => "won",
2941             "wins" => "won",
2942             "withdraw" => "withdrawn",
2943             "withdrawing" => "withdrawn",
2944             "withdrawn" => "withdrawn",
2945             "withdraws" => "withdrawn",
2946             "withdrew" => "withdrawn",
2947             "withheld" => "withheld",
2948             "withhold" => "withheld",
2949             "withholding" => "withheld",
2950             "withholds" => "withheld",
2951             "withstand" => "withstood",
2952             "withstanding" => "withstood",
2953             "withstands" => "withstood",
2954             "withstood" => "withstood",
2955             "woke" => "woken",
2956             "woken" => "woken",
2957             "won" => "won",
2958             "wore" => "worn",
2959             "worn" => "worn",
2960             "would" => "_",
2961             "wring" => "wrung",
2962             "wringing" => "wrung",
2963             "wrings" => "wrung",
2964             "wrung" => "wrung",
2965             };
2966              
2967             my $is_plural = {}; @{$is_plural}{values %{$plural_of} } = ();
2968             @{$is_plural}{keys %{$singular_of} } = ();
2969             @{$is_plural}{values %{$past_of} } = ();
2970             @{$is_plural}{values %{$pres_part_of} } = ();
2971             @{$is_plural}{values %{$past_part_of} } = ();
2972              
2973             my $is_singular = {}; @{$is_singular}{values %{$singular_of} } = ();
2974             @{$is_singular}{keys %{$plural_of} } = ();
2975             @{$is_singular}{values %{$past_of} } = ();
2976             @{$is_singular}{values %{$pres_part_of} } = ();
2977             @{$is_singular}{values %{$past_part_of} } = ();
2978              
2979             my $is_past = {}; @{$is_past}{values %{$past_of} } = ();
2980              
2981             my $is_past_part = {}; @{$is_past_part}{values %{$past_part_of} } = ();
2982              
2983             my $is_pres_part = {}; @{$is_pres_part}{values %{$pres_part_of} } = ();
2984              
2985             sub convert_to_plural {
2986 3670     3670 0 6253 my ($word) = @_;
2987 3670 100       10269 return $plural_of->{$word} if exists $plural_of->{$word};
2988 2817 50       6878 return $plural_of->{lc $word} if exists $plural_of->{lc $word};
2989 2817 100       6039 return $word if is_plural($word);
2990 208         337 given ($word) {
2991 208         438 when (m{(.*)bears$}i) { return "${1}bear"; }
  0         0  
2992 208         389 when (m{(.*)bids$}i) { return "${1}bid"; }
  0         0  
2993 208         387 when (m{(.*)buys$}i) { return "${1}buy"; }
  0         0  
2994 208         389 when (m{(.*)clads$}i) { return "${1}clad"; }
  0         0  
2995 208         369 when (m{(.*)cuts$}i) { return "${1}cut"; }
  0         0  
2996 208         368 when (m{(.*)does$}i) { return "${1}do"; }
  0         0  
2997 208         340 when (m{(.*)draws$}i) { return "${1}draw"; }
  0         0  
2998 208         328 when (m{(.*)feeds$}i) { return "${1}feed"; }
  0         0  
2999 208         306 when (m{(.*)freezes$}i) { return "${1}freeze"; }
  0         0  
3000 208         342 when (m{(.*)grows$}i) { return "${1}grow"; }
  0         0  
3001 208         368 when (m{(.*)hangs$}i) { return "${1}hang"; }
  0         0  
3002 208         338 when (m{(.*)hears$}i) { return "${1}hear"; }
  0         0  
3003 208         359 when (m{(.*)hides$}i) { return "${1}hide"; }
  0         0  
3004 208         314 when (m{(.*)inputs$}i) { return "${1}input"; }
  0         0  
3005 208         412 when (m{(.*)knits$}i) { return "${1}knit"; }
  0         0  
3006 208         347 when (m{(.*)lends$}i) { return "${1}lend"; }
  0         0  
3007 208         386 when (m{(.*)lets$}i) { return "${1}let"; }
  0         0  
3008 208         305 when (m{(.*)lights$}i) { return "${1}light"; }
  0         0  
3009 208         358 when (m{(.*)makes$}i) { return "${1}make"; }
  0         0  
3010 208         332 when (m{(.*)mows$}i) { return "${1}mow"; }
  0         0  
3011 208         372 when (m{(.*)pays$}i) { return "${1}pay"; }
  0         0  
3012 208         322 when (m{(.*)reads$}i) { return "${1}read"; }
  0         0  
3013 208         366 when (m{(.*)says$}i) { return "${1}say"; }
  0         0  
3014 208         381 when (m{(.*)sees$}i) { return "${1}see"; }
  0         0  
3015 208         350 when (m{(.*)sells$}i) { return "${1}sell"; }
  0         0  
3016 208         346 when (m{(.*)sends$}i) { return "${1}send"; }
  0         0  
3017 208         345 when (m{(.*)sets$}i) { return "${1}set"; }
  0         0  
3018 208         321 when (m{(.*)sews$}i) { return "${1}sew"; }
  0         0  
3019 208         315 when (m{(.*)shears$}i) { return "${1}shear"; }
  0         0  
3020 208         300 when (m{(.*)shines$}i) { return "${1}shine"; }
  0         0  
3021 208         286 when (m{(.*)shoots$}i) { return "${1}shoot"; }
  0         0  
3022 208         360 when (m{(.*)shuts$}i) { return "${1}shut"; }
  0         0  
3023 208         287 when (m{(.*)sleeps$}i) { return "${1}sleep"; }
  0         0  
3024 208         300 when (m{(.*)slings$}i) { return "${1}sling"; }
  0         0  
3025 208         330 when (m{(.*)spins$}i) { return "${1}spin"; }
  0         0  
3026 208         301 when (m{(.*)splits$}i) { return "${1}split"; }
  0         0  
3027 208         266 when (m{(.*)spreads$}i) { return "${1}spread"; }
  0         0  
3028 208         348 when (m{(.*)sticks$}i) { return "${1}stick"; }
  0         0  
3029 208         328 when (m{(.*)strikes$}i) { return "${1}strike"; }
  0         0  
3030 208         342 when (m{(.*)strings$}i) { return "${1}string"; }
  0         0  
3031 208         334 when (m{(.*)takes$}i) { return "${1}take"; }
  0         0  
3032 208         287 when (m{(.*)teaches$}i) { return "${1}teach"; }
  0         0  
3033 208         342 when (m{(.*)tells$}i) { return "${1}tell"; }
  0         0  
3034 208         275 when (m{(.*)thinks$}i) { return "${1}think"; }
  0         0  
3035 208         302 when (m{(.*)throws$}i) { return "${1}throw"; }
  0         0  
3036 208         305 when (m{(.*)tries$}i) { return "${1}try"; }
  0         0  
3037 208         342 when (m{(.*)weaves$}i) { return "${1}weave"; }
  0         0  
3038 208         341 when (m{(.*)weds$}i) { return "${1}wed"; }
  0         0  
3039 208         352 when (m{(.*)wets$}i) { return "${1}wet"; }
  0         0  
3040 208         378 when (m{(.*)winds$}i) { return "${1}wind"; }
  0         0  
3041 208         296 when (m{(.*)writes$}i) { return "${1}write"; }
  0         0  
3042 208         335 when (m{(.*)adds$}i) { return "${1}add"; }
  4         21  
3043 204         311 when (m{(.*)alights$}i) { return "${1}alight"; }
  0         0  
3044 204         303 when (m{(.*)allows$}i) { return "${1}allow"; }
  0         0  
3045 204         289 when (m{(.*)appears$}i) { return "${1}appear"; }
  0         0  
3046 204         257 when (m{(.*)believes$}i) { return "${1}believe"; }
  0         0  
3047 204         368 when (m{(.*)calls$}i) { return "${1}call"; }
  0         0  
3048 204         275 when (m{(.*)clothes$}i) { return "${1}clothe"; }
  0         0  
3049 204         266 when (m{(.*)considers$}i) { return "${1}consider"; }
  0         0  
3050 204         288 when (m{(.*)creates$}i) { return "${1}create"; }
  0         0  
3051 204         390 when (m{(.*)fits$}i) { return "${1}fit"; }
  4         23  
3052 200         263 when (m{(.*)includes$}i) { return "${1}include"; }
  0         0  
3053 200         297 when (m{(.*)melts$}i) { return "${1}melt"; }
  0         0  
3054 200         341 when (m{(.*)offers$}i) { return "${1}offer"; }
  0         0  
3055 200         321 when (m{(.*)opens$}i) { return "${1}open"; }
  0         0  
3056 200         307 when (m{(.*)plays$}i) { return "${1}play"; }
  4         21  
3057 196         309 when (m{(.*)serves$}i) { return "${1}serve"; }
  0         0  
3058 196         275 when (m{(.*)smells$}i) { return "${1}smell"; }
  0         0  
3059 196         295 when (m{(.*)spells$}i) { return "${1}spell"; }
  0         0  
3060 196         289 when (m{(.*)spills$}i) { return "${1}spill"; }
  0         0  
3061 196         348 when (m{(.*)starts$}i) { return "${1}start"; }
  0         0  
3062 196         314 when (m{(.*)turns$}i) { return "${1}turn"; }
  0         0  
3063 196         342 when (m{(.*)uses$}i) { return "${1}use"; }
  0         0  
3064 196         311 when (m{(.*)works$}i) { return "${1}work"; }
  0         0  
3065 196         327 when (m{(.*)n't$}i) { return "${1}n't"; }
  0         0  
3066 196         449 when (m{(.*[aeiou])ys$}i) { return "${1}y"; }
  12         54  
3067 184         336 when (m{(.*[aiy])nxes$}i) { return "${1}nx"; }
  4         17  
3068 180         358 when (m{(.*)ceps$}i) { return "${1}ceps"; }
  0         0  
3069 180         327 when (m{(.*[cs])hes$}i) { return "${1}h"; }
  4         17  
3070 176         330 when (m{(.*)oes$}i) { return "${1}oe"; }
  4         19  
3071 172         306 when (m{(.*)ieus$}i) { return "${1}ieu"; }
  4         19  
3072 168         295 when (m{(.*)eaus$}i) { return "${1}eau"; }
  4         17  
3073 164         326 when (m{(.*)sses$}i) { return "${1}ss"; }
  8         39  
3074 156         238 when (m{(.*)trixes$}i) { return "${1}trix"; }
  0         0  
3075 156         284 when (m{(.*)xes$}i) { return "${1}x"; }
  4         28  
3076 152         249 when (m{(.*)zzes$}i) { return "${1}zz"; }
  4         19  
3077 148         238 when (m{(.*)zes$}i) { return "${1}ze"; }
  4         19  
3078 144         254 when (m{(.*)ues$}i) { return "${1}ue"; }
  8         43  
3079 136         236 when (m{(.*)is$}i) { return "${1}i"; }
  8         43  
3080 128         248 when (m{(.*)ees$}i) { return "${1}ee"; }
  8         56  
3081 120         221 when (m{(.*)yes$}i) { return "${1}ye"; }
  4         22  
3082 116         496 when (m{(.*[au])es$}i) { return "${1}e"; }
  0         0  
3083 116         234 when (m{(.*[^b])is$}i) { return "${1}i"; }
  0         0  
3084 116         227 when (m{(.*)sses$}i) { return "${1}ss"; }
  0         0  
3085 116         204 when (m{(.*)ies$}i) { return "${1}y"; }
  8         50  
3086 108         188 when (m{(.*)ys$}i) { return "${1}y"; }
  0         0  
3087 108         224 when (m{(.*[^e])es$}i) { return "${1}e"; }
  8         35  
3088 100         207 when (m{(.*)ers$}i) { return "${1}er"; }
  4         32  
3089 96         276 when (m{(.*[^s])s$}i) { return "${1}"; }
  96         444  
3090 0         0 default { return "_"; }
  0         0  
3091             }
3092             }
3093              
3094             sub convert_to_singular {
3095 537     537 0 965 my ($word) = @_;
3096 537 100       1596 return $singular_of->{$word} if exists $singular_of->{$word};
3097 314 50       773 return $singular_of->{lc $word} if exists $singular_of->{lc $word};
3098 314 100       611 return $word if is_singular($word);
3099 52         99 given ($word) {
3100 52         122 when (m{(.*)bear$}i) { return "${1}bears"; }
  0         0  
3101 52         106 when (m{(.*)bid$}i) { return "${1}bids"; }
  0         0  
3102 52         148 when (m{(.*)buy$}i) { return "${1}buys"; }
  0         0  
3103 52         104 when (m{(.*)clad$}i) { return "${1}clads"; }
  0         0  
3104 52         108 when (m{(.*)cut$}i) { return "${1}cuts"; }
  0         0  
3105 52         100 when (m{(.*)do$}i) { return "${1}does"; }
  0         0  
3106 52         99 when (m{(.*)draw$}i) { return "${1}draws"; }
  0         0  
3107 52         93 when (m{(.*)feed$}i) { return "${1}feeds"; }
  0         0  
3108 52         86 when (m{(.*)freeze$}i) { return "${1}freezes"; }
  0         0  
3109 52         99 when (m{(.*)grow$}i) { return "${1}grows"; }
  0         0  
3110 52         98 when (m{(.*)hang$}i) { return "${1}hangs"; }
  0         0  
3111 52         106 when (m{(.*)hear$}i) { return "${1}hears"; }
  0         0  
3112 52         99 when (m{(.*)hide$}i) { return "${1}hides"; }
  0         0  
3113 52         83 when (m{(.*)input$}i) { return "${1}inputs"; }
  0         0  
3114 52         83 when (m{(.*)knit$}i) { return "${1}knits"; }
  0         0  
3115 52         90 when (m{(.*)lend$}i) { return "${1}lends"; }
  0         0  
3116 52         117 when (m{(.*)let$}i) { return "${1}lets"; }
  0         0  
3117 52         159 when (m{(.*)light$}i) { return "${1}lights"; }
  0         0  
3118 52         94 when (m{(.*)make$}i) { return "${1}makes"; }
  0         0  
3119 52         96 when (m{(.*)mow$}i) { return "${1}mows"; }
  0         0  
3120 52         100 when (m{(.*)pay$}i) { return "${1}pays"; }
  0         0  
3121 52         90 when (m{(.*)read$}i) { return "${1}reads"; }
  0         0  
3122 52         95 when (m{(.*)say$}i) { return "${1}says"; }
  0         0  
3123 52         92 when (m{(.*)see$}i) { return "${1}sees"; }
  0         0  
3124 52         91 when (m{(.*)sell$}i) { return "${1}sells"; }
  0         0  
3125 52         95 when (m{(.*)send$}i) { return "${1}sends"; }
  0         0  
3126 52         99 when (m{(.*)set$}i) { return "${1}sets"; }
  0         0  
3127 52         92 when (m{(.*)sew$}i) { return "${1}sews"; }
  0         0  
3128 52         115 when (m{(.*)shear$}i) { return "${1}shears"; }
  0         0  
3129 52         100 when (m{(.*)shine$}i) { return "${1}shines"; }
  0         0  
3130 52         89 when (m{(.*)shoot$}i) { return "${1}shoots"; }
  0         0  
3131 52         96 when (m{(.*)shut$}i) { return "${1}shuts"; }
  0         0  
3132 52         77 when (m{(.*)sleep$}i) { return "${1}sleeps"; }
  0         0  
3133 52         82 when (m{(.*)sling$}i) { return "${1}slings"; }
  0         0  
3134 52         99 when (m{(.*)spin$}i) { return "${1}spins"; }
  0         0  
3135 52         75 when (m{(.*)split$}i) { return "${1}splits"; }
  0         0  
3136 52         81 when (m{(.*)spread$}i) { return "${1}spreads"; }
  0         0  
3137 52         101 when (m{(.*)stick$}i) { return "${1}sticks"; }
  0         0  
3138 52         88 when (m{(.*)strike$}i) { return "${1}strikes"; }
  0         0  
3139 52         91 when (m{(.*)string$}i) { return "${1}strings"; }
  0         0  
3140 52         88 when (m{(.*)take$}i) { return "${1}takes"; }
  0         0  
3141 52         81 when (m{(.*)teach$}i) { return "${1}teaches"; }
  0         0  
3142 52         92 when (m{(.*)tell$}i) { return "${1}tells"; }
  0         0  
3143 52         86 when (m{(.*)think$}i) { return "${1}thinks"; }
  0         0  
3144 52         84 when (m{(.*)throw$}i) { return "${1}throws"; }
  0         0  
3145 52         102 when (m{(.*)try$}i) { return "${1}tries"; }
  0         0  
3146 52         82 when (m{(.*)weave$}i) { return "${1}weaves"; }
  0         0  
3147 52         95 when (m{(.*)wed$}i) { return "${1}weds"; }
  0         0  
3148 52         116 when (m{(.*)wet$}i) { return "${1}wets"; }
  0         0  
3149 52         88 when (m{(.*)wind$}i) { return "${1}winds"; }
  0         0  
3150 52         89 when (m{(.*)write$}i) { return "${1}writes"; }
  0         0  
3151 52         104 when (m{(.*)add$}i) { return "${1}adds"; }
  1         6  
3152 51         82 when (m{(.*)alight$}i) { return "${1}alights"; }
  0         0  
3153 51         82 when (m{(.*)allow$}i) { return "${1}allows"; }
  0         0  
3154 51         74 when (m{(.*)appear$}i) { return "${1}appears"; }
  0         0  
3155 51         74 when (m{(.*)believe$}i) { return "${1}believes"; }
  0         0  
3156 51         92 when (m{(.*)call$}i) { return "${1}calls"; }
  0         0  
3157 51         80 when (m{(.*)clothe$}i) { return "${1}clothes"; }
  0         0  
3158 51         68 when (m{(.*)consider$}i) { return "${1}considers"; }
  0         0  
3159 51         73 when (m{(.*)create$}i) { return "${1}creates"; }
  0         0  
3160 51         115 when (m{(.*)fit$}i) { return "${1}fits"; }
  1         6  
3161 50         77 when (m{(.*)include$}i) { return "${1}includes"; }
  0         0  
3162 50         94 when (m{(.*)melt$}i) { return "${1}melts"; }
  0         0  
3163 50         92 when (m{(.*)offer$}i) { return "${1}offers"; }
  0         0  
3164 50         90 when (m{(.*)open$}i) { return "${1}opens"; }
  0         0  
3165 50         91 when (m{(.*)play$}i) { return "${1}plays"; }
  1         5  
3166 49         77 when (m{(.*)serve$}i) { return "${1}serves"; }
  0         0  
3167 49         76 when (m{(.*)smell$}i) { return "${1}smells"; }
  0         0  
3168 49         88 when (m{(.*)spell$}i) { return "${1}spells"; }
  0         0  
3169 49         71 when (m{(.*)spill$}i) { return "${1}spills"; }
  0         0  
3170 49         99 when (m{(.*)start$}i) { return "${1}starts"; }
  0         0  
3171 49         96 when (m{(.*)turn$}i) { return "${1}turns"; }
  0         0  
3172 49         98 when (m{(.*)use$}i) { return "${1}uses"; }
  0         0  
3173 49         101 when (m{(.*)work$}i) { return "${1}works"; }
  0         0  
3174 49         95 when (m{(.*)n't$}i) { return "${1}n't"; }
  0         0  
3175 49         114 when (m{(.*[aeiou])y$}i) { return "${1}ys"; }
  3         14  
3176 46         93 when (m{(.*[aiy])nx$}i) { return "${1}nxes"; }
  1         6  
3177 45         96 when (m{(.*)ceps$}i) { return "${1}ceps"; }
  0         0  
3178 45         95 when (m{(.*[cs])h$}i) { return "${1}hes"; }
  1         6  
3179 44         91 when (m{(.*)oe$}i) { return "${1}oes"; }
  1         6  
3180 43         91 when (m{(.*)ieu$}i) { return "${1}ieus"; }
  1         6  
3181 42         87 when (m{(.*)eau$}i) { return "${1}eaus"; }
  1         5  
3182 41         94 when (m{(.*)ss$}i) { return "${1}sses"; }
  2         10  
3183 39         73 when (m{(.*)trix$}i) { return "${1}trixes"; }
  0         0  
3184 39         85 when (m{(.*)x$}i) { return "${1}xes"; }
  1         8  
3185 38         74 when (m{(.*)zz$}i) { return "${1}zzes"; }
  1         6  
3186 37         70 when (m{(.*)ze$}i) { return "${1}zes"; }
  1         6  
3187 36         70 when (m{(.*)ue$}i) { return "${1}ues"; }
  2         20  
3188 34         91 when (m{(.*)i$}i) { return "${1}is"; }
  2         48  
3189 32         70 when (m{(.*)ee$}i) { return "${1}ees"; }
  2         17  
3190 30         67 when (m{(.*)ye$}i) { return "${1}yes"; }
  1         8  
3191 29         68 when (m{(.*[au])e$}i) { return "${1}es"; }
  0         0  
3192 29         73 when (m{(.*[^b])i$}i) { return "${1}is"; }
  0         0  
3193 29         64 when (m{(.*)ss$}i) { return "${1}sses"; }
  0         0  
3194 29         60 when (m{(.*)y$}i) { return "${1}ies"; }
  2         14  
3195 27         52 when (m{(.*)y$}i) { return "${1}ys"; }
  0         0  
3196 27         55 when (m{(.*[^e])e$}i) { return "${1}es"; }
  2         10  
3197 25         52 when (m{(.*)er$}i) { return "${1}ers"; }
  1         11  
3198 24         57 when (m{(.*[^s])$}i) { return "${1}s"; }
  24         122  
3199 0         0 default { return "_"; }
  0         0  
3200             }
3201             }
3202              
3203             sub convert_to_past {
3204 1072     1072 0 1829 my ($word) = @_;
3205 1072 100       3516 return $past_of->{$word} if exists $past_of->{$word};
3206 260 50       591 return $past_of->{lc $word} if exists $past_of->{lc $word};
3207 260 100       466 return $word if is_past($word);
3208 154         253 given ($word) {
3209 154         263 when (m{(.*)bears$}i) { return "${1}bore"; }
  0         0  
3210 154         284 when (m{(.*)bear$}i) { return "${1}bore"; }
  0         0  
3211 154         235 when (m{(.*)bids$}i) { return "${1}bade"; }
  0         0  
3212 154         289 when (m{(.*)bid$}i) { return "${1}bade"; }
  0         0  
3213 154         242 when (m{(.*)buys$}i) { return "${1}bought"; }
  0         0  
3214 154         239 when (m{(.*)buy$}i) { return "${1}bought"; }
  0         0  
3215 154         233 when (m{(.*)clads$}i) { return "${1}clad"; }
  0         0  
3216 154         252 when (m{(.*)clad$}i) { return "${1}clad"; }
  0         0  
3217 154         246 when (m{(.*)cuts$}i) { return "${1}cut"; }
  0         0  
3218 154         243 when (m{(.*)cut$}i) { return "${1}cut"; }
  0         0  
3219 154         237 when (m{(.*)does$}i) { return "${1}did"; }
  0         0  
3220 154         274 when (m{(.*)do$}i) { return "${1}did"; }
  0         0  
3221 154         225 when (m{(.*)draws$}i) { return "${1}drew"; }
  0         0  
3222 154         253 when (m{(.*)draw$}i) { return "${1}drew"; }
  0         0  
3223 154         241 when (m{(.*)feeds$}i) { return "${1}fed"; }
  0         0  
3224 154         259 when (m{(.*)feed$}i) { return "${1}fed"; }
  0         0  
3225 154         205 when (m{(.*)freezes$}i) { return "${1}froze"; }
  0         0  
3226 154         206 when (m{(.*)freeze$}i) { return "${1}froze"; }
  0         0  
3227 154         228 when (m{(.*)grows$}i) { return "${1}grew"; }
  0         0  
3228 154         224 when (m{(.*)grow$}i) { return "${1}grew"; }
  0         0  
3229 154         525 when (m{(.*)hangs$}i) { return "${1}hung"; }
  0         0  
3230 154         235 when (m{(.*)hang$}i) { return "${1}hung"; }
  0         0  
3231 154         224 when (m{(.*)hears$}i) { return "${1}heard"; }
  0         0  
3232 154         270 when (m{(.*)hear$}i) { return "${1}heard"; }
  0         0  
3233 154         202 when (m{(.*)hides$}i) { return "${1}hid"; }
  0         0  
3234 154         230 when (m{(.*)hide$}i) { return "${1}hid"; }
  0         0  
3235 154         206 when (m{(.*)inputs$}i) { return "${1}input"; }
  0         0  
3236 154         236 when (m{(.*)input$}i) { return "${1}input"; }
  0         0  
3237 154         217 when (m{(.*)knits$}i) { return "${1}knitted"; }
  0         0  
3238 154         233 when (m{(.*)knit$}i) { return "${1}knitted"; }
  0         0  
3239 154         211 when (m{(.*)lends$}i) { return "${1}lent"; }
  0         0  
3240 154         232 when (m{(.*)lend$}i) { return "${1}lent"; }
  0         0  
3241 154         250 when (m{(.*)lets$}i) { return "${1}let"; }
  0         0  
3242 154         262 when (m{(.*)let$}i) { return "${1}let"; }
  0         0  
3243 154         218 when (m{(.*)lights$}i) { return "${1}lit"; }
  0         0  
3244 154         232 when (m{(.*)light$}i) { return "${1}lit"; }
  0         0  
3245 154         229 when (m{(.*)makes$}i) { return "${1}made"; }
  0         0  
3246 154         258 when (m{(.*)make$}i) { return "${1}made"; }
  0         0  
3247 154         241 when (m{(.*)mows$}i) { return "${1}mowed"; }
  0         0  
3248 154         246 when (m{(.*)mow$}i) { return "${1}mowed"; }
  0         0  
3249 154         260 when (m{(.*)pays$}i) { return "${1}paid"; }
  0         0  
3250 154         247 when (m{(.*)pay$}i) { return "${1}paid"; }
  0         0  
3251 154         215 when (m{(.*)reads$}i) { return "${1}read"; }
  0         0  
3252 154         241 when (m{(.*)read$}i) { return "${1}read"; }
  0         0  
3253 154         265 when (m{(.*)says$}i) { return "${1}said"; }
  0         0  
3254 154         245 when (m{(.*)say$}i) { return "${1}said"; }
  0         0  
3255 154         231 when (m{(.*)sees$}i) { return "${1}saw"; }
  0         0  
3256 154         273 when (m{(.*)see$}i) { return "${1}saw"; }
  0         0  
3257 154         239 when (m{(.*)sells$}i) { return "${1}sold"; }
  0         0  
3258 154         223 when (m{(.*)sell$}i) { return "${1}sold"; }
  0         0  
3259 154         225 when (m{(.*)sends$}i) { return "${1}sent"; }
  0         0  
3260 154         224 when (m{(.*)send$}i) { return "${1}sent"; }
  0         0  
3261 154         255 when (m{(.*)sets$}i) { return "${1}set"; }
  0         0  
3262 154         290 when (m{(.*)set$}i) { return "${1}set"; }
  0         0  
3263 154         270 when (m{(.*)sews$}i) { return "${1}sewed"; }
  0         0  
3264 154         255 when (m{(.*)sew$}i) { return "${1}sewed"; }
  0         0  
3265 154         204 when (m{(.*)shears$}i) { return "${1}sheared"; }
  0         0  
3266 154         227 when (m{(.*)shear$}i) { return "${1}sheared"; }
  0         0  
3267 154         210 when (m{(.*)shines$}i) { return "${1}shone"; }
  0         0  
3268 154         242 when (m{(.*)shine$}i) { return "${1}shone"; }
  0         0  
3269 154         205 when (m{(.*)shoots$}i) { return "${1}shot"; }
  0         0  
3270 154         224 when (m{(.*)shoot$}i) { return "${1}shot"; }
  0         0  
3271 154         260 when (m{(.*)shuts$}i) { return "${1}shut"; }
  0         0  
3272 154         235 when (m{(.*)shut$}i) { return "${1}shut"; }
  0         0  
3273 154         218 when (m{(.*)sleeps$}i) { return "${1}slept"; }
  0         0  
3274 154         212 when (m{(.*)sleep$}i) { return "${1}slept"; }
  0         0  
3275 154         202 when (m{(.*)slings$}i) { return "${1}slung"; }
  0         0  
3276 154         245 when (m{(.*)sling$}i) { return "${1}slung"; }
  0         0  
3277 154         222 when (m{(.*)spins$}i) { return "${1}spun"; }
  0         0  
3278 154         261 when (m{(.*)spin$}i) { return "${1}spun"; }
  0         0  
3279 154         213 when (m{(.*)splits$}i) { return "${1}split"; }
  0         0  
3280 154         209 when (m{(.*)split$}i) { return "${1}split"; }
  0         0  
3281 154         204 when (m{(.*)spreads$}i) { return "${1}spread"; }
  0         0  
3282 154         209 when (m{(.*)spread$}i) { return "${1}spread"; }
  0         0  
3283 154         234 when (m{(.*)sticks$}i) { return "${1}stuck"; }
  0         0  
3284 154         268 when (m{(.*)stick$}i) { return "${1}stuck"; }
  0         0  
3285 154         205 when (m{(.*)strikes$}i) { return "${1}struck"; }
  0         0  
3286 154         238 when (m{(.*)strike$}i) { return "${1}struck"; }
  0         0  
3287 154         202 when (m{(.*)strings$}i) { return "${1}strung"; }
  0         0  
3288 154         299 when (m{(.*)string$}i) { return "${1}strung"; }
  0         0  
3289 154         211 when (m{(.*)takes$}i) { return "${1}took"; }
  0         0  
3290 154         244 when (m{(.*)take$}i) { return "${1}took"; }
  0         0  
3291 154         212 when (m{(.*)teaches$}i) { return "${1}taught"; }
  0         0  
3292 154         233 when (m{(.*)teach$}i) { return "${1}taught"; }
  0         0  
3293 154         231 when (m{(.*)tells$}i) { return "${1}told"; }
  0         0  
3294 154         225 when (m{(.*)tell$}i) { return "${1}told"; }
  0         0  
3295 154         215 when (m{(.*)thinks$}i) { return "${1}thought"; }
  0         0  
3296 154         247 when (m{(.*)think$}i) { return "${1}thought"; }
  0         0  
3297 154         232 when (m{(.*)throws$}i) { return "${1}threw"; }
  0         0  
3298 154         232 when (m{(.*)throw$}i) { return "${1}threw"; }
  0         0  
3299 154         236 when (m{(.*)tries$}i) { return "${1}tried"; }
  0         0  
3300 154         267 when (m{(.*)try$}i) { return "${1}tried"; }
  0         0  
3301 154         220 when (m{(.*)weaves$}i) { return "${1}wove"; }
  0         0  
3302 154         226 when (m{(.*)weave$}i) { return "${1}wove"; }
  0         0  
3303 154         239 when (m{(.*)weds$}i) { return "${1}wed"; }
  0         0  
3304 154         247 when (m{(.*)wed$}i) { return "${1}wed"; }
  0         0  
3305 154         243 when (m{(.*)wets$}i) { return "${1}wet"; }
  0         0  
3306 154         245 when (m{(.*)wet$}i) { return "${1}wet"; }
  0         0  
3307 154         220 when (m{(.*)winds$}i) { return "${1}wound"; }
  0         0  
3308 154         261 when (m{(.*)wind$}i) { return "${1}wound"; }
  0         0  
3309 154         215 when (m{(.*)writes$}i) { return "${1}wrote"; }
  0         0  
3310 154         228 when (m{(.*)write$}i) { return "${1}wrote"; }
  0         0  
3311 154         237 when (m{(.*)adds$}i) { return "${1}added"; }
  1         6  
3312 153         266 when (m{(.*)add$}i) { return "${1}added"; }
  1         6  
3313 152         212 when (m{(.*)alights$}i) { return "${1}alighted"; }
  0         0  
3314 152         260 when (m{(.*)alight$}i) { return "${1}alighted"; }
  0         0  
3315 152         227 when (m{(.*)allows$}i) { return "${1}allowed"; }
  0         0  
3316 152         219 when (m{(.*)allow$}i) { return "${1}allowed"; }
  0         0  
3317 152         220 when (m{(.*)appears$}i) { return "${1}appeared"; }
  0         0  
3318 152         219 when (m{(.*)appear$}i) { return "${1}appeared"; }
  0         0  
3319 152         202 when (m{(.*)believes$}i) { return "${1}believed"; }
  0         0  
3320 152         206 when (m{(.*)believe$}i) { return "${1}believed"; }
  0         0  
3321 152         238 when (m{(.*)calls$}i) { return "${1}called"; }
  0         0  
3322 152         242 when (m{(.*)call$}i) { return "${1}called"; }
  0         0  
3323 152         204 when (m{(.*)clothes$}i) { return "${1}clothed"; }
  0         0  
3324 152         216 when (m{(.*)clothe$}i) { return "${1}clothed"; }
  0         0  
3325 152         185 when (m{(.*)considers$}i) { return "${1}considered"; }
  0         0  
3326 152         199 when (m{(.*)consider$}i) { return "${1}considered"; }
  0         0  
3327 152         198 when (m{(.*)creates$}i) { return "${1}created"; }
  0         0  
3328 152         200 when (m{(.*)create$}i) { return "${1}created"; }
  0         0  
3329 152         311 when (m{(.*)fits$}i) { return "${1}fitted"; }
  1         7  
3330 151         295 when (m{(.*)fit$}i) { return "${1}fitted"; }
  1         7  
3331 150         193 when (m{(.*)includes$}i) { return "${1}included"; }
  0         0  
3332 150         220 when (m{(.*)include$}i) { return "${1}included"; }
  0         0  
3333 150         216 when (m{(.*)melts$}i) { return "${1}melted"; }
  0         0  
3334 150         258 when (m{(.*)melt$}i) { return "${1}melted"; }
  0         0  
3335 150         214 when (m{(.*)offers$}i) { return "${1}offered"; }
  0         0  
3336 150         250 when (m{(.*)offer$}i) { return "${1}offered"; }
  0         0  
3337 150         209 when (m{(.*)opens$}i) { return "${1}opened"; }
  0         0  
3338 150         235 when (m{(.*)open$}i) { return "${1}opened"; }
  0         0  
3339 150         243 when (m{(.*)plays$}i) { return "${1}played"; }
  1         5  
3340 149         225 when (m{(.*)play$}i) { return "${1}played"; }
  1         5  
3341 148         197 when (m{(.*)serves$}i) { return "${1}served"; }
  0         0  
3342 148         226 when (m{(.*)serve$}i) { return "${1}served"; }
  0         0  
3343 148         196 when (m{(.*)smells$}i) { return "${1}smelled"; }
  0         0  
3344 148         225 when (m{(.*)smell$}i) { return "${1}smelled"; }
  0         0  
3345 148         211 when (m{(.*)spells$}i) { return "${1}spelled"; }
  0         0  
3346 148         230 when (m{(.*)spell$}i) { return "${1}spelled"; }
  0         0  
3347 148         208 when (m{(.*)spills$}i) { return "${1}spilled"; }
  0         0  
3348 148         227 when (m{(.*)spill$}i) { return "${1}spilled"; }
  0         0  
3349 148         209 when (m{(.*)starts$}i) { return "${1}started"; }
  0         0  
3350 148         260 when (m{(.*)start$}i) { return "${1}started"; }
  0         0  
3351 148         220 when (m{(.*)turns$}i) { return "${1}turned"; }
  0         0  
3352 148         231 when (m{(.*)turn$}i) { return "${1}turned"; }
  0         0  
3353 148         234 when (m{(.*)uses$}i) { return "${1}used"; }
  0         0  
3354 148         228 when (m{(.*)use$}i) { return "${1}used"; }
  0         0  
3355 148         220 when (m{(.*)works$}i) { return "${1}worked"; }
  0         0  
3356 148         237 when (m{(.*)work$}i) { return "${1}worked"; }
  0         0  
3357 148         235 when (m{(.*)n't$}i) { return "${1}n't"; }
  0         0  
3358 148         265 when (m{(.*)n't$}i) { return "${1}n't"; }
  0         0  
3359 148         274 when (m{(.*[aeiou])ys$}i) { return "${1}yed"; }
  3         16  
3360 145         263 when (m{(.*[aeiou])y$}i) { return "${1}yed"; }
  3         15  
3361 142         229 when (m{(.*[aiy])nxes$}i) { return "${1}nxed"; }
  1         6  
3362 141         260 when (m{(.*[aiy])nx$}i) { return "${1}nxed"; }
  1         6  
3363 140         229 when (m{(.*)ceps$}i) { return "${1}cepsed"; }
  2         9  
3364 138         221 when (m{(.*)ceps$}i) { return "${1}cepsed"; }
  0         0  
3365 138         254 when (m{(.*[cs])hes$}i) { return "${1}hed"; }
  1         6  
3366 137         228 when (m{(.*[cs])h$}i) { return "${1}hed"; }
  1         5  
3367 136         228 when (m{(.*)oes$}i) { return "${1}oed"; }
  1         6  
3368 135         217 when (m{(.*)oe$}i) { return "${1}oed"; }
  1         5  
3369 134         224 when (m{(.*)ieus$}i) { return "${1}ieued"; }
  1         6  
3370 133         217 when (m{(.*)ieu$}i) { return "${1}ieued"; }
  1         6  
3371 132         217 when (m{(.*)eaus$}i) { return "${1}eaued"; }
  1         6  
3372 131         196 when (m{(.*)eau$}i) { return "${1}eaued"; }
  1         5  
3373 130         243 when (m{(.*)sses$}i) { return "${1}ssed"; }
  2         13  
3374 128         247 when (m{(.*)ss$}i) { return "${1}ssed"; }
  2         12  
3375 126         169 when (m{(.*)trixes$}i) { return "${1}trixed"; }
  0         0  
3376 126         200 when (m{(.*)trix$}i) { return "${1}trixed"; }
  0         0  
3377 126         210 when (m{(.*)xes$}i) { return "${1}xed"; }
  1         5  
3378 125         213 when (m{(.*)x$}i) { return "${1}xed"; }
  1         6  
3379 124         228 when (m{(.*)zzes$}i) { return "${1}zzed"; }
  1         6  
3380 123         210 when (m{(.*)zz$}i) { return "${1}zzed"; }
  1         6  
3381 122         205 when (m{(.*)zes$}i) { return "${1}zed"; }
  1         7  
3382 121         190 when (m{(.*)ze$}i) { return "${1}zed"; }
  1         7  
3383 120         197 when (m{(.*)ues$}i) { return "${1}ued"; }
  2         10  
3384 118         214 when (m{(.*)ue$}i) { return "${1}ued"; }
  2         9  
3385 116         203 when (m{(.*)is$}i) { return "${1}ied"; }
  2         12  
3386 114         208 when (m{(.*)i$}i) { return "${1}ied"; }
  2         12  
3387 112         195 when (m{(.*)ees$}i) { return "${1}eed"; }
  2         17  
3388 110         197 when (m{(.*)ee$}i) { return "${1}eed"; }
  2         18  
3389 108         176 when (m{(.*)yes$}i) { return "${1}yed"; }
  1         6  
3390 107         182 when (m{(.*)ye$}i) { return "${1}yed"; }
  1         5  
3391 106         219 when (m{(.*[au])es$}i) { return "${1}ed"; }
  0         0  
3392 106         190 when (m{(.*[au])e$}i) { return "${1}ed"; }
  0         0  
3393 106         199 when (m{(.*[^b])is$}i) { return "${1}ied"; }
  0         0  
3394 106         197 when (m{(.*[^b])i$}i) { return "${1}ied"; }
  0         0  
3395 106         200 when (m{(.*)sses$}i) { return "${1}ssed"; }
  0         0  
3396 106         186 when (m{(.*)ss$}i) { return "${1}ssed"; }
  0         0  
3397 106         183 when (m{(.*)ies$}i) { return "${1}ied"; }
  2         16  
3398 104         168 when (m{(.*)y$}i) { return "${1}ied"; }
  2         12  
3399 102         202 when (m{(.*)ys$}i) { return "${1}yed"; }
  0         0  
3400 102         177 when (m{(.*)y$}i) { return "${1}yed"; }
  0         0  
3401 102         196 when (m{(.*[^e])es$}i) { return "${1}ed"; }
  2         12  
3402 100         178 when (m{(.*[^e])e$}i) { return "${1}ed"; }
  2         12  
3403 98         180 when (m{(.*)ers$}i) { return "${1}ered"; }
  1         11  
3404 97         180 when (m{(.*)er$}i) { return "${1}ered"; }
  1         11  
3405 96         133 default { return "_"; }
  96         299  
3406             }
3407             }
3408              
3409             sub convert_to_pres_part {
3410 1023     1023 0 1840 my ($word) = @_;
3411 1023 100       3584 return $pres_part_of->{$word} if exists $pres_part_of->{$word};
3412 158 50       381 return $pres_part_of->{lc $word} if exists $pres_part_of->{lc $word};
3413 158 100       300 return $word if is_pres_part($word);
3414 106         182 given ($word) {
3415 106         186 when (m{(.*)bears$}i) { return "${1}bearing"; }
  0         0  
3416 106         252 when (m{(.*)bear$}i) { return "${1}bearing"; }
  0         0  
3417 106         185 when (m{(.*)bids$}i) { return "${1}bidding"; }
  0         0  
3418 106         230 when (m{(.*)bid$}i) { return "${1}bidding"; }
  0         0  
3419 106         192 when (m{(.*)buys$}i) { return "${1}buying"; }
  0         0  
3420 106         179 when (m{(.*)buy$}i) { return "${1}buying"; }
  0         0  
3421 106         178 when (m{(.*)clads$}i) { return "${1}cladding"; }
  0         0  
3422 106         177 when (m{(.*)clad$}i) { return "${1}cladding"; }
  0         0  
3423 106         176 when (m{(.*)cuts$}i) { return "${1}cutting"; }
  0         0  
3424 106         184 when (m{(.*)cut$}i) { return "${1}cutting"; }
  0         0  
3425 106         192 when (m{(.*)does$}i) { return "${1}doing"; }
  0         0  
3426 106         197 when (m{(.*)do$}i) { return "${1}doing"; }
  0         0  
3427 106         171 when (m{(.*)draws$}i) { return "${1}drawing"; }
  0         0  
3428 106         188 when (m{(.*)draw$}i) { return "${1}drawing"; }
  0         0  
3429 106         186 when (m{(.*)feeds$}i) { return "${1}feeding"; }
  0         0  
3430 106         182 when (m{(.*)feed$}i) { return "${1}feeding"; }
  0         0  
3431 106         137 when (m{(.*)freezes$}i) { return "${1}freezing"; }
  0         0  
3432 106         156 when (m{(.*)freeze$}i) { return "${1}freezing"; }
  0         0  
3433 106         135 when (m{(.*)grows$}i) { return "${1}growing"; }
  0         0  
3434 106         191 when (m{(.*)grow$}i) { return "${1}growing"; }
  0         0  
3435 106         147 when (m{(.*)hangs$}i) { return "${1}hanging"; }
  0         0  
3436 106         164 when (m{(.*)hang$}i) { return "${1}hanging"; }
  0         0  
3437 106         166 when (m{(.*)hears$}i) { return "${1}hearing"; }
  0         0  
3438 106         162 when (m{(.*)hear$}i) { return "${1}hearing"; }
  0         0  
3439 106         149 when (m{(.*)hides$}i) { return "${1}hiding"; }
  0         0  
3440 106         182 when (m{(.*)hide$}i) { return "${1}hiding"; }
  0         0  
3441 106         150 when (m{(.*)inputs$}i) { return "${1}inputting"; }
  0         0  
3442 106         178 when (m{(.*)input$}i) { return "${1}inputting"; }
  0         0  
3443 106         146 when (m{(.*)knits$}i) { return "${1}knitting"; }
  0         0  
3444 106         185 when (m{(.*)knit$}i) { return "${1}knitting"; }
  0         0  
3445 106         160 when (m{(.*)lends$}i) { return "${1}lending"; }
  0         0  
3446 106         172 when (m{(.*)lend$}i) { return "${1}lending"; }
  0         0  
3447 106         216 when (m{(.*)lets$}i) { return "${1}letting"; }
  0         0  
3448 106         193 when (m{(.*)let$}i) { return "${1}letting"; }
  0         0  
3449 106         204 when (m{(.*)lights$}i) { return "${1}lighting"; }
  0         0  
3450 106         184 when (m{(.*)light$}i) { return "${1}lighting"; }
  0         0  
3451 106         149 when (m{(.*)makes$}i) { return "${1}making"; }
  0         0  
3452 106         166 when (m{(.*)make$}i) { return "${1}making"; }
  0         0  
3453 106         157 when (m{(.*)mows$}i) { return "${1}mowing"; }
  0         0  
3454 106         188 when (m{(.*)mow$}i) { return "${1}mowing"; }
  0         0  
3455 106         187 when (m{(.*)pays$}i) { return "${1}paying"; }
  0         0  
3456 106         185 when (m{(.*)pay$}i) { return "${1}paying"; }
  0         0  
3457 106         154 when (m{(.*)reads$}i) { return "${1}reading"; }
  0         0  
3458 106         172 when (m{(.*)read$}i) { return "${1}reading"; }
  0         0  
3459 106         166 when (m{(.*)says$}i) { return "${1}saying"; }
  0         0  
3460 106         208 when (m{(.*)say$}i) { return "${1}saying"; }
  0         0  
3461 106         167 when (m{(.*)sees$}i) { return "${1}seeing"; }
  0         0  
3462 106         178 when (m{(.*)see$}i) { return "${1}seeing"; }
  0         0  
3463 106         173 when (m{(.*)sells$}i) { return "${1}selling"; }
  0         0  
3464 106         192 when (m{(.*)sell$}i) { return "${1}selling"; }
  0         0  
3465 106         143 when (m{(.*)sends$}i) { return "${1}sending"; }
  0         0  
3466 106         156 when (m{(.*)send$}i) { return "${1}sending"; }
  0         0  
3467 106         177 when (m{(.*)sets$}i) { return "${1}setting"; }
  0         0  
3468 106         180 when (m{(.*)set$}i) { return "${1}setting"; }
  0         0  
3469 106         172 when (m{(.*)sews$}i) { return "${1}sewing"; }
  0         0  
3470 106         198 when (m{(.*)sew$}i) { return "${1}sewing"; }
  0         0  
3471 106         153 when (m{(.*)shears$}i) { return "${1}shearing"; }
  0         0  
3472 106         183 when (m{(.*)shear$}i) { return "${1}shearing"; }
  0         0  
3473 106         159 when (m{(.*)shines$}i) { return "${1}shining"; }
  0         0  
3474 106         168 when (m{(.*)shine$}i) { return "${1}shining"; }
  0         0  
3475 106         144 when (m{(.*)shoots$}i) { return "${1}shooting"; }
  0         0  
3476 106         149 when (m{(.*)shoot$}i) { return "${1}shooting"; }
  0         0  
3477 106         153 when (m{(.*)shuts$}i) { return "${1}shutting"; }
  0         0  
3478 106         164 when (m{(.*)shut$}i) { return "${1}shutting"; }
  0         0  
3479 106         146 when (m{(.*)sleeps$}i) { return "${1}sleeping"; }
  0         0  
3480 106         158 when (m{(.*)sleep$}i) { return "${1}sleeping"; }
  0         0  
3481 106         143 when (m{(.*)slings$}i) { return "${1}slinging"; }
  0         0  
3482 106         155 when (m{(.*)sling$}i) { return "${1}slinging"; }
  0         0  
3483 106         172 when (m{(.*)spins$}i) { return "${1}spinning"; }
  0         0  
3484 106         176 when (m{(.*)spin$}i) { return "${1}spinning"; }
  0         0  
3485 106         140 when (m{(.*)splits$}i) { return "${1}splitting"; }
  0         0  
3486 106         162 when (m{(.*)split$}i) { return "${1}splitting"; }
  0         0  
3487 106         129 when (m{(.*)spreads$}i) { return "${1}spreading"; }
  0         0  
3488 106         141 when (m{(.*)spread$}i) { return "${1}spreading"; }
  0         0  
3489 106         158 when (m{(.*)sticks$}i) { return "${1}sticking"; }
  0         0  
3490 106         183 when (m{(.*)stick$}i) { return "${1}sticking"; }
  0         0  
3491 106         180 when (m{(.*)strikes$}i) { return "${1}striking"; }
  0         0  
3492 106         189 when (m{(.*)strike$}i) { return "${1}striking"; }
  0         0  
3493 106         153 when (m{(.*)strings$}i) { return "${1}stringing"; }
  0         0  
3494 106         156 when (m{(.*)string$}i) { return "${1}stringing"; }
  0         0  
3495 106         140 when (m{(.*)takes$}i) { return "${1}taking"; }
  0         0  
3496 106         207 when (m{(.*)take$}i) { return "${1}taking"; }
  0         0  
3497 106         155 when (m{(.*)teaches$}i) { return "${1}teaching"; }
  0         0  
3498 106         145 when (m{(.*)teach$}i) { return "${1}teaching"; }
  0         0  
3499 106         154 when (m{(.*)tells$}i) { return "${1}telling"; }
  0         0  
3500 106         164 when (m{(.*)tell$}i) { return "${1}telling"; }
  0         0  
3501 106         146 when (m{(.*)thinks$}i) { return "${1}thinking"; }
  0         0  
3502 106         140 when (m{(.*)think$}i) { return "${1}thinking"; }
  0         0  
3503 106         143 when (m{(.*)throws$}i) { return "${1}throwing"; }
  0         0  
3504 106         154 when (m{(.*)throw$}i) { return "${1}throwing"; }
  0         0  
3505 106         161 when (m{(.*)tries$}i) { return "${1}trying"; }
  0         0  
3506 106         175 when (m{(.*)try$}i) { return "${1}trying"; }
  0         0  
3507 106         151 when (m{(.*)weaves$}i) { return "${1}weaving"; }
  0         0  
3508 106         166 when (m{(.*)weave$}i) { return "${1}weaving"; }
  0         0  
3509 106         179 when (m{(.*)weds$}i) { return "${1}wedding"; }
  0         0  
3510 106         173 when (m{(.*)wed$}i) { return "${1}wedding"; }
  0         0  
3511 106         177 when (m{(.*)wets$}i) { return "${1}wetting"; }
  0         0  
3512 106         162 when (m{(.*)wet$}i) { return "${1}wetting"; }
  0         0  
3513 106         142 when (m{(.*)winds$}i) { return "${1}winding"; }
  0         0  
3514 106         168 when (m{(.*)wind$}i) { return "${1}winding"; }
  0         0  
3515 106         143 when (m{(.*)writes$}i) { return "${1}writing"; }
  0         0  
3516 106         148 when (m{(.*)write$}i) { return "${1}writing"; }
  0         0  
3517 106         164 when (m{(.*)adds$}i) { return "${1}adding"; }
  0         0  
3518 106         186 when (m{(.*)add$}i) { return "${1}adding"; }
  2         11  
3519 104         178 when (m{(.*)alights$}i) { return "${1}alighting"; }
  0         0  
3520 104         148 when (m{(.*)alight$}i) { return "${1}alighting"; }
  0         0  
3521 104         153 when (m{(.*)allows$}i) { return "${1}allowing"; }
  0         0  
3522 104         146 when (m{(.*)allow$}i) { return "${1}allowing"; }
  0         0  
3523 104         132 when (m{(.*)appears$}i) { return "${1}appearing"; }
  0         0  
3524 104         147 when (m{(.*)appear$}i) { return "${1}appearing"; }
  0         0  
3525 104         134 when (m{(.*)believes$}i) { return "${1}believing"; }
  0         0  
3526 104         140 when (m{(.*)believe$}i) { return "${1}believing"; }
  0         0  
3527 104         141 when (m{(.*)calls$}i) { return "${1}calling"; }
  0         0  
3528 104         164 when (m{(.*)call$}i) { return "${1}calling"; }
  0         0  
3529 104         139 when (m{(.*)clothes$}i) { return "${1}clothing"; }
  0         0  
3530 104         161 when (m{(.*)clothe$}i) { return "${1}clothing"; }
  0         0  
3531 104         130 when (m{(.*)considers$}i) { return "${1}considering"; }
  0         0  
3532 104         170 when (m{(.*)consider$}i) { return "${1}considering"; }
  0         0  
3533 104         141 when (m{(.*)creates$}i) { return "${1}creating"; }
  0         0  
3534 104         153 when (m{(.*)create$}i) { return "${1}creating"; }
  0         0  
3535 104         220 when (m{(.*)fits$}i) { return "${1}fitting"; }
  0         0  
3536 104         206 when (m{(.*)fit$}i) { return "${1}fitting"; }
  2         12  
3537 102         139 when (m{(.*)includes$}i) { return "${1}including"; }
  0         0  
3538 102         125 when (m{(.*)include$}i) { return "${1}including"; }
  0         0  
3539 102         138 when (m{(.*)melts$}i) { return "${1}melting"; }
  0         0  
3540 102         178 when (m{(.*)melt$}i) { return "${1}melting"; }
  0         0  
3541 102         154 when (m{(.*)offers$}i) { return "${1}offering"; }
  0         0  
3542 102         170 when (m{(.*)offer$}i) { return "${1}offering"; }
  0         0  
3543 102         137 when (m{(.*)opens$}i) { return "${1}opening"; }
  0         0  
3544 102         158 when (m{(.*)open$}i) { return "${1}opening"; }
  0         0  
3545 102         200 when (m{(.*)plays$}i) { return "${1}playing"; }
  0         0  
3546 102         163 when (m{(.*)play$}i) { return "${1}playing"; }
  2         10  
3547 100         137 when (m{(.*)serves$}i) { return "${1}serving"; }
  0         0  
3548 100         143 when (m{(.*)serve$}i) { return "${1}serving"; }
  0         0  
3549 100         134 when (m{(.*)smells$}i) { return "${1}smelling"; }
  0         0  
3550 100         143 when (m{(.*)smell$}i) { return "${1}smelling"; }
  0         0  
3551 100         145 when (m{(.*)spells$}i) { return "${1}spelling"; }
  0         0  
3552 100         149 when (m{(.*)spell$}i) { return "${1}spelling"; }
  0         0  
3553 100         129 when (m{(.*)spills$}i) { return "${1}spilling"; }
  0         0  
3554 100         164 when (m{(.*)spill$}i) { return "${1}spilling"; }
  0         0  
3555 100         136 when (m{(.*)starts$}i) { return "${1}starting"; }
  0         0  
3556 100         179 when (m{(.*)start$}i) { return "${1}starting"; }
  0         0  
3557 100         134 when (m{(.*)turns$}i) { return "${1}turning"; }
  0         0  
3558 100         153 when (m{(.*)turn$}i) { return "${1}turning"; }
  0         0  
3559 100         147 when (m{(.*)uses$}i) { return "${1}using"; }
  0         0  
3560 100         181 when (m{(.*)use$}i) { return "${1}using"; }
  0         0  
3561 100         137 when (m{(.*)works$}i) { return "${1}working"; }
  0         0  
3562 100         155 when (m{(.*)work$}i) { return "${1}working"; }
  0         0  
3563 100         197 when (m{(.*[aeiou])ys$}i) { return "${1}ying"; }
  0         0  
3564 100         197 when (m{(.*[aeiou])y$}i) { return "${1}ying"; }
  6         27  
3565 94         145 when (m{(.*[aiy])nxes$}i) { return "${1}nxing"; }
  0         0  
3566 94         172 when (m{(.*[aiy])nx$}i) { return "${1}nxing"; }
  2         11  
3567 92         156 when (m{(.*)ceps$}i) { return "${1}cepsing"; }
  2         10  
3568 90         153 when (m{(.*)ceps$}i) { return "${1}cepsing"; }
  0         0  
3569 90         143 when (m{(.*[cs])hes$}i) { return "${1}hing"; }
  0         0  
3570 90         167 when (m{(.*[cs])h$}i) { return "${1}hing"; }
  2         9  
3571 88         245 when (m{(.*)oes$}i) { return "${1}oeing"; }
  0         0  
3572 88         153 when (m{(.*)oe$}i) { return "${1}oeing"; }
  2         11  
3573 86         139 when (m{(.*)ieus$}i) { return "${1}ieuing"; }
  0         0  
3574 86         162 when (m{(.*)ieu$}i) { return "${1}ieuing"; }
  2         10  
3575 84         147 when (m{(.*)eaus$}i) { return "${1}eauing"; }
  0         0  
3576 84         150 when (m{(.*)eau$}i) { return "${1}eauing"; }
  2         9  
3577 82         162 when (m{(.*)sses$}i) { return "${1}ssing"; }
  0         0  
3578 82         151 when (m{(.*)ss$}i) { return "${1}ssing"; }
  4         24  
3579 78         107 when (m{(.*)trixes$}i) { return "${1}trixing"; }
  0         0  
3580 78         121 when (m{(.*)trix$}i) { return "${1}trixing"; }
  0         0  
3581 78         145 when (m{(.*)xes$}i) { return "${1}xing"; }
  0         0  
3582 78         136 when (m{(.*)x$}i) { return "${1}xing"; }
  2         10  
3583 76         133 when (m{(.*)zzes$}i) { return "${1}zzing"; }
  0         0  
3584 76         138 when (m{(.*)zz$}i) { return "${1}zzing"; }
  2         9  
3585 74         133 when (m{(.*)zes$}i) { return "${1}zing"; }
  0         0  
3586 74         123 when (m{(.*)ze$}i) { return "${1}zing"; }
  2         13  
3587 72         113 when (m{(.*)ues$}i) { return "${1}ueing"; }
  0         0  
3588 72         123 when (m{(.*)ue$}i) { return "${1}ueing"; }
  4         21  
3589 68         133 when (m{(.*)is$}i) { return "${1}iing"; }
  0         0  
3590 68         147 when (m{(.*)i$}i) { return "${1}iing"; }
  4         25  
3591 64         119 when (m{(.*)ees$}i) { return "${1}eeing"; }
  0         0  
3592 64         118 when (m{(.*)ee$}i) { return "${1}eeing"; }
  4         29  
3593 60         101 when (m{(.*)yes$}i) { return "${1}yeing"; }
  0         0  
3594 60         104 when (m{(.*)ye$}i) { return "${1}yeing"; }
  2         11  
3595 58         100 when (m{(.*[au])es$}i) { return "${1}ing"; }
  0         0  
3596 58         99 when (m{(.*[au])e$}i) { return "${1}ing"; }
  0         0  
3597 58         124 when (m{(.*[^b])is$}i) { return "${1}ing"; }
  0         0  
3598 58         130 when (m{(.*[^b])i$}i) { return "${1}ing"; }
  0         0  
3599 58         105 when (m{(.*)sses$}i) { return "${1}ssing"; }
  0         0  
3600 58         108 when (m{(.*)ss$}i) { return "${1}ssing"; }
  0         0  
3601 58         105 when (m{(.*)ies$}i) { return "${1}ying"; }
  0         0  
3602 58         96 when (m{(.*)y$}i) { return "${1}ying"; }
  4         26  
3603 54         94 when (m{(.*)ys$}i) { return "${1}ying"; }
  0         0  
3604 54         93 when (m{(.*)y$}i) { return "${1}ying"; }
  0         0  
3605 54         113 when (m{(.*[^e])es$}i) { return "${1}ing"; }
  0         0  
3606 54         107 when (m{(.*[^e])e$}i) { return "${1}ing"; }
  4         20  
3607 50         86 when (m{(.*)ers$}i) { return "${1}ering"; }
  0         0  
3608 50         105 when (m{(.*)er$}i) { return "${1}ering"; }
  2         17  
3609 48         65 default { return "_"; }
  48         161  
3610             }
3611             }
3612              
3613             sub convert_to_past_part {
3614 1082     1082 0 1732 my ($word) = @_;
3615 1082 100       3307 return $past_part_of->{$word} if exists $past_part_of->{$word};
3616 212 50       462 return $past_part_of->{lc $word} if exists $past_part_of->{lc $word};
3617 212 100       438 return $word if is_past_part($word);
3618 106         185 given ($word) {
3619 106         197 when (m{(.*)bears$}i) { return "${1}borne"; }
  0         0  
3620 106         189 when (m{(.*)bear$}i) { return "${1}borne"; }
  0         0  
3621 106         183 when (m{(.*)bids$}i) { return "${1}bidden"; }
  0         0  
3622 106         208 when (m{(.*)bid$}i) { return "${1}bidden"; }
  0         0  
3623 106         185 when (m{(.*)buys$}i) { return "${1}bought"; }
  0         0  
3624 106         188 when (m{(.*)buy$}i) { return "${1}bought"; }
  0         0  
3625 106         163 when (m{(.*)clads$}i) { return "${1}clad"; }
  0         0  
3626 106         182 when (m{(.*)clad$}i) { return "${1}clad"; }
  0         0  
3627 106         175 when (m{(.*)cuts$}i) { return "${1}cut"; }
  0         0  
3628 106         185 when (m{(.*)cut$}i) { return "${1}cut"; }
  0         0  
3629 106         178 when (m{(.*)does$}i) { return "${1}done"; }
  0         0  
3630 106         198 when (m{(.*)do$}i) { return "${1}done"; }
  0         0  
3631 106         152 when (m{(.*)draws$}i) { return "${1}drawn"; }
  0         0  
3632 106         172 when (m{(.*)draw$}i) { return "${1}drawn"; }
  0         0  
3633 106         224 when (m{(.*)feeds$}i) { return "${1}fed"; }
  0         0  
3634 106         167 when (m{(.*)feed$}i) { return "${1}fed"; }
  0         0  
3635 106         144 when (m{(.*)freezes$}i) { return "${1}frozen"; }
  0         0  
3636 106         150 when (m{(.*)freeze$}i) { return "${1}frozen"; }
  0         0  
3637 106         146 when (m{(.*)grows$}i) { return "${1}grown"; }
  0         0  
3638 106         180 when (m{(.*)grow$}i) { return "${1}grown"; }
  0         0  
3639 106         196 when (m{(.*)hangs$}i) { return "${1}hung"; }
  0         0  
3640 106         182 when (m{(.*)hang$}i) { return "${1}hung"; }
  0         0  
3641 106         164 when (m{(.*)hears$}i) { return "${1}heard"; }
  0         0  
3642 106         162 when (m{(.*)hear$}i) { return "${1}heard"; }
  0         0  
3643 106         163 when (m{(.*)hides$}i) { return "${1}hidden"; }
  0         0  
3644 106         174 when (m{(.*)hide$}i) { return "${1}hidden"; }
  0         0  
3645 106         153 when (m{(.*)inputs$}i) { return "${1}input"; }
  0         0  
3646 106         150 when (m{(.*)input$}i) { return "${1}input"; }
  0         0  
3647 106         175 when (m{(.*)knits$}i) { return "${1}knitted"; }
  0         0  
3648 106         162 when (m{(.*)knit$}i) { return "${1}knitted"; }
  0         0  
3649 106         153 when (m{(.*)lends$}i) { return "${1}lent"; }
  0         0  
3650 106         180 when (m{(.*)lend$}i) { return "${1}lent"; }
  0         0  
3651 106         175 when (m{(.*)lets$}i) { return "${1}let"; }
  0         0  
3652 106         200 when (m{(.*)let$}i) { return "${1}let"; }
  0         0  
3653 106         189 when (m{(.*)lights$}i) { return "${1}lit"; }
  0         0  
3654 106         154 when (m{(.*)light$}i) { return "${1}lit"; }
  0         0  
3655 106         165 when (m{(.*)makes$}i) { return "${1}made"; }
  0         0  
3656 106         180 when (m{(.*)make$}i) { return "${1}made"; }
  0         0  
3657 106         158 when (m{(.*)mows$}i) { return "${1}mown"; }
  0         0  
3658 106         187 when (m{(.*)mow$}i) { return "${1}mown"; }
  0         0  
3659 106         185 when (m{(.*)pays$}i) { return "${1}paid"; }
  0         0  
3660 106         186 when (m{(.*)pay$}i) { return "${1}paid"; }
  0         0  
3661 106         171 when (m{(.*)reads$}i) { return "${1}read"; }
  0         0  
3662 106         177 when (m{(.*)read$}i) { return "${1}read"; }
  0         0  
3663 106         211 when (m{(.*)says$}i) { return "${1}said"; }
  0         0  
3664 106         193 when (m{(.*)say$}i) { return "${1}said"; }
  0         0  
3665 106         162 when (m{(.*)sees$}i) { return "${1}seen"; }
  0         0  
3666 106         187 when (m{(.*)see$}i) { return "${1}seen"; }
  0         0  
3667 106         151 when (m{(.*)sells$}i) { return "${1}sold"; }
  0         0  
3668 106         170 when (m{(.*)sell$}i) { return "${1}sold"; }
  0         0  
3669 106         164 when (m{(.*)sends$}i) { return "${1}sent"; }
  0         0  
3670 106         169 when (m{(.*)send$}i) { return "${1}sent"; }
  0         0  
3671 106         191 when (m{(.*)sets$}i) { return "${1}set"; }
  0         0  
3672 106         167 when (m{(.*)set$}i) { return "${1}set"; }
  0         0  
3673 106         173 when (m{(.*)sews$}i) { return "${1}sewn"; }
  0         0  
3674 106         176 when (m{(.*)sew$}i) { return "${1}sewn"; }
  0         0  
3675 106         164 when (m{(.*)shears$}i) { return "${1}shorn"; }
  0         0  
3676 106         169 when (m{(.*)shear$}i) { return "${1}shorn"; }
  0         0  
3677 106         139 when (m{(.*)shines$}i) { return "${1}shone"; }
  0         0  
3678 106         158 when (m{(.*)shine$}i) { return "${1}shone"; }
  0         0  
3679 106         152 when (m{(.*)shoots$}i) { return "${1}shot"; }
  0         0  
3680 106         180 when (m{(.*)shoot$}i) { return "${1}shot"; }
  0         0  
3681 106         155 when (m{(.*)shuts$}i) { return "${1}shut"; }
  0         0  
3682 106         166 when (m{(.*)shut$}i) { return "${1}shut"; }
  0         0  
3683 106         158 when (m{(.*)sleeps$}i) { return "${1}slept"; }
  0         0  
3684 106         136 when (m{(.*)sleep$}i) { return "${1}slept"; }
  0         0  
3685 106         147 when (m{(.*)slings$}i) { return "${1}slung"; }
  0         0  
3686 106         141 when (m{(.*)sling$}i) { return "${1}slung"; }
  0         0  
3687 106         144 when (m{(.*)spins$}i) { return "${1}spun"; }
  0         0  
3688 106         184 when (m{(.*)spin$}i) { return "${1}spun"; }
  0         0  
3689 106         152 when (m{(.*)splits$}i) { return "${1}split"; }
  0         0  
3690 106         142 when (m{(.*)split$}i) { return "${1}split"; }
  0         0  
3691 106         172 when (m{(.*)spreads$}i) { return "${1}spread"; }
  0         0  
3692 106         161 when (m{(.*)spread$}i) { return "${1}spread"; }
  0         0  
3693 106         153 when (m{(.*)sticks$}i) { return "${1}stuck"; }
  0         0  
3694 106         208 when (m{(.*)stick$}i) { return "${1}stuck"; }
  0         0  
3695 106         147 when (m{(.*)strikes$}i) { return "${1}struck"; }
  0         0  
3696 106         155 when (m{(.*)strike$}i) { return "${1}struck"; }
  0         0  
3697 106         163 when (m{(.*)strings$}i) { return "${1}strung"; }
  0         0  
3698 106         152 when (m{(.*)string$}i) { return "${1}strung"; }
  0         0  
3699 106         154 when (m{(.*)takes$}i) { return "${1}taken"; }
  0         0  
3700 106         178 when (m{(.*)take$}i) { return "${1}taken"; }
  0         0  
3701 106         151 when (m{(.*)teaches$}i) { return "${1}taught"; }
  0         0  
3702 106         146 when (m{(.*)teach$}i) { return "${1}taught"; }
  0         0  
3703 106         159 when (m{(.*)tells$}i) { return "${1}told"; }
  0         0  
3704 106         171 when (m{(.*)tell$}i) { return "${1}told"; }
  0         0  
3705 106         143 when (m{(.*)thinks$}i) { return "${1}thought"; }
  0         0  
3706 106         153 when (m{(.*)think$}i) { return "${1}thought"; }
  0         0  
3707 106         150 when (m{(.*)throws$}i) { return "${1}thrown"; }
  0         0  
3708 106         146 when (m{(.*)throw$}i) { return "${1}thrown"; }
  0         0  
3709 106         151 when (m{(.*)tries$}i) { return "${1}tried"; }
  0         0  
3710 106         203 when (m{(.*)try$}i) { return "${1}tried"; }
  0         0  
3711 106         146 when (m{(.*)weaves$}i) { return "${1}woven"; }
  0         0  
3712 106         143 when (m{(.*)weave$}i) { return "${1}woven"; }
  0         0  
3713 106         186 when (m{(.*)weds$}i) { return "${1}wed"; }
  0         0  
3714 106         187 when (m{(.*)wed$}i) { return "${1}wed"; }
  0         0  
3715 106         159 when (m{(.*)wets$}i) { return "${1}wetted"; }
  0         0  
3716 106         179 when (m{(.*)wet$}i) { return "${1}wetted"; }
  0         0  
3717 106         154 when (m{(.*)winds$}i) { return "${1}wound"; }
  0         0  
3718 106         182 when (m{(.*)wind$}i) { return "${1}wound"; }
  0         0  
3719 106         144 when (m{(.*)writes$}i) { return "${1}written"; }
  0         0  
3720 106         153 when (m{(.*)write$}i) { return "${1}written"; }
  0         0  
3721 106         170 when (m{(.*)adds$}i) { return "${1}added"; }
  0         0  
3722 106         194 when (m{(.*)add$}i) { return "${1}added"; }
  2         11  
3723 104         147 when (m{(.*)alights$}i) { return "${1}alighted"; }
  0         0  
3724 104         145 when (m{(.*)alight$}i) { return "${1}alighted"; }
  0         0  
3725 104         145 when (m{(.*)allows$}i) { return "${1}allowed"; }
  0         0  
3726 104         159 when (m{(.*)allow$}i) { return "${1}allowed"; }
  0         0  
3727 104         158 when (m{(.*)appears$}i) { return "${1}appeared"; }
  0         0  
3728 104         158 when (m{(.*)appear$}i) { return "${1}appeared"; }
  0         0  
3729 104         138 when (m{(.*)believes$}i) { return "${1}believed"; }
  0         0  
3730 104         134 when (m{(.*)believe$}i) { return "${1}believed"; }
  0         0  
3731 104         151 when (m{(.*)calls$}i) { return "${1}called"; }
  0         0  
3732 104         169 when (m{(.*)call$}i) { return "${1}called"; }
  0         0  
3733 104         147 when (m{(.*)clothes$}i) { return "${1}clothed"; }
  0         0  
3734 104         146 when (m{(.*)clothe$}i) { return "${1}clothed"; }
  0         0  
3735 104         141 when (m{(.*)considers$}i) { return "${1}considered"; }
  0         0  
3736 104         145 when (m{(.*)consider$}i) { return "${1}considered"; }
  0         0  
3737 104         161 when (m{(.*)creates$}i) { return "${1}created"; }
  0         0  
3738 104         160 when (m{(.*)create$}i) { return "${1}created"; }
  0         0  
3739 104         221 when (m{(.*)fits$}i) { return "${1}fitted"; }
  0         0  
3740 104         213 when (m{(.*)fit$}i) { return "${1}fitted"; }
  2         13  
3741 102         149 when (m{(.*)includes$}i) { return "${1}included"; }
  0         0  
3742 102         137 when (m{(.*)include$}i) { return "${1}included"; }
  0         0  
3743 102         141 when (m{(.*)melts$}i) { return "${1}melted"; }
  0         0  
3744 102         168 when (m{(.*)melt$}i) { return "${1}melted"; }
  0         0  
3745 102         143 when (m{(.*)offers$}i) { return "${1}offered"; }
  0         0  
3746 102         158 when (m{(.*)offer$}i) { return "${1}offered"; }
  0         0  
3747 102         140 when (m{(.*)opens$}i) { return "${1}opened"; }
  0         0  
3748 102         157 when (m{(.*)open$}i) { return "${1}opened"; }
  0         0  
3749 102         153 when (m{(.*)plays$}i) { return "${1}played"; }
  0         0  
3750 102         175 when (m{(.*)play$}i) { return "${1}played"; }
  2         9  
3751 100         135 when (m{(.*)serves$}i) { return "${1}served"; }
  0         0  
3752 100         139 when (m{(.*)serve$}i) { return "${1}served"; }
  0         0  
3753 100         136 when (m{(.*)smells$}i) { return "${1}smelled"; }
  0         0  
3754 100         145 when (m{(.*)smell$}i) { return "${1}smelled"; }
  0         0  
3755 100         137 when (m{(.*)spells$}i) { return "${1}spelled"; }
  0         0  
3756 100         126 when (m{(.*)spell$}i) { return "${1}spelled"; }
  0         0  
3757 100         134 when (m{(.*)spills$}i) { return "${1}spilled"; }
  0         0  
3758 100         168 when (m{(.*)spill$}i) { return "${1}spilled"; }
  0         0  
3759 100         147 when (m{(.*)starts$}i) { return "${1}started"; }
  0         0  
3760 100         191 when (m{(.*)start$}i) { return "${1}started"; }
  0         0  
3761 100         144 when (m{(.*)turns$}i) { return "${1}turned"; }
  0         0  
3762 100         160 when (m{(.*)turn$}i) { return "${1}turned"; }
  0         0  
3763 100         165 when (m{(.*)uses$}i) { return "${1}used"; }
  0         0  
3764 100         179 when (m{(.*)use$}i) { return "${1}used"; }
  0         0  
3765 100         154 when (m{(.*)works$}i) { return "${1}worked"; }
  0         0  
3766 100         168 when (m{(.*)work$}i) { return "${1}worked"; }
  0         0  
3767 100         200 when (m{(.*[aeiou])ys$}i) { return "${1}yed"; }
  0         0  
3768 100         194 when (m{(.*[aeiou])y$}i) { return "${1}yed"; }
  6         25  
3769 94         140 when (m{(.*[aiy])nxes$}i) { return "${1}nxed"; }
  0         0  
3770 94         163 when (m{(.*[aiy])nx$}i) { return "${1}nxed"; }
  2         10  
3771 92         168 when (m{(.*)ceps$}i) { return "${1}cepsed"; }
  2         9  
3772 90         141 when (m{(.*)ceps$}i) { return "${1}cepsed"; }
  0         0  
3773 90         142 when (m{(.*[cs])hes$}i) { return "${1}hed"; }
  0         0  
3774 90         172 when (m{(.*[cs])h$}i) { return "${1}hed"; }
  2         11  
3775 88         154 when (m{(.*)oes$}i) { return "${1}oed"; }
  0         0  
3776 88         153 when (m{(.*)oe$}i) { return "${1}oed"; }
  2         9  
3777 86         137 when (m{(.*)ieus$}i) { return "${1}ieued"; }
  0         0  
3778 86         157 when (m{(.*)ieu$}i) { return "${1}ieued"; }
  2         9  
3779 84         151 when (m{(.*)eaus$}i) { return "${1}eaued"; }
  0         0  
3780 84         156 when (m{(.*)eau$}i) { return "${1}eaued"; }
  2         11  
3781 82         170 when (m{(.*)sses$}i) { return "${1}ssed"; }
  0         0  
3782 82         160 when (m{(.*)ss$}i) { return "${1}ssed"; }
  4         22  
3783 78         120 when (m{(.*)trixes$}i) { return "${1}trixed"; }
  0         0  
3784 78         116 when (m{(.*)trix$}i) { return "${1}trixed"; }
  0         0  
3785 78         146 when (m{(.*)xes$}i) { return "${1}xed"; }
  0         0  
3786 78         153 when (m{(.*)x$}i) { return "${1}xed"; }
  2         16  
3787 76         127 when (m{(.*)zzes$}i) { return "${1}zzed"; }
  0         0  
3788 76         135 when (m{(.*)zz$}i) { return "${1}zzed"; }
  2         11  
3789 74         126 when (m{(.*)zes$}i) { return "${1}zed"; }
  0         0  
3790 74         134 when (m{(.*)ze$}i) { return "${1}zed"; }
  2         11  
3791 72         123 when (m{(.*)ues$}i) { return "${1}ued"; }
  0         0  
3792 72         127 when (m{(.*)ue$}i) { return "${1}ued"; }
  4         19  
3793 68         125 when (m{(.*)is$}i) { return "${1}ied"; }
  0         0  
3794 68         132 when (m{(.*)i$}i) { return "${1}ied"; }
  4         20  
3795 64         104 when (m{(.*)ees$}i) { return "${1}eed"; }
  0         0  
3796 64         128 when (m{(.*)ee$}i) { return "${1}eed"; }
  4         34  
3797 60         101 when (m{(.*)yes$}i) { return "${1}yed"; }
  0         0  
3798 60         110 when (m{(.*)ye$}i) { return "${1}yed"; }
  2         11  
3799 58         113 when (m{(.*[au])es$}i) { return "${1}ed"; }
  0         0  
3800 58         107 when (m{(.*[au])e$}i) { return "${1}ed"; }
  0         0  
3801 58         126 when (m{(.*[^b])is$}i) { return "${1}ied"; }
  0         0  
3802 58         122 when (m{(.*[^b])i$}i) { return "${1}ied"; }
  0         0  
3803 58         115 when (m{(.*)sses$}i) { return "${1}ssed"; }
  0         0  
3804 58         123 when (m{(.*)ss$}i) { return "${1}ssed"; }
  0         0  
3805 58         107 when (m{(.*)ies$}i) { return "${1}ied"; }
  0         0  
3806 58         113 when (m{(.*)y$}i) { return "${1}ied"; }
  4         23  
3807 54         99 when (m{(.*)ys$}i) { return "${1}yed"; }
  0         0  
3808 54         92 when (m{(.*)y$}i) { return "${1}yed"; }
  0         0  
3809 54         115 when (m{(.*[^e])es$}i) { return "${1}ed"; }
  0         0  
3810 54         113 when (m{(.*[^e])e$}i) { return "${1}ed"; }
  4         27  
3811 50         90 when (m{(.*)ers$}i) { return "${1}ered"; }
  0         0  
3812 50         87 when (m{(.*)er$}i) { return "${1}ered"; }
  2         19  
3813 48         74 default { return "_"; }
  48         153  
3814             }
3815             }
3816              
3817             sub is_plural {
3818 3081     3081 0 4734 my ($word) = @_;
3819 3081 100       11779 return 1 if exists $is_plural->{$word};
3820 740 50       1356 return 1 if exists $is_plural->{lc $word};
3821 740 50       1477 return 0 if exists $is_singular->{$word};
3822 740 50       1281 return 0 if exists $is_singular->{lc $word};
3823 740         1147 given ($word) {
3824 740         2521 when (m{\A(.*)bear$}i) { return 1 }
  0         0  
3825 740         1564 when (m{\A(.*)bid$}i) { return 1 }
  0         0  
3826 740         1311 when (m{\A(.*)buy$}i) { return 1 }
  0         0  
3827 740         1294 when (m{\A(.*)clad$}i) { return 1 }
  0         0  
3828 740         1239 when (m{\A(.*)cut$}i) { return 1 }
  0         0  
3829 740         1215 when (m{\A(.*)do$}i) { return 1 }
  0         0  
3830 740         1215 when (m{\A(.*)draw$}i) { return 1 }
  0         0  
3831 740         1178 when (m{\A(.*)feed$}i) { return 1 }
  0         0  
3832 740         1106 when (m{\A(.*)freeze$}i) { return 1 }
  0         0  
3833 740         1228 when (m{\A(.*)grow$}i) { return 1 }
  0         0  
3834 740         1206 when (m{\A(.*)hang$}i) { return 1 }
  0         0  
3835 740         1104 when (m{\A(.*)hear$}i) { return 1 }
  0         0  
3836 740         1118 when (m{\A(.*)hide$}i) { return 1 }
  0         0  
3837 740         1129 when (m{\A(.*)input$}i) { return 1 }
  0         0  
3838 740         1289 when (m{\A(.*)knit$}i) { return 1 }
  0         0  
3839 740         1210 when (m{\A(.*)lend$}i) { return 1 }
  0         0  
3840 740         1358 when (m{\A(.*)let$}i) { return 1 }
  0         0  
3841 740         1087 when (m{\A(.*)light$}i) { return 1 }
  0         0  
3842 740         1189 when (m{\A(.*)make$}i) { return 1 }
  0         0  
3843 740         1115 when (m{\A(.*)mow$}i) { return 1 }
  0         0  
3844 740         1191 when (m{\A(.*)pay$}i) { return 1 }
  0         0  
3845 740         1129 when (m{\A(.*)read$}i) { return 1 }
  0         0  
3846 740         1226 when (m{\A(.*)say$}i) { return 1 }
  0         0  
3847 740         1100 when (m{\A(.*)see$}i) { return 1 }
  0         0  
3848 740         1191 when (m{\A(.*)sell$}i) { return 1 }
  0         0  
3849 740         1122 when (m{\A(.*)send$}i) { return 1 }
  0         0  
3850 740         1144 when (m{\A(.*)set$}i) { return 1 }
  0         0  
3851 740         1248 when (m{\A(.*)sew$}i) { return 1 }
  0         0  
3852 740         1083 when (m{\A(.*)shear$}i) { return 1 }
  0         0  
3853 740         1117 when (m{\A(.*)shine$}i) { return 1 }
  0         0  
3854 740         1063 when (m{\A(.*)shoot$}i) { return 1 }
  0         0  
3855 740         1147 when (m{\A(.*)shut$}i) { return 1 }
  0         0  
3856 740         1279 when (m{\A(.*)sleep$}i) { return 1 }
  0         0  
3857 740         1164 when (m{\A(.*)sling$}i) { return 1 }
  0         0  
3858 740         1077 when (m{\A(.*)spin$}i) { return 1 }
  0         0  
3859 740         1312 when (m{\A(.*)split$}i) { return 1 }
  0         0  
3860 740         1141 when (m{\A(.*)spread$}i) { return 1 }
  0         0  
3861 740         1352 when (m{\A(.*)stick$}i) { return 1 }
  0         0  
3862 740         1263 when (m{\A(.*)strike$}i) { return 1 }
  0         0  
3863 740         1165 when (m{\A(.*)string$}i) { return 1 }
  0         0  
3864 740         1242 when (m{\A(.*)take$}i) { return 1 }
  0         0  
3865 740         1130 when (m{\A(.*)teach$}i) { return 1 }
  0         0  
3866 740         1102 when (m{\A(.*)tell$}i) { return 1 }
  0         0  
3867 740         1122 when (m{\A(.*)think$}i) { return 1 }
  0         0  
3868 740         1098 when (m{\A(.*)throw$}i) { return 1 }
  0         0  
3869 740         1117 when (m{\A(.*)try$}i) { return 1 }
  0         0  
3870 740         1112 when (m{\A(.*)weave$}i) { return 1 }
  0         0  
3871 740         1114 when (m{\A(.*)wed$}i) { return 1 }
  4         16  
3872 736         1202 when (m{\A(.*)wet$}i) { return 1 }
  0         0  
3873 736         1173 when (m{\A(.*)wind$}i) { return 1 }
  0         0  
3874 736         1151 when (m{\A(.*)write$}i) { return 1 }
  0         0  
3875 736         1111 when (m{\A(.*)add$}i) { return 1 }
  5         22  
3876 731         1034 when (m{\A(.*)alight$}i) { return 1 }
  0         0  
3877 731         1136 when (m{\A(.*)allow$}i) { return 1 }
  0         0  
3878 731         981 when (m{\A(.*)appear$}i) { return 1 }
  0         0  
3879 731         1036 when (m{\A(.*)believe$}i) { return 1 }
  0         0  
3880 731         1169 when (m{\A(.*)call$}i) { return 1 }
  0         0  
3881 731         1010 when (m{\A(.*)clothe$}i) { return 1 }
  0         0  
3882 731         980 when (m{\A(.*)consider$}i) { return 1 }
  0         0  
3883 731         1075 when (m{\A(.*)create$}i) { return 1 }
  0         0  
3884 731         1382 when (m{\A(.*)fit$}i) { return 1 }
  5         22  
3885 726         1038 when (m{\A(.*)include$}i) { return 1 }
  0         0  
3886 726         1117 when (m{\A(.*)melt$}i) { return 1 }
  0         0  
3887 726         1106 when (m{\A(.*)offer$}i) { return 1 }
  0         0  
3888 726         1251 when (m{\A(.*)open$}i) { return 1 }
  0         0  
3889 726         1241 when (m{\A(.*)play$}i) { return 1 }
  5         20  
3890 721         1116 when (m{\A(.*)serve$}i) { return 1 }
  0         0  
3891 721         1206 when (m{\A(.*)smell$}i) { return 1 }
  0         0  
3892 721         1121 when (m{\A(.*)spell$}i) { return 1 }
  0         0  
3893 721         1154 when (m{\A(.*)spill$}i) { return 1 }
  0         0  
3894 721         1364 when (m{\A(.*)start$}i) { return 1 }
  0         0  
3895 721         1036 when (m{\A(.*)turn$}i) { return 1 }
  0         0  
3896 721         1124 when (m{\A(.*)use$}i) { return 1 }
  0         0  
3897 721         1090 when (m{\A(.*)work$}i) { return 1 }
  0         0  
3898 721         1222 when (m{\A(.+)n't$}i) { return 1 }
  0         0  
3899 721         1326 when (m{\A(.+[aeiou])y$}i) { return 1 }
  15         62  
3900 706         1177 when (m{\A(.+[aiy])nx$}i) { return 1 }
  5         21  
3901 701         1036 when (m{\A(.+)ceps$}i) { return 1 }
  8         33  
3902 693         1151 when (m{\A(.+[cs])h$}i) { return 1 }
  5         22  
3903 688         1145 when (m{\A(.+)oe$}i) { return 1 }
  5         23  
3904 683         1127 when (m{\A(.+)ieu$}i) { return 1 }
  5         22  
3905 678         1138 when (m{\A(.+)eau$}i) { return 1 }
  5         21  
3906 673         1280 when (m{\A(.+)ss$}i) { return 1 }
  10         44  
3907 663         1016 when (m{\A(.+)trix$}i) { return 1 }
  0         0  
3908 663         1083 when (m{\A(.+)x$}i) { return 1 }
  5         21  
3909 658         1081 when (m{\A(.+)zz$}i) { return 1 }
  5         23  
3910 653         1124 when (m{\A(.+)ze$}i) { return 1 }
  5         25  
3911 648         1034 when (m{\A(.+)ue$}i) { return 1 }
  10         45  
3912 638         1054 when (m{\A(.+)i$}i) { return 1 }
  10         48  
3913 628         1047 when (m{\A(.+)ee$}i) { return 1 }
  10         52  
3914 618         998 when (m{\A(.+)ye$}i) { return 1 }
  5         20  
3915 613         1078 when (m{\A(.+[au])e$}i) { return 1 }
  0         0  
3916 613         1216 when (m{\A(.+[^b])i$}i) { return 1 }
  0         0  
3917 613         1203 when (m{\A(.+)ss$}i) { return 1 }
  0         0  
3918 613         1043 when (m{\A(.+)y$}i) { return 1 }
  10         61  
3919 603         1006 when (m{\A(.+)y$}i) { return 1 }
  0         0  
3920 603         1157 when (m{\A(.+[^e])e$}i) { return 1 }
  10         44  
3921 593         956 when (m{\A(.+)er$}i) { return 1 }
  5         40  
3922 588         1353 when (m{\A(.+[^s])$}i) { return 1 }
  380         1691  
3923 208         280 default { return 0; }
  208         615  
3924             }
3925             }
3926              
3927             sub is_singular {
3928 528     528 0 816 my ($word) = @_;
3929 528 100       2001 return 1 if exists $is_singular->{$word};
3930 106 50       225 return 1 if exists $is_singular->{lc $word};
3931 106 50       235 return 0 if exists $is_plural->{$word};
3932 106 50       224 return 0 if exists $is_plural->{lc $word};
3933 106         160 given ($word) {
3934 106         338 when (m{\A(.*)bears$}i) { return 1 }
  0         0  
3935 106         300 when (m{\A(.*)bids$}i) { return 1 }
  0         0  
3936 106         219 when (m{\A(.*)buys$}i) { return 1 }
  0         0  
3937 106         187 when (m{\A(.*)clads$}i) { return 1 }
  0         0  
3938 106         201 when (m{\A(.*)cuts$}i) { return 1 }
  0         0  
3939 106         222 when (m{\A(.*)does$}i) { return 1 }
  0         0  
3940 106         176 when (m{\A(.*)draws$}i) { return 1 }
  0         0  
3941 106         180 when (m{\A(.*)feeds$}i) { return 1 }
  0         0  
3942 106         145 when (m{\A(.*)freezes$}i) { return 1 }
  0         0  
3943 106         185 when (m{\A(.*)grows$}i) { return 1 }
  0         0  
3944 106         174 when (m{\A(.*)hangs$}i) { return 1 }
  0         0  
3945 106         190 when (m{\A(.*)hears$}i) { return 1 }
  0         0  
3946 106         166 when (m{\A(.*)hides$}i) { return 1 }
  0         0  
3947 106         169 when (m{\A(.*)inputs$}i) { return 1 }
  0         0  
3948 106         172 when (m{\A(.*)knits$}i) { return 1 }
  0         0  
3949 106         163 when (m{\A(.*)lends$}i) { return 1 }
  0         0  
3950 106         191 when (m{\A(.*)lets$}i) { return 1 }
  0         0  
3951 106         163 when (m{\A(.*)lights$}i) { return 1 }
  0         0  
3952 106         176 when (m{\A(.*)makes$}i) { return 1 }
  0         0  
3953 106         188 when (m{\A(.*)mows$}i) { return 1 }
  0         0  
3954 106         185 when (m{\A(.*)pays$}i) { return 1 }
  0         0  
3955 106         168 when (m{\A(.*)reads$}i) { return 1 }
  0         0  
3956 106         201 when (m{\A(.*)says$}i) { return 1 }
  0         0  
3957 106         189 when (m{\A(.*)sees$}i) { return 1 }
  0         0  
3958 106         167 when (m{\A(.*)sells$}i) { return 1 }
  0         0  
3959 106         177 when (m{\A(.*)sends$}i) { return 1 }
  0         0  
3960 106         206 when (m{\A(.*)sets$}i) { return 1 }
  0         0  
3961 106         217 when (m{\A(.*)sews$}i) { return 1 }
  0         0  
3962 106         169 when (m{\A(.*)shears$}i) { return 1 }
  0         0  
3963 106         158 when (m{\A(.*)shines$}i) { return 1 }
  0         0  
3964 106         155 when (m{\A(.*)shoots$}i) { return 1 }
  0         0  
3965 106         171 when (m{\A(.*)shuts$}i) { return 1 }
  0         0  
3966 106         151 when (m{\A(.*)sleeps$}i) { return 1 }
  0         0  
3967 106         164 when (m{\A(.*)slings$}i) { return 1 }
  0         0  
3968 106         161 when (m{\A(.*)spins$}i) { return 1 }
  0         0  
3969 106         155 when (m{\A(.*)splits$}i) { return 1 }
  0         0  
3970 106         159 when (m{\A(.*)spreads$}i) { return 1 }
  0         0  
3971 106         182 when (m{\A(.*)sticks$}i) { return 1 }
  0         0  
3972 106         164 when (m{\A(.*)strikes$}i) { return 1 }
  0         0  
3973 106         161 when (m{\A(.*)strings$}i) { return 1 }
  0         0  
3974 106         180 when (m{\A(.*)takes$}i) { return 1 }
  0         0  
3975 106         158 when (m{\A(.*)teaches$}i) { return 1 }
  0         0  
3976 106         176 when (m{\A(.*)tells$}i) { return 1 }
  0         0  
3977 106         143 when (m{\A(.*)thinks$}i) { return 1 }
  0         0  
3978 106         151 when (m{\A(.*)throws$}i) { return 1 }
  0         0  
3979 106         164 when (m{\A(.*)tries$}i) { return 1 }
  0         0  
3980 106         151 when (m{\A(.*)weaves$}i) { return 1 }
  0         0  
3981 106         177 when (m{\A(.*)weds$}i) { return 1 }
  0         0  
3982 106         173 when (m{\A(.*)wets$}i) { return 1 }
  0         0  
3983 106         170 when (m{\A(.*)winds$}i) { return 1 }
  0         0  
3984 106         152 when (m{\A(.*)writes$}i) { return 1 }
  0         0  
3985 106         179 when (m{\A(.*)adds$}i) { return 1 }
  1         7  
3986 105         168 when (m{\A(.*)alights$}i) { return 1 }
  0         0  
3987 105         157 when (m{\A(.*)allows$}i) { return 1 }
  0         0  
3988 105         136 when (m{\A(.*)appears$}i) { return 1 }
  0         0  
3989 105         134 when (m{\A(.*)believes$}i) { return 1 }
  0         0  
3990 105         193 when (m{\A(.*)calls$}i) { return 1 }
  0         0  
3991 105         162 when (m{\A(.*)clothes$}i) { return 1 }
  0         0  
3992 105         154 when (m{\A(.*)considers$}i) { return 1 }
  0         0  
3993 105         142 when (m{\A(.*)creates$}i) { return 1 }
  0         0  
3994 105         253 when (m{\A(.*)fits$}i) { return 1 }
  1         5  
3995 104         145 when (m{\A(.*)includes$}i) { return 1 }
  0         0  
3996 104         171 when (m{\A(.*)melts$}i) { return 1 }
  0         0  
3997 104         148 when (m{\A(.*)offers$}i) { return 1 }
  0         0  
3998 104         192 when (m{\A(.*)opens$}i) { return 1 }
  0         0  
3999 104         169 when (m{\A(.*)plays$}i) { return 1 }
  1         6  
4000 103         150 when (m{\A(.*)serves$}i) { return 1 }
  0         0  
4001 103         158 when (m{\A(.*)smells$}i) { return 1 }
  0         0  
4002 103         169 when (m{\A(.*)spells$}i) { return 1 }
  0         0  
4003 103         188 when (m{\A(.*)spills$}i) { return 1 }
  0         0  
4004 103         177 when (m{\A(.*)starts$}i) { return 1 }
  0         0  
4005 103         164 when (m{\A(.*)turns$}i) { return 1 }
  0         0  
4006 103         164 when (m{\A(.*)uses$}i) { return 1 }
  0         0  
4007 103         189 when (m{\A(.*)works$}i) { return 1 }
  0         0  
4008 103         162 when (m{\A(.+)n't$}i) { return 1 }
  0         0  
4009 103         205 when (m{\A(.+[aeiou])ys$}i) { return 1 }
  3         15  
4010 100         146 when (m{\A(.+[aiy])nxes$}i) { return 1 }
  1         5  
4011 99         159 when (m{\A(.+)ceps$}i) { return 1 }
  2         9  
4012 97         186 when (m{\A(.+[cs])hes$}i) { return 1 }
  1         5  
4013 96         175 when (m{\A(.+)oes$}i) { return 1 }
  1         5  
4014 95         145 when (m{\A(.+)ieus$}i) { return 1 }
  1         6  
4015 94         156 when (m{\A(.+)eaus$}i) { return 1 }
  1         5  
4016 93         203 when (m{\A(.+)sses$}i) { return 1 }
  2         10  
4017 91         126 when (m{\A(.+)trixes$}i) { return 1 }
  0         0  
4018 91         162 when (m{\A(.+)xes$}i) { return 1 }
  1         5  
4019 90         139 when (m{\A(.+)zzes$}i) { return 1 }
  1         6  
4020 89         157 when (m{\A(.+)zes$}i) { return 1 }
  1         6  
4021 88         141 when (m{\A(.+)ues$}i) { return 1 }
  2         11  
4022 86         166 when (m{\A(.+)is$}i) { return 1 }
  2         11  
4023 84         173 when (m{\A(.+)ees$}i) { return 1 }
  2         16  
4024 82         158 when (m{\A(.+)yes$}i) { return 1 }
  1         6  
4025 81         165 when (m{\A(.+[au])es$}i) { return 1 }
  0         0  
4026 81         176 when (m{\A(.+[^b])is$}i) { return 1 }
  0         0  
4027 81         157 when (m{\A(.+)sses$}i) { return 1 }
  0         0  
4028 81         137 when (m{\A(.+)ies$}i) { return 1 }
  2         18  
4029 79         153 when (m{\A(.+)ys$}i) { return 1 }
  0         0  
4030 79         159 when (m{\A(.+[^e])es$}i) { return 1 }
  2         13  
4031 77         141 when (m{\A(.+)ers$}i) { return 1 }
  1         8  
4032 76         184 when (m{\A(.+[^s])s$}i) { return 1 }
  24         128  
4033 52         71 default { return !is_plural($word); }
  52         103  
4034             }
4035             }
4036              
4037             sub is_past {
4038 260     260 0 420 my ($word) = @_;
4039 260 50       524 return 1 if exists $is_past->{$word};
4040 260 50       486 return 1 if exists $is_past->{lc $word};
4041 260         357 given ($word) {
4042 260         651 when (m{\A(.*)bore$}i) { return 1 }
  0         0  
4043 260         440 when (m{\A(.*)bade$}i) { return 1 }
  0         0  
4044 260         408 when (m{\A(.*)bought$}i) { return 1 }
  0         0  
4045 260         424 when (m{\A(.*)clad$}i) { return 1 }
  0         0  
4046 260         428 when (m{\A(.*)cut$}i) { return 1 }
  0         0  
4047 260         444 when (m{\A(.*)did$}i) { return 1 }
  0         0  
4048 260         455 when (m{\A(.*)drew$}i) { return 1 }
  0         0  
4049 260         445 when (m{\A(.*)fed$}i) { return 1 }
  4         14  
4050 256         453 when (m{\A(.*)froze$}i) { return 1 }
  0         0  
4051 256         405 when (m{\A(.*)grew$}i) { return 1 }
  0         0  
4052 256         400 when (m{\A(.*)hung$}i) { return 1 }
  0         0  
4053 256         417 when (m{\A(.*)heard$}i) { return 1 }
  0         0  
4054 256         409 when (m{\A(.*)hid$}i) { return 1 }
  0         0  
4055 256         375 when (m{\A(.*)input$}i) { return 1 }
  0         0  
4056 256         363 when (m{\A(.*)knitted$}i) { return 1 }
  0         0  
4057 256         387 when (m{\A(.*)lent$}i) { return 1 }
  0         0  
4058 256         408 when (m{\A(.*)let$}i) { return 1 }
  0         0  
4059 256         408 when (m{\A(.*)lit$}i) { return 1 }
  0         0  
4060 256         459 when (m{\A(.*)made$}i) { return 1 }
  0         0  
4061 256         374 when (m{\A(.*)mowed$}i) { return 1 }
  0         0  
4062 256         391 when (m{\A(.*)paid$}i) { return 1 }
  0         0  
4063 256         471 when (m{\A(.*)read$}i) { return 1 }
  0         0  
4064 256         414 when (m{\A(.*)said$}i) { return 1 }
  0         0  
4065 256         401 when (m{\A(.*)saw$}i) { return 1 }
  0         0  
4066 256         411 when (m{\A(.*)sold$}i) { return 1 }
  0         0  
4067 256         397 when (m{\A(.*)sent$}i) { return 1 }
  0         0  
4068 256         405 when (m{\A(.*)set$}i) { return 1 }
  0         0  
4069 256         389 when (m{\A(.*)sewed$}i) { return 1 }
  0         0  
4070 256         350 when (m{\A(.*)sheared$}i) { return 1 }
  0         0  
4071 256         433 when (m{\A(.*)shone$}i) { return 1 }
  0         0  
4072 256         438 when (m{\A(.*)shot$}i) { return 1 }
  0         0  
4073 256         397 when (m{\A(.*)shut$}i) { return 1 }
  0         0  
4074 256         375 when (m{\A(.*)slept$}i) { return 1 }
  0         0  
4075 256         359 when (m{\A(.*)slung$}i) { return 1 }
  0         0  
4076 256         375 when (m{\A(.*)spun$}i) { return 1 }
  0         0  
4077 256         374 when (m{\A(.*)split$}i) { return 1 }
  0         0  
4078 256         370 when (m{\A(.*)spread$}i) { return 1 }
  0         0  
4079 256         482 when (m{\A(.*)stuck$}i) { return 1 }
  0         0  
4080 256         456 when (m{\A(.*)struck$}i) { return 1 }
  0         0  
4081 256         436 when (m{\A(.*)strung$}i) { return 1 }
  0         0  
4082 256         382 when (m{\A(.*)took$}i) { return 1 }
  0         0  
4083 256         364 when (m{\A(.*)taught$}i) { return 1 }
  0         0  
4084 256         405 when (m{\A(.*)told$}i) { return 1 }
  0         0  
4085 256         353 when (m{\A(.*)thought$}i) { return 1 }
  0         0  
4086 256         423 when (m{\A(.*)threw$}i) { return 1 }
  0         0  
4087 256         369 when (m{\A(.*)tried$}i) { return 1 }
  0         0  
4088 256         406 when (m{\A(.*)wove$}i) { return 1 }
  0         0  
4089 256         419 when (m{\A(.*)wed$}i) { return 1 }
  2         10  
4090 254         432 when (m{\A(.*)wet$}i) { return 1 }
  0         0  
4091 254         384 when (m{\A(.*)wound$}i) { return 1 }
  0         0  
4092 254         408 when (m{\A(.*)wrote$}i) { return 1 }
  0         0  
4093 254         386 when (m{\A(.*)added$}i) { return 1 }
  2         13  
4094 252         316 when (m{\A(.*)alighted$}i) { return 1 }
  0         0  
4095 252         340 when (m{\A(.*)allowed$}i) { return 1 }
  0         0  
4096 252         340 when (m{\A(.*)appeared$}i) { return 1 }
  0         0  
4097 252         323 when (m{\A(.*)believed$}i) { return 1 }
  0         0  
4098 252         365 when (m{\A(.*)called$}i) { return 1 }
  0         0  
4099 252         324 when (m{\A(.*)clothed$}i) { return 1 }
  0         0  
4100 252         314 when (m{\A(.*)considered$}i) { return 1 }
  0         0  
4101 252         329 when (m{\A(.*)created$}i) { return 1 }
  0         0  
4102 252         415 when (m{\A(.*)fitted$}i) { return 1 }
  2         30  
4103 250         380 when (m{\A(.*)included$}i) { return 1 }
  0         0  
4104 250         354 when (m{\A(.*)melted$}i) { return 1 }
  0         0  
4105 250         358 when (m{\A(.*)offered$}i) { return 1 }
  0         0  
4106 250         340 when (m{\A(.*)opened$}i) { return 1 }
  0         0  
4107 250         348 when (m{\A(.*)played$}i) { return 1 }
  2         7  
4108 248         355 when (m{\A(.*)served$}i) { return 1 }
  0         0  
4109 248         316 when (m{\A(.*)smelled$}i) { return 1 }
  0         0  
4110 248         317 when (m{\A(.*)spelled$}i) { return 1 }
  0         0  
4111 248         340 when (m{\A(.*)spilled$}i) { return 1 }
  0         0  
4112 248         362 when (m{\A(.*)started$}i) { return 1 }
  0         0  
4113 248         389 when (m{\A(.*)turned$}i) { return 1 }
  0         0  
4114 248         379 when (m{\A(.*)used$}i) { return 1 }
  0         0  
4115 248         342 when (m{\A(.*)worked$}i) { return 1 }
  0         0  
4116 248         379 when (m{\A(.+)n't$}i) { return 1 }
  0         0  
4117 248         433 when (m{\A(.+[aeiou])yed$}i) { return 1 }
  6         24  
4118 242         351 when (m{\A(.+[aiy])nxed$}i) { return 1 }
  2         9  
4119 240         302 when (m{\A(.+)cepsed$}i) { return 1 }
  2         7  
4120 238         351 when (m{\A(.+[cs])hed$}i) { return 1 }
  2         10  
4121 236         385 when (m{\A(.+)oed$}i) { return 1 }
  6         27  
4122 230         388 when (m{\A(.+)ieued$}i) { return 1 }
  2         9  
4123 228         351 when (m{\A(.+)eaued$}i) { return 1 }
  2         7  
4124 226         434 when (m{\A(.+)ssed$}i) { return 1 }
  4         20  
4125 222         299 when (m{\A(.+)trixed$}i) { return 1 }
  0         0  
4126 222         339 when (m{\A(.+)xed$}i) { return 1 }
  2         8  
4127 220         363 when (m{\A(.+)zzed$}i) { return 1 }
  2         9  
4128 218         318 when (m{\A(.+)zed$}i) { return 1 }
  2         11  
4129 216         367 when (m{\A(.+)ued$}i) { return 1 }
  4         17  
4130 212         305 when (m{\A(.+)ied$}i) { return 1 }
  8         38  
4131 204         331 when (m{\A(.+)eed$}i) { return 1 }
  4         20  
4132 200         295 when (m{\A(.+)yed$}i) { return 1 }
  2         8  
4133 198         353 when (m{\A(.+[au])ed$}i) { return 1 }
  0         0  
4134 198         375 when (m{\A(.+[^b])ied$}i) { return 1 }
  0         0  
4135 198         335 when (m{\A(.+)ssed$}i) { return 1 }
  0         0  
4136 198         326 when (m{\A(.+)ied$}i) { return 1 }
  0         0  
4137 198         315 when (m{\A(.+)yed$}i) { return 1 }
  0         0  
4138 198         415 when (m{\A(.+[^e])ed$}i) { return 1 }
  44         197  
4139 154         246 when (m{\A(.+)ered$}i) { return 1 }
  0         0  
4140 154         197 default { return 0; }
  154         389  
4141             }
4142             }
4143              
4144             sub is_pres_part {
4145 158     158 0 282 my ($word) = @_;
4146 158 50       347 return 1 if exists $is_pres_part->{$word};
4147 158 50       335 return 1 if exists $is_pres_part->{lc $word};
4148 158         246 given ($word) {
4149 158         290 when (m{\A(.*)bearing$}i) { return 1 }
  0         0  
4150 158         261 when (m{\A(.*)bidding$}i) { return 1 }
  0         0  
4151 158         277 when (m{\A(.*)buying$}i) { return 1 }
  0         0  
4152 158         228 when (m{\A(.*)cladding$}i) { return 1 }
  0         0  
4153 158         229 when (m{\A(.*)cutting$}i) { return 1 }
  0         0  
4154 158         266 when (m{\A(.*)doing$}i) { return 1 }
  0         0  
4155 158         244 when (m{\A(.*)drawing$}i) { return 1 }
  0         0  
4156 158         253 when (m{\A(.*)feeding$}i) { return 1 }
  0         0  
4157 158         221 when (m{\A(.*)freezing$}i) { return 1 }
  0         0  
4158 158         239 when (m{\A(.*)growing$}i) { return 1 }
  0         0  
4159 158         212 when (m{\A(.*)hanging$}i) { return 1 }
  0         0  
4160 158         213 when (m{\A(.*)hearing$}i) { return 1 }
  0         0  
4161 158         247 when (m{\A(.*)hiding$}i) { return 1 }
  0         0  
4162 158         207 when (m{\A(.*)inputting$}i) { return 1 }
  0         0  
4163 158         208 when (m{\A(.*)knitting$}i) { return 1 }
  0         0  
4164 158         201 when (m{\A(.*)lending$}i) { return 1 }
  0         0  
4165 158         220 when (m{\A(.*)letting$}i) { return 1 }
  0         0  
4166 158         270 when (m{\A(.*)lighting$}i) { return 1 }
  0         0  
4167 158         256 when (m{\A(.*)making$}i) { return 1 }
  0         0  
4168 158         242 when (m{\A(.*)mowing$}i) { return 1 }
  0         0  
4169 158         231 when (m{\A(.*)paying$}i) { return 1 }
  0         0  
4170 158         222 when (m{\A(.*)reading$}i) { return 1 }
  0         0  
4171 158         232 when (m{\A(.*)saying$}i) { return 1 }
  0         0  
4172 158         235 when (m{\A(.*)seeing$}i) { return 1 }
  0         0  
4173 158         204 when (m{\A(.*)selling$}i) { return 1 }
  0         0  
4174 158         215 when (m{\A(.*)sending$}i) { return 1 }
  0         0  
4175 158         231 when (m{\A(.*)setting$}i) { return 1 }
  0         0  
4176 158         231 when (m{\A(.*)sewing$}i) { return 1 }
  0         0  
4177 158         205 when (m{\A(.*)shearing$}i) { return 1 }
  0         0  
4178 158         216 when (m{\A(.*)shining$}i) { return 1 }
  0         0  
4179 158         202 when (m{\A(.*)shooting$}i) { return 1 }
  0         0  
4180 158         241 when (m{\A(.*)shutting$}i) { return 1 }
  0         0  
4181 158         192 when (m{\A(.*)sleeping$}i) { return 1 }
  0         0  
4182 158         197 when (m{\A(.*)slinging$}i) { return 1 }
  0         0  
4183 158         210 when (m{\A(.*)spinning$}i) { return 1 }
  0         0  
4184 158         223 when (m{\A(.*)splitting$}i) { return 1 }
  0         0  
4185 158         230 when (m{\A(.*)spreading$}i) { return 1 }
  0         0  
4186 158         236 when (m{\A(.*)sticking$}i) { return 1 }
  0         0  
4187 158         234 when (m{\A(.*)striking$}i) { return 1 }
  0         0  
4188 158         233 when (m{\A(.*)stringing$}i) { return 1 }
  0         0  
4189 158         267 when (m{\A(.*)taking$}i) { return 1 }
  0         0  
4190 158         232 when (m{\A(.*)teaching$}i) { return 1 }
  0         0  
4191 158         218 when (m{\A(.*)telling$}i) { return 1 }
  0         0  
4192 158         218 when (m{\A(.*)thinking$}i) { return 1 }
  0         0  
4193 158         259 when (m{\A(.*)throwing$}i) { return 1 }
  0         0  
4194 158         231 when (m{\A(.*)trying$}i) { return 1 }
  0         0  
4195 158         221 when (m{\A(.*)weaving$}i) { return 1 }
  0         0  
4196 158         225 when (m{\A(.*)wedding$}i) { return 1 }
  0         0  
4197 158         222 when (m{\A(.*)wetting$}i) { return 1 }
  0         0  
4198 158         236 when (m{\A(.*)winding$}i) { return 1 }
  0         0  
4199 158         221 when (m{\A(.*)writing$}i) { return 1 }
  0         0  
4200 158         227 when (m{\A(.*)adding$}i) { return 1 }
  1         8  
4201 157         194 when (m{\A(.*)alighting$}i) { return 1 }
  0         0  
4202 157         199 when (m{\A(.*)allowing$}i) { return 1 }
  0         0  
4203 157         203 when (m{\A(.*)appearing$}i) { return 1 }
  0         0  
4204 157         199 when (m{\A(.*)believing$}i) { return 1 }
  0         0  
4205 157         210 when (m{\A(.*)calling$}i) { return 1 }
  0         0  
4206 157         220 when (m{\A(.*)clothing$}i) { return 1 }
  0         0  
4207 157         204 when (m{\A(.*)considering$}i) { return 1 }
  0         0  
4208 157         222 when (m{\A(.*)creating$}i) { return 1 }
  0         0  
4209 157         247 when (m{\A(.*)fitting$}i) { return 1 }
  1         4  
4210 156         190 when (m{\A(.*)including$}i) { return 1 }
  0         0  
4211 156         210 when (m{\A(.*)melting$}i) { return 1 }
  0         0  
4212 156         216 when (m{\A(.*)offering$}i) { return 1 }
  0         0  
4213 156         215 when (m{\A(.*)opening$}i) { return 1 }
  0         0  
4214 156         218 when (m{\A(.*)playing$}i) { return 1 }
  1         4  
4215 155         198 when (m{\A(.*)serving$}i) { return 1 }
  0         0  
4216 155         204 when (m{\A(.*)smelling$}i) { return 1 }
  0         0  
4217 155         206 when (m{\A(.*)spelling$}i) { return 1 }
  0         0  
4218 155         245 when (m{\A(.*)spilling$}i) { return 1 }
  0         0  
4219 155         235 when (m{\A(.*)starting$}i) { return 1 }
  0         0  
4220 155         216 when (m{\A(.*)turning$}i) { return 1 }
  0         0  
4221 155         228 when (m{\A(.*)using$}i) { return 1 }
  0         0  
4222 155         227 when (m{\A(.*)working$}i) { return 1 }
  0         0  
4223 155         246 when (m{\A(.+[aeiou])ying$}i) { return 1 }
  3         13  
4224 152         214 when (m{\A(.+[aiy])nxing$}i) { return 1 }
  1         5  
4225 151         198 when (m{\A(.+)cepsing$}i) { return 1 }
  1         5  
4226 150         230 when (m{\A(.+[cs])hing$}i) { return 1 }
  1         4  
4227 149         238 when (m{\A(.+)oeing$}i) { return 1 }
  1         5  
4228 148         214 when (m{\A(.+)ieuing$}i) { return 1 }
  1         5  
4229 147         194 when (m{\A(.+)eauing$}i) { return 1 }
  1         4  
4230 146         276 when (m{\A(.+)ssing$}i) { return 1 }
  2         11  
4231 144         195 when (m{\A(.+)trixing$}i) { return 1 }
  0         0  
4232 144         223 when (m{\A(.+)xing$}i) { return 1 }
  1         5  
4233 143         204 when (m{\A(.+)zzing$}i) { return 1 }
  1         6  
4234 142         195 when (m{\A(.+)zing$}i) { return 1 }
  1         6  
4235 141         206 when (m{\A(.+)ueing$}i) { return 1 }
  2         9  
4236 139         199 when (m{\A(.+)iing$}i) { return 1 }
  2         10  
4237 137         221 when (m{\A(.+)eeing$}i) { return 1 }
  2         16  
4238 135         191 when (m{\A(.+)yeing$}i) { return 1 }
  1         4  
4239 134         203 when (m{\A(.+[au])ing$}i) { return 1 }
  0         0  
4240 134         251 when (m{\A(.+[^b])ing$}i) { return 1 }
  26         110  
4241 108         157 when (m{\A(.+)ssing$}i) { return 1 }
  0         0  
4242 108         467 when (m{\A(.+)ying$}i) { return 1 }
  0         0  
4243 108         155 when (m{\A(.+)ying$}i) { return 1 }
  0         0  
4244 108         184 when (m{\A(.+[^e])ing$}i) { return 1 }
  2         8  
4245 106         146 when (m{\A(.+)ering$}i) { return 1 }
  0         0  
4246 106         134 default { return 0; }
  106         271  
4247             }
4248             }
4249              
4250             sub is_past_part {
4251 212     212 0 348 my ($word) = @_;
4252 212 50       459 return 1 if exists $is_past_part->{$word};
4253 212 50       441 return 1 if exists $is_past_part->{lc $word};
4254 212         306 given ($word) {
4255 212         494 when (m{\A(.*)borne$}i) { return 1 }
  0         0  
4256 212         346 when (m{\A(.*)bidden$}i) { return 1 }
  0         0  
4257 212         317 when (m{\A(.*)bought$}i) { return 1 }
  0         0  
4258 212         396 when (m{\A(.*)clad$}i) { return 1 }
  0         0  
4259 212         381 when (m{\A(.*)cut$}i) { return 1 }
  0         0  
4260 212         375 when (m{\A(.*)done$}i) { return 1 }
  0         0  
4261 212         338 when (m{\A(.*)drawn$}i) { return 1 }
  0         0  
4262 212         367 when (m{\A(.*)fed$}i) { return 1 }
  4         13  
4263 208         348 when (m{\A(.*)frozen$}i) { return 1 }
  0         0  
4264 208         304 when (m{\A(.*)grown$}i) { return 1 }
  0         0  
4265 208         373 when (m{\A(.*)hung$}i) { return 1 }
  0         0  
4266 208         318 when (m{\A(.*)heard$}i) { return 1 }
  0         0  
4267 208         291 when (m{\A(.*)hidden$}i) { return 1 }
  0         0  
4268 208         293 when (m{\A(.*)input$}i) { return 1 }
  0         0  
4269 208         340 when (m{\A(.*)knitted$}i) { return 1 }
  0         0  
4270 208         372 when (m{\A(.*)lent$}i) { return 1 }
  0         0  
4271 208         352 when (m{\A(.*)let$}i) { return 1 }
  0         0  
4272 208         344 when (m{\A(.*)lit$}i) { return 1 }
  0         0  
4273 208         339 when (m{\A(.*)made$}i) { return 1 }
  0         0  
4274 208         317 when (m{\A(.*)mown$}i) { return 1 }
  0         0  
4275 208         350 when (m{\A(.*)paid$}i) { return 1 }
  0         0  
4276 208         318 when (m{\A(.*)read$}i) { return 1 }
  0         0  
4277 208         344 when (m{\A(.*)said$}i) { return 1 }
  0         0  
4278 208         336 when (m{\A(.*)seen$}i) { return 1 }
  0         0  
4279 208         355 when (m{\A(.*)sold$}i) { return 1 }
  0         0  
4280 208         321 when (m{\A(.*)sent$}i) { return 1 }
  0         0  
4281 208         347 when (m{\A(.*)set$}i) { return 1 }
  0         0  
4282 208         336 when (m{\A(.*)sewn$}i) { return 1 }
  0         0  
4283 208         358 when (m{\A(.*)shorn$}i) { return 1 }
  0         0  
4284 208         309 when (m{\A(.*)shone$}i) { return 1 }
  0         0  
4285 208         341 when (m{\A(.*)shot$}i) { return 1 }
  0         0  
4286 208         331 when (m{\A(.*)shut$}i) { return 1 }
  0         0  
4287 208         329 when (m{\A(.*)slept$}i) { return 1 }
  0         0  
4288 208         376 when (m{\A(.*)slung$}i) { return 1 }
  0         0  
4289 208         326 when (m{\A(.*)spun$}i) { return 1 }
  0         0  
4290 208         320 when (m{\A(.*)split$}i) { return 1 }
  0         0  
4291 208         308 when (m{\A(.*)spread$}i) { return 1 }
  0         0  
4292 208         382 when (m{\A(.*)stuck$}i) { return 1 }
  0         0  
4293 208         370 when (m{\A(.*)struck$}i) { return 1 }
  0         0  
4294 208         344 when (m{\A(.*)strung$}i) { return 1 }
  0         0  
4295 208         336 when (m{\A(.*)taken$}i) { return 1 }
  0         0  
4296 208         287 when (m{\A(.*)taught$}i) { return 1 }
  0         0  
4297 208         314 when (m{\A(.*)told$}i) { return 1 }
  0         0  
4298 208         328 when (m{\A(.*)thought$}i) { return 1 }
  0         0  
4299 208         295 when (m{\A(.*)thrown$}i) { return 1 }
  0         0  
4300 208         305 when (m{\A(.*)tried$}i) { return 1 }
  0         0  
4301 208         333 when (m{\A(.*)woven$}i) { return 1 }
  0         0  
4302 208         384 when (m{\A(.*)wed$}i) { return 1 }
  2         8  
4303 206         306 when (m{\A(.*)wetted$}i) { return 1 }
  0         0  
4304 206         331 when (m{\A(.*)wound$}i) { return 1 }
  0         0  
4305 206         275 when (m{\A(.*)written$}i) { return 1 }
  0         0  
4306 206         312 when (m{\A(.*)added$}i) { return 1 }
  2         10  
4307 204         300 when (m{\A(.*)alighted$}i) { return 1 }
  0         0  
4308 204         297 when (m{\A(.*)allowed$}i) { return 1 }
  0         0  
4309 204         273 when (m{\A(.*)appeared$}i) { return 1 }
  0         0  
4310 204         257 when (m{\A(.*)believed$}i) { return 1 }
  0         0  
4311 204         306 when (m{\A(.*)called$}i) { return 1 }
  0         0  
4312 204         282 when (m{\A(.*)clothed$}i) { return 1 }
  0         0  
4313 204         296 when (m{\A(.*)considered$}i) { return 1 }
  0         0  
4314 204         291 when (m{\A(.*)created$}i) { return 1 }
  0         0  
4315 204         356 when (m{\A(.*)fitted$}i) { return 1 }
  2         11  
4316 202         255 when (m{\A(.*)included$}i) { return 1 }
  0         0  
4317 202         319 when (m{\A(.*)melted$}i) { return 1 }
  0         0  
4318 202         311 when (m{\A(.*)offered$}i) { return 1 }
  0         0  
4319 202         294 when (m{\A(.*)opened$}i) { return 1 }
  0         0  
4320 202         311 when (m{\A(.*)played$}i) { return 1 }
  2         9  
4321 200         268 when (m{\A(.*)served$}i) { return 1 }
  0         0  
4322 200         268 when (m{\A(.*)smelled$}i) { return 1 }
  0         0  
4323 200         263 when (m{\A(.*)spelled$}i) { return 1 }
  0         0  
4324 200         291 when (m{\A(.*)spilled$}i) { return 1 }
  0         0  
4325 200         292 when (m{\A(.*)started$}i) { return 1 }
  0         0  
4326 200         282 when (m{\A(.*)turned$}i) { return 1 }
  0         0  
4327 200         312 when (m{\A(.*)used$}i) { return 1 }
  0         0  
4328 200         292 when (m{\A(.*)worked$}i) { return 1 }
  0         0  
4329 200         350 when (m{\A(.+[aeiou])yed$}i) { return 1 }
  6         22  
4330 194         285 when (m{\A(.+[aiy])nxed$}i) { return 1 }
  2         9  
4331 192         280 when (m{\A(.+)cepsed$}i) { return 1 }
  2         8  
4332 190         310 when (m{\A(.+[cs])hed$}i) { return 1 }
  2         9  
4333 188         367 when (m{\A(.+)oed$}i) { return 1 }
  6         28  
4334 182         304 when (m{\A(.+)ieued$}i) { return 1 }
  2         9  
4335 180         268 when (m{\A(.+)eaued$}i) { return 1 }
  2         8  
4336 178         353 when (m{\A(.+)ssed$}i) { return 1 }
  4         20  
4337 174         231 when (m{\A(.+)trixed$}i) { return 1 }
  0         0  
4338 174         306 when (m{\A(.+)xed$}i) { return 1 }
  2         13  
4339 172         279 when (m{\A(.+)zzed$}i) { return 1 }
  2         9  
4340 170         296 when (m{\A(.+)zed$}i) { return 1 }
  2         9  
4341 168         261 when (m{\A(.+)ued$}i) { return 1 }
  4         16  
4342 164         281 when (m{\A(.+)ied$}i) { return 1 }
  8         40  
4343 156         263 when (m{\A(.+)eed$}i) { return 1 }
  4         25  
4344 152         249 when (m{\A(.+)yed$}i) { return 1 }
  2         10  
4345 150         238 when (m{\A(.+[au])ed$}i) { return 1 }
  0         0  
4346 150         253 when (m{\A(.+[^b])ied$}i) { return 1 }
  0         0  
4347 150         264 when (m{\A(.+)ssed$}i) { return 1 }
  0         0  
4348 150         241 when (m{\A(.+)ied$}i) { return 1 }
  0         0  
4349 150         226 when (m{\A(.+)yed$}i) { return 1 }
  0         0  
4350 150         307 when (m{\A(.+[^e])ed$}i) { return 1 }
  44         182  
4351 106         173 when (m{\A(.+)ered$}i) { return 1 }
  0         0  
4352 106         138 default { return 0; }
  106         287  
4353             }
4354             }
4355              
4356             1;