summaryrefslogtreecommitdiff
path: root/localrepo/f-20240308.906.tar
blob: 581b091a02119a56c4643e9afcffb2d9c95f2ba8 (plain)
ofshex dumpascii
0000 66 2d 32 30 32 34 30 33 30 38 2e 39 30 36 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f-20240308.906/.................
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 31 35 37 00 20 35 00 00 00 0000000.00000000000.011157..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 66 2d 32 30 32 34 30 33 30 38 2e 39 30 36 2f 66 2d 73 68 6f 72 74 64 6f 63 2e 65 6c 00 00 00 00 f-20240308.906/f-shortdoc.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 33 37 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 35 36 00 20 30 00 00 00 0033720.00000000000.013556..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 66 2d 73 68 6f 72 74 64 6f 63 2e 65 6c 20 2d 2d 2d 20 53 68 6f 72 74 64 6f 63 20 66 ;;;.f-shortdoc.el.---.Shortdoc.f
0420 6f 72 20 66 2e 65 6c 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 or.f.el.-*-.lexical-binding:.t;.
0440 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 41 75 74 68 no-byte-compile:.t;.-*-..;;.Auth
0460 6f 72 3a 20 4c 75 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 65 6e or:.Lucien.Cartier-Tilet.<lucien
0480 40 70 68 75 6e 64 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 3a 20 4c 75 @phundrak.com>.;;.Maintainer:.Lu
04a0 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 65 6e 40 70 68 75 6e 64 cien.Cartier-Tilet.<lucien@phund
04c0 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 31 2e 30 0a 3b 3b 20 50 61 rak.com>.;;.Version:.0.1.0.;;.Pa
04e0 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 38 2e 31 22 29 29 ckage-Requires:.((emacs."28.1"))
0500 0a 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d .;;.Homepage:.https://github.com
0520 2f 72 65 6a 65 65 70 2f 66 2e 65 6c 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f /rejeep/f.el..;;.This.file.is.no
0540 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f t.part.of.GNU.Emacs..;;.This.pro
0560 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 gram.is.free.software:.you.can.r
0580 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 edistribute.it.and/or.modify.;;.
05a0 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 it.under.the.terms.of.the.GNU.Ge
05c0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 neral.Public.License.as.publishe
05e0 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 d.by.;;.the.Free.Software.Founda
0600 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 tion,.either.version.3.of.the.Li
0620 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e cense,.or.;;.(at.your.option).an
0640 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 y.later.version...;;.This.progra
0660 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 m.is.distributed.in.the.hope.tha
0680 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
06a0 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
06c0 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
06e0 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
0700 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
0720 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
0740 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
0760 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
0780 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 ublic.License.;;.along.with.this
07a0 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f .program...If.not,.see.<https://
07c0 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 0a 3b 3b 3b 20 43 6f www.gnu.org/licenses/>....;;;.Co
07e0 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 53 68 6f 72 74 64 6f 63 20 69 6d 70 6c 65 6d 65 6e 74 mmentary:..;;.Shortdoc.implement
0800 61 74 69 6f 6e 20 66 6f 72 20 66 2e 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 77 68 65 6e ation.for.f.el..;;;.Code:..(when
0820 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 38 2e 31 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e .(version<=."28.1".emacs-version
0840 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 68 6f 72 74 64 6f 63 29 0a 0a 20 20 28 64 65 66 69 )...(require.'shortdoc)....(defi
0860 6e 65 2d 73 68 6f 72 74 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 67 72 6f 75 70 20 66 0a 20 ne-short-documentation-group.f..
0880 20 20 20 22 50 61 74 68 73 22 0a 20 20 20 20 28 66 2d 6a 6f 69 6e 0a 20 20 20 20 20 3a 65 76 61 ..."Paths".....(f-join......:eva
08a0 6c 20 28 66 2d 6a 6f 69 6e 20 22 70 61 74 68 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d l.(f-join."path")......:eval.(f-
08c0 6a 6f 69 6e 20 22 70 61 74 68 22 20 22 74 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d join."path"."to")......:eval.(f-
08e0 6a 6f 69 6e 20 22 2f 22 20 22 70 61 74 68 22 20 22 74 6f 22 20 22 68 65 61 76 65 6e 22 29 0a 20 join."/"."path"."to"."heaven")..
0900 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6a 6f 69 6e 20 22 70 61 74 68 22 20 22 2f 74 6f 22 20 22 ....:eval.(f-join."path"."/to"."
0920 66 69 6c 65 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 70 6c 69 74 0a 20 20 20 20 20 3a 65 76 61 6c file"))......(f-split......:eval
0940 20 28 66 2d 73 70 6c 69 74 20 22 70 61 74 68 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d .(f-split."path")......:eval.(f-
0960 73 70 6c 69 74 20 22 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 split."path/to")......:eval.(f-s
0980 70 6c 69 74 20 22 2f 70 61 74 68 2f 74 6f 2f 68 65 61 76 65 6e 22 29 0a 20 20 20 20 20 3a 65 76 plit."/path/to/heaven")......:ev
09a0 61 6c 20 28 66 2d 73 70 6c 69 74 20 22 7e 2f 62 61 63 6b 2f 74 6f 2f 65 61 72 74 68 22 29 29 0a al.(f-split."~/back/to/earth")).
09c0 0a 20 20 20 20 28 66 2d 65 78 70 61 6e 64 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d .....(f-expand......:no-eval.(f-
09e0 65 78 70 61 6e 64 20 22 6e 61 6d 65 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 expand."name")......:result-stri
0a00 6e 67 20 22 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6e 61 6d 65 22 0a 20 20 20 ng."/default/directory/name"....
0a20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 78 70 61 6e 64 20 22 6e 61 6d 65 22 20 22 6f 74 68 ..:no-eval.(f-expand."name"."oth
0a40 65 72 2f 64 69 72 65 63 74 6f 72 79 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 er/directory")......:result-stri
0a60 6e 67 20 22 6f 74 68 65 72 2f 64 69 72 65 63 74 6f 72 79 2f 6e 61 6d 65 22 29 0a 0a 20 20 20 20 ng."other/directory/name")......
0a80 28 66 2d 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 69 6c 65 6e 61 (f-filename......:eval.(f-filena
0aa0 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 me."path/to/file.ext")......:eva
0ac0 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 65 63 74 6f 72 79 l.(f-filename."path/to/directory
0ae0 22 29 29 0a 0a 20 20 20 20 28 66 2d 64 69 72 6e 61 6d 65 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 "))......(f-dirname......:eval.(
0b00 66 2d 64 69 72 6e 61 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 78 74 22 29 0a 20 20 f-dirname."path/to/file.ext")...
0b20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 69 72 6e 61 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 ...:eval.(f-dirname."path/to/dir
0b40 65 63 74 6f 72 79 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 69 72 6e 61 6d 65 20 22 ectory")......:eval.(f-dirname."
0b60 2f 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 0a 20 20 20 20 20 /"))......(f-common-parent......
0b80 3a 65 76 61 6c 20 28 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 27 28 22 66 6f 6f 2f 62 61 :eval.(f-common-parent.'("foo/ba
0ba0 72 2f 62 61 7a 22 20 22 66 6f 6f 2f 62 61 72 2f 71 75 78 22 20 22 66 6f 6f 2f 62 61 72 2f 6d 75 r/baz"."foo/bar/qux"."foo/bar/mu
0bc0 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 x"))......:eval.(f-common-parent
0be0 20 27 28 22 2f 66 6f 6f 2f 62 61 72 2f 62 61 7a 22 20 22 2f 66 6f 6f 2f 62 61 72 2f 71 75 78 22 .'("/foo/bar/baz"."/foo/bar/qux"
0c00 20 22 2f 66 6f 6f 2f 62 61 78 2f 6d 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d ."/foo/bax/mux"))......:eval.(f-
0c20 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 27 28 22 66 6f 6f 2f 62 61 72 2f 62 61 7a 22 20 22 71 common-parent.'("foo/bar/baz"."q
0c40 75 61 63 6b 2f 62 61 72 2f 71 75 78 22 20 22 6c 61 63 6b 2f 62 61 72 2f 6d 75 78 22 29 29 29 0a uack/bar/qux"."lack/bar/mux"))).
0c60 0a 20 20 20 20 28 66 2d 65 78 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 20 22 70 .....(f-ext......:eval.(f-ext."p
0c80 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 20 ath/to/file")......:eval.(f-ext.
0ca0 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 "path/to/file.txt")......:eval.(
0cc0 66 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 2e 6f 72 67 22 29 29 0a 0a f-ext."path/to/file.txt.org"))..
0ce0 20 20 20 20 28 66 2d 6e 6f 2d 65 78 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6e 6f 2d 65 ....(f-no-ext......:eval.(f-no-e
0d00 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 xt."path/to/file")......:eval.(f
0d20 2d 6e 6f 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 -no-ext."path/to/file.txt").....
0d40 20 3a 65 76 61 6c 20 28 66 2d 6e 6f 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 .:eval.(f-no-ext."path/to/file.t
0d60 78 74 2e 6f 72 67 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 77 61 70 2d 65 78 74 0a 20 20 20 20 20 xt.org"))......(f-swap-ext......
0d80 3a 65 76 61 6c 20 28 66 2d 73 77 61 70 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e :eval.(f-swap-ext."path/to/file.
0da0 65 78 74 22 20 22 6f 72 67 22 29 29 0a 0a 20 20 20 20 28 66 2d 62 61 73 65 0a 20 20 20 20 20 3a ext"."org"))......(f-base......:
0dc0 65 76 61 6c 20 28 66 2d 62 61 73 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 78 74 22 29 eval.(f-base."path/to/file.ext")
0de0 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 62 61 73 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 ......:eval.(f-base."path/to/dir
0e00 65 63 74 6f 72 79 22 29 29 0a 0a 20 20 20 20 28 66 2d 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 ectory"))......(f-relative......
0e20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 20 22 2f 73 6f 6d 65 2f 70 61 74 68 2f 72 65 :eval.(f-relative."/some/path/re
0e40 6c 61 74 69 76 65 2f 74 6f 2f 6d 79 2f 66 69 6c 65 2e 74 78 74 22 20 22 2f 73 6f 6d 65 2f 70 61 lative/to/my/file.txt"."/some/pa
0e60 74 68 2f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 20 22 2f 64 th/")......:eval.(f-relative."/d
0e80 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6d 79 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a efault/directory/my/file.txt")).
0ea0 0a 20 20 20 20 28 66 2d 73 68 6f 72 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 .....(f-short......:no-eval.(f-s
0ec0 68 6f 72 74 20 22 2f 55 73 65 72 73 2f 66 6f 6f 2f 43 6f 64 65 2f 6f 6e 2f 6d 61 63 4f 53 22 29 hort."/Users/foo/Code/on/macOS")
0ee0 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 7e 2f 43 6f 64 65 2f 6f 6e 2f ......:result-string."~/Code/on/
0f00 6d 61 63 4f 53 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 68 6f 72 74 20 22 2f macOS"......:no-eval.(f-short."/
0f20 68 6f 6d 65 2f 66 6f 6f 2f 43 6f 64 65 2f 6f 6e 2f 6c 69 6e 75 78 22 29 0a 20 20 20 20 20 3a 72 home/foo/Code/on/linux")......:r
0f40 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 7e 2f 43 6f 64 65 2f 6f 6e 2f 6c 69 6e 75 78 22 0a 20 esult-string."~/Code/on/linux"..
0f60 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 68 6f 72 74 20 22 2f 70 61 74 68 2f 74 6f 2f 43 6f 64 ....:eval.(f-short."/path/to/Cod
0f80 65 2f 62 61 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 6c 6f 6e 67 0a 20 20 20 20 20 3a 65 76 61 6c e/bar"))......(f-long......:eval
0fa0 20 28 66 2d 6c 6f 6e 67 20 22 7e 2f 43 6f 64 65 2f 62 61 72 22 29 0a 20 20 20 20 20 3a 65 76 61 .(f-long."~/Code/bar")......:eva
0fc0 6c 20 28 66 2d 6c 6f 6e 67 20 22 2f 70 61 74 68 2f 74 6f 2f 43 6f 64 65 2f 62 61 72 22 29 29 0a l.(f-long."/path/to/Code/bar")).
0fe0 0a 20 20 20 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d .....(f-canonical......:eval.(f-
1000 63 61 6e 6f 6e 69 63 61 6c 20 22 2f 70 61 74 68 2f 74 6f 2f 72 65 61 6c 2f 66 69 6c 65 22 29 0a canonical."/path/to/real/file").
1020 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 22 2f 6c 69 6e .....:no-eval.(f-canonical."/lin
1040 6b 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 k/to/file")......:result-string.
1060 22 2f 70 61 74 68 2f 74 6f 2f 72 65 61 6c 2f 66 69 6c 65 22 29 0a 0a 20 20 20 20 28 66 2d 73 6c "/path/to/real/file")......(f-sl
1080 61 73 68 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 6c 61 73 68 20 22 2f 70 61 74 ash......:no-eval.(f-slash."/pat
10a0 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 h/to/file")......:result-string.
10c0 22 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 "/path/to/file"......:no-eval.(f
10e0 2d 73 6c 61 73 68 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 -slash."/path/to/dir")......:res
1100 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f 22 0a 20 20 20 20 20 ult-string."/path/to/dir/"......
1120 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 6c 61 73 68 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f :no-eval.(f-slash."/path/to/dir/
1140 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 70 61 74 68 2f 74 6f ")......:result-string."/path/to
1160 2f 64 69 72 2f 22 29 0a 0a 20 20 20 20 28 66 2d 66 75 6c 6c 0a 20 20 20 20 20 3a 65 76 61 6c 20 /dir/")......(f-full......:eval.
1180 28 66 2d 66 75 6c 6c 20 22 7e 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a (f-full."~/path/to/file")......:
11a0 65 76 61 6c 20 28 66 2d 66 75 6c 6c 20 22 7e 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 eval.(f-full."~/path/to/dir")...
11c0 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 75 6c 6c 20 22 7e 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f ...:eval.(f-full."~/path/to/dir/
11e0 22 29 29 0a 0a 20 20 20 20 28 66 2d 75 6e 69 71 75 69 66 79 0a 20 20 20 20 20 3a 65 76 61 6c 20 "))......(f-uniquify......:eval.
1200 28 66 2d 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 62 (f-uniquify.'("/foo/bar"."/foo/b
1220 61 7a 22 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d az"."/foo/quux"))......:eval.(f-
1240 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 uniquify.'("/foo/bar"."/www/bar"
1260 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 ."/foo/quux"))......:eval.(f-uni
1280 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f quify.'("/foo/bar"."/www/bar"."/
12a0 77 77 77 2f 62 61 72 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e www/bar/quux"))......:eval.(f-un
12c0 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 iquify.'("/foo/bar"."/foo/baz"."
12e0 2f 68 6f 6d 65 2f 77 77 77 2f 62 61 72 22 20 22 2f 68 6f 6d 65 2f 77 77 77 2f 62 61 7a 22 20 22 /home/www/bar"."/home/www/baz"."
1300 2f 76 61 72 2f 66 6f 6f 22 20 22 2f 6f 70 74 2f 66 6f 6f 2f 77 77 77 2f 62 61 7a 22 29 29 29 0a /var/foo"."/opt/foo/www/baz"))).
1320 0a 20 20 20 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 0a 20 20 20 20 20 3a 65 76 61 .....(f-uniquify-alist......:eva
1340 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 l.(f-uniquify-alist.'("/foo/bar"
1360 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a ."/foo/baz"."/foo/quux"))......:
1380 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 20 27 28 22 2f 66 6f 6f 2f 62 eval.(f-uniquify-alist.'("/foo/b
13a0 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 ar"."/www/bar"."/foo/quux"))....
13c0 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 20 27 28 22 2f 66 6f ..:eval.(f-uniquify-alist.'("/fo
13e0 6f 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 2f 71 75 75 78 o/bar"."/www/bar"."/www/bar/quux
1400 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 "))......:eval.(f-uniquify-alist
1420 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 2f 68 6f 6d 65 2f .'("/foo/bar"."/foo/baz"."/home/
1440 77 77 77 2f 62 61 72 22 20 22 2f 68 6f 6d 65 2f 77 77 77 2f 62 61 7a 22 20 22 2f 76 61 72 2f 66 www/bar"."/home/www/baz"."/var/f
1460 6f 6f 22 20 22 2f 6f 70 74 2f 66 6f 6f 2f 77 77 77 2f 62 61 7a 22 29 29 29 0a 0a 20 20 20 20 22 oo"."/opt/foo/www/baz")))......"
1480 49 2f 4f 22 0a 20 20 20 20 28 66 2d 72 65 61 64 2d 62 79 74 65 73 0a 20 20 20 20 20 3a 6e 6f 2d I/O".....(f-read-bytes......:no-
14a0 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 2d 62 79 74 65 73 20 22 70 61 74 68 2f 74 6f 2f 62 69 6e eval*.(f-read-bytes."path/to/bin
14c0 61 72 79 2f 64 61 74 61 22 29 29 0a 0a 20 20 20 20 28 66 2d 77 72 69 74 65 2d 62 79 74 65 73 0a ary/data"))......(f-write-bytes.
14e0 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 77 72 69 74 65 2d 62 79 74 65 73 20 28 75 .....:no-eval*.(f-write-bytes.(u
1500 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 20 37 32 20 31 30 31 20 31 30 38 20 31 30 38 20 31 31 31 nibyte-string.72.101.108.108.111
1520 20 33 32 20 31 31 39 20 31 31 31 20 31 31 34 20 31 30 38 20 31 30 30 29 20 22 70 61 74 68 2f 74 .32.119.111.114.108.100)."path/t
1540 6f 2f 62 69 6e 61 72 79 2f 64 61 74 61 22 29 29 0a 0a 20 20 20 20 28 66 2d 61 70 70 65 6e 64 2d o/binary/data"))......(f-append-
1560 62 79 74 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 61 70 70 65 6e 64 2d 62 bytes......:no-eval*.(f-append-b
1580 79 74 65 73 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 20 28 75 6e 69 62 79 74 65 2d 73 74 72 ytes."path/to/file".(unibyte-str
15a0 69 6e 67 20 37 32 20 31 30 31 20 31 30 38 20 31 30 38 20 31 31 31 20 33 32 20 31 31 39 20 31 31 ing.72.101.108.108.111.32.119.11
15c0 31 20 31 31 34 20 31 30 38 20 31 30 30 29 29 29 0a 0a 20 20 20 20 28 66 2d 72 65 61 64 2d 74 65 1.114.108.100)))......(f-read-te
15e0 78 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 2d 74 65 78 74 20 22 xt......:no-eval*.(f-read-text."
1600 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 75 74 66 2d 38 29 0a 20 20 20 20 20 3a path/to/file.txt".'utf-8)......:
1620 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 no-eval*.(f-read."path/to/file.t
1640 78 74 22 20 27 75 74 66 2d 38 29 29 0a 0a 20 20 20 20 28 66 2d 77 72 69 74 65 2d 74 65 78 74 0a xt".'utf-8))......(f-write-text.
1660 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 77 72 69 74 65 2d 74 65 78 74 20 22 48 65 .....:no-eval*.(f-write-text."He
1680 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e llo.world".'utf-8."path/to/file.
16a0 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 77 72 69 74 65 20 22 48 txt")......:no-eval*.(f-write."H
16c0 65 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 ello.world".'utf-8."path/to/file
16e0 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 61 70 70 65 6e 64 2d 74 65 78 74 0a 20 20 20 20 .txt"))......(f-append-text.....
1700 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 61 70 70 65 6e 64 2d 74 65 78 74 20 22 48 65 6c 6c 6f .:no-eval*.(f-append-text."Hello
1720 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 .world".'utf-8."path/to/file.txt
1740 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 61 70 70 65 6e 64 20 22 48 65 6c ")......:no-eval*.(f-append."Hel
1760 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 lo.world".'utf-8."path/to/file.t
1780 78 74 22 29 29 0a 0a 20 20 20 20 22 44 65 73 74 72 75 63 74 69 76 65 22 0a 20 20 20 20 28 66 2d xt"))......"Destructive".....(f-
17a0 6d 6b 64 69 72 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 64 69 mkdir......:no-eval.(f-mkdir."di
17c0 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 r")......:result-string."creates
17e0 20 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 64 69 72 22 0a 20 20 20 20 20 3a 6e ./default/directory/dir"......:n
1800 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 6f 74 68 65 72 22 20 22 64 69 72 22 29 0a 20 o-eval.(f-mkdir."other"."dir")..
1820 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 ....:result-string."creates./def
1840 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6f 74 68 65 72 2f 64 69 72 22 0a 20 20 20 20 20 3a ault/directory/other/dir"......:
1860 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 2f 22 20 22 73 6f 6d 65 22 20 22 70 61 74 no-eval.(f-mkdir."/"."some"."pat
1880 68 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 h")......:result-string."creates
18a0 20 2f 73 6f 6d 65 2f 70 61 74 68 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b ./some/path"......:no-eval.(f-mk
18c0 64 69 72 20 22 7e 22 20 22 79 65 74 22 20 22 61 6e 6f 74 68 65 72 22 20 22 64 69 72 22 29 0a 20 dir."~"."yet"."another"."dir")..
18e0 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 7e 2f 79 65 ....:result-string."creates.~/ye
1900 74 2f 61 6e 6f 74 68 65 72 2f 64 69 72 22 29 0a 0a 20 20 20 20 28 66 2d 6d 6b 64 69 72 2d 66 75 t/another/dir")......(f-mkdir-fu
1920 6c 6c 2d 70 61 74 68 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 ll-path......:no-eval.(f-mkdir-f
1940 75 6c 6c 2d 70 61 74 68 20 22 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 ull-path."dir")......:result-str
1960 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f ing."creates./default/directory/
1980 64 69 72 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c dir"......:no-eval.(f-mkdir-full
19a0 2d 70 61 74 68 20 22 6f 74 68 65 72 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d -path."other/dir")......:result-
19c0 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f string."creates./default/directo
19e0 72 79 2f 6f 74 68 65 72 2f 64 69 72 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d ry/other/dir"......:no-eval.(f-m
1a00 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 22 2f 73 6f 6d 65 2f 70 61 74 68 22 29 0a 20 20 20 kdir-full-path."/some/path")....
1a20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 73 6f 6d 65 2f ..:result-string."creates./some/
1a40 70 61 74 68 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c path"......:no-eval.(f-mkdir-ful
1a60 6c 2d 70 61 74 68 20 22 7e 2f 79 65 74 2f 61 6e 6f 74 68 65 72 2f 64 69 72 22 29 0a 20 20 20 20 l-path."~/yet/another/dir").....
1a80 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 7e 2f 79 65 74 2f 61 .:result-string."creates.~/yet/a
1aa0 6e 6f 74 68 65 72 2f 64 69 72 22 29 0a 0a 20 20 20 20 28 66 2d 64 65 6c 65 74 65 0a 20 20 20 20 nother/dir")......(f-delete.....
1ac0 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 65 6c 65 74 65 20 22 64 69 72 22 29 0a 20 20 20 20 .:no-eval*.(f-delete."dir").....
1ae0 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 65 6c 65 74 65 20 22 6f 74 68 65 72 2f 64 69 72 22 .:no-eval*.(f-delete."other/dir"
1b00 20 74 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 65 6c 65 74 65 20 22 70 61 .t)......:no-eval*.(f-delete."pa
1b20 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 79 6d 6c 69 6e th/to/file.txt"))......(f-symlin
1b40 6b 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 20 22 70 61 74 k......:no-eval*.(f-symlink."pat
1b60 68 2f 74 6f 2f 73 6f 75 72 63 65 22 20 22 70 61 74 68 2f 74 6f 2f 6c 69 6e 6b 22 29 29 0a 0a 20 h/to/source"."path/to/link"))...
1b80 20 20 20 28 66 2d 6d 6f 76 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 6d 6f 76 ...(f-move......:no-eval*.(f-mov
1ba0 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 2d 66 69 6c 65 2e 74 e."path/to/file.txt"."new-file.t
1bc0 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 6d 6f 76 65 20 22 70 61 74 xt")......:no-eval*.(f-move."pat
1be0 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 22 6f 74 68 65 72 2f 70 61 74 68 22 29 29 0a 0a 20 h/to/file.txt"."other/path"))...
1c00 20 20 20 28 66 2d 63 6f 70 79 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 63 6f 70 ...(f-copy......:no-eval*.(f-cop
1c20 79 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 2d 66 69 6c 65 2e 74 y."path/to/file.txt"."new-file.t
1c40 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 63 6f 70 79 20 22 70 61 74 xt")......:no-eval*.(f-copy."pat
1c60 68 2f 74 6f 2f 64 69 72 22 20 22 6f 74 68 65 72 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d h/to/dir"."other/dir"))......(f-
1c80 63 6f 70 79 2d 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d copy-contents......:no-eval*.(f-
1ca0 63 6f 70 79 2d 63 6f 6e 74 65 6e 74 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 70 61 74 copy-contents."path/to/dir"."pat
1cc0 68 2f 74 6f 2f 6f 74 68 65 72 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 74 6f 75 63 68 0a h/to/other/dir"))......(f-touch.
1ce0 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 74 6f 75 63 68 20 22 70 61 74 68 2f 74 6f .....:no-eval*.(f-touch."path/to
1d00 2f 65 78 69 73 74 69 6e 67 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 /existing/file.txt")......:no-ev
1d20 61 6c 2a 20 28 66 2d 74 6f 75 63 68 20 22 70 61 74 68 2f 74 6f 2f 6e 6f 6e 2f 65 78 69 73 74 69 al*.(f-touch."path/to/non/existi
1d40 6e 67 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 22 50 72 65 64 69 63 61 74 65 73 22 ng/file.txt"))......"Predicates"
1d60 0a 20 20 20 20 28 66 2d 65 78 69 73 74 73 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 .....(f-exists-p......:no-eval*.
1d80 28 66 2d 65 78 69 73 74 73 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a (f-exists-p."path/to/file.txt").
1da0 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 78 69 73 74 73 2d 70 20 22 70 61 74 68 .....:no-eval*.(f-exists-p."path
1dc0 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 /to/dir"))......(f-directory-p..
1de0 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 22 70 61 ....:no-eval*.(f-directory-p."pa
1e00 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 th/to/file.txt")......:no-eval*.
1e20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a (f-directory-p."path/to/dir"))..
1e40 20 20 20 20 28 66 2d 66 69 6c 65 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d ....(f-file-p......:no-eval*.(f-
1e60 66 69 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 file-p."path/to/file.txt")......
1e80 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 :no-eval*.(f-file-p."path/to/dir
1ea0 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 "))......(f-symlink-p......:no-e
1ec0 76 61 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e val*.(f-symlink-p."path/to/file.
1ee0 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d txt")......:no-eval*.(f-symlink-
1f00 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 p."path/to/dir")......:no-eval*.
1f20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 22 70 61 74 68 2f 74 6f 2f 6c 69 6e 6b 22 29 29 0a 0a 20 (f-symlink-p."path/to/link"))...
1f40 20 20 20 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 ...(f-readable-p......:no-eval*.
1f60 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 (f-readable-p."path/to/file.txt"
1f80 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 22 )......:no-eval*.(f-readable-p."
1fa0 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 77 72 69 74 61 62 6c 65 2d path/to/dir"))......(f-writable-
1fc0 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 22 p......:no-eval*.(f-writable-p."
1fe0 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c path/to/file.txt")......:no-eval
2000 2a 20 28 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a *.(f-writable-p."path/to/dir")).
2020 0a 20 20 20 20 28 66 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 .....(f-executable-p......:no-ev
2040 61 6c 2a 20 28 66 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c al*.(f-executable-p."path/to/fil
2060 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 78 65 63 75 74 e.txt")......:no-eval*.(f-execut
2080 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 61 able-p."path/to/dir"))......(f-a
20a0 62 73 6f 6c 75 74 65 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 61 62 73 6f 6c 75 74 65 bsolute-p......:eval.(f-absolute
20c0 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d -p."path/to/dir")......:eval.(f-
20e0 61 62 73 6f 6c 75 74 65 2d 70 20 22 2f 66 75 6c 6c 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 absolute-p."/full/path/to/dir"))
2100 0a 0a 20 20 20 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 ......(f-relative-p......:eval.(
2120 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 f-relative-p."path/to/dir").....
2140 20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 22 2f 66 75 6c 6c 2f 70 61 74 68 .:eval.(f-relative-p."/full/path
2160 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 72 6f 6f 74 2d 70 0a 20 20 20 20 20 3a /to/dir"))......(f-root-p......:
2180 65 76 61 6c 20 28 66 2d 72 6f 6f 74 2d 70 20 22 2f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 eval.(f-root-p."/")......:eval.(
21a0 66 2d 72 6f 6f 74 2d 70 20 22 2f 6e 6f 74 2f 72 6f 6f 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 65 f-root-p."/not/root"))......(f-e
21c0 78 74 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 xt-p......:eval.(f-ext-p."path/t
21e0 6f 2f 66 69 6c 65 2e 65 6c 22 20 22 65 6c 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 o/file.el"."el")......:eval.(f-e
2200 78 74 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 6c 22 20 22 74 78 74 22 29 0a 20 20 xt-p."path/to/file.el"."txt")...
2220 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e ...:eval.(f-ext-p."path/to/file.
2240 65 6c 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 el")......:eval.(f-ext-p."path/t
2260 6f 2f 66 69 6c 65 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 70 0a 20 20 20 20 20 3a 65 o/file"))......(f-same-p......:e
2280 76 61 6c 20 28 66 2d 73 61 6d 65 2d 70 20 22 66 6f 6f 2e 74 78 74 22 20 22 66 6f 6f 2e 74 78 74 val.(f-same-p."foo.txt"."foo.txt
22a0 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 70 20 22 66 6f 6f 2f 62 61 72 ")......:eval.(f-same-p."foo/bar
22c0 2f 2e 2e 2f 62 61 7a 22 20 22 66 6f 6f 2f 62 61 7a 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 /../baz"."foo/baz")......:eval.(
22e0 66 2d 73 61 6d 65 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 66 6f 6f 2e 74 78 74 22 20 22 2f 70 61 f-same-p."/path/to/foo.txt"."/pa
2300 74 68 2f 74 6f 2f 62 61 72 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 70 61 72 65 6e 74 2d th/to/bar.txt"))......(f-parent-
2320 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d of-p......:no-eval.(f-parent-of-
2340 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 p."/path/to"."/path/to/dir")....
2360 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 70 61 72 ..:result.t......:no-eval.(f-par
2380 65 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 2f 74 ent-of-p."/path/to/dir"."/path/t
23a0 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 o")......:result.nil......:no-ev
23c0 61 6c 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 al.(f-parent-of-p."/path/to"."/p
23e0 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 ath/to")......:result.nil)......
2400 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 (f-child-of-p......:no-eval.(f-c
2420 68 69 6c 64 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 hild-of-p."/path/to"."/path/to/d
2440 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 ir")......:result.nil......:no-e
2460 76 61 6c 20 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 val.(f-child-of-p."/path/to/dir"
2480 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 ."/path/to")......:result.t.....
24a0 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 .:no-eval.(f-child-of-p."/path/t
24c0 6f 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 o"."/path/to")......:result.nil)
24e0 0a 0a 20 20 20 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d ......(f-ancestor-of-p......:no-
2500 65 76 61 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 eval.(f-ancestor-of-p."/path/to"
2520 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a ."/path/to/dir")......:result.t.
2540 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 .....:no-eval.(f-ancestor-of-p."
2560 2f 70 61 74 68 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 /path"."/path/to/dir")......:res
2580 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d ult.t......:no-eval.(f-ancestor-
25a0 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a of-p."/path/to/dir"."/path/to").
25c0 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 .....:result.nil......:no-eval.(
25e0 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 f-ancestor-of-p."/path/to"."/pat
2600 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 h/to")......:result.nil)......(f
2620 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 -descendant-of-p......:no-eval.(
2640 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 f-descendant-of-p."/path/to/dir"
2660 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 ."/path/to")......:result.t.....
2680 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 22 2f 70 .:no-eval.(f-descendant-of-p."/p
26a0 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c ath/to/dir"."/path")......:resul
26c0 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d t.t......:no-eval.(f-descendant-
26e0 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a of-p."/path/to"."/path/to/dir").
2700 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 .....:result.nil......:no-eval.(
2720 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 f-descendant-of-p."/path/to"."/p
2740 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 ath/to")......:result.nil)......
2760 28 66 2d 68 69 64 64 65 6e 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e (f-hidden-p......:eval.(f-hidden
2780 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d -p."path/to/foo")......:eval.(f-
27a0 68 69 64 64 65 6e 2d 70 20 22 2e 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 hidden-p.".path/to/foo")......:e
27c0 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 2e 74 6f 2f 66 6f 6f 22 29 0a val.(f-hidden-p."path/.to/foo").
27e0 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f .....:eval.(f-hidden-p."path/to/
2800 2e 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 2e .foo")......:eval.(f-hidden-p.".
2820 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 20 27 61 6e 79 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 path/to/foo".'any)......:eval.(f
2840 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 2e 74 6f 2f 66 6f 6f 22 20 27 61 6e 79 29 0a 20 -hidden-p."path/.to/foo".'any)..
2860 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f 2e ....:eval.(f-hidden-p."path/to/.
2880 66 6f 6f 22 20 27 61 6e 79 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d foo".'any)......:eval.(f-hidden-
28a0 70 20 22 2e 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 20 27 6c 61 73 74 29 0a 20 20 20 20 20 3a 65 76 p.".path/to/foo".'last)......:ev
28c0 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 2e 74 6f 2f 66 6f 6f 22 20 27 6c al.(f-hidden-p."path/.to/foo".'l
28e0 61 73 74 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 ast)......:eval.(f-hidden-p."pat
2900 68 2f 74 6f 2f 2e 66 6f 6f 22 20 27 6c 61 73 74 29 29 0a 0a 20 20 20 20 28 66 2d 65 6d 70 74 79 h/to/.foo".'last))......(f-empty
2920 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 -p......:no-eval.(f-empty-p."/pa
2940 74 68 2f 74 6f 2f 65 6d 70 74 79 2d 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 th/to/empty-file")......:result.
2960 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 74 t......:no-eval.(f-empty-p."/pat
2980 68 2f 74 6f 2f 66 69 6c 65 2d 77 69 74 68 2d 63 6f 6e 74 65 6e 74 73 22 29 0a 20 20 20 20 20 3a h/to/file-with-contents")......:
29a0 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 result.nil......:no-eval.(f-empt
29c0 79 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 65 6d 70 74 79 2d 64 69 72 2f 22 29 0a 20 20 20 20 20 y-p."/path/to/empty-dir/")......
29e0 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 79 :result.t......:no-eval.(f-empty
2a00 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2d 77 69 74 68 2d 63 6f 6e 74 65 6e 74 73 2f 22 -p."/path/to/dir-with-contents/"
2a20 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 6f 6c 64 65 )......:result.nil)......(f-olde
2a40 72 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6f 6c 64 65 72 2d 70 20 22 6f 6c r-p......:no-eval.(f-older-p."ol
2a60 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a der-file.txt"."newer-file.txt").
2a80 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d .....:result.t......:no-eval.(f-
2aa0 6f 6c 64 65 72 2d 70 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6f 6c 64 65 72 2d older-p."newer-file.txt"."older-
2ac0 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 file.txt")......:result.nil.....
2ae0 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6f 6c 64 65 72 2d 70 20 22 73 61 6d 65 2d 74 69 6d 65 31 .:no-eval.(f-older-p."same-time1
2b00 2e 74 78 74 22 20 22 73 61 6d 65 2d 74 69 6d 65 32 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 .txt"."same-time2.txt")......:re
2b20 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 6e 65 77 65 72 2d 70 0a 20 20 20 20 20 3a sult.nil)......(f-newer-p......:
2b40 6e 6f 2d 65 76 61 6c 20 28 66 2d 6e 65 77 65 72 2d 70 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 no-eval.(f-newer-p."newer-file.t
2b60 78 74 22 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 xt"."older-file.txt")......:resu
2b80 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6e 65 77 65 72 2d 70 20 22 6f lt.t......:no-eval.(f-newer-p."o
2ba0 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 lder-file.txt"."newer-file.txt")
2bc0 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 ......:result.nil......:no-eval.
2be0 28 66 2d 6e 65 77 65 72 2d 70 20 22 73 61 6d 65 2d 74 69 6d 65 31 2e 74 78 74 22 20 22 73 61 6d (f-newer-p."same-time1.txt"."sam
2c00 65 2d 74 69 6d 65 32 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a e-time2.txt")......:result.nil).
2c20 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 .....(f-same-time-p......:no-eva
2c40 6c 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 22 73 61 6d 65 2d 74 69 6d 65 31 2e 74 78 74 l.(f-same-time-p."same-time1.txt
2c60 22 20 22 73 61 6d 65 2d 74 69 6d 65 32 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 "."same-time2.txt")......:result
2c80 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 .t......:no-eval.(f-same-time-p.
2ca0 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 "newer-file.txt"."older-file.txt
2cc0 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 ")......:result.nil......:no-eva
2ce0 6c 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 l.(f-same-time-p."older-file.txt
2d00 22 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 "."newer-file.txt")......:result
2d20 20 6e 69 6c 29 0a 0a 20 20 20 20 22 53 74 61 74 73 22 0a 20 20 20 20 28 66 2d 73 69 7a 65 0a 20 .nil)......"Stats".....(f-size..
2d40 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 69 7a 65 20 22 70 61 74 68 2f 74 6f 2f 66 ....:no-eval*.(f-size."path/to/f
2d60 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 69 7a 65 ile.txt")......:no-eval*.(f-size
2d80 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 64 65 70 74 68 0a 20 ."path/to/dir"))......(f-depth..
2da0 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 65 70 74 68 20 22 2f 22 29 0a 20 20 20 20 20 3a 65 76 ....:eval.(f-depth."/")......:ev
2dc0 61 6c 20 28 66 2d 64 65 70 74 68 20 22 2f 76 61 72 2f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 al.(f-depth."/var/")......:eval.
2de0 28 66 2d 64 65 70 74 68 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 22 29 29 0a 0a 20 20 20 (f-depth."/usr/local/bin")).....
2e00 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 .(f-change-time......:no-eval.(f
2e20 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 -change-time."path/to/file.txt")
2e40 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 34 38 37 35 36 20 32 36 33 33 37 ......:result.(25517.48756.26337
2e60 20 31 31 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 .111000)......:no-eval.(f-change
2e80 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c -time."path/to/dir")......:resul
2ea0 74 20 28 32 35 35 31 37 20 35 37 38 38 37 20 33 34 34 36 35 37 20 32 31 30 30 30 30 29 0a 20 20 t.(25517.57887.344657.210000)...
2ec0 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 ...:no-eval.(f-change-time."path
2ee0 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 /to/file.txt".t)......:result.(1
2f00 36 37 32 33 33 30 38 36 38 30 32 36 33 33 37 31 31 31 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 672330868026337111...1000000000)
2f20 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 ......:no-eval.(f-change-time."p
2f40 61 74 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 ath/to/dir".t)......:result.(167
2f60 32 33 33 39 39 39 39 33 34 34 36 35 37 32 31 30 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 2339999344657210...1000000000)..
2f80 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 ....:no-eval.(f-change-time."pat
2fa0 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 h/to/file.txt".'seconds)......:r
2fc0 65 73 75 6c 74 20 31 36 37 32 33 33 30 38 36 38 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 esult.1672330868......:no-eval.(
2fe0 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 f-change-time."path/to/dir".'sec
3000 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 39 39 39 39 29 0a 0a onds)......:result.1672339999)..
3020 20 20 20 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 0a 20 20 20 20 20 3a 6e ....(f-modification-time......:n
3040 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 o-eval.(f-modification-time."pat
3060 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 h/to/file.txt")......:result.(25
3080 35 31 37 20 34 38 37 35 36 20 32 36 33 33 37 20 31 31 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 517.48756.26337.111000)......:no
30a0 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 -eval.(f-modification-time."path
30c0 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 35 37 /to/dir")......:result.(25517.57
30e0 38 38 37 20 33 34 34 36 35 37 20 32 31 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 887.344657.210000)......:no-eval
3100 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 .(f-modification-time."path/to/f
3120 69 6c 65 2e 74 78 74 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 ile.txt".t)......:result.(167233
3140 30 38 36 38 30 32 36 33 33 37 31 31 31 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 0868026337111...1000000000).....
3160 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 .:no-eval.(f-modification-time."
3180 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 path/to/dir".t)......:result.(16
31a0 37 32 33 33 39 39 39 39 33 34 34 36 35 37 32 31 30 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 72339999344657210...1000000000).
31c0 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 .....:no-eval.(f-modification-ti
31e0 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 73 65 63 6f 6e 64 73 29 0a me."path/to/file.txt".'seconds).
3200 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 30 38 36 38 0a 20 20 20 20 20 3a 6e 6f .....:result.1672330868......:no
3220 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 -eval.(f-modification-time."path
3240 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 /to/dir".'seconds)......:result.
3260 31 36 37 32 33 33 39 39 39 39 29 0a 0a 20 20 20 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 0a 1672339999)......(f-access-time.
3280 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 .....:no-eval.(f-access-time."pa
32a0 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 th/to/file.txt")......:result.(2
32c0 35 35 31 37 20 34 38 37 35 36 20 32 36 33 33 37 20 31 31 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 5517.48756.26337.111000)......:n
32e0 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 o-eval.(f-access-time."path/to/d
3300 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 35 37 38 38 37 20 33 ir")......:result.(25517.57887.3
3320 34 34 36 35 37 20 32 31 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 44657.210000)......:no-eval.(f-a
3340 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 74 29 ccess-time."path/to/file.txt".t)
3360 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 30 38 36 38 30 32 36 33 33 37 31 ......:result.(16723308680263371
3380 31 31 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 11...1000000000)......:no-eval.(
33a0 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 f-access-time."path/to/dir".t)..
33c0 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 39 39 39 39 33 34 34 36 35 37 32 31 30 ....:result.(1672339999344657210
33e0 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d ...1000000000)......:no-eval.(f-
3400 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 access-time."path/to/file.txt".'
3420 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 30 38 36 38 seconds)......:result.1672330868
3440 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 ......:no-eval.(f-access-time."p
3460 61 74 68 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 ath/to/dir".'seconds)......:resu
3480 6c 74 20 31 36 37 32 33 33 39 39 39 39 29 0a 0a 20 20 20 20 22 4d 69 73 63 22 0a 20 20 20 20 28 lt.1672339999)......"Misc".....(
34a0 66 2d 74 68 69 73 2d 66 69 6c 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 74 68 f-this-file......:no-eval*.(f-th
34c0 69 73 2d 66 69 6c 65 29 29 0a 0a 20 20 20 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 is-file))......(f-path-separator
34e0 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 29 0a ......:eval.(f-path-separator)).
3500 0a 20 20 20 20 28 66 2d 67 6c 6f 62 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 67 .....(f-glob......:no-eval*.(f-g
3520 6c 6f 62 20 22 70 61 74 68 2f 74 6f 2f 2a 2e 65 6c 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 lob."path/to/*.el")......:no-eva
3540 6c 2a 20 28 66 2d 67 6c 6f 62 20 22 2a 2e 65 6c 22 20 22 70 61 74 68 2f 74 6f 22 29 29 0a 0a 20 l*.(f-glob."*.el"."path/to"))...
3560 20 20 20 28 66 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d ...(f-entries......:no-eval*.(f-
3580 65 6e 74 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d entries."path/to/dir")......:no-
35a0 65 76 61 6c 2a 20 28 66 2d 65 6e 74 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 eval*.(f-entries."path/to/dir".(
35c0 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 73 2d 6d 61 74 63 68 65 73 3f 20 22 74 65 73 74 22 lambda.(file).(s-matches?."test"
35e0 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 6e 74 72 69 .file)))......:no-eval*.(f-entri
3600 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e 6f es."path/to/dir".nil.t)......:no
3620 2d 65 76 61 6c 2a 20 28 66 2d 2d 65 6e 74 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 -eval*.(f--entries."path/to/dir"
3640 20 28 73 2d 6d 61 74 63 68 65 73 3f 20 22 74 65 73 74 22 20 69 74 29 29 29 0a 0a 20 20 20 20 28 .(s-matches?."test".it)))......(
3660 66 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d f-directories......:no-eval*.(f-
3680 64 69 72 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 directories."path/to/dir")......
36a0 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 :no-eval*.(f-directories."path/t
36c0 6f 2f 64 69 72 22 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 20 28 65 71 75 61 6c 20 28 66 2d 66 o/dir".(lambda.(dir).(equal.(f-f
36e0 69 6c 65 6e 61 6d 65 20 64 69 72 29 20 22 74 65 73 74 22 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d ilename.dir)."test")))......:no-
3700 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 eval*.(f-directories."path/to/di
3720 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 64 69 72 r".nil.t)......:no-eval*.(f--dir
3740 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 65 71 75 61 6c 20 28 66 ectories."path/to/dir".(equal.(f
3760 2d 66 69 6c 65 6e 61 6d 65 20 69 74 29 20 22 74 65 73 74 22 29 29 29 0a 0a 20 20 20 20 28 66 2d -filename.it)."test")))......(f-
3780 66 69 6c 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 73 20 22 70 files......:no-eval*.(f-files."p
37a0 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 ath/to/dir")......:no-eval*.(f-f
37c0 69 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 iles."path/to/dir".(lambda.(file
37e0 29 20 28 65 71 75 61 6c 20 28 66 2d 65 78 74 20 66 69 6c 65 29 20 22 65 6c 22 29 29 29 0a 20 20 ).(equal.(f-ext.file)."el")))...
3800 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 ...:no-eval*.(f-files."path/to/d
3820 69 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 66 69 ir".nil.t)......:no-eval*.(f--fi
3840 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 65 71 75 61 6c 20 28 66 2d 65 78 74 20 les."path/to/dir".(equal.(f-ext.
3860 69 74 29 20 22 65 6c 22 29 29 29 0a 0a 20 20 20 20 28 66 2d 72 6f 6f 74 0a 20 20 20 20 20 3a 65 it)."el")))......(f-root......:e
3880 76 61 6c 20 28 66 2d 72 6f 6f 74 29 29 0a 0a 20 20 20 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 val.(f-root))......(f-traverse-u
38a0 70 77 61 72 64 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 74 72 61 76 65 72 73 pwards......:no-eval*.(f-travers
38c0 65 2d 75 70 77 61 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 e-upwards.................(lambd
38e0 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 65 78 a.(path)...................(f-ex
3900 69 73 74 73 3f 20 28 66 2d 65 78 70 61 6e 64 20 22 2e 67 69 74 22 20 70 61 74 68 29 29 29 0a 20 ists?.(f-expand.".git".path)))..
3920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 2d 70 61 74 68 29 0a 0a 20 20 20 20 ...............start-path)......
3940 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 .:no-eval*.(f--traverse-upwards.
3960 28 66 2d 65 78 69 73 74 73 3f 20 28 66 2d 65 78 70 61 6e 64 20 22 2e 67 69 74 22 20 69 74 29 29 (f-exists?.(f-expand.".git".it))
3980 20 73 74 61 72 74 2d 70 61 74 68 29 29 0a 0a 20 20 20 20 28 66 2d 77 69 74 68 2d 73 61 6e 64 62 .start-path))......(f-with-sandb
39a0 6f 78 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 ox......:no-eval.(f-with-sandbox
39c0 20 66 6f 6f 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 .foo-path.................(f-tou
39e0 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 66 6f 6f 22 20 66 6f 6f 2d 70 61 74 68 29 29 29 0a 20 ch.(f-expand."foo".foo-path)))..
3a00 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 20 28 6c 69 ....:no-eval.(f-with-sandbox.(li
3a20 73 74 20 66 6f 6f 2d 70 61 74 68 20 62 61 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 st.foo-path.bar-path)...........
3a40 20 20 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 66 6f 6f 22 20 66 ......(f-touch.(f-expand."foo".f
3a60 6f 6f 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 oo-path)).................(f-tou
3a80 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 62 61 72 22 20 62 61 72 2d 70 61 74 68 29 29 29 0a 20 ch.(f-expand."bar".bar-path)))..
3aa0 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 20 66 6f 6f ....:no-eval.(f-with-sandbox.foo
3ac0 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 -path.................(f-touch.(
3ae0 66 2d 65 78 70 61 6e 64 20 22 62 61 72 22 20 62 61 72 2d 70 61 74 68 29 29 29 29 29 29 20 3b 3b f-expand."bar".bar-path)))))).;;
3b00 20 22 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 75 74 73 69 64 65 20 ."Destructive.operation.outside.
3b20 73 61 6e 64 62 6f 78 22 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 sandbox"..(eval-when-compile...(
3b40 77 68 65 6e 20 28 76 65 72 73 69 6f 6e 3c 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 20 22 32 38 when.(version<.emacs-version."28
3b60 2e 31 22 29 0a 20 20 20 20 28 77 61 72 6e 20 22 45 6d 61 63 73 20 73 68 6f 75 6c 64 20 6e 6f 74 .1").....(warn."Emacs.should.not
3b80 20 62 65 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 69 73 20 66 69 6c 65 22 29 29 29 0a 0a 28 70 72 .be.compiling.this.file")))..(pr
3ba0 6f 76 69 64 65 20 27 66 2d 73 68 6f 72 74 64 6f 63 29 0a 0a 3b 3b 3b 20 66 2d 73 68 6f 72 74 64 ovide.'f-shortdoc)..;;;.f-shortd
3bc0 6f 63 2e 65 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 oc.el.ends.here.................
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 66 2d 32 30 32 34 30 33 30 38 2e 39 30 36 2f 66 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 f-20240308.906/f.el.............
3c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c60 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
3c80 30 30 36 32 31 31 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 33 35 00 20 30 00 00 00 0062117.00000000000.011735..0...
3ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d00 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...................
3d20 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...................
3d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d80 00 00 00 00 00 00 00 00 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 3b 3b 3b 20 66 2e 65 6c 20 2d 2d 2d 20 4d 6f 64 65 72 6e 20 41 50 49 20 66 6f 72 20 77 6f 72 6b ;;;.f.el.---.Modern.API.for.work
3e20 69 6e 67 20 77 69 74 68 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 2d ing.with.files.and.directories.-
3e40 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 *-.lexical-binding:.t;.-*-..;;.C
3e60 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 20 4a 6f 68 61 6e 20 41 6e 64 65 72 73 73 6f opyright.(C).2013.Johan.Andersso
3e80 6e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 68 61 6e 20 41 6e 64 65 72 73 73 6f 6e 20 3c 6a n..;;.Author:.Johan.Andersson.<j
3ea0 6f 68 61 6e 2e 72 65 6a 65 65 70 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 ohan.rejeep@gmail.com>.;;.Mainta
3ec0 69 6e 65 72 3a 20 4c 75 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 iner:.Lucien.Cartier-Tilet.<luci
3ee0 65 6e 40 70 68 75 6e 64 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 32 en@phundrak.com>.;;.Version:.0.2
3f00 30 2e 30 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 0.0.;;.Package-Requires:.((emacs
3f20 20 22 32 34 2e 31 22 29 20 28 73 20 22 31 2e 37 2e 30 22 29 20 28 64 61 73 68 20 22 32 2e 32 2e ."24.1").(s."1.7.0").(dash."2.2.
3f40 30 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 2c 20 64 69 72 65 63 74 6f 0")).;;.Keywords:.files,.directo
3f60 72 69 65 73 0a 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e ries.;;.Homepage:.http://github.
3f80 63 6f 6d 2f 72 65 6a 65 65 70 2f 66 2e 65 6c 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 com/rejeep/f.el..;;.This.file.is
3fa0 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 3b 20 4c 69 63 .NOT.part.of.GNU.Emacs...;;;.Lic
3fc0 65 6e 73 65 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 ense:..;;.This.program.is.free.s
3fe0 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
4000 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.;;.it.under.the.t
4020 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
4040 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 icense.as.published.by.;;.the.Fr
4060 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
4080 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b ersion.3,.or.(at.your.option).;;
40a0 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 68 69 73 20 70 72 6f .any.later.version...;;.This.pro
40c0 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 65 20 68 6f 70 65 20 gram.is.distributed.in.the.hope.
40e0 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 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
4100 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 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
4120 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 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
4140 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 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
4160 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 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
4180 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 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
41a0 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 20 68 61 76 65 20 72 e.details...;;.You.should.have.r
41c0 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 20 47 65 6e 65 72 61 eceived.a.copy.of.the.GNU.Genera
41e0 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 20 77 69 74 68 20 47 l.Public.License.;;.along.with.G
4200 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 NU.Emacs;.see.the.file.COPYING..
4220 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f .If.not,.write.to.the.;;.Free.So
4240 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e ftware.Foundation,.Inc.,.51.Fran
4260 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 klin.Street,.Fifth.Floor,.;;.Bos
4280 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f ton,.MA.02110-1301,.USA...;;;.Co
42a0 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 4d 75 63 68 20 69 6e 73 70 69 72 65 64 20 62 79 mmentary:.;;.;;.Much.inspired.by
42c0 20 6d 61 67 6e 61 72 27 73 20 65 78 63 65 6c 6c 65 6e 74 20 73 2e 65 6c 20 61 6e 64 20 64 61 73 .magnar's.excellent.s.el.and.das
42e0 68 2e 65 6c 2c 20 66 2e 65 6c 20 69 73 20 61 0a 3b 3b 20 6d 6f 64 65 72 6e 20 41 50 49 20 66 6f h.el,.f.el.is.a.;;.modern.API.fo
4300 72 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f r.working.with.files.and.directo
4320 72 69 65 73 20 69 6e 20 45 6d 61 63 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0c 0a 0a 28 72 ries.in.Emacs...;;;.Code:.....(r
4340 65 71 75 69 72 65 20 27 73 29 0a 28 72 65 71 75 69 72 65 20 27 64 61 73 68 29 0a 28 77 68 65 6e equire.'s).(require.'dash).(when
4360 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 38 2e 31 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e .(version<=."28.1".emacs-version
4380 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e )...(when.(<.emacs-major-version
43a0 20 32 39 29 0a 20 20 20 28 72 65 71 75 69 72 65 20 27 66 2d 73 68 6f 72 74 64 6f 63 20 6e 69 6c .29)....(require.'f-shortdoc.nil
43c0 20 74 29 29 29 0a 0a 28 70 75 74 20 27 66 2d 67 75 61 72 64 2d 65 72 72 6f 72 20 27 65 72 72 6f .t)))..(put.'f-guard-error.'erro
43e0 72 2d 63 6f 6e 64 69 74 69 6f 6e 73 20 27 28 65 72 72 6f 72 20 66 2d 67 75 61 72 64 2d 65 72 72 r-conditions.'(error.f-guard-err
4400 6f 72 29 29 0a 28 70 75 74 20 27 66 2d 67 75 61 72 64 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d or)).(put.'f-guard-error.'error-
4420 6d 65 73 73 61 67 65 20 22 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f message."Destructive.operation.o
4440 75 74 73 69 64 65 20 73 61 6e 64 62 6f 78 22 29 0a 0a 28 64 65 66 76 61 72 20 66 2d 2d 67 75 61 utside.sandbox")..(defvar.f--gua
4460 72 64 2d 70 61 74 68 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 6c 6c 6f 77 65 64 20 rd-paths.nil..."List.of.allowed.
4480 70 61 74 68 73 20 74 6f 20 6d 6f 64 69 66 79 20 77 68 65 6e 20 67 75 61 72 64 65 64 2e 0a 0a 44 paths.to.modify.when.guarded...D
44a0 6f 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 o.not.modify.this.variable.")..(
44c0 64 65 66 6d 61 63 72 6f 20 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 28 70 61 74 68 20 26 72 defmacro.f--destructive.(path.&r
44e0 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 66 20 50 41 54 48 20 69 73 20 61 6c 6c 6f 77 65 64 20 est.body)..."If.PATH.is.allowed.
4500 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 2c 20 79 69 65 6c 64 20 42 4f 44 59 2e 0a 0a 49 66 20 to.be.modified,.yield.BODY...If.
4520 50 41 54 48 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 PATH.is.not.allowed.to.be.modifi
4540 65 64 2c 20 74 68 72 6f 77 20 65 72 72 6f 72 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e ed,.throw.error."...(declare.(in
4560 64 65 6e 74 20 31 29 29 0a 20 20 60 28 69 66 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 0a 20 dent.1))...`(if.f--guard-paths..
4580 20 20 20 20 20 20 28 69 66 20 28 2d 2d 61 6e 79 3f 20 28 6f 72 20 28 66 2d 73 61 6d 65 2d 70 20 ......(if.(--any?.(or.(f-same-p.
45a0 69 74 20 2c 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 it.,path).......................
45c0 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 69 74 20 2c 70 61 74 68 29 29 20 66 2d 2d .(f-ancestor-of-p.it.,path)).f--
45e0 67 75 61 72 64 2d 70 61 74 68 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 2c guard-paths)............(progn.,
4600 40 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 66 2d 67 75 61 72 64 @body)..........(signal.'f-guard
4620 2d 65 72 72 6f 72 20 28 6c 69 73 74 20 2c 70 61 74 68 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 -error.(list.,path.f--guard-path
4640 73 29 29 29 0a 20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 50 61 74 68 73 s)))......,@body))....;;;;.Paths
4660 0a 0a 28 64 65 66 75 6e 20 66 2d 6a 6f 69 6e 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 ..(defun.f-join.(&rest.args)..."
4680 4a 6f 69 6e 20 41 52 47 53 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 70 61 74 68 2e 0a 0a 42 65 20 Join.ARGS.to.a.single.path...Be.
46a0 61 77 61 72 65 20 69 66 20 6f 6e 65 20 6f 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 69 73 aware.if.one.of.the.arguments.is
46c0 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2c 20 60 66 2d 6a 6f 69 6e 27 0a 77 69 6c 6c .an.absolute.path,.`f-join'.will
46e0 20 64 69 73 63 61 72 64 20 61 6c 6c 20 74 68 65 20 70 72 65 63 65 65 64 69 6e 67 20 61 72 67 75 .discard.all.the.preceeding.argu
4700 6d 65 6e 74 73 20 61 6e 64 20 6d 61 6b 65 20 74 68 69 73 20 61 62 73 6f 6c 75 74 65 0a 70 61 74 ments.and.make.this.absolute.pat
4720 68 20 74 68 65 20 6e 65 77 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 h.the.new.root.of.the.generated.
4740 70 61 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 72 65 6c path."...(let.(path.........(rel
4760 61 74 69 76 65 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 28 63 61 72 20 61 72 67 73 29 29 29 ative.(f-relative-p.(car.args)))
4780 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 ).....(mapc......(lambda.(arg)..
47a0 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 70 61 74 ......(setq.path.(cond.((not.pat
47c0 68 29 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h).arg).........................
47e0 28 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ((f-absolute-p.arg).............
4800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .............(progn.............
4820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 6c 61 74 69 76 65 20 6e 69 ...............(setq.relative.ni
4840 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 l)............................ar
4860 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 g)).........................(t.(
4880 66 2d 65 78 70 61 6e 64 20 61 72 67 20 70 61 74 68 29 29 29 29 29 0a 20 20 20 20 20 61 72 67 73 f-expand.arg.path)))))......args
48a0 29 0a 20 20 20 20 28 69 66 20 72 65 6c 61 74 69 76 65 20 28 66 2d 72 65 6c 61 74 69 76 65 20 70 ).....(if.relative.(f-relative.p
48c0 61 74 68 29 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 70 6c 69 74 20 28 70 61 ath).path)))..(defun.f-split.(pa
48e0 74 68 29 0a 20 20 22 53 70 6c 69 74 20 50 41 54 48 20 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 th)..."Split.PATH.and.return.lis
4900 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 61 72 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 t.containing.parts."...(let.((pa
4920 72 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 70 61 74 68 20 28 66 2d 70 61 74 68 2d 73 rts.(split-string.path.(f-path-s
4940 65 70 61 72 61 74 6f 72 29 20 27 6f 6d 69 74 2d 6e 75 6c 6c 73 29 29 29 0a 20 20 20 20 28 69 66 eparator).'omit-nulls))).....(if
4960 20 28 73 74 72 69 6e 67 3d 20 28 73 2d 6c 65 66 74 20 31 20 70 61 74 68 29 20 28 66 2d 70 61 74 .(string=.(s-left.1.path).(f-pat
4980 68 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 66 2d 70 h-separator)).........(push.(f-p
49a0 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 70 61 72 74 ath-separator).parts).......part
49c0 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 65 78 70 61 6e 64 20 28 70 61 74 68 20 26 6f 70 74 s)))..(defun.f-expand.(path.&opt
49e0 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 45 78 70 61 6e 64 20 50 41 54 48 20 72 65 6c 61 74 69 ional.dir)..."Expand.PATH.relati
4a00 76 65 20 74 6f 20 44 49 52 20 28 6f 72 20 60 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 ve.to.DIR.(or.`default-directory
4a20 27 29 2e 0a 50 41 54 48 20 61 6e 64 20 44 49 52 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 61 ')..PATH.and.DIR.can.be.either.a
4a40 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 66 69 .directory.names.or.directory.fi
4a60 6c 65 0a 6e 61 6d 65 73 2e 20 20 52 65 74 75 72 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 le.names...Return.a.directory.na
4a80 6d 65 20 69 66 20 50 41 54 48 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 me.if.PATH.is.a.directory.name,.
4aa0 61 6e 64 0a 61 20 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 20 6e 61 6d 65 20 6f 74 68 65 72 77 and.a.directory.file.name.otherw
4ac0 69 73 65 2e 20 20 46 69 6c 65 20 6e 61 6d 65 20 68 61 6e 64 6c 65 72 73 20 61 72 65 0a 69 67 6e ise...File.name.handlers.are.ign
4ae0 6f 72 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 68 61 6e 64 6c 65 72 ored."...(let.(file-name-handler
4b00 2d 61 6c 69 73 74 29 0a 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 -alist).....(expand-file-name.pa
4b20 74 68 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 66 69 6c 65 6e 61 6d 65 20 28 70 61 th.dir)))..(defun.f-filename.(pa
4b40 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 50 41 54 48 2e 22 th)..."Return.the.name.of.PATH."
4b60 0a 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 ...(file-name-nondirectory.(dire
4b80 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 6c 69 ctory-file-name.path)))..(defali
4ba0 61 73 20 27 66 2d 70 61 72 65 6e 74 20 27 66 2d 64 69 72 6e 61 6d 65 29 0a 0a 28 64 65 66 75 6e as.'f-parent.'f-dirname)..(defun
4bc0 20 66 2d 64 69 72 6e 61 6d 65 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 .f-dirname.(path)..."Return.the.
4be0 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 50 41 54 48 2e 22 0a 20 20 28 6c 65 parent.directory.to.PATH."...(le
4c00 74 20 28 28 70 61 72 65 6e 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a t.((parent.(file-name-directory.
4c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 .................(directory-file
4c40 2d 6e 61 6d 65 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 20 64 65 66 61 75 6c 74 2d 64 69 72 -name.(f-expand.path.default-dir
4c60 65 63 74 6f 72 79 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 73 61 6d 65 2d ectory))))).....(unless.(f-same-
4c80 70 20 70 61 74 68 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 2d 72 65 6c 61 p.path.parent).......(if.(f-rela
4ca0 74 69 76 65 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 2d 72 65 6c 61 74 69 tive-p.path)...........(f-relati
4cc0 76 65 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 ve.parent).........(directory-fi
4ce0 6c 65 2d 6e 61 6d 65 20 70 61 72 65 6e 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 6f le-name.parent)))))..(defun.f-co
4d00 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 28 70 61 74 68 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 mmon-parent.(paths)..."Return.th
4d20 65 20 64 65 65 70 65 73 74 20 63 6f 6d 6d 6f 6e 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 e.deepest.common.parent.director
4d40 79 20 6f 66 20 50 41 54 48 53 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 70 61 y.of.PATHS."...(cond....((not.pa
4d60 74 68 73 29 20 6e 69 6c 29 0a 20 20 20 28 28 6e 6f 74 20 28 63 64 72 20 70 61 74 68 73 29 29 20 ths).nil)....((not.(cdr.paths)).
4d80 28 66 2d 70 61 72 65 6e 74 20 28 63 61 72 20 70 61 74 68 73 29 29 29 0a 20 20 20 28 3a 6f 74 68 (f-parent.(car.paths)))....(:oth
4da0 65 72 77 69 73 65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 61 74 68 73 20 28 2d 6d 61 70 20 27 erwise.....(let*.((paths.(-map.'
4dc0 66 2d 73 70 6c 69 74 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d f-split.paths))............(comm
4de0 6f 6e 20 28 63 61 61 72 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 20 on.(caar.paths))............(re.
4e00 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 28 6e 75 nil)).......(while.(and.(not.(nu
4e20 6c 6c 20 28 63 61 72 20 70 61 74 68 73 29 29 29 20 28 2d 2d 61 6c 6c 3f 20 28 65 71 75 61 6c 20 ll.(car.paths))).(--all?.(equal.
4e40 28 63 61 72 20 69 74 29 20 63 6f 6d 6d 6f 6e 29 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 (car.it).common).paths))........
4e60 20 28 73 65 74 71 20 70 61 74 68 73 20 28 2d 6d 61 70 20 27 63 64 72 20 70 61 74 68 73 29 29 0a .(setq.paths.(-map.'cdr.paths)).
4e80 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6d 6d 6f 6e 20 72 65 29 0a 20 20 20 20 20 20 20 ........(push.common.re)........
4ea0 20 28 73 65 74 71 20 63 6f 6d 6d 6f 6e 20 28 63 61 61 72 20 70 61 74 68 73 29 29 29 0a 20 20 20 .(setq.common.(caar.paths)))....
4ec0 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 72 65 29 20 22 22 29 0a 20 ...(cond........((null.re)."")..
4ee0 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 28 6c 65 6e 67 74 68 20 72 65 29 20 31 29 20 28 66 ......((and.(=.(length.re).1).(f
4f00 2d 72 6f 6f 74 2d 70 20 28 63 61 72 20 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 2d 72 6f -root-p.(car.re))).........(f-ro
4f20 6f 74 29 29 0a 20 20 20 20 20 20 20 28 3a 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 ot))........(:otherwise.........
4f40 28 63 6f 6e 63 61 74 20 28 61 70 70 6c 79 20 27 66 2d 6a 6f 69 6e 20 28 6e 72 65 76 65 72 73 65 (concat.(apply.'f-join.(nreverse
4f60 20 72 65 29 29 20 22 2f 22 29 29 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 .re))."/")))))))..(defalias.'f-e
4f80 78 74 20 27 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 29 0a 0a 28 64 65 66 61 6c xt.'file-name-extension)..(defal
4fa0 69 61 73 20 27 66 2d 6e 6f 2d 65 78 74 20 27 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 ias.'f-no-ext.'file-name-sans-ex
4fc0 74 65 6e 73 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 77 61 70 2d 65 78 74 20 28 70 61 74 tension)..(defun.f-swap-ext.(pat
4fe0 68 20 65 78 74 29 0a 20 20 22 52 65 74 75 72 6e 20 50 41 54 48 20 62 75 74 20 77 69 74 68 20 45 h.ext)..."Return.PATH.but.with.E
5000 58 54 20 61 73 20 74 68 65 20 6e 65 77 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 45 58 54 20 6d 75 73 XT.as.the.new.extension..EXT.mus
5020 74 20 6e 6f 74 20 62 65 20 6e 69 6c 20 6f 72 20 65 6d 70 74 79 2e 22 0a 20 20 28 69 66 20 28 73 t.not.be.nil.or.empty."...(if.(s
5040 2d 62 6c 61 6e 6b 2d 70 20 65 78 74 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 78 74 65 -blank-p.ext).......(error."Exte
5060 6e 73 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6e 69 6c 22 29 0a 20 nsion.cannot.be.empty.or.nil")..
5080 20 20 20 28 63 6f 6e 63 61 74 20 28 66 2d 6e 6f 2d 65 78 74 20 70 61 74 68 29 20 22 2e 22 20 65 ...(concat.(f-no-ext.path).".".e
50a0 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 62 61 73 65 20 28 70 61 74 68 29 0a 20 20 22 52 xt)))..(defun.f-base.(path)..."R
50c0 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 50 41 54 48 2c 20 65 78 63 6c 75 64 69 6e eturn.the.name.of.PATH,.excludin
50e0 67 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 66 69 6c 65 2e 22 0a 20 20 28 66 2d 6e g.the.extension.of.file."...(f-n
5100 6f 2d 65 78 74 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 o-ext.(f-filename.path)))..(defa
5120 6c 69 61 73 20 27 66 2d 72 65 6c 61 74 69 76 65 20 27 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d lias.'f-relative.'file-relative-
5140 6e 61 6d 65 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 73 68 6f 72 74 20 27 61 62 62 72 65 name)..(defalias.'f-short.'abbre
5160 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 62 viate-file-name).(defalias.'f-ab
5180 62 72 65 76 20 27 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 0a 28 64 65 brev.'abbreviate-file-name)..(de
51a0 66 75 6e 20 66 2d 6c 6f 6e 67 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 6f 6e 67 fun.f-long.(path)..."Return.long
51c0 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 41 54 48 2e 22 0a 20 20 28 66 2d 65 78 70 61 6e 64 20 70 .version.of.PATH."...(f-expand.p
51e0 61 74 68 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 27 66 ath))..(defalias.'f-canonical.'f
5200 69 6c 65 2d 74 72 75 65 6e 61 6d 65 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 6c 61 73 68 20 28 70 ile-truename)..(defun.f-slash.(p
5220 61 74 68 29 0a 20 20 22 41 70 70 65 6e 64 20 73 6c 61 73 68 20 74 6f 20 50 41 54 48 20 75 6e 6c ath)..."Append.slash.to.PATH.unl
5240 65 73 73 20 6f 6e 65 20 61 6c 72 65 61 64 79 2e 0a 0a 53 6f 6d 65 20 66 75 6e 63 74 69 6f 6e 73 ess.one.already...Some.functions
5260 2c 20 73 75 63 68 20 61 73 20 60 63 61 6c 6c 2d 70 72 6f 63 65 73 73 27 20 72 65 71 75 69 72 65 ,.such.as.`call-process'.require
5280 73 20 74 68 65 72 65 20 74 6f 20 62 65 20 61 6e 0a 65 6e 64 69 6e 67 20 73 6c 61 73 68 2e 22 0a s.there.to.be.an.ending.slash.".
52a0 20 20 28 69 66 20 28 66 2d 64 69 72 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 66 69 6c 65 ..(if.(f-dir-p.path).......(file
52c0 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 0a 20 20 20 20 70 61 74 -name-as-directory.path).....pat
52e0 68 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 66 75 6c 6c 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 h))..(defun.f-full.(path)..."Ret
5300 75 72 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 74 6f 20 50 41 54 48 2c 20 77 69 74 68 20 urn.absolute.path.to.PATH,.with.
5320 65 6e 64 69 6e 67 20 73 6c 61 73 68 2e 22 0a 20 20 28 66 2d 73 6c 61 73 68 20 28 66 2d 6c 6f 6e ending.slash."...(f-slash.(f-lon
5340 67 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 75 6e 69 71 75 69 66 79 20 28 70 g.path)))..(defun.f--uniquify.(p
5360 61 74 68 73 29 0a 20 20 22 48 65 6c 70 65 72 20 66 6f 72 20 60 66 2d 75 6e 69 71 75 69 66 79 27 aths)..."Helper.for.`f-uniquify'
5380 20 61 6e 64 20 60 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 6c 65 74 .and.`f-uniquify-alist'."...(let
53a0 2a 20 28 28 66 69 6c 65 73 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 70 61 74 68 73 29 29 *.((files-length.(length.paths))
53c0 0a 20 20 20 20 20 20 20 20 20 28 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 20 28 2d 2d 6d 61 70 ..........(uniq-filenames.(--map
53e0 20 28 63 6f 6e 73 20 69 74 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 69 74 29 29 20 70 61 74 68 73 .(cons.it.(f-filename.it)).paths
5400 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 ))..........(uniq-filenames-next
5420 20 28 2d 67 72 6f 75 70 2d 62 79 20 27 63 64 72 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 29 .(-group-by.'cdr.uniq-filenames)
5440 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 66 69 6c 65 73 2d 6c 65 6e 67 74 68 20 28 )).....(while.(/=.files-length.(
5460 6c 65 6e 67 74 68 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 29 29 0a 20 20 20 length.uniq-filenames-next))....
5480 20 20 20 28 73 65 74 71 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 0a 20 20 20 ...(setq.uniq-filenames-next....
54a0 20 20 20 20 20 20 20 20 20 28 2d 67 72 6f 75 70 2d 62 79 20 27 63 64 72 0a 20 20 20 20 20 20 20 .........(-group-by.'cdr........
54c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 63 61 74 0a 20 20 20 20 20 20 ................(--mapcat.......
54e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 66 2d 66 69 ..................(let.((conf-fi
5500 6c 65 73 20 28 63 64 72 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 les.(cdr.it)))..................
5520 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 66 2d 66 69 6c .........(if.(>.(length.conf-fil
5540 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es).1)..........................
5560 20 20 20 20 20 28 2d 2d 6d 61 70 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(--map.(cons...............
5580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 69 74 29 ........................(car.it)
55a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
55c0 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(concat..................
55e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 66 69 6c 65 6e 61 6d ......................(f-filenam
5600 65 20 28 73 2d 63 68 6f 70 2d 73 75 66 66 69 78 20 28 63 64 72 20 69 74 29 0a 20 20 20 20 20 20 e.(s-chop-suffix.(cdr.it).......
5620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 ............................(car
5660 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .it)))..........................
5680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 ..............(f-path-separator)
56a0 20 28 63 64 72 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(cdr.it))).....................
56c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 2d 66 69 6c 65 73 29 0a 20 20 20 .................conf-files)....
56e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 2d 66 69 .........................conf-fi
5700 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e les)).........................un
5720 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 29 29 29 29 0a 20 20 20 20 75 6e 69 71 2d 66 iq-filenames-next)))).....uniq-f
5740 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 75 6e 69 71 75 69 ilenames-next))..(defun.f-uniqui
5760 66 79 20 28 66 69 6c 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 75 6e 69 71 75 65 20 73 75 66 66 fy.(files)..."Return.unique.suff
5780 69 78 65 73 20 6f 66 20 46 49 4c 45 53 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 ixes.of.FILES...This.function.ex
57a0 70 65 63 74 73 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 20 70 61 74 68 73 2e 22 0a 20 20 28 2d 6d pects.no.duplicate.paths."...(-m
57c0 61 70 20 27 63 61 72 20 28 66 2d 2d 75 6e 69 71 75 69 66 79 20 66 69 6c 65 73 29 29 29 0a 0a 28 ap.'car.(f--uniquify.files)))..(
57e0 64 65 66 75 6e 20 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 20 28 66 69 6c 65 73 29 0a 20 defun.f-uniquify-alist.(files)..
5800 20 22 52 65 74 75 72 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 46 49 4c 45 53 20 74 6f 20 ."Return.alist.mapping.FILES.to.
5820 75 6e 69 71 75 65 20 73 75 66 66 69 78 65 73 20 6f 66 20 46 49 4c 45 53 2e 0a 0a 54 68 69 73 20 unique.suffixes.of.FILES...This.
5840 66 75 6e 63 74 69 6f 6e 20 65 78 70 65 63 74 73 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 20 70 61 function.expects.no.duplicate.pa
5860 74 68 73 2e 22 0a 20 20 28 2d 6d 61 70 20 27 63 61 64 72 20 28 66 2d 2d 75 6e 69 71 75 69 66 79 ths."...(-map.'cadr.(f--uniquify
5880 20 66 69 6c 65 73 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 49 2f 4f 0a 0a 28 64 65 66 75 6e 20 66 2d .files)))....;;;;.I/O..(defun.f-
58a0 72 65 61 64 2d 62 79 74 65 73 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 67 20 65 read-bytes.(path.&optional.beg.e
58c0 6e 64 29 0a 20 20 22 52 65 61 64 20 62 69 6e 61 72 79 20 64 61 74 61 20 66 72 6f 6d 20 50 41 54 nd)..."Read.binary.data.from.PAT
58e0 48 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 62 69 6e 61 72 79 20 64 61 74 61 20 61 73 20 75 6e H...Return.the.binary.data.as.un
5900 69 62 79 74 65 20 73 74 72 69 6e 67 2e 20 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 73 65 63 6f ibyte.string...The.optional.seco
5920 6e 64 0a 61 6e 64 20 74 68 69 72 64 20 61 72 67 75 6d 65 6e 74 73 20 42 45 47 20 61 6e 64 20 45 nd.and.third.arguments.BEG.and.E
5940 4e 44 20 73 70 65 63 69 66 79 20 77 68 61 74 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 ND.specify.what.portion.of.the.f
5960 69 6c 65 0a 74 6f 20 72 65 61 64 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 ile.to.read."...(with-temp-buffe
5980 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 r.....(set-buffer-multibyte.nil)
59a0 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 .....(setq.buffer-file-coding-sy
59c0 73 74 65 6d 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 stem.'binary).....(insert-file-c
59e0 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 70 61 74 68 20 6e 69 6c 20 62 65 67 20 65 ontents-literally.path.nil.beg.e
5a00 6e 64 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f nd).....(buffer-substring-no-pro
5a20 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 perties.(point-min).(point-max))
5a40 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 61 64 20 27 66 2d 72 65 61 64 2d 74 65 ))..(defalias.'f-read.'f-read-te
5a60 78 74 29 0a 28 64 65 66 75 6e 20 66 2d 72 65 61 64 2d 74 65 78 74 20 28 70 61 74 68 20 26 6f 70 xt).(defun.f-read-text.(path.&op
5a80 74 69 6f 6e 61 6c 20 63 6f 64 69 6e 67 29 0a 20 20 22 52 65 61 64 20 74 65 78 74 20 77 69 74 68 tional.coding)..."Read.text.with
5aa0 20 50 41 54 48 2c 20 75 73 69 6e 67 20 43 4f 44 49 4e 47 2e 0a 0a 43 4f 44 49 4e 47 20 64 65 66 .PATH,.using.CODING...CODING.def
5ac0 61 75 6c 74 73 20 74 6f 20 60 75 74 66 2d 38 27 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 64 65 aults.to.`utf-8'...Return.the.de
5ae0 63 6f 64 65 64 20 74 65 78 74 20 61 73 20 6d 75 6c 74 69 62 79 74 65 20 73 74 72 69 6e 67 2e 22 coded.text.as.multibyte.string."
5b00 0a 20 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 66 2d 72 65 61 64 ...(decode-coding-string.(f-read
5b20 2d 62 79 74 65 73 20 70 61 74 68 29 20 28 6f 72 20 63 6f 64 69 6e 67 20 27 75 74 66 2d 38 29 29 -bytes.path).(or.coding.'utf-8))
5b40 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 77 72 69 74 65 20 27 66 2d 77 72 69 74 65 2d 74 )..(defalias.'f-write.'f-write-t
5b60 65 78 74 29 0a 28 64 65 66 75 6e 20 66 2d 77 72 69 74 65 2d 74 65 78 74 20 28 74 65 78 74 20 63 ext).(defun.f-write-text.(text.c
5b80 6f 64 69 6e 67 20 70 61 74 68 29 0a 20 20 22 57 72 69 74 65 20 54 45 58 54 20 77 69 74 68 20 43 oding.path)..."Write.TEXT.with.C
5ba0 4f 44 49 4e 47 20 74 6f 20 50 41 54 48 2e 0a 0a 54 45 58 54 20 69 73 20 61 20 6d 75 6c 74 69 62 ODING.to.PATH...TEXT.is.a.multib
5bc0 79 74 65 20 73 74 72 69 6e 67 2e 20 20 43 4f 44 49 4e 47 20 69 73 20 61 20 63 6f 64 69 6e 67 20 yte.string...CODING.is.a.coding.
5be0 73 79 73 74 65 6d 20 74 6f 20 65 6e 63 6f 64 65 0a 54 45 58 54 20 77 69 74 68 2e 20 20 50 41 54 system.to.encode.TEXT.with...PAT
5c00 48 20 69 73 20 61 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f 20 77 72 69 74 65 20 74 6f 2e 22 0a 20 H.is.a.file.name.to.write.to."..
5c20 20 28 66 2d 77 72 69 74 65 2d 62 79 74 65 73 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 .(f-write-bytes.(encode-coding-s
5c40 74 72 69 6e 67 20 74 65 78 74 20 63 6f 64 69 6e 67 29 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 tring.text.coding).path))..(defu
5c60 6e 20 66 2d 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 2d 70 20 28 73 29 0a 20 20 22 44 65 74 65 n.f-unibyte-string-p.(s)..."Dete
5c80 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 53 20 69 73 20 61 20 75 6e 69 62 79 74 65 20 73 74 72 rmine.whether.S.is.a.unibyte.str
5ca0 69 6e 67 2e 22 0a 20 20 28 6e 6f 74 20 28 6d 75 6c 74 69 62 79 74 65 2d 73 74 72 69 6e 67 2d 70 ing."...(not.(multibyte-string-p
5cc0 20 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 77 72 69 74 65 2d 62 79 74 65 73 20 28 64 61 74 .s)))..(defun.f-write-bytes.(dat
5ce0 61 20 70 61 74 68 29 0a 20 20 22 57 72 69 74 65 20 62 69 6e 61 72 79 20 44 41 54 41 20 74 6f 20 a.path)..."Write.binary.DATA.to.
5d00 50 41 54 48 2e 0a 0a 44 41 54 41 20 69 73 20 61 20 75 6e 69 62 79 74 65 20 73 74 72 69 6e 67 2e PATH...DATA.is.a.unibyte.string.
5d20 20 20 50 41 54 48 20 69 73 20 61 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f 20 77 72 69 74 65 20 74 ..PATH.is.a.file.name.to.write.t
5d40 6f 2e 22 0a 20 20 28 66 2d 2d 77 72 69 74 65 2d 62 79 74 65 73 20 64 61 74 61 20 70 61 74 68 20 o."...(f--write-bytes.data.path.
5d60 6e 69 6c 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 70 70 65 6e 64 20 27 66 2d 61 70 nil))..(defalias.'f-append.'f-ap
5d80 70 65 6e 64 2d 74 65 78 74 29 0a 28 64 65 66 75 6e 20 66 2d 61 70 70 65 6e 64 2d 74 65 78 74 20 pend-text).(defun.f-append-text.
5da0 28 74 65 78 74 20 63 6f 64 69 6e 67 20 70 61 74 68 29 0a 20 20 22 41 70 70 65 6e 64 20 54 45 58 (text.coding.path)..."Append.TEX
5dc0 54 20 77 69 74 68 20 43 4f 44 49 4e 47 20 74 6f 20 50 41 54 48 2e 0a 0a 49 66 20 50 41 54 48 20 T.with.CODING.to.PATH...If.PATH.
5de0 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 69 74 20 69 73 20 63 72 65 61 74 65 64 2e 22 0a does.not.exist,.it.is.created.".
5e00 20 20 28 66 2d 61 70 70 65 6e 64 2d 62 79 74 65 73 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 ..(f-append-bytes.(encode-coding
5e20 2d 73 74 72 69 6e 67 20 74 65 78 74 20 63 6f 64 69 6e 67 29 20 70 61 74 68 29 29 0a 0a 28 64 65 -string.text.coding).path))..(de
5e40 66 75 6e 20 66 2d 61 70 70 65 6e 64 2d 62 79 74 65 73 20 28 64 61 74 61 20 70 61 74 68 29 0a 20 fun.f-append-bytes.(data.path)..
5e60 20 22 41 70 70 65 6e 64 20 62 69 6e 61 72 79 20 44 41 54 41 20 74 6f 20 50 41 54 48 2e 0a 0a 49 ."Append.binary.DATA.to.PATH...I
5e80 66 20 50 41 54 48 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 69 74 20 69 73 20 63 72 65 f.PATH.does.not.exist,.it.is.cre
5ea0 61 74 65 64 2e 22 0a 20 20 28 66 2d 2d 77 72 69 74 65 2d 62 79 74 65 73 20 64 61 74 61 20 70 61 ated."...(f--write-bytes.data.pa
5ec0 74 68 20 3a 61 70 70 65 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 77 72 69 74 65 2d 62 79 th.:append))..(defun.f--write-by
5ee0 74 65 73 20 28 64 61 74 61 20 66 69 6c 65 6e 61 6d 65 20 61 70 70 65 6e 64 29 0a 20 20 22 57 72 tes.(data.filename.append)..."Wr
5f00 69 74 65 20 62 69 6e 61 72 79 20 44 41 54 41 20 74 6f 20 46 49 4c 45 4e 41 4d 45 2e 0a 49 66 20 ite.binary.DATA.to.FILENAME..If.
5f20 41 50 50 45 4e 44 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 70 70 65 6e 64 20 74 68 65 20 44 41 APPEND.is.non-nil,.append.the.DA
5f40 54 41 20 74 6f 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 TA.to.the.existing.contents."...
5f60 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 28 75 6e (f--destructive.filename.....(un
5f80 6c 65 73 73 20 28 66 2d 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 2d 70 20 64 61 74 61 29 0a 20 less.(f-unibyte-string-p.data)..
5fa0 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 2d 74 79 70 65 2d 61 72 67 75 6d 65 6e .....(signal.'wrong-type-argumen
5fc0 74 20 28 6c 69 73 74 20 27 66 2d 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 2d 70 20 64 61 74 61 t.(list.'f-unibyte-string-p.data
5fe0 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 ))).....(let.((coding-system-for
6000 2d 77 72 69 74 65 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 -write.'binary)...........(write
6020 2d 72 65 67 69 6f 6e 2d 61 6e 6e 6f 74 61 74 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 29 0a -region-annotate-functions.nil).
6040 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 2d 70 6f 73 74 2d 61 6e 6e ..........(write-region-post-ann
6060 6f 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 77 72 otation-function.nil)).......(wr
6080 69 74 65 2d 72 65 67 69 6f 6e 20 64 61 74 61 20 6e 69 6c 20 66 69 6c 65 6e 61 6d 65 20 61 70 70 ite-region.data.nil.filename.app
60a0 65 6e 64 20 3a 73 69 6c 65 6e 74 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 0c 0a 3b 3b 3b end.:silent).......nil)))....;;;
60c0 3b 20 44 65 73 74 72 75 63 74 69 76 65 0a 0a 28 64 65 66 75 6e 20 66 2d 6d 6b 64 69 72 20 28 26 ;.Destructive..(defun.f-mkdir.(&
60e0 72 65 73 74 20 64 69 72 73 29 0a 20 20 22 43 72 65 61 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 rest.dirs)..."Create.directories
6100 20 44 49 52 53 2e 0a 0a 44 49 52 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 75 63 63 65 73 73 .DIRS...DIRS.should.be.a.success
6120 69 76 65 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 6d 69 6e 67 20 ive.list.of.directories.forming.
6140 74 6f 67 65 74 68 65 72 0a 61 20 66 75 6c 6c 20 70 61 74 68 2e 20 20 54 68 65 20 65 61 73 69 65 together.a.full.path...The.easie
6160 73 74 20 77 61 79 20 74 6f 20 63 61 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 st.way.to.call.this.function.wit
6180 68 20 61 20 66 75 6c 6c 79 0a 66 6f 72 6d 65 64 20 70 61 74 68 20 69 73 20 75 73 69 6e 67 20 60 h.a.fully.formed.path.is.using.`
61a0 66 2d 73 70 6c 69 74 27 20 61 6c 6f 6e 67 73 69 64 65 20 69 74 3a 0a 0a 20 20 20 20 28 61 70 70 f-split'.alongside.it:......(app
61c0 6c 79 20 23 5c 5c 3d 27 66 2d 6d 6b 64 69 72 20 28 66 2d 73 70 6c 69 74 20 5c 22 70 61 74 68 2f ly.#\\='f-mkdir.(f-split.\"path/
61e0 74 6f 2f 66 69 6c 65 5c 22 29 29 0a 0a 41 6c 74 68 6f 75 67 68 20 69 74 20 77 6f 72 6b 73 20 73 to/file\"))..Although.it.works.s
6200 6f 6d 65 74 69 6d 65 73 2c 20 69 74 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 ometimes,.it.is.not.recommended.
6220 74 6f 20 75 73 65 20 66 75 6c 6c 79 0a 66 6f 72 6d 65 64 20 70 61 74 68 73 20 69 6e 20 74 68 65 to.use.fully.formed.paths.in.the
6240 20 66 75 6e 63 74 69 6f 6e 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 69 74 20 69 73 20 72 .function..In.this.case,.it.is.r
6260 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 0a 75 73 65 20 60 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d ecommended.to.use.`f-mkdir-full-
6280 70 61 74 68 27 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 6c 65 74 20 28 70 61 74 68 29 0a 20 20 path'.instead."...(let.(path)...
62a0 20 20 28 2d 65 61 63 68 0a 20 20 20 20 20 20 20 20 64 69 72 73 0a 20 20 20 20 20 20 28 6c 61 6d ..(-each.........dirs.......(lam
62c0 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 66 2d bda.(dir).........(setq.path.(f-
62e0 65 78 70 61 6e 64 20 64 69 72 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 expand.dir.path)).........(unles
6300 73 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 s.(f-directory-p.path)..........
6320 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 70 61 74 68 20 28 6d 61 6b 65 2d 64 69 72 65 .(f--destructive.path.(make-dire
6340 63 74 6f 72 79 20 70 61 74 68 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6d 6b 64 69 ctory.path)))))))..(defun.f-mkdi
6360 72 2d 66 75 6c 6c 2d 70 61 74 68 20 28 64 69 72 29 0a 20 20 22 43 72 65 61 74 65 20 44 49 52 20 r-full-path.(dir)..."Create.DIR.
6380 66 72 6f 6d 20 61 20 66 75 6c 6c 20 70 61 74 68 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e from.a.full.path...This.function
63a0 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 60 66 2d 6d 6b 64 69 72 27 20 65 78 63 65 70 74 20 .is.similar.to.`f-mkdir'.except.
63c0 69 74 20 63 61 6e 20 61 63 63 65 70 74 20 61 20 66 75 6c 6c 0a 70 61 74 68 20 69 6e 73 74 65 61 it.can.accept.a.full.path.instea
63e0 64 20 6f 66 20 72 65 71 75 69 72 69 6e 67 20 73 65 76 65 72 61 6c 20 73 75 63 63 65 73 73 69 76 d.of.requiring.several.successiv
6400 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 2e 22 0a 20 20 28 61 70 70 6c 79 20 23 27 66 e.directory.names."...(apply.#'f
6420 2d 6d 6b 64 69 72 20 28 66 2d 73 70 6c 69 74 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 -mkdir.(f-split.dir)))..(defun.f
6440 2d 64 65 6c 65 74 65 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29 0a 20 -delete.(path.&optional.force)..
6460 20 22 44 65 6c 65 74 65 20 50 41 54 48 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 69 6c 65 ."Delete.PATH,.which.can.be.file
6480 20 6f 72 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 49 66 20 46 4f 52 43 45 20 69 73 20 74 2c 20 61 .or.directory...If.FORCE.is.t,.a
64a0 20 64 69 72 65 63 74 6f 72 79 20 77 69 6c 6c 20 62 65 20 64 65 6c 65 74 65 64 20 72 65 63 75 72 .directory.will.be.deleted.recur
64c0 73 69 76 65 6c 79 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 70 61 74 68 0a sively."...(f--destructive.path.
64e0 20 20 20 20 28 69 66 20 28 6f 72 20 28 66 2d 66 69 6c 65 2d 70 20 70 61 74 68 29 20 28 66 2d 73 ....(if.(or.(f-file-p.path).(f-s
6500 79 6d 6c 69 6e 6b 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d ymlink-p.path)).........(delete-
6520 66 69 6c 65 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f file.path).......(delete-directo
6540 72 79 20 70 61 74 68 20 66 6f 72 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 79 6d 6c ry.path.force))))..(defun.f-syml
6560 69 6e 6b 20 28 73 6f 75 72 63 65 20 70 61 74 68 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 79 ink.(source.path)..."Create.a.sy
6580 6d 6c 69 6e 6b 20 74 6f 20 53 4f 55 52 43 45 20 66 72 6f 6d 20 50 41 54 48 2e 22 0a 20 20 28 66 mlink.to.SOURCE.from.PATH."...(f
65a0 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 70 61 74 68 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 69 --destructive.path.(make-symboli
65c0 63 2d 6c 69 6e 6b 20 73 6f 75 72 63 65 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d c-link.source.path)))..(defun.f-
65e0 6d 6f 76 65 20 28 66 72 6f 6d 20 74 6f 29 0a 20 20 22 4d 6f 76 65 20 6f 72 20 72 65 6e 61 6d 65 move.(from.to)..."Move.or.rename
6600 20 46 52 4f 4d 20 74 6f 20 54 4f 2e 0a 49 66 20 54 4f 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 .FROM.to.TO..If.TO.is.a.director
6620 79 20 6e 61 6d 65 2c 20 6d 6f 76 65 20 46 52 4f 4d 20 69 6e 74 6f 20 54 4f 2e 22 0a 20 20 28 66 y.name,.move.FROM.into.TO."...(f
6640 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 74 6f 20 28 72 65 6e 61 6d 65 2d 66 69 6c 65 20 66 72 --destructive.to.(rename-file.fr
6660 6f 6d 20 74 6f 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 6f 70 79 20 28 66 72 6f 6d 20 om.to.t)))..(defun.f-copy.(from.
6680 74 6f 29 0a 20 20 22 43 6f 70 79 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 46 52 to)..."Copy.file.or.directory.FR
66a0 4f 4d 20 74 6f 20 54 4f 2e 0a 49 66 20 46 52 4f 4d 20 6e 61 6d 65 73 20 61 20 64 69 72 65 63 74 OM.to.TO..If.FROM.names.a.direct
66c0 6f 72 79 20 61 6e 64 20 54 4f 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 ory.and.TO.is.a.directory.name,.
66e0 63 6f 70 79 20 46 52 4f 4d 0a 69 6e 74 6f 20 54 4f 20 61 73 20 61 20 73 75 62 64 69 72 65 63 74 copy.FROM.into.TO.as.a.subdirect
6700 6f 72 79 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 74 6f 0a 20 20 20 20 28 ory."...(f--destructive.to.....(
6720 69 66 20 28 66 2d 66 69 6c 65 2d 70 20 66 72 6f 6d 29 0a 20 20 20 20 20 20 20 20 28 63 6f 70 79 if.(f-file-p.from).........(copy
6740 2d 66 69 6c 65 20 66 72 6f 6d 20 74 6f 29 0a 20 20 20 20 20 20 3b 3b 20 54 68 65 20 62 65 68 61 -file.from.to).......;;.The.beha
6760 76 69 6f 72 20 6f 66 20 60 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 27 20 64 69 66 66 65 72 73 vior.of.`copy-directory'.differs
6780 20 62 65 74 77 65 65 6e 20 45 6d 61 63 73 20 32 33 20 61 6e 64 0a 20 20 20 20 20 20 3b 3b 20 32 .between.Emacs.23.and.......;;.2
67a0 34 20 69 6e 20 74 68 61 74 20 69 6e 20 45 6d 61 63 73 20 32 33 2c 20 74 68 65 20 63 6f 6e 74 65 4.in.that.in.Emacs.23,.the.conte
67c0 6e 74 73 20 6f 66 20 60 66 72 6f 6d 27 20 69 73 20 63 6f 70 69 65 64 20 74 6f 0a 20 20 20 20 20 nts.of.`from'.is.copied.to......
67e0 20 3b 3b 20 60 74 6f 27 2c 20 77 68 69 6c 65 20 69 6e 20 45 6d 61 63 73 20 32 34 20 74 68 65 20 .;;.`to',.while.in.Emacs.24.the.
6800 64 69 72 65 63 74 6f 72 79 20 60 66 72 6f 6d 27 20 69 73 20 63 6f 70 69 65 64 20 74 6f 0a 20 20 directory.`from'.is.copied.to...
6820 20 20 20 20 3b 3b 20 60 74 6f 27 2e 20 57 65 20 77 61 6e 74 20 74 68 65 20 45 6d 61 63 73 20 32 ....;;.`to'..We.want.the.Emacs.2
6840 34 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 28 69 66 20 28 3e 20 65 6d 61 63 73 2d 6d 4.behavior........(if.(>.emacs-m
6860 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 ajor-version.23)...........(copy
6880 2d 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 74 6f 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 -directory.from.to).........(if.
68a0 28 66 2d 64 69 72 2d 70 20 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a (f-dir-p.to).............(progn.
68c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 27 66 2d 6d 6b 64 69 72 20 28 66 ..............(apply.'f-mkdir.(f
68e0 2d 73 70 6c 69 74 20 74 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 -split.to))...............(let.(
6900 28 6e 65 77 2d 74 6f 20 28 66 2d 65 78 70 61 6e 64 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 66 72 (new-to.(f-expand.(f-filename.fr
6920 6f 6d 29 20 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d om).to))).................(copy-
6940 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 6e 65 77 2d 74 6f 29 29 29 0a 20 20 20 20 20 20 20 directory.from.new-to)))........
6960 20 20 20 28 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 74 6f 29 29 29 29 29 29 ...(copy-directory.from.to))))))
6980 0a 0a 28 64 65 66 75 6e 20 66 2d 63 6f 70 79 2d 63 6f 6e 74 65 6e 74 73 20 28 66 72 6f 6d 20 74 ..(defun.f-copy-contents.(from.t
69a0 6f 29 0a 20 20 22 43 6f 70 79 20 63 6f 6e 74 65 6e 74 73 20 69 6e 20 64 69 72 65 63 74 6f 72 79 o)..."Copy.contents.in.directory
69c0 20 46 52 4f 4d 2c 20 74 6f 20 64 69 72 65 63 74 6f 72 79 20 54 4f 2e 22 0a 20 20 28 75 6e 6c 65 .FROM,.to.directory.TO."...(unle
69e0 73 73 20 28 66 2d 65 78 69 73 74 73 2d 70 20 74 6f 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 ss.(f-exists-p.to).....(error."C
6a00 61 6e 6e 6f 74 20 63 6f 70 79 20 63 6f 6e 74 65 6e 74 73 20 74 6f 20 6e 6f 6e 20 65 78 69 73 74 annot.copy.contents.to.non.exist
6a20 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 25 73 22 20 74 6f 29 29 0a 20 20 28 75 6e 6c 65 73 73 ing.directory.%s".to))...(unless
6a40 20 28 66 2d 64 69 72 2d 70 20 66 72 6f 6d 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 6e .(f-dir-p.from).....(error."Cann
6a60 6f 74 20 63 6f 70 79 20 63 6f 6e 74 65 6e 74 73 20 61 73 20 25 73 20 69 73 20 61 20 66 69 6c 65 ot.copy.contents.as.%s.is.a.file
6a80 22 20 66 72 6f 6d 29 29 0a 20 20 28 2d 2d 65 61 63 68 20 28 66 2d 65 6e 74 72 69 65 73 20 66 72 ".from))...(--each.(f-entries.fr
6aa0 6f 6d 29 0a 20 20 20 20 28 66 2d 63 6f 70 79 20 69 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 om).....(f-copy.it.(file-name-as
6ac0 2d 64 69 72 65 63 74 6f 72 79 20 74 6f 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 74 6f 75 63 -directory.to))))..(defun.f-touc
6ae0 68 20 28 70 61 74 68 29 0a 20 20 22 55 70 64 61 74 65 20 50 41 54 48 20 6c 61 73 74 20 6d 6f 64 h.(path)..."Update.PATH.last.mod
6b00 69 66 69 63 61 74 69 6f 6e 20 64 61 74 65 20 6f 72 20 63 72 65 61 74 65 20 69 66 20 69 74 20 64 ification.date.or.create.if.it.d
6b20 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 oes.not.exist."...(f--destructiv
6b40 65 20 70 61 74 68 0a 20 20 20 20 28 69 66 20 28 66 2d 66 69 6c 65 2d 70 20 70 61 74 68 29 0a 20 e.path.....(if.(f-file-p.path)..
6b60 20 20 20 20 20 20 20 28 73 65 74 2d 66 69 6c 65 2d 74 69 6d 65 73 20 70 61 74 68 29 0a 20 20 20 .......(set-file-times.path)....
6b80 20 20 20 28 66 2d 77 72 69 74 65 2d 62 79 74 65 73 20 22 22 20 70 61 74 68 29 29 29 29 0a 0a 0c ...(f-write-bytes."".path))))...
6ba0 0a 3b 3b 3b 3b 20 50 72 65 64 69 63 61 74 65 73 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 .;;;;.Predicates..(defalias.'f-e
6bc0 78 69 73 74 73 2d 70 20 27 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 29 0a 28 64 65 66 61 6c 69 61 xists-p.'file-exists-p).(defalia
6be0 73 20 27 66 2d 65 78 69 73 74 73 3f 20 27 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 29 0a 0a 28 64 s.'f-exists?.'file-exists-p)..(d
6c00 65 66 61 6c 69 61 73 20 27 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 27 66 69 6c 65 2d 64 69 72 efalias.'f-directory-p.'file-dir
6c20 65 63 74 6f 72 79 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 64 69 72 65 63 74 6f 72 79 ectory-p).(defalias.'f-directory
6c40 3f 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 ?.'file-directory-p).(defalias.'
6c60 66 2d 64 69 72 2d 70 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 29 0a 28 64 65 66 61 f-dir-p.'file-directory-p).(defa
6c80 6c 69 61 73 20 27 66 2d 64 69 72 3f 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 29 0a lias.'f-dir?.'file-directory-p).
6ca0 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 66 69 6c 65 2d 70 20 27 66 69 6c 65 2d 72 65 67 75 ..(defalias.'f-file-p.'file-regu
6cc0 6c 61 72 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 66 69 6c 65 3f 20 27 66 69 6c 65 2d lar-p).(defalias.'f-file?.'file-
6ce0 72 65 67 75 6c 61 72 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 28 regular-p)..(defun.f-symlink-p.(
6d00 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 20 69 73 20 73 79 6d path)..."Return.t.if.PATH.is.sym
6d20 6c 69 6e 6b 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6e 6f 74 20 28 link,.false.otherwise."...(not.(
6d40 6e 6f 74 20 28 66 69 6c 65 2d 73 79 6d 6c 69 6e 6b 2d 70 20 70 61 74 68 29 29 29 29 0a 0a 28 64 not.(file-symlink-p.path))))..(d
6d60 65 66 61 6c 69 61 73 20 27 66 2d 73 79 6d 6c 69 6e 6b 3f 20 27 66 2d 73 79 6d 6c 69 6e 6b 2d 70 efalias.'f-symlink?.'f-symlink-p
6d80 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 27 66 69 6c 65 )..(defalias.'f-readable-p.'file
6da0 2d 72 65 61 64 61 62 6c 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 61 64 61 62 -readable-p).(defalias.'f-readab
6dc0 6c 65 3f 20 27 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 le?.'file-readable-p)..(defalias
6de0 20 27 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 27 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 29 .'f-writable-p.'file-writable-p)
6e00 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 77 72 69 74 61 62 6c 65 3f 20 27 66 69 6c 65 2d 77 72 .(defalias.'f-writable?.'file-wr
6e20 69 74 61 62 6c 65 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 65 63 75 74 61 62 itable-p)..(defalias.'f-executab
6e40 6c 65 2d 70 20 27 66 69 6c 65 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 29 0a 28 64 65 66 61 6c 69 le-p.'file-executable-p).(defali
6e60 61 73 20 27 66 2d 65 78 65 63 75 74 61 62 6c 65 3f 20 27 66 69 6c 65 2d 65 78 65 63 75 74 61 62 as.'f-executable?.'file-executab
6e80 6c 65 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 27 le-p)..(defalias.'f-absolute-p.'
6ea0 66 69 6c 65 2d 6e 61 6d 65 2d 61 62 73 6f 6c 75 74 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 file-name-absolute-p).(defalias.
6ec0 27 66 2d 61 62 73 6f 6c 75 74 65 3f 20 27 66 69 6c 65 2d 6e 61 6d 65 2d 61 62 73 6f 6c 75 74 65 'f-absolute?.'file-name-absolute
6ee0 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 28 70 61 74 68 29 0a -p)..(defun.f-relative-p.(path).
6f00 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 20 69 73 20 72 65 6c 61 74 69 76 65 2c .."Return.t.if.PATH.is.relative,
6f20 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6e 6f 74 20 28 66 2d 61 62 73 .false.otherwise."...(not.(f-abs
6f40 6f 6c 75 74 65 2d 70 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 olute-p.path)))..(defalias.'f-re
6f60 6c 61 74 69 76 65 3f 20 27 66 2d 72 65 6c 61 74 69 76 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 lative?.'f-relative-p)..(defun.f
6f80 2d 72 6f 6f 74 2d 70 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 -root-p.(path)..."Return.t.if.PA
6fa0 54 48 20 69 73 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 2c 20 66 61 6c 73 65 20 6f 74 68 65 TH.is.root.directory,.false.othe
6fc0 72 77 69 73 65 2e 22 0a 20 20 28 6e 6f 74 20 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 29 29 29 rwise."...(not.(f-parent.path)))
6fe0 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 6f 6f 74 3f 20 27 66 2d 72 6f 6f 74 2d 70 29 0a ..(defalias.'f-root?.'f-root-p).
7000 0a 28 64 65 66 75 6e 20 66 2d 65 78 74 2d 70 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 .(defun.f-ext-p.(path.&optional.
7020 65 78 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 ext)..."Return.t.if.extension.of
7040 20 50 41 54 48 20 69 73 20 45 58 54 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a .PATH.is.EXT,.false.otherwise...
7060 49 66 20 45 58 54 20 69 73 20 6e 69 6c 20 6f 72 20 6f 6d 69 74 74 65 64 2c 20 72 65 74 75 72 6e If.EXT.is.nil.or.omitted,.return
7080 20 74 20 69 66 20 50 41 54 48 20 68 61 73 20 61 6e 79 20 65 78 74 65 6e 73 69 6f 6e 2c 0a 66 61 .t.if.PATH.has.any.extension,.fa
70a0 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 54 68 65 20 65 78 74 65 6e 73 69 6f 6e 2c 20 69 lse.otherwise...The.extension,.i
70c0 6e 20 61 20 66 69 6c 65 20 6e 61 6d 65 2c 20 69 73 20 74 68 65 20 70 61 72 74 20 74 68 61 74 20 n.a.file.name,.is.the.part.that.
70e0 66 6f 6c 6c 6f 77 73 20 74 68 65 20 6c 61 73 74 0a 27 2e 27 2c 20 65 78 63 6c 75 64 69 6e 67 20 follows.the.last.'.',.excluding.
7100 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 73 20 61 6e 64 20 62 61 63 6b 75 70 20 73 75 66 66 69 version.numbers.and.backup.suffi
7120 78 65 73 2e 22 0a 20 20 28 69 66 20 65 78 74 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 xes."...(if.ext.......(string=.(
7140 66 2d 65 78 74 20 70 61 74 68 29 20 65 78 74 29 0a 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 66 f-ext.path).ext).....(not.(eq.(f
7160 2d 65 78 74 20 70 61 74 68 29 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 -ext.path).nil))))..(defalias.'f
7180 2d 65 78 74 3f 20 27 66 2d 65 78 74 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 71 -ext?.'f-ext-p)..(defalias.'f-eq
71a0 75 61 6c 2d 70 20 27 66 2d 73 61 6d 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 71 ual-p.'f-same-p).(defalias.'f-eq
71c0 75 61 6c 3f 20 27 66 2d 73 61 6d 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 61 6d 65 2d 70 ual?.'f-same-p)..(defun.f-same-p
71e0 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 .(path-a.path-b)..."Return.t.if.
7200 50 41 54 48 2d 41 20 61 6e 64 20 50 41 54 48 2d 42 20 61 72 65 20 72 65 66 65 72 65 6e 63 65 73 PATH-A.and.PATH-B.are.references
7220 20 74 6f 20 73 61 6d 65 20 66 69 6c 65 2e 22 0a 20 20 28 65 71 75 61 6c 0a 20 20 20 28 66 2d 63 .to.same.file."...(equal....(f-c
7240 61 6e 6f 6e 69 63 61 6c 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 anonical.(directory-file-name.(f
7260 2d 65 78 70 61 6e 64 20 70 61 74 68 2d 61 29 29 29 0a 20 20 20 28 66 2d 63 61 6e 6f 6e 69 63 61 -expand.path-a)))....(f-canonica
7280 6c 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 2d 65 78 70 61 6e 64 l.(directory-file-name.(f-expand
72a0 20 70 61 74 68 2d 62 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 73 61 6d 65 3f .path-b)))))..(defalias.'f-same?
72c0 20 27 66 2d 73 61 6d 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 70 61 72 65 6e 74 2d 6f 66 2d .'f-same-p)..(defun.f-parent-of-
72e0 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 p.(path-a.path-b)..."Return.t.if
7300 20 50 41 54 48 2d 41 20 69 73 20 70 61 72 65 6e 74 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a 20 20 .PATH-A.is.parent.of.PATH-B."...
7320 28 2d 2d 77 68 65 6e 2d 6c 65 74 20 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 2d 62 29 0a 20 20 (--when-let.(f-parent.path-b)...
7340 20 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 74 68 2d 61 20 69 74 29 29 29 0a 0a 28 64 65 66 61 6c ..(f-same-p.path-a.it)))..(defal
7360 69 61 73 20 27 66 2d 70 61 72 65 6e 74 2d 6f 66 3f 20 27 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 ias.'f-parent-of?.'f-parent-of-p
7380 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 20 28 70 61 74 68 2d 61 20 70 )..(defun.f-child-of-p.(path-a.p
73a0 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 69 73 20 ath-b)..."Return.t.if.PATH-A.is.
73c0 63 68 69 6c 64 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a 20 20 28 2d 2d 77 68 65 6e 2d 6c 65 74 20 child.of.PATH-B."...(--when-let.
73e0 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 2d 61 29 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 70 20 (f-parent.path-a).....(f-same-p.
7400 69 74 20 70 61 74 68 2d 62 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 63 68 69 6c 64 it.path-b)))..(defalias.'f-child
7420 2d 6f 66 3f 20 27 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 61 6e -of?.'f-child-of-p)..(defun.f-an
7440 63 65 73 74 6f 72 2d 6f 66 2d 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 cestor-of-p.(path-a.path-b)..."R
7460 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 69 73 20 61 6e 63 65 73 74 6f 72 20 6f 66 eturn.t.if.PATH-A.is.ancestor.of
7480 20 50 41 54 48 2d 42 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 .PATH-B."...(unless.(f-same-p.pa
74a0 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d th-a.path-b).....(string-prefix-
74c0 70 20 28 66 2d 66 75 6c 6c 20 70 61 74 68 2d 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.(f-full.path-a)...............
74e0 20 20 20 20 20 20 20 28 66 2d 66 75 6c 6c 20 70 61 74 68 2d 62 29 29 29 29 0a 0a 28 64 65 66 61 .......(f-full.path-b))))..(defa
7500 6c 69 61 73 20 27 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 3f 20 27 66 2d 61 6e 63 65 73 74 6f 72 lias.'f-ancestor-of?.'f-ancestor
7520 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 -of-p)..(defun.f-descendant-of-p
7540 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 .(path-a.path-b)..."Return.t.if.
7560 50 41 54 48 2d 41 20 69 73 20 64 65 73 65 6e 64 61 6e 74 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a PATH-A.is.desendant.of.PATH-B.".
7580 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 74 68 2d 61 20 70 61 74 68 2d ..(unless.(f-same-p.path-a.path-
75a0 62 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 74 68 2d 61 20 28 66 2d 73 70 6c 69 74 20 28 66 b).....(let.((path-a.(f-split.(f
75c0 2d 66 75 6c 6c 20 70 61 74 68 2d 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 2d -full.path-a)))...........(path-
75e0 62 20 28 66 2d 73 70 6c 69 74 20 28 66 2d 66 75 6c 6c 20 70 61 74 68 2d 62 29 29 29 0a 20 20 20 b.(f-split.(f-full.path-b)))....
7600 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 70 20 74 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c .......(parent-p.t)).......(whil
7620 65 20 28 61 6e 64 20 70 61 74 68 2d 62 20 70 61 72 65 6e 74 2d 70 29 0a 20 20 20 20 20 20 20 20 e.(and.path-b.parent-p).........
7640 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 70 61 74 68 2d 61 29 20 28 63 61 72 20 70 (if.(string=.(car.path-a).(car.p
7660 61 74 68 2d 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 2d 61 ath-b)).............(setq.path-a
7680 20 28 63 64 72 20 70 61 74 68 2d 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(cdr.path-a)...................
76a0 70 61 74 68 2d 62 20 28 63 64 72 20 70 61 74 68 2d 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 path-b.(cdr.path-b))...........(
76c0 73 65 74 71 20 70 61 72 65 6e 74 2d 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 70 61 72 65 6e setq.parent-p.nil))).......paren
76e0 74 2d 70 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d t-p)))..(defalias.'f-descendant-
7700 6f 66 3f 20 27 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 of?.'f-descendant-of-p)..(defun.
7720 66 2d 68 69 64 64 65 6e 2d 70 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 68 61 76 f-hidden-p.(path.&optional.behav
7740 69 6f 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 20 69 73 20 68 69 64 64 ior)..."Return.t.if.PATH.is.hidd
7760 65 6e 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 42 45 48 41 56 49 4f 52 20 63 6f 6e en,.nil.otherwise...BEHAVIOR.con
7780 74 72 6f 6c 73 20 77 68 65 6e 20 61 20 70 61 74 68 20 73 68 6f 75 6c 64 20 62 65 20 63 6f 6e 73 trols.when.a.path.should.be.cons
77a0 69 64 65 72 65 64 20 61 73 20 68 69 64 64 65 6e 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 69 74 idered.as.hidden.depending.on.it
77c0 73 20 76 61 6c 75 65 2e 20 20 42 65 77 61 72 65 2c 20 69 66 20 50 41 54 48 20 62 65 67 69 6e 73 s.value...Beware,.if.PATH.begins
77e0 20 77 69 74 68 20 5c 22 2e 2f 5c 22 2c 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 20 5c 22 .with.\"./\",.the.current.dir.\"
7800 2e 5c 22 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 63 6f 6e 73 69 64 65 72 65 64 20 61 73 20 68 69 .\".will.not.be.considered.as.hi
7820 64 64 65 6e 2e 0a 0a 57 68 65 6e 20 42 45 48 41 56 49 4f 52 20 69 73 20 6e 69 6c 2c 20 69 74 20 dden...When.BEHAVIOR.is.nil,.it.
7840 77 69 6c 6c 20 6f 6e 6c 79 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 70 61 74 68 20 62 65 67 69 will.only.check.if.the.path.begi
7860 6e 73 20 77 69 74 68 0a 61 20 64 6f 74 2c 20 61 73 20 69 6e 20 2e 61 2f 62 2f 63 2c 20 61 6e 64 ns.with.a.dot,.as.in..a/b/c,.and
7880 20 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65 2e 20 20 54 68 69 73 .return.t.if.there.is.one...This
78a0 20 69 73 20 74 68 65 0a 6f 6c 64 20 62 65 68 61 76 69 6f 72 20 6f 66 20 66 2e 65 6c 20 6c 65 66 .is.the.old.behavior.of.f.el.lef
78c0 74 20 61 73 20 64 65 66 61 75 6c 74 20 66 6f 72 20 62 61 63 6b 77 61 72 64 2d 63 6f 6d 70 61 74 t.as.default.for.backward-compat
78e0 69 62 69 6c 69 74 79 0a 70 75 72 70 6f 73 65 73 2e 0a 0a 57 68 65 6e 20 42 45 48 41 56 49 4f 52 ibility.purposes...When.BEHAVIOR
7900 20 69 73 20 41 4e 59 2c 20 72 65 74 75 72 6e 20 74 20 69 66 20 61 6e 79 20 6f 66 20 74 68 65 20 .is.ANY,.return.t.if.any.of.the.
7920 65 6c 65 6d 65 6e 74 73 20 6f 66 20 50 41 54 48 20 69 73 0a 68 69 64 64 65 6e 2c 20 6e 69 6c 20 elements.of.PATH.is.hidden,.nil.
7940 6f 74 68 65 72 77 69 73 65 2e 0a 0a 57 68 65 6e 20 42 45 48 41 56 49 4f 52 20 69 73 20 4c 41 53 otherwise...When.BEHAVIOR.is.LAS
7960 54 2c 20 72 65 74 75 72 6e 20 74 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 6c 61 73 74 20 65 6c 65 T,.return.t.only.if.the.last.ele
7980 6d 65 6e 74 20 6f 66 20 50 41 54 48 0a 69 73 20 68 69 64 64 65 6e 2c 20 6e 69 6c 20 6f 74 68 65 ment.of.PATH.is.hidden,.nil.othe
79a0 72 77 69 73 65 2e 0a 0a 54 4f 44 4f 3a 20 48 69 64 64 65 6e 20 64 69 72 65 63 74 6f 72 69 65 73 rwise...TODO:.Hidden.directories
79c0 20 61 6e 64 20 66 69 6c 65 73 20 6f 6e 20 57 69 6e 64 6f 77 73 20 61 72 65 20 6d 61 72 6b 65 64 .and.files.on.Windows.are.marked
79e0 0a 64 69 66 66 65 72 65 6e 74 6c 79 20 74 68 61 6e 20 6f 6e 20 2a 4e 49 58 20 73 79 73 74 65 6d .differently.than.on.*NIX.system
7a00 73 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 70 72 6f 70 65 72 6c 79 0a 69 6d 70 6c s...This.should.be.properly.impl
7a20 65 6d 65 6e 74 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 70 61 74 68 20 28 66 emented."...(let.((split-path.(f
7a40 2d 73 70 6c 69 74 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 65 63 6b 2d 68 69 64 -split.path)).........(check-hid
7a60 64 65 6e 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 den.(lambda.(elt)...............
7a80 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 3d 20 28 73 75 62 73 74 72 69 ..........(and.(string=.(substri
7aa0 6e 67 20 65 6c 74 20 30 20 31 29 20 22 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.elt.0.1).".")................
7ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 65 6c 74 20 27 ..............(not.(member.elt.'
7ae0 28 22 2e 22 20 22 2e 2e 22 29 29 29 29 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 62 65 68 61 (".".".."))))))).....(pcase.beha
7b00 76 69 6f 72 0a 20 20 20 20 20 20 28 27 61 6e 79 20 20 28 2d 61 6e 79 20 63 68 65 63 6b 2d 68 69 vior.......('any..(-any.check-hi
7b20 64 64 65 6e 20 73 70 6c 69 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 28 27 6c 61 73 74 20 28 dden.split-path)).......('last.(
7b40 61 70 70 6c 79 20 63 68 65 63 6b 2d 68 69 64 64 65 6e 20 28 6c 61 73 74 20 73 70 6c 69 74 2d 70 apply.check-hidden.(last.split-p
7b60 61 74 68 29 29 29 0a 20 20 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 20 28 69 66 20 28 6e 75 6c ath))).......(otherwise.(if.(nul
7b80 6c 20 6f 74 68 65 72 77 69 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l.otherwise)....................
7ba0 20 20 28 66 75 6e 63 61 6c 6c 20 63 68 65 63 6b 2d 68 69 64 64 65 6e 20 28 63 61 72 20 73 70 6c ..(funcall.check-hidden.(car.spl
7bc0 69 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 it-path))....................(er
7be0 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 25 53 20 66 6f 72 20 61 72 67 75 6d 65 ror."Invalid.value.%S.for.argume
7c00 6e 74 20 42 45 48 41 56 49 4f 52 22 20 6f 74 68 65 72 77 69 73 65 29 29 29 29 29 29 0a 0a 28 64 nt.BEHAVIOR".otherwise))))))..(d
7c20 65 66 61 6c 69 61 73 20 27 66 2d 68 69 64 64 65 6e 3f 20 27 66 2d 68 69 64 64 65 6e 2d 70 29 0a efalias.'f-hidden?.'f-hidden-p).
7c40 0a 28 64 65 66 75 6e 20 66 2d 65 6d 70 74 79 2d 70 20 28 70 61 74 68 29 0a 20 20 22 49 66 20 50 .(defun.f-empty-p.(path)..."If.P
7c60 41 54 48 20 69 73 20 61 20 66 69 6c 65 2c 20 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 20 66 ATH.is.a.file,.return.t.if.the.f
7c80 69 6c 65 20 69 6e 20 50 41 54 48 20 69 73 20 65 6d 70 74 79 2c 20 6e 69 6c 20 6f 74 68 65 72 77 ile.in.PATH.is.empty,.nil.otherw
7ca0 69 73 65 2e 0a 49 66 20 50 41 54 48 20 69 73 20 64 69 72 65 63 74 6f 72 79 2c 20 72 65 74 75 72 ise..If.PATH.is.directory,.retur
7cc0 6e 20 74 20 69 66 20 64 69 72 65 63 74 6f 72 79 20 68 61 73 20 6e 6f 20 66 69 6c 65 73 2c 20 6e n.t.if.directory.has.no.files,.n
7ce0 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66 20 28 66 2d 64 69 72 65 63 74 6f 72 il.otherwise."...(if.(f-director
7d00 79 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 66 2d 66 69 6c 65 73 20 y-p.path).......(equal.(f-files.
7d20 70 61 74 68 20 6e 69 6c 20 74 29 20 6e 69 6c 29 0a 20 20 20 20 28 3d 20 28 66 2d 73 69 7a 65 20 path.nil.t).nil).....(=.(f-size.
7d40 70 61 74 68 29 20 30 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 6d 70 74 79 3f 20 path).0)))..(defalias.'f-empty?.
7d60 27 66 2d 65 6d 70 74 79 2d 70 29 0a 0a 0c 0a 3b 3b 3b 3b 20 53 74 61 74 73 0a 0a 28 64 65 66 75 'f-empty-p)....;;;;.Stats..(defu
7d80 6e 20 66 2d 73 69 7a 65 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 73 69 7a 65 20 6f n.f-size.(path)..."Return.size.o
7da0 66 20 50 41 54 48 2e 0a 0a 49 66 20 50 41 54 48 20 69 73 20 61 20 66 69 6c 65 2c 20 72 65 74 75 f.PATH...If.PATH.is.a.file,.retu
7dc0 72 6e 20 73 69 7a 65 20 6f 66 20 74 68 61 74 20 66 69 6c 65 2e 20 20 49 66 20 50 41 54 48 20 69 rn.size.of.that.file...If.PATH.i
7de0 73 0a 64 69 72 65 63 74 6f 72 79 2c 20 72 65 74 75 72 6e 20 73 75 6d 20 6f 66 20 61 6c 6c 20 66 s.directory,.return.sum.of.all.f
7e00 69 6c 65 73 20 69 6e 20 50 41 54 48 2e 22 0a 20 20 28 69 66 20 28 66 2d 64 69 72 65 63 74 6f 72 iles.in.PATH."...(if.(f-director
7e20 79 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 2d 73 75 6d 20 28 2d 6d 61 70 20 27 66 2d 73 y-p.path).......(-sum.(-map.'f-s
7e40 69 7a 65 20 28 66 2d 66 69 6c 65 73 20 70 61 74 68 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 ize.(f-files.path.nil.t))).....(
7e60 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 70 61 74 68 29 29 29 29 0a nth.7.(file-attributes.path)))).
7e80 0a 28 64 65 66 75 6e 20 66 2d 64 65 70 74 68 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e .(defun.f-depth.(path)..."Return
7ea0 20 74 68 65 20 64 65 70 74 68 20 6f 66 20 50 41 54 48 2e 0a 0a 41 74 20 66 69 72 73 74 2c 20 50 .the.depth.of.PATH...At.first,.P
7ec0 41 54 48 20 69 73 20 65 78 70 61 6e 64 65 64 20 77 69 74 68 20 60 66 2d 65 78 70 61 6e 64 27 2e ATH.is.expanded.with.`f-expand'.
7ee0 20 20 54 68 65 6e 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 69 73 20 75 73 65 64 20 74 6f 0a ..Then.the.full.path.is.used.to.
7f00 64 65 74 65 63 74 20 74 68 65 20 64 65 70 74 68 2e 0a 27 2f 27 20 77 69 6c 6c 20 62 65 20 7a 65 detect.the.depth..'/'.will.be.ze
7f20 72 6f 20 64 65 70 74 68 2c 20 20 27 2f 75 73 72 27 20 77 69 6c 6c 20 62 65 20 6f 6e 65 20 64 65 ro.depth,..'/usr'.will.be.one.de
7f40 70 74 68 2e 20 20 41 6e 64 20 73 6f 20 6f 6e 2e 22 0a 20 20 28 2d 20 28 6c 65 6e 67 74 68 20 28 pth...And.so.on."...(-.(length.(
7f60 66 2d 73 70 6c 69 74 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 29 29 29 20 31 29 29 0a 0a 3b f-split.(f-expand.path))).1))..;
7f80 3b 20 46 6f 72 20 45 6d 61 63 73 20 32 38 20 61 6e 64 20 62 65 6c 6f 77 2c 20 66 6f 72 77 61 72 ;.For.Emacs.28.and.below,.forwar
7fa0 64 2d 64 65 63 6c 61 72 65 20 e2 80 98 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 74 e2 80 d-declare....current-time-list..
7fc0 99 2c 20 77 68 69 63 68 20 77 61 73 0a 3b 3b 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 45 6d .,.which.was.;;.introduced.in.Em
7fe0 61 63 73 20 32 39 2e 0a 28 64 65 66 76 61 72 20 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 acs.29..(defvar.current-time-lis
8000 74 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 67 65 74 2d 74 69 6d 65 20 28 70 61 74 68 20 74 69 6d t)..(defun.f--get-time.(path.tim
8020 65 73 74 61 6d 70 2d 70 20 66 6e 29 0a 20 20 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 2c estamp-p.fn)..."Helper.function,
8040 20 67 65 74 20 74 69 6d 65 2d 72 65 6c 61 74 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f .get.time-related.information.fo
8060 72 20 50 41 54 48 2e 0a 48 65 6c 70 65 72 20 66 6f 72 20 60 66 2d 63 68 61 6e 67 65 2d 74 69 6d r.PATH..Helper.for.`f-change-tim
8080 65 27 2c 20 60 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 27 2c 0a 60 66 2d 61 63 e',.`f-modification-time',.`f-ac
80a0 63 65 73 73 2d 74 69 6d 65 27 2e 20 20 49 74 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 63 cess-time'...It.is.meant.to.be.c
80c0 61 6c 6c 65 64 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 20 61 76 6f 69 64 0a 63 61 6c 6c 69 6e 67 20 alled.internally,.avoid.calling.
80e0 69 74 20 6d 61 6e 75 61 6c 6c 79 20 75 6e 6c 65 73 73 20 79 6f 75 20 68 61 76 65 20 74 6f 2e 0a it.manually.unless.you.have.to..
8100 0a 49 66 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 74 75 .If.TIMESTAMP-P.is.non-nil,.retu
8120 72 6e 20 74 68 65 20 64 61 74 65 20 72 65 71 75 65 73 74 65 64 20 61 73 20 61 0a 74 69 6d 65 73 rn.the.date.requested.as.a.times
8140 74 61 6d 70 2e 20 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 5c 5c 3d 27 73 65 63 6f 6e tamp...If.the.value.is.\\='secon
8160 64 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 74 69 6d 65 73 74 61 6d 70 20 61 73 0a 61 20 74 69 ds,.return.the.timestamp.as.a.ti
8180 6d 65 73 74 61 6d 70 20 77 69 74 68 20 61 20 6f 6e 65 2d 73 65 63 6f 6e 64 20 70 72 65 63 69 73 mestamp.with.a.one-second.precis
81a0 69 6f 6e 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 0a 74 69 6d 65 73 74 61 6d 70 20 69 ion...Otherwise,.the.timestamp.i
81c0 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 61 20 28 54 49 43 4b 53 20 2e 20 48 5a 29 20 66 6f 72 s.returned.in.a.(TICKS...HZ).for
81e0 6d 61 74 2c 20 73 65 65 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 20 69 66 20 75 73 69 6e 67 mat,.see.`current-time'.if.using
8200 20 45 6d 61 63 73 20 32 39 20 6f 72 20 6e 65 77 65 72 2e 0a 0a 4f 74 68 65 72 77 69 73 65 2c 20 .Emacs.29.or.newer...Otherwise,.
8220 69 66 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 69 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e 20 74 68 if.TIMESTAMP-P.is.nil,.return.th
8240 65 20 64 65 66 61 75 6c 74 20 73 74 79 6c 65 20 6f 66 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 e.default.style.of.`current-time
8260 27 2e 0a 0a 46 4e 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 '...FN.is.the.function.specified
8280 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 72 69 .by.the.caller.function.to.retri
82a0 65 76 65 0a 74 68 65 20 63 6f 72 72 65 63 74 20 64 61 74 61 20 66 72 6f 6d 20 50 41 54 48 2e 22 eve.the.correct.data.from.PATH."
82c0 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 74 .......(let*.((current-time-list
82e0 20 28 6e 6f 74 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(not.timestamp-p)).............
8300 20 28 64 61 74 65 20 28 61 70 70 6c 79 20 66 6e 20 28 6c 69 73 74 20 28 66 69 6c 65 2d 61 74 74 .(date.(apply.fn.(list.(file-att
8320 72 69 62 75 74 65 73 20 70 61 74 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ributes.path))))..............(e
8340 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 39 macs29-or-newer-p.(version<=."29
8360 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 ".emacs-version))).........(cond
8380 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 ..........((and.(eq.timestamp-p.
83a0 27 73 65 63 6f 6e 64 73 29 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 0a 20 20 'seconds).emacs29-or-newer-p)...
83c0 20 20 20 20 20 20 20 20 28 2f 20 28 63 61 72 20 64 61 74 65 29 20 28 63 64 72 20 64 61 74 65 29 ........(/.(car.date).(cdr.date)
83e0 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71 20 74 ))..........((or.(and.(not.(eq.t
8400 69 6d 65 73 74 61 6d 70 2d 70 20 27 73 65 63 6f 6e 64 73 29 29 20 65 6d 61 63 73 32 39 2d 6f 72 imestamp-p.'seconds)).emacs29-or
8420 2d 6e 65 77 65 72 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f -newer-p)...............(and.(no
8440 74 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 20 28 6e 6f 74 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e t.timestamp-p).(not.emacs29-or-n
8460 65 77 65 72 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 64 61 74 65 29 0a 20 20 20 20 20 20 ewer-p)))...........date).......
8480 20 20 20 28 28 61 6e 64 20 28 65 71 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 27 73 65 63 6f 6e 64 ...((and.(eq.timestamp-p.'second
84a0 73 29 20 28 6e 6f 74 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 29 0a 20 20 20 s).(not.emacs29-or-newer-p))....
84c0 20 20 20 20 20 20 20 28 2b 20 28 2a 20 28 6e 74 68 20 30 20 64 61 74 65 29 20 28 65 78 70 74 20 .......(+.(*.(nth.0.date).(expt.
84e0 32 20 31 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 31 20 64 61 74 65 29 2.16))..............(nth.1.date)
8500 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 28 6e ))..........((and.timestamp-p.(n
8520 6f 74 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 29 0a 20 20 20 20 20 20 20 20 ot.emacs29-or-newer-p)).........
8540 20 20 60 28 2c 28 2b 20 28 2a 20 28 6e 74 68 20 30 20 64 61 74 65 29 20 28 65 78 70 74 20 32 20 ..`(,(+.(*.(nth.0.date).(expt.2.
8560 31 36 29 20 31 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 6e 74 16).1000).................(*.(nt
8580 68 20 31 20 64 61 74 65 29 20 31 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.1.date).1000).................
85a0 28 6e 74 68 20 33 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 31 30 30 30 (nth.3.date))...............1000
85c0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 28 70 61 74 )))))..(defun.f-change-time.(pat
85e0 68 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 h.&optional.timestamp-p)..."Retu
8600 72 6e 20 74 68 65 20 6c 61 73 74 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 20 74 69 6d 65 20 6f rn.the.last.status.change.time.o
8620 66 20 50 41 54 48 2e 0a 0a 54 68 65 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 20 74 69 6d 65 20 f.PATH...The.status.change.time.
8640 28 63 74 69 6d 65 29 20 6f 66 20 50 41 54 48 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d (ctime).of.PATH.in.the.same.form
8660 61 74 20 61 73 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 2e 20 20 46 6f 72 20 64 65 74 61 69 at.as.`current-time'...For.detai
8680 6c 73 20 6f 6e 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 ls.on.TIMESTAMP-P.and.the.format
86a0 20 6f 66 20 74 68 65 0a 72 65 74 75 72 6e 65 64 20 76 61 6c 75 65 2c 20 73 65 65 20 60 66 2d 2d .of.the.returned.value,.see.`f--
86c0 67 65 74 2d 74 69 6d 65 27 2e 22 0a 20 20 28 66 2d 2d 67 65 74 2d 74 69 6d 65 20 70 61 74 68 0a get-time'."...(f--get-time.path.
86e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 74 61 6d 70 2d 70 0a 20 20 20 20 20 ...............timestamp-p......
8700 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 69 6c 65 2d 61 74 74 ..........(if.(fboundp.'file-att
8720 72 69 62 75 74 65 2d 73 74 61 74 75 73 2d 63 68 61 6e 67 65 2d 74 69 6d 65 29 0a 20 20 20 20 20 ribute-status-change-time)......
8740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 73 ..............#'file-attribute-s
8760 74 61 74 75 73 2d 63 68 61 6e 67 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tatus-change-time...............
8780 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 6e 74 68 20 36 20 66 29 29 29 29 29 0a 0a 28 64 ...(lambda.(f).(nth.6.f)))))..(d
87a0 65 66 75 6e 20 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 28 70 61 74 68 20 26 efun.f-modification-time.(path.&
87c0 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 optional.timestamp-p)..."Return.
87e0 74 68 65 20 6c 61 73 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 69 6d 65 20 6f 66 20 50 41 the.last.modification.time.of.PA
8800 54 48 2e 0a 54 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 69 6d 65 20 28 6d 74 69 6d 65 TH..The.modification.time.(mtime
8820 29 20 6f 66 20 50 41 54 48 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d 61 74 20 61 73 0a ).of.PATH.in.the.same.format.as.
8840 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 2e 20 20 46 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 `current-time'...For.details.on.
8860 54 49 4d 45 53 54 41 4d 50 2d 50 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 TIMESTAMP-P.and.the.format.of.th
8880 65 0a 72 65 74 75 72 6e 65 64 20 76 61 6c 75 65 2c 20 73 65 65 20 60 66 2d 2d 67 65 74 2d 74 69 e.returned.value,.see.`f--get-ti
88a0 6d 65 27 2e 22 0a 20 20 28 66 2d 2d 67 65 74 2d 74 69 6d 65 20 70 61 74 68 0a 20 20 20 20 20 20 me'."...(f--get-time.path.......
88c0 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 74 61 6d 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 .........timestamp-p............
88e0 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 ....(if.(fboundp.'file-attribute
8900 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -modification-time).............
8920 20 20 20 20 20 20 20 23 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 6d 6f 64 69 66 69 63 61 .......#'file-attribute-modifica
8940 74 69 6f 6e 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 tion-time..................(lamb
8960 64 61 20 28 66 29 20 28 6e 74 68 20 35 20 66 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 61 da.(f).(nth.5.f)))))..(defun.f-a
8980 63 63 65 73 73 2d 74 69 6d 65 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 73 ccess-time.(path.&optional.times
89a0 74 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 61 63 63 65 73 tamp-p)..."Return.the.last.acces
89c0 73 20 74 69 6d 65 20 6f 66 20 50 41 54 48 2e 0a 54 68 65 20 61 63 63 65 73 73 20 74 69 6d 65 20 s.time.of.PATH..The.access.time.
89e0 28 61 74 69 6d 65 29 20 6f 66 20 50 41 54 48 20 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 (atime).of.PATH.is.in.the.same.f
8a00 6f 72 6d 61 74 20 61 73 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 2e 20 20 46 6f 72 20 64 65 ormat.as.`current-time'...For.de
8a20 74 61 69 6c 73 20 6f 6e 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 61 6e 64 20 74 68 65 20 66 6f 72 tails.on.TIMESTAMP-P.and.the.for
8a40 6d 61 74 20 6f 66 20 74 68 65 0a 72 65 74 75 72 6e 65 64 20 76 61 6c 75 65 2c 20 73 65 65 20 60 mat.of.the.returned.value,.see.`
8a60 66 2d 2d 67 65 74 2d 74 69 6d 65 27 2e 22 0a 20 20 28 66 2d 2d 67 65 74 2d 74 69 6d 65 20 70 61 f--get-time'."...(f--get-time.pa
8a80 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 74 61 6d 70 2d 70 0a 20 20 th................timestamp-p...
8aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 69 6c 65 2d .............(if.(fboundp.'file-
8ac0 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 73 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 attribute-access-time)..........
8ae0 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 ..........#'file-attribute-acces
8b00 73 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 s-time..................(lambda.
8b20 28 66 29 20 28 6e 74 68 20 34 20 66 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 74 68 72 (f).(nth.4.f)))))..(defun.f--thr
8b40 65 65 2d 77 61 79 2d 63 6f 6d 70 61 72 65 20 28 61 20 62 29 0a 20 20 22 54 68 72 65 65 20 77 61 ee-way-compare.(a.b)..."Three.wa
8b60 79 20 63 6f 6d 70 61 72 69 73 6f 6e 2e 0a 0a 52 65 74 75 72 6e 20 2d 31 20 69 66 20 41 20 3c 20 y.comparison...Return.-1.if.A.<.
8b80 42 2e 0a 52 65 74 75 72 6e 20 30 20 69 66 20 41 20 3d 20 42 2e 0a 52 65 74 75 72 6e 20 31 20 69 B..Return.0.if.A.=.B..Return.1.i
8ba0 66 20 41 20 3e 20 42 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 3c 20 61 20 62 29 20 2d 31 29 0a 20 f.A.>.B."...(cond.((<.a.b).-1)..
8bc0 20 20 20 20 20 20 20 28 28 3d 20 61 20 62 29 20 30 29 0a 20 20 20 20 20 20 20 20 28 28 3e 20 61 .......((=.a.b).0).........((>.a
8be0 20 62 29 20 31 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 48 6f 77 20 74 6f 20 70 72 6f 70 65 72 .b).1)))..;;.TODO:.How.to.proper
8c00 6c 79 20 74 65 73 74 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 3f 0a 28 64 65 66 75 6e 20 66 2d ly.test.this.function?.(defun.f-
8c20 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 28 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 -date-compare.(file.other.method
8c40 29 0a 20 20 22 54 68 72 65 65 2d 77 61 79 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 66 20 74 68 65 )..."Three-way.comparison.of.the
8c60 20 64 61 74 65 20 6f 66 20 46 49 4c 45 20 61 6e 64 20 4f 54 48 45 52 2e 0a 0a 54 68 69 73 20 66 .date.of.FILE.and.OTHER...This.f
8c80 75 6e 63 74 69 6f 6e 20 63 61 6e 20 72 65 74 75 72 6e 20 74 68 72 65 65 20 76 61 6c 75 65 73 3a unction.can.return.three.values:
8ca0 0a 2a 20 31 20 6d 65 61 6e 73 20 46 49 4c 45 20 69 73 20 6e 65 77 65 72 20 74 68 61 6e 20 4f 54 .*.1.means.FILE.is.newer.than.OT
8cc0 48 45 52 0a 2a 20 30 20 6d 65 61 6e 73 20 46 49 4c 45 20 61 6e 64 20 4e 45 57 45 52 20 73 68 61 HER.*.0.means.FILE.and.NEWER.sha
8ce0 72 65 20 74 68 65 20 73 61 6d 65 20 64 61 74 65 0a 2a 20 2d 31 20 6d 65 61 6e 73 20 46 49 4c 45 re.the.same.date.*.-1.means.FILE
8d00 20 69 73 20 6f 6c 64 65 72 20 74 68 61 6e 20 4f 54 48 45 52 0a 0a 54 68 65 20 73 74 61 74 69 73 .is.older.than.OTHER..The.statis
8d20 74 69 63 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 64 61 74 65 20 63 6f 6d 70 61 72 69 73 6f tics.used.for.the.date.compariso
8d40 6e 20 64 65 70 65 6e 64 73 20 6f 6e 20 4d 45 54 48 4f 44 2e 0a 57 68 65 6e 20 4d 45 54 48 4f 44 n.depends.on.METHOD..When.METHOD
8d60 20 69 73 20 6e 75 6c 6c 2c 20 63 6f 6d 70 61 72 65 20 74 68 65 69 72 20 6d 6f 64 69 66 69 63 61 .is.null,.compare.their.modifica
8d80 74 69 6f 6e 20 74 69 6d 65 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 0a 63 6f 6d 70 61 72 65 20 74 tion.time...Otherwise,.compare.t
8da0 68 65 69 72 20 63 68 61 6e 67 65 20 74 69 6d 65 20 77 68 65 6e 20 4d 45 54 48 4f 44 20 69 73 20 heir.change.time.when.METHOD.is.
8dc0 5c 5c 3d 27 63 68 61 6e 67 65 2c 20 6f 72 20 63 6f 6d 70 61 72 65 0a 74 68 65 69 72 20 6c 61 73 \\='change,.or.compare.their.las
8de0 74 20 61 63 63 65 73 73 20 74 69 6d 65 20 77 68 65 6e 20 4d 45 54 48 4f 44 20 69 73 20 5c 5c 3d t.access.time.when.METHOD.is.\\=
8e00 27 61 63 63 65 73 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 6e 2d 6d 65 74 68 6f 64 20 28 63 'access."...(let*.((fn-method.(c
8e20 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 27 63 ond......................((eq.'c
8e40 68 61 6e 67 65 20 6d 65 74 68 6f 64 29 20 23 27 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 29 0a 20 hange.method).#'f-change-time)..
8e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 27 61 63 63 65 73 73 ....................((eq.'access
8e80 20 6d 65 74 68 6f 64 29 20 23 27 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 .method).#'f-access-time).......
8ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 6d 65 74 68 6f 64 29 20 20 20 ...............((null.method)...
8ec0 20 20 20 20 23 27 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 29 0a 20 20 20 20 20 ....#'f-modification-time)......
8ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f ................(t.(error."Unkno
8f00 77 6e 20 6d 65 74 68 6f 64 20 25 53 22 20 6d 65 74 68 6f 64 29 29 29 29 0a 20 20 20 20 20 20 20 wn.method.%S".method))))........
8f20 20 20 28 64 61 74 65 2d 66 69 6c 65 20 28 61 70 70 6c 79 20 66 6e 2d 6d 65 74 68 6f 64 20 28 6c ..(date-file.(apply.fn-method.(l
8f40 69 73 74 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 65 2d 6f 74 68 65 72 ist.file)))..........(date-other
8f60 20 28 61 70 70 6c 79 20 66 6e 2d 6d 65 74 68 6f 64 20 28 6c 69 73 74 20 6f 74 68 65 72 29 29 29 .(apply.fn-method.(list.other)))
8f80 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 65 73 20 20 20 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 ..........(dates......(-zip-pair
8fa0 20 64 61 74 65 2d 66 69 6c 65 20 64 61 74 65 2d 6f 74 68 65 72 29 29 29 0a 20 20 20 20 28 2d 72 .date-file.date-other))).....(-r
8fc0 65 64 75 63 65 2d 66 72 6f 6d 20 28 6c 61 6d 62 64 61 20 28 61 63 63 20 65 6c 74 29 0a 20 20 20 educe-from.(lambda.(acc.elt)....
8fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 61 63 63 20 30 29 0a 20 .................(if.(=.acc.0)..
9000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 2d 74 68 72 65 65 .......................(f--three
9020 2d 77 61 79 2d 63 6f 6d 70 61 72 65 20 28 63 61 72 20 65 6c 74 29 20 28 63 64 72 20 65 6c 74 29 -way-compare.(car.elt).(cdr.elt)
9040 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 63 63 29 29 0a 20 20 ).......................acc))...
9060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................0...............
9080 20 20 20 20 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6f 6c 64 65 72 2d 70 20 28 ....dates)))..(defun.f-older-p.(
90a0 66 69 6c 65 20 6f 74 68 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 29 0a 20 20 22 file.other.&optional.method)..."
90c0 43 6f 6d 70 61 72 65 20 69 66 20 46 49 4c 45 20 69 73 20 6f 6c 64 65 72 20 74 68 61 6e 20 4f 54 Compare.if.FILE.is.older.than.OT
90e0 48 45 52 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 4d 45 54 48 4f 44 2c 20 73 HER...For.more.info.on.METHOD,.s
9100 65 65 20 60 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 27 2e 22 0a 20 20 28 3c 20 28 66 2d 2d ee.`f--date-compare'."...(<.(f--
9120 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 29 20 date-compare.file.other.method).
9140 30 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 6f 6c 64 65 72 3f 20 23 27 66 2d 6f 6c 64 0))..(defalias.'f-older?.#'f-old
9160 65 72 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6e 65 77 65 72 2d 70 20 28 66 69 6c 65 20 6f 74 er-p)..(defun.f-newer-p.(file.ot
9180 68 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 29 0a 20 20 22 43 6f 6d 70 61 72 65 her.&optional.method)..."Compare
91a0 20 69 66 20 46 49 4c 45 20 69 73 20 6e 65 77 65 72 20 74 68 61 6e 20 4f 54 48 45 52 2e 0a 0a 46 .if.FILE.is.newer.than.OTHER...F
91c0 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 4d 45 54 48 4f 44 2c 20 73 65 65 20 60 66 2d 2d or.more.info.on.METHOD,.see.`f--
91e0 64 61 74 65 2d 63 6f 6d 70 61 72 65 27 2e 22 0a 20 20 28 3e 20 28 66 2d 2d 64 61 74 65 2d 63 6f date-compare'."...(>.(f--date-co
9200 6d 70 61 72 65 20 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 29 20 30 29 29 0a 0a 28 64 mpare.file.other.method).0))..(d
9220 65 66 61 6c 69 61 73 20 27 66 2d 6e 65 77 65 72 3f 20 23 27 66 2d 6e 65 77 65 72 2d 70 29 0a 0a efalias.'f-newer?.#'f-newer-p)..
9240 28 64 65 66 75 6e 20 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 28 66 69 6c 65 20 6f 74 68 65 72 (defun.f-same-time-p.(file.other
9260 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 .&optional.method)..."Check.if.F
9280 49 4c 45 20 61 6e 64 20 4f 54 48 45 52 20 73 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 61 63 63 ILE.and.OTHER.share.the.same.acc
92a0 65 73 73 20 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 69 6d 65 2e 0a 0a 46 6f 72 20 6d ess.or.modification.time...For.m
92c0 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 4d 45 54 48 4f 44 2c 20 73 65 65 20 60 66 2d 2d 64 61 74 65 ore.info.on.METHOD,.see.`f--date
92e0 2d 63 6f 6d 70 61 72 65 27 2e 22 0a 20 20 28 3d 20 28 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 -compare'."...(=.(f--date-compar
9300 65 20 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 29 20 30 29 29 0a 0a 28 64 65 66 61 6c e.file.other.method).0))..(defal
9320 69 61 73 20 27 66 2d 73 61 6d 65 2d 74 69 6d 65 3f 20 23 27 66 2d 73 61 6d 65 2d 74 69 6d 65 2d ias.'f-same-time?.#'f-same-time-
9340 70 29 0a 0a 0c 0a 3b 3b 3b 3b 20 4d 69 73 63 0a 0a 28 64 65 66 75 6e 20 66 2d 74 68 69 73 2d 66 p)....;;;;.Misc..(defun.f-this-f
9360 69 6c 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 74 68 20 74 6f 20 74 68 69 73 20 66 69 ile.()..."Return.path.to.this.fi
9380 6c 65 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 6c 6f 61 64 2d 69 6e 2d 70 72 6f 67 72 65 73 le."...(cond....(load-in-progres
93a0 73 20 6c 6f 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 28 28 61 6e 64 20 28 62 6f 75 6e s.load-file-name)....((and.(boun
93c0 64 70 20 27 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 20 62 dp.'byte-compile-current-file).b
93e0 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 62 79 yte-compile-current-file).....by
9400 74 65 2d 63 6f 6d 70 69 6c 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 28 3a 65 6c te-compile-current-file)....(:el
9420 73 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 76 61 se.(buffer-file-name))))..(defva
9440 72 20 66 2d 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 20 6e 69 6c 0a 20 20 22 41 20 76 61 72 r.f--path-separator.nil..."A.var
9460 69 61 62 6c 65 20 74 6f 20 63 61 63 68 65 20 72 65 73 75 6c 74 20 6f 66 20 60 66 2d 70 61 74 68 iable.to.cache.result.of.`f-path
9480 2d 73 65 70 61 72 61 74 6f 72 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 66 2d 70 61 74 68 2d 73 65 -separator'.")..(defun.f-path-se
94a0 70 61 72 61 74 6f 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 74 68 20 73 65 70 61 72 61 parator.()..."Return.path.separa
94c0 74 6f 72 2e 22 0a 20 20 28 6f 72 20 66 2d 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 tor."...(or.f--path-separator...
94e0 20 20 20 20 28 73 65 74 71 20 66 2d 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 20 28 73 75 62 ....(setq.f--path-separator.(sub
9500 73 74 72 69 6e 67 20 28 66 2d 6a 6f 69 6e 20 22 78 22 20 22 79 22 29 20 31 20 32 29 29 29 29 0a string.(f-join."x"."y").1.2)))).
9520 0a 28 64 65 66 75 6e 20 66 2d 67 6c 6f 62 20 28 70 61 74 74 65 72 6e 20 26 6f 70 74 69 6f 6e 61 .(defun.f-glob.(pattern.&optiona
9540 6c 20 70 61 74 68 29 0a 20 20 22 46 69 6e 64 20 50 41 54 54 45 52 4e 20 69 6e 20 50 41 54 48 2e l.path)..."Find.PATTERN.in.PATH.
9560 22 0a 20 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 0a 20 20 20 28 66 "...(file-expand-wildcards....(f
9580 2d 6a 6f 69 6e 20 28 6f 72 20 70 61 74 68 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 -join.(or.path.default-directory
95a0 29 20 70 61 74 74 65 72 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 63 6f 6c 6c 65 63 74 2d ).pattern)))..(defun.f--collect-
95c0 65 6e 74 72 69 65 73 20 28 70 61 74 68 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 28 6c 65 74 20 entries.(path.recursive)...(let.
95e0 28 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 (result.........(entries........
9600 20 20 28 2d 72 65 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 ..(-reject...........(lambda.(fi
9620 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 28 66 2d 66 69 6c 65 6e le).............(member.(f-filen
9640 61 6d 65 20 66 69 6c 65 29 20 27 28 22 2e 22 20 22 2e 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 ame.file).'(".".".."))).........
9660 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 70 61 74 68 20 74 29 29 29 29 0a 20 20 ..(directory-files.path.t))))...
9680 20 20 28 63 6f 6e 64 20 28 72 65 63 75 72 73 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d ..(cond.(recursive............(m
96a0 61 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 79 29 0a apc.............(lambda.(entry).
96c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 2d 66 69 6c 65 2d 70 20 65 6e 74 72 ..............(if.(f-file-p.entr
96e0 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c y)...................(setq.resul
9700 74 20 28 63 6f 6e 73 20 65 6e 74 72 79 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 t.(cons.entry.result))..........
9720 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 65 6e 74 72 .......(when.(f-directory-p.entr
9740 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c y)...................(setq.resul
9760 74 20 28 63 6f 6e 73 20 65 6e 74 72 79 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 t.(cons.entry.result))..........
9780 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 65 6e 74 72 79 .........(if.(f-readable-p.entry
97a0 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 73 65 74 71 20 72 65 ).......................(setq.re
97c0 73 75 6c 74 20 28 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 28 66 2d 2d 63 6f 6c 6c 65 63 74 2d sult.(append.result.(f--collect-
97e0 65 6e 74 72 69 65 73 20 65 6e 74 72 79 20 72 65 63 75 72 73 69 76 65 29 29 29 0a 20 20 20 20 20 entries.entry.recursive)))......
9800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20 20 20 20 ...............result)))).......
9820 20 20 20 20 20 20 65 6e 74 72 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 ......entries))...........(t.(se
9840 74 71 20 72 65 73 75 6c 74 20 65 6e 74 72 69 65 73 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 tq.result.entries))).....result)
9860 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 2d 65 6e 74 72 69 65 73 20 28 70 61 74 68 20 62 6f )..(defmacro.f--entries.(path.bo
9880 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 41 6e 61 70 68 dy.&optional.recursive)..."Anaph
98a0 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 66 2d 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 oric.version.of.`f-entries'."...
98c0 60 28 66 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 2c 70 61 74 68 0a 20 20 20 20 28 6c 61 6d 62 64 `(f-entries.....,path.....(lambd
98e0 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 70 61 74 68 29 29 0a a.(path).......(let.((it.path)).
9900 20 20 20 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 20 20 2c 72 65 63 75 72 73 69 76 65 29 29 ........,body)).....,recursive))
9920 0a 0a 28 64 65 66 75 6e 20 66 2d 65 6e 74 72 69 65 73 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e ..(defun.f-entries.(path.&option
9940 61 6c 20 66 6e 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 46 69 6e 64 20 61 6c 6c 20 66 69 6c al.fn.recursive)..."Find.all.fil
9960 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 69 6e 20 50 41 54 48 2e 0a 0a 46 4e 20 es.and.directories.in.PATH...FN.
9980 2d 20 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68 20 66 6f 75 6e 64 20 66 69 6c 65 20 61 6e 64 -.called.for.each.found.file.and
99a0 20 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 20 46 4e 20 72 65 74 75 72 6e 73 20 61 20 74 68 72 .directory...If.FN.returns.a.thr
99c0 75 74 68 79 0a 76 61 6c 75 65 2c 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 77 69 uthy.value,.file.or.directory.wi
99e0 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 2e 0a 52 45 43 55 52 53 49 56 45 20 2d 20 53 65 61 72 ll.be.included..RECURSIVE.-.Sear
9a00 63 68 20 66 6f 72 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 72 65 63 ch.for.files.and.directories.rec
9a20 75 72 73 69 76 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e 74 72 69 65 73 20 28 66 2d 2d 63 6f ursive."...(let.((entries.(f--co
9a40 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 70 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 29 0a llect-entries.path.recursive))).
9a60 20 20 20 20 28 69 66 20 66 6e 20 28 2d 73 65 6c 65 63 74 20 66 6e 20 65 6e 74 72 69 65 73 29 20 ....(if.fn.(-select.fn.entries).
9a80 65 6e 74 72 69 65 73 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 2d 64 69 72 65 63 74 6f entries)))..(defmacro.f--directo
9aa0 72 69 65 73 20 28 70 61 74 68 20 62 6f 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 63 75 72 73 ries.(path.body.&optional.recurs
9ac0 69 76 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 66 2d ive)..."Anaphoric.version.of.`f-
9ae0 64 69 72 65 63 74 6f 72 69 65 73 27 2e 22 0a 20 20 60 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 directories'."...`(f-directories
9b00 0a 20 20 20 20 2c 70 61 74 68 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 .....,path.....(lambda.(path)...
9b20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 2c 62 6f ....(let.((it.path)).........,bo
9b40 64 79 29 29 0a 20 20 20 20 2c 72 65 63 75 72 73 69 76 65 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d dy)).....,recursive))..(defun.f-
9b60 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6e 20 72 directories.(path.&optional.fn.r
9b80 65 63 75 72 73 69 76 65 29 0a 20 20 22 46 69 6e 64 20 61 6c 6c 20 64 69 72 65 63 74 6f 72 69 65 ecursive)..."Find.all.directorie
9ba0 73 20 69 6e 20 50 41 54 48 2e 20 20 53 65 65 20 60 66 2d 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 s.in.PATH...See.`f-entries'."...
9bc0 28 6c 65 74 20 28 28 64 69 72 65 63 74 6f 72 69 65 73 20 28 2d 73 65 6c 65 63 74 20 27 66 2d 64 (let.((directories.(-select.'f-d
9be0 69 72 65 63 74 6f 72 79 2d 70 20 28 66 2d 2d 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 70 irectory-p.(f--collect-entries.p
9c00 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 66 6e 20 28 2d 73 ath.recursive)))).....(if.fn.(-s
9c20 65 6c 65 63 74 20 66 6e 20 64 69 72 65 63 74 6f 72 69 65 73 29 20 64 69 72 65 63 74 6f 72 69 65 elect.fn.directories).directorie
9c40 73 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 2d 66 69 6c 65 73 20 28 70 61 74 68 20 62 s)))..(defmacro.f--files.(path.b
9c60 6f 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 41 6e 61 70 ody.&optional.recursive)..."Anap
9c80 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 66 2d 66 69 6c 65 73 27 2e 22 0a 20 20 60 horic.version.of.`f-files'."...`
9ca0 28 66 2d 66 69 6c 65 73 0a 20 20 20 20 2c 70 61 74 68 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 (f-files.....,path.....(lambda.(
9cc0 70 61 74 68 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 70 61 74 68 29 29 0a 20 20 20 path).......(let.((it.path))....
9ce0 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 20 20 2c 72 65 63 75 72 73 69 76 65 29 29 0a 0a 28 .....,body)).....,recursive))..(
9d00 64 65 66 75 6e 20 66 2d 66 69 6c 65 73 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6e defun.f-files.(path.&optional.fn
9d20 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 46 69 6e 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e .recursive)..."Find.all.files.in
9d40 20 50 41 54 48 2e 20 20 53 65 65 20 60 66 2d 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 28 6c 65 74 .PATH...See.`f-entries'."...(let
9d60 20 28 28 66 69 6c 65 73 20 28 2d 73 65 6c 65 63 74 20 27 66 2d 66 69 6c 65 2d 70 20 28 66 2d 2d .((files.(-select.'f-file-p.(f--
9d80 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 70 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 collect-entries.path.recursive))
9da0 29 29 0a 20 20 20 20 28 69 66 20 66 6e 20 28 2d 73 65 6c 65 63 74 20 66 6e 20 66 69 6c 65 73 29 )).....(if.fn.(-select.fn.files)
9dc0 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 2d 74 72 61 76 65 72 73 65 .files)))..(defmacro.f--traverse
9de0 2d 75 70 77 61 72 64 73 20 28 62 6f 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 70 61 74 68 29 0a 20 -upwards.(body.&optional.path)..
9e00 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 66 2d 74 72 61 76 65 72 ."Anaphoric.version.of.`f-traver
9e20 73 65 2d 75 70 77 61 72 64 73 27 2e 22 0a 20 20 60 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 se-upwards'."...`(f-traverse-upw
9e40 61 72 64 73 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 28 6c 65 ards.....(lambda.(dir).......(le
9e60 74 20 28 28 69 74 20 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 20 t.((it.dir)).........,body))....
9e80 20 2c 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 .,path))..(defun.f-traverse-upwa
9ea0 72 64 73 20 28 66 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 70 61 74 68 29 0a 20 20 22 54 72 61 76 65 rds.(fn.&optional.path)..."Trave
9ec0 72 73 65 20 75 70 20 61 73 20 6c 6f 6e 67 20 61 73 20 46 4e 20 72 65 74 75 72 6e 20 6e 69 6c 2c rse.up.as.long.as.FN.return.nil,
9ee0 20 73 74 61 72 74 69 6e 67 20 61 74 20 50 41 54 48 2e 0a 0a 49 66 20 46 4e 20 72 65 74 75 72 6e .starting.at.PATH...If.FN.return
9f00 73 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2c 20 74 68 65 20 70 61 74 68 20 73 65 6e 74 s.a.non-nil.value,.the.path.sent
9f20 20 61 73 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 46 4e 20 69 73 0a 72 65 74 75 72 6e 65 64 2e 20 .as.argument.to.FN.is.returned..
9f40 20 49 66 20 6e 6f 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 20 72 65 74 75 72 6e 20 .If.no.function.callback.return.
9f60 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2c 20 6e 69 6c 20 69 73 0a 72 65 74 75 72 6e 65 64 a.non-nil.value,.nil.is.returned
9f80 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 70 61 74 68 0a 20 20 20 20 28 73 65 74 71 20 70 61 74 68 ."...(unless.path.....(setq.path
9fa0 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 28 77 68 65 6e 20 28 66 2d .default-directory))...(when.(f-
9fc0 72 65 6c 61 74 69 76 65 2d 70 20 70 61 74 68 29 0a 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 relative-p.path).....(setq.path.
9fe0 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 29 29 29 0a 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c (f-expand.path)))...(if.(funcall
a000 20 66 6e 20 70 61 74 68 29 0a 20 20 20 20 20 20 70 61 74 68 0a 20 20 20 20 28 75 6e 6c 65 73 73 .fn.path).......path.....(unless
a020 20 28 66 2d 72 6f 6f 74 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 66 2d 74 72 61 76 65 72 .(f-root-p.path).......(f-traver
a040 73 65 2d 75 70 77 61 72 64 73 20 66 6e 20 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 29 29 29 29 se-upwards.fn.(f-parent.path))))
a060 29 0a 0a 28 64 65 66 75 6e 20 66 2d 72 6f 6f 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 62 )..(defun.f-root.()..."Return.ab
a080 73 6f 6c 75 74 65 20 72 6f 6f 74 2e 22 0a 20 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 solute.root."...(f-traverse-upwa
a0a0 72 64 73 20 27 66 2d 72 6f 6f 74 2d 70 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 77 69 74 rds.'f-root-p))..(defmacro.f-wit
a0c0 68 2d 73 61 6e 64 62 6f 78 20 28 70 61 74 68 2d 6f 72 2d 70 61 74 68 73 20 26 72 65 73 74 20 62 h-sandbox.(path-or-paths.&rest.b
a0e0 6f 64 79 29 0a 20 20 22 4f 6e 6c 79 20 61 6c 6c 6f 77 20 50 41 54 48 2d 4f 52 2d 50 41 54 48 53 ody)..."Only.allow.PATH-OR-PATHS
a100 20 61 6e 64 20 64 65 73 63 65 6e 64 61 6e 74 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 20 .and.descendants.to.be.modified.
a120 69 6e 20 42 4f 44 59 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 in.BODY."...(declare.(indent.1))
a140 0a 20 20 60 28 6c 65 74 20 28 28 70 61 74 68 73 20 28 69 66 20 28 6c 69 73 74 70 20 2c 70 61 74 ...`(let.((paths.(if.(listp.,pat
a160 68 2d 6f 72 2d 70 61 74 68 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-or-paths).....................
a180 2c 70 61 74 68 2d 6f 72 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,path-or-paths..................
a1a0 20 28 6c 69 73 74 20 2c 70 61 74 68 2d 6f 72 2d 70 61 74 68 73 29 29 29 29 0a 20 20 20 20 20 28 .(list.,path-or-paths))))......(
a1c0 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 unwind-protect..........(let.((f
a1e0 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 --guard-paths.paths))...........
a200 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 66 2d 2d 67 75 61 72 64 2d 70 .,@body)........(setq.f--guard-p
a220 61 74 68 73 20 6e 69 6c 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 66 29 0a 0a 3b 3b 3b 20 aths.nil))))..(provide.'f)..;;;.
a240 66 2e 65 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 f.el.ends.here..................
a260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a400 66 2d 32 30 32 34 30 33 30 38 2e 39 30 36 2f 66 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 f-20240308.906/f-pkg.el.........
a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a460 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
a480 30 30 30 31 30 31 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 34 37 35 00 20 30 00 00 00 0001010.00000000000.012475..0...
a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a500 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...................
a520 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...................
a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a600 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 66 22 20 22 32 30 32 34 30 33 30 38 2e 39 30 (define-package."f"."20240308.90
a620 36 22 20 22 4d 6f 64 65 72 6e 20 41 50 49 20 66 6f 72 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 6"."Modern.API.for.working.with.
a640 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 22 0a 20 20 27 28 28 65 6d 61 63 files.and.directories"...'((emac
a660 73 20 22 32 34 2e 31 22 29 0a 20 20 20 20 28 73 20 22 31 2e 37 2e 30 22 29 0a 20 20 20 20 28 64 s."24.1").....(s."1.7.0").....(d
a680 61 73 68 20 22 32 2e 32 2e 30 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 31 65 37 30 32 30 64 ash."2.2.0"))...:commit."1e7020d
a6a0 63 30 64 34 63 35 32 64 33 64 61 39 62 64 36 31 30 64 34 33 31 63 61 62 31 33 61 61 30 32 64 38 c0d4c52d3da9bd610d431cab13aa02d8
a6c0 63 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 4a 6f 68 61 6e 20 41 6e 64 65 72 73 73 6f c".:authors...'(("Johan.Andersso
a6e0 6e 22 20 2e 20 22 6a 6f 68 61 6e 2e 72 65 6a 65 65 70 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 0a n"..."johan.rejeep@gmail.com")).
a700 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22 4c 75 63 69 65 6e 20 43 61 72 74 ..:maintainers...'(("Lucien.Cart
a720 69 65 72 2d 54 69 6c 65 74 22 20 2e 20 22 6c 75 63 69 65 6e 40 70 68 75 6e 64 72 61 6b 2e 63 6f ier-Tilet"..."lucien@phundrak.co
a740 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 4c 75 63 69 65 6e 20 43 m"))...:maintainer...'("Lucien.C
a760 61 72 74 69 65 72 2d 54 69 6c 65 74 22 20 2e 20 22 6c 75 63 69 65 6e 40 70 68 75 6e 64 72 61 6b artier-Tilet"..."lucien@phundrak
a780 2e 63 6f 6d 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 66 69 6c 65 73 22 20 22 .com")...:keywords...'("files"."
a7a0 64 69 72 65 63 74 6f 72 69 65 73 22 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 3a 2f 2f 67 69 74 directories")...:url."http://git
a7c0 68 75 62 2e 63 6f 6d 2f 72 65 6a 65 65 70 2f 66 2e 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 hub.com/rejeep/f.el").;;.Local.V
a7e0 61 72 69 61 62 6c 65 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 ariables:.;;.no-byte-compile:.t.
a800 3b 3b 20 45 6e 64 3a 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 ;;.End:.........................
a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................