| 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 2e 65 6c 00 00 00 00 00 00 00 00 00 00  | kv-20140108.1534/kv.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 33 32 37 31 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 33 37 36 00 20 30 00 00 00  | 0032714.00000000000.012376..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 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 | 
| 0420 |  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.( | 
| 0440 |  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: | 
| 0460 |  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 | 
| 0480 |  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 56 65 72 73 69  | e.uk>.;;.Keywords:.lisp.;;.Versi | 
| 04a0 |  6f 6e 3a 20 30 2e 30 2e 31 39 0a 3b 3b 20 4d 61    69 6e 74 61 69 6e 65 72 3a 20 4e 69 63 20 46 65  | on:.0.0.19.;;.Maintainer:.Nic.Fe | 
| 04c0 |  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 65 2e 75 6b 3e 0a 3b  | rrier.<nferrier@ferrier.me.uk>.; | 
| 04e0 |  3b 20 43 72 65 61 74 65 64 3a 20 37 74 68 20 53    65 70 74 65 6d 62 65 72 20 32 30 31 32 0a 0a 3b  | ;.Created:.7th.September.2012..; | 
| 0500 |  3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69    73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b  | ;.This.program.is.free.software; | 
| 0520 |  20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72    69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20  | .you.can.redistribute.it.and/or. | 
| 0540 |  6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64    65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20  | modify.;;.it.under.the.terms.of. | 
| 0560 |  74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20    50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61  | the.GNU.General.Public.License.a | 
| 0580 |  73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b    3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77  | s.published.by.;;.the.Free.Softw | 
| 05a0 |  61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20    65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33  | are.Foundation,.either.version.3 | 
| 05c0 |  20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c    20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20  | .of.the.License,.or.;;.(at.your. | 
| 05e0 |  6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65    72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54  | option).any.later.version...;;.T | 
| 0600 |  68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64    69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68  | his.program.is.distributed.in.th | 
| 0620 |  65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77    69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b  | e.hope.that.it.will.be.useful,.; | 
| 0640 |  3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e    59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68  | ;.but.WITHOUT.ANY.WARRANTY;.with | 
| 0660 |  6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70    6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66  | out.even.the.implied.warranty.of | 
| 0680 |  0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c    49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46  | .;;.MERCHANTABILITY.or.FITNESS.F | 
| 06a0 |  4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20    50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68  | OR.A.PARTICULAR.PURPOSE...See.th | 
| 06c0 |  65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c    20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20  | e.;;.GNU.General.Public.License. | 
| 06e0 |  66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73    2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64  | for.more.details...;;.You.should | 
| 0700 |  20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61    20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55  | .have.received.a.copy.of.the.GNU | 
| 0720 |  20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20    4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67  | .General.Public.License.;;.along | 
| 0740 |  20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72    61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65  | .with.this.program...If.not,.see | 
| 0760 |  20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75    2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e  | .<http://www.gnu.org/licenses/>. | 
| 0780 |  0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79    3a 0a 0a 3b 3b 20 53 6f 6d 65 20 72 6f 75 74 69  | ..;;;.Commentary:..;;.Some.routi | 
| 07a0 |  6e 65 73 20 66 6f 72 20 77 6f 72 6b 69 6e 67 20    77 69 74 68 20 6b 65 79 2f 76 61 6c 75 65 20 64  | nes.for.working.with.key/value.d | 
| 07c0 |  61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 6c    69 6b 65 0a 3b 3b 20 68 61 73 68 2d 74 61 62 6c  | ata.structures.like.;;.hash-tabl | 
| 07e0 |  65 73 20 61 6e 64 20 61 6c 69 73 74 73 20 61 6e    64 20 70 6c 69 73 74 73 2e 0a 0a 3b 3b 20 54 68  | es.and.alists.and.plists...;;.Th | 
| 0800 |  69 73 20 61 6c 73 6f 20 74 61 6b 65 73 20 6f 76    65 72 20 74 68 65 20 64 6f 74 61 73 73 6f 63 20  | is.also.takes.over.the.dotassoc. | 
| 0820 |  73 74 75 66 66 20 61 6e 64 20 70 72 6f 76 69 64    65 73 20 69 74 20 73 65 70 61 72 61 74 65 6c 79  | stuff.and.provides.it.separately | 
| 0840 |  2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65    76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65  | ...;;;.Code:..(eval-when-compile | 
| 0860 |  20 28 72 65 71 75 69 72 65 20 27 63 6c 29 29 0a    0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74  | .(require.'cl))...(defun.kvalist | 
| 0880 |  2d 3e 68 61 73 68 20 28 61 6c 69 73 74 20 26 72    65 73 74 20 68 61 73 68 2d 74 61 62 6c 65 2d 61  | ->hash.(alist.&rest.hash-table-a | 
| 08a0 |  72 67 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20    41 4c 49 53 54 20 74 6f 20 61 20 48 41 53 48 2e  | rgs)..."Convert.ALIST.to.a.HASH. | 
| 08c0 |  0a 0a 48 41 53 48 2d 54 41 42 4c 45 2d 41 52 47    53 20 61 72 65 20 70 61 73 73 65 64 20 74 6f 20  | ..HASH-TABLE-ARGS.are.passed.to. | 
| 08e0 |  74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20 63    72 65 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74  | the.hash-table.creation."...(let | 
| 0900 |  20 28 28 74 61 62 6c 65 20 28 61 70 70 6c 79 20    27 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65  | .((table.(apply.'make-hash-table | 
| 0920 |  20 68 61 73 68 2d 74 61 62 6c 65 2d 61 72 67 73    29 29 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20  | .hash-table-args))).....(mapc... | 
| 0940 |  20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72    29 0a 20 20 20 20 20 20 20 28 70 75 74 68 61 73  | ...(lambda.(pair)........(puthas | 
| 0960 |  68 20 28 63 61 72 20 70 61 69 72 29 20 28 63 64    72 20 70 61 69 72 29 20 74 61 62 6c 65 29 29 0a  | h.(car.pair).(cdr.pair).table)). | 
| 0980 |  20 20 20 20 20 61 6c 69 73 74 29 0a 20 20 20 20    74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20  | .....alist).....table))..(defun. | 
| 09a0 |  6b 76 68 61 73 68 2d 3e 61 6c 69 73 74 20 28 68    61 73 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 75  | kvhash->alist.(hash.&optional.fu | 
| 09c0 |  6e 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 48    41 53 48 20 74 6f 20 61 6e 20 41 4c 49 53 54 2e  | nc)..."Convert.HASH.to.an.ALIST. | 
| 09e0 |  0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 66 69 6c    74 65 72 20 74 68 72 6f 75 67 68 20 46 55 4e 43  | ..Optionally.filter.through.FUNC | 
| 0a00 |  2c 20 6f 6e 6c 79 20 6e 6f 6e 2d 6e 69 6c 20 76    61 6c 75 65 73 20 72 65 74 75 72 6e 65 64 20 66  | ,.only.non-nil.values.returned.f | 
| 0a20 |  72 6f 6d 0a 46 55 4e 43 20 61 72 65 20 73 74 6f    72 65 64 20 61 73 20 74 68 65 20 72 65 73 75 6c  | rom.FUNC.are.stored.as.the.resul | 
| 0a40 |  74 69 6e 67 20 76 61 6c 75 65 20 61 67 61 69 6e    73 74 20 74 68 65 20 63 6f 6e 76 65 72 74 65 64  | ting.value.against.the.converted | 
| 0a60 |  0a 6b 65 79 2e 22 0a 20 20 28 77 68 65 6e 20 68    61 73 68 0a 20 20 20 20 28 6c 65 74 20 28 73 74  | .key."...(when.hash.....(let.(st | 
| 0a80 |  6f 72 65 29 0a 20 20 20 20 20 20 28 6d 61 70 68    61 73 68 0a 20 20 20 20 20 20 20 28 6c 61 6d 62  | ore).......(maphash........(lamb | 
| 0aa0 |  64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 0a 20    20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6b 65  | da.(key.value)..........(when.ke | 
| 0ac0 |  79 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66    20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70  | y............(if.(and.(functionp | 
| 0ae0 |  20 66 75 6e 63 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65  | .func))................(let.((re | 
| 0b00 |  73 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20    6b 65 79 20 76 61 6c 75 65 29 29 29 0a 20 20 20  | s.(funcall.func.key.value))).... | 
| 0b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77    68 65 6e 20 72 65 73 0a 20 20 20 20 20 20 20 20  | ..............(when.res......... | 
| 0b40 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 73 74 6f 72 65 20 28 61 63 6f 6e 73 20 6b 65  | ...........(setq.store.(acons.ke | 
| 0b60 |  79 20 72 65 73 20 73 74 6f 72 65 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b  | y.res.store))))................; | 
| 0b80 |  3b 20 65 6c 73 65 20 6e 6f 20 66 69 6c 74 65 72    69 6e 67 2c 20 6a 75 73 74 20 72 65 74 75 72 6e  | ;.else.no.filtering,.just.return | 
| 0ba0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 73 74 6f 72 65 20 28 61 63 6f  | ................(setq.store.(aco | 
| 0bc0 |  6e 73 20 6b 65 79 20 76 61 6c 75 65 20 73 74 6f    72 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 68  | ns.key.value.store)))))........h | 
| 0be0 |  61 73 68 29 0a 20 20 20 20 20 20 73 74 6f 72 65    29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 66 61  | ash).......store)))..(defun.kvfa | 
| 0c00 |  20 28 6b 65 79 20 61 6c 69 73 74 20 72 65 63 65    69 76 65 29 0a 20 20 22 43 61 6c 6c 20 52 45 43  | .(key.alist.receive)..."Call.REC | 
| 0c20 |  45 49 56 45 20 77 69 74 68 20 77 68 61 74 65 76    65 72 20 63 6f 6d 65 73 20 6f 75 74 20 6f 66 20  | EIVE.with.whatever.comes.out.of. | 
| 0c40 |  41 4c 49 53 54 20 66 6f 72 20 4b 45 59 2e 0a 0a    52 45 43 45 49 56 45 20 63 61 6e 20 64 6f 20 77  | ALIST.for.KEY...RECEIVE.can.do.w | 
| 0c60 |  68 61 74 65 76 65 72 20 64 65 73 74 72 75 63 74    75 72 69 6e 67 20 79 6f 75 20 77 61 6e 74 2c 20  | hatever.destructuring.you.want,. | 
| 0c80 |  74 68 65 20 66 69 72 73 74 0a 61 72 67 75 6d 65    6e 74 20 69 73 20 61 6c 77 61 79 73 20 74 68 65  | the.first.argument.is.always.the | 
| 0ca0 |  20 63 61 72 20 6f 66 20 74 68 65 20 61 6c 69 73    74 20 70 61 69 72 2e 22 0a 20 20 28 61 70 70 6c  | .car.of.the.alist.pair."...(appl | 
| 0cc0 |  79 20 72 65 63 65 69 76 65 20 28 6c 65 74 20 28    28 61 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c  | y.receive.(let.((a.(assoc.key.al | 
| 0ce0 |  69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e  | ist)))....................(appen | 
| 0d00 |  64 20 28 6c 69 73 74 20 28 63 61 72 20 61 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d.(list.(car.a))................ | 
| 0d20 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6c 69 73 74 70 20 28 63 64 72 20 61 29 29 28  | ............(if.(listp.(cdr.a))( | 
| 0d40 |  63 64 72 20 61 29 28 6c 69 73 74 20 28 63 64 72    20 61 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75  | cdr.a)(list.(cdr.a)))))))..(defu | 
| 0d60 |  6e 20 6b 76 61 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 74 68  | n.kva.(key.alist)..."Retrieve.th | 
| 0d80 |  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 53 54  | e.value.assigned.to.KEY.in.ALIST | 
| 0da0 |  2e 0a 0a 54 68 69 73 20 75 73 65 73 20 60 61 73    73 6f 63 27 20 61 73 20 74 68 65 20 6c 6f 6f 6b  | ...This.uses.`assoc'.as.the.look | 
| 0dc0 |  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 6f 63 20 6b 65 79  | up.mechanism."...(cdr.(assoc.key | 
| 0de0 |  20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75    6e 20 6b 76 61 71 20 28 6b 65 79 20 61 6c 69 73  | .alist)))..(defun.kvaq.(key.alis | 
| 0e00 |  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 | 
| 0e20 |  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 | 
| 0e40 |  73 73 71 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 20  | ssq'.as.the.lookup.mechanism.".. | 
| 0e60 |  20 28 63 64 72 20 28 61 73 73 71 20 6b 65 79 20    61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e  | .(cdr.(assq.key.alist)))..(defun | 
| 0e80 |  20 6b 76 61 71 63 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 74  | .kvaqc.(key.alist)..."Retrieve.t | 
| 0ea0 |  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 53  | he.value.assigned.to.KEY.in.ALIS | 
| 0ec0 |  54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 66 69    72 73 74 20 74 68 65 20 60 61 73 73 71 27 20 61  | T...This.uses.first.the.`assq'.a | 
| 0ee0 |  6e 64 20 74 68 65 6e 20 60 61 73 73 6f 63 27 20    61 73 20 74 68 65 20 6c 6f 6f 6b 75 70 0a 6d 65  | nd.then.`assoc'.as.the.lookup.me | 
| 0f00 |  63 68 61 6e 69 73 6d 2e 22 0a 20 20 28 63 64 72    20 28 6f 72 20 28 61 73 73 71 20 6b 65 79 20 61  | chanism."...(cdr.(or.(assq.key.a | 
| 0f20 |  6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69 73  | list)............(assoc.key.alis | 
| 0f40 |  74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76    61 73 73 6f 63 3d 20 28 6b 65 79 20 76 61 6c 75  | t))))..(defun.kvassoc=.(key.valu | 
| 0f60 |  65 20 61 6c 69 73 74 29 0a 20 20 22 49 73 20 74    68 65 20 76 61 6c 75 65 20 61 73 73 6f 63 64 20  | e.alist)..."Is.the.value.assocd. | 
| 0f80 |  74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54 20    65 71 75 61 6c 20 74 6f 20 56 41 4c 55 45 3f 0a  | to.KEY.in.ALIST.equal.to.VALUE?. | 
| 0fa0 |  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 75 70 20 62 79 20  | .Returns.the.value.looked.up.by. | 
| 0fc0 |  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 6c 79 3a 0a 0a 20  | KEY.that.passes,.so.normally:... | 
| 0fe0 |  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 28 61 73 73 6f 63  | .KEY...VALUE."...(let.((v.(assoc | 
| 1000 |  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 28 65 71 75 61 6c 20  | .key.alist))).....(and.v.(equal. | 
| 1020 |  28 63 64 72 20 76 29 20 76 61 6c 75 65 29 20 76    29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 73  | (cdr.v).value).v)))..(defun.kvas | 
| 1040 |  73 6f 71 63 20 28 6b 65 79 20 61 6c 69 73 74 29    0a 20 20 22 53 74 72 69 6e 67 20 6f 72 20 73 79  | soqc.(key.alist)..."String.or.sy | 
| 1060 |  6d 62 6f 6c 20 61 73 73 6f 63 2e 22 0a 20 20 28    6c 65 74 20 28 28 76 20 28 6f 72 0a 20 20 20 20  | mbol.assoc."...(let.((v.(or..... | 
| 1080 |  20 20 20 20 20 20 20 20 28 61 73 73 71 20 28 69    66 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 29 20  | ........(assq.(if.(symbolp.key). | 
| 10a0 |  6b 65 79 20 28 69 6e 74 65 72 6e 20 6b 65 79 29    29 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20  | key.(intern.key)).alist)........ | 
| 10c0 |  20 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63 20    6b 65 79 20 61 6c 69 73 74 29 0a 20 20 20 20 20  | .....(or.(assoc.key.alist)...... | 
| 10e0 |  20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f    74 20 73 75 72 65 20 61 62 6f 75 74 20 74 68 69  | ...........;;.not.sure.about.thi | 
| 1100 |  73 20 62 65 68 61 76 69 6f 75 72 2e 2e 2e 20 73    65 65 20 74 65 73 74 0a 20 20 20 20 20 20 20 20  | s.behaviour....see.test......... | 
| 1120 |  20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 28    73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29  | ........(assoc.(symbol-name.key) | 
| 1140 |  20 61 6c 69 73 74 29 29 29 29 29 20 20 76 29 29    0a 0a 28 64 65 66 75 6e 20 6b 76 61 73 73 6f 71  | .alist)))))..v))..(defun.kvassoq | 
| 1160 |  3d 20 28 6b 65 79 20 76 61 6c 75 65 20 61 6c 69    73 74 29 0a 20 20 22 54 65 73 74 20 74 68 65 20  | =.(key.value.alist)..."Test.the. | 
| 1180 |  56 41 4c 55 45 20 77 69 74 68 20 74 68 65 20 76    61 6c 75 65 20 62 6f 75 6e 64 20 74 6f 20 4b 45  | VALUE.with.the.value.bound.to.KE | 
| 11a0 |  59 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 54 68 65    20 6c 6f 6f 6b 75 70 20 6d 65 63 68 61 6e 69 73  | Y.in.ALIST...The.lookup.mechanis | 
| 11c0 |  6d 20 69 73 20 74 6f 20 65 6e 73 75 72 65 20 74    68 65 20 6b 65 79 20 69 73 20 61 20 73 79 6d 62  | m.is.to.ensure.the.key.is.a.symb | 
| 11e0 |  6f 6c 20 61 6e 64 20 74 68 65 6e 0a 75 73 65 20    61 73 73 71 2e 20 20 48 65 6e 63 65 20 74 68 65  | ol.and.then.use.assq...Hence.the | 
| 1200 |  20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e    63 74 69 6f 6e 20 62 65 69 6e 67 20 61 20 6d 69  | .name.of.the.function.being.a.mi | 
| 1220 |  78 20 6f 66 20 61 73 73 6f 63 0a 61 6e 64 20 61    73 73 71 2e 0a 0a 52 65 74 75 72 6e 73 20 74 68  | x.of.assoc.and.assq...Returns.th | 
| 1240 |  65 20 76 61 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  | e.value.looked.up.by.KEY.that.pa | 
| 1260 |  73 73 65 73 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  | sses,.so.normally:....KEY...VALU | 
| 1280 |  45 0a 22 0a 20 20 28 6c 65 74 20 28 28 76 20 28    6b 76 61 73 73 6f 71 63 20 6b 65 79 20 61 6c 69  | E."...(let.((v.(kvassoqc.key.ali | 
| 12a0 |  73 74 29 29 29 0a 20 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  | st))).....(and.v.(equal.(cdr.v). | 
| 12c0 |  76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64 65    66 75 6e 20 6b 76 6d 61 74 63 68 20 28 6b 65 79  | value).v)))..(defun.kvmatch.(key | 
| 12e0 |  20 72 65 67 65 78 20 61 6c 69 73 74 29 0a 20 20    22 54 65 73 74 20 74 68 65 20 76 61 6c 75 65 20  | .regex.alist)..."Test.the.value. | 
| 1300 |  77 69 74 68 20 4b 45 59 20 69 6e 20 41 4c 49 53    54 20 6d 61 74 63 68 65 73 20 52 45 47 45 58 2e  | with.KEY.in.ALIST.matches.REGEX. | 
| 1320 |  22 0a 20 20 28 6c 65 74 20 28 28 76 20 28 6b 76    61 73 73 6f 71 63 20 6b 65 79 20 61 6c 69 73 74  | "...(let.((v.(kvassoqc.key.alist | 
| 1340 |  29 29 29 0a 20 20 20 20 28 61 6e 64 20 76 20 28    73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 67  | ))).....(and.v.(string-match.reg | 
| 1360 |  65 78 20 28 63 64 72 20 76 29 29 20 76 29 29 29    0a 0a 28 64 65 66 75 6e 2a 20 6b 76 71 75 65 72  | ex.(cdr.v)).v)))..(defun*.kvquer | 
| 1380 |  79 2d 3e 66 75 6e 63 20 28 71 75 65 72 79 20 26    6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20  | y->func.(query.&key............. | 
| 13a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 65 71 75 61 6c 2d 66 75 6e 63 20 27 6b 76  | .................(equal-func.'kv | 
| 13c0 |  61 73 73 6f 63 3d 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  | assoc=)......................... | 
| 13e0 |  20 20 20 20 20 28 6d 61 74 63 68 2d 66 75 6e 63    20 27 6b 76 6d 61 74 63 68 29 29 0a 20 20 22 54  | .....(match-func.'kvmatch))..."T | 
| 1400 |  75 72 6e 20 61 20 73 69 6d 70 6c 65 20 51 55 45    52 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e  | urn.a.simple.QUERY.expression.in | 
| 1420 |  74 6f 20 61 20 66 69 6c 74 65 72 20 66 75 6e 63    74 69 6f 6e 2e 0a 0a 45 51 55 41 4c 2d 46 55 4e  | to.a.filter.function...EQUAL-FUN | 
| 1440 |  43 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f    6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74  | C.is.the.function.that.implement | 
| 1460 |  73 20 74 68 65 20 65 71 75 61 6c 69 74 79 0a 70    72 65 64 69 63 61 74 65 2e 0a 0a 4d 41 54 43 48  | s.the.equality.predicate...MATCH | 
| 1480 |  2d 46 55 4e 43 20 69 73 20 74 68 65 20 66 75 6e    63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65  | -FUNC.is.the.function.that.imple | 
| 14a0 |  6d 65 6e 74 73 20 74 68 65 20 6d 61 74 63 68 20    70 72 65 64 69 63 61 74 65 2e 0a 0a 54 68 65 20  | ments.the.match.predicate...The. | 
| 14c0 |  71 75 65 72 79 20 6c 61 6e 67 75 61 67 65 20 69    73 3a 0a 0a 20 7c 20 61 20 62 20 20 2d 20 74 72  | query.language.is:...|.a.b..-.tr | 
| 14e0 |  75 65 20 69 66 20 61 20 6f 72 20 62 20 69 73 20    74 72 75 65 0a 20 26 20 61 20 62 20 20 2d 20 74  | ue.if.a.or.b.is.true..&.a.b..-.t | 
| 1500 |  72 75 65 20 6f 6e 6c 79 20 69 66 20 61 20 61 6e    64 20 62 20 69 73 20 74 72 75 65 0a 20 3d 20 61  | rue.only.if.a.and.b.is.true..=.a | 
| 1520 |  20 62 20 20 2d 20 74 72 75 65 20 69 66 20 61 20    65 71 75 61 6c 73 20 62 20 61 73 20 70 65 72 20  | .b..-.true.if.a.equals.b.as.per. | 
| 1540 |  74 68 65 20 45 51 55 41 4c 2d 46 55 4e 43 0a 20    7e 20 61 20 62 20 20 2d 20 74 72 75 65 20 69 66  | the.EQUAL-FUNC..~.a.b..-.true.if | 
| 1560 |  20 61 20 6d 61 74 63 68 65 73 20 62 20 61 73 20    70 65 72 20 74 68 65 20 4d 41 54 43 48 2d 46 55  | .a.matches.b.as.per.the.MATCH-FU | 
| 1580 |  4e 43 0a 0a 53 6f 2c 20 66 6f 72 20 65 78 61 6d    70 6c 65 3a 0a 0a 20 28 7c 28 3d 20 61 20 62 29  | NC..So,.for.example:...(|(=.a.b) | 
| 15a0 |  28 3d 20 63 20 64 29 29 0a 0a 4d 65 61 6e 73 3a    20 69 66 20 60 61 27 20 65 71 75 61 6c 73 20 60  | (=.c.d))..Means:.if.`a'.equals.` | 
| 15c0 |  62 27 2c 20 6f 72 20 69 66 20 60 63 27 20 65 71    75 61 6c 73 20 60 64 27 20 74 68 65 6e 20 74 68  | b',.or.if.`c'.equals.`d'.then.th | 
| 15e0 |  65 0a 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20    74 72 75 65 2e 22 0a 20 20 28 66 6c 65 74 20 28  | e.expression.is.true."...(flet.( | 
| 1600 |  28 71 75 65 72 79 2d 70 61 72 73 65 20 28 71 75    65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20  | (query-parse.(query)............ | 
| 1620 |  28 6c 65 74 20 28 28 70 61 72 74 20 28 63 61 72    20 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20  | (let.((part.(car.query))........ | 
| 1640 |  20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 20    28 63 64 72 20 71 75 65 72 79 29 29 29 0a 20 20  | ..........(rest.(cdr.query)))... | 
| 1660 |  20 20 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 20 20 20 20  | ...........(cond................ | 
| 1680 |  28 28 65 71 20 70 61 72 74 20 27 7c 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | ((eq.part.'|).................(c | 
| 16a0 |  6f 6e 73 20 27 6f 72 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | ons.'or.......................(l | 
| 16c0 |  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 20 20 20 20 20 20 20  | oop.for.i.in.rest............... | 
| 16e0 |  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 2d 70 61 72 73 65 20  | ...........collect.(query-parse. | 
| 1700 |  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 20 70 61 72 74 20 27  | i))))................((eq.part.' | 
| 1720 |  26 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6f 6e 73 20 27 61 6e 64 0a 20 20  | &).................(cons.'and... | 
| 1740 |  20 20 20 20 20 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  | ....................(loop.for.i. | 
| 1760 |  69 6e 20 72 65 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  | in.rest......................... | 
| 1780 |  20 63 6f 6c 6c 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  | .collect.(query-parse.i))))..... | 
| 17a0 |  20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20    70 61 72 74 20 27 7e 29 0a 20 20 20 20 20 20 20  | ...........((eq.part.'~)........ | 
| 17c0 |  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 64 20 28 66 69  | .........(destructuring-bind.(fi | 
| 17e0 |  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 20 20 20 20 20 20  | eld.value).rest................. | 
| 1800 |  20 20 28 6c 69 73 74 20 6d 61 74 63 68 2d 66 75    6e 63 20 66 69 65 6c 64 20 76 61 6c 75 65 20 28  | ..(list.match-func.field.value.( | 
| 1820 |  71 75 6f 74 65 20 72 65 63 6f 72 64 29 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | quote.record))))................ | 
| 1840 |  28 28 65 71 20 70 61 72 74 20 27 3d 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64  | ((eq.part.'=).................(d | 
| 1860 |  65 73 74 72 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  | estructuring-bind.(field.value). | 
| 1880 |  72 65 73 74 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 65 71 75  | rest...................(list.equ | 
| 18a0 |  61 6c 2d 66 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  | al-func.field.value.(quote.recor | 
| 18c0 |  64 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 65    76 61 6c 20 60 28 6c 61 6d 62 64 61 20 28 72 65  | d)))))))).....(eval.`(lambda.(re | 
| 18e0 |  63 6f 72 64 29 20 2c 28 71 75 65 72 79 2d 70 61    72 73 65 20 71 75 65 72 79 29 29 29 29 29 0a 0a  | cord).,(query-parse.query))))).. | 
| 1900 |  28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 32 67    65 74 20 28 70 6c 69 73 74 32 20 6b 65 79 77 6f  | (defun.kvplist2get.(plist2.keywo | 
| 1920 |  72 64 20 76 61 6c 75 65 29 0a 20 20 22 47 65 74    20 74 68 65 20 70 6c 69 73 74 20 77 69 74 68 20  | rd.value)..."Get.the.plist.with. | 
| 1940 |  4b 45 59 57 4f 52 44 20 2f 20 56 41 4c 55 45 20    66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66  | KEYWORD./.VALUE.from.the.list.of | 
| 1960 |  20 70 6c 69 73 74 73 2e 22 0a 20 20 28 6c 6f 6f    70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20 70  | .plists."...(loop.for.plist.in.p | 
| 1980 |  6c 69 73 74 32 0a 20 20 20 20 20 69 66 20 28 65    71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20  | list2......if.(equal.(plist-get. | 
| 19a0 |  70 6c 69 73 74 20 6b 65 79 77 6f 72 64 29 20 76    61 6c 75 65 29 0a 20 20 20 20 20 72 65 74 75 72  | plist.keyword).value)......retur | 
| 19c0 |  6e 20 70 6c 69 73 74 29 29 0a 0a 28 64 65 66 75    6e 20 6b 76 74 68 69 6e 67 2d 3e 6b 65 79 77 6f  | n.plist))..(defun.kvthing->keywo | 
| 19e0 |  72 64 20 28 73 74 72 2d 6f 72 2d 73 79 6d 62 6f    6c 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 54  | rd.(str-or-symbol)..."Convert.ST | 
| 1a00 |  52 2d 4f 52 2d 53 59 4d 42 4f 4c 20 69 6e 74 6f    20 61 20 6b 65 79 77 6f 72 64 20 73 79 6d 62 6f  | R-OR-SYMBOL.into.a.keyword.symbo | 
| 1a20 |  6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72    0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a  | l."...(let.((str..........(cond. | 
| 1a40 |  20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 6d    62 6f 6c 70 20 73 74 72 2d 6f 72 2d 73 79 6d 62  | ...........((symbolp.str-or-symb | 
| 1a60 |  6f 6c 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65    20 73 74 72 2d 6f 72 2d 73 79 6d 62 6f 6c 29 29  | ol).(symbol-name.str-or-symbol)) | 
| 1a80 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74    72 69 6e 67 70 20 73 74 72 2d 6f 72 2d 73 79 6d  | ............((stringp.str-or-sym | 
| 1aa0 |  62 6f 6c 29 20 73 74 72 2d 6f 72 2d 73 79 6d 62    6f 6c 29 29 29 29 0a 20 20 20 20 28 69 6e 74 65  | bol).str-or-symbol)))).....(inte | 
| 1ac0 |  72 6e 0a 20 20 20 20 20 28 69 66 20 28 65 71 20    28 61 72 65 66 20 73 74 72 20 30 29 20 3f 3a 29  | rn......(if.(eq.(aref.str.0).?:) | 
| 1ae0 |  20 73 74 72 20 28 63 6f 6e 63 61 74 20 22 3a 22    20 73 74 72 29 29 29 29 29 0a 0a 28 64 65 66 75  | .str.(concat.":".str)))))..(defu | 
| 1b00 |  6e 20 6b 76 61 6c 69 73 74 2d 3e 70 6c 69 73 74    20 28 61 6c 69 73 74 29 0a 20 20 22 43 6f 6e 76  | n.kvalist->plist.(alist)..."Conv | 
| 1b20 |  65 72 74 20 61 6e 20 61 6c 69 73 74 20 74 6f 20    61 20 70 6c 69 73 74 2e 22 0a 20 20 3b 3b 20 57  | ert.an.alist.to.a.plist."...;;.W | 
| 1b40 |  68 79 20 64 6f 65 73 6e 27 74 20 65 6c 69 73 70    20 70 72 6f 76 69 64 65 20 74 68 69 73 3f 0a 20  | hy.doesn't.elisp.provide.this?.. | 
| 1b60 |  20 28 6c 6f 6f 70 20 66 6f 72 20 70 61 69 72 20    69 6e 20 61 6c 69 73 74 0a 20 20 20 20 20 61 70  | .(loop.for.pair.in.alist......ap | 
| 1b80 |  70 65 6e 64 20 28 6c 69 73 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6b 76 74 68 69 6e 67  | pend.(list..............(kvthing | 
| 1ba0 |  2d 3e 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 61 72 20 70 61 69  | ->keyword...............(car.pai | 
| 1bc0 |  72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 64 72 20 70 61 69 72 29 29 29 29 0a 0a  | r))..............(cdr.pair)))).. | 
| 1be0 |  28 64 65 66 75 6e 20 6b 76 61 63 6f 6e 73 20 28    26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 4d  | (defun.kvacons.(&rest.args)..."M | 
| 1c00 |  61 6b 65 20 61 6e 20 61 6c 69 73 74 20 66 72 6f    6d 20 74 68 65 20 70 6c 69 73 74 20 73 74 79 6c  | ake.an.alist.from.the.plist.styl | 
| 1c20 |  65 20 61 72 67 73 2e 22 0a 20 20 28 6b 76 70 6c    69 73 74 2d 3e 61 6c 69 73 74 20 61 72 67 73 29  | e.args."...(kvplist->alist.args) | 
| 1c40 |  29 0a 0a 28 64 65 66 75 6e 20 6b 65 79 77 6f 72    64 2d 3e 73 79 6d 62 6f 6c 20 28 6b 65 79 77 6f  | )..(defun.keyword->symbol.(keywo | 
| 1c60 |  72 64 29 0a 20 20 22 41 20 6b 65 79 77 6f 72 64    20 69 73 20 61 20 73 79 6d 62 6f 6c 20 6c 65 61  | rd)..."A.keyword.is.a.symbol.lea | 
| 1c80 |  64 69 6e 67 20 77 69 74 68 20 61 20 3a 2e 0a 0a    43 6f 6e 76 65 72 74 69 6e 67 20 74 6f 20 61 20  | ding.with.a.:...Converting.to.a. | 
| 1ca0 |  73 79 6d 62 6f 6c 20 6d 65 61 6e 73 20 64 72 6f    70 70 69 6e 67 20 74 68 65 20 3a 2e 22 0a 20 20  | symbol.means.dropping.the.:."... | 
| 1cc0 |  28 69 66 20 28 6b 65 79 77 6f 72 64 70 20 6b 65    79 77 6f 72 64 29 0a 20 20 20 20 20 20 28 69 6e  | (if.(keywordp.keyword).......(in | 
| 1ce0 |  74 65 72 6e 20 28 73 75 62 73 74 72 69 6e 67 20    28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79  | tern.(substring.(symbol-name.key | 
| 1d00 |  77 6f 72 64 29 20 31 29 29 0a 20 20 20 20 6b 65    79 77 6f 72 64 29 29 0a 0a 28 64 65 66 75 6e 20  | word).1)).....keyword))..(defun. | 
| 1d20 |  6b 76 70 6c 69 73 74 2d 3e 61 6c 69 73 74 20 28    70 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20  | kvplist->alist.(plist.&optional. | 
| 1d40 |  6b 65 79 73 2d 61 72 65 2d 6b 65 79 77 6f 72 64    73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 50 4c  | keys-are-keywords)..."Convert.PL | 
| 1d60 |  49 53 54 20 74 6f 20 61 6e 20 61 6c 69 73 74 2e    0a 0a 54 68 65 20 6b 65 79 73 20 61 72 65 20 65  | IST.to.an.alist...The.keys.are.e | 
| 1d80 |  78 70 65 63 74 65 64 20 74 6f 20 62 65 20 3a 70    72 65 66 69 78 65 64 20 61 6e 64 20 74 68 65 20  | xpected.to.be.:prefixed.and.the. | 
| 1da0 |  63 6f 6c 6f 6e 73 20 61 72 65 20 72 65 6d 6f 76    65 64 0a 75 6e 6c 65 73 73 20 4b 45 59 53 2d 41  | colons.are.removed.unless.KEYS-A | 
| 1dc0 |  52 45 2d 4b 45 59 57 4f 52 44 53 20 69 73 20 60    74 27 2e 0a 0a 54 68 65 20 6b 65 79 73 20 69 6e  | RE-KEYWORDS.is.`t'...The.keys.in | 
| 1de0 |  20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 61    6c 69 73 74 20 61 72 65 20 61 6c 77 61 79 73 20  | .the.resulting.alist.are.always. | 
| 1e00 |  73 79 6d 62 6f 6c 73 2e 22 0a 20 20 28 77 68 65    6e 20 70 6c 69 73 74 0a 20 20 20 20 28 6c 6f 6f  | symbols."...(when.plist.....(loo | 
| 1e20 |  70 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 75 65    20 2e 20 72 65 73 74 29 20 6f 6e 20 70 6c 69 73  | p.for.(key.value...rest).on.plis | 
| 1e40 |  74 20 62 79 20 27 63 64 64 72 0a 20 20 20 20 20    20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20  | t.by.'cddr........collect....... | 
| 1e60 |  20 20 20 28 63 6f 6e 73 20 28 69 66 20 6b 65 79    73 2d 61 72 65 2d 6b 65 79 77 6f 72 64 73 0a 20  | ...(cons.(if.keys-are-keywords.. | 
| 1e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20  | ..................key........... | 
| 1ea0 |  20 20 20 20 20 20 20 20 20 28 6b 65 79 77 6f 72    64 2d 3e 73 79 6d 62 6f 6c 20 6b 65 79 29 29 0a  | .........(keyword->symbol.key)). | 
| 1ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76    61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e  | ...............value))))..(defun | 
| 1ee0 |  20 6b 76 61 6c 69 73 74 32 2d 3e 70 6c 69 73 74    20 28 61 6c 69 73 74 32 29 0a 20 20 22 43 6f 6e  | .kvalist2->plist.(alist2)..."Con | 
| 1f00 |  76 65 72 74 20 61 20 6c 69 73 74 20 6f 66 20 61    6c 69 73 74 73 20 74 6f 6f 20 61 20 6c 69 73 74  | vert.a.list.of.alists.too.a.list | 
| 1f20 |  20 6f 66 20 70 6c 69 73 74 73 2e 22 0a 20 20 28    6c 6f 6f 70 20 66 6f 72 20 61 6c 69 73 74 20 69  | .of.plists."...(loop.for.alist.i | 
| 1f40 |  6e 20 61 6c 69 73 74 32 0a 20 20 20 20 20 20 20    61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 6c  | n.alist2........append........(l | 
| 1f60 |  69 73 74 20 28 6b 76 61 6c 69 73 74 2d 3e 70 6c    69 73 74 20 61 6c 69 73 74 29 29 29 29 0a 0a 28  | ist.(kvalist->plist.alist))))..( | 
| 1f80 |  64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e 6b    65 79 73 20 28 61 6c 69 73 74 29 0a 20 20 22 47  | defun.kvalist->keys.(alist)..."G | 
| 1fa0 |  65 74 20 6a 75 73 74 20 74 68 65 20 6b 65 79 73    20 66 72 6f 6d 20 74 68 65 20 61 6c 69 73 74 2e  | et.just.the.keys.from.the.alist. | 
| 1fc0 |  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 20 28 63 61 72 20  | "...(mapcar.(lambda.(pair).(car. | 
| 1fe0 |  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 6c 69 73 74 2d 3e  | pair)).alist))..(defun.kvalist-> | 
| 2000 |  76 61 6c 75 65 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 76  | values.(alist)..."Get.just.the.v | 
| 2020 |  61 6c 75 65 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  | alues.from.the.alist."...(mapcar | 
| 2040 |  20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20    28 63 64 72 20 70 61 69 72 29 29 20 61 6c 69 73  | .(lambda.(pair).(cdr.pair)).alis | 
| 2060 |  74 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c    69 73 74 2d 73 6f 72 74 20 28 61 6c 69 73 74 20  | t))..(defun.kvalist-sort.(alist. | 
| 2080 |  70 72 65 64 29 0a 20 20 22 53 6f 72 74 20 41 4c    49 53 54 20 28 62 79 20 6b 65 79 29 20 77 69 74  | pred)..."Sort.ALIST.(by.key).wit | 
| 20a0 |  68 20 50 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  | h.PRED."...(sort.alist.(lambda.( | 
| 20c0 |  61 20 62 29 20 28 66 75 6e 63 61 6c 6c 20 70 72    65 64 20 28 63 61 72 20 61 29 20 28 63 61 72 20  | a.b).(funcall.pred.(car.a).(car. | 
| 20e0 |  62 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b    76 61 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 76  | b)))))..(defun.kvalist-sort-by-v | 
| 2100 |  61 6c 75 65 20 28 61 6c 69 73 74 20 70 72 65 64    29 0a 20 20 22 53 6f 72 74 20 41 4c 49 53 54 20  | alue.(alist.pred)..."Sort.ALIST. | 
| 2120 |  62 79 20 76 61 6c 75 65 20 77 69 74 68 20 50 52    45 44 2e 22 0a 20 20 28 73 6f 72 74 20 61 6c 69  | by.value.with.PRED."...(sort.ali | 
| 2140 |  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 72 65 64 20 28  | st.(lambda.(a.b).(funcall.pred.( | 
| 2160 |  63 64 72 20 61 29 20 28 63 64 72 20 62 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69  | cdr.a).(cdr.b)))))..(defun.kvali | 
| 2180 |  73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 20    28 61 6c 69 73 74 20 26 72 65 73 74 20 6b 65 79  | st->filter-keys.(alist.&rest.key | 
| 21a0 |  73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65    20 41 4c 49 53 54 20 66 69 6c 74 65 72 65 64 20  | s)..."Return.the.ALIST.filtered. | 
| 21c0 |  74 6f 20 74 68 65 20 4b 45 59 53 20 6c 69 73 74    2e 0a 0a 4f 6e 6c 79 20 70 61 69 72 73 20 77 68  | to.the.KEYS.list...Only.pairs.wh | 
| 21e0 |  65 72 65 20 74 68 65 20 63 61 72 20 69 73 20 61    20 60 6d 65 6d 62 65 72 27 20 6f 66 20 4b 45 59  | ere.the.car.is.a.`member'.of.KEY | 
| 2200 |  53 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e    65 64 2e 22 0a 20 20 28 6c 6f 6f 70 20 66 6f 72  | S.will.be.returned."...(loop.for | 
| 2220 |  20 61 20 69 6e 20 61 6c 69 73 74 0a 20 20 20 20    20 69 66 20 28 6d 65 6d 62 65 72 20 28 63 61 72  | .a.in.alist......if.(member.(car | 
| 2240 |  20 61 29 20 6b 65 79 73 29 0a 20 20 20 20 20 63    6f 6c 6c 65 63 74 20 61 29 29 0a 0a 28 64 65 66  | .a).keys)......collect.a))..(def | 
| 2260 |  75 6e 20 6b 76 70 6c 69 73 74 2d 3e 66 69 6c 74    65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74 20 26  | un.kvplist->filter-keys.(plist.& | 
| 2280 |  72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 46 69    6c 74 65 72 20 74 68 65 20 70 6c 69 73 74 20 74  | rest.keys)..."Filter.the.plist.t | 
| 22a0 |  6f 20 6a 75 73 74 20 74 68 6f 73 65 20 6d 61 74    63 68 69 6e 67 20 4b 45 59 53 2e 0a 0a 60 6b 76  | o.just.those.matching.KEYS...`kv | 
| 22c0 |  61 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65    79 73 27 20 69 73 20 61 63 74 75 61 6c 6c 79 20  | alist->filter-keys'.is.actually. | 
| 22e0 |  75 73 65 64 20 74 6f 20 64 6f 20 74 68 69 73 20    77 6f 72 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28  | used.to.do.this.work."...(let.(( | 
| 2300 |  73 79 6d 6b 65 79 73 0a 20 20 20 20 20 20 20 20    20 28 6c 6f 6f 70 20 66 6f 72 20 6b 20 69 6e 20  | symkeys..........(loop.for.k.in. | 
| 2320 |  6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 63 6f 6c 6c 65 63 74 20 28 6c 65 74 20 28 28  | keys.............collect.(let.(( | 
| 2340 |  73 74 72 6b 65 79 20 28 73 79 6d 62 6f 6c 2d 6e    61 6d 65 20 6b 29 29 29 0a 20 20 20 20 20 20 20  | strkey.(symbol-name.k)))........ | 
| 2360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 28 65 71 75 61 6c 20 28 73 75 62 73 74  | ...............(if.(equal.(subst | 
| 2380 |  72 69 6e 67 20 73 74 72 6b 65 79 20 30 20 31 29    20 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20  | ring.strkey.0.1).":")........... | 
| 23a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 6e 74 65 72 6e 20 28 73 75 62 73 74 72 69  | ................(intern.(substri | 
| 23c0 |  6e 67 20 73 74 72 6b 65 79 20 31 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ng.strkey.1))................... | 
| 23e0 |  20 20 20 20 20 20 20 20 6b 29 29 29 29 29 0a 20    20 20 20 28 6b 76 61 6c 69 73 74 2d 3e 70 6c 69  | ........k))))).....(kvalist->pli | 
| 2400 |  73 74 0a 20 20 20 20 20 28 61 70 70 6c 79 0a 20    20 20 20 20 20 27 6b 76 61 6c 69 73 74 2d 3e 66  | st......(apply.......'kvalist->f | 
| 2420 |  69 6c 74 65 72 2d 6b 65 79 73 0a 20 20 20 20 20    20 28 63 6f 6e 73 20 28 6b 76 70 6c 69 73 74 2d  | ilter-keys.......(cons.(kvplist- | 
| 2440 |  3e 61 6c 69 73 74 20 70 6c 69 73 74 29 20 73 79    6d 6b 65 79 73 29 29 29 29 29 0a 0a 28 64 65 66  | >alist.plist).symkeys)))))..(def | 
| 2460 |  75 6e 20 6b 76 70 6c 69 73 74 32 2d 3e 66 69 6c    74 65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74 32  | un.kvplist2->filter-keys.(plist2 | 
| 2480 |  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 65 20 50 4c 49 53 54  | .&rest.keys)..."Return.the.PLIST | 
| 24a0 |  32 20 28 61 20 6c 69 73 74 20 6f 66 20 70 6c 69    73 74 73 29 20 66 69 6c 74 65 72 65 64 20 74 6f  | 2.(a.list.of.plists).filtered.to | 
| 24c0 |  20 74 68 65 20 4b 45 59 53 2e 22 0a 20 20 28 6c    6f 6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e  | .the.KEYS."...(loop.for.plist.in | 
| 24e0 |  20 70 6c 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 70  | .plist2......collect.(apply.'kvp | 
| 2500 |  6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79    73 20 28 63 6f 6e 73 20 70 6c 69 73 74 20 6b 65  | list->filter-keys.(cons.plist.ke | 
| 2520 |  79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b    76 61 6c 69 73 74 32 2d 3e 66 69 6c 74 65 72 2d  | ys))))..(defun.kvalist2->filter- | 
| 2540 |  6b 65 79 73 20 28 61 6c 69 73 74 32 20 26 72 65    73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75  | keys.(alist2.&rest.keys)..."Retu | 
| 2560 |  72 6e 20 74 68 65 20 41 4c 49 53 54 32 20 28 61    20 6c 69 73 74 20 6f 66 20 61 6c 69 73 74 73 29  | rn.the.ALIST2.(a.list.of.alists) | 
| 2580 |  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 6c 6f 6f 70 20  | .filtered.to.the.KEYS."...(loop. | 
| 25a0 |  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 63 6f 6c 6c 65 63 74  | for.alist.in.alist2......collect | 
| 25c0 |  20 28 61 70 70 6c 79 20 27 6b 76 61 6c 69 73 74    2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 20 28 63  | .(apply.'kvalist->filter-keys.(c | 
| 25e0 |  6f 6e 73 20 61 6c 69 73 74 20 6b 65 79 73 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69  | ons.alist.keys))))..(defun.kvali | 
| 2600 |  73 74 32 2d 3e 61 6c 69 73 74 20 28 61 6c 69 73    74 32 20 63 61 72 2d 6b 65 79 20 63 64 72 2d 6b  | st2->alist.(alist2.car-key.cdr-k | 
| 2620 |  65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f    70 65 72 29 0a 20 20 22 52 65 64 75 63 65 20 74  | ey.&optional.proper)..."Reduce.t | 
| 2640 |  68 65 20 41 4c 49 53 54 32 20 28 61 20 6c 69 73    74 20 6f 66 20 61 6c 69 73 74 73 29 20 74 6f 20  | he.ALIST2.(a.list.of.alists).to. | 
| 2660 |  61 20 73 69 6e 67 6c 65 20 61 6c 69 73 74 2e 0a    0a 43 41 52 2d 4b 45 59 20 69 73 20 74 68 65 20  | a.single.alist...CAR-KEY.is.the. | 
| 2680 |  6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c 69 73    74 20 74 6f 20 75 73 65 20 61 73 20 74 68 65 20  | key.of.each.alist.to.use.as.the. | 
| 26a0 |  72 65 73 75 6c 74 69 6e 67 20 6b 65 79 20 61 6e    64 0a 43 44 52 2d 4b 45 59 20 69 73 20 74 68 65  | resulting.key.and.CDR-KEY.is.the | 
| 26c0 |  20 6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c 69    73 74 20 74 6f 20 75 73 65 72 20 61 73 20 74 68  | .key.of.each.alist.to.user.as.th | 
| 26e0 |  65 20 72 65 73 75 6c 74 69 6e 67 20 63 64 72 2e    0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69  | e.resulting.cdr...For.example,.i | 
| 2700 |  66 20 43 41 52 2d 4b 45 59 20 69 73 20 60 65 6d    61 69 6c 27 20 61 6e 64 20 43 44 52 2d 4b 45 59  | f.CAR-KEY.is.`email'.and.CDR-KEY | 
| 2720 |  20 69 73 20 60 6e 61 6d 65 27 20 74 68 65 0a 72    65 63 6f 72 64 73 3a 0a 0a 20 20 27 28 28 75 73  | .is.`name'.the.records:....'((us | 
| 2740 |  65 72 20 2e 20 5c 22 6e 69 63 5c 22 29 28 6e 61    6d 65 20 2e 20 5c 22 4e 69 63 5c 22 29 28 65 6d  | er...\"nic\")(name...\"Nic\")(em | 
| 2760 |  61 69 6c 20 2e 20 5c 22 6e 69 63 40 64 6f 6d 61    69 6e 5c 22 29 0a 20 20 20 20 28 75 73 65 72 20  | ail...\"nic@domain\").....(user. | 
| 2780 |  2e 20 5c 22 6a 69 6d 5c 22 29 28 6e 61 6d 65 20    2e 20 5c 22 4a 69 6d 5c 22 29 28 65 6d 61 69 6c  | ..\"jim\")(name...\"Jim\")(email | 
| 27a0 |  20 2e 20 5c 22 6a 69 6d 40 64 6f 6d 61 69 6e 5c    22 29 29 0a 0a 63 6f 75 6c 64 20 62 65 20 72 65  | ...\"jim@domain\"))..could.be.re | 
| 27c0 |  64 75 63 65 64 20 74 6f 3a 0a 0a 20 20 27 28 28    5c 22 6e 69 63 40 64 6f 6d 61 69 6e 5c 22 20 2e  | duced.to:....'((\"nic@domain\".. | 
| 27e0 |  20 5c 22 4e 69 63 5c 22 29 0a 20 20 20 20 28 5c    22 6a 69 6d 40 64 6f 6d 61 69 6e 5c 22 20 2e 20  | .\"Nic\").....(\"jim@domain\"... | 
| 2800 |  5c 22 4a 69 63 5c 22 29 29 0a 0a 49 66 20 50 52    4f 50 45 52 20 69 73 20 60 74 27 20 74 68 65 6e  | \"Jic\"))..If.PROPER.is.`t'.then | 
| 2820 |  20 74 68 65 20 61 6c 69 73 74 20 69 73 20 61 20    6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 20 6c  | .the.alist.is.a.list.of.proper.l | 
| 2840 |  69 73 74 73 2c 20 6e 6f 74 0a 63 6f 6e 73 20 63    65 6c 6c 73 2e 22 0a 20 20 28 6c 6f 6f 70 20 66  | ists,.not.cons.cells."...(loop.f | 
| 2860 |  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 20 63 6f 6c 6c 65 63  | or.alist.in.alist2........collec | 
| 2880 |  74 20 28 61 70 70 6c 79 20 28 69 66 20 70 72 6f    70 65 72 20 27 6c 69 73 74 20 27 63 6f 6e 73 29  | t.(apply.(if.proper.'list.'cons) | 
| 28a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20  | .......................(list.... | 
| 28c0 |  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 2d 64 65 66 61 75  | ....................(assoc-defau | 
| 28e0 |  6c 74 20 63 61 72 2d 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  | lt.car-key.alist)............... | 
| 2900 |  20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 2d    64 65 66 61 75 6c 74 20 63 64 72 2d 6b 65 79 20  | .........(assoc-default.cdr-key. | 
| 2920 |  61 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6b 76 61 6c 69 73 74 2d 6b 65 79 73 2d  | alist)))))..(defun.kvalist-keys- | 
| 2940 |  3e 2a 20 28 61 6c 69 73 74 20 66 6e 29 0a 20 20    22 43 6f 6e 76 65 72 74 20 74 68 65 20 6b 65 79  | >*.(alist.fn)..."Convert.the.key | 
| 2960 |  73 20 6f 66 20 41 4c 49 53 54 20 74 68 72 6f 75    67 68 20 46 4e 2e 22 0a 20 20 28 6d 61 70 63 61  | s.of.ALIST.through.FN."...(mapca | 
| 2980 |  72 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61    69 72 29 0a 20 20 20 20 20 28 63 6f 6e 73 0a 20  | r....(lambda.(pair)......(cons.. | 
| 29a0 |  20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e    20 28 63 61 72 20 70 61 69 72 29 29 0a 20 20 20  | .....(funcall.fn.(car.pair)).... | 
| 29c0 |  20 20 20 28 63 64 72 20 70 61 69 72 29 29 29 0a    20 20 20 61 6c 69 73 74 29 29 0a 0a 28 64 65 66  | ...(cdr.pair)))....alist))..(def | 
| 29e0 |  75 6e 2a 20 6b 76 61 6c 69 73 74 2d 6b 65 79 73    2d 3e 73 79 6d 62 6f 6c 73 20 28 61 6c 69 73 74  | un*.kvalist-keys->symbols.(alist | 
| 2a00 |  20 26 6b 65 79 20 28 66 69 72 73 74 2d 66 6e 20    27 69 64 65 6e 74 69 74 79 29 29 0a 20 20 22 43  | .&key.(first-fn.'identity))..."C | 
| 2a20 |  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 69 6e 74 6f 20 73 79  | onvert.the.keys.of.ALIST.into.sy | 
| 2a40 |  6d 62 6f 6c 73 2e 0a 0a 49 66 20 6b 65 79 20 70    61 72 61 6d 65 74 65 72 20 46 49 52 53 54 2d 46  | mbols...If.key.parameter.FIRST-F | 
| 2a60 |  4e 20 69 73 20 70 72 65 73 65 6e 74 20 69 74 20    73 68 6f 75 6c 64 20 62 65 20 61 20 66 75 6e 63  | N.is.present.it.should.be.a.func | 
| 2a80 |  74 69 6f 6e 0a 77 68 69 63 68 20 77 69 6c 6c 20    62 65 20 75 73 65 64 20 74 6f 20 66 69 72 73 74  | tion.which.will.be.used.to.first | 
| 2aa0 |  20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 20 73    74 72 69 6e 67 20 6b 65 79 2e 20 20 41 20 70 6f  | .transform.the.string.key...A.po | 
| 2ac0 |  70 75 6c 61 72 0a 63 68 6f 69 63 65 20 6d 69 67    68 74 20 62 65 20 60 64 6f 77 6e 63 61 73 65 27  | pular.choice.might.be.`downcase' | 
| 2ae0 |  20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f    20 63 61 75 73 65 20 61 6c 6c 20 73 79 6d 62 6f  | .for.example,.to.cause.all.symbo | 
| 2b00 |  6c 20 6b 65 79 73 0a 74 6f 20 62 65 20 6c 6f 77    65 72 2d 63 61 73 65 2e 22 0a 20 20 28 6b 76 61  | l.keys.to.be.lower-case."...(kva | 
| 2b20 |  6c 69 73 74 2d 6b 65 79 73 2d 3e 2a 0a 20 20 20    61 6c 69 73 74 0a 20 20 20 28 6c 61 6d 62 64 61  | list-keys->*....alist....(lambda | 
| 2b40 |  20 28 6b 65 79 29 0a 20 20 20 20 20 28 69 6e 74    65 72 6e 20 28 66 75 6e 63 61 6c 6c 20 66 69 72  | .(key)......(intern.(funcall.fir | 
| 2b60 |  73 74 2d 66 6e 20 28 66 6f 72 6d 61 74 20 22 25    73 22 20 6b 65 79 29 29 29 29 29 29 0a 0a 28 64  | st-fn.(format."%s".key))))))..(d | 
| 2b80 |  65 66 75 6e 20 6b 76 61 6c 69 73 74 32 2d 66 69    6c 74 65 72 20 28 61 6c 69 73 74 32 20 66 6e 29  | efun.kvalist2-filter.(alist2.fn) | 
| 2ba0 |  0a 20 20 22 46 69 6c 74 65 72 20 74 68 65 20 6c    69 73 74 20 6f 66 20 61 6c 69 73 74 73 20 77 69  | ..."Filter.the.list.of.alists.wi | 
| 2bc0 |  74 68 20 46 4e 2e 22 0a 20 20 28 6c 65 74 20 28    76 61 6c 75 65 29 0a 20 20 20 20 28 6c 6f 6f 70  | th.FN."...(let.(value).....(loop | 
| 2be0 |  20 66 6f 72 20 72 65 63 20 69 6e 20 61 6c 69 73    74 32 0a 20 20 20 20 20 20 20 64 6f 20 28 73 65  | .for.rec.in.alist2........do.(se | 
| 2c00 |  74 71 20 76 61 6c 75 65 20 28 66 75 6e 63 61 6c    6c 20 66 6e 20 72 65 63 29 29 0a 20 20 20 20 20  | tq.value.(funcall.fn.rec))...... | 
| 2c20 |  20 20 69 66 20 76 61 6c 75 65 0a 20 20 20 20 20    20 20 63 6f 6c 6c 65 63 74 20 72 65 63 29 29 29  | ..if.value........collect.rec))) | 
| 2c40 |  0a 0a 28 64 65 66 75 6e 20 6b 76 69 64 65 6e 74    69 74 79 20 28 61 20 62 29 0a 20 20 22 52 65 74  | ..(defun.kvidentity.(a.b)..."Ret | 
| 2c60 |  75 72 6e 73 20 61 20 63 6f 6e 73 20 6f 66 20 41    20 42 2e 22 0a 20 20 28 63 6f 6e 73 20 61 20 62  | urns.a.cons.of.A.B."...(cons.a.b | 
| 2c80 |  29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 63 61 72    20 28 61 20 62 29 0a 20 20 22 47 69 76 65 6e 20  | ))..(defun.kvcar.(a.b)..."Given. | 
| 2ca0 |  41 20 42 20 72 65 74 75 72 6e 73 20 41 2e 22 0a    20 20 61 29 0a 0a 28 64 65 66 75 6e 20 6b 76 63  | A.B.returns.A."...a)..(defun.kvc | 
| 2cc0 |  64 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 42 2e  | dr.(a.b)..."Given.A.B.returns.B. | 
| 2ce0 |  22 0a 20 20 62 29 0a 0a 28 64 65 66 75 6e 20 6b    76 63 6d 70 20 28 61 20 62 29 0a 20 20 22 44 6f  | "...b)..(defun.kvcmp.(a.b)..."Do | 
| 2d00 |  20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 66    20 74 68 65 20 74 77 6f 20 76 61 6c 75 65 73 20  | .a.comparison.of.the.two.values. | 
| 2d20 |  75 73 69 6e 67 20 70 72 69 6e 74 61 62 6c 65 20    73 79 6e 74 61 78 2e 0a 0a 55 73 65 20 74 68 69  | using.printable.syntax...Use.thi | 
| 2d40 |  73 20 61 73 20 74 68 65 20 66 75 6e 63 74 69 6f    6e 20 74 6f 20 70 61 73 73 20 74 6f 20 60 73 6f  | s.as.the.function.to.pass.to.`so | 
| 2d60 |  72 74 27 2e 22 0a 20 20 28 73 74 72 69 6e 67 2d    6c 65 73 73 70 20 28 69 66 20 61 20 28 66 6f 72  | rt'."...(string-lessp.(if.a.(for | 
| 2d80 |  6d 61 74 20 22 25 53 22 20 61 29 20 22 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mat."%S".a)."")................. | 
| 2da0 |  28 69 66 20 62 20 28 66 6f 72 6d 61 74 20 22 25    53 22 20 62 29 20 22 22 29 29 29 0a 0a 28 64 65  | (if.b.(format."%S".b)."")))..(de | 
| 2dc0 |  66 75 6e 20 6b 76 71 73 6f 72 74 20 28 6c 73 74    29 0a 20 20 22 44 6f 20 61 20 73 6f 72 74 20 75  | fun.kvqsort.(lst)..."Do.a.sort.u | 
| 2de0 |  73 69 6e 67 20 60 6b 76 63 6d 70 27 2e 22 0a 20    20 28 73 6f 72 74 20 6c 73 74 20 27 6b 76 63 6d  | sing.`kvcmp'."...(sort.lst.'kvcm | 
| 2e00 |  70 29 29 0a 0a 28 70 72 6f 67 6e 0a 20 20 28 70    75 74 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 0a  | p))..(progn...(put.'kvalist-key. | 
| 2e20 |  20 20 20 20 20 20 20 27 65 72 72 6f 72 2d 63 6f    6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20  | .......'error-conditions........ | 
| 2e40 |  27 28 65 72 72 6f 72 29 29 0a 20 20 28 70 75 74    20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 0a 20 20  | '(error))...(put.'kvalist-key... | 
| 2e60 |  20 20 20 20 20 27 65 72 72 6f 72 2d 6d 65 73 73    61 67 65 0a 20 20 20 20 20 20 20 22 4e 6f 20 73  | .....'error-message........"No.s | 
| 2e80 |  75 63 68 20 6b 65 79 20 66 6f 75 6e 64 20 69 6e    20 61 6c 69 73 74 2e 22 29 29 0a 0a 28 64 65 66  | uch.key.found.in.alist."))..(def | 
| 2ea0 |  75 6e 20 6b 76 61 6c 69 73 74 2d 73 65 74 2d 76    61 6c 75 65 21 20 28 61 6c 69 73 74 20 6b 65 79  | un.kvalist-set-value!.(alist.key | 
| 2ec0 |  20 76 61 6c 75 65 29 0a 20 20 22 44 65 73 74 72    75 63 74 69 76 65 6c 79 20 73 65 74 20 74 68 65  | .value)..."Destructively.set.the | 
| 2ee0 |  20 76 61 6c 75 65 20 6f 66 20 4b 45 59 20 74 6f    20 56 41 4c 55 45 20 69 6e 20 41 4c 49 53 54 2e  | .value.of.KEY.to.VALUE.in.ALIST. | 
| 2f00 |  0a 0a 49 66 20 74 68 65 20 61 73 73 6f 63 20 69    73 20 6e 6f 74 20 66 6f 75 6e 64 20 74 68 69 73  | ..If.the.assoc.is.not.found.this | 
| 2f20 |  20 61 64 64 73 20 69 74 20 74 6f 20 61 6c 69 73    74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 65 6c  | .adds.it.to.alist."...(let.((cel | 
| 2f40 |  6c 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 28 69 66 20 28 63  | l.(assoc.key.alist))).....(if.(c | 
| 2f60 |  6f 6e 73 70 20 63 65 6c 6c 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 63 64 72 20 63 65 6c 6c 20  | onsp.cell).........(setcdr.cell. | 
| 2f80 |  76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 3b    3b 20 45 6c 73 65 20 77 68 61 74 20 74 6f 20 64  | value).........;;.Else.what.to.d | 
| 2fa0 |  6f 3f 0a 20 20 20 20 20 20 20 20 28 73 69 67 6e    61 6c 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 20  | o?.........(signal.'kvalist-key. | 
| 2fc0 |  28 6c 69 73 74 20 61 6c 69 73 74 20 6b 65 79 29    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 64  | (list.alist.key)))))..(defun.kvd | 
| 2fe0 |  6f 74 61 73 73 6f 63 2d 66 6e 20 28 65 78 70 72    20 74 61 62 6c 65 20 66 75 6e 63 29 0a 20 20 22  | otassoc-fn.(expr.table.func)..." | 
| 3000 |  55 73 65 20 74 68 65 20 64 6f 74 74 65 64 20 45    58 50 52 20 74 6f 20 61 63 63 65 73 73 20 64 65  | Use.the.dotted.EXPR.to.access.de | 
| 3020 |  65 70 6c 79 20 6e 65 73 74 65 64 20 64 61 74 61    20 69 6e 20 54 41 42 4c 45 2e 0a 0a 45 58 50 52  | eply.nested.data.in.TABLE...EXPR | 
| 3040 |  20 69 73 20 61 20 64 6f 74 20 73 65 70 61 72 61    74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 2c 20  | .is.a.dot.separated.expression,. | 
| 3060 |  65 69 74 68 65 72 20 61 20 73 79 6d 62 6f 6c 20    6f 72 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f 72  | either.a.symbol.or.a.string..For | 
| 3080 |  20 65 78 61 6d 70 6c 65 3a 0a 0a 20 5c 22 61 2e    62 2e 63 5c 22 0a 0a 6f 72 3a 0a 0a 20 27 61 2e  | .example:...\"a.b.c\"..or:...'a. | 
| 30a0 |  62 2e 63 0a 0a 49 66 20 74 68 65 20 45 58 50 52    20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68 65  | b.c..If.the.EXPR.is.a.symbol.the | 
| 30c0 |  6e 20 74 68 65 20 6b 65 79 73 20 6f 66 20 74 68    65 20 61 6c 69 73 74 20 61 72 65 20 61 6c 73 6f  | n.the.keys.of.the.alist.are.also | 
| 30e0 |  0a 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20    73 79 6d 62 6f 6c 73 2e 0a 0a 54 41 42 4c 45 20  | .expected.to.be.symbols...TABLE. | 
| 3100 |  69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 62    65 20 61 6e 20 61 6c 69 73 74 20 63 75 72 72 65  | is.expected.to.be.an.alist.curre | 
| 3120 |  6e 74 6c 79 2e 0a 0a 46 55 4e 43 20 69 73 20 73    6f 6d 65 20 73 6f 72 74 20 6f 66 20 60 61 73 73  | ntly...FUNC.is.some.sort.of.`ass | 
| 3140 |  6f 63 27 20 6c 69 6b 65 20 66 75 6e 63 74 69 6f    6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61  | oc'.like.function."...(let.((sta | 
| 3160 |  74 65 20 74 61 62 6c 65 29 0a 20 20 20 20 20 20    20 20 28 70 61 72 74 73 0a 20 20 20 20 20 20 20  | te.table).........(parts........ | 
| 3180 |  20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 65    78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ..(if.(symbolp.expr)............ | 
| 31a0 |  20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 27 69 6e 74 65 72 6e 0a  | ..(mapcar...............'intern. | 
| 31c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    70 6c 69 74 2d 73 74 72 69 6e 67 20 28 73 79 6d  | ..............(split-string.(sym | 
| 31e0 |  62 6f 6c 2d 6e 61 6d 65 20 65 78 70 72 29 20 22    5c 5c 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20  | bol-name.expr)."\\.")).......... | 
| 3200 |  20 20 20 20 3b 3b 20 45 6c 73 65 20 69 74 27 73    20 61 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20  | ....;;.Else.it's.a.string....... | 
| 3220 |  20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74    72 69 6e 67 20 65 78 70 72 20 22 5c 5c 2e 22 29  | .......(split-string.expr."\\.") | 
| 3240 |  29 29 29 0a 20 20 20 20 28 63 61 74 63 68 20 27    62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68 69  | ))).....(catch.'break.......(whi | 
| 3260 |  6c 65 20 28 6c 69 73 74 70 20 70 61 72 74 73 29    0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28  | le.(listp.parts).........(let.(( | 
| 3280 |  74 72 61 76 65 72 73 65 20 28 66 75 6e 63 61 6c    6c 20 66 75 6e 63 20 28 63 61 72 20 70 61 72 74  | traverse.(funcall.func.(car.part | 
| 32a0 |  73 29 20 73 74 61 74 65 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 74  | s).state)))...........(setq.part | 
| 32c0 |  73 20 28 63 64 72 20 70 61 72 74 73 29 29 0a 20    20 20 20 20 20 20 20 20 20 28 69 66 20 70 61 72  | s.(cdr.parts))...........(if.par | 
| 32e0 |  74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 73 74 61 74 65 20 28 63 64  | ts...............(setq.state.(cd | 
| 3300 |  72 20 74 72 61 76 65 72 73 65 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | r.traverse))...............(thro | 
| 3320 |  77 20 27 62 72 65 61 6b 20 28 63 64 72 20 74 72    61 76 65 72 73 65 29 29 29 29 29 29 29 29 0a 0a  | w.'break.(cdr.traverse)))))))).. | 
| 3340 |  28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73 6f    63 20 28 65 78 70 72 20 74 61 62 6c 65 29 0a 20  | (defun.kvdotassoc.(expr.table).. | 
| 3360 |  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 69 74  | ."Dotted.expression.handling.wit | 
| 3380 |  68 20 60 61 73 73 6f 63 27 2e 22 0a 20 20 28 6b    76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 65 78 70  | h.`assoc'."...(kvdotassoc-fn.exp | 
| 33a0 |  72 20 74 61 62 6c 65 20 27 61 73 73 6f 63 29 29    0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73  | r.table.'assoc))..(defun.kvdotas | 
| 33c0 |  73 71 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  | sq.(expr.table)..."Dotted.expres | 
| 33e0 |  73 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 77 69    74 68 20 60 61 73 73 71 27 2e 22 0a 20 20 28 6b  | sion.handling.with.`assq'."...(k | 
| 3400 |  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 71 29 29 0a  | vdotassoc-fn.expr.table.'assq)). | 
| 3420 |  0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73    6f 63 3d 20 28 65 78 70 72 20 76 61 6c 75 65 20  | .(defun.kvdotassoc=.(expr.value. | 
| 3440 |  74 61 62 6c 65 29 0a 20 20 28 6c 65 74 20 28 28    76 20 28 6b 76 64 6f 74 61 73 73 6f 63 20 65 78  | table)...(let.((v.(kvdotassoc.ex | 
| 3460 |  70 72 20 74 61 62 6c 65 29 29 29 0a 20 20 20 20    28 61 6e 64 20 76 20 28 65 71 75 61 6c 20 76 20  | pr.table))).....(and.v.(equal.v. | 
| 3480 |  76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64 65    66 61 6c 69 61 73 20 27 64 6f 74 61 73 73 6f 63  | value).v)))..(defalias.'dotassoc | 
| 34a0 |  20 27 6b 76 64 6f 74 61 73 73 6f 63 29 0a 28 64    65 66 61 6c 69 61 73 20 27 64 6f 74 61 73 73 71  | .'kvdotassoc).(defalias.'dotassq | 
| 34c0 |  20 27 6b 76 64 6f 74 61 73 73 71 29 0a 0a 3b 3b    20 54 68 61 6e 6b 20 79 6f 75 20 74 61 79 6c 61  | .'kvdotassq)..;;.Thank.you.tayla | 
| 34e0 |  6e 75 62 20 66 6f 72 20 74 68 69 73 20 77 6f 6e    64 65 72 66 75 6c 20 61 62 73 74 72 61 63 74 69  | nub.for.this.wonderful.abstracti | 
| 3500 |  6f 6e 2e 0a 28 64 65 66 6d 61 63 72 6f 20 6b 76    2d 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d  | on..(defmacro.kv--destructuring- | 
| 3520 |  6d 61 70 20 28 6d 61 70 2d 66 75 6e 63 74 69 6f    6e 20 61 72 67 73 20 73 65 71 75 65 6e 63 65 20  | map.(map-function.args.sequence. | 
| 3540 |  26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 48    65 6c 70 65 72 20 6d 61 63 72 6f 20 66 6f 72 20  | &rest.body)..."Helper.macro.for. | 
| 3560 |  60 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d    61 70 63 61 72 27 20 61 6e 64 20 60 64 65 73 74  | `destructuring-mapcar'.and.`dest | 
| 3580 |  72 75 63 74 75 72 69 6e 67 2d 6d 61 70 27 2e 22    0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64  | ructuring-map'."...(declare.(ind | 
| 35a0 |  65 6e 74 20 33 29 29 0a 20 20 28 6c 65 74 20 28    28 65 6e 74 72 79 20 28 67 65 6e 73 79 6d 29 29  | ent.3))...(let.((entry.(gensym)) | 
| 35c0 |  29 0a 20 20 20 20 60 28 2c 6d 61 70 2d 66 75 6e    63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 2c  | ).....`(,map-function.(lambda.(, | 
| 35e0 |  65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65  | entry).......................(de | 
| 3600 |  73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64    20 2c 61 72 67 73 20 2c 65 6e 74 72 79 20 2c 40  | structuring-bind.,args.,entry.,@ | 
| 3620 |  62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 2c 73 65 71 75  | body)).....................,sequ | 
| 3640 |  65 6e 63 65 29 29 29 0a 0a 28 64 65 66 6d 61 63    72 6f 20 6b 76 6d 61 70 2d 62 69 6e 64 20 28 61  | ence)))..(defmacro.kvmap-bind.(a | 
| 3660 |  72 67 73 20 73 65 78 70 20 73 65 71 29 0a 20 20    22 41 20 68 79 62 72 69 64 20 6f 66 20 60 64 65  | rgs.sexp.seq)..."A.hybrid.of.`de | 
| 3680 |  73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64    27 20 61 6e 64 20 60 6d 61 70 63 61 72 27 0a 41  | structuring-bind'.and.`mapcar'.A | 
| 36a0 |  52 47 53 20 73 68 61 6c 6c 20 62 65 20 6f 66 20    74 68 65 20 66 6f 72 6d 20 75 73 65 64 20 77 69  | RGS.shall.be.of.the.form.used.wi | 
| 36c0 |  74 68 20 60 64 65 73 74 72 75 63 74 75 72 69 6e    67 2d 62 69 6e 64 27 0a 0a 55 6e 6c 69 6b 65 20  | th.`destructuring-bind'..Unlike. | 
| 36e0 |  6d 6f 73 74 20 6f 74 68 65 72 20 6d 61 70 70 69    6e 67 20 66 6f 72 6d 73 20 74 68 69 73 20 69 73  | most.other.mapping.forms.this.is | 
| 3700 |  20 61 20 6d 61 63 72 6f 20 69 6e 74 65 6e 64 65    64 20 74 6f 20 62 65 0a 75 73 65 64 20 66 6f 72  | .a.macro.intended.to.be.used.for | 
| 3720 |  20 73 74 72 75 63 74 75 72 61 6c 20 74 72 61 6e    73 66 6f 72 6d 61 74 69 6f 6e 73 2c 20 73 6f 20  | .structural.transformations,.so. | 
| 3740 |  74 68 65 20 65 78 70 65 63 74 65 64 20 75 73 61    67 65 20 77 69 6c 6c 0a 62 65 20 74 68 61 74 20  | the.expected.usage.will.be.that. | 
| 3760 |  41 52 47 53 20 64 65 73 63 72 69 62 65 73 20 74    68 65 20 73 74 72 75 63 74 75 72 65 20 6f 66 20  | ARGS.describes.the.structure.of. | 
| 3780 |  74 68 65 20 69 74 65 6d 73 20 69 6e 20 53 45 51    2c 20 61 6e 64 0a 53 45 58 50 20 77 69 6c 6c 20  | the.items.in.SEQ,.and.SEXP.will. | 
| 37a0 |  64 65 73 63 72 69 62 65 20 74 68 65 20 73 74 72    75 63 74 75 72 65 20 64 65 73 69 72 65 64 2e 22  | describe.the.structure.desired." | 
| 37c0 |  0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64    65 6e 74 20 32 29 29 0a 20 20 60 28 6b 76 2d 2d  | ...(declare.(indent.2))...`(kv-- | 
| 37e0 |  64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d 61    70 20 6d 61 70 63 61 72 20 2c 61 72 67 73 20 2c  | destructuring-map.mapcar.,args., | 
| 3800 |  73 65 71 20 2c 73 65 78 70 29 29 0a 0a 28 64 65    66 61 6c 69 61 73 20 27 6d 61 70 2d 62 69 6e 64  | seq.,sexp))..(defalias.'map-bind | 
| 3820 |  20 27 6b 76 6d 61 70 2d 62 69 6e 64 29 0a 0a 28    64 65 66 75 6e 20 6b 76 70 6c 69 73 74 2d 6d 65  | .'kvmap-bind)..(defun.kvplist-me | 
| 3840 |  72 67 65 20 28 26 72 65 73 74 20 70 6c 69 73 74    73 29 0a 20 20 22 4d 65 72 67 65 20 74 68 65 20  | rge.(&rest.plists)..."Merge.the. | 
| 3860 |  32 6e 64 20 61 6e 64 20 73 75 62 73 65 71 75 65    6e 74 20 70 6c 69 73 74 73 20 69 6e 74 6f 20 74  | 2nd.and.subsequent.plists.into.t | 
| 3880 |  68 65 20 66 69 72 73 74 2e 0a 0a 56 61 6c 75 65    73 20 73 65 74 20 62 79 20 6c 69 73 74 73 20 74  | he.first...Values.set.by.lists.t | 
| 38a0 |  6f 20 74 68 65 20 6c 65 66 74 20 61 72 65 20 63    6c 6f 62 62 65 72 65 64 2e 22 0a 20 20 28 6c 65  | o.the.left.are.clobbered."...(le | 
| 38c0 |  74 20 28 28 72 65 73 75 6c 74 20 28 63 61 72 20    70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20  | t.((result.(car.plists))........ | 
| 38e0 |  20 28 70 6c 69 73 74 73 20 28 63 64 72 20 70 6c    69 73 74 73 29 29 29 0a 20 20 20 20 28 6c 6f 6f  | .(plists.(cdr.plists))).....(loo | 
| 3900 |  70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20 70    6c 69 73 74 73 20 64 6f 0a 20 20 20 20 20 20 20  | p.for.plist.in.plists.do........ | 
| 3920 |  20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 28 6b 65    79 20 76 61 6c 29 20 6f 6e 20 70 6c 69 73 74 20  | ...(loop.for.(key.val).on.plist. | 
| 3940 |  62 79 20 27 63 64 64 72 20 64 6f 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | by.'cddr.do.................(set | 
| 3960 |  71 20 72 65 73 75 6c 74 20 28 70 6c 69 73 74 2d    70 75 74 20 72 65 73 75 6c 74 20 6b 65 79 20 76  | q.result.(plist-put.result.key.v | 
| 3980 |  61 6c 29 29 29 29 0a 20 20 20 20 72 65 73 75 6c    74 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6b  | al)))).....result))..(provide.'k | 
| 39a0 |  76 29 0a 28 70 72 6f 76 69 64 65 20 27 64 6f 74    61 73 73 6f 63 29 0a 0a 3b 3b 3b 20 6b 76 2e 65  | v).(provide.'dotassoc)..;;;.kv.e | 
| 39c0 |  6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | l.ends.here..................... | 
| 39e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3a00 |  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...... | 
| 3a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3a60 |  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 | 
| 3a80 |  30 30 30 30 36 30 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 31 34 33 00 20 30 00 00 00  | 0000601.00000000000.013143..0... | 
| 3aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3b00 |  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................... | 
| 3b20 |  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................... | 
| 3b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3c00 |  28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 6b 76 22 20 22 32 30 31 34 30 31 30 38 2e 31  | (define-package."kv"."20140108.1 | 
| 3c20 |  35 33 34 22 20 22 6b 65 79 2f 76 61 6c 75 65 20    64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 66  | 534"."key/value.data.structure.f | 
| 3c40 |  75 6e 63 74 69 6f 6e 73 22 20 27 6e 69 6c 20 3a    63 6f 6d 6d 69 74 20 22 37 32 31 31 34 38 34 37  | unctions".'nil.:commit."72114847 | 
| 3c60 |  35 62 63 65 33 38 61 37 30 65 30 62 36 37 38 62    61 38 61 61 39 32 33 36 35 32 65 38 39 30 30 65  | 5bce38a70e0b678ba8aa923652e8900e | 
| 3c80 |  22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28    22 4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20  | ".:authors...'(("Nic.Ferrier"... | 
| 3ca0 |  22 6e 66 65 72 72 69 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  | "nferrier@ferrier.me.uk"))...:ma | 
| 3cc0 |  69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22    4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20 22  | intainers...'(("Nic.Ferrier"..." | 
| 3ce0 |  6e 66 65 72 72 69 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  | nferrier@ferrier.me.uk"))...:mai | 
| 3d00 |  6e 74 61 69 6e 65 72 0a 20 20 27 28 22 4e 69 63    20 46 65 72 72 69 65 72 22 20 2e 20 22 6e 66 65  | ntainer...'("Nic.Ferrier"..."nfe | 
| 3d20 |  72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d 65    2e 75 6b 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64  | rrier@ferrier.me.uk")...:keyword | 
| 3d40 |  73 0a 20 20 27 28 22 6c 69 73 70 22 29 29 0a 3b    3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65  | s...'("lisp")).;;.Local.Variable | 
| 3d60 |  73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f    6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a  | s:.;;.no-byte-compile:.t.;;.End: | 
| 3d80 |  0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 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  | ................................ |