| ofs | hex dump | ascii | 
|---|
| 0000 |  70 72 65 73 63 69 65 6e 74 2d 32 30 32 34 30 32    32 36 2e 32 30 34 2f 00 00 00 00 00 00 00 00 00  | prescient-20240226.204/......... | 
| 0020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0060 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0080 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 37 31 34 00 20 35 00 00 00  | 0000000.00000000000.012714..5... | 
| 00a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0100 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0120 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0200 |  70 72 65 73 63 69 65 6e 74 2d 32 30 32 34 30 32    32 36 2e 32 30 34 2f 70 72 65 73 63 69 65 6e 74  | prescient-20240226.204/prescient | 
| 0220 |  2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | -pkg.el......................... | 
| 0240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0260 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0280 |  30 30 30 30 37 33 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 36 30 32 30 00 20 30 00 00 00  | 0000737.00000000000.016020..0... | 
| 02a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0400 |  28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 70 72 65 73 63 69 65 6e 74 22 20 22 32 30 32  | (define-package."prescient"."202 | 
| 0420 |  34 30 32 32 36 2e 32 30 34 22 20 22 42 65 74 74    65 72 20 73 6f 72 74 69 6e 67 20 61 6e 64 20 66  | 40226.204"."Better.sorting.and.f | 
| 0440 |  69 6c 74 65 72 69 6e 67 22 0a 20 20 27 28 28 65    6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20  | iltering"...'((emacs."25.1"))... | 
| 0460 |  3a 63 6f 6d 6d 69 74 20 22 63 33 39 62 66 30 37    63 35 36 62 34 32 37 62 66 34 31 61 61 66 64 37  | :commit."c39bf07c56b427bf41aafd7 | 
| 0480 |  64 32 30 65 61 65 66 35 63 66 33 63 33 31 32 62    35 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28  | d20eaef5cf3c312b5".:authors...'( | 
| 04a0 |  28 22 52 61 64 69 61 6e 20 4c 4c 43 22 20 2e 20    22 63 6f 6e 74 61 63 74 2b 70 72 65 73 63 69 65  | ("Radian.LLC"..."contact+prescie | 
| 04c0 |  6e 74 40 72 61 64 69 61 6e 2e 63 6f 64 65 73 22    29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72  | nt@radian.codes"))...:maintainer | 
| 04e0 |  73 0a 20 20 27 28 28 22 52 61 64 69 61 6e 20 4c    4c 43 22 20 2e 20 22 63 6f 6e 74 61 63 74 2b 70  | s...'(("Radian.LLC"..."contact+p | 
| 0500 |  72 65 73 63 69 65 6e 74 40 72 61 64 69 61 6e 2e    63 6f 64 65 73 22 29 29 0a 20 20 3a 6d 61 69 6e  | rescient@radian.codes"))...:main | 
| 0520 |  74 61 69 6e 65 72 0a 20 20 27 28 22 52 61 64 69    61 6e 20 4c 4c 43 22 20 2e 20 22 63 6f 6e 74 61  | tainer...'("Radian.LLC"..."conta | 
| 0540 |  63 74 2b 70 72 65 73 63 69 65 6e 74 40 72 61 64    69 61 6e 2e 63 6f 64 65 73 22 29 0a 20 20 3a 6b  | ct+prescient@radian.codes")...:k | 
| 0560 |  65 79 77 6f 72 64 73 0a 20 20 27 28 22 65 78 74    65 6e 73 69 6f 6e 73 22 29 0a 20 20 3a 75 72 6c  | eywords...'("extensions")...:url | 
| 0580 |  20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62    2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72  | ."https://github.com/raxod502/pr | 
| 05a0 |  65 73 63 69 65 6e 74 2e 65 6c 22 29 0a 3b 3b 20    4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a  | escient.el").;;.Local.Variables: | 
| 05c0 |  0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70    69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00  | .;;.no-byte-compile:.t.;;.End:.. | 
| 05e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0600 |  70 72 65 73 63 69 65 6e 74 2d 32 30 32 34 30 32    32 36 2e 32 30 34 2f 70 72 65 73 63 69 65 6e 74  | prescient-20240226.204/prescient | 
| 0620 |  2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .el............................. | 
| 0640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0660 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0680 |  30 31 36 30 34 32 36 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 32 34 33 00 20 30 00 00 00  | 0160426.00000000000.015243..0... | 
| 06a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0700 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0720 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0800 |  3b 3b 3b 20 70 72 65 73 63 69 65 6e 74 2e 65 6c    20 2d 2d 2d 20 42 65 74 74 65 72 20 73 6f 72 74  | ;;;.prescient.el.---.Better.sort | 
| 0820 |  69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e    67 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69  | ing.and.filtering.-*-.lexical-bi | 
| 0840 |  6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b    20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32  | nding:.t.-*-..;;.Copyright.(C).2 | 
| 0860 |  30 31 37 2d 32 30 32 32 20 52 61 64 69 61 6e 20    4c 4c 43 20 61 6e 64 20 63 6f 6e 74 72 69 62 75  | 017-2022.Radian.LLC.and.contribu | 
| 0880 |  74 6f 72 73 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a    20 52 61 64 69 61 6e 20 4c 4c 43 20 3c 63 6f 6e  | tors..;;.Author:.Radian.LLC.<con | 
| 08a0 |  74 61 63 74 2b 70 72 65 73 63 69 65 6e 74 40 72    61 64 69 61 6e 2e 63 6f 64 65 73 3e 0a 3b 3b 20  | tact+prescient@radian.codes>.;;. | 
| 08c0 |  48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 73 3a    2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78  | Homepage:.https://github.com/rax | 
| 08e0 |  6f 64 35 30 32 2f 70 72 65 73 63 69 65 6e 74 2e    65 6c 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20  | od502/prescient.el.;;.Keywords:. | 
| 0900 |  65 78 74 65 6e 73 69 6f 6e 73 0a 3b 3b 20 43 72    65 61 74 65 64 3a 20 37 20 41 75 67 20 32 30 31  | extensions.;;.Created:.7.Aug.201 | 
| 0920 |  37 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71    75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22  | 7.;;.Package-Requires:.((emacs." | 
| 0940 |  32 35 2e 31 22 29 29 0a 3b 3b 20 53 50 44 58 2d    4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69  | 25.1")).;;.SPDX-License-Identifi | 
| 0960 |  65 72 3a 20 4d 49 54 0a 3b 3b 20 56 65 72 73 69    6f 6e 3a 20 36 2e 33 2e 30 0a 0a 3b 3b 3b 20 43  | er:.MIT.;;.Version:.6.3.0..;;;.C | 
| 0980 |  6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 70    72 65 73 63 69 65 6e 74 2e 65 6c 20 69 73 20 61  | ommentary:..;;.prescient.el.is.a | 
| 09a0 |  20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65    20 6c 69 62 72 61 72 79 20 66 6f 72 20 73 6f 72  | .general-purpose.library.for.sor | 
| 09c0 |  74 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69    6e 67 0a 3b 3b 20 63 61 6e 64 69 64 61 74 65 73  | ting.and.filtering.;;.candidates | 
| 09e0 |  2e 0a 0a 3b 3b 20 54 68 65 20 61 6c 67 6f 72 69    74 68 6d 20 6f 66 20 70 72 65 73 63 69 65 6e 74  | ...;;.The.algorithm.of.prescient | 
| 0a00 |  2e 65 6c 20 69 73 20 76 65 72 79 20 73 69 6d 70    6c 65 2e 20 59 6f 75 20 65 6e 74 65 72 20 61 20  | .el.is.very.simple..You.enter.a. | 
| 0a20 |  71 75 65 72 79 2c 20 6f 72 0a 3b 3b 20 6d 75 6c    74 69 70 6c 65 20 71 75 65 72 69 65 73 20 73 65  | query,.or.;;.multiple.queries.se | 
| 0a40 |  70 61 72 61 74 65 64 20 62 79 20 73 70 61 63 65    73 20 28 74 77 6f 20 73 70 61 63 65 73 20 6d 61  | parated.by.spaces.(two.spaces.ma | 
| 0a60 |  74 63 68 20 61 20 6c 69 74 65 72 61 6c 0a 3b 3b    20 73 70 61 63 65 29 2c 20 61 6e 64 20 65 61 63  | tch.a.literal.;;.space),.and.eac | 
| 0a80 |  68 20 71 75 65 72 79 20 66 69 6c 74 65 72 73 20    74 68 65 20 63 61 6e 64 69 64 61 74 65 73 20 62  | h.query.filters.the.candidates.b | 
| 0aa0 |  79 20 6d 61 74 63 68 69 6e 67 20 65 69 74 68 65    72 20 61 0a 3b 3b 20 73 75 62 73 74 72 69 6e 67  | y.matching.either.a.;;.substring | 
| 0ac0 |  20 28 65 2e 67 2e 20 22 73 63 69 65 6e 74 22 20    6d 61 74 63 68 65 73 20 22 70 72 65 73 63 69 65  | .(e.g.."scient".matches."prescie | 
| 0ae0 |  6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 74 68 72    65 73 68 6f 6c 64 22 29 0a 3b 3b 20 6f 72 20 69  | nt-frequency-threshold").;;.or.i | 
| 0b00 |  6e 69 74 69 61 6c 69 73 6d 20 28 65 2e 67 2e 20    22 66 74 22 20 61 6c 73 6f 20 6d 61 74 63 68 65  | nitialism.(e.g.."ft".also.matche | 
| 0b20 |  73 20 74 68 65 20 73 61 6d 65 29 2e 20 54 68 65    6e 2c 20 63 61 6e 64 69 64 61 74 65 73 0a 3b 3b  | s.the.same)..Then,.candidates.;; | 
| 0b40 |  20 61 72 65 20 73 6f 72 74 65 64 20 74 6f 20 70    72 69 6f 72 69 74 69 7a 65 20 72 65 63 65 6e 74  | .are.sorted.to.prioritize.recent | 
| 0b60 |  6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64    61 74 65 73 2c 20 66 6f 6c 6c 6f 77 65 64 20 62  | ly.chosen.candidates,.followed.b | 
| 0b80 |  79 0a 3b 3b 20 66 72 65 71 75 65 6e 74 6c 79 20    63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65  | y.;;.frequently.chosen.candidate | 
| 0ba0 |  73 2c 20 77 69 74 68 20 74 68 65 20 72 65 6d 61    69 6e 69 6e 67 20 63 61 6e 64 69 64 61 74 65 73  | s,.with.the.remaining.candidates | 
| 0bc0 |  20 73 6f 72 74 65 64 0a 3b 3b 20 62 79 20 6c 65    6e 67 74 68 2e 0a 0a 3b 3b 20 70 72 65 73 63 69  | .sorted.;;.by.length...;;.presci | 
| 0be0 |  65 6e 74 2e 65 6c 20 61 69 6d 73 20 74 6f 20 72    65 70 6c 61 63 65 20 61 20 6e 75 6d 62 65 72 20  | ent.el.aims.to.replace.a.number. | 
| 0c00 |  6f 66 20 6f 74 68 65 72 20 70 61 63 6b 61 67 65    73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 3b 3b 20  | of.other.packages,.including.;;. | 
| 0c20 |  49 44 4f 2c 20 53 6d 65 78 2c 20 46 6c 78 2c 20    48 69 73 74 6f 72 69 61 6e 2c 20 61 6e 64 20 43  | IDO,.Smex,.Flx,.Historian,.and.C | 
| 0c40 |  6f 6d 70 61 6e 79 2d 53 74 61 74 69 73 74 69 63    73 2e 20 49 74 20 61 6c 73 6f 20 72 65 70 6c 61  | ompany-Statistics..It.also.repla | 
| 0c60 |  63 65 73 0a 3b 3b 20 74 68 65 20 73 6f 72 74 69    6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67  | ces.;;.the.sorting.and.filtering | 
| 0c80 |  20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73    20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66  | .functionalities.of.completion.f | 
| 0ca0 |  72 61 6d 65 77 6f 72 6b 73 0a 3b 3b 20 73 75 63    68 20 61 73 20 48 65 6c 6d 20 61 6e 64 20 49 76  | rameworks.;;.such.as.Helm.and.Iv | 
| 0cc0 |  79 2e 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 70 72    65 73 63 69 65 6e 74 2e 65 6c 20 66 6f 72 20 49  | y...;;.To.use.prescient.el.for.I | 
| 0ce0 |  76 79 2c 20 73 65 65 20 69 76 79 2d 70 72 65 73    63 69 65 6e 74 2e 65 6c 2e 20 54 6f 20 75 73 65  | vy,.see.ivy-prescient.el..To.use | 
| 0d00 |  0a 3b 3b 20 70 72 65 73 63 69 65 6e 74 2e 65 6c    20 66 6f 72 20 43 6f 6d 70 61 6e 79 2c 20 73 65  | .;;.prescient.el.for.Company,.se | 
| 0d20 |  65 20 63 6f 6d 70 61 6e 79 2d 70 72 65 73 63 69    65 6e 74 2e 65 6c 2e 20 49 6e 20 65 69 74 68 65  | e.company-prescient.el..In.eithe | 
| 0d40 |  72 20 63 61 73 65 2c 0a 3b 3b 20 79 6f 75 20 77    69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20  | r.case,.;;.you.will.most.likely. | 
| 0d60 |  77 61 6e 74 20 79 6f 75 72 20 75 73 61 67 65 20    73 74 61 74 69 73 74 69 63 73 20 74 6f 20 62 65  | want.your.usage.statistics.to.be | 
| 0d80 |  20 73 61 76 65 64 20 61 63 72 6f 73 73 0a 3b 3b    20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 3b  | .saved.across.;;.Emacs.sessions; | 
| 0da0 |  20 74 6f 20 64 6f 20 74 68 69 73 2c 20 65 6e 61    62 6c 65 20 60 70 72 65 73 63 69 65 6e 74 2d 70  | .to.do.this,.enable.`prescient-p | 
| 0dc0 |  65 72 73 69 73 74 2d 6d 6f 64 65 27 20 69 6e 20    79 6f 75 72 0a 3b 3b 20 69 6e 69 74 2d 66 69 6c  | ersist-mode'.in.your.;;.init-fil | 
| 0de0 |  65 20 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65    6c 79 2e 0a 0a 3b 3b 20 46 6f 72 20 6d 6f 72 65  | e.or.interactively...;;.For.more | 
| 0e00 |  20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 65    65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62  | .information,.see.https://github | 
| 0e20 |  2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72    65 73 63 69 65 6e 74 2e 65 6c 2e 0a 0a 3b 3b 3b  | .com/raxod502/prescient.el...;;; | 
| 0e40 |  20 43 6f 64 65 3a 0a 0a 3b 3b 20 54 6f 20 73 65    65 20 74 68 65 20 6f 75 74 6c 69 6e 65 20 6f 66  | .Code:..;;.To.see.the.outline.of | 
| 0e60 |  20 74 68 69 73 20 66 69 6c 65 2c 20 72 75 6e 20    4d 2d 78 20 6f 75 74 6c 69 6e 65 2d 6d 69 6e 6f  | .this.file,.run.M-x.outline-mino | 
| 0e80 |  72 2d 6d 6f 64 65 20 61 6e 64 0a 3b 3b 20 74 68    65 6e 20 70 72 65 73 73 20 43 2d 63 20 40 20 43  | r-mode.and.;;.then.press.C-c.@.C | 
| 0ea0 |  2d 74 2e 20 54 6f 20 61 6c 73 6f 20 73 68 6f 77    20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 66  | -t..To.also.show.the.top-level.f | 
| 0ec0 |  75 6e 63 74 69 6f 6e 73 20 61 6e 64 0a 3b 3b 20    76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61  | unctions.and.;;.variable.declara | 
| 0ee0 |  74 69 6f 6e 73 20 69 6e 20 65 61 63 68 20 73 65    63 74 69 6f 6e 2c 20 72 75 6e 20 4d 2d 78 20 6f  | tions.in.each.section,.run.M-x.o | 
| 0f00 |  63 63 75 72 20 77 69 74 68 20 74 68 65 0a 3b 3b    20 66 6f 6c 6c 6f 77 69 6e 67 20 71 75 65 72 79  | ccur.with.the.;;.following.query | 
| 0f20 |  3a 20 5e 3b 3b 3b 3b 2a 20 5c 7c 5e 28 0a 0a 3b    3b 3b 3b 20 4c 69 62 72 61 72 69 65 73 0a 0a 3b  | :.^;;;;*.\|^(..;;;;.Libraries..; | 
| 0f40 |  3b 20 52 65 71 75 69 72 65 20 60 63 68 61 72 2d    66 6f 6c 64 27 20 73 6f 20 74 68 61 74 20 60 63  | ;.Require.`char-fold'.so.that.`c | 
| 0f60 |  68 61 72 2d 66 6f 6c 64 2d 74 61 62 6c 65 27 20    67 65 74 73 20 64 65 66 69 6e 65 64 2e 0a 3b 3b  | har-fold-table'.gets.defined..;; | 
| 0f80 |  20 4f 74 68 65 72 77 69 73 65 20 60 63 68 61 72    2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 27  | .Otherwise.`char-fold-to-regexp' | 
| 0fa0 |  20 63 61 6e 20 73 69 67 6e 61 6c 20 61 6e 20 65    72 72 6f 72 2e 0a 28 72 65 71 75 69 72 65 20 27  | .can.signal.an.error..(require.' | 
| 0fc0 |  63 68 61 72 2d 66 6f 6c 64 29 0a 28 72 65 71 75    69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65  | char-fold).(require.'cl-lib).(re | 
| 0fe0 |  71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 0a    3b 3b 3b 3b 20 55 73 65 72 20 6f 70 74 69 6f 6e  | quire.'subr-x)..;;;;.User.option | 
| 1000 |  73 0a 0a 28 64 65 66 67 72 6f 75 70 20 70 72 65    73 63 69 65 6e 74 20 6e 69 6c 0a 20 20 22 53 69  | s..(defgroup.prescient.nil..."Si | 
| 1020 |  6d 70 6c 65 20 62 75 74 20 65 66 66 65 63 74 69    76 65 20 63 61 6e 64 69 64 61 74 65 20 73 6f 72  | mple.but.effective.candidate.sor | 
| 1040 |  74 69 6e 67 20 62 79 20 75 73 61 67 65 2e 22 0a    20 20 3a 67 72 6f 75 70 20 27 63 6f 6e 76 65 6e  | ting.by.usage."...:group.'conven | 
| 1060 |  69 65 6e 63 65 0a 20 20 3a 70 72 65 66 69 78 20    22 70 72 65 73 63 69 65 6e 74 2d 22 0a 20 20 3a  | ience...:prefix."prescient-"...: | 
| 1080 |  6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e 6b 20    22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e  | link.'(url-link."https://github. | 
| 10a0 |  63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72 65    73 63 69 65 6e 74 2e 65 6c 22 29 29 0a 0a 28 64  | com/raxod502/prescient.el"))..(d | 
| 10c0 |  65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65    6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74  | efcustom.prescient-history-lengt | 
| 10e0 |  68 20 31 30 30 0a 20 20 22 4e 75 6d 62 65 72 20    6f 66 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73  | h.100..."Number.of.recently.chos | 
| 1100 |  65 6e 20 63 61 6e 64 69 64 61 74 65 73 20 74 68    61 74 20 77 69 6c 6c 20 62 65 20 72 65 6d 65 6d  | en.candidates.that.will.be.remem | 
| 1120 |  62 65 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20    27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 63 75  | bered."...:type.'number)..(defcu | 
| 1140 |  73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 66    72 65 71 75 65 6e 63 79 2d 64 65 63 61 79 20 30  | stom.prescient-frequency-decay.0 | 
| 1160 |  2e 39 39 37 0a 20 20 22 52 61 74 65 20 61 74 20    77 68 69 63 68 20 66 72 65 71 75 65 6e 74 6c 79  | .997..."Rate.at.which.frequently | 
| 1180 |  20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74    65 73 20 77 69 6c 6c 20 62 65 20 66 6f 72 67 6f  | .chosen.candidates.will.be.forgo | 
| 11a0 |  74 74 65 6e 2e 0a 45 76 65 72 79 20 74 69 6d 65    20 61 20 63 61 6e 64 69 64 61 74 65 20 69 73 20  | tten..Every.time.a.candidate.is. | 
| 11c0 |  73 65 6c 65 63 74 65 64 2c 20 61 6c 6c 20 63 61    6e 64 69 64 61 74 65 73 20 61 72 65 20 6d 75 6c  | selected,.all.candidates.are.mul | 
| 11e0 |  74 69 70 6c 69 65 64 0a 62 79 20 74 68 69 73 20    66 61 63 74 6f 72 2e 20 53 65 65 20 61 6c 73 6f  | tiplied.by.this.factor..See.also | 
| 1200 |  20 60 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71    75 65 6e 63 79 2d 74 68 72 65 73 68 6f 6c 64 27  | .`prescient-frequency-threshold' | 
| 1220 |  2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62    65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20  | ."...:type.'number)..(defcustom. | 
| 1240 |  70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 75 65    6e 63 79 2d 74 68 72 65 73 68 6f 6c 64 20 30 2e  | prescient-frequency-threshold.0. | 
| 1260 |  30 35 0a 20 20 22 54 68 72 65 73 68 6f 6c 64 20    66 6f 72 20 66 6f 72 67 65 74 74 69 6e 67 20 61  | 05..."Threshold.for.forgetting.a | 
| 1280 |  62 6f 75 74 20 61 20 66 72 65 71 75 65 6e 74 6c    79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61  | bout.a.frequently.chosen.candida | 
| 12a0 |  74 65 2e 0a 41 6e 79 20 63 61 6e 64 69 64 61 74    65 73 20 77 69 74 68 20 66 72 65 71 75 65 6e 63  | te..Any.candidates.with.frequenc | 
| 12c0 |  69 65 73 20 6c 65 73 73 20 74 68 61 6e 20 74 68    69 73 20 61 66 74 65 72 20 61 20 73 65 6c 65 63  | ies.less.than.this.after.a.selec | 
| 12e0 |  74 69 6f 6e 0a 77 69 6c 6c 20 62 65 20 64 69 73    63 61 72 64 65 64 2e 20 53 65 65 20 61 6c 73 6f  | tion.will.be.discarded..See.also | 
| 1300 |  20 60 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71    75 65 6e 63 79 2d 64 65 63 61 79 27 2e 22 0a 20  | .`prescient-frequency-decay'.".. | 
| 1320 |  20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a    0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73  | .:type.'number)..(defcustom.pres | 
| 1340 |  63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 0a    20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e  | cient-save-file...(expand-file-n | 
| 1360 |  61 6d 65 20 22 76 61 72 2f 70 72 65 73 63 69 65    6e 74 2d 73 61 76 65 2e 65 6c 22 20 75 73 65 72  | ame."var/prescient-save.el".user | 
| 1380 |  2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79    29 0a 20 20 22 46 69 6c 65 20 69 6e 20 77 68 69  | -emacs-directory)..."File.in.whi | 
| 13a0 |  63 68 20 74 6f 20 73 61 76 65 20 75 73 61 67 65    20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 54 68  | ch.to.save.usage.information..Th | 
| 13c0 |  69 73 20 6f 6e 6c 79 20 68 61 73 20 61 6e 20 65    66 66 65 63 74 20 69 66 20 60 70 72 65 73 63 69  | is.only.has.an.effect.if.`presci | 
| 13e0 |  65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65    27 20 69 73 20 65 6e 61 62 6c 65 64 2e 22 0a 20  | ent-persist-mode'.is.enabled.".. | 
| 1400 |  20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 28    64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69  | .:type.'file)..(defcustom.presci | 
| 1420 |  65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f    64 20 27 28 6c 69 74 65 72 61 6c 20 72 65 67 65  | ent-filter-method.'(literal.rege | 
| 1440 |  78 70 20 69 6e 69 74 69 61 6c 69 73 6d 29 0a 20    20 22 48 6f 77 20 74 6f 20 69 6e 74 65 72 70 72  | xp.initialism)..."How.to.interpr | 
| 1460 |  65 74 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20    66 69 6c 74 65 72 69 6e 67 20 71 75 65 72 69 65  | et.prescient.el.filtering.querie | 
| 1480 |  73 2e 0a 51 75 65 72 69 65 73 20 61 72 65 20 66    69 72 73 74 20 73 70 6c 69 74 20 6f 6e 20 73 70  | s..Queries.are.first.split.on.sp | 
| 14a0 |  61 63 65 73 20 28 77 69 74 68 20 74 77 6f 20 63    6f 6e 73 65 63 75 74 69 76 65 20 73 70 61 63 65  | aces.(with.two.consecutive.space | 
| 14c0 |  73 0a 73 74 61 6e 64 69 6e 67 20 66 6f 72 20 61    20 6c 69 74 65 72 61 6c 20 73 70 61 63 65 29 2e  | s.standing.for.a.literal.space). | 
| 14e0 |  20 54 68 65 6e 2c 20 74 68 65 20 63 61 6e 64 69    64 61 74 65 73 20 61 72 65 20 66 69 6c 74 65 72  | .Then,.the.candidates.are.filter | 
| 1500 |  65 64 0a 75 73 69 6e 67 20 65 61 63 68 20 73 75    62 71 75 65 72 79 20 69 6e 20 74 75 72 6e 2e 20  | ed.using.each.subquery.in.turn.. | 
| 1520 |  54 68 69 73 20 76 61 72 69 61 62 6c 65 20 61 66    66 65 63 74 73 20 68 6f 77 20 74 68 61 74 0a 66  | This.variable.affects.how.that.f | 
| 1540 |  69 6c 74 65 72 69 6e 67 20 74 61 6b 65 73 20 70    6c 61 63 65 2e 0a 0a 56 61 6c 75 65 20 60 6c 69  | iltering.takes.place...Value.`li | 
| 1560 |  74 65 72 61 6c 27 20 6d 65 61 6e 73 20 74 68 65    20 73 75 62 71 75 65 72 79 20 6d 75 73 74 20 62  | teral'.means.the.subquery.must.b | 
| 1580 |  65 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66    20 74 68 65 0a 63 61 6e 64 69 64 61 74 65 2e 20  | e.a.substring.of.the.candidate.. | 
| 15a0 |  53 75 70 70 6f 72 74 73 20 63 68 61 72 20 66 6f    6c 64 69 6e 67 2e 0a 0a 56 61 6c 75 65 20 60 6c  | Supports.char.folding...Value.`l | 
| 15c0 |  69 74 65 72 61 6c 2d 70 72 65 66 69 78 27 20 6d    65 61 6e 73 20 74 68 65 20 66 69 72 73 74 20 73  | iteral-prefix'.means.the.first.s | 
| 15e0 |  75 62 71 75 65 72 79 20 6d 75 73 74 20 62 65 20    74 68 65 0a 70 72 65 66 69 78 20 6f 66 20 74 68  | ubquery.must.be.the.prefix.of.th | 
| 1600 |  65 20 63 61 6e 64 69 64 61 74 65 20 61 6e 64 20    74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75  | e.candidate.and.the.remaining.su | 
| 1620 |  62 71 75 65 72 69 65 73 20 6d 75 73 74 20 62 65    0a 70 72 65 66 69 78 65 73 20 6f 66 20 77 6f 72  | bqueries.must.be.prefixes.of.wor | 
| 1640 |  64 73 20 69 6e 20 74 68 65 20 63 61 6e 64 69 64    61 74 65 2e 20 53 75 70 70 6f 72 74 73 20 63 68  | ds.in.the.candidate..Supports.ch | 
| 1660 |  61 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 56 61 6c    75 65 20 60 72 65 67 65 78 70 27 20 6d 65 61 6e  | ar.folding...Value.`regexp'.mean | 
| 1680 |  73 20 74 68 65 20 73 75 62 71 75 65 72 79 20 69    73 20 69 6e 74 65 72 70 72 65 74 65 64 20 64 69  | s.the.subquery.is.interpreted.di | 
| 16a0 |  72 65 63 74 6c 79 20 61 73 20 61 0a 72 65 67 75    6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a  | rectly.as.a.regular.expression.. | 
| 16c0 |  0a 56 61 6c 75 65 20 60 69 6e 69 74 69 61 6c 69    73 6d 27 20 6d 65 61 6e 73 20 74 68 65 20 73 75  | .Value.`initialism'.means.the.su | 
| 16e0 |  62 71 75 65 72 79 20 6d 75 73 74 20 6d 61 74 63    68 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66  | bquery.must.match.a.substring.of | 
| 1700 |  0a 74 68 65 20 69 6e 69 74 69 61 6c 73 20 6f 66    20 74 68 65 20 63 61 6e 64 69 64 61 74 65 2e 0a  | .the.initials.of.the.candidate.. | 
| 1720 |  0a 56 61 6c 75 65 20 60 66 75 7a 7a 79 27 20 6d    65 61 6e 73 20 74 68 65 20 63 68 61 72 61 63 74  | .Value.`fuzzy'.means.the.charact | 
| 1740 |  65 72 73 20 6f 66 20 74 68 65 20 73 75 62 71 75    65 72 79 20 6d 75 73 74 20 6d 61 74 63 68 0a 73  | ers.of.the.subquery.must.match.s | 
| 1760 |  6f 6d 65 20 73 75 62 73 65 74 20 6f 66 20 74 68    6f 73 65 20 6f 66 20 74 68 65 20 63 61 6e 64 69  | ome.subset.of.those.of.the.candi | 
| 1780 |  64 61 74 65 2c 20 69 6e 20 74 68 65 20 63 6f 72    72 65 63 74 20 6f 72 64 65 72 20 62 75 74 0a 6e  | date,.in.the.correct.order.but.n | 
| 17a0 |  6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 63    6f 6e 74 69 67 75 6f 75 73 2e 0a 0a 56 61 6c 75  | ot.necessarily.contiguous...Valu | 
| 17c0 |  65 20 60 70 72 65 66 69 78 27 20 6d 65 61 6e 73    20 74 68 65 20 77 6f 72 64 73 20 28 73 75 62 73  | e.`prefix'.means.the.words.(subs | 
| 17e0 |  74 72 69 6e 67 73 20 6f 66 20 6f 6e 6c 79 20 77    6f 72 64 0a 63 68 61 72 61 63 74 65 72 73 29 20  | trings.of.only.word.characters). | 
| 1800 |  6d 61 74 63 68 20 74 68 65 20 62 65 67 69 6e 6e    69 6e 67 20 6f 66 20 77 6f 72 64 73 20 66 6f 75  | match.the.beginning.of.words.fou | 
| 1820 |  6e 64 20 69 6e 20 74 68 65 20 63 61 6e 64 69 64    61 74 65 2c 0a 69 6e 20 6f 72 64 65 72 2c 20 73  | nd.in.the.candidate,.in.order,.s | 
| 1840 |  65 70 61 72 61 74 65 64 20 62 79 20 74 68 65 20    73 61 6d 65 20 6e 6f 6e 2d 77 6f 72 64 20 63 68  | eparated.by.the.same.non-word.ch | 
| 1860 |  61 72 61 63 74 65 72 73 20 74 68 61 74 20 73 65    70 61 72 61 74 65 0a 77 6f 72 64 73 20 69 6e 20  | aracters.that.separate.words.in. | 
| 1880 |  74 68 65 20 71 75 65 72 79 2e 20 54 68 69 73 20    69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68  | the.query..This.is.similar.to.th | 
| 18a0 |  65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79    6c 65 0a 60 70 61 72 74 69 61 6c 27 2e 0a 0a 56  | e.completion.style.`partial'...V | 
| 18c0 |  61 6c 75 65 20 60 61 6e 63 68 6f 72 65 64 27 20    6d 65 61 6e 73 20 77 6f 72 64 73 20 61 72 65 20  | alue.`anchored'.means.words.are. | 
| 18e0 |  73 65 70 61 72 61 74 65 64 20 62 79 20 63 61 70    69 74 61 6c 20 6c 65 74 74 65 72 73 20 6f 72 0a  | separated.by.capital.letters.or. | 
| 1900 |  73 79 6d 62 6f 6c 73 2c 20 77 69 74 68 20 63 61    70 69 74 61 6c 20 6c 65 74 74 65 72 73 20 62 65  | symbols,.with.capital.letters.be | 
| 1920 |  69 6e 67 20 74 68 65 20 73 74 61 72 74 20 6f 66    20 61 20 6e 65 77 20 77 6f 72 64 2e 20 54 68 69  | ing.the.start.of.a.new.word..Thi | 
| 1940 |  73 0a 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20    60 70 72 65 66 69 78 27 2c 20 62 75 74 20 61 6c  | s.is.similar.to.`prefix',.but.al | 
| 1960 |  6c 6f 77 73 20 66 6f 72 20 6c 65 73 73 20 74 79    70 69 6e 67 2e 0a 0a 56 61 6c 75 65 20 63 61 6e  | lows.for.less.typing...Value.can | 
| 1980 |  20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 20    6f 66 20 61 6e 79 20 6f 66 20 74 68 65 20 61 62  | .also.be.a.list.of.any.of.the.ab | 
| 19a0 |  6f 76 65 20 6d 65 74 68 6f 64 73 2c 20 69 6e 20    77 68 69 63 68 0a 63 61 73 65 20 65 61 63 68 20  | ove.methods,.in.which.case.each. | 
| 19c0 |  6d 65 74 68 6f 64 20 77 69 6c 6c 20 62 65 20 61    70 70 6c 69 65 64 20 69 6e 20 6f 72 64 65 72 20  | method.will.be.applied.in.order. | 
| 19e0 |  75 6e 74 69 6c 20 6f 6e 65 20 6d 61 74 63 68 65    73 2e 0a 0a 56 61 6c 75 65 20 63 61 6e 20 61 6c  | until.one.matches...Value.can.al | 
| 1a00 |  73 6f 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e    20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 61  | so.be.a.function.which.returns.a | 
| 1a20 |  6e 79 20 6f 66 20 74 68 65 20 61 6c 6c 6f 77 61    62 6c 65 0a 76 61 6c 75 65 73 20 64 6f 63 75 6d  | ny.of.the.allowable.values.docum | 
| 1a40 |  65 6e 74 65 64 20 61 62 6f 76 65 2e 0a 0a 46 6f    72 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70  | ented.above...For.backwards.comp | 
| 1a60 |  61 74 69 62 69 6c 69 74 79 2c 20 74 68 65 20 76    61 6c 75 65 20 6f 66 20 74 68 69 73 20 76 61 72  | atibility,.the.value.of.this.var | 
| 1a80 |  69 61 62 6c 65 20 63 61 6e 20 61 6c 73 6f 0a 62    65 20 60 6c 69 74 65 72 61 6c 2b 69 6e 69 74 69  | iable.can.also.be.`literal+initi | 
| 1aa0 |  61 6c 69 73 6d 27 2c 20 77 68 69 63 68 20 65 71    75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20  | alism',.which.equivalent.to.the. | 
| 1ac0 |  6c 69 73 74 20 28 60 6c 69 74 65 72 61 6c 27 0a    60 69 6e 69 74 69 61 6c 69 73 6d 27 29 2e 22 0a  | list.(`literal'.`initialism').". | 
| 1ae0 |  20 20 3a 74 79 70 65 20 27 28 73 65 74 0a 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a  | ..:type.'(set...........(const.: | 
| 1b00 |  74 61 67 20 22 4c 69 74 65 72 61 6c 22 20 6c 69    74 65 72 61 6c 29 0a 20 20 20 20 20 20 20 20 20  | tag."Literal".literal).......... | 
| 1b20 |  20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69    74 65 72 61 6c 20 50 72 65 66 69 78 22 20 6c 69  | .(const.:tag."Literal.Prefix".li | 
| 1b40 |  74 65 72 61 6c 2d 70 72 65 66 69 78 29 0a 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a  | teral-prefix)...........(const.: | 
| 1b60 |  74 61 67 20 22 52 65 67 65 78 70 22 20 72 65 67    65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 28  | tag."Regexp".regexp)...........( | 
| 1b80 |  63 6f 6e 73 74 20 3a 74 61 67 20 22 49 6e 69 74    69 61 6c 69 73 6d 22 20 69 6e 69 74 69 61 6c 69  | const.:tag."Initialism".initiali | 
| 1ba0 |  73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 73 74 20 3a 74 61 67 20 22 46 75 7a 7a 79  | sm)...........(const.:tag."Fuzzy | 
| 1bc0 |  22 20 66 75 7a 7a 79 29 0a 20 20 20 20 20 20 20    20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22  | ".fuzzy)...........(const.:tag." | 
| 1be0 |  50 72 65 66 69 78 22 20 70 72 65 66 69 78 29 0a    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74  | Prefix".prefix)...........(const | 
| 1c00 |  20 3a 74 61 67 20 22 41 6e 63 68 6f 72 65 64 22    20 61 6e 63 68 6f 72 65 64 29 29 29 0a 0a 28 64  | .:tag."Anchored".anchored)))..(d | 
| 1c20 |  65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65    6e 74 2d 66 69 6c 74 65 72 2d 61 6c 69 73 74 0a  | efcustom.prescient-filter-alist. | 
| 1c40 |  20 20 27 28 28 6c 69 74 65 72 61 6c 20 2e 20 70    72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c  | ..'((literal...prescient-literal | 
| 1c60 |  2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 6c 69    74 65 72 61 6c 2d 70 72 65 66 69 78 20 2e 20 70  | -regexp).....(literal-prefix...p | 
| 1c80 |  72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c    2d 70 72 65 66 69 78 2d 72 65 67 65 78 70 29 0a  | rescient-literal-prefix-regexp). | 
| 1ca0 |  20 20 20 20 28 69 6e 69 74 69 61 6c 69 73 6d 20    2e 20 70 72 65 73 63 69 65 6e 74 2d 69 6e 69 74  | ....(initialism...prescient-init | 
| 1cc0 |  69 61 6c 73 2d 72 65 67 65 78 70 29 0a 20 20 20    20 28 72 65 67 65 78 70 20 2e 20 70 72 65 73 63  | ials-regexp).....(regexp...presc | 
| 1ce0 |  69 65 6e 74 2d 72 65 67 65 78 70 2d 72 65 67 65    78 70 29 0a 20 20 20 20 28 66 75 7a 7a 79 20 2e  | ient-regexp-regexp).....(fuzzy.. | 
| 1d00 |  20 70 72 65 73 63 69 65 6e 74 2d 66 75 7a 7a 79    2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 70 72  | .prescient-fuzzy-regexp).....(pr | 
| 1d20 |  65 66 69 78 20 2e 20 70 72 65 73 63 69 65 6e 74    2d 70 72 65 66 69 78 2d 72 65 67 65 78 70 29 0a  | efix...prescient-prefix-regexp). | 
| 1d40 |  20 20 20 20 28 61 6e 63 68 6f 72 65 64 20 2e 20    70 72 65 73 63 69 65 6e 74 2d 61 6e 63 68 6f 72  | ....(anchored...prescient-anchor | 
| 1d60 |  65 64 2d 72 65 67 65 78 70 29 29 0a 20 20 22 41    6e 20 61 6c 69 73 74 20 6f 66 20 66 69 6c 74 65  | ed-regexp))..."An.alist.of.filte | 
| 1d80 |  72 20 6d 65 74 68 6f 64 73 20 61 6e 64 20 74 68    65 69 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a  | r.methods.and.their.functions... | 
| 1da0 |  54 68 65 73 65 20 73 79 6d 62 6f 6c 73 20 63 61    6e 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e  | These.symbols.can.be.included.in | 
| 1dc0 |  20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74    65 72 2d 6d 65 74 68 6f 64 27 2c 20 61 6e 64 0a  | .`prescient-filter-method',.and. | 
| 1de0 |  74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64    69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 77 69  | their.corresponding.functions.wi | 
| 1e00 |  6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 63 72    65 61 74 65 20 72 65 67 65 78 70 73 20 66 6f 72  | ll.be.used.to.create.regexps.for | 
| 1e20 |  0a 6d 61 74 63 68 69 6e 67 20 63 61 6e 64 69 64    61 74 65 73 2e 0a 0a 41 20 66 75 6e 63 74 69 6f  | .matching.candidates...A.functio | 
| 1e40 |  6e 20 73 68 6f 75 6c 64 20 74 61 6b 65 20 74 68    65 20 73 75 62 2d 71 75 65 72 79 20 66 6f 72 20  | n.should.take.the.sub-query.for. | 
| 1e60 |  77 68 69 63 68 20 69 74 20 73 68 6f 75 6c 64 20    63 72 65 61 74 65 20 61 0a 72 65 67 65 78 70 2c  | which.it.should.create.a.regexp, | 
| 1e80 |  20 61 6e 64 20 6b 65 79 77 6f 72 64 20 61 72 67    75 6d 65 6e 74 73 20 6f 66 20 77 68 69 63 68 20  | .and.keyword.arguments.of.which. | 
| 1ea0 |  74 68 65 72 65 20 61 72 65 20 63 75 72 72 65 6e    74 6c 79 3a 0a 0a 20 20 20 20 77 69 74 68 2d 67  | there.are.currently:......with-g | 
| 1ec0 |  72 6f 75 70 20 20 20 20 20 20 3c 62 6f 6f 6c 2d    76 61 6c 75 65 2d 6f 72 2d 61 6c 6c 3e 0a 20 20  | roup......<bool-value-or-all>... | 
| 1ee0 |  20 20 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65    72 20 3c 69 6e 74 2d 76 61 6c 75 65 3e 0a 0a 54  | ..subquery-number.<int-value>..T | 
| 1f00 |  68 65 20 62 6f 6f 6c 65 61 6e 20 6b 65 79 77 6f    72 64 20 61 72 67 75 6d 65 6e 74 20 57 49 54 48  | he.boolean.keyword.argument.WITH | 
| 1f20 |  2d 47 52 4f 55 50 20 64 65 73 63 72 69 62 65 73    20 77 68 65 74 68 65 72 20 74 68 65 0a 66 75 6e  | -GROUP.describes.whether.the.fun | 
| 1f40 |  63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 65 6e 63    6c 6f 73 65 20 6d 61 74 63 68 65 64 20 74 65 78  | ction.should.enclose.matched.tex | 
| 1f60 |  74 20 69 6e 20 61 20 63 61 70 74 75 72 65 20 67    72 6f 75 70 20 28 73 75 63 68 20 61 73 0a 77 69  | t.in.a.capture.group.(such.as.wi | 
| 1f80 |  74 68 20 60 70 72 65 73 63 69 65 6e 74 2d 77 69    74 68 2d 67 72 6f 75 70 27 29 2e 20 20 41 64 64  | th.`prescient-with-group')...Add | 
| 1fa0 |  69 74 69 6f 6e 61 6c 6c 79 2c 20 69 66 20 74 68    65 20 76 61 6c 75 65 20 69 73 20 74 68 65 0a 73  | itionally,.if.the.value.is.the.s | 
| 1fc0 |  79 6d 62 6f 6c 20 60 61 6c 6c 27 2c 20 74 68 65    6e 20 6c 69 74 65 72 61 6c 20 73 75 62 73 74 72  | ymbol.`all',.then.literal.substr | 
| 1fe0 |  69 6e 67 73 20 73 68 6f 75 6c 64 20 62 65 20 65    6e 63 6c 6f 73 65 64 20 69 6e 0a 63 61 70 74 75  | ings.should.be.enclosed.in.captu | 
| 2000 |  72 65 20 67 72 6f 75 70 73 2e 0a 0a 54 68 65 20    69 6e 74 65 67 65 72 20 6b 65 79 77 6f 72 64 20  | re.groups...The.integer.keyword. | 
| 2020 |  61 72 67 75 6d 65 6e 74 20 53 55 42 51 55 45 52    59 2d 4e 55 4d 42 45 52 20 73 74 61 74 65 73 20  | argument.SUBQUERY-NUMBER.states. | 
| 2040 |  74 68 65 20 6f 72 64 65 72 20 6f 66 0a 68 6f 77    20 74 68 65 20 69 6e 70 75 74 20 68 61 73 20 62  | the.order.of.how.the.input.has.b | 
| 2060 |  65 65 6e 20 73 70 6c 69 74 20 69 6e 74 6f 20 69    6e 64 69 76 69 64 75 61 6c 20 73 75 62 71 75 65  | een.split.into.individual.subque | 
| 2080 |  72 69 65 73 20 28 73 74 61 72 74 69 6e 67 0a 77    69 74 68 20 30 29 2e 20 20 46 6f 72 20 65 78 61  | ries.(starting.with.0)...For.exa | 
| 20a0 |  6d 70 6c 65 2c 20 69 66 20 74 68 65 20 69 6e 70    75 74 20 77 61 73 20 5c 22 66 6f 6f 20 62 61 72  | mple,.if.the.input.was.\"foo.bar | 
| 20c0 |  20 62 61 7a 5c 22 20 74 68 65 0a 66 75 6e 63 74    69 6f 6e 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c  | .baz\".the.function.will.be.call | 
| 20e0 |  65 64 20 74 68 72 65 65 20 74 69 6d 65 73 3a 0a    0a 20 20 20 20 28 66 6e 20 5c 22 66 6f 6f 5c 22  | ed.three.times:......(fn.\"foo\" | 
| 2100 |  20 3a 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65    72 20 30 29 0a 20 20 20 20 28 66 6e 20 5c 22 62  | .:subquery-number.0).....(fn.\"b | 
| 2120 |  61 72 5c 22 20 3a 73 75 62 71 75 65 72 79 2d 6e    75 6d 62 65 72 20 31 29 0a 20 20 20 20 28 66 6e  | ar\".:subquery-number.1).....(fn | 
| 2140 |  20 5c 22 62 61 7a 5c 22 20 3a 73 75 62 71 75 65    72 79 2d 6e 75 6d 62 65 72 20 32 29 22 0a 20 20  | .\"baz\".:subquery-number.2)"... | 
| 2160 |  3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b    65 79 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a  | :type.'(alist.:key-type.symbol.: | 
| 2180 |  76 61 6c 75 65 2d 74 79 70 65 20 66 75 6e 63 74    69 6f 6e 29 29 0a 0a 28 64 65 66 63 75 73 74 6f  | value-type.function))..(defcusto | 
| 21a0 |  6d 20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74    2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 20 74  | m.prescient-sort-length-enable.t | 
| 21c0 |  0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73    6f 72 74 20 63 61 6e 64 69 64 61 74 65 73 20 62  | ..."Whether.to.sort.candidates.b | 
| 21e0 |  79 20 6c 65 6e 67 74 68 2e 0a 49 66 20 6e 6f 6e    2d 6e 69 6c 2c 20 74 68 65 6e 20 63 61 6e 64 69  | y.length..If.non-nil,.then.candi | 
| 2200 |  64 61 74 65 73 20 77 69 74 68 20 69 64 65 6e 74    69 63 61 6c 20 72 65 63 65 6e 63 79 20 61 6e 64  | dates.with.identical.recency.and | 
| 2220 |  20 66 72 65 71 75 65 6e 63 79 0a 77 69 6c 6c 20    62 65 20 73 6f 72 74 65 64 20 62 79 20 6c 65 6e  | .frequency.will.be.sorted.by.len | 
| 2240 |  67 74 68 2e 20 49 66 20 6e 69 6c 2c 20 74 68 65    6e 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 6c  | gth..If.nil,.then.they.will.be.l | 
| 2260 |  65 66 74 20 69 6e 20 74 68 65 0a 6f 72 64 65 72    20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c  | eft.in.the.order.of.the.original | 
| 2280 |  20 63 6f 6c 6c 65 63 74 69 6f 6e 2e 0a 0a 49 74    20 6d 69 67 68 74 20 62 65 20 64 65 73 69 72 61  | .collection...It.might.be.desira | 
| 22a0 |  62 6c 65 20 74 6f 20 73 65 74 20 74 68 69 73 20    76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 20  | ble.to.set.this.variable.to.nil. | 
| 22c0 |  28 76 69 61 0a 60 63 6f 6d 70 61 6e 79 2d 70 72    65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65 6e  | (via.`company-prescient-sort-len | 
| 22e0 |  67 74 68 2d 65 6e 61 62 6c 65 27 29 20 77 68 65    6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 61  | gth-enable').when.working.with.a | 
| 2300 |  0a 43 6f 6d 70 61 6e 79 20 62 61 63 6b 65 6e 64    20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 66  | .Company.backend.which.returns.f | 
| 2320 |  75 7a 7a 79 2d 6d 61 74 63 68 65 64 20 72 65 73    75 6c 74 73 20 74 68 61 74 20 63 61 6e 6e 6f 74  | uzzy-matched.results.that.cannot | 
| 2340 |  0a 75 73 65 66 75 6c 6c 79 20 62 65 20 73 6f 72    74 65 64 20 62 79 20 6c 65 6e 67 74 68 20 28 70  | .usefully.be.sorted.by.length.(p | 
| 2360 |  72 65 73 75 6d 61 62 6c 79 2c 20 74 68 65 20 62    61 63 6b 65 6e 64 20 72 65 74 75 72 6e 73 0a 74  | resumably,.the.backend.returns.t | 
| 2380 |  68 65 73 65 20 72 65 73 75 6c 74 73 20 69 6e 20    73 6f 6d 65 20 61 6c 72 65 61 64 79 2d 73 6f 72  | hese.results.in.some.already-sor | 
| 23a0 |  74 65 64 20 6f 72 64 65 72 29 2e 22 0a 20 20 3a    74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a  | ted.order)."...:type.'boolean).. | 
| 23c0 |  28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63    69 65 6e 74 2d 74 69 65 62 72 65 61 6b 65 72 20  | (defcustom.prescient-tiebreaker. | 
| 23e0 |  6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69    6c 2c 20 74 68 65 20 6d 65 74 68 6f 64 20 75 73  | nil..."If.non-nil,.the.method.us | 
| 2400 |  65 64 20 74 6f 20 62 72 65 61 6b 20 74 69 65 73    20 69 6e 73 74 65 61 64 20 6f 66 20 6c 65 6e 67  | ed.to.break.ties.instead.of.leng | 
| 2420 |  74 68 2e 0a 54 68 65 20 76 61 6c 75 65 20 77 69    6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 61 73 20  | th..The.value.will.be.called.as. | 
| 2440 |  61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20    74 77 6f 20 63 61 6e 64 69 64 61 74 65 73 20 74  | a.function.with.two.candidates.t | 
| 2460 |  68 61 74 0a 68 61 76 65 20 74 68 65 20 73 61 6d    65 20 72 65 63 65 6e 63 79 20 61 6e 64 20 66 72  | hat.have.the.same.recency.and.fr | 
| 2480 |  65 71 75 65 6e 63 79 20 69 6e 66 6f 72 6d 61 74    69 6f 6e 2c 20 61 6e 64 20 73 68 6f 75 6c 64 0a  | equency.information,.and.should. | 
| 24a0 |  72 65 74 75 72 6e 20 61 20 6e 75 6d 62 65 72 20    74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 65 69  | return.a.number.to.indicate.thei | 
| 24c0 |  72 20 72 65 6c 61 74 69 76 65 20 6f 72 64 65 72    20 28 6e 65 67 61 74 69 76 65 20 66 6f 72 0a 66  | r.relative.order.(negative.for.f | 
| 24e0 |  69 72 73 74 20 3c 20 73 65 63 6f 6e 64 2c 20 7a    65 72 6f 20 66 6f 72 20 66 69 72 73 74 20 3d 20  | irst.<.second,.zero.for.first.=. | 
| 2500 |  73 65 63 6f 6e 64 2c 20 70 6f 73 69 74 69 76 65    20 66 6f 72 20 66 69 72 73 74 20 3e 0a 73 65 63  | second,.positive.for.first.>.sec | 
| 2520 |  6f 6e 64 29 2c 20 77 68 65 72 65 20 63 61 6e 64    69 64 61 74 65 73 20 61 72 65 20 61 73 73 75 6d  | ond),.where.candidates.are.assum | 
| 2540 |  65 64 20 74 6f 20 73 6f 72 74 20 69 6e 20 61 73    63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 0a 59  | ed.to.sort.in.ascending.order..Y | 
| 2560 |  6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20    74 68 65 20 76 61 72 69 61 62 6c 65 20 60 70 72  | ou.can.also.use.the.variable.`pr | 
| 2580 |  65 73 63 69 65 6e 74 2d 71 75 65 72 79 27 20 74    6f 20 61 63 63 65 73 73 20 74 68 65 0a 6f 72 69  | escient-query'.to.access.the.ori | 
| 25a0 |  67 69 6e 61 6c 20 71 75 65 72 79 20 66 72 6f 6d    20 74 68 65 20 75 73 65 72 20 28 62 75 74 20 73  | ginal.query.from.the.user.(but.s | 
| 25c0 |  65 65 20 74 68 61 74 20 76 61 72 69 61 62 6c 65    20 66 6f 72 0a 63 61 76 65 61 74 73 29 2e 22 0a  | ee.that.variable.for.caveats).". | 
| 25e0 |  20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65    0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | ..:type.'(choice...........(cons | 
| 2600 |  74 20 3a 74 61 67 20 22 4c 65 6e 67 74 68 22 20    6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28  | t.:tag."Length".nil)...........( | 
| 2620 |  66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 43    75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 22 29  | function.:tag."Custom.function") | 
| 2640 |  29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70    72 65 73 63 69 65 6e 74 2d 61 67 67 72 65 73 73  | ))..(defcustom.prescient-aggress | 
| 2660 |  69 76 65 2d 66 69 6c 65 2d 73 61 76 65 20 6e 69    6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20  | ive-file-save.nil..."Whether.to. | 
| 2680 |  73 61 76 65 20 74 68 65 20 63 61 63 68 65 20 66    69 6c 65 20 61 67 67 72 65 73 73 69 76 65 6c 79  | save.the.cache.file.aggressively | 
| 26a0 |  2e 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68    65 6e 20 77 72 69 74 65 20 74 68 65 20 63 61 63  | ..If.non-nil,.then.write.the.cac | 
| 26c0 |  68 65 20 64 61 74 61 20 74 6f 20 60 70 72 65 73    63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27  | he.data.to.`prescient-save-file' | 
| 26e0 |  0a 61 66 74 65 72 20 74 68 65 20 63 61 63 68 65    20 64 61 74 61 20 69 73 20 75 70 64 61 74 65 64  | .after.the.cache.data.is.updated | 
| 2700 |  20 62 79 20 60 70 72 65 73 63 69 65 6e 74 2d 72    65 6d 65 6d 62 65 72 27 20 77 68 65 6e 0a 60 70  | .by.`prescient-remember'.when.`p | 
| 2720 |  72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74    2d 6d 6f 64 65 27 20 69 73 20 61 63 74 69 76 61  | rescient-persist-mode'.is.activa | 
| 2740 |  74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62    6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73  | ted."...:type.'boolean)..(defcus | 
| 2760 |  74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 73 6f    72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d  | tom.prescient-sort-full-matches- | 
| 2780 |  66 69 72 73 74 20 6e 69 6c 0a 20 20 22 57 68 65    74 68 65 72 20 74 6f 20 73 6f 72 74 20 66 75 6c  | first.nil..."Whether.to.sort.ful | 
| 27a0 |  6c 79 20 6d 61 74 63 68 65 64 20 63 61 6e 64 69    64 61 74 65 73 20 62 65 66 6f 72 65 20 6f 74 68  | ly.matched.candidates.before.oth | 
| 27c0 |  65 72 73 2e 0a 0a 50 72 65 73 63 69 65 6e 74 20    63 61 6e 20 73 6f 72 74 20 62 79 20 72 65 63 65  | ers...Prescient.can.sort.by.rece | 
| 27e0 |  6e 63 79 2c 20 66 72 65 71 75 65 6e 63 79 2c 20    61 6e 64 20 63 61 6e 64 69 64 61 74 65 20 6c 65  | ncy,.frequency,.and.candidate.le | 
| 2800 |  6e 67 74 68 2e 0a 57 69 74 68 20 74 68 69 73 20    6f 70 74 69 6f 6e 2c 20 66 75 6c 6c 79 20 6d 61  | ngth..With.this.option,.fully.ma | 
| 2820 |  74 63 68 65 64 20 63 61 6e 64 69 64 61 74 65 73    20 77 69 6c 6c 20 62 65 20 73 6f 72 74 65 64 20  | tched.candidates.will.be.sorted. | 
| 2840 |  62 65 66 6f 72 65 0a 70 61 72 74 69 61 6c 6c 79    20 6d 61 74 63 68 65 64 20 63 61 6e 64 69 64 61  | before.partially.matched.candida | 
| 2860 |  74 65 73 2c 20 62 75 74 20 63 61 6e 64 69 64 61    74 65 73 20 69 6e 20 65 61 63 68 20 67 72 6f 75  | tes,.but.candidates.in.each.grou | 
| 2880 |  70 20 77 69 6c 6c 0a 73 74 69 6c 6c 20 62 65 20    73 6f 72 74 65 64 20 6c 69 6b 65 20 6e 6f 72 6d  | p.will.still.be.sorted.like.norm | 
| 28a0 |  61 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f    6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74  | al."...:type.'boolean)..(defcust | 
| 28c0 |  6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65    2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 20 74 0a  | om.prescient-use-char-folding.t. | 
| 28e0 |  20 20 22 57 68 65 74 68 65 72 20 63 65 72 74 61    69 6e 20 6c 69 74 65 72 61 6c 20 66 69 6c 74 65  | .."Whether.certain.literal.filte | 
| 2900 |  72 69 6e 67 20 6d 65 74 68 6f 64 73 20 75 73 65    20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 64 69  | ring.methods.use.character.foldi | 
| 2920 |  6e 67 2e 0a 0a 54 68 69 73 20 61 66 66 65 63 74    73 20 74 68 65 20 60 6c 69 74 65 72 61 6c 27 20  | ng...This.affects.the.`literal'. | 
| 2940 |  61 6e 64 20 60 6c 69 74 65 72 61 6c 2d 70 72 65    66 69 78 27 20 66 69 6c 74 65 72 69 6e 67 20 6d  | and.`literal-prefix'.filtering.m | 
| 2960 |  65 74 68 6f 64 73 2e 0a 0a 49 6e 20 45 6d 61 63    73 20 76 65 72 73 69 6f 6e 73 20 32 37 20 6f 72  | ethods...In.Emacs.versions.27.or | 
| 2980 |  20 67 72 65 61 74 65 72 2c 20 73 65 65 20 61 6c    73 6f 20 74 68 65 20 63 75 73 74 6f 6d 69 7a 61  | .greater,.see.also.the.customiza | 
| 29a0 |  62 6c 65 0a 76 61 72 69 61 62 6c 65 73 20 60 63    68 61 72 2d 66 6f 6c 64 2d 69 6e 63 6c 75 64 65  | ble.variables.`char-fold-include | 
| 29c0 |  27 2c 20 60 63 68 61 72 2d 66 6f 6c 64 2d 65 78    63 6c 75 64 65 27 2c 20 61 6e 64 0a 60 63 68 61  | ',.`char-fold-exclude',.and.`cha | 
| 29e0 |  72 2d 66 6f 6c 64 2d 73 79 6d 6d 65 74 72 69 63    27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f  | r-fold-symmetric'."...:type.'boo | 
| 2a00 |  6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f    6d 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d  | lean)..(defcustom.prescient-use- | 
| 2a20 |  63 61 73 65 2d 66 6f 6c 64 69 6e 67 20 27 73 6d    61 72 74 0a 20 20 22 57 68 65 74 68 65 72 20 66  | case-folding.'smart..."Whether.f | 
| 2a40 |  69 6c 74 65 72 69 6e 67 20 6d 65 74 68 6f 64 73    20 61 72 65 20 63 61 73 65 20 66 6f 6c 64 69 6e  | iltering.methods.are.case.foldin | 
| 2a60 |  67 2e 0a 0a 49 66 20 74 2c 20 61 6c 77 61 79 73    20 75 73 65 20 63 61 73 65 20 66 6f 6c 64 69 6e  | g...If.t,.always.use.case.foldin | 
| 2a80 |  67 2e 20 20 49 66 20 6e 69 6c 2c 20 6e 65 76 65    72 20 75 73 65 20 63 61 73 65 20 66 6f 6c 64 69  | g...If.nil,.never.use.case.foldi | 
| 2aa0 |  6e 67 2e 0a 49 66 20 60 73 6d 61 72 74 27 20 28    74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 75 73  | ng..If.`smart'.(the.default),.us | 
| 2ac0 |  65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 20 6f    6e 6c 79 20 77 68 65 6e 20 74 68 65 20 71 75 65  | e.case.folding.only.when.the.que | 
| 2ae0 |  72 79 0a 63 6f 6e 74 61 69 6e 73 20 6e 6f 20 75    70 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72  | ry.contains.no.upper-case.letter | 
| 2b00 |  73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68    6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28  | s."...:type.'(choice...........( | 
| 2b20 |  63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6c 77 61    79 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20  | const.:tag."Always".t).......... | 
| 2b40 |  20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 65    76 65 72 22 20 6e 69 6c 29 0a 20 20 20 20 20 20  | .(const.:tag."Never".nil)....... | 
| 2b60 |  20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20    22 55 6e 6c 65 73 73 20 75 73 69 6e 67 20 75 70  | ....(const.:tag."Unless.using.up | 
| 2b80 |  70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73    22 20 73 6d 61 72 74 29 29 29 0a 0a 28 64 65 66  | per-case.letters".smart)))..(def | 
| 2ba0 |  63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74    2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 68 69 67 68  | custom.prescient-completion-high | 
| 2bc0 |  6c 69 67 68 74 2d 6d 61 74 63 68 65 73 20 74 0a    20 20 22 57 68 65 74 68 65 72 20 74 68 65 20 60  | light-matches.t..."Whether.the.` | 
| 2be0 |  70 72 65 73 63 69 65 6e 74 27 20 63 6f 6d 70 6c    65 74 69 6f 6e 20 73 74 79 6c 65 20 73 68 6f 75  | prescient'.completion.style.shou | 
| 2c00 |  6c 64 20 68 69 67 68 6c 69 67 68 74 20 6d 61 74    63 68 65 73 2e 0a 0a 49 66 20 60 63 6f 6d 70 6c  | ld.highlight.matches...If.`compl | 
| 2c20 |  65 74 69 6f 6e 2d 6c 61 7a 79 2d 68 69 6c 69 74    27 20 69 73 20 62 6f 75 6e 64 20 61 6e 64 20 6e  | etion-lazy-hilit'.is.bound.and.n | 
| 2c40 |  6f 6e 2d 6e 69 6c 2c 20 74 68 65 6e 20 74 68 69    73 20 75 73 65 72 0a 6f 70 74 69 6f 6e 20 69 73  | on-nil,.then.this.user.option.is | 
| 2c60 |  20 69 67 6e 6f 72 65 64 20 69 6e 20 66 61 76 6f    72 20 6f 66 20 74 68 61 74 20 76 61 72 69 61 62  | .ignored.in.favor.of.that.variab | 
| 2c80 |  6c 65 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68    65 20 66 61 63 65 73 20 60 70 72 65 73 63 69 65  | le...See.also.the.faces.`prescie | 
| 2ca0 |  6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c    69 67 68 74 27 20 61 6e 64 0a 60 70 72 65 73 63  | nt-primary-highlight'.and.`presc | 
| 2cc0 |  69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68    69 67 68 6c 69 67 68 74 27 2e 22 0a 20 20 3a 74  | ient-secondary-highlight'."...:t | 
| 2ce0 |  79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28    64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d  | ype.'boolean)..(define-obsolete- | 
| 2d00 |  66 61 63 65 2d 61 6c 69 61 73 20 27 73 65 6c 65    63 74 72 75 6d 2d 70 72 69 6d 61 72 79 2d 68 69  | face-alias.'selectrum-primary-hi | 
| 2d20 |  67 68 6c 69 67 68 74 0a 20 20 27 70 72 65 73 63    69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 67  | ghlight...'prescient-primary-hig | 
| 2d40 |  68 6c 69 67 68 74 20 74 29 0a 28 64 65 66 69 6e    65 2d 6f 62 73 6f 6c 65 74 65 2d 66 61 63 65 2d  | hlight.t).(define-obsolete-face- | 
| 2d60 |  61 6c 69 61 73 20 27 73 65 6c 65 63 74 72 75 6d    2d 70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61  | alias.'selectrum-prescient-prima | 
| 2d80 |  72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 27    70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61 72  | ry-highlight...'prescient-primar | 
| 2da0 |  79 2d 68 69 67 68 6c 69 67 68 74 20 74 29 0a 28    64 65 66 66 61 63 65 20 70 72 65 73 63 69 65 6e  | y-highlight.t).(defface.prescien | 
| 2dc0 |  74 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c 69    67 68 74 0a 20 20 27 28 28 74 20 3a 77 65 69 67  | t-primary-highlight...'((t.:weig | 
| 2de0 |  68 74 20 62 6f 6c 64 29 29 0a 20 20 22 46 61 63    65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69  | ht.bold))..."Face.used.to.highli | 
| 2e00 |  67 68 74 20 74 68 65 20 70 61 72 74 73 20 6f 66    20 63 61 6e 64 69 64 61 74 65 73 20 74 68 61 74  | ght.the.parts.of.candidates.that | 
| 2e20 |  20 6d 61 74 63 68 20 74 68 65 20 69 6e 70 75 74    2e 22 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73  | .match.the.input.")..(define-obs | 
| 2e40 |  6f 6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73    20 27 73 65 6c 65 63 74 72 75 6d 2d 73 65 63 6f  | olete-face-alias.'selectrum-seco | 
| 2e60 |  6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a    20 20 27 70 72 65 73 63 69 65 6e 74 2d 73 65 63  | ndary-highlight...'prescient-sec | 
| 2e80 |  6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74    20 74 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f  | ondary-highlight.t).(define-obso | 
| 2ea0 |  6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20    27 73 65 6c 65 63 74 72 75 6d 2d 70 72 65 73 63  | lete-face-alias.'selectrum-presc | 
| 2ec0 |  69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68    69 67 68 6c 69 67 68 74 0a 20 20 27 70 72 65 73  | ient-secondary-highlight...'pres | 
| 2ee0 |  63 69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d    68 69 67 68 6c 69 67 68 74 20 74 29 0a 28 64 65  | cient-secondary-highlight.t).(de | 
| 2f00 |  66 66 61 63 65 20 70 72 65 73 63 69 65 6e 74 2d    73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69  | fface.prescient-secondary-highli | 
| 2f20 |  67 68 74 0a 20 20 27 28 28 74 20 3a 69 6e 68 65    72 69 74 20 70 72 65 73 63 69 65 6e 74 2d 70 72  | ght...'((t.:inherit.prescient-pr | 
| 2f40 |  69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 20    3a 75 6e 64 65 72 6c 69 6e 65 20 74 29 29 0a 20  | imary-highlight.:underline.t)).. | 
| 2f60 |  20 22 41 64 64 69 74 69 6f 6e 61 6c 20 66 61 63    65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69  | ."Additional.face.used.to.highli | 
| 2f80 |  67 68 74 20 70 61 72 74 73 20 6f 66 20 63 61 6e    64 69 64 61 74 65 73 2e 0a 0a 4d 61 79 20 62 65  | ght.parts.of.candidates...May.be | 
| 2fa0 |  20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67    68 74 20 70 61 72 74 73 20 6f 66 20 63 61 6e 64  | .used.to.highlight.parts.of.cand | 
| 2fc0 |  69 64 61 74 65 73 20 74 68 61 74 20 6d 61 74 63    68 20 73 70 65 63 69 66 69 63 0a 70 61 72 74 73  | idates.that.match.specific.parts | 
| 2fe0 |  20 6f 66 20 74 68 65 20 69 6e 70 75 74 2e 22 29    0a 0a 3b 3b 3b 3b 20 43 61 63 68 65 73 0a 0a 28  | .of.the.input.")..;;;;.Caches..( | 
| 3000 |  64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74    2d 2d 68 69 73 74 6f 72 79 20 28 6d 61 6b 65 2d  | defvar.prescient--history.(make- | 
| 3020 |  68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74    20 27 65 71 75 61 6c 29 0a 20 20 22 48 61 73 68  | hash-table.:test.'equal)..."Hash | 
| 3040 |  20 74 61 62 6c 65 20 6f 66 20 72 65 63 65 6e 74    6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64  | .table.of.recently.chosen.candid | 
| 3060 |  61 74 65 73 2e 0a 54 68 65 20 6b 65 79 73 20 61    72 65 20 63 61 6e 64 69 64 61 74 65 73 20 61 73  | ates..The.keys.are.candidates.as | 
| 3080 |  20 73 74 72 69 6e 67 73 20 61 6e 64 20 74 68 65    20 76 61 6c 75 65 73 20 61 72 65 20 30 2d 62 61  | .strings.and.the.values.are.0-ba | 
| 30a0 |  73 65 64 0a 69 6e 64 69 63 65 73 2c 20 6c 65 73    73 20 74 68 61 6e 20 60 70 72 65 73 63 69 65 6e  | sed.indices,.less.than.`prescien | 
| 30c0 |  74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68    27 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66  | t-history-length'..The.number.of | 
| 30e0 |  0a 76 61 6c 75 65 73 20 77 69 6c 6c 20 62 65 20    61 74 20 6d 6f 73 74 20 60 70 72 65 73 63 69 65  | .values.will.be.at.most.`prescie | 
| 3100 |  6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74    68 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72  | nt-history-length'.")..(defun.pr | 
| 3120 |  65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79    2d 61 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52  | escient--history-as-list.()..."R | 
| 3140 |  65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20    74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 6c  | eturn.a.list.of.the.most.recentl | 
| 3160 |  79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61    74 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a  | y.chosen.candidates.as.strings.. | 
| 3180 |  54 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 6c    79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61  | The.most.recently.chosen.candida | 
| 31a0 |  74 65 73 20 61 72 65 20 61 74 20 74 68 65 20 66    72 6f 6e 74 20 6f 66 20 74 68 65 0a 6c 69 73 74  | tes.are.at.the.front.of.the.list | 
| 31c0 |  2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20    69 73 20 6d 6f 73 74 6c 79 20 75 73 65 66 75 6c  | ..This.function.is.mostly.useful | 
| 31e0 |  20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 2e 22    0a 20 20 28 6c 65 74 20 28 28 68 69 73 74 6f 72  | .for.debugging."...(let.((histor | 
| 3200 |  79 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 70    72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79  | y.(make-vector.prescient-history | 
| 3220 |  2d 6c 65 6e 67 74 68 20 6e 69 6c 29 29 29 0a 20    20 20 20 28 6d 61 70 68 61 73 68 0a 20 20 20 20  | -length.nil))).....(maphash..... | 
| 3240 |  20 28 6c 61 6d 62 64 61 20 28 63 61 6e 64 20 69    6e 64 65 78 29 0a 20 20 20 20 20 20 20 28 69 67  | .(lambda.(cand.index)........(ig | 
| 3260 |  6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20    20 20 20 20 20 28 61 73 65 74 20 68 69 73 74 6f  | nore-errors..........(aset.histo | 
| 3280 |  72 79 20 69 6e 64 65 78 20 63 61 6e 64 29 29 29    0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d  | ry.index.cand)))......prescient- | 
| 32a0 |  2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 28 63    6c 2d 72 65 6d 6f 76 65 20 6e 69 6c 20 28 61 70  | -history).....(cl-remove.nil.(ap | 
| 32c0 |  70 65 6e 64 20 68 69 73 74 6f 72 79 20 6e 69 6c    29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72  | pend.history.nil))))..(defvar.pr | 
| 32e0 |  65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e    63 79 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61  | escient--frequency.(make-hash-ta | 
| 3300 |  62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c    29 0a 20 20 22 48 61 73 68 20 74 61 62 6c 65 20  | ble.:test.'equal)..."Hash.table. | 
| 3320 |  6f 66 20 66 72 65 71 75 65 6e 74 6c 79 20 63 68    6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 2e  | of.frequently.chosen.candidates. | 
| 3340 |  0a 54 68 65 20 6b 65 79 73 20 61 72 65 20 63 61    6e 64 69 64 61 74 65 73 20 61 73 20 73 74 72 69  | .The.keys.are.candidates.as.stri | 
| 3360 |  6e 67 73 20 61 6e 64 20 74 68 65 20 76 61 6c 75    65 73 20 61 72 65 0a 66 72 65 71 75 65 6e 63 69  | ngs.and.the.values.are.frequenci | 
| 3380 |  65 73 20 28 66 6c 6f 61 74 69 6e 67 2d 70 6f 69    6e 74 20 6e 75 6d 62 65 72 73 29 2e 20 46 72 65  | es.(floating-point.numbers)..Fre | 
| 33a0 |  71 75 65 6e 63 69 65 73 20 77 69 6c 6c 20 62 65    20 61 74 0a 6c 65 61 73 74 20 60 70 72 65 73 63  | quencies.will.be.at.least.`presc | 
| 33c0 |  69 65 6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 74    68 72 65 73 68 6f 6c 64 27 2e 22 29 0a 0a 28 64  | ient-frequency-threshold'.")..(d | 
| 33e0 |  65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d    2d 63 61 63 68 65 2d 6c 6f 61 64 65 64 20 6e 69  | efvar.prescient--cache-loaded.ni | 
| 3400 |  6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20    70 72 65 73 63 69 65 6e 74 2e 65 6c 20 64 61 74  | l..."Non-nil.if.prescient.el.dat | 
| 3420 |  61 20 77 61 73 20 6c 6f 61 64 65 64 20 66 72 6f    6d 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76  | a.was.loaded.from.`prescient-sav | 
| 3440 |  65 2d 66 69 6c 65 27 2e 0a 45 76 65 6e 20 69 66    20 74 68 65 20 6c 6f 61 64 20 66 61 69 6c 65 64  | e-file'..Even.if.the.load.failed | 
| 3460 |  2c 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20    69 73 20 73 74 69 6c 6c 20 73 65 74 20 74 6f 20  | ,.this.variable.is.still.set.to. | 
| 3480 |  6e 6f 6e 2d 6e 69 6c 0a 77 68 65 6e 20 60 70 72    65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 27 20 69  | non-nil.when.`prescient--load'.i | 
| 34a0 |  73 20 63 61 6c 6c 65 64 2e 22 29 0a 0a 28 64 65    66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d  | s.called.")..(defvar.prescient-- | 
| 34c0 |  73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 20 30 0a    20 20 22 4e 75 6d 62 65 72 20 6f 66 20 74 69 6d  | serial-number.0..."Number.of.tim | 
| 34e0 |  65 73 20 60 70 72 65 73 63 69 65 6e 74 2d 72 65    6d 65 6d 62 65 72 27 20 68 61 73 20 62 65 65 6e  | es.`prescient-remember'.has.been | 
| 3500 |  20 63 61 6c 6c 65 64 2e 0a 0a 54 68 69 73 20 69    73 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d  | .called...This.is.used.to.determ | 
| 3520 |  69 6e 65 20 77 68 69 63 68 20 73 65 74 20 6f 66    20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20  | ine.which.set.of.changes.to.the. | 
| 3540 |  73 61 76 65 20 66 69 6c 65 0a 73 68 6f 75 6c 64    20 5c 22 77 69 6e 5c 22 20 77 68 65 6e 20 74 77  | save.file.should.\"win\".when.tw | 
| 3560 |  6f 20 63 6f 6e 63 75 72 72 65 6e 74 20 45 6d 61    63 73 20 73 65 73 73 69 6f 6e 73 20 77 61 6e 74  | o.concurrent.Emacs.sessions.want | 
| 3580 |  20 74 6f 20 6d 6f 64 69 66 79 0a 69 74 2e 22 29    0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65  | .to.modify.it.")..(defun.prescie | 
| 35a0 |  6e 74 2d 66 6f 72 67 65 74 20 28 63 61 6e 64 69    64 61 74 65 29 0a 20 20 22 52 65 6d 6f 76 65 20  | nt-forget.(candidate)..."Remove. | 
| 35c0 |  43 41 4e 44 49 44 41 54 45 20 66 72 6f 6d 20 72    65 63 65 6e 63 79 20 61 6e 64 20 66 72 65 71 75  | CANDIDATE.from.recency.and.frequ | 
| 35e0 |  65 6e 63 79 20 72 65 63 6f 72 64 73 2e 22 0a 20    20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20  | ency.records."...(interactive... | 
| 3600 |  20 28 6c 69 73 74 20 28 63 6f 6d 70 6c 65 74 69    6e 67 2d 72 65 61 64 20 22 46 6f 72 67 65 74 20  | .(list.(completing-read."Forget. | 
| 3620 |  63 61 6e 64 69 64 61 74 65 3a 20 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | candidate:.".................... | 
| 3640 |  20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20    63 61 6e 64 69 64 61 74 65 73 20 61 72 65 20 73  | .......;;.Since.candidates.are.s | 
| 3660 |  68 61 72 65 64 2c 20 73 65 6c 65 63 74 20 66 72    6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | hared,.select.from.............. | 
| 3680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    74 68 65 20 74 61 62 6c 65 20 77 69 74 68 20 74  | .............;;.the.table.with.t | 
| 36a0 |  68 65 20 6d 6f 73 74 20 63 61 6e 64 69 64 61 74    65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | he.most.candidates.............. | 
| 36c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 28 3e 20 28 68 61 73 68 2d 74 61 62 6c 65  | ..............(if.(>.(hash-table | 
| 36e0 |  2d 73 69 7a 65 20 70 72 65 73 63 69 65 6e 74 2d    2d 66 72 65 71 75 65 6e 63 79 29 0a 20 20 20 20  | -size.prescient--frequency)..... | 
| 3700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61  | .............................(ha | 
| 3720 |  73 68 2d 74 61 62 6c 65 2d 73 69 7a 65 20 70 72    65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79  | sh-table-size.prescient--history | 
| 3740 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )).............................. | 
| 3760 |  20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71    75 65 6e 63 79 0a 20 20 20 20 20 20 20 20 20 20  | .prescient--frequency........... | 
| 3780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73  | ..................prescient--his | 
| 37a0 |  74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tory)........................... | 
| 37c0 |  6e 69 6c 20 74 29 29 29 0a 20 20 28 72 65 6d 68    61 73 68 20 63 61 6e 64 69 64 61 74 65 20 70 72  | nil.t)))...(remhash.candidate.pr | 
| 37e0 |  65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79    29 0a 20 20 28 72 65 6d 68 61 73 68 20 63 61 6e  | escient--history)...(remhash.can | 
| 3800 |  64 69 64 61 74 65 20 70 72 65 73 63 69 65 6e 74    2d 2d 66 72 65 71 75 65 6e 63 79 29 29 0a 0a 3b  | didate.prescient--frequency))..; | 
| 3820 |  3b 3b 3b 20 50 65 72 73 69 73 74 65 6e 63 65 0a    0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65  | ;;;.Persistence..(defvar.prescie | 
| 3840 |  6e 74 2d 2d 63 61 63 68 65 2d 76 65 72 73 69 6f    6e 20 35 0a 20 20 22 43 75 72 72 65 6e 74 20 76  | nt--cache-version.5..."Current.v | 
| 3860 |  65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 66    20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65  | ersion.number.of.`prescient-save | 
| 3880 |  2d 66 69 6c 65 27 20 66 6f 72 6d 61 74 2e 22 29    0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69  | -file'.format.")..(defvar.presci | 
| 38a0 |  65 6e 74 2d 63 61 63 68 65 2d 63 61 6c 6c 62 61    63 6b 20 23 27 69 67 6e 6f 72 65 0a 20 20 22 43  | ent-cache-callback.#'ignore..."C | 
| 38c0 |  61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e    20 63 61 6c 6c 65 64 20 62 79 20 6c 6f 61 64 69  | allback.function.called.by.loadi | 
| 38e0 |  6e 67 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61    76 65 2d 66 69 6c 65 27 2e 0a 41 20 60 66 75 6e  | ng.`prescient-save-file'..A.`fun | 
| 3900 |  63 61 6c 6c 27 20 74 6f 20 74 68 69 73 20 76 61    72 69 61 62 6c 65 20 69 73 20 77 72 69 74 74 65  | call'.to.this.variable.is.writte | 
| 3920 |  6e 20 74 6f 20 60 70 72 65 73 63 69 65 6e 74 2d    73 61 76 65 2d 66 69 6c 65 27 2e 0a 54 68 65 20  | n.to.`prescient-save-file'..The. | 
| 3940 |  66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 70 72 6f    64 75 63 65 20 65 72 72 6f 72 73 3b 20 74 68 65  | function.may.produce.errors;.the | 
| 3960 |  79 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65    64 2e 0a 0a 55 73 75 61 6c 6c 79 20 74 68 69 73  | y.will.be.ignored...Usually.this | 
| 3980 |  20 76 61 72 69 61 62 6c 65 20 69 73 20 64 79 6e    61 6d 69 63 61 6c 6c 79 20 62 6f 75 6e 64 20 74  | .variable.is.dynamically.bound.t | 
| 39a0 |  6f 20 61 6e 6f 74 68 65 72 20 76 61 6c 75 65 20    77 68 69 6c 65 0a 60 70 72 65 73 63 69 65 6e 74  | o.another.value.while.`prescient | 
| 39c0 |  2d 73 61 76 65 2d 66 69 6c 65 27 20 69 73 20 6c    6f 61 64 65 64 2e 22 29 0a 0a 28 64 65 66 75 6e  | -save-file'.is.loaded.")..(defun | 
| 39e0 |  20 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64    2d 73 61 76 65 2d 66 69 6c 65 20 28 29 0a 20 20  | .prescient--load-save-file.()... | 
| 3a00 |  22 4c 6f 61 64 20 60 70 72 65 73 63 69 65 6e 74    2d 73 61 76 65 2d 66 69 6c 65 27 2c 20 69 67 6e  | "Load.`prescient-save-file',.ign | 
| 3a20 |  6f 72 69 6e 67 20 65 72 72 6f 72 73 2e 22 0a 20    20 28 6c 65 74 20 28 28 6c 6f 61 64 2d 73 6f 75  | oring.errors."...(let.((load-sou | 
| 3a40 |  72 63 65 2d 66 69 6c 65 2d 66 75 6e 63 74 69 6f    6e 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 67 6e  | rce-file-function.nil)).....(ign | 
| 3a60 |  6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20    20 28 6c 6f 61 64 20 70 72 65 73 63 69 65 6e 74  | ore-errors.......(load.prescient | 
| 3a80 |  2d 73 61 76 65 2d 66 69 6c 65 20 27 6e 6f 65 72    72 6f 72 20 27 6e 6f 6d 65 73 73 61 67 29 29 29  | -save-file.'noerror.'nomessag))) | 
| 3aa0 |  29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69    65 6e 74 2d 2d 6c 6f 61 64 20 28 29 0a 20 20 22  | )..(defun.prescient--load.()..." | 
| 3ac0 |  52 65 61 64 20 64 61 74 61 20 66 72 6f 6d 20 60    70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66  | Read.data.from.`prescient-save-f | 
| 3ae0 |  69 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61    63 74 69 76 65 29 0a 20 20 28 63 6c 2d 6c 65 74  | ile'."...(interactive)...(cl-let | 
| 3b00 |  66 20 28 28 70 72 65 73 63 69 65 6e 74 2d 63 61    63 68 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20  | f.((prescient-cache-callback.... | 
| 3b20 |  20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64    61 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20  | ..........(lambda.(&rest.args).. | 
| 3b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77    68 65 6e 20 28 65 71 75 61 6c 20 28 70 6c 69 73  | ..............(when.(equal.(plis | 
| 3b60 |  74 2d 67 65 74 20 61 72 67 73 20 3a 76 65 72 73    69 6f 6e 29 20 70 72 65 73 63 69 65 6e 74 2d 2d  | t-get.args.:version).prescient-- | 
| 3b80 |  63 61 63 68 65 2d 76 65 72 73 69 6f 6e 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cache-version).................. | 
| 3ba0 |  28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d    2d 68 69 73 74 6f 72 79 20 28 70 6c 69 73 74 2d  | (setq.prescient--history.(plist- | 
| 3bc0 |  67 65 74 20 61 72 67 73 20 3a 68 69 73 74 6f 72    79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | get.args.:history))............. | 
| 3be0 |  20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 63    69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 20  | .....(setq.prescient--frequency. | 
| 3c00 |  28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 73 20    3a 66 72 65 71 75 65 6e 63 79 29 29 0a 20 20 20  | (plist-get.args.:frequency)).... | 
| 3c20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 73  | ..............(setq.prescient--s | 
| 3c40 |  65 72 69 61 6c 2d 6e 75 6d 62 65 72 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | erial-number.................... | 
| 3c60 |  20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 61    72 67 73 20 3a 73 65 72 69 61 6c 2d 6e 75 6d 62  | ....(plist-get.args.:serial-numb | 
| 3c80 |  65 72 29 29 29 29 29 29 0a 20 20 20 20 28 70 72    65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 2d 73 61  | er)))))).....(prescient--load-sa | 
| 3ca0 |  76 65 2d 66 69 6c 65 29 29 0a 20 20 28 73 65 74    71 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63  | ve-file))...(setq.prescient--cac | 
| 3cc0 |  68 65 2d 6c 6f 61 64 65 64 20 74 29 29 0a 0a 28    64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d  | he-loaded.t))..(defun.prescient- | 
| 3ce0 |  2d 73 61 76 65 20 28 29 0a 20 20 22 57 72 69 74    65 20 64 61 74 61 20 74 6f 20 60 70 72 65 73 63  | -save.()..."Write.data.to.`presc | 
| 3d00 |  69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e    22 0a 20 20 28 63 6c 2d 6c 65 74 66 2a 20 28 28  | ient-save-file'."...(cl-letf*.(( | 
| 3d20 |  73 61 76 65 64 2d 73 65 72 69 61 6c 2d 6e 75 6d    62 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20  | saved-serial-number.nil)........ | 
| 3d40 |  20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74    2d 63 61 63 68 65 2d 63 61 6c 6c 62 61 63 6b 0a  | ......(prescient-cache-callback. | 
| 3d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c    61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67  | ..............(lambda.(&rest.arg | 
| 3d80 |  73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20  | s).................(when.(equal. | 
| 3da0 |  28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 73 20    3a 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20  | (plist-get.args.:version)....... | 
| 3dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74  | .......................prescient | 
| 3de0 |  2d 2d 63 61 63 68 65 2d 76 65 72 73 69 6f 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | --cache-version)................ | 
| 3e00 |  20 20 20 28 73 65 74 71 20 73 61 76 65 64 2d 73    65 72 69 61 6c 2d 6e 75 6d 62 65 72 0a 20 20 20  | ...(setq.saved-serial-number.... | 
| 3e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20  | .....................(plist-get. | 
| 3e40 |  61 72 67 73 20 3a 73 65 72 69 61 6c 2d 6e 75 6d    62 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20  | args.:serial-number)))))........ | 
| 3e60 |  20 20 20 20 20 20 28 70 72 69 6e 74 2d 6c 65 6e    67 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20  | ......(print-length.nil)........ | 
| 3e80 |  20 20 20 20 20 20 28 70 72 69 6e 74 2d 6c 65 76    65 6c 20 6e 69 6c 29 29 0a 20 20 20 20 28 70 72  | ......(print-level.nil)).....(pr | 
| 3ea0 |  65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 2d 73 61    76 65 2d 66 69 6c 65 29 0a 20 20 20 20 28 77 68  | escient--load-save-file).....(wh | 
| 3ec0 |  65 6e 20 28 6f 72 20 28 6e 6f 74 20 28 6e 75 6d    62 65 72 70 20 73 61 76 65 64 2d 73 65 72 69 61  | en.(or.(not.(numberp.saved-seria | 
| 3ee0 |  6c 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3e 3d 20 70 72 65  | l-number))...............(>=.pre | 
| 3f00 |  73 63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e    75 6d 62 65 72 20 73 61 76 65 64 2d 73 65 72 69  | scient--serial-number.saved-seri | 
| 3f20 |  61 6c 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20    20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72  | al-number)).......(make-director | 
| 3f40 |  79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72    65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20  | y.(file-name-directory.......... | 
| 3f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20  | ..............(expand-file-name. | 
| 3f80 |  70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66    69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | prescient-save-file))........... | 
| 3fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 27 70 61 72    65 6e 74 73 29 0a 20 20 20 20 20 20 28 77 69 74  | ............'parents).......(wit | 
| 3fc0 |  68 2d 74 65 6d 70 2d 66 69 6c 65 20 70 72 65 73    63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 0a  | h-temp-file.prescient-save-file. | 
| 3fe0 |  20 20 20 20 20 20 20 20 28 70 72 69 6e 74 0a 20    20 20 20 20 20 20 20 20 60 28 66 75 6e 63 61 6c  | ........(print..........`(funcal | 
| 4000 |  6c 20 70 72 65 73 63 69 65 6e 74 2d 63 61 63 68    65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20  | l.prescient-cache-callback...... | 
| 4020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76    65 72 73 69 6f 6e 20 27 2c 70 72 65 73 63 69 65  | ..............:version.',prescie | 
| 4040 |  6e 74 2d 2d 63 61 63 68 65 2d 76 65 72 73 69 6f    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt--cache-version............... | 
| 4060 |  20 20 20 20 20 3a 68 69 73 74 6f 72 79 20 27 2c    70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f  | .....:history.',prescient--histo | 
| 4080 |  72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 66 72 65 71 75 65 6e 63 79  | ry....................:frequency | 
| 40a0 |  20 27 2c 70 72 65 73 63 69 65 6e 74 2d 2d 66 72    65 71 75 65 6e 63 79 0a 20 20 20 20 20 20 20 20  | .',prescient--frequency......... | 
| 40c0 |  20 20 20 20 20 20 20 20 20 20 20 3a 73 65 72 69    61 6c 2d 6e 75 6d 62 65 72 20 27 2c 70 72 65 73  | ...........:serial-number.',pres | 
| 40e0 |  63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e 75    6d 62 65 72 29 0a 20 20 20 20 20 20 20 20 20 28  | cient--serial-number)..........( | 
| 4100 |  63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29    29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6d 69  | current-buffer))))))..(define-mi | 
| 4120 |  6e 6f 72 2d 6d 6f 64 65 20 70 72 65 73 63 69 65    6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 0a  | nor-mode.prescient-persist-mode. | 
| 4140 |  20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 74 6f    20 70 65 72 73 69 73 74 20 70 72 65 73 63 69 65  | .."Minor.mode.to.persist.prescie | 
| 4160 |  6e 74 2e 65 6c 20 73 74 61 74 69 73 74 69 63 73    20 74 6f 20 60 70 72 65 73 63 69 65 6e 74 2d 73  | nt.el.statistics.to.`prescient-s | 
| 4180 |  61 76 65 2d 66 69 6c 65 27 2e 22 0a 20 20 3a 67    6c 6f 62 61 6c 20 74 0a 20 20 3a 67 72 6f 75 70  | ave-file'."...:global.t...:group | 
| 41a0 |  20 27 70 72 65 73 63 69 65 6e 74 0a 20 20 28 69    66 20 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73  | .'prescient...(if.prescient-pers | 
| 41c0 |  69 73 74 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28    70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 70  | ist-mode.......(progn.........(p | 
| 41e0 |  72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74    2d 6d 6f 64 65 20 2d 31 29 0a 20 20 20 20 20 20  | rescient-persist-mode.-1)....... | 
| 4200 |  20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e    74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 20 74  | ..(setq.prescient-persist-mode.t | 
| 4220 |  29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68    6f 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d  | ).........(add-hook.'kill-emacs- | 
| 4240 |  68 6f 6f 6b 20 23 27 70 72 65 73 63 69 65 6e 74    2d 2d 73 61 76 65 29 29 0a 20 20 20 20 28 72 65  | hook.#'prescient--save)).....(re | 
| 4260 |  6d 6f 76 65 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d    65 6d 61 63 73 2d 68 6f 6f 6b 20 23 27 70 72 65  | move-hook.'kill-emacs-hook.#'pre | 
| 4280 |  73 63 69 65 6e 74 2d 2d 73 61 76 65 29 29 29 0a    0a 3b 3b 3b 3b 20 55 74 69 6c 69 74 79 20 66 75  | scient--save)))..;;;;.Utility.fu | 
| 42a0 |  6e 63 74 69 6f 6e 73 0a 28 64 65 66 75 6e 20 70    72 65 73 63 69 65 6e 74 2d 2d 63 68 61 72 2d 66  | nctions.(defun.prescient--char-f | 
| 42c0 |  6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 20 28 73    74 72 69 6e 67 29 0a 20 20 22 43 6f 6e 76 65 72  | old-to-regexp.(string)..."Conver | 
| 42e0 |  74 20 53 54 52 49 4e 47 20 74 6f 20 61 20 72 65    67 65 78 70 20 74 68 61 74 20 68 61 6e 64 6c 65  | t.STRING.to.a.regexp.that.handle | 
| 4300 |  73 20 63 68 61 72 20 66 6f 6c 64 69 6e 67 2e 0a    54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65  | s.char.folding..This.is.the.same | 
| 4320 |  20 61 73 20 60 63 68 61 72 2d 66 6f 6c 64 2d 74    6f 2d 72 65 67 65 78 70 27 20 62 75 74 20 69 74  | .as.`char-fold-to-regexp'.but.it | 
| 4340 |  20 77 6f 72 6b 73 20 61 72 6f 75 6e 64 0a 68 74    74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d  | .works.around.https://github.com | 
| 4360 |  2f 72 61 78 6f 64 35 30 32 2f 70 72 65 73 63 69    65 6e 74 2e 65 6c 2f 69 73 73 75 65 73 2f 37 31  | /raxod502/prescient.el/issues/71 | 
| 4380 |  2e 20 54 68 65 20 69 73 73 75 65 0a 73 68 6f 75    6c 64 20 72 65 61 6c 6c 79 20 62 65 20 66 69 78  | ..The.issue.should.really.be.fix | 
| 43a0 |  65 64 20 75 70 73 74 72 65 61 6d 20 69 6e 20 45    6d 61 63 73 2c 20 62 75 74 20 69 74 20 6c 6f 6f  | ed.upstream.in.Emacs,.but.it.loo | 
| 43c0 |  6b 73 20 6c 69 6b 65 20 74 68 61 74 0a 69 73 20    6e 6f 74 20 68 61 70 70 65 6e 69 6e 67 20 61 6e  | ks.like.that.is.not.happening.an | 
| 43e0 |  79 74 69 6d 65 20 73 6f 6f 6e 2e 22 0a 20 20 28    6c 65 74 20 28 28 72 65 67 65 78 70 20 28 63 68  | ytime.soon."...(let.((regexp.(ch | 
| 4400 |  61 72 2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78    70 20 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20  | ar-fold-to-regexp.string)))..... | 
| 4420 |  28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20    5f 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31  | (condition-case._.........(prog1 | 
| 4440 |  20 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20    20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d  | .regexp...........(string-match- | 
| 4460 |  70 20 72 65 67 65 78 70 20 22 22 29 29 0a 20 20    20 20 20 20 28 69 6e 76 61 6c 69 64 2d 72 65 67  | p.regexp."")).......(invalid-reg | 
| 4480 |  65 78 70 20 28 72 65 67 65 78 70 2d 71 75 6f 74    65 20 73 74 72 69 6e 67 29 29 29 29 29 0a 0a 28  | exp.(regexp-quote.string)))))..( | 
| 44a0 |  64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d    73 70 6c 69 74 2d 71 75 65 72 79 20 28 71 75 65  | defun.prescient-split-query.(que | 
| 44c0 |  72 79 29 0a 20 20 22 53 70 6c 69 74 20 51 55 45    52 59 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 73  | ry)..."Split.QUERY.string.into.s | 
| 44e0 |  75 62 2d 71 75 65 72 69 65 73 2e 0a 54 68 65 20    71 75 65 72 79 20 69 73 20 73 70 6c 69 74 20 6f  | ub-queries..The.query.is.split.o | 
| 4500 |  6e 20 73 70 61 63 65 73 2c 20 62 75 74 20 61 20    73 65 71 75 65 6e 63 65 20 6f 66 20 74 77 6f 20  | n.spaces,.but.a.sequence.of.two. | 
| 4520 |  6f 72 20 6d 6f 72 65 0a 73 70 61 63 65 73 20 68    61 73 20 6f 6e 65 20 73 70 61 63 65 20 72 65 6d  | or.more.spaces.has.one.space.rem | 
| 4540 |  6f 76 65 64 20 61 6e 64 20 69 73 20 74 72 65 61    74 65 64 20 6c 69 74 65 72 61 6c 6c 79 20 72 61  | oved.and.is.treated.literally.ra | 
| 4560 |  74 68 65 72 20 74 68 61 6e 0a 61 73 20 61 20 73    75 62 2d 71 75 65 72 79 20 64 65 6c 69 6d 69 74  | ther.than.as.a.sub-query.delimit | 
| 4580 |  65 72 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69    6e 67 2d 6d 61 74 63 68 2d 70 20 22 5c 5c 60 20  | er."...(if.(string-match-p."\\`. | 
| 45a0 |  2a 5c 5c 27 22 20 71 75 65 72 79 29 0a 20 20 20    20 20 20 3b 3b 20 49 66 20 73 74 72 69 6e 67 20  | *\\'".query).......;;.If.string. | 
| 45c0 |  69 73 20 7a 65 72 6f 20 6f 72 20 6f 6e 65 20 73    70 61 63 65 73 2c 20 74 68 65 6e 20 77 65 20 6d  | is.zero.or.one.spaces,.then.we.m | 
| 45e0 |  61 74 63 68 20 65 76 65 72 79 74 68 69 6e 67 2e    0a 20 20 20 20 20 20 3b 3b 20 52 65 74 75 72 6e  | atch.everything........;;.Return | 
| 4600 |  20 61 6e 20 65 6d 70 74 79 20 73 75 62 71 75 65    72 79 20 6c 69 73 74 2e 0a 20 20 20 20 20 20 28  | .an.empty.subquery.list........( | 
| 4620 |  75 6e 6c 65 73 73 20 28 3c 3d 20 28 6c 65 6e 67    74 68 20 71 75 65 72 79 29 20 31 29 0a 20 20 20  | unless.(<=.(length.query).1).... | 
| 4640 |  20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73    65 2c 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  | .....;;.Otherwise,.the.number.of | 
| 4660 |  20 73 70 61 63 65 73 20 73 68 6f 75 6c 64 20 62    65 20 72 65 64 75 63 65 64 20 62 79 20 6f 6e 65  | .spaces.should.be.reduced.by.one | 
| 4680 |  2e 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20    28 73 75 62 73 74 72 69 6e 67 20 71 75 65 72 79  | ..........(list.(substring.query | 
| 46a0 |  20 31 29 29 29 0a 20 20 20 20 3b 3b 20 54 72 69    6d 20 6f 66 66 20 61 20 73 69 6e 67 6c 65 20 73  | .1))).....;;.Trim.off.a.single.s | 
| 46c0 |  70 61 63 65 20 66 72 6f 6d 20 74 68 65 20 62 65    67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 2c  | pace.from.the.beginning.and.end, | 
| 46e0 |  20 69 66 20 70 72 65 73 65 6e 74 2e 0a 20 20 20    20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 74  | .if.present......;;.Otherwise,.t | 
| 4700 |  68 65 79 20 77 6f 75 6c 64 20 67 65 6e 65 72 61    74 65 20 65 6d 70 74 79 20 73 70 6c 69 74 73 20  | hey.would.generate.empty.splits. | 
| 4720 |  61 6e 64 20 63 61 75 73 65 20 75 73 20 74 6f 0a    20 20 20 20 3b 3b 20 6d 61 74 63 68 20 6c 69 74  | and.cause.us.to.....;;.match.lit | 
| 4740 |  65 72 61 6c 20 77 68 69 74 65 73 70 61 63 65 2e    0a 20 20 20 20 28 73 65 74 71 20 71 75 65 72 79  | eral.whitespace......(setq.query | 
| 4760 |  20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70    2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20  | .(replace-regexp-in-string...... | 
| 4780 |  20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 60    20 3f 5c 5c 28 2e 2a 3f 5c 5c 29 20 3f 5c 5c 27  | ............"\\`.?\\(.*?\\).?\\' | 
| 47a0 |  22 20 22 5c 5c 31 22 20 71 75 65 72 79 20 27 66    69 78 65 64 63 61 73 65 29 29 0a 20 20 20 20 28  | "."\\1".query.'fixedcase)).....( | 
| 47c0 |  6c 65 74 20 28 28 73 70 6c 69 74 73 20 28 73 70    6c 69 74 2d 73 74 72 69 6e 67 20 71 75 65 72 79  | let.((splits.(split-string.query | 
| 47e0 |  20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20    20 28 73 75 62 71 75 65 72 79 20 22 22 29 0a 20  | ."."))...........(subquery."").. | 
| 4800 |  20 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 2d    66 6f 75 6e 64 20 6e 69 6c 29 0a 20 20 20 20 20  | .........(token-found.nil)...... | 
| 4820 |  20 20 20 20 20 28 73 75 62 71 75 65 72 69 65 73    20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 64 6f  | .....(subqueries.nil)).......(do | 
| 4840 |  6c 69 73 74 20 28 73 70 6c 69 74 20 73 70 6c 69    74 73 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 43  | list.(split.splits).........;;.C | 
| 4860 |  68 65 63 6b 20 66 6f 72 20 65 6d 70 74 79 20 73    70 6c 69 74 2c 20 6d 65 61 6e 69 6e 67 20 74 77  | heck.for.empty.split,.meaning.tw | 
| 4880 |  6f 20 63 6f 6e 73 65 63 75 74 69 76 65 20 73 70    61 63 65 73 20 69 6e 0a 20 20 20 20 20 20 20 20  | o.consecutive.spaces.in......... | 
| 48a0 |  3b 3b 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20    71 75 65 72 79 2e 0a 20 20 20 20 20 20 20 20 28  | ;;.the.original.query..........( | 
| 48c0 |  69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79    2d 70 20 73 70 6c 69 74 29 0a 20 20 20 20 20 20  | if.(string-empty-p.split)....... | 
| 48e0 |  20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f  | ......(progn...............;;.Co | 
| 4900 |  6e 73 65 63 75 74 69 76 65 20 73 70 61 63 65 73    20 6d 65 61 6e 20 6c 69 74 65 72 61 6c 20 73 70  | nsecutive.spaces.mean.literal.sp | 
| 4920 |  61 63 65 73 20 69 6e 20 74 68 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 75 62  | aces.in.the...............;;.sub | 
| 4940 |  71 75 65 72 79 20 75 6e 64 65 72 20 63 6f 6e 73    74 72 75 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20  | query.under.construction........ | 
| 4960 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 75    62 71 75 65 72 79 20 28 63 6f 6e 63 61 74 20 73  | ........(setq.subquery.(concat.s | 
| 4980 |  75 62 71 75 65 72 79 20 22 20 22 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49  | ubquery."."))...............;;.I | 
| 49a0 |  66 20 77 65 20 67 65 74 20 61 20 6e 6f 6e 2d 65    6d 70 74 79 20 73 70 6c 69 74 2c 20 61 70 70 65  | f.we.get.a.non-empty.split,.appe | 
| 49c0 |  6e 64 20 69 74 20 74 6f 20 74 68 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 75  | nd.it.to.the...............;;.su | 
| 49e0 |  62 71 75 65 72 79 20 72 61 74 68 65 72 20 74 68    61 6e 20 70 61 72 73 69 6e 67 20 69 74 20 61 73  | bquery.rather.than.parsing.it.as | 
| 4a00 |  20 61 6e 6f 74 68 65 72 20 73 75 62 71 75 65 72    79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .another.subquery............... | 
| 4a20 |  20 28 73 65 74 71 20 74 6f 6b 65 6e 2d 66 6f 75    6e 64 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20  | .(setq.token-found.nil))........ | 
| 4a40 |  20 20 20 3b 3b 20 50 6f 73 73 69 62 6c 79 20 61    64 64 20 74 68 65 20 63 6f 6c 6c 65 63 74 65 64  | ...;;.Possibly.add.the.collected | 
| 4a60 |  20 73 74 72 69 6e 67 20 61 73 20 61 20 6e 65 77    20 73 75 62 71 75 65 72 79 2e 0a 20 20 20 20 20  | .string.as.a.new.subquery....... | 
| 4a80 |  20 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e    2d 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20  | .....(when.token-found.......... | 
| 4aa0 |  20 20 20 28 70 75 73 68 20 73 75 62 71 75 65 72    79 20 73 75 62 71 75 65 72 69 65 73 29 0a 20 20  | ...(push.subquery.subqueries)... | 
| 4ac0 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    73 75 62 71 75 65 72 79 20 22 22 29 29 0a 20 20  | ..........(setq.subquery.""))... | 
| 4ae0 |  20 20 20 20 20 20 20 20 3b 3b 20 45 69 74 68 65    72 20 73 74 61 72 74 20 61 20 6e 65 77 20 73 75  | ........;;.Either.start.a.new.su | 
| 4b00 |  62 71 75 65 72 79 20 6f 72 20 61 70 70 65 6e 64    20 74 6f 20 74 68 65 20 65 78 69 73 74 69 6e 67  | bquery.or.append.to.the.existing | 
| 4b20 |  20 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 3b    3b 20 28 69 6e 20 74 68 65 20 63 61 73 65 20 6f  | .one...........;;.(in.the.case.o | 
| 4b40 |  66 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 65    69 6e 67 20 61 6e 20 65 6d 70 74 79 20 73 70 6c  | f.previously.seeing.an.empty.spl | 
| 4b60 |  69 74 29 2e 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 73 75 62 71 75 65 72 79 20 28 63  | it)............(setq.subquery.(c | 
| 4b80 |  6f 6e 63 61 74 20 73 75 62 71 75 65 72 79 20 73    70 6c 69 74 29 29 0a 20 20 20 20 20 20 20 20 20  | oncat.subquery.split)).......... | 
| 4ba0 |  20 3b 3b 20 49 66 20 61 6e 6f 74 68 65 72 20 6e    6f 6e 2d 65 6d 70 74 79 20 73 70 6c 69 74 20 69  | .;;.If.another.non-empty.split.i | 
| 4bc0 |  73 20 66 6f 75 6e 64 2c 20 69 74 27 73 20 61 20    73 65 70 61 72 61 74 65 0a 20 20 20 20 20 20 20  | s.found,.it's.a.separate........ | 
| 4be0 |  20 20 20 3b 3b 20 73 75 62 71 75 65 72 79 2e 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | ...;;.subquery............(setq. | 
| 4c00 |  74 6f 6b 65 6e 2d 66 6f 75 6e 64 20 74 29 29 29    0a 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20  | token-found.t))).......;;.Check. | 
| 4c20 |  69 66 20 77 65 20 68 69 74 20 74 68 65 20 65 6e    64 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 20  | if.we.hit.the.end.of.the.string. | 
| 4c40 |  77 68 69 6c 65 20 73 74 69 6c 6c 0a 20 20 20 20    20 20 3b 3b 20 63 6f 6e 73 74 72 75 63 74 69 6e  | while.still.......;;.constructin | 
| 4c60 |  67 20 61 20 73 75 62 71 75 65 72 79 2c 20 61 6e    64 20 68 61 6e 64 6c 65 2e 0a 20 20 20 20 20 20  | g.a.subquery,.and.handle........ | 
| 4c80 |  28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d    65 6d 70 74 79 2d 70 20 73 75 62 71 75 65 72 79  | (unless.(string-empty-p.subquery | 
| 4ca0 |  29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20    73 75 62 71 75 65 72 79 20 73 75 62 71 75 65 72  | ).........(push.subquery.subquer | 
| 4cc0 |  69 65 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 57    65 20 61 64 64 65 64 20 74 68 65 20 73 75 62 71  | ies)).......;;.We.added.the.subq | 
| 4ce0 |  75 65 72 69 65 73 20 69 6e 20 72 65 76 65 72 73    65 20 6f 72 64 65 72 2e 0a 20 20 20 20 20 20 28  | ueries.in.reverse.order........( | 
| 4d00 |  6e 72 65 76 65 72 73 65 20 73 75 62 71 75 65 72    69 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | nreverse.subqueries))))..(defun. | 
| 4d20 |  70 72 65 73 63 69 65 6e 74 2d 77 69 74 68 2d 67    72 6f 75 70 20 28 72 65 67 65 78 70 20 77 69 74  | prescient-with-group.(regexp.wit | 
| 4d40 |  68 2d 67 72 6f 75 70 29 0a 20 20 22 57 72 61 70    20 52 45 47 45 58 50 20 69 6e 20 61 20 63 61 70  | h-group)..."Wrap.REGEXP.in.a.cap | 
| 4d60 |  74 75 72 65 20 67 72 6f 75 70 2c 20 62 75 74 20    6f 6e 6c 79 20 69 66 20 57 49 54 48 2d 47 52 4f  | ture.group,.but.only.if.WITH-GRO | 
| 4d80 |  55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a    20 20 28 69 66 20 77 69 74 68 2d 67 72 6f 75 70  | UP.is.non-nil."...(if.with-group | 
| 4da0 |  0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22    5c 5c 28 25 73 5c 5c 29 22 20 72 65 67 65 78 70  | .......(format."\\(%s\\)".regexp | 
| 4dc0 |  29 0a 20 20 20 20 72 65 67 65 78 70 29 29 0a 0a    28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74  | ).....regexp))..(defun.prescient | 
| 4de0 |  2d 2d 70 72 65 66 69 78 2d 61 6e 64 2d 70 61 74    74 65 72 6e 20 28 73 74 72 69 6e 67 20 74 61 62  | --prefix-and-pattern.(string.tab | 
| 4e00 |  6c 65 20 70 72 65 64 29 0a 20 20 22 53 70 6c 69    74 20 53 54 52 49 4e 47 20 69 6e 74 6f 20 70 72  | le.pred)..."Split.STRING.into.pr | 
| 4e20 |  65 66 69 78 20 61 6e 64 20 70 61 74 74 65 72 6e    20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 54 41  | efix.and.pattern.according.to.TA | 
| 4e40 |  42 4c 45 2e 0a 0a 54 68 65 20 70 72 65 64 69 63    61 74 65 20 50 52 45 44 20 69 73 20 75 73 65 64  | BLE...The.predicate.PRED.is.used | 
| 4e60 |  20 74 6f 20 63 6f 6e 73 74 72 61 69 6e 20 74 68    65 20 65 6e 74 72 69 65 73 20 69 6e 20 54 41 42  | .to.constrain.the.entries.in.TAB | 
| 4e80 |  4c 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 69    6d 69 74 20 28 63 61 72 20 28 63 6f 6d 70 6c 65  | LE."...(let.((limit.(car.(comple | 
| 4ea0 |  74 69 6f 6e 2d 62 6f 75 6e 64 61 72 69 65 73 20    73 74 72 69 6e 67 20 74 61 62 6c 65 20 70 72 65  | tion-boundaries.string.table.pre | 
| 4ec0 |  64 20 22 22 29 29 29 29 0a 20 20 20 20 28 63 6f    6e 73 20 28 73 75 62 73 74 72 69 6e 67 20 73 74  | d."")))).....(cons.(substring.st | 
| 4ee0 |  72 69 6e 67 20 30 20 6c 69 6d 69 74 29 20 28 73    75 62 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20  | ring.0.limit).(substring.string. | 
| 4f00 |  6c 69 6d 69 74 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f  | limit))))..(defun.prescient-igno | 
| 4f20 |  72 65 2d 63 61 73 65 2d 70 20 28 69 6e 70 75 74    29 0a 20 20 22 57 68 65 74 68 65 72 20 70 72 65  | re-case-p.(input)..."Whether.pre | 
| 4f40 |  73 63 69 65 6e 74 2e 65 6c 20 73 68 6f 75 6c 64    20 69 67 6e 6f 72 65 20 63 61 73 65 20 63 6f 6e  | scient.el.should.ignore.case.con | 
| 4f60 |  73 69 64 65 72 69 6e 67 20 49 4e 50 55 54 2e 0a    0a 46 69 6c 74 65 72 69 6e 67 20 63 61 6e 20 6f  | sidering.INPUT...Filtering.can.o | 
| 4f80 |  70 74 69 6f 6e 61 6c 6c 79 20 69 67 6e 6f 72 65    20 63 61 73 65 20 69 66 20 60 70 72 65 73 63 69  | ptionally.ignore.case.if.`presci | 
| 4fa0 |  65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c    64 69 6e 67 27 0a 69 73 20 6e 6f 6e 2d 6e 69 6c  | ent-use-case-folding'.is.non-nil | 
| 4fc0 |  2e 20 20 49 66 20 60 73 6d 61 72 74 27 2c 20 74    68 65 6e 20 66 69 6c 74 65 72 69 6e 67 20 77 69  | ...If.`smart',.then.filtering.wi | 
| 4fe0 |  6c 6c 20 6e 6f 74 20 69 67 6e 6f 72 65 20 63 61    73 65 20 77 68 65 6e 0a 49 4e 50 55 54 20 63 6f  | ll.not.ignore.case.when.INPUT.co | 
| 5000 |  6e 74 61 69 6e 73 20 75 70 70 65 72 63 61 73 65    20 6c 65 74 74 65 72 73 2e 22 0a 20 20 28 69 66  | ntains.uppercase.letters."...(if | 
| 5020 |  20 28 65 71 20 70 72 65 73 63 69 65 6e 74 2d 75    73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 20  | .(eq.prescient-use-case-folding. | 
| 5040 |  27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 28 6c    65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73  | 'smart).......(let.((case-fold-s | 
| 5060 |  65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20    20 20 20 20 3b 3b 20 49 66 20 75 73 69 6e 67 20  | earch.nil)).........;;.If.using. | 
| 5080 |  75 70 70 65 72 2d 63 61 73 65 20 63 68 61 72 61    63 74 65 72 73 2c 20 74 68 65 6e 20 64 6f 6e 27  | upper-case.characters,.then.don' | 
| 50a0 |  74 20 66 6f 6c 64 20 63 61 73 65 2e 0a 20 20 20    20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e  | t.fold.case..........(not.(strin | 
| 50c0 |  67 2d 6d 61 74 63 68 2d 70 20 22 5b 5b 3a 75 70    70 65 72 3a 5d 5d 22 20 69 6e 70 75 74 29 29 29  | g-match-p."[[:upper:]]".input))) | 
| 50e0 |  0a 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 75    73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 29  | .....prescient-use-case-folding) | 
| 5100 |  29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69    65 6e 74 2d 2d 61 64 64 2d 73 6f 72 74 2d 69 6e  | )..(defun.prescient--add-sort-in | 
| 5120 |  66 6f 20 28 63 61 6e 64 69 64 61 74 65 73 20 26    72 65 73 74 20 70 72 6f 70 65 72 74 69 65 73 29  | fo.(candidates.&rest.properties) | 
| 5140 |  0a 20 20 22 50 72 6f 70 65 72 74 69 7a 65 20 74    68 65 20 66 69 72 73 74 20 63 61 6e 64 69 64 61  | ..."Propertize.the.first.candida | 
| 5160 |  74 65 20 69 6e 20 43 41 4e 44 49 44 41 54 45 53    20 74 6f 20 73 61 76 65 20 64 61 74 61 2e 0a 0a  | te.in.CANDIDATES.to.save.data... | 
| 5180 |  43 75 72 72 65 6e 74 6c 79 20 72 65 63 6f 67 6e    69 7a 65 64 20 50 52 4f 50 45 52 54 49 45 53 20  | Currently.recognized.PROPERTIES. | 
| 51a0 |  61 72 65 3a 0a 0a 2d 20 60 3a 70 72 65 73 63 69    65 6e 74 2d 6d 61 74 63 68 2d 72 65 67 65 78 70  | are:..-.`:prescient-match-regexp | 
| 51c0 |  73 27 3a 20 54 68 65 20 72 65 67 65 78 70 73 20    75 73 65 64 20 66 6f 72 20 66 69 6c 74 65 72 69  | s':.The.regexps.used.for.filteri | 
| 51e0 |  6e 67 2e 0a 0a 2d 20 60 3a 70 72 65 73 63 69 65    6e 74 2d 61 6c 6c 2d 72 65 67 65 78 70 73 27 3a  | ng...-.`:prescient-all-regexps': | 
| 5200 |  20 41 6c 6c 20 72 65 67 65 78 70 73 20 6f 75 74    70 75 74 74 65 64 20 62 79 20 74 68 65 20 66 69  | .All.regexps.outputted.by.the.fi | 
| 5220 |  6c 74 65 72 0a 20 20 6d 65 74 68 6f 64 73 2c 20    77 68 69 63 68 20 77 65 72 65 20 75 73 65 64 20  | lter...methods,.which.were.used. | 
| 5240 |  74 6f 20 6d 61 6b 65 20 50 52 45 53 43 49 45 4e    54 2d 4d 41 54 43 48 2d 52 45 47 45 58 50 53 2e  | to.make.PRESCIENT-MATCH-REGEXPS. | 
| 5260 |  20 41 0a 20 20 72 65 67 65 78 70 20 69 6e 20 74    68 69 73 20 6c 69 73 74 20 64 6f 65 73 20 6e 6f  | .A...regexp.in.this.list.does.no | 
| 5280 |  74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 61    74 63 68 20 74 68 65 20 63 61 6e 64 69 64 61 74  | t.necessarily.match.the.candidat | 
| 52a0 |  65 73 0a 20 20 62 79 20 69 74 73 65 6c 66 2e 0a    0a 2d 20 60 3a 70 72 65 73 63 69 65 6e 74 2d 69  | es...by.itself...-.`:prescient-i | 
| 52c0 |  67 6e 6f 72 65 2d 63 61 73 65 27 3a 20 57 68 65    74 68 65 72 20 70 72 65 73 63 69 65 6e 74 20 69  | gnore-case':.Whether.prescient.i | 
| 52e0 |  67 6e 6f 72 65 64 20 63 61 73 65 2e 0a 0a 2d 20    60 3a 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72  | gnored.case...-.`:prescient-quer | 
| 5300 |  79 27 3a 20 4f 72 69 67 69 6e 61 6c 20 73 65 61    72 63 68 20 71 75 65 72 79 20 66 72 6f 6d 20 75  | y':.Original.search.query.from.u | 
| 5320 |  73 65 72 2e 0a 0a 54 68 65 73 65 20 70 72 6f 70    65 72 74 69 65 73 20 61 72 65 20 69 64 65 6e 74  | ser...These.properties.are.ident | 
| 5340 |  69 66 69 65 64 20 75 73 69 6e 67 20 6b 65 79 77    6f 72 64 20 73 79 6d 62 6f 6c 73 2e 0a 0a 54 68  | ified.using.keyword.symbols...Th | 
| 5360 |  69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69    73 20 75 73 65 64 20 62 79 20 74 68 65 20 66 75  | is.information.is.used.by.the.fu | 
| 5380 |  6e 63 74 69 6f 6e 0a 60 70 72 65 73 63 69 65 6e    74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63  | nction.`prescient-sort-full-matc | 
| 53a0 |  68 65 73 2d 66 69 72 73 74 27 2e 22 0a 20 20 28    69 66 20 28 6e 75 6c 6c 20 63 61 6e 64 69 64 61  | hes-first'."...(if.(null.candida | 
| 53c0 |  74 65 73 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20    20 20 20 28 63 6f 6e 73 20 28 61 70 70 6c 79 20  | tes).......nil.....(cons.(apply. | 
| 53e0 |  23 27 70 72 6f 70 65 72 74 69 7a 65 20 28 63 61    72 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20  | #'propertize.(car.candidates)... | 
| 5400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 57 68 69 6c 65 20 50 52 4f 50 45 52 54 49  | ...............;;.While.PROPERTI | 
| 5420 |  45 53 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20    67 69 76 65 6e 20 6b 65 79 73 2c 20 77 65 0a 20  | ES.contains.all.given.keys,.we.. | 
| 5440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65  | ................;;.explicitly.se | 
| 5460 |  74 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73    20 74 68 69 73 20 77 61 79 20 73 6f 20 74 68 61  | t.the.properties.this.way.so.tha | 
| 5480 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 77 65 27 72 65 20 73 75 72 65  | t..................;;.we're.sure | 
| 54a0 |  20 74 68 61 74 20 74 68 65 20 70 72 6f 70 65 72    74 69 65 73 20 65 78 69 73 74 20 65 76 65 6e 20  | .that.the.properties.exist.even. | 
| 54c0 |  77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 74 68 65 79 27 72 65  | when..................;;.they're | 
| 54e0 |  20 6e 6f 74 20 67 69 76 65 6e 2e 20 54 68 69 73    20 6d 61 6b 65 73 20 74 65 73 74 69 6e 67 20 65  | .not.given..This.makes.testing.e | 
| 5500 |  61 73 69 65 72 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 73 68  | asier..................;;.and.sh | 
| 5520 |  6f 75 6c 64 20 62 65 20 68 65 6c 70 66 75 6c 20    66 6f 72 20 6f 74 68 65 72 73 20 63 72 65 61 74  | ould.be.helpful.for.others.creat | 
| 5540 |  69 6e 67 20 74 68 65 69 72 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 77  | ing.their..................;;.ow | 
| 5560 |  6e 20 73 6f 72 74 69 6e 67 20 66 75 6e 63 74 69    6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20  | n.sorting.functions............. | 
| 5580 |  20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74  | ......;;..................;;.Not | 
| 55a0 |  65 20 61 6c 6c 20 70 61 73 73 65 64 20 70 72 6f    70 65 72 74 69 65 73 20 77 69 6c 6c 20 73 74 69  | e.all.passed.properties.will.sti | 
| 55c0 |  6c 6c 20 67 65 74 20 73 65 74 2c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | ll.get.set,..................;;. | 
| 55e0 |  74 68 69 73 20 6a 75 73 74 20 64 65 66 61 75 6c    74 73 20 74 68 65 20 73 74 61 6e 64 61 72 64 20  | this.just.defaults.the.standard. | 
| 5600 |  6f 6e 65 73 20 74 6f 20 6e 69 6c 20 69 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ones.to.nil.in.................. | 
| 5620 |  3b 3b 20 63 61 73 65 20 74 68 65 79 20 61 72 65    20 6d 69 73 73 69 6e 67 2e 0a 20 20 20 20 20 20  | ;;.case.they.are.missing........ | 
| 5640 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66    6c 65 74 20 28 28 70 75 74 2d 67 65 74 20 28 70  | ...........(cl-flet.((put-get.(p | 
| 5660 |  72 6f 70 73 20 73 79 6d 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rops.sym)....................... | 
| 5680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    6c 69 73 74 2d 70 75 74 20 70 72 6f 70 73 20 73  | ..............(plist-put.props.s | 
| 56a0 |  79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ym.............................. | 
| 56c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f  | ..................(plist-get.pro | 
| 56e0 |  70 73 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74  | ps.sym))))....................(t | 
| 5700 |  68 72 65 61 64 2d 66 69 72 73 74 20 70 72 6f 70    65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20  | hread-first.properties.......... | 
| 5720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 75 74 2d 67 65 74  | ........................(put-get | 
| 5740 |  20 3a 70 72 65 73 63 69 65 6e 74 2d 6d 61 74 63    68 2d 72 65 67 65 78 70 73 29 0a 20 20 20 20 20  | .:prescient-match-regexps)...... | 
| 5760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74  | ............................(put | 
| 5780 |  2d 67 65 74 20 3a 70 72 65 73 63 69 65 6e 74 2d    61 6c 6c 2d 72 65 67 65 78 70 73 29 0a 20 20 20  | -get.:prescient-all-regexps).... | 
| 57a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | ..............................(p | 
| 57c0 |  75 74 2d 67 65 74 20 3a 70 72 65 73 63 69 65 6e    74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 29 0a 20  | ut-get.:prescient-ignore-case).. | 
| 57e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5800 |  28 70 75 74 2d 67 65 74 20 3a 70 72 65 73 63 69    65 6e 74 2d 71 75 65 72 79 29 29 29 29 0a 20 20  | (put-get.:prescient-query))))... | 
| 5820 |  20 20 20 20 20 20 20 20 28 63 64 72 20 63 61 6e    64 69 64 61 74 65 73 29 29 29 29 0a 0a 28 64 65  | ........(cdr.candidates))))..(de | 
| 5840 |  66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 67    65 74 2d 73 6f 72 74 2d 69 6e 66 6f 20 28 63 61  | fun.prescient--get-sort-info.(ca | 
| 5860 |  6e 64 69 64 61 74 65 73 29 0a 20 20 22 52 65 74    75 72 6e 20 61 20 70 72 6f 70 65 72 74 79 20 6c  | ndidates)..."Return.a.property.l | 
| 5880 |  69 73 74 20 6f 66 20 70 72 6f 70 65 72 74 69 65    73 20 61 64 64 65 64 20 62 79 20 60 70 72 65 73  | ist.of.properties.added.by.`pres | 
| 58a0 |  63 69 65 6e 74 2d 66 69 6c 74 65 72 27 2e 0a 0a    60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65  | cient-filter'...`prescient-filte | 
| 58c0 |  72 27 20 61 64 64 73 20 70 72 6f 70 65 72 74 69    65 73 20 74 6f 20 74 68 65 20 43 41 4e 44 49 44  | r'.adds.properties.to.the.CANDID | 
| 58e0 |  41 54 45 53 20 74 68 61 74 20 69 74 0a 66 69 6c    74 65 72 65 64 20 66 6f 72 20 75 73 65 20 62 79  | ATES.that.it.filtered.for.use.by | 
| 5900 |  20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 70    72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75  | .the.function.`prescient-sort-fu | 
| 5920 |  6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74    27 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66  | ll-matches-first'."...(cl-loop.f | 
| 5940 |  6f 72 20 63 61 6e 64 20 69 6e 20 63 61 6e 64 69    64 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20  | or.cand.in.candidates........... | 
| 5960 |  20 66 6f 72 20 70 72 6f 70 73 20 3d 20 28 74 65    78 74 2d 70 72 6f 70 65 72 74 69 65 73 2d 61 74  | .for.props.=.(text-properties-at | 
| 5980 |  20 30 20 63 61 6e 64 29 0a 20 20 20 20 20 20 20    20 20 20 20 75 6e 74 69 6c 20 28 70 6c 69 73 74  | .0.cand)............until.(plist | 
| 59a0 |  2d 6d 65 6d 62 65 72 20 70 72 6f 70 73 20 3a 70    72 65 73 63 69 65 6e 74 2d 6d 61 74 63 68 2d 72  | -member.props.:prescient-match-r | 
| 59c0 |  65 67 65 78 70 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 53 69 6e 63 65 20 77 65 20 61  | egexps)............;;.Since.we.a | 
| 59e0 |  6c 6c 6f 77 20 6f 74 68 65 72 20 6b 65 79 73 20    69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 61  | llow.other.keys.in.`prescient--a | 
| 5a00 |  64 64 2d 73 6f 72 74 2d 69 6e 66 6f 27 2c 0a 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 73  | dd-sort-info',............;;.jus | 
| 5a20 |  74 20 72 65 74 75 72 6e 20 61 6c 6c 20 70 72 6f    70 65 72 74 69 65 73 20 68 65 72 65 2e 0a 20 20  | t.return.all.properties.here.... | 
| 5a40 |  20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79    20 72 65 74 75 72 6e 20 70 72 6f 70 73 29 29 0a  | .........finally.return.props)). | 
| 5a60 |  0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e    74 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 6e  | .(defun.prescient--highlight-can | 
| 5a80 |  64 69 64 61 74 65 20 28 72 65 67 65 78 70 73 20    63 61 73 65 2d 66 6f 6c 64 20 63 61 6e 64 69 64  | didate.(regexps.case-fold.candid | 
| 5aa0 |  61 74 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68    74 20 74 65 78 74 20 6d 61 74 63 68 69 6e 67 20  | ate)..."Highlight.text.matching. | 
| 5ac0 |  52 45 47 45 58 50 53 20 61 6e 64 20 63 6f 6e 73    69 64 65 72 69 6e 67 20 43 41 53 45 2d 46 4f 4c  | REGEXPS.and.considering.CASE-FOL | 
| 5ae0 |  44 20 69 6e 20 43 41 4e 44 49 44 41 54 45 2e 0a    0a 52 65 74 75 72 6e 73 20 61 20 70 72 6f 70 65  | D.in.CANDIDATE...Returns.a.prope | 
| 5b00 |  72 74 69 7a 65 64 20 43 41 4e 44 49 44 41 54 45    2e 22 0a 20 20 28 73 65 74 71 20 63 61 6e 64 69  | rtized.CANDIDATE."...(setq.candi | 
| 5b20 |  64 61 74 65 20 28 63 6f 70 79 2d 73 65 71 75 65    6e 63 65 20 63 61 6e 64 69 64 61 74 65 29 29 0a  | date.(copy-sequence.candidate)). | 
| 5b40 |  20 20 28 70 72 6f 67 31 20 63 61 6e 64 69 64 61    74 65 0a 20 20 20 20 28 6c 65 74 20 28 28 63 61  | ..(prog1.candidate.....(let.((ca | 
| 5b60 |  73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 63    61 73 65 2d 66 6f 6c 64 29 29 0a 20 20 20 20 20  | se-fold-search.case-fold))...... | 
| 5b80 |  20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74    61 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73  | .(save-match-data.........(dolis | 
| 5ba0 |  74 20 28 72 65 67 65 78 70 20 72 65 67 65 78 70    73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68  | t.(regexp.regexps)...........(wh | 
| 5bc0 |  65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68    20 72 65 67 65 78 70 20 63 61 6e 64 69 64 61 74  | en.(string-match.regexp.candidat | 
| 5be0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28    66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 65 6e  | e).............(font-lock-prepen | 
| 5c00 |  64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61  | d-text-property..............(ma | 
| 5c20 |  74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29    20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20  | tch-beginning.0).(match-end.0).. | 
| 5c40 |  20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63    65 20 27 70 72 65 73 63 69 65 6e 74 2d 70 72 69  | ............'face.'prescient-pri | 
| 5c60 |  6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 64  | mary-highlight..............cand | 
| 5c80 |  69 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20  | idate).............(cl-loop..... | 
| 5ca0 |  20 20 20 20 20 20 20 20 20 66 6f 72 20 28 73 74    61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20  | .........for.(start.end)........ | 
| 5cc0 |  20 20 20 20 20 20 6f 6e 20 28 63 64 64 72 20 28    6d 61 74 63 68 2d 64 61 74 61 29 29 0a 20 20 20  | ......on.(cddr.(match-data)).... | 
| 5ce0 |  20 20 20 20 20 20 20 20 20 20 62 79 20 23 27 63    64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..........by.#'cddr............. | 
| 5d00 |  20 64 6f 20 28 77 68 65 6e 20 28 61 6e 64 20 73    74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20  | .do.(when.(and.start.end)....... | 
| 5d20 |  20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e    74 2d 6c 6f 63 6b 2d 70 72 65 70 65 6e 64 2d 74  | ............(font-lock-prepend-t | 
| 5d40 |  65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ext-property.................... | 
| 5d60 |  73 74 61 72 74 20 65 6e 64 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61  | start.end....................'fa | 
| 5d80 |  63 65 20 27 70 72 65 73 63 69 65 6e 74 2d 73 65    63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68  | ce.'prescient-secondary-highligh | 
| 5da0 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 63 61 6e 64 69 64 61 74 65 29 29  | t....................candidate)) | 
| 5dc0 |  29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 68 6c  | )))))))..(defun.prescient--highl | 
| 5de0 |  69 67 68 74 2d 63 61 6e 64 69 64 61 74 65 73 20    28 69 6e 70 75 74 20 63 61 6e 64 69 64 61 74 65  | ight-candidates.(input.candidate | 
| 5e00 |  73 29 0a 20 20 22 41 63 63 6f 72 64 69 6e 67 20    74 6f 20 49 4e 50 55 54 2c 20 68 69 67 68 6c 69  | s)..."According.to.INPUT,.highli | 
| 5e20 |  67 68 74 20 74 68 65 20 6d 61 74 63 68 65 64 20    73 65 63 74 69 6f 6e 73 20 69 6e 20 43 41 4e 44  | ght.the.matched.sections.in.CAND | 
| 5e40 |  49 44 41 54 45 53 2e 0a 0a 49 4e 50 55 54 20 69    73 20 74 68 65 20 73 74 72 69 6e 67 20 74 68 61  | IDATES...INPUT.is.the.string.tha | 
| 5e60 |  74 20 77 61 73 20 75 73 65 64 20 74 6f 20 67 65    6e 65 72 61 74 65 20 61 20 6c 69 73 74 20 6f 66  | t.was.used.to.generate.a.list.of | 
| 5e80 |  20 72 65 67 65 78 70 73 0a 66 6f 72 20 66 69 6c    74 65 72 69 6e 67 2e 20 43 41 4e 44 49 44 41 54  | .regexps.for.filtering..CANDIDAT | 
| 5ea0 |  45 53 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f    66 20 66 69 6c 74 65 72 65 64 20 63 61 6e 64 69  | ES.is.the.list.of.filtered.candi | 
| 5ec0 |  64 61 74 65 73 2c 0a 77 68 69 63 68 20 73 68 6f    75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66  | dates,.which.should.be.a.list.of | 
| 5ee0 |  20 73 74 72 69 6e 67 73 2e 0a 0a 52 65 74 75 72    6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 70  | .strings...Return.a.list.of.prop | 
| 5f00 |  65 72 74 69 7a 65 64 20 43 41 4e 44 49 44 41 54    45 53 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20  | ertized.CANDIDATES."...(cl-loop. | 
| 5f20 |  77 69 74 68 20 72 65 67 65 78 70 73 20 3d 20 28    70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72  | with.regexps.=.(prescient-filter | 
| 5f40 |  2d 72 65 67 65 78 70 73 20 69 6e 70 75 74 20 27    77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20 20  | -regexps.input.'with-group)..... | 
| 5f60 |  20 20 20 20 20 20 20 61 6e 64 20 63 61 73 65 2d    66 6f 6c 64 2d 73 65 61 72 63 68 20 3d 20 28 70  | .......and.case-fold-search.=.(p | 
| 5f80 |  72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d    63 61 73 65 2d 70 20 69 6e 70 75 74 29 0a 20 20  | rescient-ignore-case-p.input)... | 
| 5fa0 |  20 20 20 20 20 20 20 20 20 66 6f 72 20 63 61 6e    64 20 69 6e 20 63 61 6e 64 69 64 61 74 65 73 0a  | .........for.cand.in.candidates. | 
| 5fc0 |  20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65    63 74 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 68  | ...........collect.(prescient--h | 
| 5fe0 |  69 67 68 6c 69 67 68 74 2d 63 61 6e 64 69 64 61    74 65 20 72 65 67 65 78 70 73 20 63 61 73 65 2d  | ighlight-candidate.regexps.case- | 
| 6000 |  66 6f 6c 64 2d 73 65 61 72 63 68 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | fold-search..................... | 
| 6020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63  | ...............................c | 
| 6040 |  61 6e 64 29 29 29 0a 0a 3b 3b 3b 3b 20 52 65 67    65 78 70 20 42 75 69 6c 64 65 72 73 0a 0a 28 63  | and)))..;;;;.Regexp.Builders..(c | 
| 6060 |  6c 2d 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e    74 2d 6c 69 74 65 72 61 6c 2d 72 65 67 65 78 70  | l-defun.prescient-literal-regexp | 
| 6080 |  20 28 71 75 65 72 79 20 26 6b 65 79 20 77 69 74    68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20  | .(query.&key.with-group......... | 
| 60a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 60c0 |  20 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b    65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61  | ..&allow-other-keys)..."Return.a | 
| 60e0 |  20 72 65 67 65 78 70 20 6d 61 74 63 68 69 6e 67    20 51 55 45 52 59 20 77 69 74 68 20 6f 70 74 69  | .regexp.matching.QUERY.with.opti | 
| 6100 |  6f 6e 61 6c 20 63 68 61 72 61 63 74 65 72 20 66    6f 6c 64 69 6e 67 2e 0a 0a 49 66 20 57 49 54 48  | onal.character.folding...If.WITH | 
| 6120 |  2d 47 52 4f 55 50 20 69 73 20 60 61 6c 6c 27 2c    20 65 6e 63 6c 6f 73 65 20 74 68 65 20 6d 61 74  | -GROUP.is.`all',.enclose.the.mat | 
| 6140 |  63 68 20 69 6e 20 61 20 63 61 70 74 75 72 65 20    67 72 6f 75 70 2e 0a 0a 53 65 65 20 61 6c 73 6f  | ch.in.a.capture.group...See.also | 
| 6160 |  20 74 68 65 20 63 75 73 74 6f 6d 69 7a 61 62 6c    65 20 76 61 72 69 61 62 6c 65 20 60 70 72 65 73  | .the.customizable.variable.`pres | 
| 6180 |  63 69 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66    6f 6c 64 69 6e 67 27 2e 22 0a 20 20 28 70 72 65  | cient-use-char-folding'."...(pre | 
| 61a0 |  73 63 69 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75    70 0a 20 20 20 28 69 66 20 70 72 65 73 63 69 65  | scient-with-group....(if.prescie | 
| 61c0 |  6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64    69 6e 67 0a 20 20 20 20 20 20 20 28 70 72 65 73  | nt-use-char-folding........(pres | 
| 61e0 |  63 69 65 6e 74 2d 2d 63 68 61 72 2d 66 6f 6c 64    2d 74 6f 2d 72 65 67 65 78 70 20 71 75 65 72 79  | cient--char-fold-to-regexp.query | 
| 6200 |  29 0a 20 20 20 20 20 28 72 65 67 65 78 70 2d 71    75 6f 74 65 20 71 75 65 72 79 29 29 0a 20 20 20  | )......(regexp-quote.query)).... | 
| 6220 |  28 65 71 20 77 69 74 68 2d 67 72 6f 75 70 20 27    61 6c 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75  | (eq.with-group.'all)))..(cl-defu | 
| 6240 |  6e 20 70 72 65 73 63 69 65 6e 74 2d 6c 69 74 65    72 61 6c 2d 70 72 65 66 69 78 2d 72 65 67 65 78  | n.prescient-literal-prefix-regex | 
| 6260 |  70 0a 20 20 20 20 28 71 75 65 72 79 20 26 6b 65    79 20 77 69 74 68 2d 67 72 6f 75 70 20 73 75 62  | p.....(query.&key.with-group.sub | 
| 6280 |  71 75 65 72 79 2d 6e 75 6d 62 65 72 0a 20 20 20    20 20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f  | query-number............&allow-o | 
| 62a0 |  74 68 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65    74 75 72 6e 20 61 20 72 65 67 65 78 70 20 6d 61  | ther-keys)..."Return.a.regexp.ma | 
| 62c0 |  74 63 68 69 6e 67 20 51 55 45 52 59 20 77 69 74    68 20 6f 70 74 69 6f 6e 61 6c 20 63 68 61 72 61  | tching.QUERY.with.optional.chara | 
| 62e0 |  63 74 65 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 49    66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20  | cter.folding...If.WITH-GROUP.is. | 
| 6300 |  60 61 6c 6c 27 2c 20 65 6e 63 6c 6f 73 65 20 74    68 65 20 6d 61 74 63 68 20 69 6e 20 61 20 63 61  | `all',.enclose.the.match.in.a.ca | 
| 6320 |  70 74 75 72 65 20 67 72 6f 75 70 2e 0a 41 6e 63    68 6f 72 20 74 68 65 20 51 55 45 52 59 20 61 74  | pture.group..Anchor.the.QUERY.at | 
| 6340 |  20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f    66 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 20  | .the.beginning.of.the.candidate. | 
| 6360 |  69 66 0a 53 55 42 51 55 45 52 59 2d 4e 55 4d 42    45 52 20 65 71 75 61 6c 73 20 30 2e 0a 0a 53 65  | if.SUBQUERY-NUMBER.equals.0...Se | 
| 6380 |  65 20 61 6c 73 6f 20 74 68 65 20 63 75 73 74 6f    6d 69 7a 61 62 6c 65 20 76 61 72 69 61 62 6c 65  | e.also.the.customizable.variable | 
| 63a0 |  20 60 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d    63 68 61 72 2d 66 6f 6c 64 69 6e 67 27 2e 22 0a  | .`prescient-use-char-folding'.". | 
| 63c0 |  20 20 28 70 72 65 73 63 69 65 6e 74 2d 77 69 74    68 2d 67 72 6f 75 70 0a 20 20 20 28 63 6f 6e 63  | ..(prescient-with-group....(conc | 
| 63e0 |  61 74 20 28 69 66 20 28 3d 20 73 75 62 71 75 65    72 79 2d 6e 75 6d 62 65 72 20 30 29 0a 20 20 20  | at.(if.(=.subquery-number.0).... | 
| 6400 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 31    2e 20 73 75 62 71 75 65 72 79 20 3d 3e 20 61 6e  | ............;;.1..subquery.=>.an | 
| 6420 |  63 68 6f 72 20 61 74 20 74 68 65 20 62 65 67 69    6e 6e 69 6e 67 20 6f 66 20 63 61 6e 64 69 64 61  | chor.at.the.beginning.of.candida | 
| 6440 |  74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20  | te................."^".......... | 
| 6460 |  20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65    2c 20 6a 75 73 74 20 61 6e 63 68 6f 72 20 61 74  | ....;;.Otherwise,.just.anchor.at | 
| 6480 |  20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f    66 20 73 6f 6d 65 20 77 6f 72 64 0a 20 20 20 20  | .the.beginning.of.some.word..... | 
| 64a0 |  20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 20 74    68 65 20 63 61 6e 64 69 64 61 74 65 2e 0a 20 20  | .........;;.in.the.candidate.... | 
| 64c0 |  20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 62 22    29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | ..........."\\b")............(if | 
| 64e0 |  20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63    68 61 72 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20  | .prescient-use-char-folding..... | 
| 6500 |  20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73    63 69 65 6e 74 2d 2d 63 68 61 72 2d 66 6f 6c 64  | ...........(prescient--char-fold | 
| 6520 |  2d 74 6f 2d 72 65 67 65 78 70 20 71 75 65 72 79    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | -to-regexp.query)..............( | 
| 6540 |  72 65 67 65 78 70 2d 71 75 6f 74 65 20 71 75 65    72 79 29 29 29 0a 20 20 20 28 65 71 20 77 69 74  | regexp-quote.query)))....(eq.wit | 
| 6560 |  68 2d 67 72 6f 75 70 20 27 61 6c 6c 29 29 29 0a    0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 73 63  | h-group.'all)))..(cl-defun.presc | 
| 6580 |  69 65 6e 74 2d 69 6e 69 74 69 61 6c 73 2d 72 65    67 65 78 70 20 28 71 75 65 72 79 20 26 6b 65 79  | ient-initials-regexp.(query.&key | 
| 65a0 |  20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .with-group..................... | 
| 65c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f 74  | .......................&allow-ot | 
| 65e0 |  68 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74    75 72 6e 20 61 20 72 65 67 65 78 70 20 6d 61 74  | her-keys)..."Return.a.regexp.mat | 
| 6600 |  63 68 69 6e 67 20 51 55 45 52 59 20 61 73 20 61    6e 20 69 6e 69 74 69 61 6c 69 73 6d 2e 0a 54 68  | ching.QUERY.as.an.initialism..Th | 
| 6620 |  69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68    65 20 72 65 67 65 78 70 20 77 69 6c 6c 20 6f 6e  | is.means.that.the.regexp.will.on | 
| 6640 |  6c 79 20 6d 61 74 63 68 20 61 20 67 69 76 65 6e    20 73 74 72 69 6e 67 20 69 66 0a 51 55 45 52 59  | ly.match.a.given.string.if.QUERY | 
| 6660 |  20 69 73 20 61 20 73 75 62 73 74 72 69 6e 67 20    6f 66 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20  | .is.a.substring.of.the.initials. | 
| 6680 |  6f 66 20 74 68 65 20 73 74 72 69 6e 67 2e 0a 0a    49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73  | of.the.string...If.WITH-GROUP.is | 
| 66a0 |  20 6e 6f 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73    65 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74  | .non-nil,.enclose.the.parts.of.t | 
| 66c0 |  68 65 20 72 65 67 65 78 70 20 74 68 61 74 0a 6d    61 74 63 68 20 74 68 65 20 61 63 74 75 61 6c 20  | he.regexp.that.match.the.actual. | 
| 66e0 |  69 6e 69 74 69 61 6c 73 20 69 6e 20 63 61 70 74    75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74  | initials.in.capture.groups,.so.t | 
| 6700 |  68 61 74 20 74 68 65 20 6d 61 74 63 68 0a 64 61    74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  | hat.the.match.data.can.be.used.t | 
| 6720 |  6f 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 20    69 6e 69 74 69 61 6c 73 20 6f 66 20 74 68 65 20  | o.highlight.the.initials.of.the. | 
| 6740 |  6d 61 74 63 68 2e 0a 0a 54 6f 20 69 6c 6c 75 73    74 72 61 74 65 2c 20 69 66 20 5c 22 66 61 5c 22  | match...To.illustrate,.if.\"fa\" | 
| 6760 |  20 6d 61 74 63 68 65 73 20 5c 22 66 69 6e 64 2d    66 69 6c 65 2d 61 74 2d 70 6f 69 6e 74 5c 22 2c  | .matches.\"find-file-at-point\", | 
| 6780 |  20 74 68 65 6e 20 74 68 65 0a 65 6e 74 69 72 65    20 6d 61 74 63 68 20 77 69 6c 6c 20 62 65 20 74  | .then.the.entire.match.will.be.t | 
| 67a0 |  68 65 20 74 65 78 74 20 5c 22 66 69 6c 65 2d 61    74 5c 22 2c 20 61 6e 64 20 74 68 65 72 65 20 77  | he.text.\"file-at\",.and.there.w | 
| 67c0 |  69 6c 6c 20 62 65 20 74 77 6f 0a 63 61 70 74 75    72 65 20 67 72 6f 75 70 73 20 6d 61 74 63 68 69  | ill.be.two.capture.groups.matchi | 
| 67e0 |  6e 67 20 5c 22 66 5c 22 20 61 6e 64 20 5c 22 61    5c 22 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61  | ng.\"f\".and.\"a\"."...(mapconca | 
| 6800 |  74 20 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.(lambda.(char)................ | 
| 6820 |  28 6c 65 74 20 28 28 72 20 28 72 65 67 65 78 70    2d 71 75 6f 74 65 20 28 63 68 61 72 2d 74 6f 2d  | (let.((r.(regexp-quote.(char-to- | 
| 6840 |  73 74 72 69 6e 67 20 63 68 61 72 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | string.char))))................. | 
| 6860 |  20 28 77 68 65 6e 20 77 69 74 68 2d 67 72 6f 75    70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(when.with-group............... | 
| 6880 |  20 20 20 20 20 28 73 65 74 71 20 72 20 28 66 6f    72 6d 61 74 20 22 5c 5c 28 25 73 5c 5c 29 22 20  | .....(setq.r.(format."\\(%s\\)". | 
| 68a0 |  72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5c  | r)))..................(format."\ | 
| 68c0 |  5c 62 25 73 5c 5c 77 2a 22 20 72 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72  | \b%s\\w*".r)))..............quer | 
| 68e0 |  79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22    5c 5c 57 2a 22 29 29 0a 0a 28 63 6c 2d 64 65 66  | y.............."\\W*"))..(cl-def | 
| 6900 |  75 6e 20 70 72 65 73 63 69 65 6e 74 2d 72 65 67    65 78 70 2d 72 65 67 65 78 70 20 28 71 75 65 72  | un.prescient-regexp-regexp.(quer | 
| 6920 |  79 20 26 72 65 73 74 20 5f 69 67 6e 6f 72 65 29    0a 20 20 22 55 6e 6c 65 73 73 20 75 73 69 6e 67  | y.&rest._ignore)..."Unless.using | 
| 6940 |  20 74 68 65 20 72 65 67 65 78 70 20 51 55 45 52    59 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 61  | .the.regexp.QUERY.would.return.a | 
| 6960 |  6e 20 65 72 72 6f 72 2c 20 72 65 74 75 72 6e 20    51 55 45 52 59 2e 22 0a 20 20 28 69 67 6e 6f 72  | n.error,.return.QUERY."...(ignor | 
| 6980 |  65 2d 65 72 72 6f 72 73 0a 20 20 20 20 3b 3b 20    49 67 6e 6f 72 65 20 72 65 67 65 78 70 20 69 66  | e-errors.....;;.Ignore.regexp.if | 
| 69a0 |  20 69 74 27 73 20 6d 61 6c 66 6f 72 6d 65 64 2e    0a 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74  | .it's.malformed......(string-mat | 
| 69c0 |  63 68 2d 70 20 71 75 65 72 79 20 22 22 29 0a 20    20 20 20 71 75 65 72 79 29 29 0a 0a 28 63 6c 2d  | ch-p.query."").....query))..(cl- | 
| 69e0 |  64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d    61 6e 63 68 6f 72 65 64 2d 72 65 67 65 78 70 20  | defun.prescient-anchored-regexp. | 
| 6a00 |  28 71 75 65 72 79 20 26 6b 65 79 20 77 69 74 68    2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20  | (query.&key.with-group.......... | 
| 6a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6a40 |  20 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b    65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61  | ..&allow-other-keys)..."Return.a | 
| 6a60 |  20 72 65 67 65 78 70 20 6d 61 74 63 68 69 6e 67    20 51 55 45 52 59 20 77 69 74 68 20 61 6e 63 68  | .regexp.matching.QUERY.with.anch | 
| 6a80 |  6f 72 73 2e 0a 54 68 69 73 20 6d 65 61 6e 73 20    75 70 70 65 72 63 61 73 65 20 61 6e 64 20 73 79  | ors..This.means.uppercase.and.sy | 
| 6aa0 |  6d 62 6f 6c 73 20 77 69 6c 6c 20 62 65 20 75 73    65 64 20 61 73 20 62 65 67 69 6e 20 6f 66 20 77  | mbols.will.be.used.as.begin.of.w | 
| 6ac0 |  6f 72 64 73 2e 0a 0a 49 66 20 57 49 54 48 2d 47    52 4f 55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c  | ords...If.WITH-GROUP.is.non-nil, | 
| 6ae0 |  20 65 6e 63 6c 6f 73 65 20 74 68 65 20 70 61 72    74 73 20 6f 66 20 74 68 65 20 72 65 67 65 78 70  | .enclose.the.parts.of.the.regexp | 
| 6b00 |  20 74 68 61 74 0a 6d 61 74 63 68 20 74 68 65 20    61 63 74 75 61 6c 20 69 6e 69 74 69 61 6c 73 20  | .that.match.the.actual.initials. | 
| 6b20 |  69 6e 20 63 61 70 74 75 72 65 20 67 72 6f 75 70    73 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 6d  | in.capture.groups,.so.that.the.m | 
| 6b40 |  61 74 63 68 0a 64 61 74 61 20 63 61 6e 20 62 65    20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67  | atch.data.can.be.used.to.highlig | 
| 6b60 |  68 74 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20    6f 66 20 74 68 65 20 6d 61 74 63 68 2e 0a 0a 54  | ht.the.initials.of.the.match...T | 
| 6b80 |  6f 20 69 6c 6c 75 73 74 72 61 74 65 2c 20 5c 22    46 69 46 69 41 74 5c 22 20 6d 61 74 63 68 65 73  | o.illustrate,.\"FiFiAt\".matches | 
| 6ba0 |  20 5c 22 66 69 6e 64 2d 66 69 6c 65 2d 61 74 2d    70 6f 69 6e 74 5c 22 20 77 69 74 68 20 74 68 65  | .\"find-file-at-point\".with.the | 
| 6bc0 |  0a 65 6e 74 69 72 65 20 6d 61 74 63 68 20 62 65    69 6e 67 20 5c 22 66 69 6c 65 2d 66 69 6e 64 2d  | .entire.match.being.\"file-find- | 
| 6be0 |  61 74 5c 22 20 61 6e 64 20 77 69 74 68 20 74 68    72 65 65 20 67 72 6f 75 70 73 0a 5c 22 66 69 6e  | at\".and.with.three.groups.\"fin | 
| 6c00 |  64 5c 22 2c 20 5c 22 66 69 6c 65 5c 22 2c 20 61    6e 64 20 5c 22 61 74 5c 22 2e 0a 0a 41 20 73 69  | d\",.\"file\",.and.\"at\"...A.si | 
| 6c20 |  6d 69 6c 61 72 20 6d 61 74 63 68 20 63 61 6e 20    62 65 20 61 63 68 69 65 76 65 20 77 69 74 68 20  | milar.match.can.be.achieve.with. | 
| 6c40 |  5c 22 66 69 2d 66 69 2d 61 74 5c 22 2c 20 6f 72    20 5c 22 46 46 41 5c 22 2c 0a 6f 72 20 5c 22 66  | \"fi-fi-at\",.or.\"FFA\",.or.\"f | 
| 6c60 |  69 6e 64 2d 66 2d 61 5c 22 2e 22 0a 20 20 28 6c    65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73  | ind-f-a\"."...(let.((case-fold-s | 
| 6c80 |  65 61 72 63 68 20 6e 69 6c 29 0a 20 20 20 20 20    20 20 20 28 65 78 70 72 20 28 69 66 20 77 69 74  | earch.nil).........(expr.(if.wit | 
| 6ca0 |  68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5c 5c  | h-group..................."\\(\\ | 
| 6cc0 |  62 25 73 5c 5c 29 5b 5e 5c 5c 2f 5d 2a 3f 22 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | b%s\\)[^\\/]*?"................. | 
| 6ce0 |  22 5c 5c 62 25 73 5b 5e 5c 5c 2f 5d 2a 3f 22 29    29 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d  | "\\b%s[^\\/]*?"))).....(replace- | 
| 6d00 |  72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67    0a 20 20 20 20 20 22 5b 5b 3a 75 70 70 65 72 3a  | regexp-in-string......"[[:upper: | 
| 6d20 |  5d 5d 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2a 5c 5c    7c 5c 5c 57 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2a  | ]][[:lower:]]*\\|\\W[[:lower:]]* | 
| 6d40 |  5c 5c 7c 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2b 22    0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73  | \\|[[:lower:]]+"......(lambda.(s | 
| 6d60 |  29 20 28 66 6f 72 6d 61 74 20 65 78 70 72 20 28    72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 64 6f  | ).(format.expr.(regexp-quote.(do | 
| 6d80 |  77 6e 63 61 73 65 20 73 29 29 29 29 0a 20 20 20    20 20 71 75 65 72 79 0a 20 20 20 20 20 27 66 69  | wncase.s))))......query......'fi | 
| 6da0 |  78 65 64 2d 63 61 73 65 0a 20 20 20 20 20 27 6c    69 74 65 72 61 6c 29 29 29 0a 0a 28 63 6c 2d 64  | xed-case......'literal)))..(cl-d | 
| 6dc0 |  65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 66    75 7a 7a 79 2d 72 65 67 65 78 70 20 28 71 75 65  | efun.prescient-fuzzy-regexp.(que | 
| 6de0 |  72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f    75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ry.&key.with-group.............. | 
| 6e00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 26 61 6c 6c 6f  | ...........................&allo | 
| 6e20 |  77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a 20 20    22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70  | w-other-keys)..."Return.a.regexp | 
| 6e40 |  20 66 6f 72 20 66 75 7a 7a 79 2d 6d 61 74 63 68    69 6e 67 20 51 55 45 52 59 2e 0a 54 68 69 73 20  | .for.fuzzy-matching.QUERY..This. | 
| 6e60 |  6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 72    65 67 65 78 70 20 77 69 6c 6c 20 6f 6e 6c 79 20  | means.that.the.regexp.will.only. | 
| 6e80 |  6d 61 74 63 68 20 61 20 67 69 76 65 6e 20 73 74    72 69 6e 67 20 69 66 20 61 6c 6c 0a 63 68 61 72  | match.a.given.string.if.all.char | 
| 6ea0 |  61 63 74 65 72 73 20 69 6e 20 51 55 45 52 59 20    61 72 65 20 70 72 65 73 65 6e 74 20 61 6e 79 77  | acters.in.QUERY.are.present.anyw | 
| 6ec0 |  68 65 72 65 20 69 6e 20 74 68 65 20 73 74 72 69    6e 67 20 69 6e 20 74 68 65 0a 73 70 65 63 69 66  | here.in.the.string.in.the.specif | 
| 6ee0 |  69 65 64 20 6f 72 64 65 72 2e 0a 0a 49 66 20 57    49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f 6e  | ied.order...If.WITH-GROUP.is.non | 
| 6f00 |  2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73 65 20 74 68    65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 72  | -nil,.enclose.the.parts.of.the.r | 
| 6f20 |  65 67 65 78 70 20 74 68 61 74 0a 6d 61 74 63 68    20 74 68 65 20 51 55 45 52 59 20 63 68 61 72 61  | egexp.that.match.the.QUERY.chara | 
| 6f40 |  63 74 65 72 73 20 69 6e 20 63 61 70 74 75 72 65    20 67 72 6f 75 70 73 2c 20 73 6f 20 74 68 61 74  | cters.in.capture.groups,.so.that | 
| 6f60 |  20 74 68 65 20 6d 61 74 63 68 0a 64 61 74 61 20    63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 68  | .the.match.data.can.be.used.to.h | 
| 6f80 |  69 67 68 6c 69 67 68 74 20 74 68 65 20 6d 61 74    63 68 65 64 20 73 75 62 73 74 72 69 6e 67 73 2e  | ighlight.the.matched.substrings. | 
| 6fa0 |  22 0a 20 20 28 6c 65 74 20 28 28 63 68 61 72 73    20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74  | "...(let.((chars.(string-to-list | 
| 6fc0 |  20 71 75 65 72 79 29 29 29 0a 20 20 20 20 28 63    6f 6e 63 61 74 0a 20 20 20 20 20 28 70 72 65 73  | .query))).....(concat......(pres | 
| 6fe0 |  63 69 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75 70    0a 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71  | cient-with-group.......(regexp-q | 
| 7000 |  75 6f 74 65 0a 20 20 20 20 20 20 20 28 63 68 61    72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72  | uote........(char-to-string.(car | 
| 7020 |  20 63 68 61 72 73 29 29 29 0a 20 20 20 20 20 20    77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20 20  | .chars))).......with-group)..... | 
| 7040 |  20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20    20 20 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29  | .(mapconcat.......(lambda.(char) | 
| 7060 |  0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74    20 22 5b 5e 25 63 5c 6e 5d 2a 3f 25 73 22 20 63  | .........(format."[^%c\n]*?%s".c | 
| 7080 |  68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 77  | har.................(prescient-w | 
| 70a0 |  69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65  | ith-group..................(rege | 
| 70c0 |  78 70 2d 71 75 6f 74 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72  | xp-quote...................(char | 
| 70e0 |  2d 74 6f 2d 73 74 72 69 6e 67 20 63 68 61 72 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -to-string.char))............... | 
| 7100 |  20 20 20 77 69 74 68 2d 67 72 6f 75 70 29 29 29    0a 20 20 20 20 20 20 28 63 64 72 20 63 68 61 72  | ...with-group))).......(cdr.char | 
| 7120 |  73 29 20 22 22 29 29 29 29 0a 0a 28 63 6c 2d 64    65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 70  | s).""))))..(cl-defun.prescient-p | 
| 7140 |  72 65 66 69 78 2d 72 65 67 65 78 70 20 28 71 75    65 72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72  | refix-regexp.(query.&key.with-gr | 
| 7160 |  6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oup............................. | 
| 7180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 26 61 6c    6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a  | .............&allow-other-keys). | 
| 71a0 |  20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65    78 70 20 66 6f 72 20 6d 61 74 63 68 69 6e 67 20  | .."Return.a.regexp.for.matching. | 
| 71c0 |  74 68 65 20 62 65 67 69 6e 6e 69 6e 67 73 20 6f    66 20 77 6f 72 64 73 20 69 6e 20 51 55 45 52 59  | the.beginnings.of.words.in.QUERY | 
| 71e0 |  2e 0a 54 68 69 73 20 69 73 20 73 69 6d 69 6c 61    72 20 74 6f 20 74 68 65 20 60 70 61 72 74 69 61  | ..This.is.similar.to.the.`partia | 
| 7200 |  6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 27 20 63 6f    6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 0a 70  | l-completion'.completion.style.p | 
| 7220 |  72 6f 76 69 64 65 64 20 62 79 20 45 6d 61 63 73    2c 20 65 78 63 65 70 74 20 74 68 61 74 20 6e 6f  | rovided.by.Emacs,.except.that.no | 
| 7240 |  6e 2d 77 6f 72 64 20 63 68 61 72 61 63 74 65 72    73 20 61 72 65 20 74 61 6b 65 6e 0a 6c 69 74 65  | n-word.characters.are.taken.lite | 
| 7260 |  72 61 6c 6c 79 20 28 69 2e 65 2e 2c 20 6f 6e 65    20 63 61 6e 27 74 20 67 6c 6f 62 20 75 73 69 6e  | rally.(i.e.,.one.can't.glob.usin | 
| 7280 |  67 20 5c 22 2a 5c 22 29 2e 20 20 50 72 65 73 63    69 65 6e 74 20 61 6c 72 65 61 64 79 0a 63 6f 76  | g.\"*\")...Prescient.already.cov | 
| 72a0 |  65 72 73 20 74 68 61 74 20 63 61 73 65 20 62 79    20 73 65 70 61 72 61 74 69 6e 67 20 71 75 65 72  | ers.that.case.by.separating.quer | 
| 72c0 |  69 65 73 20 77 69 74 68 20 61 20 73 70 61 63 65    2e 0a 0a 49 66 20 51 55 45 52 59 20 63 6f 6e 74  | ies.with.a.space...If.QUERY.cont | 
| 72e0 |  61 69 6e 73 20 6e 6f 6e 2d 77 6f 72 64 20 63 68    61 72 61 63 74 65 72 73 2c 20 74 68 65 6e 20 74  | ains.non-word.characters,.then.t | 
| 7300 |  68 69 73 20 6d 61 74 63 68 65 73 0a 67 72 65 65    64 69 6c 79 2e 20 4f 74 68 65 72 77 69 73 65 2c  | his.matches.greedily..Otherwise, | 
| 7320 |  20 69 74 20 6d 61 74 63 68 65 73 20 6e 6f 6e 2d    67 72 65 65 64 69 6c 79 2e 20 46 6f 72 20 65 78  | .it.matches.non-greedily..For.ex | 
| 7340 |  61 6d 70 6c 65 2c 0a 0a 2d 20 5c 22 73 74 72 2d    72 5c 22 20 66 75 6c 6c 79 20 6d 61 74 63 68 65  | ample,..-.\"str-r\".fully.matche | 
| 7360 |  73 20 5c 22 73 74 72 69 6e 67 2d 72 65 70 65 61    74 5c 22 0a 0a 2d 20 5c 22 72 65 5c 22 20 64 6f  | s.\"string-repeat\"..-.\"re\".do | 
| 7380 |  65 73 20 6e 6f 74 20 66 75 6c 6c 79 20 6d 61 74    63 68 20 74 68 65 20 77 6f 72 64 20 5c 22 72 65  | es.not.fully.match.the.word.\"re | 
| 73a0 |  70 65 72 74 6f 69 72 65 5c 22 2c 20 6f 6e 6c 79    20 74 68 65 0a 20 20 5c 22 72 65 5c 22 20 61 74  | pertoire\",.only.the...\"re\".at | 
| 73c0 |  20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f    66 20 74 68 65 20 77 6f 72 64 0a 0a 2d 20 5c 22  | .the.beginning.of.the.word..-.\" | 
| 73e0 |  2e 67 5c 22 20 66 75 6c 6c 79 20 6d 61 74 63 68    65 73 20 5c 22 2e 67 69 74 5c 22 0a 0a 54 68 69  | .g\".fully.matches.\".git\"..Thi | 
| 7400 |  73 20 62 65 68 61 76 69 6f 72 20 69 73 20 6d 65    61 6e 74 20 74 6f 20 77 6f 72 6b 20 62 65 74 74  | s.behavior.is.meant.to.work.bett | 
| 7420 |  65 72 20 77 69 74 68 20 74 68 65 20 66 75 6e 63    74 69 6f 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d  | er.with.the.function.`prescient- | 
| 7440 |  73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65    73 2d 66 69 72 73 74 27 20 61 6e 64 20 74 6f 20  | sort-full-matches-first'.and.to. | 
| 7460 |  61 76 6f 69 64 20 69 6e 74 65 72 70 72 65 74 69    6e 67 20 61 6e 0a 69 6e 69 74 69 61 6c 69 73 6d  | avoid.interpreting.an.initialism | 
| 7480 |  20 61 73 20 61 20 70 72 65 66 69 78 2e 0a 0a 49    66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20  | .as.a.prefix...If.WITH-GROUP.is. | 
| 74a0 |  6e 6f 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73 65    20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68  | non-nil,.enclose.the.parts.of.th | 
| 74c0 |  65 20 72 65 67 65 78 70 20 74 68 61 74 0a 6d 61    74 63 68 20 74 68 65 20 51 55 45 52 59 20 63 68  | e.regexp.that.match.the.QUERY.ch | 
| 74e0 |  61 72 61 63 74 65 72 73 20 69 6e 20 63 61 70 74    75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74  | aracters.in.capture.groups,.so.t | 
| 7500 |  68 61 74 20 74 68 65 20 6d 61 74 63 68 0a 64 61    74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  | hat.the.match.data.can.be.used.t | 
| 7520 |  6f 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 20    6d 61 74 63 68 65 64 20 73 75 62 73 74 72 69 6e  | o.highlight.the.matched.substrin | 
| 7540 |  67 73 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 28    77 68 65 6e 20 28 65 71 6c 20 30 20 28 73 74 72  | gs."...(concat.(when.(eql.0.(str | 
| 7560 |  69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5b 3a    77 6f 72 64 3a 5d 5d 22 20 71 75 65 72 79 29 29  | ing-match-p."[[:word:]]".query)) | 
| 7580 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    49 66 20 51 55 45 52 59 20 62 65 67 69 6e 73 20  | .............;;.If.QUERY.begins. | 
| 75a0 |  77 69 74 68 20 61 20 77 6f 72 64 20 63 68 61 72    61 63 74 65 72 2c 20 6d 61 6b 65 20 73 75 72 65  | with.a.word.character,.make.sure | 
| 75c0 |  20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 72 65 74 75 72 6e 65 64 20 72 65 67  | .the.............;;.returned.reg | 
| 75e0 |  65 78 70 20 64 6f 65 73 6e 27 74 20 73 74 61 72    74 20 6d 61 74 63 68 69 6e 67 20 69 6e 20 74 68  | exp.doesn't.start.matching.in.th | 
| 7600 |  65 20 6d 69 64 64 6c 65 20 6f 66 0a 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 61 20 77 6f 72  | e.middle.of.............;;.a.wor | 
| 7620 |  64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22    5c 5c 3c 22 29 0a 20 20 20 20 20 20 20 20 20 20  | d.............."\\<")........... | 
| 7640 |  28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d    69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20  | (replace-regexp-in-string....... | 
| 7660 |  20 20 20 20 20 22 5b 5b 3a 77 6f 72 64 3a 5d 5d    2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | ....."[[:word:]]+"............;; | 
| 7680 |  20 43 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20    74 6f 20 77 72 61 70 20 73 65 71 75 65 6e 63 65  | .Choose.whether.to.wrap.sequence | 
| 76a0 |  73 20 6f 66 20 77 6f 72 64 20 63 68 61 72 61 63    74 65 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20  | s.of.word.characters............ | 
| 76c0 |  20 28 63 6f 6e 63 61 74 20 28 69 66 20 77 69 74    68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20  | .(concat.(if.with-group......... | 
| 76e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22    5c 5c 5c 5c 28 5c 5c 26 5c 5c 5c 5c 29 5b 5b 3a  | ..............."\\\\(\\&\\\\)[[: | 
| 7700 |  77 6f 72 64 3a 5d 5d 2a 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | word:]]*"......................" | 
| 7720 |  5c 5c 26 5b 5b 3a 77 6f 72 64 3a 5d 5d 2a 22 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | \\&[[:word:]]*")................ | 
| 7740 |  20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72    69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5e 5b  | ....(unless.(string-match-p."[^[ | 
| 7760 |  3a 77 6f 72 64 3a 5d 5d 22 20 71 75 65 72 79 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | :word:]]".query)................ | 
| 7780 |  20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 51 75 6f 74 65 20  | ......"?"))............;;.Quote. | 
| 77a0 |  6e 6f 6e 2d 77 6f 72 64 20 63 68 61 72 61 63 74    65 72 73 20 73 6f 20 74 68 61 74 20 74 68 65 79  | non-word.characters.so.that.they | 
| 77c0 |  27 72 65 20 74 61 6b 65 6e 0a 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61 6c 6c  | 're.taken............;;.literall | 
| 77e0 |  79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 72    65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e  | y.............(replace-regexp-in | 
| 7800 |  2d 73 74 72 69 6e 67 20 22 5b 5e 5b 3a 77 6f 72    64 3a 5d 5d 22 0a 20 20 20 20 20 20 20 20 20 20  | -string."[^[:word:]]"........... | 
| 7820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 23 27 72 65 67  | ...........................#'reg | 
| 7840 |  65 78 70 2d 71 75 6f 74 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | exp-quote....................... | 
| 7860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 71    75 65 72 79 20 27 66 69 78 65 64 2d 63 61 73 65  | ...............query.'fixed-case | 
| 7880 |  20 27 6c 69 74 65 72 61 6c 29 0a 20 20 20 20 20    20 20 20 20 20 20 27 66 69 78 65 64 2d 63 61 73  | .'literal)............'fixed-cas | 
| 78a0 |  65 29 29 29 0a 0a 3b 3b 3b 3b 20 53 6f 72 74 69    6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67  | e)))..;;;;.Sorting.and.filtering | 
| 78c0 |  0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65    6e 74 2d 66 69 6c 74 65 72 2d 72 65 67 65 78 70  | ..(defun.prescient-filter-regexp | 
| 78e0 |  73 20 28 71 75 65 72 79 20 26 6f 70 74 69 6f 6e    61 6c 20 77 69 74 68 2d 67 72 6f 75 70 20 73 65  | s.(query.&optional.with-group.se | 
| 7900 |  70 61 72 61 74 65 64 29 0a 20 20 22 43 6f 6e 76    65 72 74 20 51 55 45 52 59 20 74 6f 20 6c 69 73  | parated)..."Convert.QUERY.to.lis | 
| 7920 |  74 20 6f 66 20 72 65 67 65 78 70 73 2e 0a 45 61    63 68 20 72 65 67 65 78 70 20 6d 75 73 74 20 6d  | t.of.regexps..Each.regexp.must.m | 
| 7940 |  61 74 63 68 20 74 68 65 20 63 61 6e 64 69 64 61    74 65 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20  | atch.the.candidate.in.order.for. | 
| 7960 |  61 20 63 61 6e 64 69 64 61 74 65 20 74 6f 0a 6d    61 74 63 68 20 74 68 65 20 51 55 45 52 59 2e 0a  | a.candidate.to.match.the.QUERY.. | 
| 7980 |  0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69    73 20 6e 6f 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f  | .If.WITH-GROUP.is.non-nil,.enclo | 
| 79a0 |  73 65 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20    69 6e 20 69 6e 69 74 69 61 6c 69 73 6d 73 0a 77  | se.the.initials.in.initialisms.w | 
| 79c0 |  69 74 68 20 63 61 70 74 75 72 65 20 67 72 6f 75    70 73 2e 20 49 66 20 69 74 20 69 73 20 74 68 65  | ith.capture.groups..If.it.is.the | 
| 79e0 |  20 73 79 6d 62 6f 6c 20 60 61 6c 6c 27 2c 20 61    64 64 69 74 69 6f 6e 61 6c 6c 79 0a 65 6e 63 6c  | .symbol.`all',.additionally.encl | 
| 7a00 |  6f 73 65 20 6c 69 74 65 72 61 6c 20 73 75 62 73    74 72 69 6e 67 73 20 77 69 74 68 20 63 61 70 74  | ose.literal.substrings.with.capt | 
| 7a20 |  75 72 65 20 67 72 6f 75 70 73 2e 0a 0a 42 79 20    64 65 66 61 75 6c 74 2c 20 74 68 69 73 20 66 75  | ure.groups...By.default,.this.fu | 
| 7a40 |  6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61    20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67  | nction.returns.a.list.containing | 
| 7a60 |  20 6f 6e 65 20 72 65 67 65 78 70 0a 66 6f 72 20    65 61 63 68 20 73 70 61 63 65 2d 73 65 70 61 72  | .one.regexp.for.each.space-separ | 
| 7a80 |  61 74 65 64 20 73 75 62 2d 71 75 65 72 79 20 69    6e 20 51 55 45 52 59 2c 20 69 6e 20 77 68 69 63  | ated.sub-query.in.QUERY,.in.whic | 
| 7aa0 |  68 20 65 61 63 68 0a 73 75 62 2d 71 75 65 72 79    27 73 20 72 65 67 65 78 70 20 69 73 20 61 20 63  | h.each.sub-query's.regexp.is.a.c | 
| 7ac0 |  6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68    65 20 72 65 67 65 78 70 73 20 70 72 6f 64 75 63  | ombination.of.the.regexps.produc | 
| 7ae0 |  65 64 20 62 79 0a 74 68 65 20 66 69 6c 74 65 72    20 6d 65 74 68 6f 64 73 20 66 6f 72 20 74 68 61  | ed.by.the.filter.methods.for.tha | 
| 7b00 |  74 20 73 75 62 2d 71 75 65 72 79 2c 20 6a 6f 69    6e 65 64 20 62 79 20 5c 22 5c 5c 7c 5c 22 2e 20  | t.sub-query,.joined.by.\"\\|\".. | 
| 7b20 |  49 66 0a 53 45 50 41 52 41 54 45 44 20 69 73 20    6e 6f 6e 2d 6e 69 6c 2c 20 74 68 69 73 20 66 75  | If.SEPARATED.is.non-nil,.this.fu | 
| 7b40 |  6e 63 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 72    65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66  | nction.instead.returns.a.list.of | 
| 7b60 |  20 61 6c 6c 0a 72 65 67 65 78 70 73 20 70 72 6f    64 75 63 65 64 20 62 79 20 74 68 65 20 66 69 6c  | .all.regexps.produced.by.the.fil | 
| 7b80 |  74 65 72 20 6d 65 74 68 6f 64 73 2c 20 77 69 74    68 6f 75 74 20 63 6f 6d 62 69 6e 69 6e 67 20 74  | ter.methods,.without.combining.t | 
| 7ba0 |  68 65 6d 0a 69 6e 74 6f 20 61 20 73 69 6e 67 6c    65 20 72 65 67 65 78 70 20 66 6f 72 20 65 61 63  | hem.into.a.single.regexp.for.eac | 
| 7bc0 |  68 20 73 75 62 2d 71 75 65 72 79 2e 22 0a 20 20    28 6c 65 74 20 28 28 6c 69 73 74 2d 6f 66 2d 6c  | h.sub-query."...(let.((list-of-l | 
| 7be0 |  69 73 74 73 0a 20 20 20 20 20 20 20 20 20 28 63    6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20  | ists..........(cl-loop.......... | 
| 7c00 |  20 77 69 74 68 20 66 69 6c 74 65 72 2d 6d 65 74    68 6f 64 73 0a 20 20 20 20 20 20 20 20 20 20 3d  | .with.filter-methods...........= | 
| 7c20 |  20 28 70 63 61 73 65 20 28 69 66 20 28 66 75 6e    63 74 69 6f 6e 70 20 70 72 65 73 63 69 65 6e 74  | .(pcase.(if.(functionp.prescient | 
| 7c40 |  2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -filter-method)................. | 
| 7c60 |  20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20    70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72  | .......(funcall.prescient-filter | 
| 7c80 |  2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72  | -method)......................pr | 
| 7ca0 |  65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d    65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20  | escient-filter-method).......... | 
| 7cc0 |  20 20 20 20 20 3b 3b 20 57 65 20 73 75 70 70 6f    72 74 20 60 6c 69 74 65 72 61 6c 2b 69 6e 69 74  | .....;;.We.support.`literal+init | 
| 7ce0 |  69 61 6c 69 73 6d 27 20 66 6f 72 20 62 61 63 6b    77 61 72 64 73 0a 20 20 20 20 20 20 20 20 20 20  | ialism'.for.backwards........... | 
| 7d00 |  20 20 20 20 3b 3b 20 63 6f 6d 70 61 74 69 62 69    6c 69 74 79 2e 0a 20 20 20 20 20 20 20 20 20 20  | ....;;.compatibility............ | 
| 7d20 |  20 20 20 20 28 60 6c 69 74 65 72 61 6c 2b 69 6e    69 74 69 61 6c 69 73 6d 20 27 28 6c 69 74 65 72  | ....(`literal+initialism.'(liter | 
| 7d40 |  61 6c 20 69 6e 69 74 69 61 6c 69 73 6d 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28  | al.initialism))...............(( | 
| 7d60 |  61 6e 64 20 28 70 72 65 64 20 6c 69 73 74 70 29    20 78 29 20 78 29 0a 20 20 20 20 20 20 20 20 20  | and.(pred.listp).x).x).......... | 
| 7d80 |  20 20 20 20 20 28 78 20 28 6c 69 73 74 20 78 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72  | .....(x.(list.x)))...........for | 
| 7da0 |  20 73 75 62 71 75 65 72 79 20 69 6e 20 28 70 72    65 73 63 69 65 6e 74 2d 73 70 6c 69 74 2d 71 75  | .subquery.in.(prescient-split-qu | 
| 7dc0 |  65 72 79 20 71 75 65 72 79 29 0a 20 20 20 20 20    20 20 20 20 20 66 6f 72 20 73 75 62 71 75 65 72  | ery.query)...........for.subquer | 
| 7de0 |  79 2d 6e 75 6d 62 65 72 20 66 72 6f 6d 20 30 0a    20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63  | y-number.from.0...........collec | 
| 7e00 |  74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d    6c 6f 6f 70 20 77 69 74 68 20 74 65 6d 70 2d 72  | t...........(cl-loop.with.temp-r | 
| 7e20 |  65 67 65 78 70 20 3d 20 6e 69 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66  | egexp.=.nil....................f | 
| 7e40 |  6f 72 20 6d 65 74 68 6f 64 20 69 6e 20 66 69 6c    74 65 72 2d 6d 65 74 68 6f 64 73 0a 20 20 20 20  | or.method.in.filter-methods..... | 
| 7e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66    6f 72 20 66 75 6e 63 20 3d 20 28 61 6c 69 73 74  | ...............for.func.=.(alist | 
| 7e80 |  2d 67 65 74 20 6d 65 74 68 6f 64 20 70 72 65 73    63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 61 6c 69  | -get.method.prescient-filter-ali | 
| 7ea0 |  73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20  | st)....................if.(null. | 
| 7ec0 |  66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 64 6f 20 28 6d 65 73  | func)....................do.(mes | 
| 7ee0 |  73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 22 4e 6f 20  | sage........................"No. | 
| 7f00 |  66 75 6e 63 74 69 6f 6e 20 69 6e 20 60 70 72 65    73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 61 6c  | function.in.`prescient-filter-al | 
| 7f20 |  69 73 74 27 20 66 6f 72 20 6d 65 74 68 6f 64 3a    20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20  | ist'.for.method:.%s"............ | 
| 7f40 |  20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68    6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ............method)............. | 
| 7f60 |  20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b  | .......else....................; | 
| 7f80 |  3b 20 43 61 6e 27 74 20 75 73 65 20 22 66 6f 72    20 3d 22 20 68 65 72 65 2e 0a 20 20 20 20 20 20  | ;.Can't.use."for.=".here........ | 
| 7fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20    28 73 65 74 71 20 74 65 6d 70 2d 72 65 67 65 78  | .............do.(setq.temp-regex | 
| 7fc0 |  70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66  | p.............................(f | 
| 7fe0 |  75 6e 63 61 6c 6c 20 66 75 6e 63 20 73 75 62 71    75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20  | uncall.func.subquery............ | 
| 8000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 77 69 74 68 2d  | ..........................:with- | 
| 8020 |  67 72 6f 75 70 20 77 69 74 68 2d 67 72 6f 75 70    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | group.with-group................ | 
| 8040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 73 75 62 71 75 65 72 79 2d  | ......................:subquery- | 
| 8060 |  6e 75 6d 62 65 72 20 73 75 62 71 75 65 72 79 2d    6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 20  | number.subquery-number))........ | 
| 8080 |  20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20    69 66 20 74 65 6d 70 2d 72 65 67 65 78 70 20 63  | ............and.if.temp-regexp.c | 
| 80a0 |  6f 6c 6c 65 63 74 20 74 65 6d 70 2d 72 65 67 65    78 70 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20  | ollect.temp-regexp.end.......... | 
| 80c0 |  20 20 20 20 20 20 20 20 20 20 65 6e 64 29 29 29    29 0a 20 20 20 20 28 69 66 20 73 65 70 61 72 61  | ..........end)))).....(if.separa | 
| 80e0 |  74 65 64 0a 20 20 20 20 20 20 20 20 28 61 70 70    6c 79 20 23 27 61 70 70 65 6e 64 20 6c 69 73 74  | ted.........(apply.#'append.list | 
| 8100 |  2d 6f 66 2d 6c 69 73 74 73 29 0a 20 20 20 20 20    20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61  | -of-lists).......(mapcar.(lambda | 
| 8120 |  20 28 6c 69 73 74 29 20 28 73 74 72 69 6e 67 2d    6a 6f 69 6e 20 6c 69 73 74 20 22 5c 5c 7c 22 29  | .(list).(string-join.list."\\|") | 
| 8140 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 69 73 74 2d 6f 66 2d 6c 69 73 74 73 29 29 29  | )...............list-of-lists))) | 
| 8160 |  29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61    64 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65  | )..;;;###autoload.(defun.prescie | 
| 8180 |  6e 74 2d 66 69 6c 74 65 72 20 28 71 75 65 72 79    20 63 61 6e 64 69 64 61 74 65 73 20 26 6f 70 74  | nt-filter.(query.candidates.&opt | 
| 81a0 |  69 6f 6e 61 6c 20 70 72 65 64 29 0a 20 20 22 55    73 65 20 51 55 45 52 59 20 74 6f 20 66 69 6c 74  | ional.pred)..."Use.QUERY.to.filt | 
| 81c0 |  65 72 20 6c 69 73 74 20 6f 66 20 43 41 4e 44 49    44 41 54 45 53 2e 0a 0a 43 41 4e 44 49 44 41 54  | er.list.of.CANDIDATES...CANDIDAT | 
| 81e0 |  45 53 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 69    6f 6e 20 74 61 62 6c 65 2c 20 73 75 63 68 20 61  | ES.is.a.completion.table,.such.a | 
| 8200 |  73 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69    6e 67 73 0a 6f 72 20 61 20 66 75 6e 63 74 69 6f  | s.a.list.of.strings.or.a.functio | 
| 8220 |  6e 20 61 73 20 64 65 66 69 6e 65 64 20 69 6e 20    74 68 65 20 49 6e 66 6f 20 6e 6f 64 65 0a 60 28  | n.as.defined.in.the.Info.node.`( | 
| 8240 |  65 6c 69 73 70 29 50 72 6f 67 72 61 6d 6d 65 64    20 43 6f 6d 70 6c 65 74 69 6f 6e 27 2e 0a 0a 51  | elisp)Programmed.Completion'...Q | 
| 8260 |  55 45 52 59 20 69 73 20 61 20 73 74 72 69 6e 67    20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20  | UERY.is.a.string.containing.the. | 
| 8280 |  73 75 62 2d 71 75 65 72 69 65 73 2c 20 77 68 69    63 68 20 61 72 65 20 67 6f 74 74 65 6e 0a 75 73  | sub-queries,.which.are.gotten.us | 
| 82a0 |  69 6e 67 20 60 70 72 65 73 63 69 65 6e 74 2d 73    70 6c 69 74 2d 71 75 65 72 79 27 2e 20 45 61 63  | ing.`prescient-split-query'..Eac | 
| 82c0 |  68 20 73 75 62 2d 71 75 65 72 79 20 69 73 20 75    73 65 64 20 74 6f 20 70 72 6f 64 75 63 65 0a 61  | h.sub-query.is.used.to.produce.a | 
| 82e0 |  20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73    69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f  | .regular.expression.according.to | 
| 8300 |  20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 74 68    6f 64 73 20 6c 69 73 74 65 64 20 69 6e 0a 60 70  | .the.filter.methods.listed.in.`p | 
| 8320 |  72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d    6d 65 74 68 6f 64 27 2e 20 41 20 63 61 6e 64 69  | rescient-filter-method'..A.candi | 
| 8340 |  64 61 74 65 20 6d 75 73 74 20 6d 61 74 63 68 20    65 76 65 72 79 20 72 65 67 75 6c 61 72 0a 65 78  | date.must.match.every.regular.ex | 
| 8360 |  70 72 65 73 73 69 6f 6e 20 6d 61 64 65 20 66 72    6f 6d 20 74 68 65 20 73 75 62 2d 71 75 65 72 69  | pression.made.from.the.sub-queri | 
| 8380 |  65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65    64 20 69 6e 20 74 68 65 20 6c 69 73 74 0a 6f 66  | es.to.be.included.in.the.list.of | 
| 83a0 |  20 72 65 74 75 72 6e 65 64 20 63 61 6e 64 69 64    61 74 65 73 2e 0a 0a 50 52 45 44 20 69 73 20 74  | .returned.candidates...PRED.is.t | 
| 83c0 |  68 65 20 70 72 65 64 69 63 61 74 65 20 75 73 65    64 20 77 69 74 68 20 74 68 65 20 63 6f 6d 70 6c  | he.predicate.used.with.the.compl | 
| 83e0 |  65 74 69 6f 6e 20 74 61 62 6c 65 2c 20 61 73 0a    64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65  | etion.table,.as.described.in.the | 
| 8400 |  20 61 62 6f 76 65 20 49 6e 66 6f 20 6e 6f 64 65    2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e  | .above.Info.node...This.function | 
| 8420 |  20 64 6f 65 73 20 6e 6f 74 20 6d 6f 64 69 66 79    20 43 41 4e 44 49 44 41 54 45 53 3b 20 69 74 20  | .does.not.modify.CANDIDATES;.it. | 
| 8440 |  61 6c 77 61 79 73 20 6d 61 6b 65 20 61 20 6e 65    77 0a 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69  | always.make.a.new.copy.of.the.li | 
| 8460 |  73 74 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65    74 2a 0a 20 20 20 20 20 20 28 28 60 28 2c 70 72  | st."...(pcase-let*.......((`(,pr | 
| 8480 |  65 66 69 78 20 2e 20 2c 70 61 74 74 65 72 6e 29    0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69  | efix...,pattern).........(presci | 
| 84a0 |  65 6e 74 2d 2d 70 72 65 66 69 78 2d 61 6e 64 2d    70 61 74 74 65 72 6e 20 71 75 65 72 79 20 63 61  | ent--prefix-and-pattern.query.ca | 
| 84c0 |  6e 64 69 64 61 74 65 73 20 70 72 65 64 29 29 0a    20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69  | ndidates.pred))........(completi | 
| 84e0 |  6f 6e 2d 72 65 67 65 78 70 2d 6c 69 73 74 20 28    70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72  | on-regexp-list.(prescient-filter | 
| 8500 |  2d 72 65 67 65 78 70 73 20 70 61 74 74 65 72 6e    29 29 0a 20 20 20 20 20 20 20 28 63 6f 6d 70 6c  | -regexps.pattern))........(compl | 
| 8520 |  65 74 69 6f 6e 2d 69 67 6e 6f 72 65 2d 63 61 73    65 20 28 70 72 65 73 63 69 65 6e 74 2d 69 67 6e  | etion-ignore-case.(prescient-ign | 
| 8540 |  6f 72 65 2d 63 61 73 65 2d 70 20 70 61 74 74 65    72 6e 29 29 29 0a 0a 20 20 20 20 3b 3b 20 41 64  | ore-case-p.pattern)))......;;.Ad | 
| 8560 |  64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f    72 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72  | d.information.for.`prescient-sor | 
| 8580 |  74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66    69 72 73 74 27 2e 20 57 65 0a 20 20 20 20 3b 3b  | t-full-matches-first'..We.....;; | 
| 85a0 |  20 77 61 6e 74 20 74 6f 20 61 64 64 20 74 68 65    73 65 20 70 72 6f 70 65 72 74 69 65 73 20 65 76  | .want.to.add.these.properties.ev | 
| 85c0 |  65 6e 20 69 66 20 77 65 20 63 61 6e 27 74 20 6d    6f 64 69 66 79 20 74 61 62 6c 65 0a 20 20 20 20  | en.if.we.can't.modify.table..... | 
| 85e0 |  3b 3b 20 6d 65 74 61 64 61 74 61 2c 20 73 69 6e    63 65 20 61 20 75 73 65 72 20 6d 69 67 68 74 20  | ;;.metadata,.since.a.user.might. | 
| 8600 |  62 65 20 61 62 6c 65 20 74 6f 20 63 6f 6e 66 69    67 75 72 65 20 74 68 65 69 72 0a 20 20 20 20 3b  | be.able.to.configure.their.....; | 
| 8620 |  3b 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 55 49 20    77 69 74 68 20 61 20 63 75 73 74 6f 6d 20 73 6f  | ;.completion.UI.with.a.custom.so | 
| 8640 |  72 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 74    68 61 74 20 77 6f 75 6c 64 20 75 73 65 0a 20 20  | rting.function.that.would.use... | 
| 8660 |  20 20 3b 3b 20 74 68 69 73 20 69 6e 66 6f 2e 0a    20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 54 68  | ..;;.this.info......;;.....;;.Th | 
| 8680 |  65 72 65 20 69 73 20 61 20 71 75 65 73 74 69 6f    6e 20 6f 66 20 68 6f 77 20 74 6f 20 68 61 6e 64  | ere.is.a.question.of.how.to.hand | 
| 86a0 |  6c 65 20 70 72 65 66 69 78 65 73 20 66 6f 72 20    69 64 65 6e 74 69 66 79 69 6e 67 0a 20 20 20 20  | le.prefixes.for.identifying..... | 
| 86c0 |  3b 3b 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64    20 63 61 6e 64 69 64 61 74 65 73 2e 20 50 72 65  | ;;.fully.matched.candidates..Pre | 
| 86e0 |  66 69 78 65 73 20 61 72 65 20 75 73 65 64 20 69    6e 3a 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b  | fixes.are.used.in:.....;;.....;; | 
| 8700 |  20 2d 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72    65 61 64 2d 6d 75 6c 74 69 70 6c 65 27 2c 20 61  | .-.`completing-read-multiple',.a | 
| 8720 |  73 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 73    20 74 68 61 74 20 68 61 76 65 0a 20 20 20 20 3b  | s.the.candidates.that.have.....; | 
| 8740 |  3b 20 20 20 61 6c 72 65 61 64 79 20 62 65 65 6e    20 73 65 6c 65 63 74 65 64 0a 20 20 20 20 3b 3b  | ;...already.been.selected.....;; | 
| 8760 |  0a 20 20 20 20 3b 3b 20 2d 20 66 69 6c 65 2d 6e    61 6d 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20  | .....;;.-.file-name.completion,. | 
| 8780 |  61 73 20 74 68 65 20 64 69 72 65 63 74 6f 72 79    20 70 72 65 63 65 65 64 69 6e 67 20 74 68 65 20  | as.the.directory.preceeding.the. | 
| 87a0 |  66 69 6c 65 0a 20 20 20 20 3b 3b 20 20 20 6e 61    6d 65 2c 20 74 68 6f 75 67 68 20 74 68 69 73 20  | file.....;;...name,.though.this. | 
| 87c0 |  73 65 65 6d 73 20 74 6f 20 6f 6e 6c 79 20 68 61    70 70 65 6e 20 77 68 65 6e 20 74 68 65 72 65 20  | seems.to.only.happen.when.there. | 
| 87e0 |  69 73 20 6e 6f 0a 20 20 20 20 3b 3b 20 20 20 6d    61 74 63 68 20 69 6e 20 73 6f 6d 65 20 55 49 73  | is.no.....;;...match.in.some.UIs | 
| 8800 |  20 28 49 63 6f 6d 70 6c 65 74 65 2c 20 62 75 74    20 6e 6f 74 20 53 65 6c 65 63 74 72 75 6d 29 0a  | .(Icomplete,.but.not.Selectrum). | 
| 8820 |  20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 49 74    20 6d 69 67 68 74 20 74 75 72 6e 20 6f 75 74 20  | ....;;.....;;.It.might.turn.out. | 
| 8840 |  74 68 61 74 20 66 6f 72 20 66 69 6c 65 20 6e 61    6d 65 73 20 77 65 20 6e 65 65 64 20 74 6f 20 61  | that.for.file.names.we.need.to.a | 
| 8860 |  64 6a 75 73 74 20 74 68 65 0a 20 20 20 20 3b 3b    20 72 65 67 65 78 70 73 20 74 6f 20 62 65 20 22  | djust.the.....;;.regexps.to.be." | 
| 8880 |  5c 28 3f 3a 51 55 4f 54 45 44 2d 50 52 45 46 49    58 5c 29 4d 45 54 48 4f 44 2d 52 45 47 45 58 50  | \(?:QUOTED-PREFIX\)METHOD-REGEXP | 
| 88a0 |  22 2c 20 62 75 74 20 74 68 69 73 0a 20 20 20 20    3b 3b 20 69 73 6e 27 74 20 65 76 69 64 65 6e 74  | ",.but.this.....;;.isn't.evident | 
| 88c0 |  20 79 65 74 2e 20 57 65 20 6a 75 73 74 20 64 6f    20 74 68 65 20 62 65 6c 6f 77 20 74 6f 20 62 65  | .yet..We.just.do.the.below.to.be | 
| 88e0 |  20 70 72 6f 61 63 74 69 76 65 2e 0a 20 20 20 20    28 63 6c 2d 66 6c 65 74 20 28 28 6d 61 79 62 65  | .proactive......(cl-flet.((maybe | 
| 8900 |  2d 61 64 64 2d 70 72 65 66 69 78 20 28 72 65 67    65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20 20  | -add-prefix.(regexps)........... | 
| 8920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28  | ......................(if.(and.( | 
| 8940 |  6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74    79 2d 70 20 70 72 65 66 69 78 29 29 0a 20 20 20  | not.(string-empty-p.prefix)).... | 
| 8960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 8980 |  20 20 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72    2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 66 69 6c 65  | ......minibuffer-completing-file | 
| 89a0 |  2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -name).......................... | 
| 89c0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c    6f 6f 70 20 66 6f 72 20 72 65 67 65 78 70 20 69  | ...........(cl-loop.for.regexp.i | 
| 89e0 |  6e 20 72 65 67 65 78 70 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.regexps....................... | 
| 8a00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28  | .......................collect.( | 
| 8a20 |  63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | concat.......................... | 
| 8a40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c  | ............................."\\ | 
| 8a60 |  28 3f 3a 22 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (?:"............................ | 
| 8a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65  | ...........................(rege | 
| 8aa0 |  78 70 2d 71 75 6f 74 65 20 70 72 65 66 69 78 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xp-quote.prefix)................ | 
| 8ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 8ae0 |  20 20 20 20 20 20 20 22 5c 5c 29 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......."\\)".................... | 
| 8b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 8b20 |  20 20 20 72 65 67 65 78 70 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...regexp))..................... | 
| 8b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65    67 65 78 70 73 29 29 29 0a 20 20 20 20 20 20 28  | ..............regexps))).......( | 
| 8b60 |  70 72 65 73 63 69 65 6e 74 2d 2d 61 64 64 2d 73    6f 72 74 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20  | prescient--add-sort-info........ | 
| 8b80 |  28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73    20 70 72 65 66 69 78 20 63 61 6e 64 69 64 61 74  | (all-completions.prefix.candidat | 
| 8ba0 |  65 73 20 70 72 65 64 29 0a 20 20 20 20 20 20 20    3a 70 72 65 73 63 69 65 6e 74 2d 6d 61 74 63 68  | es.pred)........:prescient-match | 
| 8bc0 |  2d 72 65 67 65 78 70 73 20 63 6f 6d 70 6c 65 74    69 6f 6e 2d 72 65 67 65 78 70 2d 6c 69 73 74 0a  | -regexps.completion-regexp-list. | 
| 8be0 |  20 20 20 20 20 20 20 3a 70 72 65 73 63 69 65 6e    74 2d 61 6c 6c 2d 72 65 67 65 78 70 73 20 28 6d  | .......:prescient-all-regexps.(m | 
| 8c00 |  61 79 62 65 2d 61 64 64 2d 70 72 65 66 69 78 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | aybe-add-prefix................. | 
| 8c20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72  | ...............(prescient-filter | 
| 8c40 |  2d 72 65 67 65 78 70 73 20 70 61 74 74 65 72 6e    20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20  | -regexps.pattern.nil.t))........ | 
| 8c60 |  3a 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72    65 2d 63 61 73 65 20 63 6f 6d 70 6c 65 74 69 6f  | :prescient-ignore-case.completio | 
| 8c80 |  6e 2d 69 67 6e 6f 72 65 2d 63 61 73 65 0a 20 20    20 20 20 20 20 3a 70 72 65 73 63 69 65 6e 74 2d  | n-ignore-case........:prescient- | 
| 8ca0 |  71 75 65 72 79 20 71 75 65 72 79 29 29 29 29 0a    0a 28 64 65 66 6d 61 63 72 6f 20 70 72 65 73 63  | query.query))))..(defmacro.presc | 
| 8cc0 |  69 65 6e 74 2d 2d 73 6f 72 74 2d 63 6f 6d 70 61    72 65 20 28 29 0a 20 20 22 48 61 63 6b 20 75 73  | ient--sort-compare.()..."Hack.us | 
| 8ce0 |  65 64 20 74 6f 20 63 61 75 73 65 20 74 68 65 20    62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 20 74 6f  | ed.to.cause.the.byte-compiler.to | 
| 8d00 |  20 70 72 6f 64 75 63 65 20 66 61 73 74 65 72 20    63 6f 64 65 2e 0a 4e 6f 74 65 20 74 68 61 74 20  | .produce.faster.code..Note.that. | 
| 8d20 |  74 68 69 73 20 6d 61 63 72 6f 20 6d 75 73 74 20    62 65 20 75 73 65 64 20 77 69 74 68 20 73 65 76  | this.macro.must.be.used.with.sev | 
| 8d40 |  65 72 61 6c 20 76 61 72 69 61 62 6c 65 73 20 69    6e 0a 6c 65 78 69 63 61 6c 20 73 63 6f 70 65 2e  | eral.variables.in.lexical.scope. | 
| 8d60 |  22 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20    20 28 6c 65 74 2a 20 28 28 70 31 20 28 67 65 74  | "...`(progn......(let*.((p1.(get | 
| 8d80 |  68 61 73 68 20 63 31 20 68 69 73 74 20 6c 65 6e    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | hash.c1.hist.len)).............( | 
| 8da0 |  70 32 20 28 67 65 74 68 61 73 68 20 63 32 20 68    69 73 74 20 6c 65 6e 29 29 29 0a 20 20 20 20 20  | p2.(gethash.c2.hist.len)))...... | 
| 8dc0 |  20 20 28 6f 72 20 28 3c 20 70 31 20 70 32 29 0a    20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20  | ..(or.(<.p1.p2)............(and. | 
| 8de0 |  28 65 71 20 70 31 20 70 32 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a  | (eq.p1.p2).................(let* | 
| 8e00 |  20 28 28 66 31 20 28 67 65 74 68 61 73 68 20 63    31 20 66 72 65 71 20 30 29 29 0a 20 20 20 20 20  | .((f1.(gethash.c1.freq.0))...... | 
| 8e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 66 32 20 28 67 65 74 68 61 73 68 20 63  | ..................(f2.(gethash.c | 
| 8e40 |  32 20 66 72 65 71 20 30 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f  | 2.freq.0)))...................(o | 
| 8e60 |  72 20 28 3e 20 66 31 20 66 32 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.(>.f1.f2)..................... | 
| 8e80 |  20 20 28 61 6e 64 20 28 65 71 20 66 31 20 66 32    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..(and.(eq.f1.f2)............... | 
| 8ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66    20 74 69 65 62 72 65 61 6b 65 72 0a 20 20 20 20  | .............(if.tiebreaker..... | 
| 8ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 66  | ...........................(<.(f | 
| 8ee0 |  75 6e 63 61 6c 6c 20 74 69 65 62 72 65 61 6b 65    72 20 63 31 20 63 32 29 20 30 29 0a 20 20 20 20  | uncall.tiebreaker.c1.c2).0)..... | 
| 8f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20  | .........................(and... | 
| 8f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 2d  | ............................len- | 
| 8f40 |  65 6e 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | enable.......................... | 
| 8f60 |  20 20 20 20 20 28 3c 20 28 6c 65 6e 67 74 68 20    63 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .....(<.(length.c1)............. | 
| 8f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 65 6e 67 74 68 20 63 32 29  | .....................(length.c2) | 
| 8fa0 |  29 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 73 6f  | )))))))))))..(defun.prescient-so | 
| 8fc0 |  72 74 2d 63 6f 6d 70 61 72 65 20 28 63 31 20 63    32 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 63 61  | rt-compare.(c1.c2)..."Compare.ca | 
| 8fe0 |  6e 64 69 64 61 74 65 73 20 43 31 20 61 6e 64 20    43 32 20 62 79 20 75 73 61 67 65 20 61 6e 64 20  | ndidates.C1.and.C2.by.usage.and. | 
| 9000 |  6c 65 6e 67 74 68 2e 0a 0a 49 66 20 60 70 72 65    73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d  | length...If.`prescient-persist-m | 
| 9020 |  6f 64 65 27 20 69 73 20 65 6e 61 62 6c 65 64 2c    20 74 68 65 6e 20 65 6e 73 75 72 65 20 74 68 61  | ode'.is.enabled,.then.ensure.tha | 
| 9040 |  74 20 75 73 61 67 65 0a 64 61 74 61 20 68 61 73    20 62 65 65 6e 20 6c 6f 61 64 65 64 20 66 72 6f  | t.usage.data.has.been.loaded.fro | 
| 9060 |  6d 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76    65 2d 66 69 6c 65 27 20 62 65 66 6f 72 65 20 63  | m.`prescient-save-file'.before.c | 
| 9080 |  6f 6d 70 61 72 69 6e 67 2e 0a 4c 6f 61 64 69 6e    67 20 77 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 61  | omparing..Loading.will.only.be.a | 
| 90a0 |  74 74 65 6d 70 74 65 64 20 6f 6e 63 65 2c 20 6e    6f 74 20 62 65 66 6f 72 65 20 65 76 65 72 79 0a  | ttempted.once,.not.before.every. | 
| 90c0 |  63 6f 6d 70 61 72 69 73 6f 6e 2e 0a 0a 49 66 20    60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d  | comparison...If.`prescient-sort- | 
| 90e0 |  6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 27 20 69    73 20 6e 69 6c 2c 20 74 68 65 6e 20 64 6f 20 6e  | length-enable'.is.nil,.then.do.n | 
| 9100 |  6f 74 20 73 6f 72 74 20 62 79 0a 6c 65 6e 67 74    68 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64  | ot.sort.by.length."...(when.(and | 
| 9120 |  20 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69    73 74 2d 6d 6f 64 65 20 28 6e 6f 74 20 70 72 65  | .prescient-persist-mode.(not.pre | 
| 9140 |  73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 6c 6f    61 64 65 64 29 29 0a 20 20 20 20 28 70 72 65 73  | scient--cache-loaded)).....(pres | 
| 9160 |  63 69 65 6e 74 2d 2d 6c 6f 61 64 29 29 0a 20 20    28 6c 65 74 20 28 28 68 69 73 74 20 70 72 65 73  | cient--load))...(let.((hist.pres | 
| 9180 |  63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 0a    20 20 20 20 20 20 20 20 28 6c 65 6e 20 70 72 65  | cient--history).........(len.pre | 
| 91a0 |  73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c    65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 28  | scient-history-length).........( | 
| 91c0 |  66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 2d    66 72 65 71 75 65 6e 63 79 29 0a 20 20 20 20 20  | freq.prescient--frequency)...... | 
| 91e0 |  20 20 20 28 6c 65 6e 2d 65 6e 61 62 6c 65 20 70    72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65  | ...(len-enable.prescient-sort-le | 
| 9200 |  6e 67 74 68 2d 65 6e 61 62 6c 65 29 0a 20 20 20    20 20 20 20 20 28 74 69 65 62 72 65 61 6b 65 72  | ngth-enable).........(tiebreaker | 
| 9220 |  20 70 72 65 73 63 69 65 6e 74 2d 74 69 65 62 72    65 61 6b 65 72 29 29 0a 20 20 20 20 28 70 72 65  | .prescient-tiebreaker)).....(pre | 
| 9240 |  73 63 69 65 6e 74 2d 2d 73 6f 72 74 2d 63 6f 6d    70 61 72 65 29 29 29 0a 0a 28 64 65 66 76 61 72  | scient--sort-compare)))..(defvar | 
| 9260 |  20 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79    20 6e 69 6c 0a 20 20 22 54 68 65 20 6f 72 69 67  | .prescient-query.nil..."The.orig | 
| 9280 |  69 6e 61 6c 20 71 75 65 72 79 20 66 72 6f 6d 20    74 68 65 20 75 73 65 72 2c 20 69 66 20 61 76 61  | inal.query.from.the.user,.if.ava | 
| 92a0 |  69 6c 61 62 6c 65 2e 0a 59 6f 75 20 63 61 6e 20    75 73 65 20 74 68 69 73 20 69 6e 20 79 6f 75 72  | ilable..You.can.use.this.in.your | 
| 92c0 |  20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20    6f 66 20 60 70 72 65 73 63 69 65 6e 74 2d 74 69  | .implementation.of.`prescient-ti | 
| 92e0 |  65 62 72 65 61 6b 65 72 27 0a 74 6f 20 73 6f 72    74 20 63 61 6e 64 69 64 61 74 65 73 20 64 65 70  | ebreaker'.to.sort.candidates.dep | 
| 9300 |  65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 75 73    65 72 27 73 20 71 75 65 72 79 2e 20 54 68 69 73  | ending.on.the.user's.query..This | 
| 9320 |  20 6d 69 67 68 74 20 62 65 0a 6e 69 6c 20 69 66    20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74  | .might.be.nil.if.`prescient-sort | 
| 9340 |  2d 63 6f 6d 70 61 72 65 27 20 69 73 20 69 6e 76    6f 6b 65 64 20 64 69 72 65 63 74 6c 79 2c 20 6f  | -compare'.is.invoked.directly,.o | 
| 9360 |  72 20 69 66 0a 60 70 72 65 73 63 69 65 6e 74 2d    73 6f 72 74 27 20 69 73 20 69 6e 76 6f 6b 65 64  | r.if.`prescient-sort'.is.invoked | 
| 9380 |  20 77 69 74 68 6f 75 74 20 60 70 72 65 73 63 69    65 6e 74 2d 66 69 6c 74 65 72 27 20 68 61 76 69  | .without.`prescient-filter'.havi | 
| 93a0 |  6e 67 0a 62 65 65 6e 20 72 75 6e 20 66 69 72 73    74 2c 20 73 6f 20 79 6f 75 20 73 68 6f 75 6c 64  | ng.been.run.first,.so.you.should | 
| 93c0 |  20 68 61 6e 64 6c 65 20 74 68 61 74 20 63 61 73    65 20 74 6f 6f 2e 22 29 0a 0a 28 64 65 66 75 6e  | .handle.that.case.too.")..(defun | 
| 93e0 |  20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 20    28 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 22  | .prescient-sort.(candidates)..." | 
| 9400 |  53 6f 72 74 20 43 41 4e 44 49 44 41 54 45 53 20    75 73 69 6e 67 20 66 72 65 71 75 65 6e 63 79 20  | Sort.CANDIDATES.using.frequency. | 
| 9420 |  64 61 74 61 2e 0a 52 65 74 75 72 6e 20 74 68 65    20 73 6f 72 74 65 64 20 6c 69 73 74 2e 20 54 68  | data..Return.the.sorted.list..Th | 
| 9440 |  65 20 6f 72 69 67 69 6e 61 6c 20 69 73 20 6d 6f    64 69 66 69 65 64 20 64 65 73 74 72 75 63 74 69  | e.original.is.modified.destructi | 
| 9460 |  76 65 6c 79 2e 0a 0a 53 65 65 20 61 6c 73 6f 20    74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 60 70  | vely...See.also.the.functions.`p | 
| 9480 |  72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75    6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74  | rescient-sort-full-matches-first | 
| 94a0 |  27 20 61 6e 64 0a 60 70 72 65 73 63 69 65 6e 74    2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 6f 72 74  | '.and.`prescient-completion-sort | 
| 94c0 |  27 2e 20 42 6f 74 68 20 61 72 65 20 6d 65 61 6e    74 20 74 6f 20 62 65 20 75 73 65 64 20 61 66 74  | '..Both.are.meant.to.be.used.aft | 
| 94e0 |  65 72 0a 60 70 72 65 73 63 69 65 6e 74 2d 66 69    6c 74 65 72 27 2e 22 0a 20 20 28 77 68 65 6e 20  | er.`prescient-filter'."...(when. | 
| 9500 |  28 61 6e 64 20 70 72 65 73 63 69 65 6e 74 2d 70    65 72 73 69 73 74 2d 6d 6f 64 65 20 28 6e 6f 74  | (and.prescient-persist-mode.(not | 
| 9520 |  20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68    65 2d 6c 6f 61 64 65 64 29 29 0a 20 20 20 20 28  | .prescient--cache-loaded)).....( | 
| 9540 |  70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 29    29 0a 20 20 3b 3b 20 50 65 72 66 6f 72 6d 61 6e  | prescient--load))...;;.Performan | 
| 9560 |  63 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20    72 65 76 65 61 6c 65 64 20 74 68 61 74 20 72 65  | ce.optimization.revealed.that.re | 
| 9580 |  61 64 69 6e 67 20 64 79 6e 61 6d 69 63 20 76 61    72 69 61 62 6c 65 73 0a 20 20 3b 3b 20 6d 75 6c  | ading.dynamic.variables...;;.mul | 
| 95a0 |  74 69 70 6c 65 20 74 69 6d 65 73 20 77 61 73 20    61 20 62 6f 74 74 6c 65 6e 65 63 6b 20 28 79 65  | tiple.times.was.a.bottleneck.(ye | 
| 95c0 |  73 2c 20 72 65 61 6c 6c 79 29 2c 20 61 6e 64 20    62 79 20 72 65 61 64 69 6e 67 0a 20 20 3b 3b 20  | s,.really),.and.by.reading...;;. | 
| 95e0 |  74 68 65 6d 20 69 6e 74 6f 20 6c 65 78 69 63 61    6c 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63  | them.into.lexical.variables.whic | 
| 9600 |  68 20 61 72 65 20 6d 75 63 68 20 66 61 73 74 65    72 20 74 6f 20 61 63 63 65 73 73 2c 20 77 65 0a  | h.are.much.faster.to.access,.we. | 
| 9620 |  20 20 3b 3b 20 69 6d 70 72 6f 76 65 20 74 68 65    20 73 70 65 65 64 20 6f 66 20 60 70 72 65 73 63  | ..;;.improve.the.speed.of.`presc | 
| 9640 |  69 65 6e 74 2d 73 6f 72 74 27 20 6f 6e 20 6c 61    72 67 65 20 63 61 6e 64 69 64 61 74 65 20 6c 69  | ient-sort'.on.large.candidate.li | 
| 9660 |  73 74 73 20 62 79 0a 20 20 3b 3b 20 32 78 2e 0a    20 20 28 6c 65 74 20 28 28 68 69 73 74 20 70 72  | sts.by...;;.2x....(let.((hist.pr | 
| 9680 |  65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79    29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 20 70  | escient--history).........(len.p | 
| 96a0 |  72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79    2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20  | rescient-history-length)........ | 
| 96c0 |  20 28 66 72 65 71 20 70 72 65 73 63 69 65 6e 74    2d 2d 66 72 65 71 75 65 6e 63 79 29 0a 20 20 20  | .(freq.prescient--frequency).... | 
| 96e0 |  20 20 20 20 20 28 6c 65 6e 2d 65 6e 61 62 6c 65    20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d  | .....(len-enable.prescient-sort- | 
| 9700 |  6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 29 0a 20    20 20 20 20 20 20 20 28 74 69 65 62 72 65 61 6b  | length-enable).........(tiebreak | 
| 9720 |  65 72 20 70 72 65 73 63 69 65 6e 74 2d 74 69 65    62 72 65 61 6b 65 72 29 0a 20 20 20 20 20 20 20  | er.prescient-tiebreaker)........ | 
| 9740 |  20 28 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72    79 20 28 70 6c 69 73 74 2d 67 65 74 20 28 70 72  | .(prescient-query.(plist-get.(pr | 
| 9760 |  65 73 63 69 65 6e 74 2d 2d 67 65 74 2d 73 6f 72    74 2d 69 6e 66 6f 20 63 61 6e 64 69 64 61 74 65  | escient--get-sort-info.candidate | 
| 9780 |  73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s).............................. | 
| 97a0 |  20 20 20 20 20 20 20 3a 70 72 65 73 63 69 65 6e    74 2d 71 75 65 72 79 29 29 29 0a 20 20 20 20 28  | .......:prescient-query))).....( | 
| 97c0 |  73 6f 72 74 0a 20 20 20 20 20 63 61 6e 64 69 64    61 74 65 73 0a 20 20 20 20 20 28 6c 61 6d 62 64  | sort......candidates......(lambd | 
| 97e0 |  61 20 28 63 31 20 63 32 29 0a 20 20 20 20 20 20    20 28 70 72 65 73 63 69 65 6e 74 2d 2d 73 6f 72  | a.(c1.c2)........(prescient--sor | 
| 9800 |  74 2d 63 6f 6d 70 61 72 65 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74  | t-compare)))))..(defun.prescient | 
| 9820 |  2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68    65 73 2d 66 69 72 73 74 20 28 63 61 6e 64 69 64  | -sort-full-matches-first.(candid | 
| 9840 |  61 74 65 73 20 72 65 67 65 78 70 73 20 69 67 6e    6f 72 65 2d 63 61 73 65 29 0a 20 20 22 53 6f 72  | ates.regexps.ignore-case)..."Sor | 
| 9860 |  74 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64 20    73 74 72 69 6e 67 73 20 69 6e 20 43 41 4e 44 49  | t.fully.matched.strings.in.CANDI | 
| 9880 |  44 41 54 45 53 20 62 65 66 6f 72 65 20 6f 74 68    65 72 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 0a  | DATES.before.other.candidates... | 
| 98a0 |  52 45 47 45 58 50 53 20 61 72 65 20 74 68 65 20    72 65 67 65 78 70 73 20 70 72 65 73 63 69 65 6e  | REGEXPS.are.the.regexps.prescien | 
| 98c0 |  74 2e 65 6c 20 75 73 65 64 20 74 6f 20 66 69 6c    74 65 72 20 74 68 65 20 63 61 6e 64 69 64 61 74  | t.el.used.to.filter.the.candidat | 
| 98e0 |  65 73 2e 0a 49 47 4e 4f 52 45 2d 43 41 53 45 20    69 73 20 77 68 65 74 68 65 72 20 63 61 73 65 20  | es..IGNORE-CASE.is.whether.case. | 
| 9900 |  77 61 73 20 69 67 6e 6f 72 65 64 20 77 68 65 6e    20 66 69 6c 74 65 72 69 6e 67 2e 0a 0a 41 73 20  | was.ignored.when.filtering...As. | 
| 9920 |  74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73    20 6d 65 61 6e 74 20 74 6f 20 62 65 20 75 73 65  | this.function.is.meant.to.be.use | 
| 9940 |  64 20 61 66 74 65 72 20 66 69 6c 74 65 72 69 6e    67 2c 20 61 6c 6c 20 6f 66 20 74 68 65 0a 63 61  | d.after.filtering,.all.of.the.ca | 
| 9960 |  6e 64 69 64 61 74 65 73 20 69 6e 20 43 41 4e 44    49 44 41 54 45 53 20 73 68 6f 75 6c 64 20 6d 61  | ndidates.in.CANDIDATES.should.ma | 
| 9980 |  74 63 68 20 61 6c 6c 20 6f 66 20 74 68 65 20 72    65 67 65 78 70 73 20 69 6e 0a 52 45 47 45 58 50  | tch.all.of.the.regexps.in.REGEXP | 
| 99a0 |  53 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28    28 6e 75 6c 6c 20 63 61 6e 64 69 64 61 74 65 73  | S."...(cond....((null.candidates | 
| 99c0 |  29 20 6e 69 6c 29 0a 20 20 20 28 28 6e 75 6c 6c    20 72 65 67 65 78 70 73 29 20 63 61 6e 64 69 64  | ).nil)....((null.regexps).candid | 
| 99e0 |  61 74 65 73 29 0a 20 20 20 28 74 20 28 73 61 76    65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20  | ates)....(t.(save-match-data.... | 
| 9a00 |  20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20    20 20 20 20 20 20 20 77 69 74 68 20 70 72 69 6f  | .....(cl-loop..........with.prio | 
| 9a20 |  72 69 74 69 7a 65 64 2d 63 61 6e 64 69 64 61 74    65 73 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 20  | ritized-candidates.=.nil........ | 
| 9a40 |  20 20 61 6e 64 20 72 65 6d 61 69 6e 69 6e 67 2d    63 61 6e 64 69 64 61 74 65 73 20 3d 20 6e 69 6c  | ..and.remaining-candidates.=.nil | 
| 9a60 |  0a 20 20 20 20 20 20 20 20 20 61 6e 64 20 63 61    73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 3d  | ..........and.case-fold-search.= | 
| 9a80 |  20 69 67 6e 6f 72 65 2d 63 61 73 65 0a 20 20 20    20 20 20 20 20 20 66 6f 72 20 63 61 6e 64 20 69  | .ignore-case..........for.cand.i | 
| 9aa0 |  6e 20 63 61 6e 64 69 64 61 74 65 73 0a 20 20 20    20 20 20 20 20 20 69 66 20 28 63 6c 2d 6c 6f 6f  | n.candidates..........if.(cl-loo | 
| 9ac0 |  70 20 66 6f 72 20 72 65 67 65 78 70 20 69 6e 20    72 65 67 65 78 70 73 0a 20 20 20 20 20 20 20 20  | p.for.regexp.in.regexps......... | 
| 9ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65    72 65 69 73 20 28 61 6e 64 20 28 73 74 72 69 6e  | .............thereis.(and.(strin | 
| 9b00 |  67 2d 6d 61 74 63 68 20 72 65 67 65 78 70 20 63    61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20  | g-match.regexp.cand)............ | 
| 9b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3d 20 28 6c 65 6e 67 74  | .......................(=.(lengt | 
| 9b40 |  68 20 63 61 6e 64 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | h.cand)......................... | 
| 9b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20    28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20  | .............(-.(match-end.0)... | 
| 9b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 9ba0 |  20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67    69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 20 20  | ......(match-beginning.0)))))... | 
| 9bc0 |  20 20 20 20 20 20 20 64 6f 20 28 70 75 73 68 20    63 61 6e 64 20 70 72 69 6f 72 69 74 69 7a 65 64  | .......do.(push.cand.prioritized | 
| 9be0 |  2d 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20    20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 70  | -candidates)..........else.do.(p | 
| 9c00 |  75 73 68 20 63 61 6e 64 20 72 65 6d 61 69 6e 69    6e 67 2d 63 61 6e 64 69 64 61 74 65 73 29 0a 20  | ush.cand.remaining-candidates).. | 
| 9c20 |  20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20    72 65 74 75 72 6e 20 28 6e 63 6f 6e 63 20 28 6e  | ........finally.return.(nconc.(n | 
| 9c40 |  72 65 76 65 72 73 65 20 70 72 69 6f 72 69 74 69    7a 65 64 2d 63 61 6e 64 69 64 61 74 65 73 29 0a  | reverse.prioritized-candidates). | 
| 9c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 9c80 |  6e 72 65 76 65 72 73 65 20 72 65 6d 61 69 6e 69    6e 67 2d 63 61 6e 64 69 64 61 74 65 73 29 29 29  | nreverse.remaining-candidates))) | 
| 9ca0 |  29 29 29 29 0a 0a 3b 3b 3b 3b 20 43 61 6e 64 69    64 61 74 65 20 73 65 6c 65 63 74 69 6f 6e 0a 0a  | ))))..;;;;.Candidate.selection.. | 
| 9cc0 |  28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74    2d 72 65 6d 65 6d 62 65 72 20 28 63 61 6e 64 69  | (defun.prescient-remember.(candi | 
| 9ce0 |  64 61 74 65 29 0a 20 20 22 52 65 63 6f 72 64 20    43 41 4e 44 49 44 41 54 45 20 69 6e 20 60 70 72  | date)..."Record.CANDIDATE.in.`pr | 
| 9d00 |  65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79    27 20 61 6e 64 20 60 70 72 65 73 63 69 65 6e 74  | escient--history'.and.`prescient | 
| 9d20 |  2d 2d 66 72 65 71 75 65 6e 63 79 27 2e 22 0a 20    20 28 73 65 74 71 20 63 61 6e 64 69 64 61 74 65  | --frequency'."...(setq.candidate | 
| 9d40 |  20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70    72 6f 70 65 72 74 69 65 73 20 63 61 6e 64 69 64  | .(substring-no-properties.candid | 
| 9d60 |  61 74 65 29 29 0a 20 20 3b 3b 20 41 64 64 20 74    6f 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 68 69  | ate))...;;.Add.to.`prescient--hi | 
| 9d80 |  73 74 6f 72 79 27 2e 0a 20 20 28 6c 65 74 20 28    28 74 68 69 73 2d 70 6f 73 20 28 67 65 74 68 61  | story'....(let.((this-pos.(getha | 
| 9da0 |  73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 63 61 6e 64 69 64 61 74 65 20  | sh....................candidate. | 
| 9dc0 |  70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f    72 79 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73  | prescient--history.prescient-his | 
| 9de0 |  74 6f 72 79 2d 6c 65 6e 67 74 68 29 29 29 0a 20    20 20 20 3b 3b 20 49 66 20 74 68 65 20 63 61 6e  | tory-length))).....;;.If.the.can | 
| 9e00 |  64 69 64 61 74 65 20 77 61 73 20 61 6c 72 65 61    64 79 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72  | didate.was.already.in.the.histor | 
| 9e20 |  79 2c 20 74 68 65 6e 20 70 72 65 70 61 72 65 20    66 6f 72 0a 20 20 20 20 3b 3b 20 6d 6f 76 69 6e  | y,.then.prepare.for.....;;.movin | 
| 9e40 |  67 20 69 74 20 74 6f 20 74 68 65 20 66 72 6f 6e    74 20 62 79 20 69 6e 63 72 65 6d 65 6e 74 69 6e  | g.it.to.the.front.by.incrementin | 
| 9e60 |  67 20 74 68 65 20 69 6e 64 69 63 65 73 20 6f 66    20 6f 74 68 65 72 0a 20 20 20 20 3b 3b 20 63 61  | g.the.indices.of.other.....;;.ca | 
| 9e80 |  6e 64 69 64 61 74 65 73 2e 0a 20 20 20 20 28 6d    61 70 68 61 73 68 0a 20 20 20 20 20 28 6c 61 6d  | ndidates......(maphash......(lam | 
| 9ea0 |  62 64 61 20 28 6f 74 68 65 72 2d 63 61 6e 64 69    64 61 74 65 20 6f 74 68 65 72 2d 70 6f 73 29 0a  | bda.(other-candidate.other-pos). | 
| 9ec0 |  20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20    20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 6f  | .......(cond.........;;.If.the.o | 
| 9ee0 |  74 68 65 72 20 63 61 6e 64 69 64 61 74 65 20 63    61 6d 65 20 65 61 72 6c 69 65 72 20 69 6e 20 74  | ther.candidate.came.earlier.in.t | 
| 9f00 |  68 65 20 68 69 73 74 6f 72 79 2c 20 74 68 65 6e    0a 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 63 72  | he.history,.then.........;;.incr | 
| 9f20 |  65 6d 65 6e 74 20 69 74 73 20 69 6e 64 65 78 2e    0a 20 20 20 20 20 20 20 20 28 28 3c 20 6f 74 68  | ement.its.index..........((<.oth | 
| 9f40 |  65 72 2d 70 6f 73 20 74 68 69 73 2d 70 6f 73 29    0a 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61  | er-pos.this-pos)..........(putha | 
| 9f60 |  73 68 20 6f 74 68 65 72 2d 63 61 6e 64 69 64 61    74 65 20 28 31 2b 20 6f 74 68 65 72 2d 70 6f 73  | sh.other-candidate.(1+.other-pos | 
| 9f80 |  29 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73    74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 3b  | ).prescient--history)).........; | 
| 9fa0 |  3b 20 45 6c 73 65 2c 20 69 66 20 69 74 27 73 20    61 6c 72 65 61 64 79 20 70 61 73 74 20 74 68 65  | ;.Else,.if.it's.already.past.the | 
| 9fc0 |  20 65 6e 64 20 6f 66 20 74 68 65 20 68 69 73 74    6f 72 79 20 28 74 68 69 73 0a 20 20 20 20 20 20  | .end.of.the.history.(this....... | 
| 9fe0 |  20 20 3b 3b 20 77 6f 75 6c 64 20 68 61 70 70 65    6e 20 69 66 20 60 70 72 65 73 63 69 65 6e 74 2d  | ..;;.would.happen.if.`prescient- | 
| a000 |  68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 27 20    77 65 72 65 20 64 65 63 72 65 61 73 65 64 29 2c  | history-length'.were.decreased), | 
| a020 |  0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69    66 20 69 74 27 73 20 61 74 20 74 68 65 20 76 65  | .........;;.or.if.it's.at.the.ve | 
| a040 |  72 79 20 65 6e 64 20 61 6e 64 20 61 20 6e 65 77    20 63 61 6e 64 69 64 61 74 65 20 77 61 73 20 61  | ry.end.and.a.new.candidate.was.a | 
| a060 |  64 64 65 64 2c 0a 20 20 20 20 20 20 20 20 3b 3b    20 74 68 65 6e 20 72 65 6d 6f 76 65 20 69 74 20  | dded,.........;;.then.remove.it. | 
| a080 |  66 72 6f 6d 20 74 68 65 20 68 69 73 74 6f 72 79    2e 0a 20 20 20 20 20 20 20 20 28 28 6f 72 20 28  | from.the.history..........((or.( | 
| a0a0 |  3e 3d 20 6f 74 68 65 72 2d 70 6f 73 20 70 72 65    73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c  | >=.other-pos.prescient-history-l | 
| a0c0 |  65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 61 6e 64 20 28 3d 20 6f 74 68 65  | ength)..............(and.(=.othe | 
| a0e0 |  72 2d 70 6f 73 20 28 31 2d 20 70 72 65 73 63 69    65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67  | r-pos.(1-.prescient-history-leng | 
| a100 |  74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3d 20 74 68 69 73 2d 70  | th))...................(=.this-p | 
| a120 |  6f 73 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73    74 6f 72 79 2d 6c 65 6e 67 74 68 29 29 29 0a 20  | os.prescient-history-length))).. | 
| a140 |  20 20 20 20 20 20 20 20 28 72 65 6d 68 61 73 68    20 6f 74 68 65 72 2d 63 61 6e 64 69 64 61 74 65  | ........(remhash.other-candidate | 
| a160 |  20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74    6f 72 79 29 29 29 29 0a 20 20 20 20 20 70 72 65  | .prescient--history))))......pre | 
| a180 |  73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29    0a 20 20 20 20 3b 3b 20 4e 6f 77 20 61 64 64 20  | scient--history).....;;.Now.add. | 
| a1a0 |  74 68 65 20 6e 65 77 20 63 61 6e 64 69 64 61 74    65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69  | the.new.candidate.to.the.beginni | 
| a1c0 |  6e 67 2e 0a 20 20 20 20 28 70 75 74 68 61 73 68    20 63 61 6e 64 69 64 61 74 65 20 30 20 70 72 65  | ng......(puthash.candidate.0.pre | 
| a1e0 |  73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29    29 0a 20 20 3b 3b 20 41 64 64 20 74 6f 20 60 70  | scient--history))...;;.Add.to.`p | 
| a200 |  72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65    6e 63 79 27 2e 0a 20 20 28 70 75 74 68 61 73 68  | rescient--frequency'....(puthash | 
| a220 |  20 63 61 6e 64 69 64 61 74 65 20 28 31 2b 20 28    67 65 74 68 61 73 68 20 63 61 6e 64 69 64 61 74  | .candidate.(1+.(gethash.candidat | 
| a240 |  65 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65    71 75 65 6e 63 79 20 30 29 29 0a 20 20 20 20 20  | e.prescient--frequency.0))...... | 
| a260 |  20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d    2d 66 72 65 71 75 65 6e 63 79 29 0a 20 20 3b 3b  | ......prescient--frequency)...;; | 
| a280 |  20 52 65 6d 6f 76 65 20 6f 6c 64 20 65 6e 74 72    69 65 73 20 66 72 6f 6d 20 60 70 72 65 73 63 69  | .Remove.old.entries.from.`presci | 
| a2a0 |  65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 27 2e    0a 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d  | ent--frequency'....(maphash.(lam | 
| a2c0 |  62 64 61 20 28 63 61 6e 64 20 6f 6c 64 2d 66 72    65 71 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | bda.(cand.old-freq)............. | 
| a2e0 |  20 28 6c 65 74 20 28 28 6e 65 77 2d 66 72 65 71    20 28 2a 20 6f 6c 64 2d 66 72 65 71 20 70 72 65  | .(let.((new-freq.(*.old-freq.pre | 
| a300 |  73 63 69 65 6e 74 2d 66 72 65 71 75 65 6e 63 79    2d 64 65 63 61 79 29 29 29 0a 20 20 20 20 20 20  | scient-frequency-decay)))....... | 
| a320 |  20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20    6e 65 77 2d 66 72 65 71 20 70 72 65 73 63 69 65  | .........(if.(<.new-freq.prescie | 
| a340 |  6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 74 68 72    65 73 68 6f 6c 64 29 0a 20 20 20 20 20 20 20 20  | nt-frequency-threshold)......... | 
| a360 |  20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 68    61 73 68 20 63 61 6e 64 20 70 72 65 73 63 69 65  | ...........(remhash.cand.prescie | 
| a380 |  6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt--frequency).................. | 
| a3a0 |  28 70 75 74 68 61 73 68 20 63 61 6e 64 20 6e 65    77 2d 66 72 65 71 20 70 72 65 73 63 69 65 6e 74  | (puthash.cand.new-freq.prescient | 
| a3c0 |  2d 2d 66 72 65 71 75 65 6e 63 79 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 70 72 65 73 63  | --frequency))))............presc | 
| a3e0 |  69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29    0a 20 20 3b 3b 20 55 70 64 61 74 65 20 73 65 72  | ient--frequency)...;;.Update.ser | 
| a400 |  69 61 6c 20 6e 75 6d 62 65 72 2e 0a 20 20 28 63    6c 2d 69 6e 63 66 20 70 72 65 73 63 69 65 6e 74  | ial.number....(cl-incf.prescient | 
| a420 |  2d 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 29    0a 20 20 3b 3b 20 53 61 76 65 20 74 68 65 20 63  | --serial-number)...;;.Save.the.c | 
| a440 |  61 63 68 65 20 64 61 74 61 2e 0a 20 20 28 77 68    65 6e 20 28 61 6e 64 20 70 72 65 73 63 69 65 6e  | ache.data....(when.(and.prescien | 
| a460 |  74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73  | t-persist-mode..............pres | 
| a480 |  63 69 65 6e 74 2d 61 67 67 72 65 73 73 69 76 65    2d 66 69 6c 65 2d 73 61 76 65 29 0a 20 20 20 20  | cient-aggressive-file-save)..... | 
| a4a0 |  28 70 72 65 73 63 69 65 6e 74 2d 2d 73 61 76 65    29 29 29 0a 0a 3b 3b 3b 3b 20 43 6f 6d 70 6c 65  | (prescient--save)))..;;;;.Comple | 
| a4c0 |  74 69 6f 6e 20 53 74 79 6c 65 0a 0a 3b 3b 20 54    68 69 73 20 73 65 63 74 69 6f 6e 20 63 6f 6e 74  | tion.Style..;;.This.section.cont | 
| a4e0 |  61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 66    6f 72 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20  | ains.functions.for.implementing. | 
| a500 |  74 68 65 20 60 70 72 65 73 63 69 65 6e 74 27 0a    3b 3b 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74  | the.`prescient'.;;.completion.st | 
| a520 |  79 6c 65 2e 20 54 68 69 73 20 66 65 61 74 75 72    65 20 69 73 20 62 61 73 65 64 20 6f 6e 20 4f 72  | yle..This.feature.is.based.on.Or | 
| a540 |  64 65 72 6c 65 73 73 2e 65 6c 2e 0a 3b 3b 20 53    65 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68  | derless.el..;;.See:.https://gith | 
| a560 |  75 62 2e 63 6f 6d 2f 6f 61 6e 74 6f 6c 69 6e 2f    6f 72 64 65 72 6c 65 73 73 0a 0a 28 64 65 66 76  | ub.com/oantolin/orderless..(defv | 
| a580 |  61 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61    7a 79 2d 68 69 6c 69 74 29 0a 28 64 65 66 76 61  | ar.completion-lazy-hilit).(defva | 
| a5a0 |  72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a    79 2d 68 69 6c 69 74 2d 66 6e 29 0a 0a 3b 3b 3b  | r.completion-lazy-hilit-fn)..;;; | 
| a5c0 |  3b 3b 20 53 6f 72 74 69 6e 67 20 66 75 6e 63 74    69 6f 6e 73 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f  | ;;.Sorting.functions..;;;###auto | 
| a5e0 |  6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 70    72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 6c 65 74  | load.(cl-defun.prescient-complet | 
| a600 |  69 6f 6e 2d 73 6f 72 74 20 28 63 61 6e 64 69 64    61 74 65 73 29 0a 20 20 22 53 6f 72 74 20 74 68  | ion-sort.(candidates)..."Sort.th | 
| a620 |  65 20 66 69 6c 74 65 72 65 64 20 43 41 4e 44 49    44 41 54 45 53 2e 0a 0a 54 68 69 73 20 66 75 6e  | e.filtered.CANDIDATES...This.fun | 
| a640 |  63 74 69 6f 6e 20 77 69 6c 6c 20 61 6c 77 61 79    73 20 73 6f 72 74 20 63 61 6e 64 69 64 61 74 65  | ction.will.always.sort.candidate | 
| a660 |  73 20 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63    74 69 6f 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d  | s.using.the.function.`prescient- | 
| a680 |  73 6f 72 74 27 2e 20 57 68 65 6e 20 43 41 4e 44    49 44 41 54 45 53 20 68 61 73 20 62 65 65 6e 20  | sort'..When.CANDIDATES.has.been. | 
| a6a0 |  66 69 6c 74 65 72 65 64 20 75 73 69 6e 67 20 74    68 65 0a 60 70 72 65 73 63 69 65 6e 74 27 20 63  | filtered.using.the.`prescient'.c | 
| a6c0 |  6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 2c    20 69 74 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c  | ompletion.style,.it.can.optional | 
| a6e0 |  6c 79 20 61 6c 73 6f 20 73 6f 72 74 20 74 68 65    6d 0a 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63  | ly.also.sort.them.using.the.func | 
| a700 |  74 69 6f 6e 20 60 70 72 65 73 63 69 65 6e 74 2d    73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65  | tion.`prescient-sort-full-matche | 
| a720 |  73 2d 66 69 72 73 74 27 2e 0a 0a 54 68 69 73 20    66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20  | s-first'...This.function.checks. | 
| a740 |  66 6f 72 20 74 68 65 20 70 72 6f 70 65 72 74 69    65 73 20 60 70 72 65 73 63 69 65 6e 74 2d 72 65  | for.the.properties.`prescient-re | 
| a760 |  67 65 78 70 73 27 20 61 6e 64 0a 60 70 72 65 73    63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73  | gexps'.and.`prescient-ignore-cas | 
| a780 |  65 27 20 6f 6e 20 61 6e 79 20 63 61 6e 64 69 64    61 74 65 20 69 6e 20 43 41 4e 44 49 44 41 54 45  | e'.on.any.candidate.in.CANDIDATE | 
| a7a0 |  53 20 28 74 68 6f 75 67 68 0a 74 68 65 79 20 61    72 65 20 73 74 6f 72 65 64 20 6f 6e 20 74 68 65  | S.(though.they.are.stored.on.the | 
| a7c0 |  20 66 69 72 73 74 20 63 61 6e 64 69 64 61 74 65    20 72 65 74 75 72 6e 65 64 20 62 79 0a 60 70 72  | .first.candidate.returned.by.`pr | 
| a7e0 |  65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 27 29    2e 20 54 68 65 73 65 20 70 72 6f 70 65 72 74 69  | escient-filter')..These.properti | 
| a800 |  65 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20    69 6d 70 6c 65 6d 65 6e 74 69 6e 67 0a 74 68 65  | es.are.used.for.implementing.the | 
| a820 |  20 75 73 65 72 20 6f 70 74 69 6f 6e 20 60 70 72    65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c  | .user.option.`prescient-sort-ful | 
| a840 |  6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27    2e 22 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 63  | l-matches-first'."...(if.(null.c | 
| a860 |  61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20    20 6e 69 6c 0a 20 20 20 20 3b 3b 20 60 70 72 65  | andidates).......nil.....;;.`pre | 
| a880 |  73 63 69 65 6e 74 2d 66 69 6c 74 65 72 27 20 61    64 64 73 20 74 68 65 20 70 72 6f 70 65 72 74 69  | scient-filter'.adds.the.properti | 
| a8a0 |  65 73 20 6e 65 65 64 65 64 20 66 6f 72 0a 20 20    20 20 3b 3b 20 60 70 72 65 73 63 69 65 6e 74 2d  | es.needed.for.....;;.`prescient- | 
| a8c0 |  73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65    73 2d 66 69 72 73 74 27 20 74 6f 20 74 68 65 20  | sort-full-matches-first'.to.the. | 
| a8e0 |  66 69 72 73 74 20 63 61 6e 64 69 64 61 74 65 20    69 6e 0a 20 20 20 20 3b 3b 20 74 68 65 20 6c 69  | first.candidate.in.....;;.the.li | 
| a900 |  73 74 20 69 74 20 72 65 74 75 72 6e 73 2e 20 49    66 20 77 65 27 72 65 20 72 65 63 65 69 76 69 6e  | st.it.returns..If.we're.receivin | 
| a920 |  67 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 63    61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 3b 3b  | g.the.filtered.candidates.....;; | 
| a940 |  20 64 69 72 65 63 74 6c 79 20 28 73 6f 2c 20 6e    6f 74 20 69 6e 20 60 63 6f 6d 70 61 6e 79 2d 70  | .directly.(so,.not.in.`company-p | 
| a960 |  72 65 73 63 69 65 6e 74 2d 74 72 61 6e 73 66 6f    72 6d 65 72 27 29 20 74 68 65 6e 20 77 65 0a 20  | rescient-transformer').then.we.. | 
| a980 |  20 20 20 3b 3b 20 73 68 6f 75 6c 64 20 62 65 20    63 68 65 63 6b 69 6e 67 20 66 6f 72 20 74 68 65  | ...;;.should.be.checking.for.the | 
| a9a0 |  6d 20 62 65 66 6f 72 65 20 72 75 6e 6e 69 6e 67    20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74  | m.before.running.`prescient-sort | 
| a9c0 |  27 2c 0a 20 20 20 20 3b 3b 20 77 68 69 63 68 20    64 65 73 74 72 75 63 74 69 76 65 6c 79 20 6d 6f  | ',.....;;.which.destructively.mo | 
| a9e0 |  64 69 66 69 65 73 20 43 41 4e 44 49 44 41 54 45    53 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65  | difies.CANDIDATES......(let.((re | 
| aa00 |  67 65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20    20 28 69 67 6e 6f 72 65 2d 63 61 73 65 29 29 0a  | gexps)...........(ignore-case)). | 
| aa20 |  20 20 20 20 20 20 28 77 68 65 6e 20 70 72 65 73    63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d  | ......(when.prescient-sort-full- | 
| aa40 |  6d 61 74 63 68 65 73 2d 66 69 72 73 74 0a 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f  | matches-first.........(let.((pro | 
| aa60 |  70 73 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 67    65 74 2d 73 6f 72 74 2d 69 6e 66 6f 20 63 61 6e  | ps.(prescient--get-sort-info.can | 
| aa80 |  64 69 64 61 74 65 73 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 72 65 67 65 78  | didates)))...........(setq.regex | 
| aaa0 |  70 73 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72    6f 70 73 20 3a 70 72 65 73 63 69 65 6e 74 2d 61  | ps.(plist-get.props.:prescient-a | 
| aac0 |  6c 6c 2d 72 65 67 65 78 70 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 69 67 6e 6f  | ll-regexps).................igno | 
| aae0 |  72 65 2d 63 61 73 65 20 28 70 6c 69 73 74 2d 67    65 74 20 70 72 6f 70 73 20 3a 70 72 65 73 63 69  | re-case.(plist-get.props.:presci | 
| ab00 |  65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 29    29 29 29 0a 20 20 20 20 20 20 28 74 68 72 65 61  | ent-ignore-case)))).......(threa | 
| ab20 |  64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 20    63 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20  | d-first.........candidates...... | 
| ab40 |  20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 73 6f    72 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49  | ...(prescient-sort).........;;.I | 
| ab60 |  66 20 60 72 65 67 65 78 70 73 27 20 69 73 20 6e    69 6c 2c 20 74 68 69 73 20 6a 75 73 74 20 72 65  | f.`regexps'.is.nil,.this.just.re | 
| ab80 |  74 75 72 6e 73 20 74 68 65 20 69 6e 70 75 74 2e    0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69  | turns.the.input..........(presci | 
| aba0 |  65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61    74 63 68 65 73 2d 66 69 72 73 74 20 72 65 67 65  | ent-sort-full-matches-first.rege | 
| abc0 |  78 70 73 20 69 67 6e 6f 72 65 2d 63 61 73 65 29    29 29 29 29 0a 0a 3b 3b 3b 3b 3b 20 46 69 6c 74  | xps.ignore-case)))))..;;;;;.Filt | 
| abe0 |  65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0a    0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a  | ering.functions..;;;###autoload. | 
| ac00 |  28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74    2d 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73  | (defun.prescient-all-completions | 
| ac20 |  20 28 73 74 72 69 6e 67 20 74 61 62 6c 65 20 26    6f 70 74 69 6f 6e 61 6c 20 70 72 65 64 20 5f 70  | .(string.table.&optional.pred._p | 
| ac40 |  6f 69 6e 74 29 0a 20 20 22 60 61 6c 6c 2d 63 6f    6d 70 6c 65 74 69 6f 6e 73 27 20 75 73 69 6e 67  | oint)..."`all-completions'.using | 
| ac60 |  20 70 72 65 73 63 69 65 6e 74 2e 65 6c 2e 0a 0a    53 54 52 49 4e 47 20 69 73 20 74 68 65 20 69 6e  | .prescient.el...STRING.is.the.in | 
| ac80 |  70 75 74 2e 20 54 41 42 4c 45 20 69 73 20 61 20    63 6f 6d 70 6c 65 74 69 6f 6e 20 74 61 62 6c 65  | put..TABLE.is.a.completion.table | 
| aca0 |  2e 20 50 52 45 44 20 69 73 20 61 0a 70 72 65 64    69 63 61 74 65 20 74 68 61 74 20 66 75 72 74 68  | ..PRED.is.a.predicate.that.furth | 
| acc0 |  65 72 20 72 65 73 74 72 69 63 74 73 20 74 68 65    20 6d 61 74 63 68 69 6e 67 20 63 61 6e 64 69 64  | er.restricts.the.matching.candid | 
| ace0 |  61 74 65 73 2e 20 50 4f 49 4e 54 0a 77 6f 75 6c    64 20 62 65 20 74 68 65 20 63 75 72 72 65 6e 74  | ates..POINT.would.be.the.current | 
| ad00 |  20 70 6f 69 6e 74 2c 20 62 75 74 20 69 74 20 69    73 20 6e 6f 74 20 75 73 65 64 20 62 79 20 74 68  | .point,.but.it.is.not.used.by.th | 
| ad20 |  69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 53 65 65    20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 61  | is.function..See.the.function.`a | 
| ad40 |  6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 27 20    66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61  | ll-completions'.for.more.informa | 
| ad60 |  74 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63    74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 6c  | tion...This.function.returns.a.l | 
| ad80 |  69 73 74 20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f    6e 73 20 77 68 6f 73 65 20 66 69 6e 61 6c 20 60  | ist.of.completions.whose.final.` | 
| ada0 |  63 64 72 27 20 69 73 0a 74 68 65 20 6c 65 6e 67    74 68 20 6f 66 20 74 68 65 20 70 72 65 66 69 78  | cdr'.is.the.length.of.the.prefix | 
| adc0 |  20 73 74 72 69 6e 67 20 75 73 65 64 20 66 6f 72    20 63 6f 6d 70 6c 65 74 69 6f 6e 20 28 77 68 69  | .string.used.for.completion.(whi | 
| ade0 |  63 68 20 6d 69 67 68 74 0a 62 65 20 61 6c 6c 20    6f 72 20 6a 75 73 74 20 70 61 72 74 20 6f 66 20  | ch.might.be.all.or.just.part.of. | 
| ae00 |  53 54 52 49 4e 47 29 2e 0a 0a 57 68 65 6e 20 60    63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d  | STRING)...When.`completion-lazy- | 
| ae20 |  68 69 6c 69 74 27 20 69 73 20 62 6f 75 6e 64 20    61 6e 64 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65  | hilit'.is.bound.and.non-nil,.the | 
| ae40 |  6e 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20    73 65 74 73 20 60 63 6f 6d 70 6c 65 74 69 6f 6e  | n.this.function.sets.`completion | 
| ae60 |  2d 6c 61 7a 79 2d 68 69 6c 69 74 2d 66 6e 27 2e    20 4f 74 68 65 72 77 69 73 65 2c 20 69 66 0a 60  | -lazy-hilit-fn'..Otherwise,.if.` | 
| ae80 |  70 72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 6c 65    74 69 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 6d  | prescient-completion-highlight-m | 
| aea0 |  61 74 63 68 65 73 27 20 69 73 20 6e 6f 6e 2d 6e    69 6c 2c 20 74 68 69 73 0a 66 75 6e 63 74 69 6f  | atches'.is.non-nil,.this.functio | 
| aec0 |  6e 20 70 72 6f 70 65 72 74 69 7a 65 73 20 61 6c    6c 20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 65  | n.propertizes.all.of.the.returne | 
| aee0 |  64 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 75 73    69 6e 67 20 74 68 65 0a 66 61 63 65 20 60 70 72  | d.completions.using.the.face.`pr | 
| af00 |  65 73 63 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d    68 69 67 68 6c 69 67 68 74 27 20 61 6e 64 20 74  | escient-primary-highlight'.and.t | 
| af20 |  68 65 20 66 61 63 65 0a 60 70 72 65 73 63 69 65    6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68 69 67  | he.face.`prescient-secondary-hig | 
| af40 |  68 6c 69 67 68 74 27 2e 22 0a 20 20 3b 3b 20 60    70 6f 69 6e 74 27 20 69 73 20 61 20 72 65 71 75  | hlight'."...;;.`point'.is.a.requ | 
| af60 |  69 72 65 64 20 61 72 67 75 6d 65 6e 74 2c 20 62    75 74 20 75 6e 6e 65 65 64 65 64 20 68 65 72 65  | ired.argument,.but.unneeded.here | 
| af80 |  2e 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28    63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 70 72 65  | ....(when-let.((completions.(pre | 
| afa0 |  73 63 69 65 6e 74 2d 66 69 6c 74 65 72 20 73 74    72 69 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29  | scient-filter.string.table.pred) | 
| afc0 |  29 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65    74 2a 20 28 28 60 28 2c 70 72 65 66 69 78 20 2e  | )).....(pcase-let*.((`(,prefix.. | 
| afe0 |  20 2c 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72  | .,pattern)...................(pr | 
| b000 |  65 73 63 69 65 6e 74 2d 2d 70 72 65 66 69 78 2d    61 6e 64 2d 70 61 74 74 65 72 6e 20 73 74 72 69  | escient--prefix-and-pattern.stri | 
| b020 |  6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ng.table.pred))................. | 
| b040 |  20 28 6d 61 79 62 65 2d 68 69 67 68 6c 69 67 68    74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .(maybe-highlighted............. | 
| b060 |  20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ......(cond....................( | 
| b080 |  28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d    70 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a  | (bound-and-true-p.completion-laz | 
| b0a0 |  79 2d 68 69 6c 69 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | y-hilit).....................(se | 
| b0c0 |  74 71 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61    7a 79 2d 68 69 6c 69 74 2d 66 6e 0a 20 20 20 20  | tq.completion-lazy-hilit-fn..... | 
| b0e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 61 70 70 6c 79 2d 70 61 72  | ......................(apply-par | 
| b100 |  74 69 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tially.......................... | 
| b120 |  20 20 23 27 70 72 65 73 63 69 65 6e 74 2d 2d 68    69 67 68 6c 69 67 68 74 2d 63 61 6e 64 69 64 61  | ..#'prescient--highlight-candida | 
| b140 |  74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | te............................(p | 
| b160 |  72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d    72 65 67 65 78 70 73 20 70 61 74 74 65 72 6e 20  | rescient-filter-regexps.pattern. | 
| b180 |  27 77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 'with-group).................... | 
| b1a0 |  20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65    6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 2d 70  | ........(prescient-ignore-case-p | 
| b1c0 |  20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .pattern)))..................... | 
| b1e0 |  63 6f 6d 70 6c 65 74 69 6f 6e 73 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | completions).................... | 
| b200 |  28 70 72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 6c    65 74 69 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d  | (prescient-completion-highlight- | 
| b220 |  6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65  | matches.....................(pre | 
| b240 |  73 63 69 65 6e 74 2d 2d 68 69 67 68 6c 69 67 68    74 2d 63 61 6e 64 69 64 61 74 65 73 20 70 61 74  | scient--highlight-candidates.pat | 
| b260 |  74 65 72 6e 20 63 6f 6d 70 6c 65 74 69 6f 6e 73    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | tern.completions)).............. | 
| b280 |  20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d  | ......(t.....................com | 
| b2a0 |  70 6c 65 74 69 6f 6e 73 29 29 29 29 0a 20 20 20    20 20 20 28 6e 63 6f 6e 63 20 6d 61 79 62 65 2d  | pletions)))).......(nconc.maybe- | 
| b2c0 |  68 69 67 68 6c 69 67 68 74 65 64 20 28 6c 65 6e    67 74 68 20 70 72 65 66 69 78 29 29 29 29 29 0a  | highlighted.(length.prefix))))). | 
| b2e0 |  0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a    28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74  | .;;;###autoload.(defun.prescient | 
| b300 |  2d 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20    28 73 74 72 69 6e 67 20 74 61 62 6c 65 20 26 6f  | -try-completion.(string.table.&o | 
| b320 |  70 74 69 6f 6e 61 6c 20 70 72 65 64 20 70 6f 69    6e 74 29 0a 20 20 22 60 74 72 79 2d 63 6f 6d 70  | ptional.pred.point)..."`try-comp | 
| b340 |  6c 65 74 69 6f 6e 27 20 75 73 69 6e 67 20 50 72    65 73 63 69 65 6e 74 2e 0a 0a 53 54 52 49 4e 47  | letion'.using.Prescient...STRING | 
| b360 |  20 69 73 20 74 68 65 20 69 6e 70 75 74 2e 20 20    54 41 42 4c 45 20 69 73 20 61 20 63 6f 6d 70 6c  | .is.the.input...TABLE.is.a.compl | 
| b380 |  65 74 69 6f 6e 20 74 61 62 6c 65 2e 20 20 50 52    45 44 20 69 73 20 61 0a 70 72 65 64 69 63 61 74  | etion.table...PRED.is.a.predicat | 
| b3a0 |  65 2e 20 20 50 4f 49 4e 54 20 69 73 20 74 68 65    20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 20  | e...POINT.is.the.current.point.. | 
| b3c0 |  20 53 65 65 20 74 68 65 20 66 75 6e 63 74 69 6f    6e 0a 60 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f  | .See.the.function.`try-completio | 
| b3e0 |  6e 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f    72 6d 61 74 69 6f 6e 2e 0a 0a 49 66 20 74 68 65  | n'.for.more.information...If.the | 
| b400 |  72 65 20 61 72 65 20 6e 6f 20 6d 61 74 63 68 65    73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e  | re.are.no.matches,.this.function | 
| b420 |  20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 49 66    20 74 68 65 20 6f 6e 6c 79 0a 6d 61 74 63 68 20  | .returns.nil..If.the.only.match. | 
| b440 |  65 71 75 61 6c 73 20 53 54 52 49 4e 47 2c 20 74    68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74  | equals.STRING,.this.function.ret | 
| b460 |  75 72 6e 73 20 74 2e 20 4f 74 68 65 72 77 69 73    65 2c 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e  | urns.t..Otherwise,.this.function | 
| b480 |  20 72 65 74 75 72 6e 73 20 61 20 63 6f 6e 73 20    63 65 6c 6c 20 6f 66 20 74 68 65 20 63 6f 6d 70  | .returns.a.cons.cell.of.the.comp | 
| b4a0 |  6c 65 74 65 64 20 73 74 72 69 6e 67 20 61 6e 64    20 69 74 73 0a 6c 65 6e 67 74 68 2e 20 49 66 20  | leted.string.and.its.length..If. | 
| b4c0 |  74 68 65 72 65 20 69 73 20 6d 6f 72 65 20 74 68    61 6e 20 6f 6e 65 20 6d 61 74 63 68 2c 20 74 68  | there.is.more.than.one.match,.th | 
| b4e0 |  61 74 20 63 6f 6d 70 6c 65 74 65 64 20 73 74 72    69 6e 67 20 69 73 0a 61 63 74 75 61 6c 6c 79 20  | at.completed.string.is.actually. | 
| b500 |  6a 75 73 74 20 74 68 65 20 69 6e 70 75 74 2c 20    69 6e 20 77 68 69 63 68 20 63 61 73 65 20 6e 6f  | just.the.input,.in.which.case.no | 
| b520 |  74 68 69 6e 67 20 68 61 70 70 65 6e 73 2e 22 0a    20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f  | thing.happens."...(when-let.((co | 
| b540 |  6d 70 6c 65 74 69 6f 6e 73 20 28 70 72 65 73 63    69 65 6e 74 2d 66 69 6c 74 65 72 20 73 74 72 69  | mpletions.(prescient-filter.stri | 
| b560 |  6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 29    0a 20 20 20 20 28 69 66 20 28 63 64 72 20 63 6f  | ng.table.pred))).....(if.(cdr.co | 
| b580 |  6d 70 6c 65 74 69 6f 6e 73 29 0a 20 20 20 20 20    20 20 20 28 63 6f 6e 73 20 73 74 72 69 6e 67 20  | mpletions).........(cons.string. | 
| b5a0 |  70 6f 69 6e 74 29 20 3b 20 4d 75 6c 74 69 70 6c    65 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20  | point).;.Multiple.matches....... | 
| b5c0 |  28 6c 65 74 20 28 28 6d 61 74 63 68 20 28 63 61    72 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29  | (let.((match.(car.completions))) | 
| b5e0 |  0a 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71    75 61 6c 20 73 74 72 69 6e 67 20 6d 61 74 63 68  | .........(if.(equal.string.match | 
| b600 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 20    3b 20 4c 69 74 65 72 61 6c 20 69 6e 70 75 74 20  | ).............t.;.Literal.input. | 
| b620 |  65 71 75 61 6c 73 20 6f 6e 6c 79 20 6d 61 74 63    68 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | equals.only.match............;;. | 
| b640 |  4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72    6e 20 74 68 65 20 6d 61 74 63 68 20 61 6e 64 20  | Otherwise,.return.the.match.and. | 
| b660 |  6d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 69 74    73 20 65 6e 64 2e 0a 20 20 20 20 20 20 20 20 20  | move.point.to.its.end........... | 
| b680 |  20 28 6c 65 74 2a 20 28 28 70 72 65 66 69 78 20    28 63 61 72 20 28 70 72 65 73 63 69 65 6e 74 2d  | .(let*.((prefix.(car.(prescient- | 
| b6a0 |  2d 70 72 65 66 69 78 2d 61 6e 64 2d 70 61 74 74    65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -prefix-and-pattern............. | 
| b6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 73 74 72 69 6e 67 20 74 61 62 6c 65 20  | ...................string.table. | 
| b6e0 |  70 72 65 64 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 20 28  | pred)))..................(full.( | 
| b700 |  63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 6d 61    74 63 68 29 29 29 0a 20 20 20 20 20 20 20 20 20  | concat.prefix.match))).......... | 
| b720 |  20 20 20 28 63 6f 6e 73 20 66 75 6c 6c 20 28 6c    65 6e 67 74 68 20 66 75 6c 6c 29 29 29 29 29 29  | ...(cons.full.(length.full)))))) | 
| b740 |  29 29 0a 0a 3b 3b 3b 3b 3b 20 53 65 74 74 69 6e    67 20 75 70 20 74 68 65 20 63 6f 6d 70 6c 65 74  | ))..;;;;;.Setting.up.the.complet | 
| b760 |  69 6f 6e 20 73 74 79 6c 65 0a 0a 3b 3b 3b 23 23    23 61 75 74 6f 6c 6f 61 64 0a 28 61 64 64 2d 74  | ion.style..;;;###autoload.(add-t | 
| b780 |  6f 2d 6c 69 73 74 0a 20 27 63 6f 6d 70 6c 65 74    69 6f 6e 2d 73 74 79 6c 65 73 2d 61 6c 69 73 74  | o-list..'completion-styles-alist | 
| b7a0 |  0a 20 27 28 20 70 72 65 73 63 69 65 6e 74 20 70    72 65 73 63 69 65 6e 74 2d 74 72 79 2d 63 6f 6d  | ..'(.prescient.prescient-try-com | 
| b7c0 |  70 6c 65 74 69 6f 6e 20 70 72 65 73 63 69 65 6e    74 2d 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e  | pletion.prescient-all-completion | 
| b7e0 |  73 0a 20 20 20 20 22 46 69 6c 74 65 72 69 6e 67    20 75 73 69 6e 67 20 70 72 65 73 63 69 65 6e 74  | s....."Filtering.using.prescient | 
| b800 |  2e 65 6c 2e 0a 46 6f 72 20 73 6f 72 74 69 6e 67    2c 20 73 65 65 20 74 68 65 20 66 75 6e 63 74 69  | .el..For.sorting,.see.the.functi | 
| b820 |  6f 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 63 6f    6d 70 6c 65 74 69 6f 6e 2d 73 6f 72 74 27 2e 22  | on.`prescient-completion-sort'." | 
| b840 |  29 29 0a 0a 3b 3b 3b 3b 3b 20 43 6f 6d 70 6f 6e    65 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f  | ))..;;;;;.Component.functions.fo | 
| b860 |  72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79    6c 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 73 0a 0a  | r.completion-style.minor.modes.. | 
| b880 |  3b 3b 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f    6e 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 69  | ;;.These.functions.are.used.to.i | 
| b8a0 |  6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 69 6e 74    65 67 72 61 74 69 6f 6e 20 70 61 63 6b 61 67 65  | mplement.the.integration.package | 
| b8c0 |  73 0a 3b 3b 20 66 6f 72 20 43 6f 72 66 75 20 61    6e 64 20 56 65 72 74 69 63 6f 2c 20 77 68 69 63  | s.;;.for.Corfu.and.Vertico,.whic | 
| b8e0 |  68 20 75 73 65 20 63 6f 6d 70 6c 65 74 69 6f 6e    20 73 74 79 6c 65 73 2e 0a 0a 28 64 65 66 63 6f  | h.use.completion.styles...(defco | 
| b900 |  6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63    6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d  | nst.prescient--completion-recomm | 
| b920 |  65 6e 64 65 64 2d 73 74 79 6c 65 73 20 27 28 70    72 65 73 63 69 65 6e 74 20 62 61 73 69 63 29 0a  | ended-styles.'(prescient.basic). | 
| b940 |  20 20 22 52 65 63 6f 6d 6d 65 6e 64 65 64 20 63    6f 6d 70 6c 65 74 69 6f 6e 73 20 73 74 79 6c 65  | .."Recommended.completions.style | 
| b960 |  73 20 66 6f 72 20 75 73 69 6e 67 20 60 70 72 65    73 63 69 65 6e 74 27 2e 22 29 0a 0a 28 64 65 66  | s.for.using.`prescient'.")..(def | 
| b980 |  63 6f 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d    2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f  | const.prescient--completion-reco | 
| b9a0 |  6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65    73 0a 20 20 27 28 3b 3b 20 49 6e 63 6c 75 64 65  | mmended-overrides...'(;;.Include | 
| b9c0 |  20 60 70 61 72 74 69 61 6c 2d 63 6f 6d 70 6c 65    74 69 6f 6e 27 20 74 6f 20 65 6e 61 62 6c 65 20  | .`partial-completion'.to.enable. | 
| b9e0 |  77 69 6c 64 63 61 72 64 73 20 61 6e 64 0a 20 20    20 20 3b 3b 20 70 61 72 74 69 61 6c 20 70 61 74  | wildcards.and.....;;.partial.pat | 
| ba00 |  68 73 2e 0a 20 20 20 20 28 66 69 6c 65 20 28 73    74 79 6c 65 73 20 62 61 73 69 63 20 70 61 72 74  | hs......(file.(styles.basic.part | 
| ba20 |  69 61 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 29 29    0a 20 20 20 20 3b 3b 20 45 67 6c 6f 74 20 66 6f  | ial-completion)).....;;.Eglot.fo | 
| ba40 |  72 63 65 73 20 60 66 6c 65 78 27 20 62 79 20 64    65 66 61 75 6c 74 2e 0a 20 20 20 20 28 65 67 6c  | rces.`flex'.by.default......(egl | 
| ba60 |  6f 74 20 28 73 74 79 6c 65 73 20 70 72 65 73 63    69 65 6e 74 20 62 61 73 69 63 29 29 29 0a 20 20  | ot.(styles.prescient.basic)))... | 
| ba80 |  22 52 65 63 6f 6d 6d 65 6e 64 65 64 20 63 6f 6d    70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79  | "Recommended.completion-category | 
| baa0 |  20 6f 76 65 72 72 69 64 65 73 20 66 6f 72 20 75    73 69 6e 67 20 70 72 65 73 63 69 65 6e 74 2e 22  | .overrides.for.using.prescient." | 
| bac0 |  29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 65    73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69  | )..(defconst.prescient--completi | 
| bae0 |  6f 6e 2d 73 65 74 74 69 6e 67 73 2d 76 61 72 73    0a 20 20 27 28 20 63 6f 6d 70 6c 65 74 69 6f 6e  | on-settings-vars...'(.completion | 
| bb00 |  2d 73 74 79 6c 65 73 20 63 6f 6d 70 6c 65 74 69    6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65 72  | -styles.completion-category-over | 
| bb20 |  72 69 64 65 73 0a 20 20 20 20 20 63 6f 6d 70 6c    65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64  | rides......completion-category-d | 
| bb40 |  65 66 61 75 6c 74 73 29 0a 20 20 22 56 61 72 69    61 62 6c 65 73 20 74 68 61 74 20 61 72 65 20 63  | efaults)..."Variables.that.are.c | 
| bb60 |  68 61 6e 67 65 64 20 74 6f 20 63 6f 6e 66 69 67    75 72 65 20 66 69 6c 74 65 72 69 6e 67 2e 22 29  | hanged.to.configure.filtering.") | 
| bb80 |  0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69    65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d  | ..(defvar.prescient--completion- | 
| bba0 |  6f 6c 64 2d 73 74 79 6c 65 73 20 6e 69 6c 0a 20    20 22 50 72 65 76 69 6f 75 73 20 76 61 6c 75 65  | old-styles.nil..."Previous.value | 
| bbc0 |  20 6f 66 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d    73 74 79 6c 65 73 27 2e 22 29 0a 0a 28 64 65 66  | .of.`completion-styles'.")..(def | 
| bbe0 |  76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63    6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76  | var.prescient--completion-old-ov | 
| bc00 |  65 72 72 69 64 65 73 20 6e 69 6c 0a 20 20 22 50    72 65 76 69 6f 75 73 20 76 61 6c 75 65 20 6f 66  | errides.nil..."Previous.value.of | 
| bc20 |  20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 74    65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 27  | .`completion-category-overrides' | 
| bc40 |  2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65    73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69  | .")..(defvar.prescient--completi | 
| bc60 |  6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c 74 73 20    6e 69 6c 0a 20 20 22 50 72 65 76 69 6f 75 73 20  | on-old-defaults.nil..."Previous. | 
| bc80 |  76 61 6c 75 65 20 6f 66 20 60 63 6f 6d 70 6c 65    74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65  | value.of.`completion-category-de | 
| bca0 |  66 61 75 6c 74 73 27 2e 22 29 0a 0a 28 64 65 66    63 6f 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d  | faults'.")..(defconst.prescient- | 
| bcc0 |  2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d    76 61 72 73 0a 20 20 27 28 20 70 72 65 73 63 69  | -completion-old-vars...'(.presci | 
| bce0 |  65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d    6f 6c 64 2d 73 74 79 6c 65 73 0a 20 20 20 20 20  | ent--completion-old-styles...... | 
| bd00 |  70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c    65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69  | prescient--completion-old-overri | 
| bd20 |  64 65 73 0a 20 20 20 20 20 70 72 65 73 63 69 65    6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f  | des......prescient--completion-o | 
| bd40 |  6c 64 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 22    56 61 72 69 61 62 6c 65 73 20 75 73 65 64 20 74  | ld-defaults)..."Variables.used.t | 
| bd60 |  6f 20 73 74 6f 72 65 20 6f 6c 64 20 73 65 74 74    69 6e 67 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66  | o.store.old.settings.")..(cl-def | 
| bd80 |  75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f    6d 70 6c 65 74 69 6f 6e 2d 61 70 70 6c 79 2d 63  | un.prescient--completion-apply-c | 
| bda0 |  6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e    67 73 0a 20 20 20 20 28 26 6b 65 79 20 28 73 74  | ompletion-settings.....(&key.(st | 
| bdc0 |  79 6c 65 73 20 70 72 65 73 63 69 65 6e 74 2d 2d    63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d  | yles.prescient--completion-recom | 
| bde0 |  6d 65 6e 64 65 64 2d 73 74 79 6c 65 73 29 0a 20    20 20 20 20 20 20 20 20 20 28 6f 76 65 72 72 69  | mended-styles)...........(overri | 
| be00 |  64 65 73 20 70 72 65 73 63 69 65 6e 74 2d 2d 63    6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d  | des.prescient--completion-recomm | 
| be20 |  65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65 73 29    29 0a 20 20 22 4d 6f 64 69 66 79 20 74 68 65 20  | ended-overrides))..."Modify.the. | 
| be40 |  75 73 65 72 20 6f 70 74 69 6f 6e 73 20 61 6e 64    20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 53 54 59  | user.options.and.variables...STY | 
| be60 |  4c 45 53 20 69 73 20 74 68 65 20 6e 65 77 20 60    63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65  | LES.is.the.new.`completion-style | 
| be80 |  73 27 2e 20 4f 56 45 52 52 49 44 45 53 20 69 73    20 6e 65 77 0a 6f 76 65 72 72 69 64 65 73 20 66  | s'..OVERRIDES.is.new.overrides.f | 
| bea0 |  6f 72 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63    61 74 65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65  | or.`completion-category-override | 
| bec0 |  73 27 2e 0a 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d    63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74  | s'..`completion-category-default | 
| bee0 |  73 27 20 69 73 20 73 65 74 20 74 6f 20 6e 69 6c    2e 20 54 68 65 73 65 20 76 61 72 69 61 62 6c 65  | s'.is.set.to.nil..These.variable | 
| bf00 |  73 0a 61 72 65 20 6c 69 73 74 65 64 20 69 6e 20    60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70  | s.are.listed.in.`prescient--comp | 
| bf20 |  6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73 2d    76 61 72 73 27 2e 0a 0a 57 68 69 6c 65 20 74 68  | letion-settings-vars'...While.th | 
| bf40 |  65 72 65 20 61 72 65 20 72 65 63 6f 6d 6d 65 6e    64 65 64 20 73 65 74 74 69 6e 67 73 2c 20 74 68  | ere.are.recommended.settings,.th | 
| bf60 |  65 73 65 20 63 61 6e 20 62 65 20 6f 76 65 72 72    69 64 64 65 6e 20 62 79 0a 75 73 65 72 20 6f 70  | ese.can.be.overridden.by.user.op | 
| bf80 |  74 69 6f 6e 73 20 69 6e 20 74 68 65 20 65 78 74    65 6e 73 69 6f 6e 20 70 61 63 6b 61 67 65 73 2e  | tions.in.the.extension.packages. | 
| bfa0 |  22 0a 20 20 28 73 65 74 71 20 63 6f 6d 70 6c 65    74 69 6f 6e 2d 73 74 79 6c 65 73 20 73 74 79 6c  | "...(setq.completion-styles.styl | 
| bfc0 |  65 73 0a 20 20 20 20 20 20 20 20 63 6f 6d 70 6c    65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64  | es.........completion-category-d | 
| bfe0 |  65 66 61 75 6c 74 73 20 6e 69 6c 29 0a 0a 20 20    28 63 6c 2d 73 79 6d 62 6f 6c 2d 6d 61 63 72 6f  | efaults.nil)....(cl-symbol-macro | 
| c000 |  6c 65 74 0a 20 20 20 20 20 20 28 28 63 61 74 65    67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65  | let.......((category-setting-ove | 
| c020 |  72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 28    61 6c 69 73 74 2d 67 65 74 20 73 65 74 74 69 6e  | rrides.........(alist-get.settin | 
| c040 |  67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20  | g....................(alist-get. | 
| c060 |  63 61 74 65 67 6f 72 79 20 63 6f 6d 70 6c 65 74    69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65  | category.completion-category-ove | 
| c080 |  72 72 69 64 65 73 29 29 29 29 0a 20 20 20 20 28    63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 63 61 74  | rrides)))).....(cl-loop.for.(cat | 
| c0a0 |  65 67 6f 72 79 20 2e 20 6f 76 65 72 72 69 64 65    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | egory...overrides).............. | 
| c0c0 |  69 6e 20 6f 76 65 72 72 69 64 65 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 64 6f 20 28 63 6c  | in.overrides..............do.(cl | 
| c0e0 |  2d 6c 6f 6f 70 20 66 6f 72 20 28 73 65 74 74 69    6e 67 20 2e 20 76 61 6c 75 65 73 29 20 69 6e 20  | -loop.for.(setting...values).in. | 
| c100 |  6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | overrides....................... | 
| c120 |  20 20 20 64 6f 20 28 73 65 74 66 20 63 61 74 65    67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65  | ...do.(setf.category-setting-ove | 
| c140 |  72 72 69 64 65 73 20 76 61 6c 75 65 73 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63  | rrides.values)))))..(defun.presc | 
| c160 |  69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e    2d 73 61 76 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e  | ient--completion-save-completion | 
| c180 |  2d 73 65 74 74 69 6e 67 73 20 28 29 0a 20 20 22    53 61 76 65 20 74 68 65 20 6f 6c 64 20 63 6f 6d  | -settings.()..."Save.the.old.com | 
| c1a0 |  70 6c 65 74 69 6f 6e 20 66 69 6c 74 65 72 69 6e    67 20 73 65 74 74 69 6e 67 73 2e 0a 0a 56 61 6c  | pletion.filtering.settings...Val | 
| c1c0 |  75 65 73 20 61 72 65 20 73 61 76 65 64 20 69 6e    20 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d  | ues.are.saved.in.`prescient--com | 
| c1e0 |  70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 6c    65 73 27 2c 0a 60 70 72 65 73 63 69 65 6e 74 2d  | pletion-old-styles',.`prescient- | 
| c200 |  2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d    64 65 66 61 75 6c 74 73 27 2c 20 61 6e 64 0a 60  | -completion-old-defaults',.and.` | 
| c220 |  70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c    65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69  | prescient--completion-old-overri | 
| c240 |  64 65 73 27 2c 20 77 68 69 63 68 20 61 72 65 20    6c 69 73 74 65 64 20 69 6e 0a 60 70 72 65 73 63  | des',.which.are.listed.in.`presc | 
| c260 |  69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e    2d 6f 6c 64 2d 76 61 72 73 27 2e 22 0a 20 20 28  | ient--completion-old-vars'."...( | 
| c280 |  73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d    63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73  | setq.prescient--completion-old-s | 
| c2a0 |  74 79 6c 65 73 20 63 6f 6d 70 6c 65 74 69 6f 6e    2d 73 74 79 6c 65 73 0a 20 20 20 20 20 20 20 20  | tyles.completion-styles......... | 
| c2c0 |  70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c    65 74 69 6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c  | prescient--completion-old-defaul | 
| c2e0 |  74 73 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61    74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 29  | ts.completion-category-defaults) | 
| c300 |  0a 0a 20 20 28 63 6c 2d 73 79 6d 62 6f 6c 2d 6d    61 63 72 6f 6c 65 74 0a 20 20 20 20 20 20 28 28  | ....(cl-symbol-macrolet.......(( | 
| c320 |  63 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67    2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20  | category-setting-overrides...... | 
| c340 |  20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 73 65    74 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20  | ...(alist-get.setting........... | 
| c360 |  20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d    67 65 74 20 63 61 74 65 67 6f 72 79 20 63 6f 6d  | .........(alist-get.category.com | 
| c380 |  70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79    2d 6f 76 65 72 72 69 64 65 73 29 29 29 29 0a 20  | pletion-category-overrides)))).. | 
| c3a0 |  20 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65    6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f  | ...(setq.prescient--completion-o | 
| c3c0 |  6c 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20    20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a  | ld-overrides...........(cl-loop. | 
| c3e0 |  20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28    63 61 74 65 67 6f 72 79 20 2e 20 6f 76 65 72 72  | ...........for.(category...overr | 
| c400 |  69 64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20    20 69 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63  | ides)............in.prescient--c | 
| c420 |  6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d    65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65 73 0a  | ompletion-recommended-overrides. | 
| c440 |  20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65    63 74 0a 20 20 20 20 20 20 20 20 20 20 20 60 28  | ...........collect............`( | 
| c460 |  2c 63 61 74 65 67 6f 72 79 20 2c 40 28 63 6c 2d    6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20  | ,category.,@(cl-loop............ | 
| c480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66    6f 72 20 28 73 65 74 74 69 6e 67 20 2e 20 5f 29  | ...............for.(setting..._) | 
| c4a0 |  20 69 6e 20 6f 76 65 72 72 69 64 65 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .in.overrides................... | 
| c4c0 |  20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........collect................. | 
| c4e0 |  20 20 20 20 20 20 20 20 20 20 60 28 2c 73 65 74    74 69 6e 67 20 2c 40 63 61 74 65 67 6f 72 79 2d  | ..........`(,setting.,@category- | 
| c500 |  73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65    73 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65  | setting-overrides)))))))..(cl-de | 
| c520 |  66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63    6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 73 74 6f 72  | fun.prescient--completion-restor | 
| c540 |  65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74    74 69 6e 67 73 0a 20 20 20 20 28 26 6b 65 79 20  | e-completion-settings.....(&key. | 
| c560 |  28 73 74 79 6c 65 73 20 70 72 65 73 63 69 65 6e    74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65  | (styles.prescient--completion-re | 
| c580 |  63 6f 6d 6d 65 6e 64 65 64 2d 73 74 79 6c 65 73    29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65  | commended-styles)...........(ove | 
| c5a0 |  72 72 69 64 65 73 20 70 72 65 73 63 69 65 6e 74    2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63  | rrides.prescient--completion-rec | 
| c5c0 |  6f 6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 69 64    65 73 29 29 0a 20 20 22 52 65 73 74 6f 72 65 20  | ommended-overrides))..."Restore. | 
| c5e0 |  74 68 65 20 6f 6c 64 20 73 65 74 74 69 6e 67 73    2e 0a 0a 53 54 59 4c 45 53 20 69 73 20 77 68 61  | the.old.settings...STYLES.is.wha | 
| c600 |  74 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74    79 6c 65 73 27 20 77 61 73 20 63 68 61 6e 67 65  | t.`completion-styles'.was.change | 
| c620 |  64 20 74 6f 2e 20 4f 56 45 52 52 49 44 45 53 20    61 72 65 0a 74 68 65 20 6f 76 65 72 72 69 64 65  | d.to..OVERRIDES.are.the.override | 
| c640 |  73 20 74 68 61 74 20 77 65 72 65 20 63 68 61 6e    67 65 64 20 69 6e 20 60 63 6f 6d 70 6c 65 74 69  | s.that.were.changed.in.`completi | 
| c660 |  6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65 72    72 69 64 65 73 27 2e 0a 0a 49 66 20 74 68 65 20  | on-category-overrides'...If.the. | 
| c680 |  63 75 72 72 65 6e 74 20 76 61 6c 75 65 73 20 6f    66 20 74 68 65 20 73 65 74 74 69 6e 67 73 20 76  | current.values.of.the.settings.v | 
| c6a0 |  61 72 69 61 62 6c 65 73 20 64 6f 20 6e 6f 74 20    6d 61 74 63 68 20 74 68 65 0a 63 68 61 6e 67 65  | ariables.do.not.match.the.change | 
| c6c0 |  73 20 6d 61 64 65 20 62 79 20 60 70 72 65 73 63    69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e  | s.made.by.`prescient--completion | 
| c6e0 |  2d 61 70 70 6c 79 2d 63 6f 6d 70 6c 65 74 69 6f    6e 2d 73 65 74 74 69 6e 67 73 27 2c 0a 74 68 65  | -apply-completion-settings',.the | 
| c700 |  6e 20 77 65 20 64 6f 6e 27 74 20 72 65 73 74 6f    72 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  | n.we.don't.restore.the.previous. | 
| c720 |  76 61 6c 75 65 73 20 61 6e 64 20 69 6e 73 74 65    61 64 20 6f 6e 6c 79 20 74 72 79 20 74 6f 0a 72  | values.and.instead.only.try.to.r | 
| c740 |  65 6d 6f 76 65 20 75 73 61 67 65 73 20 6f 66 20    74 68 65 20 60 70 72 65 73 63 69 65 6e 74 27 20  | emove.usages.of.the.`prescient'. | 
| c760 |  63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65    2e 22 0a 20 20 3b 3b 20 54 72 79 20 74 6f 20 72  | completion.style."...;;.Try.to.r | 
| c780 |  65 76 65 72 74 20 62 61 63 6b 20 74 6f 20 6f 6c    64 20 73 65 74 74 69 6e 67 73 2c 20 6f 72 20 61  | evert.back.to.old.settings,.or.a | 
| c7a0 |  74 20 6c 65 61 73 74 20 6e 6f 74 20 75 73 65 20    74 68 65 0a 20 20 3b 3b 20 60 70 72 65 73 63 69  | t.least.not.use.the...;;.`presci | 
| c7c0 |  65 6e 74 27 20 73 74 79 6c 65 2e 0a 20 20 28 69    66 20 28 65 71 75 61 6c 20 63 6f 6d 70 6c 65 74  | ent'.style....(if.(equal.complet | 
| c7e0 |  69 6f 6e 2d 73 74 79 6c 65 73 20 73 74 79 6c 65    73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63  | ion-styles.styles).......(setq.c | 
| c800 |  6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 73    20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70  | ompletion-styles.prescient--comp | 
| c820 |  6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 6c 65    73 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66  | letion-old-styles).....(cl-callf | 
| c840 |  32 20 72 65 6d 71 20 27 70 72 65 73 63 69 65 6e    74 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79  | 2.remq.'prescient.completion-sty | 
| c860 |  6c 65 73 29 29 0a 0a 20 20 28 63 6c 2d 6c 6f 6f    70 20 66 6f 72 20 28 6b 65 79 20 2e 20 76 61 6c  | les))....(cl-loop.for.(key...val | 
| c880 |  29 20 69 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d    63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 64  | ).in.prescient--completion-old-d | 
| c8a0 |  65 66 61 75 6c 74 73 0a 20 20 20 20 20 20 20 20    20 20 20 75 6e 6c 65 73 73 20 28 61 6c 69 73 74  | efaults............unless.(alist | 
| c8c0 |  2d 67 65 74 20 6b 65 79 20 63 6f 6d 70 6c 65 74    69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66  | -get.key.completion-category-def | 
| c8e0 |  61 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 64 6f 20 28 73 65 74 66 20 28 61 6c 69 73  | aults)............do.(setf.(alis | 
| c900 |  74 2d 67 65 74 20 6b 65 79 20 63 6f 6d 70 6c 65    74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65  | t-get.key.completion-category-de | 
| c920 |  66 61 75 6c 74 73 29 20 76 61 6c 29 29 0a 0a 20    20 28 63 6c 2d 73 79 6d 62 6f 6c 2d 6d 61 63 72  | faults).val))....(cl-symbol-macr | 
| c940 |  6f 6c 65 74 0a 20 20 20 20 20 20 28 28 63 61 74    65 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76  | olet.......((category-setting-ov | 
| c960 |  65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20    28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20  | errides.........(alist-get...... | 
| c980 |  20 20 20 20 73 65 74 74 69 6e 67 0a 20 20 20 20    20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20  | ....setting..........(alist-get. | 
| c9a0 |  63 61 74 65 67 6f 72 79 20 63 6f 6d 70 6c 65 74    69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65  | category.completion-category-ove | 
| c9c0 |  72 72 69 64 65 73 29 29 29 29 0a 20 20 20 20 28    63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 3b 3b 20  | rrides)))).....(cl-loop......;;. | 
| c9e0 |  54 68 65 73 65 20 74 77 6f 20 74 72 65 65 73 20    73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20  | These.two.trees.should.have.the. | 
| ca00 |  73 61 6d 65 20 73 74 72 75 63 74 75 72 65 20 62    79 20 74 68 69 73 0a 20 20 20 20 20 3b 3b 20 70  | same.structure.by.this......;;.p | 
| ca20 |  6f 69 6e 74 2e 20 57 65 20 77 61 6e 74 20 74 6f    20 74 72 79 20 74 6f 20 61 76 6f 69 64 20 75 6e  | oint..We.want.to.try.to.avoid.un | 
| ca40 |  64 6f 69 6e 67 20 61 6e 79 20 63 68 61 6e 67 65    73 20 74 68 61 74 20 77 65 72 65 0a 20 20 20 20  | doing.any.changes.that.were..... | 
| ca60 |  20 3b 3b 20 6d 61 64 65 20 61 66 74 65 72 20 74    68 65 20 6d 6f 64 65 20 77 61 73 20 65 6e 61 62  | .;;.made.after.the.mode.was.enab | 
| ca80 |  6c 65 64 2e 0a 20 20 20 20 20 66 6f 72 20 28 63    61 74 65 67 6f 72 79 20 2e 20 6e 65 77 2d 6f 76  | led.......for.(category...new-ov | 
| caa0 |  65 72 72 69 64 65 73 29 0a 20 20 20 20 20 69 6e    20 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20  | errides)......in.overrides...... | 
| cac0 |  66 6f 72 20 28 5f 20 2e 20 6f 6c 64 2d 6f 76 65    72 72 69 64 65 73 29 0a 20 20 20 20 20 69 6e 20  | for.(_...old-overrides)......in. | 
| cae0 |  70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c    65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69  | prescient--completion-old-overri | 
| cb00 |  64 65 73 0a 20 20 20 20 20 64 6f 20 28 63 6c 2d    6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 66 6f  | des......do.(cl-loop..........fo | 
| cb20 |  72 20 28 73 65 74 74 69 6e 67 20 2e 20 6e 65 77    2d 76 61 6c 75 65 73 29 20 69 6e 20 6e 65 77 2d  | r.(setting...new-values).in.new- | 
| cb40 |  6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20    20 20 20 66 6f 72 20 28 5f 20 2e 20 6f 6c 64 2d  | overrides..........for.(_...old- | 
| cb60 |  76 61 6c 75 65 73 29 20 69 6e 20 6f 6c 64 2d 6f    76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20  | values).in.old-overrides........ | 
| cb80 |  20 20 69 66 20 28 65 71 75 61 6c 20 63 61 74 65    67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65  | ..if.(equal.category-setting-ove | 
| cba0 |  72 72 69 64 65 73 20 6e 65 77 2d 76 61 6c 75 65    73 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28  | rrides.new-values)..........do.( | 
| cbc0 |  73 65 74 66 20 63 61 74 65 67 6f 72 79 2d 73 65    74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 20  | setf.category-setting-overrides. | 
| cbe0 |  6f 6c 64 2d 76 61 6c 75 65 73 29 0a 20 20 20 20    20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 63 6c  | old-values)..........else.do.(cl | 
| cc00 |  2d 63 61 6c 6c 66 32 20 72 65 6d 71 20 27 70 72    65 73 63 69 65 6e 74 20 63 61 74 65 67 6f 72 79  | -callf2.remq.'prescient.category | 
| cc20 |  2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64    65 73 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72  | -setting-overrides)))))..(defvar | 
| cc40 |  2d 6c 6f 63 61 6c 20 70 72 65 73 63 69 65 6e 74    2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72  | -local.prescient--completion-var | 
| cc60 |  73 2d 61 6c 72 65 61 64 79 2d 6c 6f 63 61 6c 20    6e 69 6c 0a 20 20 22 56 61 72 69 61 62 6c 65 73  | s-already-local.nil..."Variables | 
| cc80 |  20 6f 66 20 69 6e 74 65 72 65 73 74 20 74 68 61    74 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 62  | .of.interest.that.were.already.b | 
| cca0 |  75 66 66 65 72 20 6c 6f 63 61 6c 2e 0a 0a 45 78    74 65 6e 73 69 6f 6e 20 70 61 63 6b 61 67 65 73  | uffer.local...Extension.packages | 
| ccc0 |  20 6d 69 67 68 74 20 77 69 73 68 20 74 6f 20 63    6f 6e 66 69 67 75 72 65 20 74 68 65 20 76 61 72  | .might.wish.to.configure.the.var | 
| cce0 |  69 61 62 6c 65 73 20 6c 69 73 74 65 64 0a 69 6e    20 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d  | iables.listed.in.`prescient--com | 
| cd00 |  70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73    2d 76 61 72 73 27 20 62 75 66 66 65 72 20 6c 6f  | pletion-settings-vars'.buffer.lo | 
| cd20 |  63 61 6c 6c 79 2c 20 77 68 6f 73 65 0a 6c 6f 63    61 6c 6e 65 73 73 20 73 68 6f 75 6c 64 20 62 65  | cally,.whose.localness.should.be | 
| cd40 |  20 75 6e 64 6f 6e 65 20 77 68 65 6e 20 74 68 65    20 65 78 74 65 6e 73 69 6f 6e 20 6d 6f 64 65 20  | .undone.when.the.extension.mode. | 
| cd60 |  69 73 20 64 69 73 61 62 6c 65 64 2e 0a 54 68 69    73 20 6c 69 73 74 20 69 73 20 74 6f 20 70 72 65  | is.disabled..This.list.is.to.pre | 
| cd80 |  76 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 20 6d    6f 64 65 73 20 66 72 6f 6d 20 6b 69 6c 6c 69 6e  | vent.extension.modes.from.killin | 
| cda0 |  67 20 76 61 72 69 61 62 6c 65 73 0a 74 68 61 74    20 77 65 72 65 20 61 6c 72 65 61 64 79 20 6c 6f  | g.variables.that.were.already.lo | 
| cdc0 |  63 61 6c 20 77 68 65 6e 20 74 68 65 20 6d 6f 64    65 20 77 61 73 20 65 6e 61 62 6c 65 64 2e 22 29  | cal.when.the.mode.was.enabled.") | 
| cde0 |  0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65    6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6d  | ..(defun.prescient--completion-m | 
| ce00 |  61 6b 65 2d 76 61 72 73 2d 6c 6f 63 61 6c 20 28    29 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 73 65  | ake-vars-local.()..."Make.the.se | 
| ce20 |  74 74 69 6e 67 73 20 61 6e 64 20 72 65 73 74 6f    72 61 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73  | ttings.and.restoration.variables | 
| ce40 |  20 62 75 66 66 65 72 20 6c 6f 63 61 6c 2e 0a 0a    52 65 63 6f 72 64 20 77 68 65 74 68 65 72 20 61  | .buffer.local...Record.whether.a | 
| ce60 |  20 73 65 74 74 69 6e 67 73 20 76 61 72 69 61 62    6c 65 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 2c  | .settings.variable.(for.example, | 
| ce80 |  0a 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79    6c 65 73 27 29 20 77 61 73 20 61 6c 72 65 61 64  | .`completion-styles').was.alread | 
| cea0 |  79 20 6c 6f 63 61 6c 20 69 6e 0a 60 70 72 65 73    63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f  | y.local.in.`prescient--completio | 
| cec0 |  6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 79 2d 6c    6f 63 61 6c 27 2e 0a 0a 54 68 69 73 20 6d 75 73  | n-vars-already-local'...This.mus | 
| cee0 |  74 20 68 61 70 70 65 6e 20 62 65 66 6f 72 65 20    73 74 6f 72 69 6e 67 20 6f 6c 64 20 76 61 6c 75  | t.happen.before.storing.old.valu | 
| cf00 |  65 73 2e 22 0a 20 20 28 6d 61 70 63 20 23 27 6d    61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62  | es."...(mapc.#'make-local-variab | 
| cf20 |  6c 65 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f    6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 76 61 72  | le.prescient--completion-old-var | 
| cf40 |  73 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 76 61    72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d  | s)...(dolist.(var.prescient--com | 
| cf60 |  70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73    2d 76 61 72 73 29 0a 20 20 20 20 28 69 66 20 28  | pletion-settings-vars).....(if.( | 
| cf80 |  6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 70    20 76 61 72 29 0a 20 20 20 20 20 20 20 20 28 70  | local-variable-p.var).........(p | 
| cfa0 |  75 73 68 20 76 61 72 20 70 72 65 73 63 69 65 6e    74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61  | ush.var.prescient--completion-va | 
| cfc0 |  72 73 2d 61 6c 72 65 61 64 79 2d 6c 6f 63 61 6c    29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6c 6f  | rs-already-local).......(make-lo | 
| cfe0 |  63 61 6c 2d 76 61 72 69 61 62 6c 65 20 76 61 72    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65  | cal-variable.var))))..(defun.pre | 
| d000 |  73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69    6f 6e 2d 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61  | scient--completion-kill-local-va | 
| d020 |  72 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 6c 6f    63 61 6c 20 73 65 74 74 69 6e 67 73 20 61 6e 64  | rs.()..."Kill.local.settings.and | 
| d040 |  20 72 65 73 74 6f 72 61 74 69 6f 6e 20 76 61 72    69 61 62 6c 65 73 2e 0a 0a 44 6f 6e 27 74 20 6b  | .restoration.variables...Don't.k | 
| d060 |  69 6c 6c 20 74 68 65 20 76 61 72 69 61 62 6c 65    73 20 69 66 20 74 68 65 79 20 61 72 65 20 6d 65  | ill.the.variables.if.they.are.me | 
| d080 |  6d 62 65 72 73 20 6f 66 0a 60 70 72 65 73 63 69    65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d  | mbers.of.`prescient--completion- | 
| d0a0 |  76 61 72 73 2d 61 6c 72 65 61 64 79 2d 6c 6f 63    61 6c 27 2e 0a 0a 54 68 69 73 20 6d 75 73 74 20  | vars-already-local'...This.must. | 
| d0c0 |  68 61 70 70 65 6e 20 61 66 74 65 72 20 72 65 73    74 6f 72 69 6e 67 20 6f 6c 64 20 76 61 6c 75 65  | happen.after.restoring.old.value | 
| d0e0 |  73 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 76    61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f  | s."...(dolist.(var.prescient--co | 
| d100 |  6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67    73 2d 76 61 72 73 29 0a 20 20 20 20 28 75 6e 6c  | mpletion-settings-vars).....(unl | 
| d120 |  65 73 73 20 28 6d 65 6d 71 20 76 61 72 20 70 72    65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74  | ess.(memq.var.prescient--complet | 
| d140 |  69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 79    2d 6c 6f 63 61 6c 29 0a 20 20 20 20 20 20 28 6b  | ion-vars-already-local).......(k | 
| d160 |  69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62    6c 65 20 76 61 72 29 29 29 0a 20 20 28 73 65 74  | ill-local-variable.var)))...(set | 
| d180 |  71 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d    70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72  | q.prescient--completion-vars-alr | 
| d1a0 |  65 61 64 79 2d 6c 6f 63 61 6c 20 6e 69 6c 29 29    0a 0a 3b 3b 3b 3b 20 54 6f 67 67 6c 69 6e 67 20  | eady-local.nil))..;;;;.Toggling. | 
| d1c0 |  63 6f 6d 6d 61 6e 64 73 0a 3b 3b 20 54 68 65 73    65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 6d  | commands.;;.These.commands.are.m | 
| d1e0 |  65 61 6e 74 20 74 6f 20 62 65 20 62 6f 75 6e 64    20 69 6e 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e  | eant.to.be.bound.in.a.completion | 
| d200 |  20 55 49 2c 20 69 6e 20 77 68 69 63 68 0a 3b 3b    20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74  | .UI,.in.which.;;.`prescient-filt | 
| d220 |  65 72 2d 6d 65 74 68 6f 64 27 20 63 61 6e 20 62    65 20 62 6f 75 6e 64 20 62 75 66 66 65 72 20 6c  | er-method'.can.be.bound.buffer.l | 
| d240 |  6f 63 61 6c 6c 79 2e 0a 0a 28 64 65 66 63 6f 6e    73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f  | ocally...(defconst.prescient--to | 
| d260 |  67 67 6c 65 2d 76 61 72 73 0a 20 20 27 28 20 70    72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d  | ggle-vars...'(.prescient-filter- | 
| d280 |  6d 65 74 68 6f 64 20 70 72 65 73 63 69 65 6e 74    2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e  | method.prescient-use-case-foldin | 
| d2a0 |  67 0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74    2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e  | g......prescient-use-char-foldin | 
| d2c0 |  67 29 0a 20 20 22 56 61 72 69 61 62 6c 65 73 20    74 68 61 74 20 63 61 6e 20 62 65 20 63 68 61 6e  | g)..."Variables.that.can.be.chan | 
| d2e0 |  67 65 64 20 6c 6f 63 61 6c 6c 79 20 62 79 20 74    6f 67 67 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64 73  | ged.locally.by.toggling.commands | 
| d300 |  2e 0a 0a 41 6e 20 65 78 70 6c 69 63 69 74 20 6c    69 73 74 20 69 73 20 6e 65 65 64 65 64 20 66 6f  | ...An.explicit.list.is.needed.fo | 
| d320 |  72 20 43 6f 72 66 75 2e 22 29 0a 0a 28 64 65 66    76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 74  | r.Corfu.")..(defvar.prescient--t | 
| d340 |  6f 67 67 6c 65 2d 72 65 66 72 65 73 68 2d 66 75    6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 46  | oggle-refresh-functions.nil..."F | 
| d360 |  75 6e 63 74 69 6f 6e 73 20 74 6f 20 72 75 6e 20    74 6f 20 66 6f 72 63 65 20 72 65 66 72 65 73 68  | unctions.to.run.to.force.refresh | 
| d380 |  69 6e 67 20 74 68 65 20 63 6f 6d 70 6c 65 74 69    6f 6e 20 55 49 2e 0a 46 75 6e 63 74 69 6f 6e 73  | ing.the.completion.UI..Functions | 
| d3a0 |  20 61 72 65 20 61 64 64 65 64 20 62 79 20 74 68    65 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 70 61  | .are.added.by.the.integration.pa | 
| d3c0 |  63 6b 61 67 65 73 2e 22 29 0a 0a 28 64 65 66 75    6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67  | ckages.")..(defun.prescient--tog | 
| d3e0 |  67 6c 65 2d 72 65 66 72 65 73 68 20 28 29 0a 20    20 22 52 75 6e 20 74 68 65 20 55 49 20 72 65 66  | gle-refresh.()..."Run.the.UI.ref | 
| d400 |  72 65 73 68 20 66 75 6e 63 74 69 6f 6e 73 2e 22    0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70  | resh.functions."...(run-hooks.'p | 
| d420 |  72 65 73 63 69 65 6e 74 2d 2d 74 6f 67 67 6c 65    2d 72 65 66 72 65 73 68 2d 66 75 6e 63 74 69 6f  | rescient--toggle-refresh-functio | 
| d440 |  6e 73 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72    65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d  | ns))..(defvar.prescient-toggle-m | 
| d460 |  61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d    6b 65 79 6d 61 70 29 0a 20 20 22 54 6f 67 67 6c  | ap.(make-sparse-keymap)..."Toggl | 
| d480 |  69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72    20 60 70 72 65 73 63 69 65 6e 74 2e 65 6c 27 20  | ing.commands.for.`prescient.el'. | 
| d4a0 |  66 69 6c 74 65 72 73 20 69 6e 20 6d 69 6e 69 62    75 66 66 65 72 20 63 6f 6d 70 6c 65 74 69 6f 6e  | filters.in.minibuffer.completion | 
| d4c0 |  2e 0a 54 68 69 73 20 6d 61 70 20 69 73 20 61 75    74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 6f 75 6e  | ..This.map.is.automatically.boun | 
| d4e0 |  64 20 62 79 20 74 68 65 20 69 6e 74 65 67 72 61    74 69 6f 6e 20 70 61 63 6b 61 67 65 73 2e 22 29  | d.by.the.integration.packages.") | 
| d500 |  0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64    0a 28 64 65 66 6d 61 63 72 6f 20 70 72 65 73 63  | ..;;;###autoload.(defmacro.presc | 
| d520 |  69 65 6e 74 2d 63 72 65 61 74 65 2d 61 6e 64 2d    62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d  | ient-create-and-bind-toggle-comm | 
| d540 |  61 6e 64 0a 20 20 20 20 28 66 69 6c 74 65 72 2d    74 79 70 65 20 6b 62 64 2d 73 74 72 69 6e 67 29  | and.....(filter-type.kbd-string) | 
| d560 |  0a 20 20 22 43 72 65 61 74 65 20 61 6e 64 20 62    69 6e 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f  | ..."Create.and.bind.a.command.to | 
| d580 |  20 74 6f 67 67 6c 65 20 74 68 65 20 75 73 65 20    6f 66 20 61 20 66 69 6c 74 65 72 20 6d 65 74 68  | .toggle.the.use.of.a.filter.meth | 
| d5a0 |  6f 64 2e 0a 0a 54 68 65 20 63 72 65 61 74 65 64    20 63 6f 6d 6d 61 6e 64 20 74 6f 67 67 6c 65 73  | od...The.created.command.toggles | 
| d5c0 |  20 74 68 65 20 46 49 4c 54 45 52 2d 54 59 50 45    20 6d 65 74 68 6f 64 20 6f 6e 0a 6f 72 20 6f 66  | .the.FILTER-TYPE.method.on.or.of | 
| d5e0 |  66 20 62 75 66 66 65 72 20 6c 6f 63 61 6c 6c 79    2c 20 61 6e 64 20 64 6f 65 73 6e 27 74 20 61 66  | f.buffer.locally,.and.doesn't.af | 
| d600 |  66 65 63 74 20 74 68 65 20 64 65 66 61 75 6c 74    0a 62 65 68 61 76 69 6f 72 20 28 64 65 74 65 72  | fect.the.default.behavior.(deter | 
| d620 |  6d 69 6e 65 64 20 62 79 20 60 70 72 65 73 63 69    65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f  | mined.by.`prescient-filter-metho | 
| d640 |  64 27 29 2e 0a 0a 54 68 65 20 63 72 65 61 74 65    64 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 6f 75  | d')...The.created.command.is.bou | 
| d660 |  6e 64 20 74 6f 20 4b 42 44 2d 53 54 52 49 4e 47    20 69 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 74  | nd.to.KBD-STRING.in.`prescient-t | 
| d680 |  6f 67 67 6c 65 2d 6d 61 70 27 2e 20 54 68 69 73    20 6d 61 70 20 69 73 20 69 74 73 65 6c 66 20 62  | oggle-map'..This.map.is.itself.b | 
| d6a0 |  6f 75 6e 64 20 74 6f 20 60 4d 2d 73 27 0a 69 6e    20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20  | ound.to.`M-s'.in.the.completion. | 
| d6c0 |  62 75 66 66 65 72 20 77 68 65 6e 20 60 73 65 6c    65 63 74 72 75 6d 2d 70 72 65 73 63 69 65 6e 74  | buffer.when.`selectrum-prescient | 
| d6e0 |  2d 6d 6f 64 65 27 20 6f 72 0a 60 76 65 72 74 69    63 6f 2d 70 72 65 73 63 69 65 6e 74 2d 6d 6f 64  | -mode'.or.`vertico-prescient-mod | 
| d700 |  65 27 20 61 72 65 20 65 6e 61 62 6c 65 64 2e 0a    0a 46 49 4c 54 45 52 2d 54 59 50 45 20 69 73 20  | e'.are.enabled...FILTER-TYPE.is. | 
| d720 |  61 6e 20 75 6e 71 75 6f 74 65 64 20 73 79 6d 62    6f 6c 20 74 68 61 74 20 63 61 6e 20 62 65 20 75  | an.unquoted.symbol.that.can.be.u | 
| d740 |  73 65 64 20 69 6e 0a 60 70 72 65 73 63 69 65 6e    74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27  | sed.in.`prescient-filter-method' | 
| d760 |  2e 20 4b 42 44 2d 53 54 52 49 4e 47 20 69 73 20    61 20 73 74 72 69 6e 67 20 74 68 61 74 20 63 61  | ..KBD-STRING.is.a.string.that.ca | 
| d780 |  6e 20 62 65 0a 70 61 73 73 65 64 20 74 6f 20 60    6b 62 64 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28  | n.be.passed.to.`kbd'."...(let*.( | 
| d7a0 |  28 66 69 6c 74 65 72 2d 74 79 70 65 2d 6e 61 6d    65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66  | (filter-type-name.(symbol-name.f | 
| d7c0 |  69 6c 74 65 72 2d 74 79 70 65 29 29 29 0a 20 20    20 20 60 28 64 65 66 69 6e 65 2d 6b 65 79 20 70  | ilter-type))).....`(define-key.p | 
| d7e0 |  72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d    6d 61 70 20 28 6b 62 64 20 2c 6b 62 64 2d 73 74  | rescient-toggle-map.(kbd.,kbd-st | 
| d800 |  72 69 6e 67 29 0a 20 20 20 20 20 20 20 28 64 65    66 75 6e 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f  | ring)........(defun.,(intern.(co | 
| d820 |  6e 63 61 74 20 22 70 72 65 73 63 69 65 6e 74 2d    74 6f 67 67 6c 65 2d 22 20 66 69 6c 74 65 72 2d  | ncat."prescient-toggle-".filter- | 
| d840 |  74 79 70 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 61 72 67 29 20 20 20 20  | type-name))............(arg).... | 
| d860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 20 41 72 67 20 6c 69 73 74 0a 20 20 20 20 20  | ................;.Arg.list...... | 
| d880 |  20 20 20 20 2c 28 66 6f 72 6d 61 74 0a 20 20 20    20 20 20 20 20 20 20 20 22 54 6f 67 67 6c 65 20  | ....,(format............"Toggle. | 
| d8a0 |  74 68 65 20 5c 22 25 73 5c 22 20 66 69 6c 74 65    72 20 6f 6e 20 6f 72 20 6f 66 66 2e 20 57 69 74  | the.\"%s\".filter.on.or.off..Wit | 
| d8c0 |  68 20 41 52 47 2c 20 75 73 65 20 6f 6e 6c 79 20    74 68 69 73 20 66 69 6c 74 65 72 2e 0a 54 68 69  | h.ARG,.use.only.this.filter..Thi | 
| d8e0 |  73 20 74 6f 67 67 6c 69 6e 67 20 6f 6e 6c 79 20    61 66 66 65 63 74 73 20 66 69 6c 74 65 72 69 6e  | s.toggling.only.affects.filterin | 
| d900 |  67 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74    20 63 6f 6d 70 6c 65 74 69 6f 6e 0a 62 75 66 66  | g.in.the.current.completion.buff | 
| d920 |  65 72 2e 20 49 74 20 64 6f 65 73 20 6e 6f 74 20    61 66 66 65 63 74 20 74 68 65 20 64 65 66 61 75  | er..It.does.not.affect.the.defau | 
| d940 |  6c 74 20 62 65 68 61 76 69 6f 72 20 28 64 65 74    65 72 6d 69 6e 65 64 20 62 79 0a 60 70 72 65 73  | lt.behavior.(determined.by.`pres | 
| d960 |  63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74    68 6f 64 27 29 2e 22 20 20 66 69 6c 74 65 72 2d  | cient-filter-method')."..filter- | 
| d980 |  74 79 70 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20    20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65  | type-name)..........(interactive | 
| d9a0 |  20 22 50 22 29 0a 0a 20 20 20 20 20 20 20 20 20    3b 3b 20 4d 61 6b 65 20 60 70 72 65 73 63 69 65  | ."P")...........;;.Make.`prescie | 
| d9c0 |  6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64    27 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 69  | nt-filter-method'.buffer-local.i | 
| d9e0 |  6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 3b    3b 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 75 66  | n.the..........;;.completion.buf | 
| da00 |  66 65 72 2e 20 57 65 20 64 6f 6e 27 74 20 77 61    6e 74 20 74 6f 20 61 63 63 69 64 65 6e 74 61 6c  | fer..We.don't.want.to.accidental | 
| da20 |  6c 79 20 63 68 61 6e 67 65 20 74 68 65 0a 20 20    20 20 20 20 20 20 20 3b 3b 20 75 73 65 72 27 73  | ly.change.the..........;;.user's | 
| da40 |  20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f    72 2e 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6b  | .default.behavior...........(mak | 
| da60 |  65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65    20 27 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74  | e-local-variable.'prescient-filt | 
| da80 |  65 72 2d 6d 65 74 68 6f 64 29 0a 0a 20 20 20 20    20 20 20 20 20 28 69 66 20 61 72 67 0a 20 20 20  | er-method)...........(if.arg.... | 
| daa0 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20    75 73 65 72 20 70 72 6f 76 69 64 65 73 20 61 20  | ..........;;.If.user.provides.a. | 
| dac0 |  70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c    20 73 65 74 20 66 69 6c 74 65 72 69 6e 67 20 74  | prefix.argument,.set.filtering.t | 
| dae0 |  6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 6f  | o..............;;.be.a.list.of.o | 
| db00 |  6e 6c 79 20 6f 6e 65 20 66 69 6c 74 65 72 20 74    79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20  | nly.one.filter.type............. | 
| db20 |  20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e    74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 20  | ..(setq.prescient-filter-method. | 
| db40 |  27 28 2c 66 69 6c 74 65 72 2d 74 79 70 65 29 29    0a 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | '(,filter-type)).............;;. | 
| db60 |  4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 74 68    65 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e  | Otherwise,.if.the.current.settin | 
| db80 |  67 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c    0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65  | g.is.a.function,............;;.e | 
| dba0 |  76 61 6c 75 61 74 65 20 69 74 20 74 6f 20 67 65    74 20 74 68 65 20 76 61 6c 75 65 2e 0a 20 20 20  | valuate.it.to.get.the.value..... | 
| dbc0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66    75 6e 63 74 69 6f 6e 70 20 70 72 65 73 63 69 65  | ........(when.(functionp.prescie | 
| dbe0 |  6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | nt-filter-method)..............( | 
| dc00 |  73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 66    69 6c 74 65 72 2d 6d 65 74 68 6f 64 0a 20 20 20  | setq.prescient-filter-method.... | 
| dc20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 66 75 6e 63 61 6c 6c 20 70 72 65 73 63 69 65  | ................(funcall.prescie | 
| dc40 |  6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64    29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20  | nt-filter-method)))............. | 
| dc60 |  3b 3b 20 49 66 20 77 65 20 6e 65 65 64 20 74 6f    20 61 64 64 20 6f 72 20 72 65 6d 6f 76 65 20 66  | ;;.If.we.need.to.add.or.remove.f | 
| dc80 |  72 6f 6d 20 74 68 65 20 6c 69 73 74 2c 20 6d 61    6b 65 20 73 75 72 65 0a 20 20 20 20 20 20 20 20  | rom.the.list,.make.sure......... | 
| dca0 |  20 20 20 3b 3b 20 69 74 27 73 20 61 63 74 75 61    6c 6c 79 20 61 20 6c 69 73 74 20 61 6e 64 20 6e  | ...;;.it's.actually.a.list.and.n | 
| dcc0 |  6f 74 20 6a 75 73 74 20 61 20 73 79 6d 62 6f 6c    2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | ot.just.a.symbol.............(wh | 
| dce0 |  65 6e 20 28 73 79 6d 62 6f 6c 70 20 70 72 65 73    63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74  | en.(symbolp.prescient-filter-met | 
| dd00 |  68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e  | hod)..............(setq.prescien | 
| dd20 |  74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-filter-method................. | 
| dd40 |  20 20 20 28 6c 69 73 74 20 70 72 65 73 63 69 65    6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64  | ...(list.prescient-filter-method | 
| dd60 |  29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 65 71 75 61 6c 20 70 72 65 73 63  | ))).............(if.(equal.presc | 
| dd80 |  69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68    6f 64 20 27 28 2c 66 69 6c 74 65 72 2d 74 79 70  | ient-filter-method.'(,filter-typ | 
| dda0 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20  | e))................;;.Make.sure. | 
| ddc0 |  74 68 65 20 75 73 65 72 20 64 6f 65 73 6e 27 74    20 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 64 69  | the.user.doesn't.accidentally.di | 
| dde0 |  73 61 62 6c 65 20 61 6c 6c 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 74  | sable.all................;;.filt | 
| de00 |  65 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f  | ering.................(user-erro | 
| de20 |  72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 2c 28 63 6f 6e 63 61 74 0a 20 20 20 20 20  | r.................,(concat...... | 
| de40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 22 50 72    65 73 63 69 65 6e 74 2e 65 6c 3a 20 43 61 6e 27  | ............."Prescient.el:.Can' | 
| de60 |  74 20 74 6f 67 67 6c 65 20 6f 66 66 20 6f 6e 6c    79 20 61 63 74 69 76 65 20 66 69 6c 74 65 72 20  | t.toggle.off.only.active.filter. | 
| de80 |  6d 65 74 68 6f 64 3a 20 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 74  | method:."...................filt | 
| dea0 |  65 72 2d 74 79 70 65 2d 6e 61 6d 65 29 29 0a 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | er-type-name))...............(se | 
| dec0 |  74 71 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c    74 65 72 2d 6d 65 74 68 6f 64 0a 20 20 20 20 20  | tq.prescient-filter-method...... | 
| dee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 28 6d 65 6d 71 20 27 2c 66 69 6c 74 65 72  | ..............(if.(memq.',filter | 
| df00 |  2d 74 79 70 65 20 70 72 65 73 63 69 65 6e 74 2d    66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 20  | -type.prescient-filter-method).. | 
| df20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 45 76 65 6e 20 77 68  | ......................;;.Even.wh | 
| df40 |  65 6e 20 72 75 6e 6e 69 6e 67 20 60 6d 61 6b 65    2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 27  | en.running.`make-local-variable' | 
| df60 |  2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 73  | ,........................;;.it.s | 
| df80 |  65 65 6d 73 20 60 64 65 6c 71 27 20 6d 69 67 68    74 20 73 74 69 6c 6c 20 6d 6f 64 69 66 79 20 74  | eems.`delq'.might.still.modify.t | 
| dfa0 |  68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 6c 6f  | he........................;;.glo | 
| dfc0 |  62 61 6c 20 76 61 6c 75 65 2c 20 73 6f 20 77 65    20 75 73 65 20 60 72 65 6d 71 27 20 68 65 72 65  | bal.value,.so.we.use.`remq'.here | 
| dfe0 |  2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 72 65 6d 71 20 27  | .........................(remq.' | 
| e000 |  2c 66 69 6c 74 65 72 2d 74 79 70 65 20 70 72 65    73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65  | ,filter-type.prescient-filter-me | 
| e020 |  74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | thod)......................(cons | 
| e040 |  20 27 2c 66 69 6c 74 65 72 2d 74 79 70 65 20 70    72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d  | .',filter-type.prescient-filter- | 
| e060 |  6d 65 74 68 6f 64 29 29 29 29 29 0a 0a 20 20 20    20 20 20 20 20 20 3b 3b 20 41 66 74 65 72 20 63  | method)))))...........;;.After.c | 
| e080 |  68 61 6e 67 69 6e 67 20 60 70 72 65 73 63 69 65    6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64  | hanging.`prescient-filter-method | 
| e0a0 |  27 2c 20 74 65 6c 6c 20 74 68 65 20 75 73 65 72    0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65  | ',.tell.the.user..........;;.the | 
| e0c0 |  20 6e 65 77 20 76 61 6c 75 65 20 61 6e 64 20 75    70 64 61 74 65 20 74 68 65 20 55 49 27 73 20 64  | .new.value.and.update.the.UI's.d | 
| e0e0 |  69 73 70 6c 61 79 2e 0a 20 20 20 20 20 20 20 20    20 28 6d 65 73 73 61 67 65 20 22 50 72 65 73 63  | isplay...........(message."Presc | 
| e100 |  69 65 6e 74 2e 65 6c 20 66 69 6c 74 65 72 20 69    73 20 6e 6f 77 20 25 73 22 0a 20 20 20 20 20 20  | ient.el.filter.is.now.%s"....... | 
| e120 |  20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73    63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74  | ............prescient-filter-met | 
| e140 |  68 6f 64 29 0a 0a 20 20 20 20 20 20 20 20 20 3b    3b 20 43 61 6c 6c 20 22 65 78 68 69 62 69 74 22  | hod)...........;;.Call."exhibit" | 
| e160 |  20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20    20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d  | .function...........(prescient-- | 
| e180 |  74 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 29 29    29 29 29 0a 0a 28 70 72 65 73 63 69 65 6e 74 2d  | toggle-refresh)))))..(prescient- | 
| e1a0 |  63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d    74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 61  | create-and-bind-toggle-command.a | 
| e1c0 |  6e 63 68 6f 72 65 64 20 22 61 22 29 0a 28 70 72    65 73 63 69 65 6e 74 2d 63 72 65 61 74 65 2d 61  | nchored."a").(prescient-create-a | 
| e1e0 |  6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63    6f 6d 6d 61 6e 64 20 66 75 7a 7a 79 20 22 66 22  | nd-bind-toggle-command.fuzzy."f" | 
| e200 |  29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72 65    61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67  | ).(prescient-create-and-bind-tog | 
| e220 |  67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 69 6e 69 74    69 61 6c 69 73 6d 20 22 69 22 29 0a 28 70 72 65  | gle-command.initialism."i").(pre | 
| e240 |  73 63 69 65 6e 74 2d 63 72 65 61 74 65 2d 61 6e    64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f  | scient-create-and-bind-toggle-co | 
| e260 |  6d 6d 61 6e 64 20 6c 69 74 65 72 61 6c 20 22 6c    22 29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72  | mmand.literal."l").(prescient-cr | 
| e280 |  65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f    67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 6c 69 74  | eate-and-bind-toggle-command.lit | 
| e2a0 |  65 72 61 6c 2d 70 72 65 66 69 78 20 22 50 22 29    0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61  | eral-prefix."P").(prescient-crea | 
| e2c0 |  74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67    6c 65 2d 63 6f 6d 6d 61 6e 64 20 70 72 65 66 69  | te-and-bind-toggle-command.prefi | 
| e2e0 |  78 20 22 70 22 29 0a 28 70 72 65 73 63 69 65 6e    74 2d 63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e  | x."p").(prescient-create-and-bin | 
| e300 |  64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64    20 72 65 67 65 78 70 20 22 72 22 29 0a 0a 28 64  | d-toggle-command.regexp."r")..(d | 
| e320 |  65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 74    6f 67 67 6c 65 2d 63 68 61 72 2d 66 6f 6c 64 20  | efun.prescient-toggle-char-fold. | 
| e340 |  28 29 0a 20 20 22 54 6f 67 67 6c 65 20 63 68 61    72 61 63 74 65 72 20 66 6f 6c 64 69 6e 67 20 69  | ()..."Toggle.character.folding.i | 
| e360 |  6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f    6d 70 6c 65 74 69 6f 6e 20 62 75 66 66 65 72 2e  | n.the.current.completion.buffer. | 
| e380 |  0a 0a 53 65 65 20 74 68 65 20 75 73 65 72 20 6f    70 74 69 6f 6e 20 60 70 72 65 73 63 69 65 6e 74  | ..See.the.user.option.`prescient | 
| e3a0 |  2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e    67 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74  | -use-char-folding'."...(interact | 
| e3c0 |  69 76 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63    61 6c 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65  | ive)...(setq-local.prescient-use | 
| e3e0 |  2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74  | -char-folding...............(not | 
| e400 |  20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63    68 61 72 2d 66 6f 6c 64 69 6e 67 29 29 0a 20 20  | .prescient-use-char-folding))... | 
| e420 |  28 6d 65 73 73 61 67 65 20 22 43 68 61 72 61 63    74 65 72 20 66 6f 6c 64 69 6e 67 20 74 6f 67 67  | (message."Character.folding.togg | 
| e440 |  6c 65 64 20 25 73 22 0a 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 70 72 65 73 63 69 65 6e 74  | led.%s"............(if.prescient | 
| e460 |  2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e    67 20 22 6f 6e 22 20 22 6f 66 66 22 29 29 0a 20  | -use-char-folding."on"."off")).. | 
| e480 |  20 28 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67    67 6c 65 2d 72 65 66 72 65 73 68 29 29 0a 0a 3b  | .(prescient--toggle-refresh))..; | 
| e4a0 |  3b 20 54 68 69 73 20 69 73 20 74 68 65 20 73 61    6d 65 20 62 69 6e 64 69 6e 67 20 75 73 65 64 20  | ;.This.is.the.same.binding.used. | 
| e4c0 |  62 79 20 60 69 73 65 61 72 63 68 2d 74 6f 67 67    6c 65 2d 63 68 61 72 2d 66 6f 6c 64 27 2e 0a 28  | by.`isearch-toggle-char-fold'..( | 
| e4e0 |  64 65 66 69 6e 65 2d 6b 65 79 20 70 72 65 73 63    69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d 61 70 20  | define-key.prescient-toggle-map. | 
| e500 |  28 6b 62 64 20 22 27 22 29 0a 20 20 23 27 70 72    65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 63  | (kbd."'")...#'prescient-toggle-c | 
| e520 |  68 61 72 2d 66 6f 6c 64 29 0a 0a 28 64 65 66 75    6e 20 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67  | har-fold)..(defun.prescient-togg | 
| e540 |  6c 65 2d 63 61 73 65 2d 66 6f 6c 64 20 28 29 0a    20 20 22 54 6f 67 67 6c 65 20 63 61 73 65 20 66  | le-case-fold.()..."Toggle.case.f | 
| e560 |  6f 6c 64 69 6e 67 20 69 6e 20 74 68 65 20 63 75    72 72 65 6e 74 20 63 6f 6d 70 6c 65 74 69 6f 6e  | olding.in.the.current.completion | 
| e580 |  20 62 75 66 66 65 72 2e 0a 0a 49 66 20 60 70 72    65 73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65  | .buffer...If.`prescient-use-case | 
| e5a0 |  2d 66 6f 6c 64 69 6e 67 27 20 69 73 20 73 65 74    20 74 6f 20 60 73 6d 61 72 74 27 2c 20 74 68 65  | -folding'.is.set.to.`smart',.the | 
| e5c0 |  6e 20 74 68 69 73 0a 74 6f 67 67 6c 65 73 20 77    68 65 74 68 65 72 20 74 6f 20 75 73 65 20 73 6d  | n.this.toggles.whether.to.use.sm | 
| e5e0 |  61 72 74 20 63 61 73 65 20 66 6f 6c 64 69 6e 67    20 6f 72 20 6e 6f 20 63 61 73 65 20 66 6f 6c 64  | art.case.folding.or.no.case.fold | 
| e600 |  69 6e 67 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20    74 68 69 73 20 74 6f 67 67 6c 65 73 20 62 65 74  | ing..Otherwise,.this.toggles.bet | 
| e620 |  77 65 65 6e 20 6e 6f 72 6d 61 6c 20 63 61 73 65    20 66 6f 6c 64 69 6e 67 20 61 6e 64 20 6e 6f 20  | ween.normal.case.folding.and.no. | 
| e640 |  63 61 73 65 0a 66 6f 6c 64 69 6e 67 2e 22 0a 20    20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20  | case.folding."...(interactive).. | 
| e660 |  20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 70 72 65    73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d  | .(setq-local.prescient-use-case- | 
| e680 |  66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20  | folding...............(cond..... | 
| e6a0 |  20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73    63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66  | ...........(prescient-use-case-f | 
| e6c0 |  6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20  | olding.................(message. | 
| e6e0 |  22 43 61 73 65 20 66 6f 6c 64 69 6e 67 20 74 6f    67 67 6c 65 64 20 6f 66 66 22 29 0a 20 20 20 20  | "Case.folding.toggled.off")..... | 
| e700 |  20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............nil)................ | 
| e720 |  28 28 65 71 20 28 64 65 66 61 75 6c 74 2d 74 6f    70 6c 65 76 65 6c 2d 76 61 6c 75 65 20 27 70 72  | ((eq.(default-toplevel-value.'pr | 
| e740 |  65 73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65    2d 66 6f 6c 64 69 6e 67 29 0a 20 20 20 20 20 20  | escient-use-case-folding)....... | 
| e760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73    6d 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20  | ..............'smart)........... | 
| e780 |  20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22    53 6d 61 72 74 20 63 61 73 65 20 66 6f 6c 64 69  | ......(message."Smart.case.foldi | 
| e7a0 |  6e 67 20 74 6f 67 67 6c 65 64 20 6f 6e 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ng.toggled.on")................. | 
| e7c0 |  27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20  | 'smart)................(t....... | 
| e7e0 |  20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61    67 65 20 22 43 61 73 65 20 66 6f 6c 64 69 6e 67  | ..........(message."Case.folding | 
| e800 |  20 74 6f 67 67 6c 65 64 20 6f 6e 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29  | .toggled.on").................t) | 
| e820 |  29 29 0a 20 20 28 70 72 65 73 63 69 65 6e 74 2d    2d 74 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 29  | ))...(prescient--toggle-refresh) | 
| e840 |  29 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68    65 20 73 61 6d 65 20 62 69 6e 64 69 6e 67 20 75  | )..;;.This.is.the.same.binding.u | 
| e860 |  73 65 64 20 62 79 20 60 69 73 65 61 72 63 68 2d    74 6f 67 67 6c 65 2d 63 61 73 65 2d 66 6f 6c 64  | sed.by.`isearch-toggle-case-fold | 
| e880 |  27 2e 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 70    72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d  | '..(define-key.prescient-toggle- | 
| e8a0 |  6d 61 70 20 28 6b 62 64 20 22 63 22 29 0a 20 20    23 27 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67  | map.(kbd."c")...#'prescient-togg | 
| e8c0 |  6c 65 2d 63 61 73 65 2d 66 6f 6c 64 29 0a 0a 0a    3b 3b 3b 3b 20 43 6c 6f 73 69 6e 67 20 72 65 6d  | le-case-fold)...;;;;.Closing.rem | 
| e8e0 |  61 72 6b 73 0a 28 70 72 6f 76 69 64 65 20 27 70    72 65 73 63 69 65 6e 74 29 0a 0a 3b 3b 3b 20 70  | arks.(provide.'prescient)..;;;.p | 
| e900 |  72 65 73 63 69 65 6e 74 2e 65 6c 20 65 6e 64 73    20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00  | rescient.el.ends.here........... | 
| e920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e9a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e9c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| e9e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ea00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ea20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ea40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ea60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ea80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eaa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eb00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eb20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eb40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eb60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eb80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ebc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ebe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ec00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ec20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ec40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ec60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ec80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ecc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ece0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ed00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ed20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ed40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ed60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ed80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eda0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| edc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ede0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ee00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ee20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ee40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ee60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ee80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| eee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ef00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ef20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ef40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ef60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ef80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| efa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| efc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| efe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ |