| ofs | hex dump | ascii | 
|---|
| 0000 |  6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34    2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | kv-20140108.1534/............... | 
| 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 31 34 32 35 00 20 35 00 00 00  | 0000000.00000000000.011425..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 |  6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34    2f 6b 76 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00  | kv-20140108.1534/kv-pkg.el...... | 
| 0220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 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 36 32 32 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 31 34 36 00 20 30 00 00 00  | 0000622.00000000000.013146..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 |  3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63    6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63  | ;;.-*-.no-byte-compile:.t;.lexic | 
| 0420 |  61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20    2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b  | al-binding:.nil.-*-.(define-pack | 
| 0440 |  61 67 65 20 22 6b 76 22 20 22 32 30 31 34 30 31    30 38 2e 31 35 33 34 22 0a 20 20 22 4b 65 79 2f  | age."kv"."20140108.1534"..."Key/ | 
| 0460 |  76 61 6c 75 65 20 64 61 74 61 20 73 74 72 75 63    74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 2e 22  | value.data.structure.functions." | 
| 0480 |  0a 20 20 28 29 0a 20 20 3a 75 72 6c 20 22 68 74    74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d  | ...()...:url."https://github.com | 
| 04a0 |  2f 6e 69 63 66 65 72 72 69 65 72 2f 65 6d 61 63    73 2d 6b 76 22 0a 20 20 3a 63 6f 6d 6d 69 74 20  | /nicferrier/emacs-kv"...:commit. | 
| 04c0 |  22 37 32 31 31 34 38 34 37 35 62 63 65 33 38 61    37 30 65 30 62 36 37 38 62 61 38 61 61 39 32 33  | "721148475bce38a70e0b678ba8aa923 | 
| 04e0 |  36 35 32 65 38 39 30 30 65 22 0a 20 20 3a 72 65    76 64 65 73 63 20 22 37 32 31 31 34 38 34 37 35  | 652e8900e"...:revdesc."721148475 | 
| 0500 |  62 63 65 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73    20 27 28 22 6c 69 73 70 22 29 0a 20 20 3a 61 75  | bce"...:keywords.'("lisp")...:au | 
| 0520 |  74 68 6f 72 73 20 27 28 28 22 4e 69 63 20 46 65    72 72 69 65 72 22 20 2e 20 22 6e 66 65 72 72 69  | thors.'(("Nic.Ferrier"..."nferri | 
| 0540 |  65 72 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b    22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65  | er@ferrier.me.uk"))...:maintaine | 
| 0560 |  72 73 20 27 28 28 22 4e 69 63 20 46 65 72 72 69    65 72 22 20 2e 20 22 6e 66 65 72 72 69 65 72 40  | rs.'(("Nic.Ferrier"..."nferrier@ | 
| 0580 |  66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 22 29 29    29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ferrier.me.uk")))............... | 
| 05a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 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 |  6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34    2f 6b 76 2e 65 6c 00 00 00 00 00 00 00 00 00 00  | kv-20140108.1534/kv.el.......... | 
| 0620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 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 30 33 32 37 37 35 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 34 30 35 00 20 30 00 00 00  | 0032775.00000000000.012405..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 6b 76 2e 65 6c 20 2d 2d 2d 20 6b 65    79 2f 76 61 6c 75 65 20 64 61 74 61 20 73 74 72  | ;;;.kv.el.---.key/value.data.str | 
| 0820 |  75 63 74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73    0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28  | ucture.functions..;;.Copyright.( | 
| 0840 |  43 29 20 32 30 31 32 20 20 4e 69 63 20 46 65 72    72 69 65 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a  | C).2012..Nic.Ferrier..;;.Author: | 
| 0860 |  20 4e 69 63 20 46 65 72 72 69 65 72 20 3c 6e 66    65 72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d  | .Nic.Ferrier.<nferrier@ferrier.m | 
| 0880 |  65 2e 75 6b 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64    73 3a 20 6c 69 73 70 0a 3b 3b 20 50 61 63 6b 61  | e.uk>.;;.Keywords:.lisp.;;.Packa | 
| 08a0 |  67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30 31 34    30 31 30 38 2e 31 35 33 34 0a 3b 3b 20 50 61 63  | ge-Version:.20140108.1534.;;.Pac | 
| 08c0 |  6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a 20 37    32 31 31 34 38 34 37 35 62 63 65 0a 3b 3b 20 4d  | kage-Revision:.721148475bce.;;.M | 
| 08e0 |  61 69 6e 74 61 69 6e 65 72 3a 20 4e 69 63 20 46    65 72 72 69 65 72 20 3c 6e 66 65 72 72 69 65 72  | aintainer:.Nic.Ferrier.<nferrier | 
| 0900 |  40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 3e 0a    3b 3b 20 43 72 65 61 74 65 64 3a 20 37 74 68 20  | @ferrier.me.uk>.;;.Created:.7th. | 
| 0920 |  53 65 70 74 65 6d 62 65 72 20 32 30 31 32 0a 0a    3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20  | September.2012..;;.This.program. | 
| 0940 |  69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65    3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74  | is.free.software;.you.can.redist | 
| 0960 |  72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72    20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e  | ribute.it.and/or.modify.;;.it.un | 
| 0980 |  64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66    20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c  | der.the.terms.of.the.GNU.General | 
| 09a0 |  20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20    61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a  | .Public.License.as.published.by. | 
| 09c0 |  3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74    77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c  | ;;.the.Free.Software.Foundation, | 
| 09e0 |  20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20    33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65  | .either.version.3.of.the.License | 
| 0a00 |  2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72    20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74  | ,.or.;;.(at.your.option).any.lat | 
| 0a20 |  65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20    54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20  | er.version...;;.This.program.is. | 
| 0a40 |  64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74    68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20  | distributed.in.the.hope.that.it. | 
| 0a60 |  77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a    3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41  | will.be.useful,.;;.but.WITHOUT.A | 
| 0a80 |  4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74    68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d  | NY.WARRANTY;.without.even.the.im | 
| 0aa0 |  70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f    66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49  | plied.warranty.of.;;.MERCHANTABI | 
| 0ac0 |  4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20    46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52  | LITY.or.FITNESS.FOR.A.PARTICULAR | 
| 0ae0 |  20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74    68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61  | .PURPOSE...See.the.;;.GNU.Genera | 
| 0b00 |  6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65    20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c  | l.Public.License.for.more.detail | 
| 0b20 |  73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c    64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20  | s...;;.You.should.have.received. | 
| 0b40 |  61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e    55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  | a.copy.of.the.GNU.General.Public | 
| 0b60 |  20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e    67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67  | .License.;;.along.with.this.prog | 
| 0b80 |  72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65    65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e  | ram...If.not,.see.<http://www.gn | 
| 0ba0 |  75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e    2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72  | u.org/licenses/>...;;;.Commentar | 
| 0bc0 |  79 3a 0a 0a 3b 3b 20 53 6f 6d 65 20 72 6f 75 74    69 6e 65 73 20 66 6f 72 20 77 6f 72 6b 69 6e 67  | y:..;;.Some.routines.for.working | 
| 0be0 |  20 77 69 74 68 20 6b 65 79 2f 76 61 6c 75 65 20    64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20  | .with.key/value.data.structures. | 
| 0c00 |  6c 69 6b 65 0a 3b 3b 20 68 61 73 68 2d 74 61 62    6c 65 73 20 61 6e 64 20 61 6c 69 73 74 73 20 61  | like.;;.hash-tables.and.alists.a | 
| 0c20 |  6e 64 20 70 6c 69 73 74 73 2e 0a 0a 3b 3b 20 54    68 69 73 20 61 6c 73 6f 20 74 61 6b 65 73 20 6f  | nd.plists...;;.This.also.takes.o | 
| 0c40 |  76 65 72 20 74 68 65 20 64 6f 74 61 73 73 6f 63    20 73 74 75 66 66 20 61 6e 64 20 70 72 6f 76 69  | ver.the.dotassoc.stuff.and.provi | 
| 0c60 |  64 65 73 20 69 74 20 73 65 70 61 72 61 74 65 6c    79 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28  | des.it.separately...;;;.Code:..( | 
| 0c80 |  65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c    65 20 28 72 65 71 75 69 72 65 20 27 63 6c 29 29  | eval-when-compile.(require.'cl)) | 
| 0ca0 |  0a 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73    74 2d 3e 68 61 73 68 20 28 61 6c 69 73 74 20 26  | ...(defun.kvalist->hash.(alist.& | 
| 0cc0 |  72 65 73 74 20 68 61 73 68 2d 74 61 62 6c 65 2d    61 72 67 73 29 0a 20 20 22 43 6f 6e 76 65 72 74  | rest.hash-table-args)..."Convert | 
| 0ce0 |  20 41 4c 49 53 54 20 74 6f 20 61 20 48 41 53 48    2e 0a 0a 48 41 53 48 2d 54 41 42 4c 45 2d 41 52  | .ALIST.to.a.HASH...HASH-TABLE-AR | 
| 0d00 |  47 53 20 61 72 65 20 70 61 73 73 65 64 20 74 6f    20 74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20  | GS.are.passed.to.the.hash-table. | 
| 0d20 |  63 72 65 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65    74 20 28 28 74 61 62 6c 65 20 28 61 70 70 6c 79  | creation."...(let.((table.(apply | 
| 0d40 |  20 27 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c    65 20 68 61 73 68 2d 74 61 62 6c 65 2d 61 72 67  | .'make-hash-table.hash-table-arg | 
| 0d60 |  73 29 29 29 0a 20 20 20 20 28 6d 61 70 63 0a 20    20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 69  | s))).....(mapc......(lambda.(pai | 
| 0d80 |  72 29 0a 20 20 20 20 20 20 20 28 70 75 74 68 61    73 68 20 28 63 61 72 20 70 61 69 72 29 20 28 63  | r)........(puthash.(car.pair).(c | 
| 0da0 |  64 72 20 70 61 69 72 29 20 74 61 62 6c 65 29 29    0a 20 20 20 20 20 61 6c 69 73 74 29 0a 20 20 20  | dr.pair).table))......alist).... | 
| 0dc0 |  20 74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e    20 6b 76 68 61 73 68 2d 3e 61 6c 69 73 74 20 28  | .table))..(defun.kvhash->alist.( | 
| 0de0 |  68 61 73 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66    75 6e 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20  | hash.&optional.func)..."Convert. | 
| 0e00 |  48 41 53 48 20 74 6f 20 61 6e 20 41 4c 49 53 54    2e 0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 66 69  | HASH.to.an.ALIST...Optionally.fi | 
| 0e20 |  6c 74 65 72 20 74 68 72 6f 75 67 68 20 46 55 4e    43 2c 20 6f 6e 6c 79 20 6e 6f 6e 2d 6e 69 6c 20  | lter.through.FUNC,.only.non-nil. | 
| 0e40 |  76 61 6c 75 65 73 20 72 65 74 75 72 6e 65 64 20    66 72 6f 6d 0a 46 55 4e 43 20 61 72 65 20 73 74  | values.returned.from.FUNC.are.st | 
| 0e60 |  6f 72 65 64 20 61 73 20 74 68 65 20 72 65 73 75    6c 74 69 6e 67 20 76 61 6c 75 65 20 61 67 61 69  | ored.as.the.resulting.value.agai | 
| 0e80 |  6e 73 74 20 74 68 65 20 63 6f 6e 76 65 72 74 65    64 0a 6b 65 79 2e 22 0a 20 20 28 77 68 65 6e 20  | nst.the.converted.key."...(when. | 
| 0ea0 |  68 61 73 68 0a 20 20 20 20 28 6c 65 74 20 28 73    74 6f 72 65 29 0a 20 20 20 20 20 20 28 6d 61 70  | hash.....(let.(store).......(map | 
| 0ec0 |  68 61 73 68 0a 20 20 20 20 20 20 20 28 6c 61 6d    62 64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 0a  | hash........(lambda.(key.value). | 
| 0ee0 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6b    65 79 0a 20 20 20 20 20 20 20 20 20 20 20 28 69  | .........(when.key............(i | 
| 0f00 |  66 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e    70 20 66 75 6e 63 29 29 0a 20 20 20 20 20 20 20  | f.(and.(functionp.func))........ | 
| 0f20 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72    65 73 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63  | ........(let.((res.(funcall.func | 
| 0f40 |  20 6b 65 79 20 76 61 6c 75 65 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .key.value)))..................( | 
| 0f60 |  77 68 65 6e 20 72 65 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | when.res....................(set | 
| 0f80 |  71 20 73 74 6f 72 65 20 28 61 63 6f 6e 73 20 6b    65 79 20 72 65 73 20 73 74 6f 72 65 29 29 29 29  | q.store.(acons.key.res.store)))) | 
| 0fa0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 65 6c 73 65 20 6e 6f 20 66 69 6c 74 65  | ................;;.else.no.filte | 
| 0fc0 |  72 69 6e 67 2c 20 6a 75 73 74 20 72 65 74 75 72    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ring,.just.return............... | 
| 0fe0 |  20 28 73 65 74 71 20 73 74 6f 72 65 20 28 61 63    6f 6e 73 20 6b 65 79 20 76 61 6c 75 65 20 73 74  | .(setq.store.(acons.key.value.st | 
| 1000 |  6f 72 65 29 29 29 29 29 0a 20 20 20 20 20 20 20    68 61 73 68 29 0a 20 20 20 20 20 20 73 74 6f 72  | ore)))))........hash).......stor | 
| 1020 |  65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 66    61 20 28 6b 65 79 20 61 6c 69 73 74 20 72 65 63  | e)))..(defun.kvfa.(key.alist.rec | 
| 1040 |  65 69 76 65 29 0a 20 20 22 43 61 6c 6c 20 52 45    43 45 49 56 45 20 77 69 74 68 20 77 68 61 74 65  | eive)..."Call.RECEIVE.with.whate | 
| 1060 |  76 65 72 20 63 6f 6d 65 73 20 6f 75 74 20 6f 66    20 41 4c 49 53 54 20 66 6f 72 20 4b 45 59 2e 0a  | ver.comes.out.of.ALIST.for.KEY.. | 
| 1080 |  0a 52 45 43 45 49 56 45 20 63 61 6e 20 64 6f 20    77 68 61 74 65 76 65 72 20 64 65 73 74 72 75 63  | .RECEIVE.can.do.whatever.destruc | 
| 10a0 |  74 75 72 69 6e 67 20 79 6f 75 20 77 61 6e 74 2c    20 74 68 65 20 66 69 72 73 74 0a 61 72 67 75 6d  | turing.you.want,.the.first.argum | 
| 10c0 |  65 6e 74 20 69 73 20 61 6c 77 61 79 73 20 74 68    65 20 63 61 72 20 6f 66 20 74 68 65 20 61 6c 69  | ent.is.always.the.car.of.the.ali | 
| 10e0 |  73 74 20 70 61 69 72 2e 22 0a 20 20 28 61 70 70    6c 79 20 72 65 63 65 69 76 65 20 28 6c 65 74 20  | st.pair."...(apply.receive.(let. | 
| 1100 |  28 28 61 20 28 61 73 73 6f 63 20 6b 65 79 20 61    6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20  | ((a.(assoc.key.alist)))......... | 
| 1120 |  20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65    6e 64 20 28 6c 69 73 74 20 28 63 61 72 20 61 29  | ...........(append.(list.(car.a) | 
| 1140 |  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 28 69 66  | )............................(if | 
| 1160 |  20 28 6c 69 73 74 70 20 28 63 64 72 20 61 29 29    28 63 64 72 20 61 29 28 6c 69 73 74 20 28 63 64  | .(listp.(cdr.a))(cdr.a)(list.(cd | 
| 1180 |  72 20 61 29 29 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6b 76 61 20 28 6b 65 79 20 61 6c 69 73  | r.a)))))))..(defun.kva.(key.alis | 
| 11a0 |  74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74    68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e 65  | t)..."Retrieve.the.value.assigne | 
| 11c0 |  64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53    54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 60 61  | d.to.KEY.in.ALIST...This.uses.`a | 
| 11e0 |  73 73 6f 63 27 20 61 73 20 74 68 65 20 6c 6f 6f    6b 75 70 20 6d 65 63 68 61 6e 69 73 6d 2e 22 0a  | ssoc'.as.the.lookup.mechanism.". | 
| 1200 |  20 20 28 63 64 72 20 28 61 73 73 6f 63 20 6b 65    79 20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66  | ..(cdr.(assoc.key.alist)))..(def | 
| 1220 |  75 6e 20 6b 76 61 71 20 28 6b 65 79 20 61 6c 69    73 74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20  | un.kvaq.(key.alist)..."Retrieve. | 
| 1240 |  74 68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e    65 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49  | the.value.assigned.to.KEY.in.ALI | 
| 1260 |  53 54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 60    61 73 73 71 27 20 61 73 20 74 68 65 20 6c 6f 6f  | ST...This.uses.`assq'.as.the.loo | 
| 1280 |  6b 75 70 20 6d 65 63 68 61 6e 69 73 6d 2e 22 0a    20 20 28 63 64 72 20 28 61 73 73 71 20 6b 65 79  | kup.mechanism."...(cdr.(assq.key | 
| 12a0 |  20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75    6e 20 6b 76 61 71 63 20 28 6b 65 79 20 61 6c 69  | .alist)))..(defun.kvaqc.(key.ali | 
| 12c0 |  73 74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20    74 68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e  | st)..."Retrieve.the.value.assign | 
| 12e0 |  65 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49    53 54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 66  | ed.to.KEY.in.ALIST...This.uses.f | 
| 1300 |  69 72 73 74 20 74 68 65 20 60 61 73 73 71 27 20    61 6e 64 20 74 68 65 6e 20 60 61 73 73 6f 63 27  | irst.the.`assq'.and.then.`assoc' | 
| 1320 |  20 61 73 20 74 68 65 20 6c 6f 6f 6b 75 70 0a 6d    65 63 68 61 6e 69 73 6d 2e 22 0a 20 20 28 63 64  | .as.the.lookup.mechanism."...(cd | 
| 1340 |  72 20 28 6f 72 20 28 61 73 73 71 20 6b 65 79 20    61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20  | r.(or.(assq.key.alist).......... | 
| 1360 |  20 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69    73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b  | ..(assoc.key.alist))))..(defun.k | 
| 1380 |  76 61 73 73 6f 63 3d 20 28 6b 65 79 20 76 61 6c    75 65 20 61 6c 69 73 74 29 0a 20 20 22 49 73 20  | vassoc=.(key.value.alist)..."Is. | 
| 13a0 |  74 68 65 20 76 61 6c 75 65 20 61 73 73 6f 63 64    20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54  | the.value.assocd.to.KEY.in.ALIST | 
| 13c0 |  20 65 71 75 61 6c 20 74 6f 20 56 41 4c 55 45 3f    0a 0a 52 65 74 75 72 6e 73 20 74 68 65 20 76 61  | .equal.to.VALUE?..Returns.the.va | 
| 13e0 |  6c 75 65 20 6c 6f 6f 6b 65 64 20 75 70 20 62 79    20 4b 45 59 20 74 68 61 74 20 70 61 73 73 65 73  | lue.looked.up.by.KEY.that.passes | 
| 1400 |  2c 20 73 6f 20 6e 6f 72 6d 61 6c 6c 79 3a 0a 0a    20 20 4b 45 59 20 2e 20 56 41 4c 55 45 0a 22 0a  | ,.so.normally:....KEY...VALUE.". | 
| 1420 |  20 20 28 6c 65 74 20 28 28 76 20 28 61 73 73 6f    63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 20  | ..(let.((v.(assoc.key.alist))).. | 
| 1440 |  20 20 20 28 61 6e 64 20 76 20 28 65 71 75 61 6c    20 28 63 64 72 20 76 29 20 76 61 6c 75 65 29 20  | ...(and.v.(equal.(cdr.v).value). | 
| 1460 |  76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61    73 73 6f 71 63 20 28 6b 65 79 20 61 6c 69 73 74  | v)))..(defun.kvassoqc.(key.alist | 
| 1480 |  29 0a 20 20 22 53 74 72 69 6e 67 20 6f 72 20 73    79 6d 62 6f 6c 20 61 73 73 6f 63 2e 22 0a 20 20  | )..."String.or.symbol.assoc."... | 
| 14a0 |  28 6c 65 74 20 28 28 76 20 28 6f 72 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 61 73 73 71 20 28  | (let.((v.(or.............(assq.( | 
| 14c0 |  69 66 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 29    20 6b 65 79 20 28 69 6e 74 65 72 6e 20 6b 65 79  | if.(symbolp.key).key.(intern.key | 
| 14e0 |  29 29 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63  | )).alist).............(or.(assoc | 
| 1500 |  20 6b 65 79 20 61 6c 69 73 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e  | .key.alist).................;;.n | 
| 1520 |  6f 74 20 73 75 72 65 20 61 62 6f 75 74 20 74 68    69 73 20 62 65 68 61 76 69 6f 75 72 2e 2e 2e 20  | ot.sure.about.this.behaviour.... | 
| 1540 |  73 65 65 20 74 65 73 74 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20  | see.test.................(assoc. | 
| 1560 |  28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79    29 20 61 6c 69 73 74 29 29 29 29 29 20 20 76 29  | (symbol-name.key).alist)))))..v) | 
| 1580 |  29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 73 73 6f    71 3d 20 28 6b 65 79 20 76 61 6c 75 65 20 61 6c  | )..(defun.kvassoq=.(key.value.al | 
| 15a0 |  69 73 74 29 0a 20 20 22 54 65 73 74 20 74 68 65    20 56 41 4c 55 45 20 77 69 74 68 20 74 68 65 20  | ist)..."Test.the.VALUE.with.the. | 
| 15c0 |  76 61 6c 75 65 20 62 6f 75 6e 64 20 74 6f 20 4b    45 59 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 54 68  | value.bound.to.KEY.in.ALIST...Th | 
| 15e0 |  65 20 6c 6f 6f 6b 75 70 20 6d 65 63 68 61 6e 69    73 6d 20 69 73 20 74 6f 20 65 6e 73 75 72 65 20  | e.lookup.mechanism.is.to.ensure. | 
| 1600 |  74 68 65 20 6b 65 79 20 69 73 20 61 20 73 79 6d    62 6f 6c 20 61 6e 64 20 74 68 65 6e 0a 75 73 65  | the.key.is.a.symbol.and.then.use | 
| 1620 |  20 61 73 73 71 2e 20 20 48 65 6e 63 65 20 74 68    65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75  | .assq...Hence.the.name.of.the.fu | 
| 1640 |  6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 61 20 6d    69 78 20 6f 66 20 61 73 73 6f 63 0a 61 6e 64 20  | nction.being.a.mix.of.assoc.and. | 
| 1660 |  61 73 73 71 2e 0a 0a 52 65 74 75 72 6e 73 20 74    68 65 20 76 61 6c 75 65 20 6c 6f 6f 6b 65 64 20  | assq...Returns.the.value.looked. | 
| 1680 |  75 70 20 62 79 20 4b 45 59 20 74 68 61 74 20 70    61 73 73 65 73 2c 20 73 6f 20 6e 6f 72 6d 61 6c  | up.by.KEY.that.passes,.so.normal | 
| 16a0 |  6c 79 3a 0a 0a 20 20 4b 45 59 20 2e 20 56 41 4c    55 45 0a 22 0a 20 20 28 6c 65 74 20 28 28 76 20  | ly:....KEY...VALUE."...(let.((v. | 
| 16c0 |  28 6b 76 61 73 73 6f 71 63 20 6b 65 79 20 61 6c    69 73 74 29 29 29 0a 20 20 20 20 28 61 6e 64 20  | (kvassoqc.key.alist))).....(and. | 
| 16e0 |  76 20 28 65 71 75 61 6c 20 28 63 64 72 20 76 29    20 76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64  | v.(equal.(cdr.v).value).v)))..(d | 
| 1700 |  65 66 75 6e 20 6b 76 6d 61 74 63 68 20 28 6b 65    79 20 72 65 67 65 78 20 61 6c 69 73 74 29 0a 20  | efun.kvmatch.(key.regex.alist).. | 
| 1720 |  20 22 54 65 73 74 20 74 68 65 20 76 61 6c 75 65    20 77 69 74 68 20 4b 45 59 20 69 6e 20 41 4c 49  | ."Test.the.value.with.KEY.in.ALI | 
| 1740 |  53 54 20 6d 61 74 63 68 65 73 20 52 45 47 45 58    2e 22 0a 20 20 28 6c 65 74 20 28 28 76 20 28 6b  | ST.matches.REGEX."...(let.((v.(k | 
| 1760 |  76 61 73 73 6f 71 63 20 6b 65 79 20 61 6c 69 73    74 29 29 29 0a 20 20 20 20 28 61 6e 64 20 76 20  | vassoqc.key.alist))).....(and.v. | 
| 1780 |  28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65    67 65 78 20 28 63 64 72 20 76 29 29 20 76 29 29  | (string-match.regex.(cdr.v)).v)) | 
| 17a0 |  29 0a 0a 28 64 65 66 75 6e 2a 20 6b 76 71 75 65    72 79 2d 3e 66 75 6e 63 20 28 71 75 65 72 79 20  | )..(defun*.kvquery->func.(query. | 
| 17c0 |  26 6b 65 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 20 20  | &key............................ | 
| 17e0 |  20 20 28 65 71 75 61 6c 2d 66 75 6e 63 20 27 6b    76 61 73 73 6f 63 3d 29 0a 20 20 20 20 20 20 20  | ..(equal-func.'kvassoc=)........ | 
| 1800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6d 61 74 63 68 2d 66 75 6e  | ......................(match-fun | 
| 1820 |  63 20 27 6b 76 6d 61 74 63 68 29 29 0a 20 20 22    54 75 72 6e 20 61 20 73 69 6d 70 6c 65 20 51 55  | c.'kvmatch))..."Turn.a.simple.QU | 
| 1840 |  45 52 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69    6e 74 6f 20 61 20 66 69 6c 74 65 72 20 66 75 6e  | ERY.expression.into.a.filter.fun | 
| 1860 |  63 74 69 6f 6e 2e 0a 0a 45 51 55 41 4c 2d 46 55    4e 43 20 69 73 20 74 68 65 20 66 75 6e 63 74 69  | ction...EQUAL-FUNC.is.the.functi | 
| 1880 |  6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e    74 73 20 74 68 65 20 65 71 75 61 6c 69 74 79 0a  | on.that.implements.the.equality. | 
| 18a0 |  70 72 65 64 69 63 61 74 65 2e 0a 0a 4d 41 54 43    48 2d 46 55 4e 43 20 69 73 20 74 68 65 20 66 75  | predicate...MATCH-FUNC.is.the.fu | 
| 18c0 |  6e 63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c    65 6d 65 6e 74 73 20 74 68 65 20 6d 61 74 63 68  | nction.that.implements.the.match | 
| 18e0 |  20 70 72 65 64 69 63 61 74 65 2e 0a 0a 54 68 65    20 71 75 65 72 79 20 6c 61 6e 67 75 61 67 65 20  | .predicate...The.query.language. | 
| 1900 |  69 73 3a 0a 0a 20 7c 20 61 20 62 20 20 2d 20 74    72 75 65 20 69 66 20 61 20 6f 72 20 62 20 69 73  | is:...|.a.b..-.true.if.a.or.b.is | 
| 1920 |  20 74 72 75 65 0a 20 26 20 61 20 62 20 20 2d 20    74 72 75 65 20 6f 6e 6c 79 20 69 66 20 61 20 61  | .true..&.a.b..-.true.only.if.a.a | 
| 1940 |  6e 64 20 62 20 69 73 20 74 72 75 65 0a 20 3d 20    61 20 62 20 20 2d 20 74 72 75 65 20 69 66 20 61  | nd.b.is.true..=.a.b..-.true.if.a | 
| 1960 |  20 65 71 75 61 6c 73 20 62 20 61 73 20 70 65 72    20 74 68 65 20 45 51 55 41 4c 2d 46 55 4e 43 0a  | .equals.b.as.per.the.EQUAL-FUNC. | 
| 1980 |  20 7e 20 61 20 62 20 20 2d 20 74 72 75 65 20 69    66 20 61 20 6d 61 74 63 68 65 73 20 62 20 61 73  | .~.a.b..-.true.if.a.matches.b.as | 
| 19a0 |  20 70 65 72 20 74 68 65 20 4d 41 54 43 48 2d 46    55 4e 43 0a 0a 53 6f 2c 20 66 6f 72 20 65 78 61  | .per.the.MATCH-FUNC..So,.for.exa | 
| 19c0 |  6d 70 6c 65 3a 0a 0a 20 28 7c 28 3d 20 61 20 62    29 28 3d 20 63 20 64 29 29 0a 0a 4d 65 61 6e 73  | mple:...(|(=.a.b)(=.c.d))..Means | 
| 19e0 |  3a 20 69 66 20 60 61 27 20 65 71 75 61 6c 73 20    60 62 27 2c 20 6f 72 20 69 66 20 60 63 27 20 65  | :.if.`a'.equals.`b',.or.if.`c'.e | 
| 1a00 |  71 75 61 6c 73 20 60 64 27 20 74 68 65 6e 20 74    68 65 0a 65 78 70 72 65 73 73 69 6f 6e 20 69 73  | quals.`d'.then.the.expression.is | 
| 1a20 |  20 74 72 75 65 2e 22 0a 20 20 28 66 6c 65 74 20    28 28 71 75 65 72 79 2d 70 61 72 73 65 20 28 71  | .true."...(flet.((query-parse.(q | 
| 1a40 |  75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 70 61 72 74 20 28 63 61  | uery)............(let.((part.(ca | 
| 1a60 |  72 20 71 75 65 72 79 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74  | r.query))..................(rest | 
| 1a80 |  20 28 63 64 72 20 71 75 65 72 79 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | .(cdr.query)))..............(con | 
| 1aa0 |  64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 65 71 20 70 61 72 74 20 27 7c 29 0a 20  | d................((eq.part.'|).. | 
| 1ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6f 6e 73 20 27 6f 72 0a 20 20 20 20 20 20 20  | ...............(cons.'or........ | 
| 1ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6c 6f 6f 70 20 66 6f 72 20 69 20 69 6e 20 72 65  | ...............(loop.for.i.in.re | 
| 1b00 |  73 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 63 6f 6c 6c  | st..........................coll | 
| 1b20 |  65 63 74 20 28 71 75 65 72 79 2d 70 61 72 73 65    20 69 29 29 29 29 0a 20 20 20 20 20 20 20 20 20  | ect.(query-parse.i)))).......... | 
| 1b40 |  20 20 20 20 20 20 28 28 65 71 20 70 61 72 74 20    27 26 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ......((eq.part.'&)............. | 
| 1b60 |  20 20 20 20 28 63 6f 6e 73 20 27 61 6e 64 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(cons.'and.................. | 
| 1b80 |  20 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 69    20 69 6e 20 72 65 73 74 0a 20 20 20 20 20 20 20  | .....(loop.for.i.in.rest........ | 
| 1ba0 |  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 71 75 65 72 79  | ..................collect.(query | 
| 1bc0 |  2d 70 61 72 73 65 20 69 29 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71  | -parse.i))))................((eq | 
| 1be0 |  20 70 61 72 74 20 27 7e 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 72  | .part.'~).................(destr | 
| 1c00 |  75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 66    69 65 6c 64 20 76 61 6c 75 65 29 20 72 65 73 74  | ucturing-bind.(field.value).rest | 
| 1c20 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6c 69 73 74 20 6d 61 74 63 68 2d 66  | ...................(list.match-f | 
| 1c40 |  75 6e 63 20 66 69 65 6c 64 20 76 61 6c 75 65 20    28 71 75 6f 74 65 20 72 65 63 6f 72 64 29 29 29  | unc.field.value.(quote.record))) | 
| 1c60 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 65 71 20 70 61 72 74 20 27 3d 29 0a 20  | )................((eq.part.'=).. | 
| 1c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69  | ...............(destructuring-bi | 
| 1ca0 |  6e 64 20 28 66 69 65 6c 64 20 76 61 6c 75 65 29    20 72 65 73 74 0a 20 20 20 20 20 20 20 20 20 20  | nd.(field.value).rest........... | 
| 1cc0 |  20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 71    75 61 6c 2d 66 75 6e 63 20 66 69 65 6c 64 20 76  | ........(list.equal-func.field.v | 
| 1ce0 |  61 6c 75 65 20 28 71 75 6f 74 65 20 72 65 63 6f    72 64 29 29 29 29 29 29 29 29 0a 20 20 20 20 28  | alue.(quote.record)))))))).....( | 
| 1d00 |  65 76 61 6c 20 60 28 6c 61 6d 62 64 61 20 28 72    65 63 6f 72 64 29 20 2c 28 71 75 65 72 79 2d 70  | eval.`(lambda.(record).,(query-p | 
| 1d20 |  61 72 73 65 20 71 75 65 72 79 29 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 32  | arse.query)))))..(defun.kvplist2 | 
| 1d40 |  67 65 74 20 28 70 6c 69 73 74 32 20 6b 65 79 77    6f 72 64 20 76 61 6c 75 65 29 0a 20 20 22 47 65  | get.(plist2.keyword.value)..."Ge | 
| 1d60 |  74 20 74 68 65 20 70 6c 69 73 74 20 77 69 74 68    20 4b 45 59 57 4f 52 44 20 2f 20 56 41 4c 55 45  | t.the.plist.with.KEYWORD./.VALUE | 
| 1d80 |  20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f    66 20 70 6c 69 73 74 73 2e 22 0a 20 20 28 6c 6f  | .from.the.list.of.plists."...(lo | 
| 1da0 |  6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20    70 6c 69 73 74 32 0a 20 20 20 20 20 69 66 20 28  | op.for.plist.in.plist2......if.( | 
| 1dc0 |  65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74    20 70 6c 69 73 74 20 6b 65 79 77 6f 72 64 29 20  | equal.(plist-get.plist.keyword). | 
| 1de0 |  76 61 6c 75 65 29 0a 20 20 20 20 20 72 65 74 75    72 6e 20 70 6c 69 73 74 29 29 0a 0a 28 64 65 66  | value)......return.plist))..(def | 
| 1e00 |  75 6e 20 6b 76 74 68 69 6e 67 2d 3e 6b 65 79 77    6f 72 64 20 28 73 74 72 2d 6f 72 2d 73 79 6d 62  | un.kvthing->keyword.(str-or-symb | 
| 1e20 |  6f 6c 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53    54 52 2d 4f 52 2d 53 59 4d 42 4f 4c 20 69 6e 74  | ol)..."Convert.STR-OR-SYMBOL.int | 
| 1e40 |  6f 20 61 20 6b 65 79 77 6f 72 64 20 73 79 6d 62    6f 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74  | o.a.keyword.symbol."...(let.((st | 
| 1e60 |  72 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64    0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79  | r..........(cond............((sy | 
| 1e80 |  6d 62 6f 6c 70 20 73 74 72 2d 6f 72 2d 73 79 6d    62 6f 6c 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d  | mbolp.str-or-symbol).(symbol-nam | 
| 1ea0 |  65 20 73 74 72 2d 6f 72 2d 73 79 6d 62 6f 6c 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73  | e.str-or-symbol))............((s | 
| 1ec0 |  74 72 69 6e 67 70 20 73 74 72 2d 6f 72 2d 73 79    6d 62 6f 6c 29 20 73 74 72 2d 6f 72 2d 73 79 6d  | tringp.str-or-symbol).str-or-sym | 
| 1ee0 |  62 6f 6c 29 29 29 29 0a 20 20 20 20 28 69 6e 74    65 72 6e 0a 20 20 20 20 20 28 69 66 20 28 65 71  | bol)))).....(intern......(if.(eq | 
| 1f00 |  20 28 61 72 65 66 20 73 74 72 20 30 29 20 3f 3a    29 20 73 74 72 20 28 63 6f 6e 63 61 74 20 22 3a  | .(aref.str.0).?:).str.(concat.": | 
| 1f20 |  22 20 73 74 72 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6b 76 61 6c 69 73 74 2d 3e 70 6c 69 73  | ".str)))))..(defun.kvalist->plis | 
| 1f40 |  74 20 28 61 6c 69 73 74 29 0a 20 20 22 43 6f 6e    76 65 72 74 20 61 6e 20 61 6c 69 73 74 20 74 6f  | t.(alist)..."Convert.an.alist.to | 
| 1f60 |  20 61 20 70 6c 69 73 74 2e 22 0a 20 20 3b 3b 20    57 68 79 20 64 6f 65 73 6e 27 74 20 65 6c 69 73  | .a.plist."...;;.Why.doesn't.elis | 
| 1f80 |  70 20 70 72 6f 76 69 64 65 20 74 68 69 73 3f 0a    20 20 28 6c 6f 6f 70 20 66 6f 72 20 70 61 69 72  | p.provide.this?...(loop.for.pair | 
| 1fa0 |  20 69 6e 20 61 6c 69 73 74 0a 20 20 20 20 20 61    70 70 65 6e 64 20 28 6c 69 73 74 0a 20 20 20 20  | .in.alist......append.(list..... | 
| 1fc0 |  20 20 20 20 20 20 20 20 20 28 6b 76 74 68 69 6e    67 2d 3e 6b 65 79 77 6f 72 64 0a 20 20 20 20 20  | .........(kvthing->keyword...... | 
| 1fe0 |  20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 61    69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .........(car.pair))............ | 
| 2000 |  20 20 28 63 64 72 20 70 61 69 72 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6b 76 61 63 6f 6e 73 20  | ..(cdr.pair))))..(defun.kvacons. | 
| 2020 |  28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22    4d 61 6b 65 20 61 6e 20 61 6c 69 73 74 20 66 72  | (&rest.args)..."Make.an.alist.fr | 
| 2040 |  6f 6d 20 74 68 65 20 70 6c 69 73 74 20 73 74 79    6c 65 20 61 72 67 73 2e 22 0a 20 20 28 6b 76 70  | om.the.plist.style.args."...(kvp | 
| 2060 |  6c 69 73 74 2d 3e 61 6c 69 73 74 20 61 72 67 73    29 29 0a 0a 28 64 65 66 75 6e 20 6b 65 79 77 6f  | list->alist.args))..(defun.keywo | 
| 2080 |  72 64 2d 3e 73 79 6d 62 6f 6c 20 28 6b 65 79 77    6f 72 64 29 0a 20 20 22 41 20 6b 65 79 77 6f 72  | rd->symbol.(keyword)..."A.keywor | 
| 20a0 |  64 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 6c 65    61 64 69 6e 67 20 77 69 74 68 20 61 20 3a 2e 0a  | d.is.a.symbol.leading.with.a.:.. | 
| 20c0 |  0a 43 6f 6e 76 65 72 74 69 6e 67 20 74 6f 20 61    20 73 79 6d 62 6f 6c 20 6d 65 61 6e 73 20 64 72  | .Converting.to.a.symbol.means.dr | 
| 20e0 |  6f 70 70 69 6e 67 20 74 68 65 20 3a 2e 22 0a 20    20 28 69 66 20 28 6b 65 79 77 6f 72 64 70 20 6b  | opping.the.:."...(if.(keywordp.k | 
| 2100 |  65 79 77 6f 72 64 29 0a 20 20 20 20 20 20 28 69    6e 74 65 72 6e 20 28 73 75 62 73 74 72 69 6e 67  | eyword).......(intern.(substring | 
| 2120 |  20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65    79 77 6f 72 64 29 20 31 29 29 0a 20 20 20 20 6b  | .(symbol-name.keyword).1)).....k | 
| 2140 |  65 79 77 6f 72 64 29 29 0a 0a 28 64 65 66 75 6e    20 6b 76 70 6c 69 73 74 2d 3e 61 6c 69 73 74 20  | eyword))..(defun.kvplist->alist. | 
| 2160 |  28 70 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c    20 6b 65 79 73 2d 61 72 65 2d 6b 65 79 77 6f 72  | (plist.&optional.keys-are-keywor | 
| 2180 |  64 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 50    4c 49 53 54 20 74 6f 20 61 6e 20 61 6c 69 73 74  | ds)..."Convert.PLIST.to.an.alist | 
| 21a0 |  2e 0a 0a 54 68 65 20 6b 65 79 73 20 61 72 65 20    65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 3a  | ...The.keys.are.expected.to.be.: | 
| 21c0 |  70 72 65 66 69 78 65 64 20 61 6e 64 20 74 68 65    20 63 6f 6c 6f 6e 73 20 61 72 65 20 72 65 6d 6f  | prefixed.and.the.colons.are.remo | 
| 21e0 |  76 65 64 0a 75 6e 6c 65 73 73 20 4b 45 59 53 2d    41 52 45 2d 4b 45 59 57 4f 52 44 53 20 69 73 20  | ved.unless.KEYS-ARE-KEYWORDS.is. | 
| 2200 |  60 74 27 2e 0a 0a 54 68 65 20 6b 65 79 73 20 69    6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20  | `t'...The.keys.in.the.resulting. | 
| 2220 |  61 6c 69 73 74 20 61 72 65 20 61 6c 77 61 79 73    20 73 79 6d 62 6f 6c 73 2e 22 0a 20 20 28 77 68  | alist.are.always.symbols."...(wh | 
| 2240 |  65 6e 20 70 6c 69 73 74 0a 20 20 20 20 28 6c 6f    6f 70 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 75  | en.plist.....(loop.for.(key.valu | 
| 2260 |  65 20 2e 20 72 65 73 74 29 20 6f 6e 20 70 6c 69    73 74 20 62 79 20 27 63 64 64 72 0a 20 20 20 20  | e...rest).on.plist.by.'cddr..... | 
| 2280 |  20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20    20 20 20 20 28 63 6f 6e 73 20 28 69 66 20 6b 65  | ...collect..........(cons.(if.ke | 
| 22a0 |  79 73 2d 61 72 65 2d 6b 65 79 77 6f 72 64 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ys-are-keywords................. | 
| 22c0 |  20 20 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6b 65 79 77 6f  | ...key....................(keywo | 
| 22e0 |  72 64 2d 3e 73 79 6d 62 6f 6c 20 6b 65 79 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rd->symbol.key))................ | 
| 2300 |  76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 6b 76 61 6c 69 73 74 32 2d 3e 70 6c 69 73  | value))))..(defun.kvalist2->plis | 
| 2320 |  74 20 28 61 6c 69 73 74 32 29 0a 20 20 22 43 6f    6e 76 65 72 74 20 61 20 6c 69 73 74 20 6f 66 20  | t.(alist2)..."Convert.a.list.of. | 
| 2340 |  61 6c 69 73 74 73 20 74 6f 6f 20 61 20 6c 69 73    74 20 6f 66 20 70 6c 69 73 74 73 2e 22 0a 20 20  | alists.too.a.list.of.plists."... | 
| 2360 |  28 6c 6f 6f 70 20 66 6f 72 20 61 6c 69 73 74 20    69 6e 20 61 6c 69 73 74 32 0a 20 20 20 20 20 20  | (loop.for.alist.in.alist2....... | 
| 2380 |  20 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28    6c 69 73 74 20 28 6b 76 61 6c 69 73 74 2d 3e 70  | .append........(list.(kvalist->p | 
| 23a0 |  6c 69 73 74 20 61 6c 69 73 74 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e  | list.alist))))..(defun.kvalist-> | 
| 23c0 |  6b 65 79 73 20 28 61 6c 69 73 74 29 0a 20 20 22    47 65 74 20 6a 75 73 74 20 74 68 65 20 6b 65 79  | keys.(alist)..."Get.just.the.key | 
| 23e0 |  73 20 66 72 6f 6d 20 74 68 65 20 61 6c 69 73 74    2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61  | s.from.the.alist."...(mapcar.(la | 
| 2400 |  6d 62 64 61 20 28 70 61 69 72 29 20 28 63 61 72    20 70 61 69 72 29 29 20 61 6c 69 73 74 29 29 0a  | mbda.(pair).(car.pair)).alist)). | 
| 2420 |  0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d    3e 76 61 6c 75 65 73 20 28 61 6c 69 73 74 29 0a  | .(defun.kvalist->values.(alist). | 
| 2440 |  20 20 22 47 65 74 20 6a 75 73 74 20 74 68 65 20    76 61 6c 75 65 73 20 66 72 6f 6d 20 74 68 65 20  | .."Get.just.the.values.from.the. | 
| 2460 |  61 6c 69 73 74 2e 22 0a 20 20 28 6d 61 70 63 61    72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29  | alist."...(mapcar.(lambda.(pair) | 
| 2480 |  20 28 63 64 72 20 70 61 69 72 29 29 20 61 6c 69    73 74 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61  | .(cdr.pair)).alist))..(defun.kva | 
| 24a0 |  6c 69 73 74 2d 73 6f 72 74 20 28 61 6c 69 73 74    20 70 72 65 64 29 0a 20 20 22 53 6f 72 74 20 41  | list-sort.(alist.pred)..."Sort.A | 
| 24c0 |  4c 49 53 54 20 28 62 79 20 6b 65 79 29 20 77 69    74 68 20 50 52 45 44 2e 22 0a 20 20 28 73 6f 72  | LIST.(by.key).with.PRED."...(sor | 
| 24e0 |  74 20 61 6c 69 73 74 20 28 6c 61 6d 62 64 61 20    28 61 20 62 29 20 28 66 75 6e 63 61 6c 6c 20 70  | t.alist.(lambda.(a.b).(funcall.p | 
| 2500 |  72 65 64 20 28 63 61 72 20 61 29 20 28 63 61 72    20 62 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | red.(car.a).(car.b)))))..(defun. | 
| 2520 |  6b 76 61 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d    76 61 6c 75 65 20 28 61 6c 69 73 74 20 70 72 65  | kvalist-sort-by-value.(alist.pre | 
| 2540 |  64 29 0a 20 20 22 53 6f 72 74 20 41 4c 49 53 54    20 62 79 20 76 61 6c 75 65 20 77 69 74 68 20 50  | d)..."Sort.ALIST.by.value.with.P | 
| 2560 |  52 45 44 2e 22 0a 20 20 28 73 6f 72 74 20 61 6c    69 73 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62  | RED."...(sort.alist.(lambda.(a.b | 
| 2580 |  29 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20    28 63 64 72 20 61 29 20 28 63 64 72 20 62 29 29  | ).(funcall.pred.(cdr.a).(cdr.b)) | 
| 25a0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c    69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73  | )))..(defun.kvalist->filter-keys | 
| 25c0 |  20 28 61 6c 69 73 74 20 26 72 65 73 74 20 6b 65    79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68  | .(alist.&rest.keys)..."Return.th | 
| 25e0 |  65 20 41 4c 49 53 54 20 66 69 6c 74 65 72 65 64    20 74 6f 20 74 68 65 20 4b 45 59 53 20 6c 69 73  | e.ALIST.filtered.to.the.KEYS.lis | 
| 2600 |  74 2e 0a 0a 4f 6e 6c 79 20 70 61 69 72 73 20 77    68 65 72 65 20 74 68 65 20 63 61 72 20 69 73 20  | t...Only.pairs.where.the.car.is. | 
| 2620 |  61 20 60 6d 65 6d 62 65 72 27 20 6f 66 20 4b 45    59 53 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72  | a.`member'.of.KEYS.will.be.retur | 
| 2640 |  6e 65 64 2e 22 0a 20 20 28 6c 6f 6f 70 20 66 6f    72 20 61 20 69 6e 20 61 6c 69 73 74 0a 20 20 20  | ned."...(loop.for.a.in.alist.... | 
| 2660 |  20 20 69 66 20 28 6d 65 6d 62 65 72 20 28 63 61    72 20 61 29 20 6b 65 79 73 29 0a 20 20 20 20 20  | ..if.(member.(car.a).keys)...... | 
| 2680 |  63 6f 6c 6c 65 63 74 20 61 29 29 0a 0a 28 64 65    66 75 6e 20 6b 76 70 6c 69 73 74 2d 3e 66 69 6c  | collect.a))..(defun.kvplist->fil | 
| 26a0 |  74 65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74 20    26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 46  | ter-keys.(plist.&rest.keys)..."F | 
| 26c0 |  69 6c 74 65 72 20 74 68 65 20 70 6c 69 73 74 20    74 6f 20 6a 75 73 74 20 74 68 6f 73 65 20 6d 61  | ilter.the.plist.to.just.those.ma | 
| 26e0 |  74 63 68 69 6e 67 20 4b 45 59 53 2e 0a 0a 60 6b    76 61 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b  | tching.KEYS...`kvalist->filter-k | 
| 2700 |  65 79 73 27 20 69 73 20 61 63 74 75 61 6c 6c 79    20 75 73 65 64 20 74 6f 20 64 6f 20 74 68 69 73  | eys'.is.actually.used.to.do.this | 
| 2720 |  20 77 6f 72 6b 2e 22 0a 20 20 28 6c 65 74 20 28    28 73 79 6d 6b 65 79 73 0a 20 20 20 20 20 20 20  | .work."...(let.((symkeys........ | 
| 2740 |  20 20 28 6c 6f 6f 70 20 66 6f 72 20 6b 20 69 6e    20 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20  | ..(loop.for.k.in.keys........... | 
| 2760 |  20 20 63 6f 6c 6c 65 63 74 20 28 6c 65 74 20 28    28 73 74 72 6b 65 79 20 28 73 79 6d 62 6f 6c 2d  | ..collect.(let.((strkey.(symbol- | 
| 2780 |  6e 61 6d 65 20 6b 29 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  | name.k)))....................... | 
| 27a0 |  28 69 66 20 28 65 71 75 61 6c 20 28 73 75 62 73    74 72 69 6e 67 20 73 74 72 6b 65 79 20 30 20 31  | (if.(equal.(substring.strkey.0.1 | 
| 27c0 |  29 20 22 3a 22 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  | ).":").......................... | 
| 27e0 |  20 28 69 6e 74 65 72 6e 20 28 73 75 62 73 74 72    69 6e 67 20 73 74 72 6b 65 79 20 31 29 29 0a 20  | .(intern.(substring.strkey.1)).. | 
| 2800 |  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 6b 29 29 29 29 29 0a  | .........................k))))). | 
| 2820 |  20 20 20 20 28 6b 76 61 6c 69 73 74 2d 3e 70 6c    69 73 74 0a 20 20 20 20 20 28 61 70 70 6c 79 0a  | ....(kvalist->plist......(apply. | 
| 2840 |  20 20 20 20 20 20 27 6b 76 61 6c 69 73 74 2d 3e    66 69 6c 74 65 72 2d 6b 65 79 73 0a 20 20 20 20  | ......'kvalist->filter-keys..... | 
| 2860 |  20 20 28 63 6f 6e 73 20 28 6b 76 70 6c 69 73 74    2d 3e 61 6c 69 73 74 20 70 6c 69 73 74 29 20 73  | ..(cons.(kvplist->alist.plist).s | 
| 2880 |  79 6d 6b 65 79 73 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6b 76 70 6c 69 73 74 32 2d 3e 66 69  | ymkeys)))))..(defun.kvplist2->fi | 
| 28a0 |  6c 74 65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74    32 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20  | lter-keys.(plist2.&rest.keys)... | 
| 28c0 |  22 52 65 74 75 72 6e 20 74 68 65 20 50 4c 49 53    54 32 20 28 61 20 6c 69 73 74 20 6f 66 20 70 6c  | "Return.the.PLIST2.(a.list.of.pl | 
| 28e0 |  69 73 74 73 29 20 66 69 6c 74 65 72 65 64 20 74    6f 20 74 68 65 20 4b 45 59 53 2e 22 0a 20 20 28  | ists).filtered.to.the.KEYS."...( | 
| 2900 |  6c 6f 6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69    6e 20 70 6c 69 73 74 32 0a 20 20 20 20 20 63 6f  | loop.for.plist.in.plist2......co | 
| 2920 |  6c 6c 65 63 74 20 28 61 70 70 6c 79 20 27 6b 76    70 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65  | llect.(apply.'kvplist->filter-ke | 
| 2940 |  79 73 20 28 63 6f 6e 73 20 70 6c 69 73 74 20 6b    65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | ys.(cons.plist.keys))))..(defun. | 
| 2960 |  6b 76 61 6c 69 73 74 32 2d 3e 66 69 6c 74 65 72    2d 6b 65 79 73 20 28 61 6c 69 73 74 32 20 26 72  | kvalist2->filter-keys.(alist2.&r | 
| 2980 |  65 73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74    75 72 6e 20 74 68 65 20 41 4c 49 53 54 32 20 28  | est.keys)..."Return.the.ALIST2.( | 
| 29a0 |  61 20 6c 69 73 74 20 6f 66 20 61 6c 69 73 74 73    29 20 66 69 6c 74 65 72 65 64 20 74 6f 20 74 68  | a.list.of.alists).filtered.to.th | 
| 29c0 |  65 20 4b 45 59 53 2e 22 0a 20 20 28 6c 6f 6f 70    20 66 6f 72 20 61 6c 69 73 74 20 69 6e 20 61 6c  | e.KEYS."...(loop.for.alist.in.al | 
| 29e0 |  69 73 74 32 0a 20 20 20 20 20 63 6f 6c 6c 65 63    74 20 28 61 70 70 6c 79 20 27 6b 76 61 6c 69 73  | ist2......collect.(apply.'kvalis | 
| 2a00 |  74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 20 28    63 6f 6e 73 20 61 6c 69 73 74 20 6b 65 79 73 29  | t->filter-keys.(cons.alist.keys) | 
| 2a20 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c    69 73 74 32 2d 3e 61 6c 69 73 74 20 28 61 6c 69  | )))..(defun.kvalist2->alist.(ali | 
| 2a40 |  73 74 32 20 63 61 72 2d 6b 65 79 20 63 64 72 2d    6b 65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72  | st2.car-key.cdr-key.&optional.pr | 
| 2a60 |  6f 70 65 72 29 0a 20 20 22 52 65 64 75 63 65 20    74 68 65 20 41 4c 49 53 54 32 20 28 61 20 6c 69  | oper)..."Reduce.the.ALIST2.(a.li | 
| 2a80 |  73 74 20 6f 66 20 61 6c 69 73 74 73 29 20 74 6f    20 61 20 73 69 6e 67 6c 65 20 61 6c 69 73 74 2e  | st.of.alists).to.a.single.alist. | 
| 2aa0 |  0a 0a 43 41 52 2d 4b 45 59 20 69 73 20 74 68 65    20 6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c 69  | ..CAR-KEY.is.the.key.of.each.ali | 
| 2ac0 |  73 74 20 74 6f 20 75 73 65 20 61 73 20 74 68 65    20 72 65 73 75 6c 74 69 6e 67 20 6b 65 79 20 61  | st.to.use.as.the.resulting.key.a | 
| 2ae0 |  6e 64 0a 43 44 52 2d 4b 45 59 20 69 73 20 74 68    65 20 6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c  | nd.CDR-KEY.is.the.key.of.each.al | 
| 2b00 |  69 73 74 20 74 6f 20 75 73 65 72 20 61 73 20 74    68 65 20 72 65 73 75 6c 74 69 6e 67 20 63 64 72  | ist.to.user.as.the.resulting.cdr | 
| 2b20 |  2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20    69 66 20 43 41 52 2d 4b 45 59 20 69 73 20 60 65  | ...For.example,.if.CAR-KEY.is.`e | 
| 2b40 |  6d 61 69 6c 27 20 61 6e 64 20 43 44 52 2d 4b 45    59 20 69 73 20 60 6e 61 6d 65 27 20 74 68 65 0a  | mail'.and.CDR-KEY.is.`name'.the. | 
| 2b60 |  72 65 63 6f 72 64 73 3a 0a 0a 20 20 27 28 28 75    73 65 72 20 2e 20 5c 22 6e 69 63 5c 22 29 28 6e  | records:....'((user...\"nic\")(n | 
| 2b80 |  61 6d 65 20 2e 20 5c 22 4e 69 63 5c 22 29 28 65    6d 61 69 6c 20 2e 20 5c 22 6e 69 63 40 64 6f 6d  | ame...\"Nic\")(email...\"nic@dom | 
| 2ba0 |  61 69 6e 5c 22 29 0a 20 20 20 20 28 75 73 65 72    20 2e 20 5c 22 6a 69 6d 5c 22 29 28 6e 61 6d 65  | ain\").....(user...\"jim\")(name | 
| 2bc0 |  20 2e 20 5c 22 4a 69 6d 5c 22 29 28 65 6d 61 69    6c 20 2e 20 5c 22 6a 69 6d 40 64 6f 6d 61 69 6e  | ...\"Jim\")(email...\"jim@domain | 
| 2be0 |  5c 22 29 29 0a 0a 63 6f 75 6c 64 20 62 65 20 72    65 64 75 63 65 64 20 74 6f 3a 0a 0a 20 20 27 28  | \"))..could.be.reduced.to:....'( | 
| 2c00 |  28 5c 22 6e 69 63 40 64 6f 6d 61 69 6e 5c 22 20    2e 20 5c 22 4e 69 63 5c 22 29 0a 20 20 20 20 28  | (\"nic@domain\"...\"Nic\").....( | 
| 2c20 |  5c 22 6a 69 6d 40 64 6f 6d 61 69 6e 5c 22 20 2e    20 5c 22 4a 69 63 5c 22 29 29 0a 0a 49 66 20 50  | \"jim@domain\"...\"Jic\"))..If.P | 
| 2c40 |  52 4f 50 45 52 20 69 73 20 60 74 27 20 74 68 65    6e 20 74 68 65 20 61 6c 69 73 74 20 69 73 20 61  | ROPER.is.`t'.then.the.alist.is.a | 
| 2c60 |  20 6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 20    6c 69 73 74 73 2c 20 6e 6f 74 0a 63 6f 6e 73 20  | .list.of.proper.lists,.not.cons. | 
| 2c80 |  63 65 6c 6c 73 2e 22 0a 20 20 28 6c 6f 6f 70 20    66 6f 72 20 61 6c 69 73 74 20 69 6e 20 61 6c 69  | cells."...(loop.for.alist.in.ali | 
| 2ca0 |  73 74 32 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65    63 74 20 28 61 70 70 6c 79 20 28 69 66 20 70 72  | st2........collect.(apply.(if.pr | 
| 2cc0 |  6f 70 65 72 20 27 6c 69 73 74 20 27 63 6f 6e 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oper.'list.'cons)............... | 
| 2ce0 |  20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........(list................... | 
| 2d00 |  20 20 20 20 20 28 61 73 73 6f 63 2d 64 65 66 61    75 6c 74 20 63 61 72 2d 6b 65 79 20 61 6c 69 73  | .....(assoc-default.car-key.alis | 
| 2d20 |  74 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 28 61 73 73 6f 63  | t)........................(assoc | 
| 2d40 |  2d 64 65 66 61 75 6c 74 20 63 64 72 2d 6b 65 79    20 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65  | -default.cdr-key.alist)))))..(de | 
| 2d60 |  66 75 6e 20 6b 76 61 6c 69 73 74 2d 6b 65 79 73    2d 3e 2a 20 28 61 6c 69 73 74 20 66 6e 29 0a 20  | fun.kvalist-keys->*.(alist.fn).. | 
| 2d80 |  20 22 43 6f 6e 76 65 72 74 20 74 68 65 20 6b 65    79 73 20 6f 66 20 41 4c 49 53 54 20 74 68 72 6f  | ."Convert.the.keys.of.ALIST.thro | 
| 2da0 |  75 67 68 20 46 4e 2e 22 0a 20 20 28 6d 61 70 63    61 72 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 70  | ugh.FN."...(mapcar....(lambda.(p | 
| 2dc0 |  61 69 72 29 0a 20 20 20 20 20 28 63 6f 6e 73 0a    20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66  | air)......(cons.......(funcall.f | 
| 2de0 |  6e 20 28 63 61 72 20 70 61 69 72 29 29 0a 20 20    20 20 20 20 28 63 64 72 20 70 61 69 72 29 29 29  | n.(car.pair)).......(cdr.pair))) | 
| 2e00 |  0a 20 20 20 61 6c 69 73 74 29 29 0a 0a 28 64 65    66 75 6e 2a 20 6b 76 61 6c 69 73 74 2d 6b 65 79  | ....alist))..(defun*.kvalist-key | 
| 2e20 |  73 2d 3e 73 79 6d 62 6f 6c 73 20 28 61 6c 69 73    74 20 26 6b 65 79 20 28 66 69 72 73 74 2d 66 6e  | s->symbols.(alist.&key.(first-fn | 
| 2e40 |  20 27 69 64 65 6e 74 69 74 79 29 29 0a 20 20 22    43 6f 6e 76 65 72 74 20 74 68 65 20 6b 65 79 73  | .'identity))..."Convert.the.keys | 
| 2e60 |  20 6f 66 20 41 4c 49 53 54 20 69 6e 74 6f 20 73    79 6d 62 6f 6c 73 2e 0a 0a 49 66 20 6b 65 79 20  | .of.ALIST.into.symbols...If.key. | 
| 2e80 |  70 61 72 61 6d 65 74 65 72 20 46 49 52 53 54 2d    46 4e 20 69 73 20 70 72 65 73 65 6e 74 20 69 74  | parameter.FIRST-FN.is.present.it | 
| 2ea0 |  20 73 68 6f 75 6c 64 20 62 65 20 61 20 66 75 6e    63 74 69 6f 6e 0a 77 68 69 63 68 20 77 69 6c 6c  | .should.be.a.function.which.will | 
| 2ec0 |  20 62 65 20 75 73 65 64 20 74 6f 20 66 69 72 73    74 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 20  | .be.used.to.first.transform.the. | 
| 2ee0 |  73 74 72 69 6e 67 20 6b 65 79 2e 20 20 41 20 70    6f 70 75 6c 61 72 0a 63 68 6f 69 63 65 20 6d 69  | string.key...A.popular.choice.mi | 
| 2f00 |  67 68 74 20 62 65 20 60 64 6f 77 6e 63 61 73 65    27 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74  | ght.be.`downcase'.for.example,.t | 
| 2f20 |  6f 20 63 61 75 73 65 20 61 6c 6c 20 73 79 6d 62    6f 6c 20 6b 65 79 73 0a 74 6f 20 62 65 20 6c 6f  | o.cause.all.symbol.keys.to.be.lo | 
| 2f40 |  77 65 72 2d 63 61 73 65 2e 22 0a 20 20 28 6b 76    61 6c 69 73 74 2d 6b 65 79 73 2d 3e 2a 0a 20 20  | wer-case."...(kvalist-keys->*... | 
| 2f60 |  20 61 6c 69 73 74 0a 20 20 20 28 6c 61 6d 62 64    61 20 28 6b 65 79 29 0a 20 20 20 20 20 28 69 6e  | .alist....(lambda.(key)......(in | 
| 2f80 |  74 65 72 6e 20 28 66 75 6e 63 61 6c 6c 20 66 69    72 73 74 2d 66 6e 20 28 66 6f 72 6d 61 74 20 22  | tern.(funcall.first-fn.(format." | 
| 2fa0 |  25 73 22 20 6b 65 79 29 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6b 76 61 6c 69 73 74 32 2d 66  | %s".key))))))..(defun.kvalist2-f | 
| 2fc0 |  69 6c 74 65 72 20 28 61 6c 69 73 74 32 20 66 6e    29 0a 20 20 22 46 69 6c 74 65 72 20 74 68 65 20  | ilter.(alist2.fn)..."Filter.the. | 
| 2fe0 |  6c 69 73 74 20 6f 66 20 61 6c 69 73 74 73 20 77    69 74 68 20 46 4e 2e 22 0a 20 20 28 6c 65 74 20  | list.of.alists.with.FN."...(let. | 
| 3000 |  28 76 61 6c 75 65 29 0a 20 20 20 20 28 6c 6f 6f    70 20 66 6f 72 20 72 65 63 20 69 6e 20 61 6c 69  | (value).....(loop.for.rec.in.ali | 
| 3020 |  73 74 32 0a 20 20 20 20 20 20 20 64 6f 20 28 73    65 74 71 20 76 61 6c 75 65 20 28 66 75 6e 63 61  | st2........do.(setq.value.(funca | 
| 3040 |  6c 6c 20 66 6e 20 72 65 63 29 29 0a 20 20 20 20    20 20 20 69 66 20 76 61 6c 75 65 0a 20 20 20 20  | ll.fn.rec))........if.value..... | 
| 3060 |  20 20 20 63 6f 6c 6c 65 63 74 20 72 65 63 29 29    29 0a 0a 28 64 65 66 75 6e 20 6b 76 69 64 65 6e  | ...collect.rec)))..(defun.kviden | 
| 3080 |  74 69 74 79 20 28 61 20 62 29 0a 20 20 22 52 65    74 75 72 6e 73 20 61 20 63 6f 6e 73 20 6f 66 20  | tity.(a.b)..."Returns.a.cons.of. | 
| 30a0 |  41 20 42 2e 22 0a 20 20 28 63 6f 6e 73 20 61 20    62 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 63 61  | A.B."...(cons.a.b))..(defun.kvca | 
| 30c0 |  72 20 28 61 20 62 29 0a 20 20 22 47 69 76 65 6e    20 41 20 42 20 72 65 74 75 72 6e 73 20 41 2e 22  | r.(a.b)..."Given.A.B.returns.A." | 
| 30e0 |  0a 20 20 61 29 0a 0a 28 64 65 66 75 6e 20 6b 76    63 64 72 20 28 61 20 62 29 0a 20 20 22 47 69 76  | ...a)..(defun.kvcdr.(a.b)..."Giv | 
| 3100 |  65 6e 20 41 20 42 20 72 65 74 75 72 6e 73 20 42    2e 22 0a 20 20 62 29 0a 0a 28 64 65 66 75 6e 20  | en.A.B.returns.B."...b)..(defun. | 
| 3120 |  6b 76 63 6d 70 20 28 61 20 62 29 0a 20 20 22 44    6f 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f  | kvcmp.(a.b)..."Do.a.comparison.o | 
| 3140 |  66 20 74 68 65 20 74 77 6f 20 76 61 6c 75 65 73    20 75 73 69 6e 67 20 70 72 69 6e 74 61 62 6c 65  | f.the.two.values.using.printable | 
| 3160 |  20 73 79 6e 74 61 78 2e 0a 0a 55 73 65 20 74 68    69 73 20 61 73 20 74 68 65 20 66 75 6e 63 74 69  | .syntax...Use.this.as.the.functi | 
| 3180 |  6f 6e 20 74 6f 20 70 61 73 73 20 74 6f 20 60 73    6f 72 74 27 2e 22 0a 20 20 28 73 74 72 69 6e 67  | on.to.pass.to.`sort'."...(string | 
| 31a0 |  2d 6c 65 73 73 70 20 28 69 66 20 61 20 28 66 6f    72 6d 61 74 20 22 25 53 22 20 61 29 20 22 22 29  | -lessp.(if.a.(format."%S".a)."") | 
| 31c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 62 20 28 66 6f 72 6d 61 74 20 22  | .................(if.b.(format." | 
| 31e0 |  25 53 22 20 62 29 20 22 22 29 29 29 0a 0a 28 64    65 66 75 6e 20 6b 76 71 73 6f 72 74 20 28 6c 73  | %S".b)."")))..(defun.kvqsort.(ls | 
| 3200 |  74 29 0a 20 20 22 44 6f 20 61 20 73 6f 72 74 20    75 73 69 6e 67 20 60 6b 76 63 6d 70 27 2e 22 0a  | t)..."Do.a.sort.using.`kvcmp'.". | 
| 3220 |  20 20 28 73 6f 72 74 20 6c 73 74 20 27 6b 76 63    6d 70 29 29 0a 0a 28 70 72 6f 67 6e 0a 20 20 28  | ..(sort.lst.'kvcmp))..(progn...( | 
| 3240 |  70 75 74 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79    0a 20 20 20 20 20 20 20 27 65 72 72 6f 72 2d 63  | put.'kvalist-key........'error-c | 
| 3260 |  6f 6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 20    20 27 28 65 72 72 6f 72 29 29 0a 20 20 28 70 75  | onditions........'(error))...(pu | 
| 3280 |  74 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 0a 20    20 20 20 20 20 20 27 65 72 72 6f 72 2d 6d 65 73  | t.'kvalist-key........'error-mes | 
| 32a0 |  73 61 67 65 0a 20 20 20 20 20 20 20 22 4e 6f 20    73 75 63 68 20 6b 65 79 20 66 6f 75 6e 64 20 69  | sage........"No.such.key.found.i | 
| 32c0 |  6e 20 61 6c 69 73 74 2e 22 29 29 0a 0a 28 64 65    66 75 6e 20 6b 76 61 6c 69 73 74 2d 73 65 74 2d  | n.alist."))..(defun.kvalist-set- | 
| 32e0 |  76 61 6c 75 65 21 20 28 61 6c 69 73 74 20 6b 65    79 20 76 61 6c 75 65 29 0a 20 20 22 44 65 73 74  | value!.(alist.key.value)..."Dest | 
| 3300 |  72 75 63 74 69 76 65 6c 79 20 73 65 74 20 74 68    65 20 76 61 6c 75 65 20 6f 66 20 4b 45 59 20 74  | ructively.set.the.value.of.KEY.t | 
| 3320 |  6f 20 56 41 4c 55 45 20 69 6e 20 41 4c 49 53 54    2e 0a 0a 49 66 20 74 68 65 20 61 73 73 6f 63 20  | o.VALUE.in.ALIST...If.the.assoc. | 
| 3340 |  69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 74 68 69    73 20 61 64 64 73 20 69 74 20 74 6f 20 61 6c 69  | is.not.found.this.adds.it.to.ali | 
| 3360 |  73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 65    6c 6c 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c  | st."...(let.((cell.(assoc.key.al | 
| 3380 |  69 73 74 29 29 29 0a 20 20 20 20 28 69 66 20 28    63 6f 6e 73 70 20 63 65 6c 6c 29 0a 20 20 20 20  | ist))).....(if.(consp.cell)..... | 
| 33a0 |  20 20 20 20 28 73 65 74 63 64 72 20 63 65 6c 6c    20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20  | ....(setcdr.cell.value)......... | 
| 33c0 |  3b 3b 20 45 6c 73 65 20 77 68 61 74 20 74 6f 20    64 6f 3f 0a 20 20 20 20 20 20 20 20 28 73 69 67  | ;;.Else.what.to.do?.........(sig | 
| 33e0 |  6e 61 6c 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79    20 28 6c 69 73 74 20 61 6c 69 73 74 20 6b 65 79  | nal.'kvalist-key.(list.alist.key | 
| 3400 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76    64 6f 74 61 73 73 6f 63 2d 66 6e 20 28 65 78 70  | )))))..(defun.kvdotassoc-fn.(exp | 
| 3420 |  72 20 74 61 62 6c 65 20 66 75 6e 63 29 0a 20 20    22 55 73 65 20 74 68 65 20 64 6f 74 74 65 64 20  | r.table.func)..."Use.the.dotted. | 
| 3440 |  45 58 50 52 20 74 6f 20 61 63 63 65 73 73 20 64    65 65 70 6c 79 20 6e 65 73 74 65 64 20 64 61 74  | EXPR.to.access.deeply.nested.dat | 
| 3460 |  61 20 69 6e 20 54 41 42 4c 45 2e 0a 0a 45 58 50    52 20 69 73 20 61 20 64 6f 74 20 73 65 70 61 72  | a.in.TABLE...EXPR.is.a.dot.separ | 
| 3480 |  61 74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 2c    20 65 69 74 68 65 72 20 61 20 73 79 6d 62 6f 6c  | ated.expression,.either.a.symbol | 
| 34a0 |  20 6f 72 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f    72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 5c 22 61  | .or.a.string..For.example:...\"a | 
| 34c0 |  2e 62 2e 63 5c 22 0a 0a 6f 72 3a 0a 0a 20 27 61    2e 62 2e 63 0a 0a 49 66 20 74 68 65 20 45 58 50  | .b.c\"..or:...'a.b.c..If.the.EXP | 
| 34e0 |  52 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68    65 6e 20 74 68 65 20 6b 65 79 73 20 6f 66 20 74  | R.is.a.symbol.then.the.keys.of.t | 
| 3500 |  68 65 20 61 6c 69 73 74 20 61 72 65 20 61 6c 73    6f 0a 65 78 70 65 63 74 65 64 20 74 6f 20 62 65  | he.alist.are.also.expected.to.be | 
| 3520 |  20 73 79 6d 62 6f 6c 73 2e 0a 0a 54 41 42 4c 45    20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20  | .symbols...TABLE.is.expected.to. | 
| 3540 |  62 65 20 61 6e 20 61 6c 69 73 74 20 63 75 72 72    65 6e 74 6c 79 2e 0a 0a 46 55 4e 43 20 69 73 20  | be.an.alist.currently...FUNC.is. | 
| 3560 |  73 6f 6d 65 20 73 6f 72 74 20 6f 66 20 60 61 73    73 6f 63 27 20 6c 69 6b 65 20 66 75 6e 63 74 69  | some.sort.of.`assoc'.like.functi | 
| 3580 |  6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74    61 74 65 20 74 61 62 6c 65 29 0a 20 20 20 20 20  | on."...(let.((state.table)...... | 
| 35a0 |  20 20 20 28 70 61 72 74 73 0a 20 20 20 20 20 20    20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20  | ...(parts..........(if.(symbolp. | 
| 35c0 |  65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20  | expr)..............(mapcar...... | 
| 35e0 |  20 20 20 20 20 20 20 20 20 27 69 6e 74 65 72 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .........'intern...............( | 
| 3600 |  73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 73 79    6d 62 6f 6c 2d 6e 61 6d 65 20 65 78 70 72 29 20  | split-string.(symbol-name.expr). | 
| 3620 |  22 5c 5c 2e 22 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 45 6c 73 65 20 69 74 27  | "\\."))..............;;.Else.it' | 
| 3640 |  73 20 61 20 73 74 72 69 6e 67 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73  | s.a.string..............(split-s | 
| 3660 |  74 72 69 6e 67 20 65 78 70 72 20 22 5c 5c 2e 22    29 29 29 29 0a 20 20 20 20 28 63 61 74 63 68 20  | tring.expr."\\.")))).....(catch. | 
| 3680 |  27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68    69 6c 65 20 28 6c 69 73 74 70 20 70 61 72 74 73  | 'break.......(while.(listp.parts | 
| 36a0 |  29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28    28 74 72 61 76 65 72 73 65 20 28 66 75 6e 63 61  | ).........(let.((traverse.(funca | 
| 36c0 |  6c 6c 20 66 75 6e 63 20 28 63 61 72 20 70 61 72    74 73 29 20 73 74 61 74 65 29 29 29 0a 20 20 20  | ll.func.(car.parts).state))).... | 
| 36e0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72    74 73 20 28 63 64 72 20 70 61 72 74 73 29 29 0a  | .......(setq.parts.(cdr.parts)). | 
| 3700 |  20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 61    72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..........(if.parts............. | 
| 3720 |  20 20 28 73 65 74 71 20 73 74 61 74 65 20 28 63    64 72 20 74 72 61 76 65 72 73 65 29 29 0a 20 20  | ..(setq.state.(cdr.traverse))... | 
| 3740 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 62 72 65 61 6b 20 28 63 64 72 20 74  | ............(throw.'break.(cdr.t | 
| 3760 |  72 61 76 65 72 73 65 29 29 29 29 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73  | raverse))))))))..(defun.kvdotass | 
| 3780 |  6f 63 20 28 65 78 70 72 20 74 61 62 6c 65 29 0a    20 20 22 44 6f 74 74 65 64 20 65 78 70 72 65 73  | oc.(expr.table)..."Dotted.expres | 
| 37a0 |  73 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 77 69    74 68 20 60 61 73 73 6f 63 27 2e 22 0a 20 20 28  | sion.handling.with.`assoc'."...( | 
| 37c0 |  6b 76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 65 78    70 72 20 74 61 62 6c 65 20 27 61 73 73 6f 63 29  | kvdotassoc-fn.expr.table.'assoc) | 
| 37e0 |  29 0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61    73 73 71 20 28 65 78 70 72 20 74 61 62 6c 65 29  | )..(defun.kvdotassq.(expr.table) | 
| 3800 |  0a 20 20 22 44 6f 74 74 65 64 20 65 78 70 72 65    73 73 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 77  | ..."Dotted.expression.handling.w | 
| 3820 |  69 74 68 20 60 61 73 73 71 27 2e 22 0a 20 20 28    6b 76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 65 78  | ith.`assq'."...(kvdotassoc-fn.ex | 
| 3840 |  70 72 20 74 61 62 6c 65 20 27 61 73 73 71 29 29    0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73  | pr.table.'assq))..(defun.kvdotas | 
| 3860 |  73 6f 63 3d 20 28 65 78 70 72 20 76 61 6c 75 65    20 74 61 62 6c 65 29 0a 20 20 28 6c 65 74 20 28  | soc=.(expr.value.table)...(let.( | 
| 3880 |  28 76 20 28 6b 76 64 6f 74 61 73 73 6f 63 20 65    78 70 72 20 74 61 62 6c 65 29 29 29 0a 20 20 20  | (v.(kvdotassoc.expr.table))).... | 
| 38a0 |  20 28 61 6e 64 20 76 20 28 65 71 75 61 6c 20 76    20 76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64  | .(and.v.(equal.v.value).v)))..(d | 
| 38c0 |  65 66 61 6c 69 61 73 20 27 64 6f 74 61 73 73 6f    63 20 27 6b 76 64 6f 74 61 73 73 6f 63 29 0a 28  | efalias.'dotassoc.'kvdotassoc).( | 
| 38e0 |  64 65 66 61 6c 69 61 73 20 27 64 6f 74 61 73 73    71 20 27 6b 76 64 6f 74 61 73 73 71 29 0a 0a 3b  | defalias.'dotassq.'kvdotassq)..; | 
| 3900 |  3b 20 54 68 61 6e 6b 20 79 6f 75 20 74 61 79 6c    61 6e 75 62 20 66 6f 72 20 74 68 69 73 20 77 6f  | ;.Thank.you.taylanub.for.this.wo | 
| 3920 |  6e 64 65 72 66 75 6c 20 61 62 73 74 72 61 63 74    69 6f 6e 2e 0a 28 64 65 66 6d 61 63 72 6f 20 6b  | nderful.abstraction..(defmacro.k | 
| 3940 |  76 2d 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67    2d 6d 61 70 20 28 6d 61 70 2d 66 75 6e 63 74 69  | v--destructuring-map.(map-functi | 
| 3960 |  6f 6e 20 61 72 67 73 20 73 65 71 75 65 6e 63 65    20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22  | on.args.sequence.&rest.body)..." | 
| 3980 |  48 65 6c 70 65 72 20 6d 61 63 72 6f 20 66 6f 72    20 60 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d  | Helper.macro.for.`destructuring- | 
| 39a0 |  6d 61 70 63 61 72 27 20 61 6e 64 20 60 64 65 73    74 72 75 63 74 75 72 69 6e 67 2d 6d 61 70 27 2e  | mapcar'.and.`destructuring-map'. | 
| 39c0 |  22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e    64 65 6e 74 20 33 29 29 0a 20 20 28 6c 65 74 20  | "...(declare.(indent.3))...(let. | 
| 39e0 |  28 28 65 6e 74 72 79 20 28 67 65 6e 73 79 6d 29    29 29 0a 20 20 20 20 60 28 2c 6d 61 70 2d 66 75  | ((entry.(gensym))).....`(,map-fu | 
| 3a00 |  6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28    2c 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20  | nction.(lambda.(,entry)......... | 
| 3a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64    65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e  | ..............(destructuring-bin | 
| 3a40 |  64 20 2c 61 72 67 73 20 2c 65 6e 74 72 79 20 2c    40 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20  | d.,args.,entry.,@body))......... | 
| 3a60 |  20 20 20 20 20 20 20 20 20 20 20 20 2c 73 65 71    75 65 6e 63 65 29 29 29 0a 0a 28 64 65 66 6d 61  | ............,sequence)))..(defma | 
| 3a80 |  63 72 6f 20 6b 76 6d 61 70 2d 62 69 6e 64 20 28    61 72 67 73 20 73 65 78 70 20 73 65 71 29 0a 20  | cro.kvmap-bind.(args.sexp.seq).. | 
| 3aa0 |  20 22 41 20 68 79 62 72 69 64 20 6f 66 20 60 64    65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e  | ."A.hybrid.of.`destructuring-bin | 
| 3ac0 |  64 27 20 61 6e 64 20 60 6d 61 70 63 61 72 27 0a    41 52 47 53 20 73 68 61 6c 6c 20 62 65 20 6f 66  | d'.and.`mapcar'.ARGS.shall.be.of | 
| 3ae0 |  20 74 68 65 20 66 6f 72 6d 20 75 73 65 64 20 77    69 74 68 20 60 64 65 73 74 72 75 63 74 75 72 69  | .the.form.used.with.`destructuri | 
| 3b00 |  6e 67 2d 62 69 6e 64 27 0a 0a 55 6e 6c 69 6b 65    20 6d 6f 73 74 20 6f 74 68 65 72 20 6d 61 70 70  | ng-bind'..Unlike.most.other.mapp | 
| 3b20 |  69 6e 67 20 66 6f 72 6d 73 20 74 68 69 73 20 69    73 20 61 20 6d 61 63 72 6f 20 69 6e 74 65 6e 64  | ing.forms.this.is.a.macro.intend | 
| 3b40 |  65 64 20 74 6f 20 62 65 0a 75 73 65 64 20 66 6f    72 20 73 74 72 75 63 74 75 72 61 6c 20 74 72 61  | ed.to.be.used.for.structural.tra | 
| 3b60 |  6e 73 66 6f 72 6d 61 74 69 6f 6e 73 2c 20 73 6f    20 74 68 65 20 65 78 70 65 63 74 65 64 20 75 73  | nsformations,.so.the.expected.us | 
| 3b80 |  61 67 65 20 77 69 6c 6c 0a 62 65 20 74 68 61 74    20 41 52 47 53 20 64 65 73 63 72 69 62 65 73 20  | age.will.be.that.ARGS.describes. | 
| 3ba0 |  74 68 65 20 73 74 72 75 63 74 75 72 65 20 6f 66    20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 53 45  | the.structure.of.the.items.in.SE | 
| 3bc0 |  51 2c 20 61 6e 64 0a 53 45 58 50 20 77 69 6c 6c    20 64 65 73 63 72 69 62 65 20 74 68 65 20 73 74  | Q,.and.SEXP.will.describe.the.st | 
| 3be0 |  72 75 63 74 75 72 65 20 64 65 73 69 72 65 64 2e    22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e  | ructure.desired."...(declare.(in | 
| 3c00 |  64 65 6e 74 20 32 29 29 0a 20 20 60 28 6b 76 2d    2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d  | dent.2))...`(kv--destructuring-m | 
| 3c20 |  61 70 20 6d 61 70 63 61 72 20 2c 61 72 67 73 20    2c 73 65 71 20 2c 73 65 78 70 29 29 0a 0a 28 64  | ap.mapcar.,args.,seq.,sexp))..(d | 
| 3c40 |  65 66 61 6c 69 61 73 20 27 6d 61 70 2d 62 69 6e    64 20 27 6b 76 6d 61 70 2d 62 69 6e 64 29 0a 0a  | efalias.'map-bind.'kvmap-bind).. | 
| 3c60 |  28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 2d 6d    65 72 67 65 20 28 26 72 65 73 74 20 70 6c 69 73  | (defun.kvplist-merge.(&rest.plis | 
| 3c80 |  74 73 29 0a 20 20 22 4d 65 72 67 65 20 74 68 65    20 32 6e 64 20 61 6e 64 20 73 75 62 73 65 71 75  | ts)..."Merge.the.2nd.and.subsequ | 
| 3ca0 |  65 6e 74 20 70 6c 69 73 74 73 20 69 6e 74 6f 20    74 68 65 20 66 69 72 73 74 2e 0a 0a 56 61 6c 75  | ent.plists.into.the.first...Valu | 
| 3cc0 |  65 73 20 73 65 74 20 62 79 20 6c 69 73 74 73 20    74 6f 20 74 68 65 20 6c 65 66 74 20 61 72 65 20  | es.set.by.lists.to.the.left.are. | 
| 3ce0 |  63 6c 6f 62 62 65 72 65 64 2e 22 0a 20 20 28 6c    65 74 20 28 28 72 65 73 75 6c 74 20 28 63 61 72  | clobbered."...(let.((result.(car | 
| 3d00 |  20 70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20    20 20 28 70 6c 69 73 74 73 20 28 63 64 72 20 70  | .plists)).........(plists.(cdr.p | 
| 3d20 |  6c 69 73 74 73 29 29 29 0a 20 20 20 20 28 6c 6f    6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20  | lists))).....(loop.for.plist.in. | 
| 3d40 |  70 6c 69 73 74 73 20 64 6f 0a 20 20 20 20 20 20    20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 28 6b  | plists.do...........(loop.for.(k | 
| 3d60 |  65 79 20 76 61 6c 29 20 6f 6e 20 70 6c 69 73 74    20 62 79 20 27 63 64 64 72 20 64 6f 0a 20 20 20  | ey.val).on.plist.by.'cddr.do.... | 
| 3d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 72 65 73 75 6c 74 20 28 70 6c 69 73 74  | .............(setq.result.(plist | 
| 3da0 |  2d 70 75 74 20 72 65 73 75 6c 74 20 6b 65 79 20    76 61 6c 29 29 29 29 0a 20 20 20 20 72 65 73 75  | -put.result.key.val)))).....resu | 
| 3dc0 |  6c 74 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27    6b 76 29 0a 28 70 72 6f 76 69 64 65 20 27 64 6f  | lt))..(provide.'kv).(provide.'do | 
| 3de0 |  74 61 73 73 6f 63 29 0a 0a 3b 3b 3b 20 6b 76 2e    65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00  | tassoc)..;;;.kv.el.ends.here.... | 
| 3e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 40a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 40c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 40e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 41a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 41c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 41e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 42a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 42c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 42e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 43a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 43c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 43e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 44a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 44c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 44e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 45a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 45c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 45e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 46a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 46c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 46e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 47a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 47c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 47e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4800 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4820 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 48a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 48c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 48e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 49a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 49c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 49e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4a00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4a60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4a80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4b00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4b20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4c00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4c20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4c60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4c80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4d00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 4fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ |