summaryrefslogtreecommitdiff
path: root/localrepo/ztree-1.0.6.tar
blob: b6e5b0d72f9ccd430a1e24e3bf7c8f0b3cbff336 (plain)
ofshex dumpascii
0000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/....................
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 33 30 36 00 20 35 00 00 00 0000000.00000000000.011306..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 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/LICENSE.............
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 31 30 34 35 31 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 32 31 00 20 30 00 00 00 0104515.00000000000.012321..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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20 ....................GNU.GENERAL.
0420 50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PUBLIC.LICENSE..................
0440 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20 ......Version.3,.29.June.2007...
0460 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 Copyright.(C).2007.Free.Software
0480 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 73 3a 2f 2f 66 73 66 2e 6f .Foundation,.Inc..<https://fsf.o
04a0 72 67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 rg/>..Everyone.is.permitted.to.c
04c0 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 opy.and.distribute.verbatim.copi
04e0 65 73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 es..of.this.license.document,.bu
0500 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 t.changing.it.is.not.allowed....
0520 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 50 72 65 61 6d ...........................Pream
0540 62 6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 ble....The.GNU.General.Public.Li
0560 63 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 cense.is.a.free,.copyleft.licens
0580 65 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f e.for.software.and.other.kinds.o
05a0 66 20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 f.works.....The.licenses.for.mos
05c0 74 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 t.software.and.other.practical.w
05e0 6f 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 orks.are.designed.to.take.away.y
0600 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 our.freedom.to.share.and.change.
0620 74 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 the.works...By.contrast,.the.GNU
0640 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e .General.Public.License.is.inten
0660 64 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f ded.to.guarantee.your.freedom.to
0680 0a 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f .share.and.change.all.versions.o
06a0 66 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d f.a.program--to.make.sure.it.rem
06c0 61 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 ains.free.software.for.all.its.u
06e0 73 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 sers...We,.the.Free.Software.Fou
0700 6e 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ndation,.use.the.GNU.General.Pub
0720 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 lic.License.for.most.of.our.soft
0740 77 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 ware;.it.applies.also.to.any.oth
0760 65 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 er.work.released.this.way.by.its
0780 20 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 .authors...You.can.apply.it.to.y
07a0 6f 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 our.programs,.too.....When.we.sp
07c0 65 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 eak.of.free.software,.we.are.ref
07e0 65 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f erring.to.freedom,.not.price...O
0800 75 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 ur.General.Public.Licenses.are.d
0820 65 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 esigned.to.make.sure.that.you.ha
0840 76 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 ve.the.freedom.to.distribute.cop
0860 69 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 ies.of.free.software.(and.charge
0880 20 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 .for.them.if.you.wish),.that.you
08a0 20 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 .receive.source.code.or.can.get.
08c0 69 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 it.if.you.want.it,.that.you.can.
08e0 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 change.the.software.or.use.piece
0900 73 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e s.of.it.in.new.free.programs,.an
0920 64 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 d.that.you.know.you.can.do.these
0940 20 74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 .things.....To.protect.your.righ
0960 74 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 ts,.we.need.to.prevent.others.fr
0980 6f 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 om.denying.you.these.rights.or.a
09a0 73 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 sking.you.to.surrender.the.right
09c0 73 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 s...Therefore,.you.have.certain.
09e0 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 responsibilities.if.you.distribu
0a00 74 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 te.copies.of.the.software,.or.if
0a20 0a 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 .you.modify.it:.responsibilities
0a40 20 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 .to.respect.the.freedom.of.other
0a60 73 2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 s.....For.example,.if.you.distri
0a80 62 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 bute.copies.of.such.a.program,.w
0aa0 68 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 hether.gratis.or.for.a.fee,.you.
0ac0 6d 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 must.pass.on.to.the.recipients.t
0ae0 68 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 he.same.freedoms.that.you.receiv
0b00 65 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 ed...You.must.make.sure.that.the
0b20 79 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 y,.too,.receive.or.can.get.the.s
0b40 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 ource.code...And.you.must.show.t
0b60 68 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 hem.these.terms.so.they.know.the
0b80 69 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 ir.rights.....Developers.that.us
0ba0 65 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 e.the.GNU.GPL.protect.your.right
0bc0 73 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 s.with.two.steps:.(1).assert.cop
0be0 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 yright.on.the.software,.and.(2).
0c00 6f 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f offer.you.this.License.giving.yo
0c20 75 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 u.legal.permission.to.copy,.dist
0c40 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 ribute.and/or.modify.it.....For.
0c60 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f the.developers'.and.authors'.pro
0c80 74 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e tection,.the.GPL.clearly.explain
0ca0 73 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 s.that.there.is.no.warranty.for.
0cc0 74 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 this.free.software...For.both.us
0ce0 65 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 ers'.and.authors'.sake,.the.GPL.
0d00 72 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 requires.that.modified.versions.
0d20 62 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 be.marked.as.changed,.so.that.th
0d40 65 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 eir.problems.will.not.be.attribu
0d60 74 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 ted.erroneously.to.authors.of.pr
0d80 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 evious.versions.....Some.devices
0da0 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 .are.designed.to.deny.users.acce
0dc0 73 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 ss.to.install.or.run.modified.ve
0de0 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 rsions.of.the.software.inside.th
0e00 65 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 em,.although.the.manufacturer.ca
0e20 6e 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 n.do.so...This.is.fundamentally.
0e40 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f incompatible.with.the.aim.of.pro
0e60 74 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 tecting.users'.freedom.to.change
0e80 20 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 .the.software...The.systematic.p
0ea0 61 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 attern.of.such.abuse.occurs.in.t
0ec0 68 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 he.area.of.products.for.individu
0ee0 61 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 als.to.use,.which.is.precisely.w
0f00 68 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 here.it.is.most.unacceptable...T
0f20 68 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 herefore,.we.have.designed.this.
0f40 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 version.of.the.GPL.to.prohibit.t
0f60 68 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 he.practice.for.those.products..
0f80 20 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 .If.such.problems.arise.substant
0fa0 69 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 ially.in.other.domains,.we.stand
0fc0 20 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 .ready.to.extend.this.provision.
0fe0 74 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 to.those.domains.in.future.versi
1000 6f 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f ons.of.the.GPL,.as.needed.to.pro
1020 74 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 tect.the.freedom.of.users.....Fi
1040 6e 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e nally,.every.program.is.threaten
1060 65 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 ed.constantly.by.software.patent
1080 73 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e s..States.should.not.allow.paten
10a0 74 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 ts.to.restrict.development.and.u
10c0 73 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 se.of.software.on.general-purpos
10e0 65 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 e.computers,.but.in.those.that.d
1100 6f 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 o,.we.wish.to.avoid.the.special.
1120 64 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 danger.that.patents.applied.to.a
1140 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 .free.program.could.make.it.effe
1160 63 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 ctively.proprietary...To.prevent
1180 20 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 .this,.the.GPL.assures.that.pate
11a0 6e 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 nts.cannot.be.used.to.render.the
11c0 20 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 .program.non-free.....The.precis
11e0 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 e.terms.and.conditions.for.copyi
1200 6e 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f ng,.distribution.and.modificatio
1220 6e 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.follow........................
1240 20 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 ..TERMS.AND.CONDITIONS....0..Def
1260 69 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69 73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 initions....."This.License".refe
1280 72 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 rs.to.version.3.of.the.GNU.Gener
12a0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 al.Public.License....."Copyright
12c0 22 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 ".also.means.copyright-like.laws
12e0 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f .that.apply.to.other.kinds.of.wo
1300 72 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 rks,.such.as.semiconductor.masks
1320 2e 0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 ....."The.Program".refers.to.any
1340 20 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 .copyrightable.work.licensed.und
1360 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 er.this.License...Each.licensee.
1380 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 is.addressed.as."you"..."License
13a0 65 73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 es".and."recipients".may.be.indi
13c0 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 viduals.or.organizations.....To.
13e0 22 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 "modify".a.work.means.to.copy.fr
1400 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 om.or.adapt.all.or.part.of.the.w
1420 6f 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 ork.in.a.fashion.requiring.copyr
1440 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 ight.permission,.other.than.the.
1460 6d 61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 making.of.an.exact.copy...The.re
1480 73 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 sulting.work.is.called.a."modifi
14a0 65 64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 ed.version".of.the.earlier.work.
14c0 6f 72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 or.a.work."based.on".the.earlier
14e0 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 .work.....A."covered.work".means
1500 20 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f .either.the.unmodified.Program.o
1520 72 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a r.a.work.based.on.the.Program...
1540 20 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f ..To."propagate".a.work.means.to
1560 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f .do.anything.with.it.that,.witho
1580 75 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 ut.permission,.would.make.you.di
15a0 72 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 rectly.or.secondarily.liable.for
15c0 0a 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 .infringement.under.applicable.c
15e0 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 opyright.law,.except.executing.i
1600 74 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 t.on.a.computer.or.modifying.a.p
1620 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 rivate.copy...Propagation.includ
1640 65 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f es.copying,.distribution.(with.o
1660 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 r.without.modification),.making.
1680 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 available.to.the.public,.and.in.
16a0 73 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 some.countries.other.activities.
16c0 61 73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d as.well.....To."convey".a.work.m
16e0 65 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 eans.any.kind.of.propagation.tha
1700 74 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 t.enables.other.parties.to.make.
1720 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 or.receive.copies...Mere.interac
1740 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20 74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 tion.with.a.user.through.a.compu
1760 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 ter.network,.with.no.transfer.of
1780 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e .a.copy,.is.not.conveying.....An
17a0 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 .interactive.user.interface.disp
17c0 6c 61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 lays."Appropriate.Legal.Notices"
17e0 0a 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 .to.the.extent.that.it.includes.
1800 61 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 a.convenient.and.prominently.vis
1820 69 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 ible.feature.that.(1).displays.a
1840 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 n.appropriate.copyright.notice,.
1860 61 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 and.(2).tells.the.user.that.ther
1880 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 e.is.no.warranty.for.the.work.(e
18a0 78 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 xcept.to.the.extent.that.warrant
18c0 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 ies.are.provided),.that.licensee
18e0 73 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 s.may.convey.the.work.under.this
1900 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 .License,.and.how.to.view.a.copy
1920 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 .of.this.License...If.the.interf
1940 61 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d ace.presents.a.list.of.user.comm
1960 61 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c ands.or.options,.such.as.a.menu,
1980 20 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 .a.prominent.item.in.the.list.me
19a0 65 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 ets.this.criterion.....1..Source
19c0 20 43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 .Code.....The."source.code".for.
19e0 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 a.work.means.the.preferred.form.
1a00 6f 66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 of.the.work.for.making.modificat
1a20 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 ions.to.it..."Object.code".means
1a40 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a .any.non-source.form.of.a.work..
1a60 0a 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 ...A."Standard.Interface".means.
1a80 61 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f an.interface.that.either.is.an.o
1aa0 66 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 fficial.standard.defined.by.a.re
1ac0 63 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 cognized.standards.body,.or,.in.
1ae0 74 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 the.case.of.interfaces.specified
1b00 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 .for.a.particular.programming.la
1b20 6e 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 nguage,.one.that.is.widely.used.
1b40 61 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 among.developers.working.in.that
1b60 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 .language.....The."System.Librar
1b80 69 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 ies".of.an.executable.work.inclu
1ba0 64 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b de.anything,.other.than.the.work
1bc0 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 .as.a.whole,.that.(a).is.include
1be0 64 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e d.in.the.normal.form.of.packagin
1c00 67 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 g.a.Major.Component,.but.which.i
1c20 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 s.not.part.of.that.Major.Compone
1c40 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c nt,.and.(b).serves.only.to.enabl
1c60 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f e.use.of.the.work.with.that.Majo
1c80 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 r.Component,.or.to.implement.a.S
1ca0 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 tandard.Interface.for.which.an.i
1cc0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 mplementation.is.available.to.th
1ce0 65 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 e.public.in.source.code.form...A
1d00 0a 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 ."Major.Component",.in.this.cont
1d20 65 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d ext,.means.a.major.essential.com
1d40 70 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 ponent.(kernel,.window.system,.a
1d60 6e 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 nd.so.on).of.the.specific.operat
1d80 69 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 ing.system.(if.any).on.which.the
1da0 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 .executable.work.runs,.or.a.comp
1dc0 69 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f iler.used.to.produce.the.work,.o
1de0 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 r.an.object.code.interpreter.use
1e00 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 d.to.run.it.....The."Correspondi
1e20 6e 67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 ng.Source".for.a.work.in.object.
1e40 63 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 code.form.means.all.the.source.c
1e60 6f 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c ode.needed.to.generate,.install,
1e80 20 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 .and.(for.an.executable.work).ru
1ea0 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 n.the.object.code.and.to.modify.
1ec0 74 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 the.work,.including.scripts.to.c
1ee0 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 ontrol.those.activities...Howeve
1f00 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 r,.it.does.not.include.the.work'
1f20 73 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 s.System.Libraries,.or.general-p
1f40 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 urpose.tools.or.generally.availa
1f60 62 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 ble.free.programs.which.are.used
1f80 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 .unmodified.in.performing.those.
1fa0 61 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 activities.but.which.are.not.par
1fc0 74 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 t.of.the.work...For.example,.Cor
1fe0 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 responding.Source.includes.inter
2000 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 face.definition.files.associated
2020 20 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c .with.source.files.for.the.work,
2040 20 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 .and.the.source.code.for.shared.
2060 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 libraries.and.dynamically.linked
2080 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 .subprograms.that.the.work.is.sp
20a0 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a ecifically.designed.to.require,.
20c0 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 such.as.by.intimate.data.communi
20e0 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 cation.or.control.flow.between.t
2100 68 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 hose.subprograms.and.other.parts
2120 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 .of.the.work.....The.Correspondi
2140 6e 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 ng.Source.need.not.include.anyth
2160 69 6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61 6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 ing.that.users.can.regenerate.au
2180 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 tomatically.from.other.parts.of.
21a0 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 the.Corresponding.Source.....The
21c0 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b .Corresponding.Source.for.a.work
21e0 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d .in.source.code.form.is.that.sam
2200 65 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e e.work.....2..Basic.Permissions.
2220 0a 0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 ....All.rights.granted.under.thi
2240 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 s.License.are.granted.for.the.te
2260 72 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 rm.of.copyright.on.the.Program,.
2280 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 and.are.irrevocable.provided.the
22a0 20 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 .stated.conditions.are.met...Thi
22c0 73 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 s.License.explicitly.affirms.you
22e0 72 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 r.unlimited.permission.to.run.th
2300 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 e.unmodified.Program...The.outpu
2320 74 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 t.from.running.a.covered.work.is
2340 20 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 .covered.by.this.License.only.if
2360 20 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 .the.output,.given.its.content,.
2380 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 constitutes.a.covered.work...Thi
23a0 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 s.License.acknowledges.your.righ
23c0 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 ts.of.fair.use.or.other.equivale
23e0 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 nt,.as.provided.by.copyright.law
2400 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 .....You.may.make,.run.and.propa
2420 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e gate.covered.works.that.you.do.n
2440 6f 74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f ot.convey,.without.conditions.so
2460 20 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 .long.as.your.license.otherwise.
2480 72 65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 remains.in.force...You.may.conve
24a0 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 y.covered.works.to.others.for.th
24c0 65 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 e.sole.purpose.of.having.them.ma
24e0 6b 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 ke.modifications.exclusively.for
2500 20 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 .you,.or.provide.you.with.facili
2520 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 ties.for.running.those.works,.pr
2540 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 ovided.that.you.comply.with.the.
2560 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 terms.of.this.License.in.conveyi
2580 6e 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f ng.all.material.for.which.you.do
25a0 0a 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 .not.control.copyright...Those.t
25c0 68 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 hus.making.or.running.the.covere
25e0 64 20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 d.works.for.you.must.do.so.exclu
2600 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 sively.on.your.behalf,.under.you
2620 72 20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d r.direction.and.control,.on.term
2640 73 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 s.that.prohibit.them.from.making
2660 20 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 .any.copies.of.your.copyrighted.
2680 6d 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 material.outside.their.relations
26a0 68 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 hip.with.you.....Conveying.under
26c0 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d .any.other.circumstances.is.perm
26e0 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e itted.solely.under.the.condition
2700 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 s.stated.below...Sublicensing.is
2720 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 .not.allowed;.section.10.makes.i
2740 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 t.unnecessary.....3..Protecting.
2760 55 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 Users'.Legal.Rights.From.Anti-Ci
2780 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 rcumvention.Law.....No.covered.w
27a0 6f 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 ork.shall.be.deemed.part.of.an.e
27c0 66 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 ffective.technological.measure.u
27e0 6e 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 nder.any.applicable.law.fulfilli
2800 6e 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 ng.obligations.under.article.11.
2820 6f 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f of.the.WIPO.copyright.treaty.ado
2840 70 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d pted.on.20.December.1996,.or.sim
2860 69 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 ilar.laws.prohibiting.or.restric
2880 74 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 ting.circumvention.of.such.measu
28a0 72 65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 res.....When.you.convey.a.covere
28c0 64 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 d.work,.you.waive.any.legal.powe
28e0 72 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 r.to.forbid.circumvention.of.tec
2900 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e hnological.measures.to.the.exten
2920 74 20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 t.such.circumvention.is.effected
2940 20 62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 .by.exercising.rights.under.this
2960 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 .License.with.respect.to.the.cov
2980 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 ered.work,.and.you.disclaim.any.
29a0 69 6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a intention.to.limit.operation.or.
29c0 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 modification.of.the.work.as.a.me
29e0 61 6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f ans.of.enforcing,.against.the.wo
2a00 72 6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 rk's.users,.your.or.third.partie
2a20 73 27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d s'.legal.rights.to.forbid.circum
2a40 76 65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 vention.of.technological.measure
2a60 73 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 s.....4..Conveying.Verbatim.Copi
2a80 65 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 es.....You.may.convey.verbatim.c
2aa0 6f 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f opies.of.the.Program's.source.co
2ac0 64 65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 de.as.you.receive.it,.in.any.med
2ae0 69 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f ium,.provided.that.you.conspicuo
2b00 75 73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f usly.and.appropriately.publish.o
2b20 6e 20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 n.each.copy.an.appropriate.copyr
2b40 69 67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 ight.notice;.keep.intact.all.not
2b60 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 ices.stating.that.this.License.a
2b80 6e 64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 nd.any.non-permissive.terms.adde
2ba0 64 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 d.in.accord.with.section.7.apply
2bc0 20 74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f .to.the.code;.keep.intact.all.no
2be0 74 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 tices.of.the.absence.of.any.warr
2c00 61 6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 anty;.and.give.all.recipients.a.
2c20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 copy.of.this.License.along.with.
2c40 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 the.Program.....You.may.charge.a
2c60 6e 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f ny.price.or.no.price.for.each.co
2c80 70 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 py.that.you.convey,.and.you.may.
2ca0 6f 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 offer.support.or.warranty.protec
2cc0 74 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 tion.for.a.fee.....5..Conveying.
2ce0 4d 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 Modified.Source.Versions.....You
2d00 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 .may.convey.a.work.based.on.the.
2d20 50 72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f Program,.or.the.modifications.to
2d40 0a 70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e .produce.it.from.the.Program,.in
2d60 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 .the.form.of.source.code.under.t
2d80 68 65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 he.terms.of.section.4,.provided.
2da0 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 that.you.also.meet.all.of.these.
2dc0 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 conditions:......a).The.work.mus
2de0 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e t.carry.prominent.notices.statin
2e00 67 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 g.that.you.modified.....it,.and.
2e20 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 giving.a.relevant.date.......b).
2e40 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f The.work.must.carry.prominent.no
2e60 74 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c tices.stating.that.it.is.....rel
2e80 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 eased.under.this.License.and.any
2ea0 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a .conditions.added.under.section.
2ec0 20 20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 ....7...This.requirement.modifie
2ee0 73 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 s.the.requirement.in.section.4.t
2f00 6f 0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e o....."keep.intact.all.notices".
2f20 0a 0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e ......c).You.must.license.the.en
2f40 74 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 tire.work,.as.a.whole,.under.thi
2f60 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 s.....License.to.anyone.who.come
2f80 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 s.into.possession.of.a.copy...Th
2fa0 69 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 is.....License.will.therefore.ap
2fc0 70 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 ply,.along.with.any.applicable.s
2fe0 65 63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 ection.7.....additional.terms,.t
3000 6f 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c o.the.whole.of.the.work,.and.all
3020 20 69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f .its.parts,.....regardless.of.ho
3040 77 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e w.they.are.packaged...This.Licen
3060 73 65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 se.gives.no.....permission.to.li
3080 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c cense.the.work.in.any.other.way,
30a0 20 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 .but.it.does.not.....invalidate.
30c0 73 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 such.permission.if.you.have.sepa
30e0 72 61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 rately.received.it.......d).If.t
3100 68 65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 he.work.has.interactive.user.int
3120 65 72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 erfaces,.each.must.display.....A
3140 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 ppropriate.Legal.Notices;.howeve
3160 72 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 r,.if.the.Program.has.interactiv
3180 65 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 e.....interfaces.that.do.not.dis
31a0 70 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 play.Appropriate.Legal.Notices,.
31c0 79 6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d your.....work.need.not.make.them
31e0 20 64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f .do.so.....A.compilation.of.a.co
3200 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 vered.work.with.other.separate.a
3220 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 nd.independent.works,.which.are.
3240 6e 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f not.by.their.nature.extensions.o
3260 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 f.the.covered.work,.and.which.ar
3280 65 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 e.not.combined.with.it.such.as.t
32a0 6f 20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f o.form.a.larger.program,.in.or.o
32c0 6e 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 n.a.volume.of.a.storage.or.distr
32e0 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 ibution.medium,.is.called.an."ag
3300 67 72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 gregate".if.the.compilation.and.
3320 69 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a its.resulting.copyright.are.not.
3340 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 used.to.limit.the.access.or.lega
3360 6c 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 l.rights.of.the.compilation's.us
3380 65 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 ers.beyond.what.the.individual.w
33a0 6f 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 orks.permit...Inclusion.of.a.cov
33c0 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e ered.work.in.an.aggregate.does.n
33e0 6f 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 ot.cause.this.License.to.apply.t
3400 6f 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 o.the.other.parts.of.the.aggrega
3420 74 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 te.....6..Conveying.Non-Source.F
3440 6f 72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 orms.....You.may.convey.a.covere
3460 64 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 d.work.in.object.code.form.under
3480 20 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 .the.terms.of.sections.4.and.5,.
34a0 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 provided.that.you.also.convey.th
34c0 65 0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 e.machine-readable.Corresponding
34e0 20 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 .Source.under.the.terms.of.this.
3500 4c 69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a License,.in.one.of.these.ways:..
3520 20 20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e ....a).Convey.the.object.code.in
3540 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f ,.or.embodied.in,.a.physical.pro
3560 64 75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 duct.....(including.a.physical.d
3580 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 istribution.medium),.accompanied
35a0 20 62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 .by.the.....Corresponding.Source
35c0 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 .fixed.on.a.durable.physical.med
35e0 69 75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 ium.....customarily.used.for.sof
3600 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 tware.interchange.......b).Conve
3620 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 y.the.object.code.in,.or.embodie
3640 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e d.in,.a.physical.product.....(in
3660 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 cluding.a.physical.distribution.
3680 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 medium),.accompanied.by.a.....wr
36a0 69 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 itten.offer,.valid.for.at.least.
36c0 74 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 three.years.and.valid.for.as....
36e0 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f .long.as.you.offer.spare.parts.o
3700 72 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 r.customer.support.for.that.prod
3720 75 63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 uct.....model,.to.give.anyone.wh
3740 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 o.possesses.the.object.code.eith
3760 65 72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 er.(1).a.....copy.of.the.Corresp
3780 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 onding.Source.for.all.the.softwa
37a0 72 65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f re.in.the.....product.that.is.co
37c0 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 vered.by.this.License,.on.a.dura
37e0 62 6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 ble.physical.....medium.customar
3800 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 ily.used.for.software.interchang
3820 65 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 e,.for.a.price.no.....more.than.
3840 79 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c your.reasonable.cost.of.physical
3860 6c 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 ly.performing.this.....conveying
3880 20 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 .of.source,.or.(2).access.to.cop
38a0 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 y.the.....Corresponding.Source.f
38c0 72 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 rom.a.network.server.at.no.charg
38e0 65 2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 e.......c).Convey.individual.cop
3900 69 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f ies.of.the.object.code.with.a.co
3920 70 79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 py.of.the.....written.offer.to.p
3940 72 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e rovide.the.Corresponding.Source.
3960 20 20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 ..This.....alternative.is.allowe
3980 64 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 d.only.occasionally.and.noncomme
39a0 72 63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 rcially,.and.....only.if.you.rec
39c0 65 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 eived.the.object.code.with.such.
39e0 61 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 an.offer,.in.accord.....with.sub
3a00 73 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f section.6b.......d).Convey.the.o
3a20 62 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 bject.code.by.offering.access.fr
3a40 6f 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 om.a.designated.....place.(grati
3a60 73 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 s.or.for.a.charge),.and.offer.eq
3a80 75 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 uivalent.access.to.the.....Corre
3aa0 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 sponding.Source.in.the.same.way.
3ac0 74 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 through.the.same.place.at.no....
3ae0 20 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 .further.charge...You.need.not.r
3b00 65 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 equire.recipients.to.copy.the...
3b20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 ..Corresponding.Source.along.wit
3b40 68 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 h.the.object.code...If.the.place
3b60 20 74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 .to.....copy.the.object.code.is.
3b80 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 a.network.server,.the.Correspond
3ba0 69 6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 ing.Source.....may.be.on.a.diffe
3bc0 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 rent.server.(operated.by.you.or.
3be0 61 20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20 20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 a.third.party).....that.supports
3c00 20 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 .equivalent.copying.facilities,.
3c20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 provided.you.maintain.....clear.
3c40 64 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f directions.next.to.the.object.co
3c60 64 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 de.saying.where.to.find.the.....
3c80 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 Corresponding.Source...Regardles
3ca0 73 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 s.of.what.server.hosts.the.....C
3cc0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 orresponding.Source,.you.remain.
3ce0 6f 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 obligated.to.ensure.that.it.is..
3d00 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 ...available.for.as.long.as.need
3d20 65 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 ed.to.satisfy.these.requirements
3d40 2e 0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 .......e).Convey.the.object.code
3d60 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e .using.peer-to-peer.transmission
3d80 2c 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 ,.provided.....you.inform.other.
3da0 70 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 peers.where.the.object.code.and.
3dc0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 Corresponding.....Source.of.the.
3de0 77 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 work.are.being.offered.to.the.ge
3e00 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e neral.public.at.no.....charge.un
3e20 64 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c der.subsection.6d.....A.separabl
3e40 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 e.portion.of.the.object.code,.wh
3e60 6f 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d ose.source.code.is.excluded.from
3e80 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 .the.Corresponding.Source.as.a.S
3ea0 79 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 ystem.Library,.need.not.be.inclu
3ec0 64 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 ded.in.conveying.the.object.code
3ee0 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72 20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 .work.....A."User.Product".is.ei
3f00 74 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 ther.(1).a."consumer.product",.w
3f20 68 69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c hich.means.any.tangible.personal
3f40 20 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 .property.which.is.normally.used
3f60 20 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61 6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 .for.personal,.family,.or.househ
3f80 6f 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 old.purposes,.or.(2).anything.de
3fa0 73 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e signed.or.sold.for.incorporation
3fc0 0a 69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e .into.a.dwelling...In.determinin
3fe0 67 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 g.whether.a.product.is.a.consume
4000 72 20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 r.product,.doubtful.cases.shall.
4020 62 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 be.resolved.in.favor.of.coverage
4040 2e 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 ...For.a.particular.product.rece
4060 69 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d ived.by.a.particular.user,."norm
4080 61 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f ally.used".refers.to.a.typical.o
40a0 72 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 r.common.use.of.that.class.of.pr
40c0 6f 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a oduct,.regardless.of.the.status.
40e0 6f 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 of.the.particular.user.or.of.the
4100 20 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 .way.in.which.the.particular.use
4120 72 0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 r.actually.uses,.or.expects.or.i
4140 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 s.expected.to.use,.the.product..
4160 20 41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 .A.product.is.a.consumer.product
4180 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 .regardless.of.whether.the.produ
41a0 63 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 ct.has.substantial.commercial,.i
41c0 6e 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 ndustrial.or.non-consumer.uses,.
41e0 75 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f unless.such.uses.represent.the.o
4200 6e 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 nly.significant.mode.of.use.of.t
4220 68 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 he.product....."Installation.Inf
4240 6f 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 ormation".for.a.User.Product.mea
4260 6e 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 ns.any.methods,.procedures,.auth
4280 6f 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 orization.keys,.or.other.informa
42a0 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 tion.required.to.install.and.exe
42c0 63 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 cute.modified.versions.of.a.cove
42e0 72 65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 red.work.in.that.User.Product.fr
4300 6f 6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 om.a.modified.version.of.its.Cor
4320 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 responding.Source...The.informat
4340 69 6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 ion.must.suffice.to.ensure.that.
4360 74 68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 the.continued.functioning.of.the
4380 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 .modified.object.code.is.in.no.c
43a0 61 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 ase.prevented.or.interfered.with
43c0 20 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 .solely.because.modification.has
43e0 20 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 .been.made.....If.you.convey.an.
4400 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 object.code.work.under.this.sect
4420 69 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 ion.in,.or.with,.or.specifically
4440 20 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 .for.use.in,.a.User.Product,.and
4460 20 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 .the.conveying.occurs.as.part.of
4480 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 .a.transaction.in.which.the.righ
44a0 74 20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 t.of.possession.and.use.of.the.U
44c0 73 65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 ser.Product.is.transferred.to.th
44e0 65 20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 e.recipient.in.perpetuity.or.for
4500 20 61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 .a.fixed.term.(regardless.of.how
4520 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 .the.transaction.is.characterize
4540 64 29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e d),.the.Corresponding.Source.con
4560 76 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 veyed.under.this.section.must.be
4580 20 61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e .accompanied.by.the.Installation
45a0 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d .Information...But.this.requirem
45c0 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f ent.does.not.apply.if.neither.yo
45e0 75 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 u.nor.any.third.party.retains.th
4600 65 20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 e.ability.to.install.modified.ob
4620 6a 65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 ject.code.on.the.User.Product.(f
4640 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e or.example,.the.work.has.been.in
4660 73 74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d stalled.in.ROM).....The.requirem
4680 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f ent.to.provide.Installation.Info
46a0 72 6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 rmation.does.not.include.a.requi
46c0 72 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 rement.to.continue.to.provide.su
46e0 70 70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 pport.service,.warranty,.or.upda
4700 74 65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 tes.for.a.work.that.has.been.mod
4720 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 ified.or.installed.by.the.recipi
4740 65 6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 ent,.or.for.the.User.Product.in.
4760 77 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e which.it.has.been.modified.or.in
4780 73 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 stalled...Access.to.a.network.ma
47a0 79 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f y.be.denied.when.the.modificatio
47c0 6e 20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c n.itself.materially.and.adversel
47e0 79 20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e y.affects.the.operation.of.the.n
4800 65 74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 etwork.or.violates.the.rules.and
4820 0a 70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 .protocols.for.communication.acr
4840 6f 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e oss.the.network.....Correspondin
4860 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 g.Source.conveyed,.and.Installat
4880 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 ion.Information.provided,.in.acc
48a0 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e ord.with.this.section.must.be.in
48c0 20 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d .a.format.that.is.publicly.docum
48e0 65 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ented.(and.with.an.implementatio
4900 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 n.available.to.the.public.in.sou
4920 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 rce.code.form),.and.must.require
4940 20 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a .no.special.password.or.key.for.
4960 75 6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a unpacking,.reading.or.copying...
4980 20 20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 ..7..Additional.Terms....."Addit
49a0 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 ional.permissions".are.terms.tha
49c0 74 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c t.supplement.the.terms.of.this.L
49e0 69 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d icense.by.making.exceptions.from
4a00 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a .one.or.more.of.its.conditions..
4a20 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 Additional.permissions.that.are.
4a40 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d applicable.to.the.entire.Program
4a60 20 73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 .shall.be.treated.as.though.they
4a80 20 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 .were.included.in.this.License,.
4aa0 74 6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 to.the.extent.that.they.are.vali
4ac0 64 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 d.under.applicable.law...If.addi
4ae0 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f tional.permissions.apply.only.to
4b00 20 70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 .part.of.the.Program,.that.part.
4b20 6d 61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f may.be.used.separately.under.tho
4b40 73 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 se.permissions,.but.the.entire.P
4b60 72 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 rogram.remains.governed.by.this.
4b80 4c 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 License.without.regard.to.the.ad
4ba0 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f ditional.permissions.....When.yo
4bc0 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 u.convey.a.copy.of.a.covered.wor
4be0 6b 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 k,.you.may.at.your.option.remove
4c00 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d .any.additional.permissions.from
4c20 20 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a .that.copy,.or.from.any.part.of.
4c40 69 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 it...(Additional.permissions.may
4c60 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e .be.written.to.require.their.own
4c80 0a 72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 .removal.in.certain.cases.when.y
4ca0 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c ou.modify.the.work.)..You.may.pl
4cc0 61 63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 ace.additional.permissions.on.ma
4ce0 74 65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 terial,.added.by.you.to.a.covere
4d00 64 20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 d.work,.for.which.you.have.or.ca
4d20 6e 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 n.give.appropriate.copyright.per
4d40 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 mission.....Notwithstanding.any.
4d60 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c other.provision.of.this.License,
4d80 20 66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 .for.material.you.add.to.a.cover
4da0 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 ed.work,.you.may.(if.authorized.
4dc0 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 by.the.copyright.holders.of.that
4de0 20 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 .material).supplement.the.terms.
4e00 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 of.this.License.with.terms:.....
4e20 20 61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 .a).Disclaiming.warranty.or.limi
4e40 74 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 ting.liability.differently.from.
4e60 74 68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 the.....terms.of.sections.15.and
4e80 20 31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 .16.of.this.License;.or......b).
4ea0 52 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 Requiring.preservation.of.specif
4ec0 69 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a ied.reasonable.legal.notices.or.
4ee0 20 20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 ....author.attributions.in.that.
4f00 6d 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c material.or.in.the.Appropriate.L
4f20 65 67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f egal.....Notices.displayed.by.wo
4f40 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 rks.containing.it;.or......c).Pr
4f60 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 ohibiting.misrepresentation.of.t
4f80 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 he.origin.of.that.material,.or..
4fa0 20 20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 ...requiring.that.modified.versi
4fc0 6f 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 ons.of.such.material.be.marked.i
4fe0 6e 0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 n.....reasonable.ways.as.differe
5000 6e 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 nt.from.the.original.version;.or
5020 0a 0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 ......d).Limiting.the.use.for.pu
5040 62 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 blicity.purposes.of.names.of.lic
5060 65 6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 ensors.or.....authors.of.the.mat
5080 65 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29 20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 erial;.or......e).Declining.to.g
50a0 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 rant.rights.under.trademark.law.
50c0 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c for.use.of.some.....trade.names,
50e0 20 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f .trademarks,.or.service.marks;.o
5100 72 0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 r......f).Requiring.indemnificat
5120 69 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 ion.of.licensors.and.authors.of.
5140 74 68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 that.....material.by.anyone.who.
5160 63 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 conveys.the.material.(or.modifie
5180 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 d.versions.of.....it).with.contr
51a0 61 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 actual.assumptions.of.liability.
51c0 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 to.the.recipient,.for.....any.li
51e0 61 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 ability.that.these.contractual.a
5200 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 ssumptions.directly.impose.on...
5220 20 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a ..those.licensors.and.authors...
5240 20 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 ..All.other.non-permissive.addit
5260 69 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 ional.terms.are.considered."furt
5280 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 her.restrictions".within.the.mea
52a0 6e 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 ning.of.section.10...If.the.Prog
52c0 72 61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 ram.as.you.received.it,.or.any.p
52e0 61 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 art.of.it,.contains.a.notice.sta
5300 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 ting.that.it.is.governed.by.this
5320 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 .License.along.with.a.term.that.
5340 69 73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 is.a.further.restriction,.you.ma
5360 79 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 y.remove.that.term...If.a.licens
5380 65 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 e.document.contains.a.further.re
53a0 73 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e striction.but.permits.relicensin
53c0 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 g.or.conveying.under.this.Licens
53e0 65 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b e,.you.may.add.to.a.covered.work
5400 20 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a .material.governed.by.the.terms.
5420 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 of.that.license.document,.provid
5440 65 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 ed.that.the.further.restriction.
5460 64 6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e does.not.survive.such.relicensin
5480 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 g.or.conveying.....If.you.add.te
54a0 72 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 rms.to.a.covered.work.in.accord.
54c0 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 with.this.section,.you.must.plac
54e0 65 2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c e,.in.the.relevant.source.files,
5500 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 .a.statement.of.the.additional.t
5520 65 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 erms.that.apply.to.those.files,.
5540 6f 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 or.a.notice.indicating.where.to.
5560 66 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 find.the.applicable.terms.....Ad
5580 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f ditional.terms,.permissive.or.no
55a0 6e 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 n-permissive,.may.be.stated.in.t
55c0 68 65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 he.form.of.a.separately.written.
55e0 6c 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 license,.or.stated.as.exceptions
5600 3b 0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 ;.the.above.requirements.apply.e
5620 69 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 ither.way.....8..Termination....
5640 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 .You.may.not.propagate.or.modify
5660 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 .a.covered.work.except.as.expres
5680 73 6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e sly.provided.under.this.License.
56a0 20 20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 ..Any.attempt.otherwise.to.propa
56c0 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 gate.or.modify.it.is.void,.and.w
56e0 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 ill.automatically.terminate.your
5700 20 72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c .rights.under.this.License.(incl
5720 75 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 uding.any.patent.licenses.grante
5740 64 20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 d.under.the.third.paragraph.of.s
5760 65 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 ection.11).....However,.if.you.c
5780 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e ease.all.violation.of.this.Licen
57a0 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 se,.then.your.license.from.a.par
57c0 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e ticular.copyright.holder.is.rein
57e0 73 74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 stated.(a).provisionally,.unless
5800 20 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 .and.until.the.copyright.holder.
5820 65 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 explicitly.and.finally.terminate
5840 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e s.your.license,.and.(b).permanen
5860 74 6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 tly,.if.the.copyright.holder.fai
5880 6c 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f ls.to.notify.you.of.the.violatio
58a0 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 n.by.some.reasonable.means.prior
58c0 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e .to.60.days.after.the.cessation.
58e0 0a 0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 ....Moreover,.your.license.from.
5900 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 a.particular.copyright.holder.is
5920 0a 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 .reinstated.permanently.if.the.c
5940 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 opyright.holder.notifies.you.of.
5960 74 68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 the.violation.by.some.reasonable
5980 20 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 .means,.this.is.the.first.time.y
59a0 6f 75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 ou.have.received.notice.of.viola
59c0 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f tion.of.this.License.(for.any.wo
59e0 72 6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 rk).from.that.copyright.holder,.
5a00 61 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 and.you.cure.the.violation.prior
5a20 20 74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f .to.30.days.after.your.receipt.o
5a40 66 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 f.the.notice.....Termination.of.
5a60 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 your.rights.under.this.section.d
5a80 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f oes.not.terminate.the.licenses.o
5aa0 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 f.parties.who.have.received.copi
5ac0 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 es.or.rights.from.you.under.this
5ae0 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 .License...If.your.rights.have.b
5b00 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 een.terminated.and.not.permanent
5b20 6c 79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 ly.reinstated,.you.do.not.qualif
5b40 79 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 y.to.receive.new.licenses.for.th
5b60 65 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 e.same.material.under.section.10
5b80 2e 0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 .....9..Acceptance.Not.Required.
5ba0 66 6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f for.Having.Copies.....You.are.no
5bc0 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 t.required.to.accept.this.Licens
5be0 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 e.in.order.to.receive.or.run.a.c
5c00 6f 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 opy.of.the.Program...Ancillary.p
5c20 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 ropagation.of.a.covered.work.occ
5c40 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f urring.solely.as.a.consequence.o
5c60 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f f.using.peer-to-peer.transmissio
5c80 6e 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 n.to.receive.a.copy.likewise.doe
5ca0 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 s.not.require.acceptance...Howev
5cc0 65 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 er,.nothing.other.than.this.Lice
5ce0 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f nse.grants.you.permission.to.pro
5d00 70 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 pagate.or.modify.any.covered.wor
5d20 6b 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 k...These.actions.infringe.copyr
5d40 69 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c ight.if.you.do.not.accept.this.L
5d60 69 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 icense...Therefore,.by.modifying
5d80 20 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 .or.propagating.a.covered.work,.
5da0 79 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 you.indicate.your.acceptance.of.
5dc0 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 this.License.to.do.so.....10..Au
5de0 74 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 tomatic.Licensing.of.Downstream.
5e00 52 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e Recipients.....Each.time.you.con
5e20 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e vey.a.covered.work,.the.recipien
5e40 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e t.automatically.receives.a.licen
5e60 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 se.from.the.original.licensors,.
5e80 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 to.run,.modify.and.propagate.tha
5ea0 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e t.work,.subject.to.this.License.
5ec0 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e ..You.are.not.responsible.for.en
5ee0 66 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 forcing.compliance.by.third.part
5f00 69 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e ies.with.this.License.....An."en
5f20 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 tity.transaction".is.a.transacti
5f40 6f 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 on.transferring.control.of.an.or
5f60 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c ganization,.or.substantially.all
5f80 20 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 .assets.of.one,.or.subdividing.a
5fa0 6e 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e n.organization,.or.merging.organ
5fc0 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 izations...If.propagation.of.a.c
5fe0 6f 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 overed.work.results.from.an.enti
6000 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 ty.transaction,.each.party.to.th
6020 61 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f at.transaction.who.receives.a.co
6040 70 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 py.of.the.work.also.receives.wha
6060 74 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 tever.licenses.to.the.work.the.p
6080 61 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 arty's.predecessor.in.interest.h
60a0 61 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 ad.or.could.give.under.the.previ
60c0 6f 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 ous.paragraph,.plus.a.right.to.p
60e0 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 ossession.of.the.Corresponding.S
6100 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 ource.of.the.work.from.the.prede
6120 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 cessor.in.interest,.if.the.prede
6140 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 cessor.has.it.or.can.get.it.with
6160 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 .reasonable.efforts.....You.may.
6180 6e 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 not.impose.any.further.restricti
61a0 6f 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 ons.on.the.exercise.of.the.right
61c0 73 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 s.granted.or.affirmed.under.this
61e0 20 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a .License...For.example,.you.may.
6200 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 not.impose.a.license.fee,.royalt
6220 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 y,.or.other.charge.for.exercise.
6240 6f 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 of.rights.granted.under.this.Lic
6260 65 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c ense,.and.you.may.not.initiate.l
6280 69 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 itigation.(including.a.cross-cla
62a0 69 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 im.or.counterclaim.in.a.lawsuit)
62c0 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 .alleging.that.any.patent.claim.
62e0 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 is.infringed.by.making,.using,.s
6300 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d elling,.offering.for.sale,.or.im
6320 70 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 porting.the.Program.or.any.porti
6340 6f 6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 on.of.it.....11..Patents.....A."
6360 63 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 contributor".is.a.copyright.hold
6380 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 er.who.authorizes.use.under.this
63a0 0a 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 .License.of.the.Program.or.a.wor
63c0 6b 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e k.on.which.the.Program.is.based.
63e0 20 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c ..The.work.thus.licensed.is.call
6400 65 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f ed.the.contributor's."contributo
6420 72 20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 r.version".....A.contributor's."
6440 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c essential.patent.claims".are.all
6460 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c .patent.claims.owned.or.controll
6480 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 ed.by.the.contributor,.whether.a
64a0 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 lready.acquired.or.hereafter.acq
64c0 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 uired,.that.would.be.infringed.b
64e0 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 y.some.manner,.permitted.by.this
6500 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 .License,.of.making,.using,.or.s
6520 65 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a elling.its.contributor.version,.
6540 62 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 but.do.not.include.claims.that.w
6560 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 ould.be.infringed.only.as.a.cons
6580 65 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 equence.of.further.modification.
65a0 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 of.the.contributor.version...For
65c0 0a 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 .purposes.of.this.definition,."c
65e0 6f 6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 ontrol".includes.the.right.to.gr
6600 61 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e ant.patent.sublicenses.in.a.mann
6620 65 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 er.consistent.with.the.requireme
6640 6e 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e nts.of.this.License.....Each.con
6660 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 tributor.grants.you.a.non-exclus
6680 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 ive,.worldwide,.royalty-free.pat
66a0 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f ent.license.under.the.contributo
66c0 72 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a r's.essential.patent.claims,.to.
66e0 6d 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c make,.use,.sell,.offer.for.sale,
6700 20 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 .import.and.otherwise.run,.modif
6720 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 y.and.propagate.the.contents.of.
6740 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 its.contributor.version.....In.t
6760 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 he.following.three.paragraphs,.a
6780 20 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 ."patent.license".is.any.express
67a0 0a 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 .agreement.or.commitment,.howeve
67c0 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 r.denominated,.not.to.enforce.a.
67e0 70 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 patent.(such.as.an.express.permi
6800 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f ssion.to.practice.a.patent.or.co
6820 76 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 venant.not.to.sue.for.patent.inf
6840 72 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22 67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 ringement)...To."grant".such.a.p
6860 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 atent.license.to.a.party.means.t
6880 6f 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d o.make.such.an.agreement.or.comm
68a0 69 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 itment.not.to.enforce.a.patent.a
68c0 67 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 gainst.the.party.....If.you.conv
68e0 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c ey.a.covered.work,.knowingly.rel
6900 79 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 ying.on.a.patent.license,.and.th
6920 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f e.Corresponding.Source.of.the.wo
6940 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 rk.is.not.available.for.anyone.t
6960 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 o.copy,.free.of.charge.and.under
6980 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f .the.terms.of.this.License,.thro
69a0 75 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b ugh.a.publicly.available.network
69c0 20 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 .server.or.other.readily.accessi
69e0 62 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 ble.means,.then.you.must.either.
6a00 28 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 (1).cause.the.Corresponding.Sour
6a20 63 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 ce.to.be.so.available,.or.(2).ar
6a40 72 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 range.to.deprive.yourself.of.the
6a60 20 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 .benefit.of.the.patent.license.f
6a80 6f 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 or.this.particular.work,.or.(3).
6aa0 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 arrange,.in.a.manner.consistent.
6ac0 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 with.the.requirements.of.this.Li
6ae0 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 cense,.to.extend.the.patent.lice
6b00 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 nse.to.downstream.recipients..."
6b20 4b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 Knowingly.relying".means.you.hav
6b40 65 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 e.actual.knowledge.that,.but.for
6b60 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 .the.patent.license,.your.convey
6b80 69 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 ing.the.covered.work.in.a.countr
6ba0 79 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 y,.or.your.recipient's.use.of.th
6bc0 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 e.covered.work.in.a.country,.wou
6be0 6c 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 ld.infringe.one.or.more.identifi
6c00 61 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 able.patents.in.that.country.tha
6c20 74 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 t.you.have.reason.to.believe.are
6c40 20 76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e .valid.....If,.pursuant.to.or.in
6c60 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 .connection.with.a.single.transa
6c80 63 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 ction.or.arrangement,.you.convey
6ca0 2c 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 ,.or.propagate.by.procuring.conv
6cc0 65 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 eyance.of,.a.covered.work,.and.g
6ce0 72 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 rant.a.patent.license.to.some.of
6d00 20 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 .the.parties.receiving.the.cover
6d20 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c ed.work.authorizing.them.to.use,
6d40 20 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 .propagate,.modify.or.convey.a.s
6d60 70 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b pecific.copy.of.the.covered.work
6d80 2c 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 ,.then.the.patent.license.you.gr
6da0 61 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f ant.is.automatically.extended.to
6dc0 20 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 .all.recipients.of.the.covered.w
6de0 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 ork.and.works.based.on.it.....A.
6e00 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 patent.license.is."discriminator
6e20 79 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e y".if.it.does.not.include.within
6e40 0a 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 .the.scope.of.its.coverage,.proh
6e60 69 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e ibits.the.exercise.of,.or.is.con
6e80 64 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 ditioned.on.the.non-exercise.of.
6ea0 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 one.or.more.of.the.rights.that.a
6ec0 72 65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 re.specifically.granted.under.th
6ee0 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 is.License...You.may.not.convey.
6f00 61 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 a.covered.work.if.you.are.a.part
6f20 79 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 y.to.an.arrangement.with.a.third
6f40 20 70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f .party.that.is.in.the.business.o
6f60 66 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 f.distributing.software,.under.w
6f80 68 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 hich.you.make.payment.to.the.thi
6fa0 72 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 rd.party.based.on.the.extent.of.
6fc0 79 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 your.activity.of.conveying.the.w
6fe0 6f 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 ork,.and.under.which.the.third.p
7000 61 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 arty.grants,.to.any.of.the.parti
7020 65 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 es.who.would.receive.the.covered
7040 20 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 .work.from.you,.a.discriminatory
7060 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f .patent.license.(a).in.connectio
7080 6e 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 n.with.copies.of.the.covered.wor
70a0 6b 0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 k.conveyed.by.you.(or.copies.mad
70c0 65 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 e.from.those.copies),.or.(b).pri
70e0 6d 61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 marily.for.and.in.connection.wit
7100 68 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 h.specific.products.or.compilati
7120 6f 6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 ons.that.contain.the.covered.wor
7140 6b 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 k,.unless.you.entered.into.that.
7160 61 72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 arrangement,.or.that.patent.lice
7180 6e 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 nse.was.granted,.prior.to.28.Mar
71a0 63 68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 ch.2007.....Nothing.in.this.Lice
71c0 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 nse.shall.be.construed.as.exclud
71e0 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 ing.or.limiting.any.implied.lice
7200 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 nse.or.other.defenses.to.infring
7220 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 ement.that.may.otherwise.be.avai
7240 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 lable.to.you.under.applicable.pa
7260 74 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 tent.law.....12..No.Surrender.of
7280 20 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f .Others'.Freedom.....If.conditio
72a0 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 ns.are.imposed.on.you.(whether.b
72c0 79 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 y.court.order,.agreement.or.othe
72e0 72 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 rwise).that.contradict.the.condi
7300 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e tions.of.this.License,.they.do.n
7320 6f 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e ot.excuse.you.from.the.condition
7340 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f s.of.this.License...If.you.canno
7360 74 20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f t.convey.a.covered.work.so.as.to
7380 20 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c .satisfy.simultaneously.your.obl
73a0 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 igations.under.this.License.and.
73c0 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c any.other.pertinent.obligations,
73e0 20 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e .then.as.a.consequence.you.may.n
7400 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c ot.convey.it.at.all...For.exampl
7420 65 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 e,.if.you.agree.to.terms.that.ob
7440 6c 69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 ligate.you.to.collect.a.royalty.
7460 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 for.further.conveying.from.those
7480 20 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c .to.whom.you.convey.the.Program,
74a0 20 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 .the.only.way.you.could.satisfy.
74c0 62 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 both.those.terms.and.this.Licens
74e0 65 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 e.would.be.to.refrain.entirely.f
7500 72 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 rom.conveying.the.Program.....13
7520 2e 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 ..Use.with.the.GNU.Affero.Genera
7540 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e l.Public.License.....Notwithstan
7560 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 ding.any.other.provision.of.this
7580 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f .License,.you.have.permission.to
75a0 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 .link.or.combine.any.covered.wor
75c0 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 k.with.a.work.licensed.under.ver
75e0 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c sion.3.of.the.GNU.Affero.General
7600 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f .Public.License.into.a.single.co
7620 6d 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 mbined.work,.and.to.convey.the.r
7640 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 esulting.work...The.terms.of.thi
7660 73 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 s.License.will.continue.to.apply
7680 20 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 .to.the.part.which.is.the.covere
76a0 64 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d d.work,.but.the.special.requirem
76c0 65 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 ents.of.the.GNU.Affero.General.P
76e0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 ublic.License,.section.13,.conce
7700 72 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 rning.interaction.through.a.netw
7720 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f ork.will.apply.to.the.combinatio
7740 6e 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f n.as.such.....14..Revised.Versio
7760 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 ns.of.this.License.....The.Free.
7780 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 Software.Foundation.may.publish.
77a0 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 revised.and/or.new.versions.of.t
77c0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 he.GNU.General.Public.License.fr
77e0 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 om.time.to.time...Such.new.versi
7800 6f 6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f ons.will.be.similar.in.spirit.to
7820 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 .the.present.version,.but.may.di
7840 66 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 ffer.in.detail.to.address.new.pr
7860 6f 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 oblems.or.concerns.....Each.vers
7880 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 ion.is.given.a.distinguishing.ve
78a0 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 rsion.number...If.the.Program.sp
78c0 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 ecifies.that.a.certain.numbered.
78e0 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 version.of.the.GNU.General.Publi
7900 63 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 c.License."or.any.later.version"
7920 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 .applies.to.it,.you.have.the.opt
7940 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 ion.of.following.the.terms.and.c
7960 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 onditions.either.of.that.numbere
7980 64 0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f d.version.or.of.any.later.versio
79a0 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 n.published.by.the.Free.Software
79c0 0a 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 .Foundation...If.the.Program.doe
79e0 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f s.not.specify.a.version.number.o
7a00 66 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
7a20 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 ,.you.may.choose.any.version.eve
7a40 72 20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 r.published.by.the.Free.Software
7a60 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 .Foundation.....If.the.Program.s
7a80 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 pecifies.that.a.proxy.can.decide
7aa0 20 77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e .which.future.versions.of.the.GN
7ac0 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 63 61 6e 20 62 65 20 U.General.Public.License.can.be.
7ae0 75 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d used,.that.proxy's.public.statem
7b00 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 ent.of.acceptance.of.a.version.p
7b20 65 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f ermanently.authorizes.you.to.cho
7b40 6f 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d ose.that.version.for.the.Program
7b60 2e 0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 .....Later.license.versions.may.
7b80 67 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 give.you.additional.or.different
7ba0 0a 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 .permissions...However,.no.addit
7bc0 69 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e ional.obligations.are.imposed.on
7be0 20 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 .any.author.or.copyright.holder.
7c00 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 as.a.result.of.your.choosing.to.
7c20 66 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 follow.a.later.version.....15..D
7c40 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 isclaimer.of.Warranty.....THERE.
7c60 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 IS.NO.WARRANTY.FOR.THE.PROGRAM,.
7c80 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 TO.THE.EXTENT.PERMITTED.BY.APPLI
7ca0 43 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 CABLE.LAW...EXCEPT.WHEN.OTHERWIS
7cc0 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 E.STATED.IN.WRITING.THE.COPYRIGH
7ce0 54 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 T.HOLDERS.AND/OR.OTHER.PARTIES.P
7d00 52 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f ROVIDE.THE.PROGRAM."AS.IS".WITHO
7d20 55 54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 UT.WARRANTY.OF.ANY.KIND,.EITHER.
7d40 45 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c EXPRESSED.OR.IMPLIED,.INCLUDING,
7d60 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 .BUT.NOT.LIMITED.TO,.THE.IMPLIED
7d80 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 .WARRANTIES.OF.MERCHANTABILITY.A
7da0 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 0a 50 55 52 50 ND.FITNESS.FOR.A.PARTICULAR.PURP
7dc0 4f 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 OSE...THE.ENTIRE.RISK.AS.TO.THE.
7de0 51 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 QUALITY.AND.PERFORMANCE.OF.THE.P
7e00 52 4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 ROGRAM.IS.WITH.YOU...SHOULD.THE.
7e20 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 PROGRAM.PROVE.DEFECTIVE,.YOU.ASS
7e40 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 UME.THE.COST.OF.ALL.NECESSARY.SE
7e60 52 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a RVICING,.REPAIR.OR.CORRECTION...
7e80 20 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a ..16..Limitation.of.Liability...
7ea0 20 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 ..IN.NO.EVENT.UNLESS.REQUIRED.BY
7ec0 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 .APPLICABLE.LAW.OR.AGREED.TO.IN.
7ee0 57 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 WRITING.WILL.ANY.COPYRIGHT.HOLDE
7f00 52 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 R,.OR.ANY.OTHER.PARTY.WHO.MODIFI
7f20 45 53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 ES.AND/OR.CONVEYS.THE.PROGRAM.AS
7f40 20 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 .PERMITTED.ABOVE,.BE.LIABLE.TO.Y
7f60 4f 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 OU.FOR.DAMAGES,.INCLUDING.ANY.GE
7f80 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f NERAL,.SPECIAL,.INCIDENTAL.OR.CO
7fa0 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 NSEQUENTIAL.DAMAGES.ARISING.OUT.
7fc0 4f 46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 OF.THE.USE.OR.INABILITY.TO.USE.T
7fe0 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 HE.PROGRAM.(INCLUDING.BUT.NOT.LI
8000 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 MITED.TO.LOSS.OF.DATA.OR.DATA.BE
8020 49 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 ING.RENDERED.INACCURATE.OR.LOSSE
8040 53 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 S.SUSTAINED.BY.YOU.OR.THIRD.PART
8060 49 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 IES.OR.A.FAILURE.OF.THE.PROGRAM.
8080 54 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 TO.OPERATE.WITH.ANY.OTHER.PROGRA
80a0 4d 53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 MS),.EVEN.IF.SUCH.HOLDER.OR.OTHE
80c0 52 20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 R.PARTY.HAS.BEEN.ADVISED.OF.THE.
80e0 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 POSSIBILITY.OF.SUCH.DAMAGES.....
8100 31 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 17..Interpretation.of.Sections.1
8120 35 20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 5.and.16.....If.the.disclaimer.o
8140 66 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 f.warranty.and.limitation.of.lia
8160 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 bility.provided.above.cannot.be.
8180 67 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 given.local.legal.effect.accordi
81a0 6e 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 ng.to.their.terms,.reviewing.cou
81c0 72 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d rts.shall.apply.local.law.that.m
81e0 6f 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f ost.closely.approximates.an.abso
8200 6c 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 lute.waiver.of.all.civil.liabili
8220 74 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 ty.in.connection.with.the.Progra
8240 6d 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 m,.unless.a.warranty.or.assumpti
8260 6f 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f on.of.liability.accompanies.a.co
8280 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 py.of.the.Program.in.return.for.
82a0 61 20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 a.fee........................END
82c0 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 .OF.TERMS.AND.CONDITIONS........
82e0 20 20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 ......How.to.Apply.These.Terms.t
8300 6f 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 o.Your.New.Programs....If.you.de
8320 76 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e velop.a.new.program,.and.you.wan
8340 74 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 t.it.to.be.of.the.greatest.possi
8360 62 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 ble.use.to.the.public,.the.best.
8380 77 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 way.to.achieve.this.is.to.make.i
83a0 74 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 t.free.software.which.everyone.c
83c0 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 an.redistribute.and.change.under
83e0 20 74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 .these.terms.....To.do.so,.attac
8400 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 h.the.following.notices.to.the.p
8420 72 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 rogram...It.is.safest.to.attach.
8440 74 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 them.to.the.start.of.each.source
8460 20 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 .file.to.most.effectively.state.
8480 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 the.exclusion.of.warranty;.and.e
84a0 61 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 ach.file.should.have.at.least.th
84c0 65 20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 e."copyright".line.and.a.pointer
84e0 20 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 .to.where.the.full.notice.is.fou
8500 6e 64 2e 0a 0a 20 20 20 20 3c 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 nd.......<one.line.to.give.the.p
8520 72 6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f rogram's.name.and.a.brief.idea.o
8540 66 20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 3e 0a 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 f.what.it.does.>.....Copyright.(
8560 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 3e 0a 0a 20 20 20 C).<year>..<name.of.author>.....
8580 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 .This.program.is.free.software:.
85a0 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d you.can.redistribute.it.and/or.m
85c0 6f 64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 odify.....it.under.the.terms.of.
85e0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 the.GNU.General.Public.License.a
8600 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 s.published.by.....the.Free.Soft
8620 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 ware.Foundation,.either.version.
8640 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 3.of.the.License,.or.....(at.you
8660 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 r.option).any.later.version.....
8680 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e ..This.program.is.distributed.in
86a0 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c .the.hope.that.it.will.be.useful
86c0 2c 0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 ,.....but.WITHOUT.ANY.WARRANTY;.
86e0 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 without.even.the.implied.warrant
8700 79 20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e y.of.....MERCHANTABILITY.or.FITN
8720 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 ESS.FOR.A.PARTICULAR.PURPOSE...S
8740 65 65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 ee.the.....GNU.General.Public.Li
8760 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 20 59 6f 75 cense.for.more.details.......You
8780 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 .should.have.received.a.copy.of.
87a0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 the.GNU.General.Public.License..
87c0 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 ...along.with.this.program...If.
87e0 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 not,.see.<https://www.gnu.org/li
8800 63 65 6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 censes/>...Also.add.information.
8820 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f on.how.to.contact.you.by.electro
8840 6e 69 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 nic.and.paper.mail.....If.the.pr
8860 6f 67 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c ogram.does.terminal.interaction,
8880 20 6d 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c .make.it.output.a.short.notice.l
88a0 69 6b 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e ike.this.when.it.starts.in.an.in
88c0 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 3c 70 72 6f 67 72 61 6d 3e 20 20 teractive.mode:......<program>..
88e0 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 Copyright.(C).<year>..<name.of.a
8900 75 74 68 6f 72 3e 0a 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 uthor>.....This.program.comes.wi
8920 74 68 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 th.ABSOLUTELY.NO.WARRANTY;.for.d
8940 65 74 61 69 6c 73 20 74 79 70 65 20 60 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 etails.type.`show.w'......This.i
8960 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c s.free.software,.and.you.are.wel
8980 63 6f 6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 come.to.redistribute.it.....unde
89a0 72 20 63 65 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 r.certain.conditions;.type.`show
89c0 20 63 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 .c'.for.details...The.hypothetic
89e0 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 60 73 68 6f 77 20 77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 al.commands.`show.w'.and.`show.c
8a00 27 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 '.should.show.the.appropriate.pa
8a20 72 74 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 rts.of.the.General.Public.Licens
8a40 65 2e 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f e...Of.course,.your.program's.co
8a60 6d 6d 61 6e 64 73 0a 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 mmands.might.be.different;.for.a
8a80 20 47 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e .GUI.interface,.you.would.use.an
8aa0 20 22 61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f ."about.box".....You.should.also
8ac0 20 67 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 .get.your.employer.(if.you.work.
8ae0 61 73 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 as.a.programmer).or.school,.if.a
8b00 6e 79 2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 ny,.to.sign.a."copyright.disclai
8b20 6d 65 72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 mer".for.the.program,.if.necessa
8b40 72 79 2e 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 ry..For.more.information.on.this
8b60 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 ,.and.how.to.apply.and.follow.th
8b80 65 20 47 4e 55 20 47 50 4c 2c 20 73 65 65 0a 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e e.GNU.GPL,.see.<https://www.gnu.
8ba0 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 org/licenses/>.....The.GNU.Gener
8bc0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 al.Public.License.does.not.permi
8be0 74 20 69 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 t.incorporating.your.program.int
8c00 6f 20 70 72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 o.proprietary.programs...If.your
8c20 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 20 6c 69 62 72 61 72 79 .program.is.a.subroutine.library
8c40 2c 20 79 6f 75 0a 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 ,.you.may.consider.it.more.usefu
8c60 6c 20 74 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 20 l.to.permit.linking.proprietary.
8c80 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 0a 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 applications.with.the.library...
8ca0 49 66 20 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 If.this.is.what.you.want.to.do,.
8cc0 75 73 65 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 use.the.GNU.Lesser.General.Publi
8ce0 63 20 4c 69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 c.License.instead.of.this.Licens
8d00 65 2e 20 20 42 75 74 20 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 0a 3c 68 74 74 70 e...But.first,.please.read.<http
8d20 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 77 68 79 2d 6e 6f 74 s://www.gnu.org/licenses/why-not
8d40 2d 6c 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -lgpl.html>.....................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 00 ztree-1.0.6/ztree-diff-model.el.
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 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
8e80 30 30 34 31 33 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 37 31 00 20 30 00 00 00 0041333.00000000000.014771..0...
8ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f00 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...................
8f20 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...................
8f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9000 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 20 2d 2d 2d 20 64 69 66 66 ;;;.ztree-diff-model.el.---.diff
9020 20 6d 6f 64 65 6c 20 66 6f 72 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 2d 2a 2d 20 6c .model.for.directory.trees.-*-.l
9040 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 6f 70 79 72 exical-binding:.t;.-*-..;;.Copyr
9060 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 ight.(C).2013-2021..Free.Softwar
9080 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a e.Foundation,.Inc..;;.;;.Author:
90a0 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 .Alexey.Veretennikov.<alexey.ver
90c0 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 etennikov@gmail.com>.;;.;;.Creat
90e0 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 ed:.2013-11-11.;;.;;.Keywords:.f
9100 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 iles.tools.;;.URL:.https://githu
9120 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 b.com/fourier/ztree.;;.Compatibi
9140 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 lity:.GNU.Emacs.24.x.;;.;;.This.
9160 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b file.is.part.of.GNU.Emacs..;;.;;
9180 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 .GNU.Emacs.is.free.software:.you
91a0 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 .can.redistribute.it.and/or.modi
91c0 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 fy.;;.it.under.the.terms.of.the.
91e0 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 GNU.General.Public.License.as.pu
9200 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 blished.by.;;.the.Free.Software.
9220 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 Foundation,.either.version.3.of.
9240 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 the.License,.or.;;.(at.your.opti
9260 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 on).any.later.version..;;.;;.GNU
9280 20 45 6d 61 63 73 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 .Emacs.is.distributed.in.the.hop
92a0 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 e.that.it.will.be.useful,.;;.but
92c0 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
92e0 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d ven.the.implied.warranty.of.;;.M
9300 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 ERCHANTABILITY.or.FITNESS.FOR.A.
9320 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 PARTICULAR.PURPOSE...See.the.;;.
9340 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d GNU.General.Public.License.for.m
9360 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 ore.details..;;.;;.You.should.ha
9380 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
93a0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
93c0 74 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 th.GNU.Emacs...If.not,.see.<http
93e0 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b ://www.gnu.org/licenses/>..;;.;;
9400 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 44 69 66 66 20 6d 6f 64 65 6c 0a 0a 3b 3b ;.Commentary:..;;.Diff.model..;;
9420 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 0a 28 65 ;.Code:.(require.'ztree-util).(e
9440 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 val-when-compile.(require.'cl-li
9460 62 29 29 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 b))..(defvar.ztree-diff-consider
9480 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 4d 61 72 6b 20 66 69 -file-permissions.nil..."Mark.fi
94a0 6c 65 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 69 72 20 70 65 72 6d 69 73 les.as.different.if.their.permis
94c0 73 69 6f 6e 73 20 61 72 65 20 64 69 66 66 65 72 65 6e 74 22 29 0a 0a 28 64 65 66 76 61 72 20 7a sions.are.different")..(defvar.z
94e0 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 2d 66 69 6c 65 2d 73 69 7a 65 20 74 0a 20 tree-diff-consider-file-size.t..
9500 20 22 4d 61 72 6b 20 66 69 6c 65 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 ."Mark.files.as.different.if.the
9520 69 72 20 73 69 7a 65 20 64 69 66 66 65 72 65 6e 74 22 29 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 ir.size.different")..(defvar.ztr
9540 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 20 6e 69 6c 0a 20 ee-diff-additional-options.nil..
9560 20 22 43 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 64 ."Command-line.options.for.the.d
9580 69 66 66 20 70 72 6f 67 72 61 6d 20 75 73 65 64 20 61 73 20 61 20 64 69 66 66 20 62 61 63 6b 65 iff.program.used.as.a.diff.backe
95a0 6e 64 2e 20 54 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 64 nd..These.options.are.added.to.d
95c0 65 66 61 75 6c 74 20 27 2d 71 27 20 6f 70 74 69 6f 6e 2e 0a 53 68 6f 75 6c 64 20 62 65 20 61 20 efault.'-q'.option..Should.be.a.
95e0 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 0a 45 78 61 6d 70 6c 65 3a 0a 28 73 65 74 71 20 list.of.strings..Example:.(setq.
9600 7a 74 72 65 65 2d 64 69 66 66 2d 6f 70 74 69 6f 6e 73 20 27 28 5c 22 2d 77 5c 22 20 5c 22 2d 69 ztree-diff-options.'(\"-w\".\"-i
9620 5c 22 29 29 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 \"))")..(defvar-local.ztree-diff
9640 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f -model-ignore-fun.nil..."Functio
9660 6e 20 77 68 69 63 68 20 64 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 6e 6f 64 65 20 73 n.which.determines.if.the.node.s
9680 68 6f 75 6c 64 20 62 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f 6d 70 61 72 69 73 6f hould.be.excluded.from.compariso
96a0 6e 2e 22 29 0a 0a 0a 3b 3b 20 43 72 65 61 74 65 20 61 20 72 65 63 6f 72 64 20 7a 74 72 65 65 2d n.")...;;.Create.a.record.ztree-
96c0 64 69 66 66 2d 6e 6f 64 65 20 77 69 74 68 20 64 65 66 69 6e 65 64 20 66 69 65 6c 64 73 20 61 6e diff-node.with.defined.fields.an
96e0 64 20 67 65 74 74 65 72 73 2f 73 65 74 74 65 72 73 0a 3b 3b 20 68 65 72 65 3a 0a 3b 3b 20 70 61 d.getters/setters.;;.here:.;;.pa
9700 72 65 6e 74 20 2d 20 70 61 72 65 6e 74 20 6e 6f 64 65 0a 3b 3b 20 6c 65 66 74 2d 70 61 74 68 20 rent.-.parent.node.;;.left-path.
9720 69 73 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 is.the.full.path.on.the.left.sid
9740 65 20 6f 66 20 74 68 65 20 64 69 66 66 20 77 69 6e 64 6f 77 2c 0a 3b 3b 20 72 69 67 68 74 2d 70 e.of.the.diff.window,.;;.right-p
9760 61 74 68 20 69 73 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 6f 66 20 74 68 65 20 72 69 67 68 ath.is.the.full.path.of.the.righ
9780 74 20 73 69 64 65 2c 0a 3b 3b 20 73 68 6f 72 74 2d 6e 61 6d 65 20 2d 20 69 73 20 74 68 65 20 66 t.side,.;;.short-name.-.is.the.f
97a0 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 0a 3b 3b 20 63 68 69 6c 64 72 65 ile.or.directory.name.;;.childre
97c0 6e 20 2d 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 20 2d 20 66 69 6c 65 73 20 6f 72 20 64 69 72 n.-.list.of.nodes.-.files.or.dir
97e0 65 63 74 6f 72 69 65 73 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 61 20 64 69 72 65 63 74 ectories.if.the.node.is.a.direct
9800 6f 72 79 0a 3b 3b 20 64 69 66 66 65 72 65 6e 74 20 3d 20 7b 6e 69 6c 2c 20 27 73 61 6d 65 2c 20 ory.;;.different.=.{nil,.'same,.
9820 27 6e 65 77 2c 20 27 64 69 66 66 2c 20 27 69 67 6e 6f 72 65 7d 20 2d 20 6d 65 61 6e 73 20 63 6f 'new,.'diff,.'ignore}.-.means.co
9840 6d 70 61 72 69 73 6f 6e 20 73 74 61 74 75 73 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 7a mparison.status.(cl-defstruct.(z
9860 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a tree-diff-node................(:
9880 63 6f 6e 73 74 72 75 63 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f constructor)................(:co
98a0 6e 73 74 72 75 63 74 6f 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 nstructor.ztree-diff-node-create
98c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 6c 65 66 74 2d 70 61 .................(parent.left-pa
98e0 74 68 20 72 69 67 68 74 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.right-path...................
9900 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......different.................
9920 20 20 20 20 20 20 20 20 26 61 75 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........&aux....................
9940 20 20 20 20 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f .....(short-name.(ztree-file-sho
9960 72 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt-name.........................
9980 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 6c 65 66 74 2d 70 61 74 68 20 72 69 67 68 74 .............(or.left-path.right
99a0 2d 70 61 74 68 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 -path)))........................
99c0 20 28 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(right-short-name..............
99e0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6c 65 66 74 2d 70 61 74 68 20 72 ............(if.(and.left-path.r
9a00 69 67 68 74 2d 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 ight-path)......................
9a20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 72 ........(ztree-file-short-name.r
9a40 69 67 68 74 2d 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 ight-path)......................
9a60 20 20 20 20 20 20 73 68 6f 72 74 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 70 61 72 65 6e 74 20 6c ......short-name)))))...parent.l
9a80 65 66 74 2d 70 61 74 68 20 72 69 67 68 74 2d 70 61 74 68 20 73 68 6f 72 74 2d 6e 61 6d 65 20 72 eft-path.right-path.short-name.r
9aa0 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 63 68 69 6c 64 72 65 6e 20 64 69 66 66 65 72 65 ight-short-name.children.differe
9ac0 6e 74 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e nt)..(defun.ztree-diff-model-ign
9ae0 6f 72 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 ore-p.(node)..."Determine.if.the
9b00 20 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f .NODE.should.be.excluded.from.co
9b20 6d 70 61 72 69 73 6f 6e 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 77 68 65 6e 20 7a 74 72 65 65 mparison.results."...(when.ztree
9b40 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 0a 20 20 20 20 28 66 75 6e 63 -diff-model-ignore-fun.....(func
9b60 61 6c 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 all.ztree-diff-model-ignore-fun.
9b80 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d node)))..(defun.ztree-diff-node-
9ba0 74 6f 2d 73 74 72 69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 74 68 to-string.(node)..."Construct.th
9bc0 65 20 73 74 72 69 6e 67 20 77 69 74 68 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 4e 4f e.string.with.contents.of.the.NO
9be0 44 45 20 67 69 76 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 DE.given."...(let.((string-or-ni
9c00 6c 20 23 27 28 6c 61 6d 62 64 61 20 28 78 29 20 28 69 66 20 78 0a 20 20 20 20 20 20 20 20 20 20 l.#'(lambda.(x).(if.x...........
9c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
9c40 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 78 29 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 cond.((stringp.x).x)............
9c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9c80 20 20 20 20 28 28 65 71 20 78 20 27 6e 65 77 29 20 22 6e 65 77 22 29 0a 20 20 20 20 20 20 20 20 ....((eq.x.'new)."new").........
9ca0 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 ................................
9cc0 20 20 20 20 20 20 20 28 28 65 71 20 78 20 27 64 69 66 66 29 20 22 64 69 66 66 65 72 65 6e 74 22 .......((eq.x.'diff)."different"
9ce0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
9d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 78 20 27 69 67 6e 6f 72 65 29 .................((eq.x.'ignore)
9d20 20 22 69 67 6e 6f 72 65 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."ignored").....................
9d40 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 28 65 71 20 ...........................((eq.
9d60 78 20 27 73 61 6d 65 29 20 22 73 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x.'same)."same")................
9d80 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 ................................
9da0 28 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 78 (t.(ztree-diff-node-short-name.x
9dc0 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 20 20 20 ))).............................
9de0 20 20 20 20 20 20 20 20 20 20 20 22 28 65 6d 70 74 79 29 22 29 29 29 0a 20 20 20 20 20 20 20 20 ..........."(empty)"))).........
9e00 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 (children.(ztree-diff-node-child
9e20 72 65 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 2d 73 74 72 20 22 22 29 29 0a ren.node)).........(ch-str."")).
9e40 20 20 20 20 28 64 6f 6c 69 73 74 20 28 78 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 ....(dolist.(x.children).......(
9e60 73 65 74 71 20 63 68 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 63 68 2d 73 74 72 20 22 5c 6e 20 20 setq.ch-str.(concat.ch-str."\n..
9e80 20 2a 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 .*.".(ztree-diff-node-short-name
9ea0 20 78 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 22 .x)............................"
9ec0 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 :."............................(
9ee0 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 funcall.string-or-nil.(ztree-dif
9f00 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 78 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e f-node-different.x))))).....(con
9f20 63 61 74 20 22 4e 6f 64 65 3a 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 cat."Node:.".(ztree-diff-node-sh
9f40 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a ort-name.node)............."\n".
9f60 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 50 61 72 65 6e 74 3a 20 22 20 28 66 75 6e 63 61 ............".*.Parent:.".(funca
9f80 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ll.string-or-nil.(ztree-diff-nod
9fa0 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 e-parent.node))............."\n"
9fc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 53 74 61 74 75 73 3a 20 22 20 28 66 75 6e 63 .............".*.Status:.".(func
9fe0 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f all.string-or-nil.(ztree-diff-no
a000 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 de-different.node)).............
a020 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 4c 65 66 74 20 70 61 74 68 3a 20 "\n".............".*.Left.path:.
a040 22 20 28 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d ".(funcall.string-or-nil.(ztree-
a060 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 diff-node-left-path.node))......
a080 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 52 69 67 68 ......."\n".............".*.Righ
a0a0 74 20 70 61 74 68 3a 20 22 20 28 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c t.path:.".(funcall.string-or-nil
a0c0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 .(ztree-diff-node-right-path.nod
a0e0 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 e))............."\n"............
a100 20 22 20 2a 20 43 68 69 6c 64 72 65 6e 3a 20 22 20 63 68 2d 73 74 72 0a 20 20 20 20 20 20 20 20 .".*.Children:.".ch-str.........
a120 20 20 20 20 22 5c 6e 22 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d ...."\n")))...(defun.ztree-diff-
a140 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 28 6e 6f 64 65 20 26 6f node-short-name-wrapper.(node.&o
a160 70 74 69 6f 6e 61 6c 20 72 69 67 68 74 2d 73 69 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 ptional.right-side)..."Return.th
a180 65 20 73 68 6f 72 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 67 69 76 65 6e 2e 0a e.short.name.of.the.NODE.given..
a1a0 49 66 20 74 68 65 20 52 49 47 48 54 2d 53 49 44 45 20 69 73 20 74 72 75 65 2c 20 74 61 6b 65 20 If.the.RIGHT-SIDE.is.true,.take.
a1c0 74 68 65 20 72 69 67 68 74 20 6c 65 61 66 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 72 69 67 68 74 the.right.leaf"...(if.(not.right
a1e0 2d 73 69 64 65 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 -side).......(ztree-diff-node-sh
a200 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e ort-name.node).....(ztree-diff-n
a220 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 0a 0a 28 ode-right-short-name.node)))...(
a240 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 73 2d 64 69 72 65 63 74 6f defun.ztree-diff-node-is-directo
a260 72 79 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 4e ry.(node)..."Determines.if.the.N
a280 4f 44 45 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 ODE.is.a.directory."...(let.((le
a2a0 66 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f ft.(ztree-diff-node-left-path.no
a2c0 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d de)).........(right.(ztree-diff-
a2e0 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 20 node-right-path.node))).....(if.
a300 6c 65 66 74 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6c left.........(file-directory-p.l
a320 65 66 74 29 0a 20 20 20 20 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 72 69 67 eft).......(file-directory-p.rig
a340 68 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 ht))))..(defun.ztree-diff-node-s
a360 69 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 69 64 65 ide.(node)..."Determine.the.side
a380 20 74 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 65 73 65 6e 74 20 66 6f 72 20 4e .there.the.file.is.present.for.N
a3a0 4f 44 45 2e 0a 52 65 74 75 72 6e 20 42 4f 54 48 20 69 66 20 74 68 65 20 66 69 6c 65 20 70 72 65 ODE..Return.BOTH.if.the.file.pre
a3c0 73 65 6e 74 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 3b 0a 4c 45 46 54 20 69 66 20 6f 6e 6c 79 sent.on.both.sides;.LEFT.if.only
a3e0 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 0a 52 49 47 48 54 20 69 66 20 6f .on.the.left.side.and.RIGHT.if.o
a400 6e 6c 79 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 73 69 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 nly.on.the.right.side."...(let.(
a420 28 6c 65 66 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 (left.(ztree-diff-node-left-path
a440 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 .node)).........(right.(ztree-di
a460 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 ff-node-right-path.node))).....(
a480 69 66 20 28 61 6e 64 20 6c 65 66 74 20 72 69 67 68 74 29 20 27 62 6f 74 68 0a 20 20 20 20 20 20 if.(and.left.right).'both.......
a4a0 28 69 66 20 6c 65 66 74 20 27 6c 65 66 74 20 27 72 69 67 68 74 29 29 29 29 0a 0a 0a 28 64 65 66 (if.left.'left.'right))))...(def
a4c0 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 6e 6f 64 65 31 20 un.ztree-diff-node-equal.(node1.
a4e0 6e 6f 64 65 32 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 73 20 69 66 20 4e 4f 44 45 31 20 61 6e node2)..."Determines.if.NODE1.an
a500 64 20 4e 4f 44 45 32 20 61 72 65 20 65 71 75 61 6c 2e 22 0a 20 20 28 61 6e 64 20 28 73 74 72 69 d.NODE2.are.equal."...(and.(stri
a520 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d ng-equal.(ztree-diff-node-short-
a540 6e 61 6d 65 20 6e 6f 64 65 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.node1).....................
a560 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 .(ztree-diff-node-short-name.nod
a580 65 32 29 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 e2))........(string-equal.(ztree
a5a0 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 31 29 0a 20 20 20 20 -diff-node-left-path.node1).....
a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 .................(ztree-diff-nod
a5e0 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 32 29 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 e-left-path.node2))........(stri
a600 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d ng-equal.(ztree-diff-node-right-
a620 70 61 74 68 20 6e 6f 64 65 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path.node1).....................
a640 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 .(ztree-diff-node-right-path.nod
a660 65 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d e1))))..(defun.ztree-diff-model-
a680 66 69 6c 65 73 2d 65 71 75 61 6c 20 28 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 22 43 6f 6d files-equal.(file1.file2)..."Com
a6a0 70 61 72 65 20 66 69 6c 65 73 20 46 49 4c 45 31 20 61 6e 64 20 46 49 4c 45 32 20 75 73 69 6e 67 pare.files.FILE1.and.FILE2.using
a6c0 20 65 78 74 65 72 6e 61 6c 20 64 69 66 66 2e 0a 52 65 74 75 72 6e 73 20 74 20 69 66 20 65 71 75 .external.diff..Returns.t.if.equ
a6e0 61 6c 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d al."...(unless.(ztree-same-host-
a700 70 20 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 70 61 p.file1.file2).....(error."Compa
a720 72 65 64 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 74 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f red.files.are.not.on.the.same.ho
a740 73 74 22 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 31 2d 75 6e 74 72 61 6d 70 69 66 69 st"))...(let*.((file1-untrampifi
a760 65 64 20 28 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 6c 65 6e 61 6d 65 20 66 69 ed.(ztree-untrampify-filename.fi
a780 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 2d 75 6e 74 72 61 6d 70 69 66 69 le1))..........(file2-untrampifi
a7a0 65 64 20 28 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 6c 65 6e 61 6d 65 20 66 69 ed.(ztree-untrampify-filename.fi
a7c0 6c 65 32 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 le2))).....(if.(or..........(and
a7e0 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 2d 66 69 6c 65 2d 73 69 7a 65 0a 20 .ztree-diff-consider-file-size..
a800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 28 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 .............(/=.(nth.7.(file-at
a820 74 72 69 62 75 74 65 73 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 tributes.file1))...............(
a840 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 32 29 29 29 29 nth.7.(file-attributes.file2))))
a860 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 ..........(and.ztree-diff-consid
a880 65 72 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 er-file-permissions.............
a8a0 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 6e 74 68 20 38 20 28 66 69 6c ..(not.(string-equal.(nth.8.(fil
a8c0 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 e-attributes.file1))............
a8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 38 20 28 66 69 ......................(nth.8.(fi
a900 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 32 29 29 29 29 29 0a 20 20 20 20 20 20 20 le-attributes.file2)))))........
a920 20 20 28 2f 3d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 70 72 ..(/=.0..............(apply.#'pr
a940 6f 63 65 73 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 ocess-file.....................d
a960 69 66 66 2d 63 6f 6d 6d 61 6e 64 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 iff-command.nil.nil.nil.........
a980 20 20 20 20 20 20 20 20 20 20 20 20 60 28 22 2d 71 22 20 2c 40 7a 74 72 65 65 2d 64 69 66 66 2d ............`("-q".,@ztree-diff-
a9a0 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 additional-options..............
a9c0 20 20 20 20 20 20 20 20 20 2c 66 69 6c 65 31 2d 75 6e 74 72 61 6d 70 69 66 69 65 64 0a 20 20 20 .........,file1-untrampified....
a9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 66 69 6c 65 32 2d 75 6e 74 72 61 6d ...................,file2-untram
aa00 70 69 66 69 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 27 64 69 66 66 0a 20 20 20 20 20 20 27 pified)))).........'diff.......'
aa20 73 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d same)))..(defun.ztree-directory-
aa40 66 69 6c 65 73 20 28 64 69 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f files.(dir)..."Return.the.list.o
aa60 66 20 66 75 6c 6c 20 70 61 74 68 73 20 6f 66 20 66 69 6c 65 73 20 69 6e 20 61 20 64 69 72 65 63 f.full.paths.of.files.in.a.direc
aa80 74 6f 72 79 20 44 49 52 2e 0a 46 69 6c 74 65 72 73 20 6f 75 74 20 2e 20 61 6e 64 20 2e 2e 22 0a tory.DIR..Filters.out...and...".
aaa0 20 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 20 23 27 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 ..(ztree-filter.#'(lambda.(file)
aac0 20 28 6c 65 74 20 28 28 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d .(let.((simple-name.(ztree-file-
aae0 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 short-name.file)))..............
ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6f 72 20 28 ......................(not.(or.(
ab20 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 22 2e 22 29 0a 20 20 string-equal.simple-name.".")...
ab40 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 ................................
ab60 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 73 69 6d 70 6c 65 2d 6e ..........(string-equal.simple-n
ab80 61 6d 65 20 22 2e 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 ame.".."))))).................(d
aba0 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 20 27 66 75 6c 6c 29 29 29 0a 0a 28 64 65 irectory-files.dir.'full)))..(de
abc0 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 72 74 69 61 6c 2d 72 65 73 fun.ztree-diff-model-partial-res
abe0 63 61 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 73 63 61 6e 20 74 68 65 20 4e 4f 44 45 2e 0a 54 can.(node)..."Rescan.the.NODE..T
ac00 68 65 20 6e 6f 64 65 20 69 73 20 61 20 65 69 74 68 65 72 20 61 20 66 69 6c 65 20 6f 72 20 64 69 he.node.is.a.either.a.file.or.di
ac20 72 65 63 74 6f 72 79 20 77 69 74 68 20 62 6f 74 68 0a 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 rectory.with.both.left.and.right
ac40 20 70 61 72 74 73 20 65 78 69 73 74 69 6e 67 2e 22 0a 20 20 3b 3b 20 69 66 20 61 20 64 69 72 65 .parts.existing."...;;.if.a.dire
ac60 63 74 6f 72 79 20 2d 20 72 65 63 72 65 61 74 65 0a 20 20 28 69 66 20 28 7a 74 72 65 65 2d 64 69 ctory.-.recreate...(if.(ztree-di
ac80 66 66 2d 6e 6f 64 65 2d 69 73 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 0a 20 20 20 20 20 ff-node-is-directory.node)......
aca0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 2d 77 69 74 68 2d .(ztree-diff-node-recreate-with-
acc0 70 72 6f 67 72 65 73 73 20 6e 6f 64 65 29 0a 20 20 20 20 3b 3b 20 69 66 20 61 20 66 69 6c 65 2c progress.node).....;;.if.a.file,
ace0 20 63 68 61 6e 67 65 20 61 20 73 74 61 74 75 73 0a 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 .change.a.status.....(setf.(ztre
ad00 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 e-diff-node-different.node).....
ad20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ......(if.(or.(ztree-diff-model-
ad40 69 67 6e 6f 72 65 2d 70 20 6e 6f 64 65 29 20 3b 20 69 66 20 73 68 6f 75 6c 64 20 62 65 20 69 67 ignore-p.node).;.if.should.be.ig
ad60 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 nored...................(eql.(zt
ad80 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 ree-diff-node-different.node).'i
ada0 67 6e 6f 72 65 29 20 3b 20 77 61 73 20 69 67 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 gnore).;.was.ignored............
adc0 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 .......(eql.(ztree-diff-node-dif
ade0 66 65 72 65 6e 74 20 3b 20 6f 72 20 70 61 72 65 6e 74 20 77 61 73 20 69 67 6e 6f 72 65 64 0a 20 ferent.;.or.parent.was.ignored..
ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 .......................(ztree-di
ae20 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 ff-node-parent.node))...........
ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 .............'ignore))..........
ae60 20 20 20 20 20 27 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d .....'ignore.............(ztree-
ae80 64 69 66 66 2d 6d 6f 64 65 6c 2d 66 69 6c 65 73 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 diff-model-files-equal.(ztree-di
aea0 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 ff-node-left-path.node).........
aec0 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 ................................
aee0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f ..(ztree-diff-node-right-path.no
af00 64 65 29 29 29 29 29 0a 20 20 3b 3b 20 75 70 64 61 74 65 20 61 6c 6c 20 70 61 72 65 6e 74 73 20 de)))))...;;.update.all.parents.
af20 73 74 61 74 75 73 65 73 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 statuses...(ztree-diff-node-upda
af40 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 29 0a 0a 28 64 65 66 te-all-parents-diff.node))..(def
af60 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 75 62 74 72 65 65 20 28 70 61 72 un.ztree-diff-model-subtree.(par
af80 65 6e 74 20 70 61 74 68 20 73 69 64 65 20 64 69 66 66 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 ent.path.side.diff)..."Create.a.
afa0 73 75 62 74 72 65 65 20 77 69 74 68 20 67 69 76 65 6e 20 50 41 52 45 4e 54 20 66 6f 72 20 74 68 subtree.with.given.PARENT.for.th
afc0 65 20 67 69 76 65 6e 20 50 41 54 48 2e 0a 41 72 67 75 6d 65 6e 74 20 53 49 44 45 20 65 69 74 68 e.given.PATH..Argument.SIDE.eith
afe0 65 72 20 60 6c 65 66 74 27 20 6f 72 20 60 72 69 67 68 74 27 20 73 69 64 65 2e 0a 41 72 67 75 6d er.`left'.or.`right'.side..Argum
b000 65 6e 74 20 44 49 46 46 20 64 69 66 66 65 72 65 6e 74 20 73 74 61 74 75 73 20 74 6f 20 62 65 20 ent.DIFF.different.status.to.be.
b020 61 73 73 69 67 6e 65 64 20 74 6f 20 61 6c 6c 20 63 72 65 61 74 65 64 20 6e 6f 64 65 73 2e 22 0a assigned.to.all.created.nodes.".
b040 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d ..(let.((files.(ztree-directory-
b060 66 69 6c 65 73 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 6e 69 6c files.path)).........(result.nil
b080 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 69 6c 65 20 66 69 6c 65 73 29 0a 20 20 20 20 )).....(dolist.(file.files).....
b0a0 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 ..(if.(file-directory-p.file)...
b0c0 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 ........(let*.((node.(ztree-diff
b0e0 2d 6e 6f 64 65 2d 63 72 65 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-create....................
b100 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....parent.....................
b120 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 66 69 6c 65 29 0a ....(when.(eq.side.'left).file).
b140 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 77 68 65 6e 20 28 65 ........................(when.(e
b160 71 20 73 69 64 65 20 27 72 69 67 68 74 29 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 q.side.'right).file)............
b180 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 66 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .............diff)).............
b1a0 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c .....(children.(ztree-diff-model
b1c0 2d 73 75 62 74 72 65 65 20 6e 6f 64 65 20 66 69 6c 65 20 73 69 64 65 20 64 69 66 66 29 29 29 0a -subtree.node.file.side.diff))).
b1e0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f ............(setf.(ztree-diff-no
b200 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 de-children.node).children).....
b220 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 6f 64 65 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 ........(push.node.result)).....
b240 20 20 20 20 28 70 75 73 68 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 ....(push.(ztree-diff-node-creat
b260 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 e................parent.........
b280 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 66 69 6c .......(when.(eq.side.'left).fil
b2a0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 e)................(when.(eq.side
b2c0 20 27 72 69 67 68 74 29 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 .'right).file)................di
b2e0 66 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 ff)...............result))).....
b300 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 result))..(defun.ztree-diff-node
b320 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 28 6e 6f 64 65 -update-diff-from-children.(node
b340 29 0a 20 20 22 53 65 74 20 74 68 65 20 64 69 66 66 20 73 74 61 74 75 73 20 66 6f 72 20 74 68 65 )..."Set.the.diff.status.for.the
b360 20 4e 4f 44 45 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 63 68 69 6c 64 72 65 6e 2e 22 0a 20 20 .NODE.based.on.its.children."...
b380 28 75 6e 6c 65 73 73 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 (unless.(eql.(ztree-diff-node-di
b3a0 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 28 6c 65 74 20 fferent.node).'ignore).....(let.
b3c0 28 28 64 69 66 66 20 28 63 6c 2d 72 65 64 75 63 65 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d ((diff.(cl-reduce.#'ztree-diff-m
b3e0 6f 64 65 6c 2d 75 70 64 61 74 65 2d 64 69 66 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 odel-update-diff................
b400 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 ............(ztree-diff-node-chi
b420 6c 64 72 65 6e 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ldren.node).....................
b440 20 20 20 20 20 20 20 3a 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 20 27 73 61 6d 65 0a 20 20 20 20 .......:initial-value.'same.....
b460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 27 7a 74 72 .......................:key.'ztr
b480 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 ee-diff-node-different))).......
b4a0 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 (setf.(ztree-diff-node-different
b4c0 20 6e 6f 64 65 29 20 64 69 66 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 .node).diff))))..(defun.ztree-di
b4e0 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 ff-node-update-all-parents-diff.
b500 28 6e 6f 64 65 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 75 70 64 61 74 65 20 61 6c 6c (node)..."Recursively.update.all
b520 20 70 61 72 65 6e 74 73 20 64 69 66 66 20 73 74 61 74 75 73 20 66 6f 72 20 74 68 65 20 4e 4f 44 .parents.diff.status.for.the.NOD
b540 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 E."...(let.((parent.node)).....(
b560 77 68 69 6c 65 20 28 73 65 74 71 20 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e while.(setq.parent.(ztree-diff-n
b580 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 ode-parent.parent)).......(ztree
b5a0 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 63 68 69 6c -diff-node-update-diff-from-chil
b5c0 64 72 65 6e 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 dren.parent))))...(defun.ztree-d
b5e0 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 64 69 66 66 20 28 6f 6c 64 20 6e 65 77 29 0a iff-model-update-diff.(old.new).
b600 20 20 22 47 65 74 20 74 68 65 20 64 69 66 66 20 73 74 61 74 75 73 20 64 65 70 65 6e 64 69 6e 67 .."Get.the.diff.status.depending
b620 20 69 66 20 4f 4c 44 20 6f 72 20 4e 45 57 20 69 73 20 6e 6f 74 20 6e 69 6c 2e 0a 49 66 20 74 68 .if.OLD.or.NEW.is.not.nil..If.th
b640 65 20 4f 4c 44 20 69 73 20 60 69 67 6e 6f 72 65 27 2c 20 64 6f 20 6e 6f 74 20 63 68 61 6e 67 65 e.OLD.is.`ignore',.do.not.change
b660 20 61 6e 79 74 68 69 6e 67 22 0a 20 20 3b 3b 20 69 66 20 74 68 65 20 6f 6c 64 20 77 68 6f 6c 65 .anything"...;;.if.the.old.whole
b680 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 67 6e 6f 72 65 64 2c 20 69 67 6e 6f 72 65 20 63 68 .directory.is.ignored,.ignore.ch
b6a0 69 6c 64 72 65 6e 27 73 20 73 74 61 74 75 73 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 6c 20 6f 6c ildren's.status...(cond.((eql.ol
b6c0 64 20 27 69 67 6e 6f 72 65 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 d.'ignore).'ignore).........;;.i
b6e0 66 20 74 68 65 20 6e 65 77 20 73 74 61 74 75 73 20 69 73 20 69 67 6e 6f 72 65 64 2c 20 75 73 65 f.the.new.status.is.ignored,.use
b700 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 28 28 65 71 6c 20 6e 65 77 20 27 69 67 6e 6f 72 65 29 20 .old.........((eql.new.'ignore).
b720 6f 6c 64 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 6f 6c 64 20 6f 72 20 6e 65 old).........;;.if.the.old.or.ne
b740 77 20 73 74 61 74 75 73 20 69 73 20 64 69 66 66 65 72 65 6e 74 2c 20 72 65 74 75 72 6e 20 64 69 w.status.is.different,.return.di
b760 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 65 71 6c 20 6f 6c 64 20 27 64 fferent.........((or.(eql.old.'d
b780 69 66 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 6e 65 77 20 27 64 69 66 66 iff)..............(eql.new.'diff
b7a0 29 29 20 27 64 69 66 66 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 6e 65 77 20 69 73 20 27 )).'diff).........;;.if.new.is.'
b7c0 6e 65 77 2c 20 72 65 74 75 72 6e 20 6e 65 77 0a 20 20 20 20 20 20 20 20 28 28 65 71 6c 20 6e 65 new,.return.new.........((eql.ne
b7e0 77 20 27 6e 65 77 29 20 27 6e 65 77 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 6f 74 68 w.'new).'new).........;;.all.oth
b800 65 72 20 63 61 73 65 73 20 72 65 74 75 72 6e 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 28 74 20 6f er.cases.return.old.........(t.o
b820 6c 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 ld)))..(defun.ztree-diff-node-up
b840 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 22 date-diff-from-parent.(node)..."
b860 52 65 63 75 72 73 69 76 65 6c 79 20 75 70 64 61 74 65 20 64 69 66 66 20 73 74 61 74 75 73 20 6f Recursively.update.diff.status.o
b880 66 20 61 6c 6c 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 4e 4f 44 45 2e 0a 54 68 69 73 20 66 75 6e f.all.children.of.NODE..This.fun
b8a0 63 74 69 6f 6e 20 77 69 6c 6c 20 74 72 61 76 65 72 73 65 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 ction.will.traverse.through.all.
b8c0 63 68 69 6c 64 72 65 6e 20 72 65 63 75 72 73 69 76 65 6c 79 0a 73 65 74 74 69 6e 67 20 73 74 61 children.recursively.setting.sta
b8e0 74 75 73 20 66 72 6f 6d 20 74 68 65 20 4e 4f 44 45 2c 20 75 6e 6c 65 73 73 20 74 68 65 79 20 68 tus.from.the.NODE,.unless.they.h
b900 61 76 65 20 61 6e 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 22 0a 20 20 28 6c 65 74 20 28 28 73 ave.an.ignore.status"...(let.((s
b920 74 61 74 75 73 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 tatus.(ztree-diff-node-different
b940 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 .node)).........(children.(ztree
b960 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 -diff-node-children.node))).....
b980 3b 3b 20 69 66 20 74 68 65 20 70 61 72 65 6e 74 20 68 61 73 20 69 67 6e 6f 72 65 20 73 74 61 74 ;;.if.the.parent.has.ignore.stat
b9a0 75 73 2c 20 66 6f 72 63 65 20 61 6c 6c 20 6b 69 64 73 20 74 68 69 73 20 73 74 61 74 75 73 0a 20 us,.force.all.kids.this.status..
b9c0 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 6f 6e 6c 79 20 75 70 64 61 74 65 20 73 74 61 74 ...;;.otherwise.only.update.stat
b9e0 75 73 20 77 68 65 6e 20 74 68 65 20 63 68 69 6c 64 20 73 74 61 74 75 73 20 69 73 20 6e 6f 74 20 us.when.the.child.status.is.not.
ba00 69 67 6e 6f 72 65 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 63 68 69 6c 64 29 ignore.....(mapc.(lambda.(child)
ba20 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 6c 20 73 74 61 74 .............(when.(or.(eql.stat
ba40 75 73 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 us.'ignore).....................
ba60 20 20 28 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f ..(not........................(o
ba80 72 20 28 65 71 6c 20 73 74 61 74 75 73 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 r.(eql.status.'ignore)..........
baa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 ..................(eql.(ztree-di
bac0 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 27 69 67 6e 6f 72 65 ff-node-different.child).'ignore
bae0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d ))))...............(setf.(ztree-
bb00 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 73 74 61 74 75 diff-node-different.child).statu
bb20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 s)...............(ztree-diff-nod
bb40 65 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 63 68 69 6c 64 29 e-update-diff-from-parent.child)
bb60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 0a 0a 28 64 )).............children)))....(d
bb80 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 66 69 6e 64 2d 69 6e 2d 66 69 efun.ztree-diff-model-find-in-fi
bba0 6c 65 73 20 28 6c 69 73 74 20 73 68 6f 72 74 6e 61 6d 65 20 69 73 2d 64 69 72 29 0a 20 20 22 46 les.(list.shortname.is-dir)..."F
bbc0 69 6e 64 20 69 6e 20 4c 49 53 54 20 6f 66 20 66 69 6c 65 73 20 74 68 65 20 66 69 6c 65 20 77 69 ind.in.LIST.of.files.the.file.wi
bbe0 74 68 20 6e 61 6d 65 20 53 48 4f 52 54 4e 41 4d 45 2e 0a 49 66 20 49 53 2d 44 49 52 20 73 65 61 th.name.SHORTNAME..If.IS-DIR.sea
bc00 72 63 68 69 6e 67 20 66 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 3b 20 61 73 73 75 6d 65 20 66 rching.for.directories;.assume.f
bc20 69 6c 65 73 20 6f 74 68 65 72 77 69 73 65 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 6c 69 iles.otherwise"...(ztree-find.li
bc40 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 61 6e st...............(lambda.(x).(an
bc60 64 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 d.(string-equal.(ztree-file-shor
bc80 74 2d 6e 61 6d 65 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-name.x).......................
bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 6e 61 6d 65 .......................shortname
bcc0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
bce0 20 28 65 71 20 69 73 2d 64 69 72 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 78 29 .(eq.is-dir.(file-directory-p.x)
bd00 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d )))))...(defun.ztree-diff-model-
bd20 73 68 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e should-ignore.(node)..."Determin
bd40 65 20 69 66 20 74 68 65 20 4e 4f 44 45 20 61 6e 64 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 73 e.if.the.NODE.and.its.children.s
bd60 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 49 66 20 6e 6f 20 70 61 72 65 6e 74 20 2d hould.be.ignored..If.no.parent.-
bd80 20 6e 65 76 65 72 20 69 67 6e 6f 72 65 3b 0a 69 66 20 69 6e 20 69 67 6e 6f 72 65 20 6c 69 73 74 .never.ignore;.if.in.ignore.list
bda0 20 2d 20 69 67 6e 6f 72 65 0a 69 66 20 70 61 72 65 6e 74 20 68 61 73 20 69 67 6e 6f 72 65 64 20 .-.ignore.if.parent.has.ignored.
bdc0 73 74 61 74 75 73 20 2d 20 69 67 6e 6f 72 65 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 status.-.ignore"...(let.((parent
bde0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 .(ztree-diff-node-parent.node)))
be00 0a 20 20 20 20 28 61 6e 64 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 .....(and.parent..........(or.(e
be20 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 70 61 ql.(ztree-diff-node-different.pa
be40 72 65 6e 74 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 rent).'ignore)..............(ztr
be60 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 70 20 6e 6f 64 65 29 29 29 29 29 ee-diff-model-ignore-p.node)))))
be80 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 ..(defun.ztree-diff-node-recreat
bea0 65 2d 77 69 74 68 2d 70 72 6f 67 72 65 73 73 20 28 6e 6f 64 65 29 0a 20 20 22 49 6e 69 74 69 61 e-with-progress.(node)..."Initia
bec0 74 65 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 69 74 68 20 61 20 70 72 6f te.update.of.the.NODE.with.a.pro
bee0 67 72 65 73 73 20 70 72 69 6e 74 6f 75 74 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 65 73 gress.printout"...(let.((progres
bf00 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 70 72 6f 67 72 65 s-reporter..........(make-progre
bf20 73 73 2d 72 65 70 6f 72 74 65 72 20 28 63 6f 6e 63 61 74 20 22 43 6f 6d 70 61 72 69 6e 67 20 22 ss-reporter.(concat."Comparing."
bf40 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 .(ztree-diff-node-left-path.node
bf60 29 20 22 20 61 6e 64 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 ).".and.".(ztree-diff-node-right
bf80 2d 70 61 74 68 20 6e 6f 64 65 29 20 22 20 2e 2e 2e 22 29 29 29 29 0a 20 20 20 20 28 7a 74 72 65 -path.node)."....")))).....(ztre
bfa0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 6e 6f 64 65 20 70 72 6f 67 72 65 e-diff-node-recreate.node.progre
bfc0 73 73 2d 72 65 70 6f 72 74 65 72 29 0a 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 ss-reporter).....(progress-repor
bfe0 74 65 72 2d 64 6f 6e 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 29 0a 0a 28 ter-done.progress-reporter)))..(
c000 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 28 defun.ztree-diff-node-recreate.(
c020 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 70 6f 72 74 65 72 29 0a 20 20 22 54 72 61 76 node.&optional.reporter)..."Trav
c040 65 72 73 65 20 32 20 70 61 74 68 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 4e 4f 44 45 erse.2.paths.defined.in.the.NODE
c060 20 75 70 64 61 74 69 6e 67 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 61 6e 64 20 73 74 61 74 75 .updating.its.children.and.statu
c080 73 2e 0a 57 68 65 6e 20 52 45 50 4f 52 54 45 52 20 70 72 6f 76 69 64 65 64 20 75 70 64 61 74 65 s..When.REPORTER.provided.update
c0a0 20 74 68 65 20 70 72 6f 67 72 65 73 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 73 74 31 20 .the.progress."...(let*.((list1.
c0c0 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 (ztree-directory-files.(ztree-di
c0e0 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 20 3b 3b 20 6c 65 66 ff-node-left-path.node))).;;.lef
c100 74 20 6c 69 73 74 20 6f 66 20 6c 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 32 20 t.list.of.liles..........(list2.
c120 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 (ztree-directory-files.(ztree-di
c140 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 20 3b 3b 20 72 69 ff-node-right-path.node))).;;.ri
c160 67 68 74 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 28 73 68 6f 75 ght.list.of.files..........(shou
c180 6c 64 2d 69 67 6e 6f 72 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 6f 75 ld-ignore.(ztree-diff-model-shou
c1a0 6c 64 2d 69 67 6e 6f 72 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 61 ld-ignore.node))..........;;.sta
c1c0 74 75 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73 73 69 67 6e 65 64 20 74 6f 20 63 68 tus.automatically.assigned.to.ch
c1e0 69 6c 64 72 65 6e 20 6f 66 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 ildren.of.the.node..........(chi
c200 6c 64 72 65 6e 2d 73 74 61 74 75 73 20 28 69 66 20 73 68 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 27 ldren-status.(if.should-ignore.'
c220 69 67 6e 6f 72 65 20 27 6e 65 77 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e ignore.'new))..........(children
c240 20 6e 69 6c 29 29 20 20 20 20 3b 3b 20 6c 69 73 74 20 6f 66 20 63 68 69 6c 64 72 65 6e 0a 20 20 .nil))....;;.list.of.children...
c260 20 20 3b 3b 20 75 70 64 61 74 65 20 77 61 69 74 69 6e 67 20 73 74 61 74 75 73 0a 20 20 20 20 28 ..;;.update.waiting.status.....(
c280 77 68 65 6e 20 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 when.reporter.......(progress-re
c2a0 70 6f 72 74 65 72 2d 75 70 64 61 74 65 20 72 65 70 6f 72 74 65 72 29 29 0a 20 20 20 20 3b 3b 20 porter-update.reporter)).....;;.
c2c0 75 70 64 61 74 65 20 6e 6f 64 65 20 73 74 61 74 75 73 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 update.node.status.ignore.status
c2e0 20 65 69 74 68 65 72 20 69 6e 68 65 72 65 74 65 64 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 3b .either.inhereted.from.the.....;
c300 3b 20 70 61 72 65 6e 74 20 6f 72 20 74 68 65 20 6f 77 6e 0a 20 20 20 20 28 77 68 65 6e 20 73 68 ;.parent.or.the.own.....(when.sh
c320 6f 75 6c 64 2d 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 ould-ignore.......(setf.(ztree-d
c340 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 iff-node-different.node).'ignore
c360 29 29 0a 20 20 20 20 3b 3b 20 66 69 72 73 74 20 2d 20 61 64 64 69 6e 67 20 61 6c 6c 20 65 6e 74 )).....;;.first.-.adding.all.ent
c380 72 69 65 73 20 66 72 6f 6d 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 28 64 6f ries.from.left.directory.....(do
c3a0 6c 69 73 74 20 28 66 69 6c 65 31 20 6c 69 73 74 31 29 0a 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 list.(file1.list1).......;;.for.
c3c0 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 64 69 72 65 63 74 6f every.entry.in.the.first.directo
c3e0 72 79 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 20 63 72 65 61 74 69 6e 67 20 74 68 65 20 ry.......;;.we.are.creating.the.
c400 6e 6f 64 65 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 28 node.......(let*.((simple-name.(
c420 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 31 29 29 0a 20 20 ztree-file-short-name.file1))...
c440 20 20 20 20 20 20 20 20 20 20 20 28 69 73 64 69 72 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 ...........(isdir.(file-director
c460 79 2d 70 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 64 y-p.file1))..............;;.find
c480 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 .if.the.file.is.in.the.second.di
c4a0 72 65 63 74 6f 72 79 20 61 6e 64 20 74 68 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 rectory.and.the.type............
c4c0 20 20 3b 3b 20 69 73 20 74 68 65 20 73 61 6d 65 20 2d 20 69 2e 65 2e 20 62 6f 74 68 20 61 72 65 ..;;.is.the.same.-.i.e..both.are
c4e0 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 72 20 62 6f 74 68 20 61 72 65 20 66 69 6c 65 73 0a 20 .directories.or.both.are.files..
c500 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d ............(file2.(ztree-diff-m
c520 6f 64 65 6c 2d 66 69 6e 64 2d 69 6e 2d 66 69 6c 65 73 20 6c 69 73 74 32 20 73 69 6d 70 6c 65 2d odel-find-in-files.list2.simple-
c540 6e 61 6d 65 20 69 73 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 72 65 name.isdir))..............;;.cre
c560 61 74 65 20 61 20 63 68 69 6c 64 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 20 69 73 ate.a.child..The.current.node.is
c580 20 61 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 77 20 62 79 .a.parent..............;;.new.by
c5a0 20 64 65 66 61 75 6c 74 20 2d 20 77 69 6c 6c 20 62 65 20 6f 76 65 72 72 69 64 65 6e 20 62 65 6c .default.-.will.be.overriden.bel
c5c0 6f 77 20 69 66 20 6e 65 63 65 73 73 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 ow.if.necessary..............(ch
c5e0 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f ild...............(ztree-diff-no
c600 64 65 2d 63 72 65 61 74 65 20 6e 6f 64 65 20 66 69 6c 65 31 20 66 69 6c 65 32 20 63 68 69 6c 64 de-create.node.file1.file2.child
c620 72 65 6e 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 70 64 61 74 65 20 ren-status))).........;;.update.
c640 63 68 69 6c 64 20 6f 77 6e 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 child.own.ignore.status.........
c660 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 6f 75 6c 64 2d 69 (when.(ztree-diff-model-should-i
c680 67 6e 6f 72 65 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 gnore.child)...........(setf.(zt
c6a0 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 27 ree-diff-node-different.child).'
c6c0 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 65 78 69 73 74 73 20 6f 6e ignore)).........;;.if.exists.on
c6e0 20 61 20 72 69 67 68 74 20 73 69 64 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 .a.right.side.with.the.same.type
c700 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 ,.........;;.remove.from.the.lis
c720 74 20 6f 66 20 66 69 6c 65 73 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 73 69 64 65 0a 20 20 20 t.of.files.on.the.right.side....
c740 20 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 32 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 .....(when.file2...........(setf
c760 20 6c 69 73 74 32 20 28 63 6c 2d 64 65 6c 65 74 65 20 66 69 6c 65 32 20 6c 69 73 74 32 20 3a 74 .list2.(cl-delete.file2.list2.:t
c780 65 73 74 20 23 27 73 74 72 69 6e 67 2d 65 71 75 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 est.#'string-equal))).........(c
c7a0 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 65 78 69 73 74 20 6a 75 73 74 20 ond..........;;.when.exist.just.
c7c0 6f 6e 20 61 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 on.a.left.side.and.is.a.director
c7e0 79 2c 20 61 64 64 20 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 69 73 64 69 72 20 y,.add.all..........((and.isdir.
c800 28 6e 6f 74 20 66 69 6c 65 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 (not.file2))...........(setf.(zt
c820 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 63 68 69 6c 64 29 0a 20 20 ree-diff-node-children.child)...
c840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ..............(ztree-diff-model-
c860 73 75 62 74 72 65 65 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 subtree.child...................
c880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 31 0a 20 20 ........................file1...
c8a0 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 ................................
c8c0 20 20 20 20 20 20 20 20 27 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........'left...................
c8e0 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 7a 74 72 65 65 2d 64 ........................(ztree-d
c900 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 29 29 29 0a 20 20 20 iff-node-different.child))))....
c920 20 20 20 20 20 20 3b 3b 20 69 66 20 31 29 20 65 78 69 73 74 73 20 6f 6e 20 62 6f 74 68 20 73 69 ......;;.if.1).exists.on.both.si
c940 64 65 73 20 61 6e 64 20 32 29 20 69 74 20 69 73 20 61 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 des.and.2).it.is.a.file.........
c960 20 3b 3b 20 61 6e 64 20 33 29 20 6e 6f 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 0a 20 20 20 20 .;;.and.3).not.ignored.file.....
c980 20 20 20 20 20 28 28 61 6e 64 20 66 69 6c 65 32 20 28 6e 6f 74 20 69 73 64 69 72 29 20 28 6e 6f .....((and.file2.(not.isdir).(no
c9a0 74 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e t.(eql.(ztree-diff-node-differen
c9c0 74 20 63 68 69 6c 64 29 20 27 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 t.child).'ignore)))...........(s
c9e0 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 etf.(ztree-diff-node-different.c
ca00 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 hild).................(ztree-dif
ca20 66 2d 6d 6f 64 65 6c 2d 66 69 6c 65 73 2d 65 71 75 61 6c 20 66 69 6c 65 31 20 66 69 6c 65 32 29 f-model-files-equal.file1.file2)
ca40 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 65 78 69 73 74 73 20 6f 6e 20 62 6f 74 68 ))..........;;.if.exists.on.both
ca60 20 73 69 64 65 73 20 61 6e 64 20 69 74 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2c 20 74 72 .sides.and.it.is.a.directory,.tr
ca80 61 76 65 72 73 65 20 66 75 72 74 68 65 72 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 66 69 averse.further..........((and.fi
caa0 6c 65 32 20 69 73 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 le2.isdir)...........(ztree-diff
cac0 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 63 68 69 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 -node-recreate.child))).........
cae0 3b 3b 20 70 75 73 68 20 74 68 65 20 63 72 65 61 74 65 64 20 6e 6f 64 65 20 74 6f 20 74 68 65 20 ;;.push.the.created.node.to.the.
cb00 63 68 69 6c 64 72 65 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 68 69 6c children.list.........(push.chil
cb20 64 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 20 20 20 20 3b 3b 20 73 65 63 6f 6e 64 20 2d 20 61 64 d.children))).....;;.second.-.ad
cb40 64 69 6e 67 20 65 6e 74 72 69 65 73 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 20 64 69 72 65 ding.entries.from.the.right.dire
cb60 63 74 6f 72 79 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 72 65 73 65 6e 74 0a 20 20 20 20 ctory.which.are.not.present.....
cb80 3b 3b 20 69 6e 20 74 68 65 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 28 64 6f ;;.in.the.left.directory.....(do
cba0 6c 69 73 74 20 28 66 69 6c 65 32 20 6c 69 73 74 32 29 0a 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 list.(file2.list2).......;;.for.
cbc0 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 72 65 63 74 every.entry.in.the.second.direct
cbe0 6f 72 79 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 20 63 72 65 61 74 69 6e 67 20 74 68 65 ory.......;;.we.are.creating.the
cc00 20 6e 6f 64 65 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 69 73 64 69 72 20 28 66 69 6c 65 2d .node.......(let*.((isdir.(file-
cc20 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 directory-p.file2)).............
cc40 20 3b 3b 20 63 72 65 61 74 65 20 74 68 65 20 63 68 69 6c 64 20 74 6f 20 62 65 20 61 64 64 65 64 .;;.create.the.child.to.be.added
cc60 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 .to.the.results.list............
cc80 20 20 28 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 ..(child...............(ztree-di
cca0 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 20 6e 6f 64 65 20 6e 69 6c 20 66 69 6c 65 32 20 63 68 ff-node-create.node.nil.file2.ch
ccc0 69 6c 64 72 65 6e 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 70 64 61 ildren-status))).........;;.upda
cce0 74 65 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 63 68 69 6c 64 0a 20 20 te.ignore.status.of.the.child...
cd00 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 ......(when.(ztree-diff-model-sh
cd20 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 ould-ignore.child)...........(se
cd40 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 tf.(ztree-diff-node-different.ch
cd60 69 6c 64 29 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 69 ild).'ignore))...........;;.if.i
cd80 74 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 74 20 74 68 65 20 77 68 6f 6c 65 20 t.is.a.directory,.set.the.whole.
cda0 73 75 62 74 72 65 65 20 74 6f 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 28 77 68 65 subtree.to.children.........(whe
cdc0 6e 20 69 73 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 n.isdir...........(setf.(ztree-d
cde0 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 iff-node-children.child)........
ce00 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 75 62 74 72 .........(ztree-diff-model-subtr
ce20 65 65 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ee.child........................
ce40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 32 0a 20 20 20 20 20 20 20 ...................file2........
ce60 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 ................................
ce80 20 20 20 27 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...'right.......................
cea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ....................(ztree-diff-
cec0 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 29 29 29 0a 20 20 20 20 20 20 20 node-different.child))))........
cee0 20 3b 3b 20 70 75 73 68 20 74 68 65 20 63 72 65 61 74 65 64 20 6e 6f 64 65 20 74 6f 20 74 68 65 .;;.push.the.created.node.to.the
cf00 20 72 65 73 75 6c 74 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 68 69 6c 64 .result.list.........(push.child
cf20 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 73 65 74 20 .children))).....;;.finally.set.
cf40 64 69 66 66 65 72 65 6e 74 20 73 74 61 74 75 73 20 62 61 73 65 64 20 6f 6e 20 61 6c 6c 20 63 68 different.status.based.on.all.ch
cf60 69 6c 64 72 65 6e 0a 20 20 20 20 3b 3b 20 64 65 70 65 6e 64 69 6e 67 20 69 66 20 74 68 65 20 6e ildren.....;;.depending.if.the.n
cf80 6f 64 65 20 73 68 6f 75 6c 64 20 70 61 72 74 69 63 69 70 61 74 65 20 69 6e 20 6f 76 65 72 61 6c ode.should.participate.in.overal
cfa0 6c 20 72 65 73 75 6c 74 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 75 6c 64 2d 69 67 6e 6f l.result.....(unless.should-igno
cfc0 72 65 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d re.......(setf.(ztree-diff-node-
cfe0 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d different.node).............(cl-
d000 72 65 64 75 63 65 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 reduce.#'ztree-diff-model-update
d020 2d 64 69 66 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 -diff........................chi
d040 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e ldren........................:in
d060 69 74 69 61 6c 2d 76 61 6c 75 65 20 27 73 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 itial-value.'same...............
d080 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 27 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 .........:key.'ztree-diff-node-d
d0a0 69 66 66 65 72 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 61 6e 64 20 73 65 74 20 63 68 69 6c 64 ifferent))).....;;.and.set.child
d0c0 72 65 6e 0a 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 ren.....(setf.(ztree-diff-node-c
d0e0 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 0a 28 64 65 66 hildren.node).children)))...(def
d100 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 6e 6f 64 65 20 un.ztree-diff-model-update-node.
d120 28 6e 6f 64 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 (node)..."Refresh.the.NODE."...(
d140 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 2d 77 69 74 68 2d 70 72 ztree-diff-node-recreate-with-pr
d160 6f 67 72 65 73 73 20 6e 6f 64 65 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 ogress.node))....(defun.ztree-di
d180 66 66 2d 6d 6f 64 65 6c 2d 73 65 74 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 28 69 67 6e 6f 72 65 2d ff-model-set-ignore-fun.(ignore-
d1a0 70 29 0a 20 20 22 53 65 74 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 69 67 6e 6f 72 p)..."Set.the.buffer-local.ignor
d1c0 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 49 47 4e 4f 52 45 2d 50 2e 0a 49 67 6e 6f 72 65 20 66 e.function.to.IGNORE-P..Ignore.f
d1e0 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 unction.is.a.function.of.one.arg
d200 75 6d 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 29 0a 77 68 69 63 68 20 72 65 ument.(ztree-diff-node).which.re
d220 74 75 72 6e 73 20 74 20 69 66 20 74 68 65 20 6e 6f 64 65 20 73 68 6f 75 6c 64 20 62 65 20 69 67 turns.t.if.the.node.should.be.ig
d240 6e 6f 72 65 64 20 28 6c 69 6b 65 20 66 69 6c 65 73 20 73 74 61 72 74 69 6e 67 0a 77 69 74 68 20 nored.(like.files.starting.with.
d260 64 6f 74 20 65 74 63 29 2e 22 0a 20 20 28 73 65 74 66 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f dot.etc)."...(setf.ztree-diff-mo
d280 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 69 67 6e 6f 72 65 2d 70 29 29 0a 0a 0a 28 70 72 6f del-ignore-fun.ignore-p))...(pro
d2a0 76 69 64 65 20 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 29 0a 0a 3b 3b 3b 20 7a 74 72 vide.'ztree-diff-model)..;;;.ztr
d2c0 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 ee-diff-model.el.ends.here......
d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d400 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree-pkg.el........
d420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d460 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
d480 30 30 30 30 35 35 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 34 31 00 20 30 00 00 00 0000551.00000000000.013541..0...
d4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d500 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...................
d520 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...................
d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d600 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
d620 20 66 72 6f 6d 20 7a 74 72 65 65 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 .from.ztree.el..-*-.no-byte-comp
d640 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 7a 74 72 65 ile:.t.-*-.(define-package."ztre
d660 65 22 20 22 31 2e 30 2e 36 22 20 22 54 65 78 74 20 6d 6f 64 65 20 64 69 72 65 63 74 6f 72 79 20 e"."1.0.6"."Text.mode.directory.
d680 74 72 65 65 22 20 27 28 28 63 6c 2d 6c 69 62 20 22 30 22 29 29 20 3a 6b 65 79 77 6f 72 64 73 20 tree".'((cl-lib."0")).:keywords.
d6a0 27 28 22 66 69 6c 65 73 22 20 22 74 6f 6f 6c 73 22 29 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 '("files"."tools").:authors.'(("
d6c0 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 22 20 2e 20 22 61 6c 65 78 65 79 2e 76 Alexey.Veretennikov"..."alexey.v
d6e0 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 eretennikov@gmail.com")).:mainta
d700 69 6e 65 72 20 27 28 22 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 22 20 2e 20 22 iner.'("Alexey.Veretennikov"..."
d720 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20 alexey.veretennikov@gmail.com").
d740 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 :url."https://github.com/fourier
d760 2f 7a 74 72 65 65 22 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /ztree")........................
d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d800 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 72 2e 65 6c 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree-dir.el........
d820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d860 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
d880 30 30 31 37 33 30 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 34 31 00 20 30 00 00 00 0017303.00000000000.013541..0...
d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d900 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...................
d920 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...................
d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da00 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 72 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 64 ;;;.ztree-dir.el.---.Text.mode.d
da20 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e irectory.tree.-*-.lexical-bindin
da40 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 g:.t;.-*-..;;.Copyright.(C).2013
da60 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c -2021..Free.Software.Foundation,
da80 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 .Inc..;;.;;.Author:.Alexey.Veret
daa0 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 ennikov.<alexey.veretennikov@gma
dac0 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 il.com>.;;.;;.Created:.2013-11-1
dae0 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 1.;;.;;.Keywords:.files.tools.;;
db00 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 .URL:.https://github.com/fourier
db20 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 /ztree.;;.Compatibility:.GNU.Ema
db40 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 cs.24.x.;;.;;.This.file.is.part.
db60 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 of.GNU.Emacs..;;.;;.GNU.Emacs.is
db80 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 65 64 69 73 74 72 69 .free.software:.you.can.redistri
dba0 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 bute.it.and/or.modify.;;.it.unde
dbc0 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 r.the.terms.of.the.GNU.General.P
dbe0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b ublic.License.as.published.by.;;
dc00 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 .the.Free.Software.Foundation,.e
dc20 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 ither.version.3.of.the.License,.
dc40 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 or.;;.(at.your.option).any.later
dc60 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 64 69 73 .version..;;.;;.GNU.Emacs.is.dis
dc80 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
dca0 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 l.be.useful,.;;.but.WITHOUT.ANY.
dcc0 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 WARRANTY;.without.even.the.impli
dce0 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 ed.warranty.of.;;.MERCHANTABILIT
dd00 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 Y.or.FITNESS.FOR.A.PARTICULAR.PU
dd20 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 RPOSE...See.the.;;.GNU.General.P
dd40 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a ublic.License.for.more.details..
dd60 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 ;;.;;.You.should.have.received.a
dd80 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 .copy.of.the.GNU.General.Public.
dda0 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 2e License.;;.along.with.GNU.Emacs.
ddc0 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 ..If.not,.see.<http://www.gnu.or
dde0 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a g/licenses/>..;;.;;;.Commentary:
de00 0a 3b 3b 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 .;;.;;.Add.the.following.to.your
de20 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 3b 3b 0a 3b 3b 20 28 70 75 73 68 20 28 73 75 62 73 74 ..emacs.file:.;;.;;.(push.(subst
de40 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 61 74 68 2d 74 6f 2d 7a 74 72 65 itute-in-file-name."path-to-ztre
de60 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 61 74 68 29 0a 3b 3b 20 28 72 65 71 e-directory").load-path).;;.(req
de80 75 69 72 65 20 27 7a 74 72 65 65 2d 64 69 72 29 0a 3b 3b 0a 3b 3b 20 43 61 6c 6c 20 74 68 65 20 uire.'ztree-dir).;;.;;.Call.the.
dea0 7a 74 72 65 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 3b 3b 20 4d ztree.interactive.function:.;;.M
dec0 2d 78 20 7a 74 72 65 65 2d 64 69 72 0a 3b 3b 20 4f 70 65 6e 2f 63 6c 6f 73 65 20 64 69 72 65 63 -x.ztree-dir.;;.Open/close.direc
dee0 74 6f 72 69 65 73 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 45 6e 74 65 72 20 tories.with.double-click,.Enter.
df00 6f 72 20 53 70 61 63 65 20 6b 65 79 73 0a 3b 3b 0a 3b 3b 3b 20 49 73 73 75 65 73 3a 0a 3b 3b 0a or.Space.keys.;;.;;;.Issues:.;;.
df20 3b 3b 3b 20 54 4f 44 4f 3a 0a 3b 3b 20 31 29 20 41 64 64 20 73 6f 6d 65 20 66 69 6c 65 2d 68 61 ;;;.TODO:.;;.1).Add.some.file-ha
df40 6e 64 6c 69 6e 67 20 61 6e 64 20 6d 61 72 6b 69 6e 67 20 61 62 69 6c 69 74 69 65 73 0a 3b 3b 0a ndling.and.marking.abilities.;;.
df60 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 ;;;.Code:..(require.'ztree-util)
df80 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 28 72 65 71 75 69 72 65 20 .(require.'ztree-view).(require.
dfa0 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 'ztree-protocol).(eval-when-comp
dfc0 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 3b 3b 0a 3b 3b 20 43 6f ile.(require.'cl-lib))..;;.;;.Co
dfe0 6e 73 74 61 6e 74 73 0a 3b 3b 0a 0a 28 64 65 66 63 6f 6e 73 74 20 7a 74 72 65 65 2d 68 69 64 64 nstants.;;..(defconst.ztree-hidd
e000 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 20 22 5e 5c 5c 2e 22 0a 20 20 22 48 69 64 64 65 6e en-files-regexp."^\\."..."Hidden
e020 20 66 69 6c 65 73 20 72 65 67 65 78 70 2e 0a 42 79 20 64 65 66 61 75 6c 74 20 61 6c 6c 20 66 69 .files.regexp..By.default.all.fi
e040 6c 65 73 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 60 2e 27 2c 20 69 6e 63 6c lest.starting.with.dot.`.',.incl
e060 75 64 69 6e 67 20 2e 20 61 6e 64 20 2e 2e 22 29 0a 0a 3b 3b 0a 3b 3b 20 43 6f 6e 66 69 67 75 72 uding...and...")..;;.;;.Configur
e080 61 62 6c 65 20 76 61 72 69 61 62 6c 65 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 able.variables.;;..(defvar.ztree
e0a0 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 75 73 20 6e 69 6c 0a 20 20 22 44 65 66 69 6e 65 73 20 69 -dir-move-focus.nil..."Defines.i
e0c0 66 20 6d 6f 76 65 20 66 6f 63 75 73 20 74 6f 20 6f 70 65 6e 65 64 20 77 69 6e 64 6f 77 20 6f 6e f.move.focus.to.opened.window.on
e0e0 20 68 61 72 64 2d 61 63 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 28 52 45 54 55 52 4e 29 20 6f 6e .hard-action.command.(RETURN).on
e100 20 61 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d .a.file.")..(defvar-local.ztree-
e120 64 69 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 68 69 64 64 dir-filter-list.(list.ztree-hidd
e140 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 72 65 67 65 en-files-regexp)..."List.of.rege
e160 78 70 20 66 69 6c 65 20 6e 61 6d 65 73 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 2e 0a 42 79 20 xp.file.names.to.filter.out..By.
e180 64 65 66 61 75 6c 74 20 70 61 74 68 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 default.paths.starting.with.dot.
e1a0 28 6c 69 6b 65 20 2e 67 69 74 29 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 4f 6e 65 20 63 6f 75 (like..git).are.ignored..One.cou
e1c0 6c 64 20 61 64 64 20 6f 77 6e 20 66 69 6c 74 65 72 73 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 ld.add.own.filters.in.the.follow
e1e0 69 6e 67 20 77 61 79 3a 0a 0a 28 73 65 74 71 2d 64 65 66 61 75 6c 74 20 7a 74 72 65 65 2d 64 69 ing.way:..(setq-default.ztree-di
e200 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 28 63 6f 6e 73 20 5c 22 5e 2e 2a 5c 5c 2e 70 79 63 5c r-filter-list.(cons.\"^.*\\.pyc\
e220 22 20 7a 74 72 65 65 2d 64 69 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 29 29 0a 22 29 0a 0a 28 64 ".ztree-dir-filter-list)).")..(d
e240 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 efvar-local.ztree-dir-show-filte
e260 72 65 64 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 66 69 6c red-files.nil..."Show.or.not.fil
e280 65 73 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 6c 69 73 74 2e 22 29 0a 0a 0a 3b es.from.the.filtered.list.")...;
e2a0 3b 0a 3b 3b 20 46 61 63 65 73 0a 3b 3b 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 68 ;.;;.Faces.;;..(defface.ztreep-h
e2c0 65 61 64 65 72 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 eader-face...'((((type.tty.pc).(
e2e0 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 class.color)).:foreground."light
e300 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 blue".:weight.bold).....(((backg
e320 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 round.dark)).(:height.1.2.:foreg
e340 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 round."lightblue".:weight.bold))
e360 0a 20 20 20 20 28 74 20 3a 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 .....(t.:height.1.2.:foreground.
e380 22 64 61 72 6b 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 2a 46 61 "darkblue".:weight.bold))..."*Fa
e3a0 63 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 ce.used.for.the.header.in.Ztree.
e3c0 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 buffer."...:group.'Ztree.:group.
e3e0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 'font-lock-highlighting-faces).(
e400 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 68 65 61 64 65 72 2d 66 61 63 65 20 27 7a 74 72 65 65 defvar.ztreep-header-face.'ztree
e420 70 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 0a 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d p-header-face)...(define-minor-m
e440 6f 64 65 20 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 20 20 22 41 20 6d 69 6e 6f 72 20 6d 6f 64 ode.ztreedir-mode..."A.minor.mod
e460 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 e.for.displaying.the.directory.t
e480 72 65 65 73 20 69 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 69 6e 69 74 69 61 6c rees.in.text.mode."...;;.initial
e4a0 20 76 61 6c 75 65 0a 20 20 6e 69 6c 0a 20 20 3b 3b 20 6d 6f 64 65 6c 69 6e 65 20 6e 61 6d 65 0a .value...nil...;;.modeline.name.
e4c0 20 20 22 20 44 69 72 22 0a 20 20 3b 3b 20 54 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 6b 65 79 ..".Dir"...;;.The.minor.mode.key
e4e0 6d 61 70 0a 20 20 60 28 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 48 22 29 20 2e 20 7a 74 72 65 65 map...`(.....(,(kbd."H")...ztree
e500 2d 64 69 72 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 -dir-toggle-show-filtered-files)
e520 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 3e 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 72 2d 6e 61 72 .....(,(kbd.">")...ztree-dir-nar
e540 72 6f 77 2d 74 6f 2d 64 69 72 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 3c 22 29 20 2e 20 7a 74 row-to-dir).....(,(kbd."<")...zt
e560 72 65 65 2d 64 69 72 2d 77 69 64 65 6e 2d 74 6f 2d 70 61 72 65 6e 74 29 0a 20 20 20 20 28 2c 28 ree-dir-widen-to-parent).....(,(
e580 6b 62 64 20 22 64 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 72 2d 6f 70 65 6e 2d 64 69 72 65 64 2d kbd."d")...ztree-dir-open-dired-
e5a0 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 0a 0a 0a 3b 3b 0a 3b 3b 20 46 69 6c 65 20 62 69 6e 64 69 at-point))).....;;.;;.File.bindi
e5c0 6e 67 73 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 63 6f 6e 74 72 6f ngs.to.the.directory.tree.contro
e5e0 6c 0a 3b 3b 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 l.;;..(defun.ztree-insert-buffer
e600 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 68 65 61 64 65 72 20 -header.()..."Insert.the.header.
e620 74 6f 20 74 68 65 20 7a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 to.the.ztree.buffer."...(let.((s
e640 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 44 69 72 65 tart.(point))).....(insert."Dire
e660 63 74 6f 72 79 20 74 72 65 65 22 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 ctory.tree").....(insert."\n")..
e680 20 20 20 28 69 6e 73 65 72 74 20 22 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 22 29 0a 20 20 20 ...(insert."==============")....
e6a0 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 28 70 6f 69 .(set-text-properties.start.(poi
e6c0 6e 74 29 20 27 28 66 61 63 65 20 7a 74 72 65 65 70 2d 68 65 61 64 65 72 2d 66 61 63 65 29 29 29 nt).'(face.ztreep-header-face)))
e6e0 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d ...(insert."\n"))..(defun.ztree-
e700 66 69 6c 65 2d 6e 6f 74 2d 68 69 64 64 65 6e 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 44 65 file-not-hidden.(filename)..."De
e720 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 46 49 4c 45 4e 41 termines.if.the.file.with.FILENA
e740 4d 45 20 73 68 6f 75 6c 64 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 ME.should.be.visible."...(let.((
e760 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 name.(ztree-file-short-name.file
e780 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 28 6f 72 20 28 73 74 72 69 6e name))).....(and.(not.(or.(strin
e7a0 67 3d 20 6e 61 6d 65 20 22 2e 22 29 20 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 2e 2e 22 29 g=.name.".").(string=.name."..")
e7c0 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d ))..........(or...........ztree-
e7e0 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 dir-show-filtered-files.........
e800 20 20 28 6e 6f 74 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 72 78 29 20 ..(not.(cl-find-if.(lambda.(rx).
e820 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 78 20 6e 61 6d 65 29 29 20 7a 74 72 65 65 2d 64 69 (string-match.rx.name)).ztree-di
e840 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 r-filter-list))))))...(defun.ztr
e860 65 65 2d 66 69 6e 64 2d 66 69 6c 65 20 28 6e 6f 64 65 20 68 61 72 64 29 0a 20 20 22 46 69 6e 64 ee-find-file.(node.hard)..."Find
e880 20 74 68 65 20 66 69 6c 65 20 61 74 20 4e 4f 44 45 2e 0a 0a 49 66 20 48 41 52 44 20 69 73 20 6e .the.file.at.NODE...If.HARD.is.n
e8a0 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 66 69 6c 65 20 69 73 20 6f 70 65 6e 65 64 20 69 6e 20 61 6e on-nil,.the.file.is.opened.in.an
e8c0 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 7a 74 72 other.window..Otherwise,.the.ztr
e8e0 65 65 20 77 69 6e 64 6f 77 20 69 73 20 75 73 65 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 66 69 ee.window.is.used.to.find.the.fi
e900 6c 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 6e 6f 64 65 29 le."...(when.(and.(stringp.node)
e920 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 63 6f .(file-readable-p.node)).....(co
e940 6e 64 20 28 28 61 6e 64 20 68 61 72 64 20 7a 74 72 65 65 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 nd.((and.hard.ztree-dir-move-foc
e960 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d us)............(find-file-other-
e980 77 69 6e 64 6f 77 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 61 72 64 0a 20 20 window.node))...........(hard...
e9a0 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 28 .........(save-selected-window.(
e9c0 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 6e 6f 64 65 29 29 29 0a 20 find-file-other-window.node)))..
e9e0 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c .........(t............(find-fil
ea00 65 20 6e 6f 64 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 74 e.node)))))...(defun.ztree-dir-t
ea20 6f 67 67 6c 65 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 oggle-show-filtered-files.()..."
ea40 54 6f 67 67 6c 65 20 76 69 73 69 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 65 Toggle.visibility.of.the.filtere
ea60 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 d.files."...(interactive)...(set
ea80 71 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 q.ztree-dir-show-filtered-files.
eaa0 28 6e 6f 74 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c (not.ztree-dir-show-filtered-fil
eac0 65 73 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 7a 74 72 65 es))...(message.(concat.(if.ztre
eae0 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 22 53 68 6f 77 22 e-dir-show-filtered-files."Show"
eb00 20 22 48 69 64 65 22 29 20 22 20 66 69 6c 74 65 72 65 64 20 66 69 6c 65 73 22 29 29 0a 20 20 28 ."Hide").".filtered.files"))...(
eb20 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 0a 0a 0a 28 64 65 66 75 6e 20 ztree-refresh-buffer))...(defun.
eb40 7a 74 72 65 65 2d 64 69 72 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 70 61 74 68 29 ztree-dir-directory-files.(path)
eb60 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 2f 64 69 72 ..."Return.the.list.of.files/dir
eb80 65 63 74 6f 72 69 65 73 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 50 41 54 48 2e 22 0a 20 20 ectories.for.the.given.PATH."...
eba0 3b 3b 20 72 65 6d 6f 76 65 20 2e 20 61 6e 64 20 2e 2e 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 ;;.remove...and....from.the.list
ebc0 20 6f 66 20 66 69 6c 65 73 20 74 6f 20 61 76 6f 69 64 20 69 6e 66 69 6e 69 74 65 0a 20 20 3b 3b .of.files.to.avoid.infinite...;;
ebe0 20 72 65 63 75 72 73 69 6f 6e 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 .recursion...(cl-remove-if.(lamb
ec00 64 61 20 28 78 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 2f 5c 5c 2e 5c 5c 2e 3f da.(x).(string-match-p."/\\.\\.?
ec20 24 22 20 78 29 29 0a 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 $".x)).................(director
ec40 79 2d 66 69 6c 65 73 20 70 61 74 68 20 27 66 75 6c 6c 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a y-files.path.'full)))...(defun.z
ec60 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 69 72 65 63 74 6f 72 79 20 28 6e 6f 64 65 29 tree-dir-change-directory.(node)
ec80 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 73 74 61 72 74 20 6e 6f 64 65 20 74 6f 20 4e 4f 44 ..."Change.the.start.node.to.NOD
eca0 45 20 61 6e 64 20 75 70 64 61 74 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 22 E.and.update.current.directory."
ecc0 0a 20 20 28 7a 74 72 65 65 2d 63 68 61 6e 67 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 6f 64 65 ...(ztree-change-start-node.node
ece0 29 0a 20 20 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 )...(setq.default-directory.node
ed00 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 6e 61 72 72 6f 77 2d 74 6f 2d ))...(defun.ztree-dir-narrow-to-
ed20 64 69 72 20 28 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 74 6f dir.()..."Interactive.command.to
ed40 20 6e 61 72 72 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 62 75 .narrow.the.current.directory.bu
ed60 66 66 65 72 2e 0a 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 ffer..The.buffer.is.narrowed.to.
ed80 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2e 0a the.directory.under.the.cursor..
eda0 49 66 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 6f 6e 20 61 20 66 69 6c 65 2c 20 74 68 65 20 If.the.cursor.is.on.a.file,.the.
edc0 62 75 66 66 65 72 20 69 73 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 buffer.is.narrowed.to.the.parent
ede0 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 .directory."...(interactive)...(
ee00 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 let*.((line.(line-number-at-pos)
ee20 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 )..........(node.(ztree-find-nod
ee40 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e e-in-line.line))..........(paren
ee60 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 6c 69 6e t.(ztree-get-parent-for-line.lin
ee80 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e e))).....(if.(file-directory-p.n
eea0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 ode).........(ztree-dir-change-d
eec0 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e irectory.node).......(when.paren
eee0 74 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 69 72 65 t.........(ztree-dir-change-dire
ef00 63 74 6f 72 79 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 70 ctory.(ztree-find-node-in-line.p
ef20 61 72 65 6e 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 77 arent))))))...(defun.ztree-dir-w
ef40 69 64 65 6e 2d 74 6f 2d 70 61 72 65 6e 74 20 28 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 iden-to-parent.()..."Interactive
ef60 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 77 69 64 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 .command.to.widen.the.current.di
ef80 72 65 63 74 6f 72 79 20 62 75 66 66 65 72 20 74 6f 20 70 61 72 65 6e 74 2e 0a 54 68 65 20 62 75 rectory.buffer.to.parent..The.bu
efa0 66 66 65 72 20 69 73 20 77 69 64 65 6e 65 64 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 20 6f 66 ffer.is.widened.to.the.parent.of
efc0 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 .the.directory.of.the.current.bu
efe0 66 66 65 72 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 ffer..This.allows.to.jump.to.the
f000 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 74 68 69 73 20 64 69 72 65 63 74 .parent.directory.if.this.direct
f020 6f 72 79 20 69 73 20 6f 6e 65 20 6c 65 76 65 6c 0a 75 70 20 6f 66 20 74 68 65 20 6f 70 65 6e 65 ory.is.one.level.up.of.the.opene
f040 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f d."...(interactive)...(let*.((no
f060 64 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 70 de.ztree-start-node)..........(p
f080 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 20 28 64 69 72 65 arent.(file-name-directory.(dire
f0a0 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 28 77 68 ctory-file-name.node)))).....(wh
f0c0 65 6e 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 en.parent.......(ztree-dir-chang
f0e0 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 e-directory.parent))))...(defun.
f100 7a 74 72 65 65 2d 64 69 72 2d 6f 70 65 6e 2d 64 69 72 65 64 2d 61 74 2d 70 6f 69 6e 74 20 28 29 ztree-dir-open-dired-at-point.()
f120 0a 20 20 22 49 66 20 74 68 65 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 64 69 72 65 63 74 6f ..."If.the.point.is.on.a.directo
f140 72 79 2c 20 6f 70 65 6e 20 44 49 52 45 44 20 77 69 74 68 20 74 68 69 73 20 64 69 72 65 63 74 6f ry,.open.DIRED.with.this.directo
f160 72 79 2e 0a 4f 74 68 65 72 77 69 73 65 20 6f 70 65 6e 20 44 49 52 45 44 20 77 69 74 68 20 74 68 ry..Otherwise.open.DIRED.with.th
f180 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 e.parent.directory"...(interacti
f1a0 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d ve)...(let*.((line.(line-number-
f1c0 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 at-pos))..........(node.(ztree-f
f1e0 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 ind-node-in-line.line)).........
f200 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c .(parent.(ztree-get-parent-for-l
f220 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 6e 6f 64 65 ine.line))).....(cond.((and.node
f240 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 .(file-directory-p.node)).......
f260 20 20 20 20 20 28 64 69 72 65 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 61 .....(dired.node))...........(pa
f280 72 65 6e 74 20 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 64 20 28 7a 74 72 65 65 2d 66 rent.............(dired.(ztree-f
f2a0 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a 3b ind-node-in-line.parent))))))..;
f2c0 3b 0a 3b 3b 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 7a 74 72 65 65 ;.;;.Implementation.of.the.ztree
f2e0 2d 70 72 6f 74 6f 63 6f 6c 0a 3b 3b 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 -protocol.;;..(cl-defmethod.ztre
f300 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 e-node-visible-p.((file.string))
f320 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 20 73 68 61 6c 6c 20 62 ..."Return.T.if.the.NODE.shall.b
f340 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 6e 6f 74 2d 68 69 e.visible."...(ztree-file-not-hi
f360 64 64 65 6e 20 66 69 6c 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 dden.file))..(cl-defmethod.ztree
f380 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 -node-short-name.((file.string))
f3a0 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 ..."Return.the.short.name.for.a.
f3c0 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 node."...(ztree-file-short-name.
f3e0 66 69 6c 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 file))..(cl-defmethod.ztree-node
f400 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 0a 20 20 -expandable-p.((file.string))...
f420 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 65 78 70 61 6e 64 61 "Return.T.if.the.node.is.expanda
f440 62 6c 65 2e 22 0a 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 29 ble."...(file-directory-p.file))
f460 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c ..(cl-defmethod.ztree-node-equal
f480 20 28 28 66 69 6c 65 31 20 73 74 72 69 6e 67 29 20 28 66 69 6c 65 32 20 73 74 72 69 6e 67 29 29 .((file1.string).(file2.string))
f4a0 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 31 20 ..."Equality.function.for.NODE1.
f4c0 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 61 72 65 and.NODE2..Return.T.if.nodes.are
f4e0 20 65 71 75 61 6c 22 0a 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 66 69 6c 65 31 20 66 69 .equal"...(string-equal.file1.fi
f500 6c 65 32 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d le2))..(cl-defmethod.ztree-node-
f520 63 68 69 6c 64 72 65 6e 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 0a 20 20 22 52 65 74 75 children.((file.string))..."Retu
f540 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 0a 20 20 28 7a rn.a.list.of.NODE.children"...(z
f560 74 72 65 65 2d 64 69 72 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 66 69 6c 65 29 29 0a tree-dir-directory-files.file)).
f580 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e .(cl-defmethod.ztree-node-action
f5a0 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d .((file.string).hard)..."Perform
f5c0 20 61 6e 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 .an.action.when.the.Return.is.pr
f5e0 65 73 73 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d essed.on.a.NODE."...(ztree-find-
f600 66 69 6c 65 20 66 69 6c 65 20 68 61 72 64 29 29 0a 0a 3b 3b 20 66 6f 72 20 7a 74 72 65 65 2d 6e file.file.hard))..;;.for.ztree-n
f620 6f 64 65 2d 73 69 64 65 2c 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 2c 20 7a 74 72 65 65 ode-side,.ztree-node-face,.ztree
f640 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 0a 3b 3b 20 61 6e 64 20 7a 74 72 -node-left-short-name.;;.and.ztr
f660 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 75 73 65 20 64 65 66 ee-node-right-short-name.use.def
f680 61 75 6c 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 0a 0a 3b 3b 0a 3b 3b 20 45 6e 74 72 ault.implementations..;;.;;.Entr
f6a0 79 20 70 6f 69 6e 74 0a 3b 3b 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 y.point.;;..;;;###autoload.(defu
f6c0 6e 20 7a 74 72 65 65 2d 64 69 72 20 28 70 61 74 68 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 n.ztree-dir.(path)..."Create.an.
f6e0 69 6e 74 65 72 61 63 74 69 76 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 64 69 72 65 interactive.buffer.with.the.dire
f700 63 74 6f 72 79 20 74 72 65 65 20 6f 66 20 74 68 65 20 50 41 54 48 20 67 69 76 65 6e 2e 22 0a 20 ctory.tree.of.the.PATH.given."..
f720 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 44 44 69 72 65 63 74 6f 72 79 3a 20 22 29 0a 20 20 .(interactive."DDirectory:.")...
f740 28 77 68 65 6e 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 70 61 74 68 29 20 (when.(and.(file-exists-p.path).
f760 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 28 6c 65 (file-directory-p.path)).....(le
f780 74 20 28 28 62 75 66 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 22 2a 44 69 72 65 63 74 6f 72 79 t.((buf-name.(concat."*Directory
f7a0 20 22 20 70 61 74 68 20 22 20 74 72 65 65 2a 22 29 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 .".path.".tree*"))).......(ztree
f7c0 2d 76 69 65 77 20 62 75 66 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -view.buf-name..................
f7e0 20 23 27 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 20 20 20 .#'ztree-insert-buffer-header...
f800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
f820 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 73 75 62 73 74 69 74 75 74 65 2d ..(expand-file-name.(substitute-
f840 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 in-file-name.path)).............
f860 20 20 20 20 20 20 23 27 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 ......#'ztreedir-mode...........
f880 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 ........nil))))....(provide.'ztr
f8a0 65 65 2d 64 69 72 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 72 2e 65 6c 20 65 6e 64 73 20 68 65 ee-dir).;;;.ztree-dir.el.ends.he
f8c0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa00 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 2e 65 6c 00 00 00 ztree-1.0.6/ztree-protocol.el...
fa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa60 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
fa80 30 30 30 35 35 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 32 34 00 20 30 00 00 00 0005522.00000000000.014624..0...
faa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb00 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...................
fb20 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...................
fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fc00 3b 3b 3b 20 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 2e 65 6c 20 2d 2d 2d 20 67 65 6e 65 72 69 ;;;.ztree-protocol.el.---.generi
fc20 63 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 7a 74 72 65 65 2d 76 69 65 77 20 2d 2a 2d 20 6c 65 c.protocol.for.ztree-view.-*-.le
fc40 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 6f 70 79 72 69 xical-binding:.t;.-*-..;;.Copyri
fc60 67 68 74 20 28 43 29 20 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ght.(C).2021..Free.Software.Foun
fc80 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 dation,.Inc..;;.;;.Author:.Alexe
fca0 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 y.Veretennikov.<alexey.veretenni
fcc0 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 kov@gmail.com>.;;.;;.Created:.20
fce0 32 31 2d 30 32 2d 31 32 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 21-02-12.;;.;;.Keywords:.files.t
fd00 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ools.;;.URL:.https://github.com/
fd20 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 fourier/ztree.;;.Compatibility:.
fd40 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 GNU.Emacs.24.x.;;.;;.This.file.i
fd60 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 s.part.of.GNU.Emacs..;;.;;.GNU.E
fd80 6d 61 63 73 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 macs.is.free.software:.you.can.r
fda0 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.;;.
fdc0 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
fde0 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
fe00 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
fe20 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
fe40 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
fe60 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 y.later.version..;;.;;.GNU.Emacs
fe80 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 74 .is.distributed.in.the.hope.that
fea0 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 4f .it.will.be.useful,.;;.but.WITHO
fec0 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 68 UT.ANY.WARRANTY;.without.even.th
fee0 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 4e e.implied.warranty.of.;;.MERCHAN
ff00 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 43 TABILITY.or.FITNESS.FOR.A.PARTIC
ff20 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 65 ULAR.PURPOSE...See.the.;;.GNU.Ge
ff40 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 65 neral.Public.License.for.more.de
ff60 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 tails..;;.;;.You.should.have.rec
ff80 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 6c 20 eived.a.copy.of.the.GNU.General.
ffa0 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 4e 55 Public.License.;;.along.with.GNU
ffc0 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 .Emacs...If.not,.see.<http://www
ffe0 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d .gnu.org/licenses/>..;;.;;;.Comm
10000 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 47 65 6e 65 72 69 63 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 entary:..;;.Generic.protocol.for
10020 20 7a 74 72 65 65 2d 76 69 65 77 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 .ztree-view..;;;.Code:..(eval-wh
10040 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 3b en-compile.(require.'cl-lib))..;
10060 3b 3b 20 4e 6f 64 65 20 70 72 6f 74 6f 63 6f 6c 0a 0a 3b 3b 3b 20 4f 62 6c 69 67 61 74 6f 72 79 ;;.Node.protocol..;;;.Obligatory
10080 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 .to.implement..(cl-defgeneric.zt
100a0 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ree-node-visible-p.(node)..."Ret
100c0 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 20 73 68 61 6c 6c 20 62 65 20 76 69 73 69 62 urn.T.if.the.NODE.shall.be.visib
100e0 6c 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 le.")..(cl-defgeneric.ztree-node
10100 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 -short-name.(node)..."Return.the
10120 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 29 0a 0a 28 63 6c 2d 64 .short.name.for.a.node.")..(cl-d
10140 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d efgeneric.ztree-node-expandable-
10160 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 p.(node)..."Return.T.if.the.node
10180 20 69 73 20 65 78 70 61 6e 64 61 62 6c 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 .is.expandable.")..(cl-defgeneri
101a0 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 6e 6f 64 65 31 20 6e 6f 64 65 32 29 c.ztree-node-equal.(node1.node2)
101c0 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 31 20 ..."Equality.function.for.NODE1.
101e0 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 61 72 65 and.NODE2..Return.T.if.nodes.are
10200 20 65 71 75 61 6c 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e .equal")..(cl-defgeneric.ztree-n
10220 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 ode-children.(node)..."Return.a.
10240 6c 69 73 74 20 6f 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 29 0a 0a 3b 3b 3b 20 4f 70 74 list.of.NODE.children")..;;;.Opt
10260 69 6f 6e 61 6c 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 ional.to.implement.(cl-defgeneri
10280 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 c.ztree-node-side.(node)..."Dete
102a0 72 6d 69 6e 65 20 74 68 65 20 73 69 64 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 2e 22 29 0a 0a 28 rmine.the.side.of.the.NODE.")..(
102c0 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 28 6e cl-defgeneric.ztree-node-face.(n
102e0 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 77 72 69 74 65 20 61 ode)..."Return.a.face.to.write.a
10300 20 4e 4f 44 45 20 69 6e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 .NODE.in")..(cl-defgeneric.ztree
10320 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 28 6e 6f 64 65 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 -node-action.(node)..."Perform.a
10340 6e 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 n.action.when.the.Return.is.pres
10360 73 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 sed.on.a.NODE.")..(cl-defgeneric
10380 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 .ztree-node-left-short-name.(nod
103a0 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 65 66 74 20 73 68 6f 72 74 20 6e 61 6d 65 e)..."Return.the.left.short.name
103c0 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 65 65 2e 22 29 0a 0a .for.a.node.in.2-sided.tree.")..
103e0 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d (cl-defgeneric.ztree-node-right-
10400 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 short-name.(node)..."Return.the.
10420 72 69 67 68 74 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 right.short.name.for.a.node.in.2
10440 2d 73 69 64 65 64 20 74 72 65 65 2e 22 29 0a 0a 0a 3b 3b 3b 20 44 65 66 61 75 6c 74 20 69 6d 70 -sided.tree.")...;;;.Default.imp
10460 6c 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 73 0a 0a lentations.of.optional.methods..
10480 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 28 (cl-defmethod.ztree-node-side.((
104a0 6e 6f 64 65 20 74 29 29 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f 64 65 29 0a 20 20 3a 6c 65 66 74 node.t))...(ignore.node)...:left
104c0 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 )..(cl-defmethod.ztree-node-face
104e0 20 28 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 .((node.t))..."Return.a.face.to.
10500 77 72 69 74 65 20 61 20 4e 4f 44 45 20 69 6e 22 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f 64 65 29 write.a.NODE.in"...(ignore.node)
10520 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 )..(cl-defmethod.ztree-node-acti
10540 6f 6e 20 28 28 6e 6f 64 65 20 74 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 6e on.((node.t).hard)..."Perform.an
10560 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 73 .action.when.the.Return.is.press
10580 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 0a 41 72 67 75 6d 65 6e 74 20 48 41 52 44 20 73 70 65 63 ed.on.a.NODE..Argument.HARD.spec
105a0 69 66 69 65 73 20 69 66 20 74 68 65 20 52 65 74 75 72 6e 20 77 61 73 20 70 72 65 73 73 65 64 20 ifies.if.the.Return.was.pressed.
105c0 28 74 29 20 6f 72 0a 53 70 61 63 65 20 28 6e 69 6c 29 22 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f (t).or.Space.(nil)"...(ignore.no
105e0 64 65 29 0a 20 20 28 69 67 6e 6f 72 65 20 68 61 72 64 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 de)...(ignore.hard))..(cl-defmet
10600 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 hod.ztree-node-left-short-name.(
10620 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 65 66 74 20 73 68 6f (node.t))..."Return.the.left.sho
10640 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 rt.name.for.a.node.in.2-sided.tr
10660 65 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f ee."...(ztree-node-short-name.no
10680 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 de))..(cl-defmethod.ztree-node-r
106a0 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 ight-short-name.((node.t))..."Re
106c0 74 75 72 6e 20 74 68 65 20 72 69 67 68 74 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 turn.the.right.short.name.for.a.
106e0 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 65 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d node.in.2-sided.tree."...(ztree-
10700 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 node-short-name.node))..(provide
10720 20 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 70 72 6f 74 .'ztree-protocol).;;;.ztree-prot
10740 6f 63 6f 6c 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 ocol.el.ends.here...............
10760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
107a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
107c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
107e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10800 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-diff.el.......
10820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10860 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
10880 30 30 36 32 32 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 37 37 00 20 30 00 00 00 0062244.00000000000.013677..0...
108a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
108c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
108e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10900 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...................
10920 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...................
10940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a00 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 ;;;.ztree-diff.el.---.Text.mode.
10a20 64 69 66 66 20 66 6f 72 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 2d 2a 2d 20 6c 65 78 diff.for.directory.trees.-*-.lex
10a40 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 6f 70 79 72 69 67 ical-binding:.t;.-*-..;;.Copyrig
10a60 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 ht.(C).2013-2021..Free.Software.
10a80 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 Foundation,.Inc..;;.;;.Author:.A
10aa0 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 lexey.Veretennikov.<alexey.veret
10ac0 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 ennikov@gmail.com>.;;.;;.Created
10ae0 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c :.2013-11-11.;;.;;.Keywords:.fil
10b00 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e es.tools.;;.URL:.https://github.
10b20 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 com/fourier/ztree.;;.Compatibili
10b40 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 ty:.GNU.Emacs.24.x.;;.;;.This.fi
10b60 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 le.is.part.of.GNU.Emacs..;;.;;.G
10b80 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 NU.Emacs.is.free.software:.you.c
10ba0 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 an.redistribute.it.and/or.modify
10bc0 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e .;;.it.under.the.terms.of.the.GN
10be0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c U.General.Public.License.as.publ
10c00 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f ished.by.;;.the.Free.Software.Fo
10c20 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 undation,.either.version.3.of.th
10c40 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e e.License,.or.;;.(at.your.option
10c60 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 ).any.later.version..;;.;;.GNU.E
10c80 6d 61 63 73 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 macs.is.distributed.in.the.hope.
10ca0 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
10cc0 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
10ce0 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
10d00 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
10d20 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
10d40 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
10d60 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
10d80 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
10da0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
10dc0 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f .GNU.Emacs...If.not,.see.<http:/
10de0 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 /www.gnu.org/licenses/>..;;.;;;.
10e00 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 65 76 61 6c 2d 77 68 65 Commentary:..;;;.Code:.(eval-whe
10e20 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 n-compile.(require.'cl-lib)).(re
10e40 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 quire.'ztree-view).(require.'ztr
10e60 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 7a 74 72 65 65 2d ee-diff-model)..(defconst.ztree-
10e80 64 69 66 66 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 20 22 5e 5c 5c 2e 22 0a diff-hidden-files-regexp."^\\.".
10ea0 20 20 22 48 69 64 64 65 6e 20 66 69 6c 65 73 20 72 65 67 65 78 70 2e 0a 42 79 20 64 65 66 61 75 .."Hidden.files.regexp..By.defau
10ec0 6c 74 20 61 6c 6c 20 66 69 6c 65 73 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 lt.all.filest.starting.with.dot.
10ee0 60 2e 27 2c 20 69 6e 63 6c 75 64 69 6e 67 20 2e 20 61 6e 64 20 2e 2e 22 29 0a 0a 28 64 65 66 66 `.',.including...and...")..(deff
10f00 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 0a 20 20 27 28 ace.ztreep-diff-header-face...'(
10f20 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a (((type.tty.pc).(class.color)).:
10f40 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
10f60 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a old).....(((background.dark)).(:
10f80 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 height.1.2.:foreground."lightblu
10fa0 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 20 20 28 74 20 3a 68 65 69 67 68 74 e".:weight.bold)).....(t.:height
10fc0 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 64 61 72 6b 62 6c 75 65 22 20 3a 77 65 69 .1.2.:foreground."darkblue".:wei
10fe0 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 ght.bold))..."*Face.used.for.the
11000 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 44 69 66 66 20 62 75 66 66 65 72 2e 22 0a 20 .header.in.Ztree.Diff.buffer."..
11020 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 .:group.'Ztree-diff.:group.'font
11040 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 -lock-highlighting-faces).(defva
11060 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 20 27 7a 74 72 65 65 r.ztreep-diff-header-face.'ztree
11080 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 p-diff-header-face)..(defface.zt
110a0 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 0a 20 20 27 28 reep-diff-header-small-face...'(
110c0 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a (((type.tty.pc).(class.color)).:
110e0 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
11100 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a old).....(((background.dark)).(:
11120 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
11140 6f 6c 64 29 29 0a 20 20 20 20 28 74 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 20 3a 66 6f 72 65 67 old)).....(t.:weight.bold.:foreg
11160 72 6f 75 6e 64 20 22 64 61 72 6b 62 6c 75 65 22 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 round."darkblue"))..."*Face.used
11180 20 66 6f 72 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 44 69 66 66 20 62 75 .for.the.header.in.Ztree.Diff.bu
111a0 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f ffer."...:group.'Ztree-diff.:gro
111c0 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 up.'font-lock-highlighting-faces
111e0 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 ).(defvar.ztreep-diff-header-sma
11200 6c 6c 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c ll-face.'ztreep-diff-header-smal
11220 6c 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f l-face)..(defface.ztreep-diff-mo
11240 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 del-diff-face...'((t............
11260 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 22 29 29 29 0a 20 20 22 .......(:foreground."red")))..."
11280 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 73 20 69 *Face.used.for.different.files.i
112a0 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 n.Ztree-diff."...:group.'Ztree-d
112c0 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 iff.:group.'font-lock-highlighti
112e0 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f ng-faces).(defvar.ztreep-diff-mo
11300 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c del-diff-face.'ztreep-diff-model
11320 2d 64 69 66 66 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 -diff-face)..(defface.ztreep-dif
11340 66 2d 6d 6f 64 65 6c 2d 61 64 64 2d 66 61 63 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 f-model-add-face...'((t.........
11360 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 62 6c 75 65 22 29 29 29 ..........(:foreground."blue")))
11380 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 61 64 64 65 64 20 66 69 6c 65 73 20 69 ..."*Face.used.for.added.files.i
113a0 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 n.Ztree-diff."...:group.'Ztree-d
113c0 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 iff.:group.'font-lock-highlighti
113e0 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f ng-faces).(defvar.ztreep-diff-mo
11400 64 65 6c 2d 61 64 64 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d del-add-face.'ztreep-diff-model-
11420 61 64 64 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d add-face)..(defface.ztreep-diff-
11440 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 model-ignored-face...'((((type.t
11460 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 ty.pc).(class.color).(min-colors
11480 20 32 35 36 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 32 66 32 66 32 66 22 29 0a 20 20 .256)).:foreground."#2f2f2f")...
114a0 20 20 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 ..(((type.tty.pc).(class.color).
114c0 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 20 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 77 (min-colors.8))...:foreground."w
114e0 68 69 74 65 22 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hite").....(t...................
11500 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 37 66 22 20 3a 73 74 72 69 6b 65 2d 74 (:foreground."#7f7f7f".:strike-t
11520 68 72 6f 75 67 68 20 74 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 6e 6f hrough.t)))..."*Face.used.for.no
11540 6e 2d 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 69 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 n-modified.files.in.Ztree-diff."
11560 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f ...:group.'Ztree-diff.:group.'fo
11580 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 nt-lock-highlighting-faces).(def
115a0 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 var.ztreep-diff-model-ignored-fa
115c0 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 ce.'ztreep-diff-model-ignored-fa
115e0 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ce)..(defface.ztreep-diff-model-
11600 6e 6f 72 6d 61 6c 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 normal-face...'((((type.tty.pc).
11620 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 66 (class.color).(min-colors.8)).:f
11640 6f 72 65 67 72 6f 75 6e 64 20 22 77 68 69 74 65 22 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 oreground."white").....(t.......
11660 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 37 ............(:foreground."#7f7f7
11680 66 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 6e 6f 6e 2d 6d 6f 64 69 f")))..."*Face.used.for.non-modi
116a0 66 69 65 64 20 66 69 6c 65 73 20 69 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 fied.files.in.Ztree-diff."...:gr
116c0 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 oup.'Ztree-diff.:group.'font-loc
116e0 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 k-highlighting-faces).(defvar.zt
11700 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 65 20 27 7a 74 72 reep-diff-model-normal-face.'ztr
11720 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 65 29 0a 0a 0a 28 64 eep-diff-model-normal-face)...(d
11740 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 efvar-local.ztree-diff-filter-li
11760 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 64 69 66 66 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 st.(list.ztree-diff-hidden-files
11780 2d 72 65 67 65 78 70 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 72 65 67 65 78 70 20 66 69 6c 65 20 -regexp)..."List.of.regexp.file.
117a0 6e 61 6d 65 73 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 2e 0a 42 79 20 64 65 66 61 75 6c 74 20 names.to.filter.out..By.default.
117c0 70 61 74 68 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 28 6c 69 6b 65 20 2e 67 paths.starting.with.dot.(like..g
117e0 69 74 29 20 61 72 65 20 69 67 6e 6f 72 65 64 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c it).are.ignored")..(defvar-local
11800 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 20 6e 69 6c 0a 20 20 22 50 61 69 .ztree-diff-dirs-pair.nil..."Pai
11820 72 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 73 74 6f 72 65 64 2e 20 20 55 73 r.of.the.directories.stored...Us
11840 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 2e 22 29 ed.to.perform.the.full.rescan.")
11860 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d ..(defvar-local.ztree-diff-show-
11880 65 71 75 61 6c 2d 66 69 6c 65 73 20 74 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 65 71 75 equal-files.t..."Show.or.not.equ
118a0 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 20 62 6f 74 68 20 73 69 64 al.files/directories.on.both.sid
118c0 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d es.")..(defvar-local.ztree-diff-
118e0 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 53 68 6f 77 20 show-filtered-files.nil..."Show.
11900 6f 72 20 6e 6f 74 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 6c or.not.files.from.the.filtered.l
11920 69 73 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 ist.")..(defvar-local.ztree-diff
11940 2d 73 68 6f 77 2d 72 69 67 68 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 74 0a 20 20 22 53 68 -show-right-orphan-files.t..."Sh
11960 6f 77 20 6f 72 20 6e 6f 74 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 ow.or.not.orphan.files/directori
11980 65 73 20 6f 6e 20 72 69 67 68 74 20 73 69 64 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 es.on.right.side.")..(defvar-loc
119a0 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 al.ztree-diff-show-left-orphan-f
119c0 69 6c 65 73 20 74 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 6f 72 70 68 61 6e 20 66 69 6c iles.t..."Show.or.not.orphan.fil
119e0 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 20 6c 65 66 74 20 73 69 64 65 2e 22 29 0a 0a es/directories.on.left.side.")..
11a00 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 70 72 65 76 69 6f 75 (defvar.ztree-diff-ediff-previou
11a20 73 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 57 s-window-configurations.nil..."W
11a40 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 70 72 69 6f 72 20 74 6f 20 63 61 indow.configurations.prior.to.ca
11a60 6c 6c 69 6e 67 20 60 65 64 69 66 66 27 2e 0a 41 20 71 75 65 75 65 20 6f 66 20 77 69 6e 64 6f 77 lling.`ediff'..A.queue.of.window
11a80 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 2c 20 61 6c 6c 6f 77 69 6e 67 0a 74 6f 20 72 65 73 .configurations,.allowing.to.res
11aa0 74 6f 72 65 20 6c 61 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20 tore.last.configuration.even.if.
11ac0 74 68 65 72 65 20 77 65 72 65 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 65 64 69 66 66 20 73 65 73 there.were.a.couple.of.ediff.ses
11ae0 73 69 6f 6e 73 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d sions")..;;;###autoload.(define-
11b00 6d 69 6e 6f 72 2d 6d 6f 64 65 20 7a 74 72 65 65 64 69 66 66 2d 6d 6f 64 65 0a 20 20 22 41 20 6d minor-mode.ztreediff-mode..."A.m
11b20 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 66 inor.mode.for.displaying.the.dif
11b40 66 65 72 65 6e 63 65 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 69 ference.of.the.directory.trees.i
11b60 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 n.text.mode."...;;.initial.value
11b80 0a 20 20 6e 69 6c 0a 20 20 3b 3b 20 6d 6f 64 65 6c 69 6e 65 20 6e 61 6d 65 0a 20 20 22 20 44 69 ...nil...;;.modeline.name...".Di
11ba0 66 66 22 0a 20 20 3b 3b 20 54 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 6b 65 79 6d 61 70 0a 20 ff"...;;.The.minor.mode.keymap..
11bc0 20 60 28 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 43 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 .`(.....(,(kbd."C")...ztree-diff
11be0 2d 63 6f 70 79 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 68 22 29 20 2e 20 7a 74 72 65 65 2d 64 -copy).....(,(kbd."h")...ztree-d
11c00 69 66 66 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 65 71 75 61 6c 2d 66 69 6c 65 73 29 0a 20 20 20 iff-toggle-show-equal-files)....
11c20 20 28 2c 28 6b 62 64 20 22 48 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 74 6f 67 67 6c 65 .(,(kbd."H")...ztree-diff-toggle
11c40 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 28 2c 28 6b 62 64 -show-filtered-files).....(,(kbd
11c60 20 22 44 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 6c 65 74 65 2d 66 69 6c 65 29 0a ."D")...ztree-diff-delete-file).
11c80 20 20 20 20 28 2c 28 6b 62 64 20 22 76 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 76 69 65 ....(,(kbd."v")...ztree-diff-vie
11ca0 77 2d 66 69 6c 65 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 64 22 29 20 2e 20 7a 74 72 65 65 2d w-file).....(,(kbd."d")...ztree-
11cc0 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 2d 66 69 6c 65 73 29 0a 20 20 20 20 28 2c 28 6b diff-simple-diff-files).....(,(k
11ce0 62 64 20 22 72 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 70 61 72 74 69 61 6c 2d 72 65 73 bd."r")...ztree-diff-partial-res
11d00 63 61 6e 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 52 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 can).....(,(kbd."R")...ztree-dif
11d20 66 2d 66 75 6c 6c 2d 72 65 73 63 61 6e 29 0a 20 20 20 20 28 5b 66 35 5d 20 2e 20 7a 74 72 65 65 f-full-rescan).....([f5]...ztree
11d40 2d 64 69 66 66 2d 66 75 6c 6c 2d 72 65 73 63 61 6e 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 -diff-full-rescan)))...(defun.zt
11d60 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 66 61 63 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ree-diff-node-face.(node)..."Ret
11d80 75 72 6e 20 74 68 65 20 66 61 63 65 20 66 6f 72 20 74 68 65 20 4e 4f 44 45 20 64 65 70 65 6e 64 urn.the.face.for.the.NODE.depend
11da0 69 6e 67 20 6f 6e 20 64 69 66 66 20 73 74 61 74 75 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 ing.on.diff.status."...(let.((di
11dc0 66 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f ff.(ztree-diff-node-different.no
11de0 64 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 64 69 66 66 20 27 69 67 6e 6f 72 de))).....(cond.((eq.diff.'ignor
11e00 65 29 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 63 e).ztreep-diff-model-ignored-fac
11e20 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 64 69 66 66 20 27 64 69 66 66 29 20 7a 74 e)...........((eq.diff.'diff).zt
11e40 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 29 0a 20 20 20 20 20 reep-diff-model-diff-face)......
11e60 20 20 20 20 20 28 28 65 71 20 64 69 66 66 20 27 6e 65 77 29 20 20 7a 74 72 65 65 70 2d 64 69 66 .....((eq.diff.'new)..ztreep-dif
11e80 66 2d 6d 6f 64 65 6c 2d 61 64 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 f-model-add-face)...........((eq
11ea0 20 64 69 66 66 20 27 73 61 6d 65 29 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e .diff.'same).ztreep-diff-model-n
11ec0 6f 72 6d 61 6c 2d 66 61 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 ormal-face))))..(defun.ztree-dif
11ee0 66 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 49 6e 73 f-insert-buffer-header.()..."Ins
11f00 65 72 74 20 74 68 65 20 68 65 61 64 65 72 20 74 6f 20 74 68 65 20 7a 74 72 65 65 20 62 75 66 66 ert.the.header.to.the.ztree.buff
11f20 65 72 2e 22 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 er."...(ztree-insert-with-face."
11f40 44 69 66 66 65 72 65 6e 63 65 73 20 74 72 65 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 Differences.tree".ztreep-diff-he
11f60 61 64 65 72 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 77 68 ader-face)...(insert."\n")...(wh
11f80 65 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 28 7a 74 72 en.ztree-diff-dirs-pair.....(ztr
11fa0 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 28 63 6f 6e 63 61 74 20 22 4c 65 66 ee-insert-with-face.(concat."Lef
11fc0 74 3a 20 20 22 20 28 63 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 t:..".(car.ztree-diff-dirs-pair)
11fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 ).............................zt
12000 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 20 reep-diff-header-small-face)....
12020 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 .(insert."\n").....(ztree-insert
12040 2d 77 69 74 68 2d 66 61 63 65 20 28 63 6f 6e 63 61 74 20 22 52 69 67 68 74 3a 20 22 20 28 63 64 -with-face.(concat."Right:.".(cd
12060 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 29 0a 20 20 20 20 20 20 20 r.ztree-diff-dirs-pair))........
12080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 70 2d 64 69 66 66 .....................ztreep-diff
120a0 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 -header-small-face).....(insert.
120c0 22 5c 6e 22 29 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 "\n"))...(ztree-insert-with-face
120e0 20 22 4c 65 67 65 6e 64 3a 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d ."Legend:".ztreep-diff-header-sm
12100 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 7a 74 72 all-face)...(insert."\n")...(ztr
12120 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4e 6f 72 6d 61 6c 20 66 69 6c ee-insert-with-face.".Normal.fil
12140 65 20 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 e.".ztreep-diff-model-normal-fac
12160 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 2d 20 e)...(ztree-insert-with-face."-.
12180 73 61 6d 65 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d same.on.both.sides".ztreep-diff-
121a0 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e header-small-face)...(insert."\n
121c0 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4f ")...(ztree-insert-with-face.".O
121e0 72 70 68 61 6e 20 66 69 6c 65 20 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 61 rphan.file.".ztreep-diff-model-a
12200 64 64 2d 66 61 63 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 dd-face)...(ztree-insert-with-fa
12220 63 65 20 22 2d 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 6e 20 6f 74 68 65 72 20 73 69 ce."-.does.not.exist.on.other.si
12240 64 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 de".ztreep-diff-header-small-fac
12260 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 e)...(insert."\n")...(ztree-inse
12280 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4d 69 73 6d 61 74 63 68 20 66 69 6c 65 20 22 20 7a rt-with-face.".Mismatch.file.".z
122a0 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 29 0a 20 20 28 7a treep-diff-model-diff-face)...(z
122c0 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 2d 20 64 69 66 66 65 72 65 tree-insert-with-face."-.differe
122e0 6e 74 20 66 72 6f 6d 20 6f 74 68 65 72 20 73 69 64 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d nt.from.other.side".ztreep-diff-
12300 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e header-small-face)...(insert."\n
12320 20 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 49 .")...(ztree-insert-with-face."I
12340 67 6e 6f 72 65 64 20 66 69 6c 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 gnored.file".ztreep-diff-model-i
12360 67 6e 6f 72 65 64 2d 66 61 63 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 gnored-face)...(ztree-insert-wit
12380 68 2d 66 61 63 65 20 22 20 2d 20 69 67 6e 6f 72 65 64 20 66 72 6f 6d 20 63 6f 6d 70 61 72 69 73 h-face.".-.ignored.from.comparis
123a0 6f 6e 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 on".ztreep-diff-header-small-fac
123c0 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 e)...(insert."\n")....(ztree-ins
123e0 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 22 20 7a ert-with-face."==============".z
12400 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 treep-diff-header-face)...(inser
12420 74 20 22 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 75 6c 6c t."\n"))..(defun.ztree-diff-full
12440 2d 72 65 73 63 61 6e 20 28 29 0a 20 20 22 46 6f 72 63 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 20 -rescan.()..."Force.full.rescan.
12460 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 2e 22 0a 20 20 28 69 6e 74 65 of.the.directory.trees."...(inte
12480 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 ractive)...(when.(and.ztree-diff
124a0 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d -dirs-pair..............(yes-or-
124c0 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 20 22 46 6f 72 63 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 3f no-p.(format."Force.full.rescan?
124e0 22 29 29 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 20 28 63 61 72 20 7a 74 72 65 65 2d "))).....(ztree-diff.(car.ztree-
12500 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 20 28 63 64 72 20 7a 74 72 65 65 2d 64 69 66 66 2d diff-dirs-pair).(cdr.ztree-diff-
12520 64 69 72 73 2d 70 61 69 72 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 dirs-pair))))....(defun.ztree-di
12540 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ff-existing-common.(node)..."Ret
12560 75 72 6e 20 74 68 65 20 4e 4f 44 45 20 69 66 20 62 6f 74 68 20 6c 65 66 74 20 61 6e 64 20 72 69 urn.the.NODE.if.both.left.and.ri
12580 67 68 74 20 73 69 64 65 73 20 65 78 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 ght.sides.exist."...(let.((left.
125a0 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 (ztree-diff-node-left-path.node)
125c0 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ).........(right.(ztree-diff-nod
125e0 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e e-right-path.node))).....(if.(an
12600 64 20 6c 65 66 74 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d d.left.right..............(file-
12620 65 78 69 73 74 73 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c exists-p.left)..............(fil
12640 65 2d 65 78 69 73 74 73 2d 70 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 0a e-exists-p.right)).........node.
12660 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d ......nil)))..(defun.ztree-diff-
12680 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 existing-common-parent.(node)...
126a0 22 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 6e 6f 64 65 20 69 6e 20 75 70 20 69 6e 20 "Return.the.first.node.in.up.in.
126c0 68 69 65 72 61 72 63 68 79 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 68 69 63 68 20 68 61 73 20 hierarchy.of.the.NODE.which.has.
126e0 62 6f 74 68 20 73 69 64 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 6f 6e 20 28 7a 74 both.sides."...(let.((common.(zt
12700 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 20 6e 6f 64 65 29 29 29 ree-diff-existing-common.node)))
12720 0a 20 20 20 20 28 69 66 20 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 20 20 20 63 6f 6d 6d 6f 6e 0a 20 .....(if.common.........common..
12740 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e .....(ztree-diff-existing-common
12760 2d 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 -parent.(ztree-diff-node-parent.
12780 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 6f 2d node)))))..(defun.ztree-diff-do-
127a0 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 6e 6f 64 65 29 0a 20 20 22 50 61 72 74 6c 79 20 partial-rescan.(node)..."Partly.
127c0 72 65 73 63 61 6e 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6d 6d rescan.the.NODE."...(let*.((comm
127e0 6f 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 2d 70 on.(ztree-diff-existing-common-p
12800 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a arent.node))..........(parent.(z
12820 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 63 6f 6d 6d 6f 6e 29 29 29 0a tree-diff-node-parent.common))).
12840 20 20 20 20 28 69 66 20 28 6e 6f 74 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 ....(if.(not.parent).........(wh
12860 65 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 20 20 20 20 en.ztree-diff-dirs-pair.........
12880 20 20 28 7a 74 72 65 65 2d 64 69 66 66 20 28 63 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 ..(ztree-diff.(car.ztree-diff-di
128a0 72 73 2d 70 61 69 72 29 20 28 63 64 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 rs-pair).(cdr.ztree-diff-dirs-pa
128c0 69 72 29 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 ir))).......(ztree-diff-model-pa
128e0 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 63 6f 6d 6d 6f 6e 29 0a 20 20 20 20 20 20 28 7a 74 72 65 rtial-rescan.common).......(ztre
12900 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 e-refresh-buffer.(line-number-at
12920 2d 70 6f 73 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 70 61 -pos)))))...(defun.ztree-diff-pa
12940 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 70 61 72 74 69 rtial-rescan.()..."Perform.parti
12960 61 6c 20 72 65 73 63 61 6e 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2e 22 0a al.rescan.on.the.current.node.".
12980 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 ..(interactive)...(let.((found.(
129a0 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 ztree-find-node-at-point))).....
129c0 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 6f (when.found.......(ztree-diff-do
129e0 2d 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 63 61 72 20 66 6f 75 6e 64 29 29 29 29 29 0a -partial-rescan.(car.found))))).
12a00 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 20 ..(defun.ztree-diff-simple-diff.
12a20 28 6e 6f 64 65 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 20 64 69 66 66 20 62 (node)..."Create.a.simple.diff.b
12a40 75 66 66 65 72 20 66 6f 72 20 66 69 6c 65 73 20 66 72 6f 6d 20 6c 65 66 74 20 61 6e 64 20 72 69 uffer.for.files.from.left.and.ri
12a60 67 68 74 20 70 61 6e 65 6c 73 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 6e 6f 64 65 20 63 ght.panels..Argument.NODE.node.c
12a80 6f 6e 74 61 69 6e 69 6e 67 20 70 61 74 68 73 20 74 6f 20 66 69 6c 65 73 20 74 6f 20 63 61 6c 6c ontaining.paths.to.files.to.call
12aa0 20 61 20 64 69 66 66 20 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 2d 6c 65 66 74 .a.diff.on."...(let*.((node-left
12ac0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 .(ztree-diff-node-left-path.node
12ae0 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 ))..........(node-right.(ztree-d
12b00 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 iff-node-right-path.node))).....
12b20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 6c 65 66 74 0a (when.(and............node-left.
12b40 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 ...........node-right...........
12b60 20 28 6e 6f 74 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e 6f 64 65 2d 6c 65 66 .(not.(file-directory-p.node-lef
12b80 74 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 73 68 6f 77 20 74 68 65 20 64 69 66 66 20 77 69 6e 64 t))).......;;.show.the.diff.wind
12ba0 6f 77 20 6f 6e 20 74 68 65 20 62 6f 74 74 6f 6d 0a 20 20 20 20 20 20 3b 3b 20 74 6f 20 6e 6f 74 ow.on.the.bottom.......;;.to.not
12bc0 20 74 6f 20 63 72 75 73 68 20 74 72 65 65 20 61 70 70 65 61 72 61 6e 63 65 0a 20 20 20 20 20 20 .to.crush.tree.appearance.......
12be0 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 77 69 64 74 68 2d 74 68 72 65 73 68 6f 6c 64 20 6e 69 6c (let.((split-width-threshold.nil
12c00 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 66 66 20 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 2d )).........(diff.node-left.node-
12c20 72 69 67 68 74 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 right)))))...(defun.ztree-diff-s
12c40 69 6d 70 6c 65 2d 64 69 66 66 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 imple-diff-files.()..."Create.a.
12c60 73 69 6d 70 6c 65 20 64 69 66 66 20 62 75 66 66 65 72 20 66 6f 72 20 66 69 6c 65 73 20 66 72 6f simple.diff.buffer.for.files.fro
12c80 6d 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 70 61 6e 65 6c 73 2e 22 0a 20 20 28 69 6e 74 m.left.and.right.panels."...(int
12ca0 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 7a 74 72 65 65 2d eractive)...(let.((found.(ztree-
12cc0 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 find-node-at-point))).....(when.
12ce0 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 63 61 72 20 66 6f 75 found.......(let.((node.(car.fou
12d00 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 nd))).........(ztree-diff-simple
12d20 2d 64 69 66 66 20 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 -diff.node)))))..(defun.ztree-di
12d40 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 2d 66 75 6e 63 74 ff-ediff-before-setup-hook-funct
12d60 69 6f 6e 20 28 29 0a 20 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 64 69 ion.()..."Hook.function.for.`edi
12d80 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 27 2e 0a 0a 53 65 65 20 74 68 65 20 ff-before-setup-hook'...See.the.
12da0 49 6e 66 6f 20 6e 6f 64 65 20 60 28 65 64 69 66 66 29 20 68 6f 6f 6b 73 27 2e 0a 0a 54 68 69 73 Info.node.`(ediff).hooks'...This
12dc0 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 69 74 73 65 6c 66 2e 22 0a .hook.function.removes.itself.".
12de0 20 20 28 70 75 73 68 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 ..(push.(current-window-configur
12e00 61 74 69 6f 6e 29 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 70 72 65 76 69 6f 75 73 ation).ztree-diff-ediff-previous
12e20 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 29 0a 20 20 28 7a 74 72 65 65 -window-configurations)...(ztree
12e40 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 28 72 65 6d 6f 76 -save-current-position)...(remov
12e60 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 20 e-hook.'ediff-before-setup-hook.
12e80 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d #'ztree-diff-ediff-before-setup-
12ea0 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 hook-function))..(defun.ztree-di
12ec0 66 66 2d 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 ff-ediff-quit-hook-function.()..
12ee0 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 64 69 66 66 2d 71 75 69 74 2d ."Hook.function.for.`ediff-quit-
12f00 68 6f 6f 6b 27 2e 0a 0a 53 65 65 20 74 68 65 20 49 6e 66 6f 20 6e 6f 64 65 20 60 28 65 64 69 66 hook'...See.the.Info.node.`(edif
12f20 66 29 20 68 6f 6f 6b 73 27 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 72 f).hooks'...This.hook.function.r
12f40 65 6d 6f 76 65 73 20 69 74 73 65 6c 66 2e 22 0a 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f emoves.itself."...(set-window-co
12f60 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 70 6f 70 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 nfiguration.(pop.ztree-diff-edif
12f80 66 2d 70 72 65 76 69 6f 75 73 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 f-previous-window-configurations
12fa0 29 29 0a 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 28 72 ))...(ztree-refresh-buffer)...(r
12fc0 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 23 27 7a 74 emove-hook.'ediff-quit-hook.#'zt
12fe0 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f ree-diff-ediff-quit-hook-functio
13000 6e 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 20 28 66 69 n))..(defun.ztree-diff-ediff.(fi
13020 6c 65 2d 61 20 66 69 6c 65 2d 62 20 26 6f 70 74 69 6f 6e 61 6c 20 73 74 61 72 74 75 70 2d 68 6f le-a.file-b.&optional.startup-ho
13040 6f 6b 73 29 0a 20 20 22 45 64 69 66 66 20 74 68 61 74 20 63 6c 65 61 6e 73 20 75 70 20 61 66 74 oks)..."Ediff.that.cleans.up.aft
13060 65 72 20 69 74 73 65 6c 66 2e 0a 0a 45 64 69 66 66 2d 72 65 6c 61 74 65 64 20 62 75 66 66 65 72 er.itself...Ediff-related.buffer
13080 73 20 61 72 65 20 6b 69 6c 6c 65 64 20 61 6e 64 20 74 68 65 20 70 72 65 2d 45 64 69 66 66 20 77 s.are.killed.and.the.pre-Ediff.w
130a0 69 6e 64 6f 77 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 72 65 73 74 6f 72 65 64 2e indow.configuration.is.restored.
130c0 22 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 "...(add-hook.'ediff-before-setu
130e0 70 2d 68 6f 6f 6b 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 p-hook.#'ztree-diff-ediff-before
13100 2d 73 65 74 75 70 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 28 61 64 64 2d 68 6f 6f -setup-hook-function)...(add-hoo
13120 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d k.'ediff-quit-hook.#'ztree-diff-
13140 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 74 29 0a 20 20 28 65 ediff-quit-hook-function.t)...(e
13160 64 69 66 66 20 66 69 6c 65 2d 61 20 66 69 6c 65 2d 62 20 73 74 61 72 74 75 70 2d 68 6f 6f 6b 73 diff.file-a.file-b.startup-hooks
13180 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 61 63 74 69 6f ))..(defun.ztree-diff-node-actio
131a0 6e 20 28 6e 6f 64 65 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 63 74 69 6f 6e 20 n.(node.hard)..."Perform.action.
131c0 6f 6e 20 4e 4f 44 45 3a 0a 31 20 69 66 20 62 6f 74 68 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 on.NODE:.1.if.both.left.and.righ
131e0 74 20 73 69 64 65 73 20 70 72 65 73 65 6e 74 3a 0a 20 20 20 31 2e 31 20 69 66 20 74 68 65 79 20 t.sides.present:....1.1.if.they.
13200 61 72 65 20 64 69 66 66 65 72 65 6e 64 0a 20 20 20 20 20 20 31 2e 31 2e 31 20 69 66 20 48 41 52 are.differend.......1.1.1.if.HAR
13220 44 20 65 64 69 66 66 0a 20 20 20 20 20 20 31 2e 31 2e 32 20 73 69 6d 70 6c 65 20 64 69 66 66 20 D.ediff.......1.1.2.simple.diff.
13240 6f 74 68 65 72 77 69 73 74 65 0a 20 20 20 31 2e 32 20 69 66 20 74 68 65 79 20 61 72 65 20 74 68 otherwiste....1.2.if.they.are.th
13260 65 20 73 61 6d 65 20 2d 20 76 69 65 77 20 6c 65 66 74 0a 32 20 69 66 20 6c 65 66 74 20 6f 72 20 e.same.-.view.left.2.if.left.or.
13280 72 69 67 68 74 20 70 72 65 73 65 6e 74 20 2d 20 76 69 65 77 20 6c 65 66 74 20 6f 72 20 72 69 67 right.present.-.view.left.or.rig
132a0 74 68 22 0a 20 20 3b 3b 20 73 61 76 65 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 69 th"...;;.save.current.position.i
132c0 6e 20 63 61 73 65 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 0a 20 20 3b 3b 20 63 6f 6e 66 69 67 n.case.if.the.window...;;.config
132e0 75 72 61 74 69 6f 6e 20 77 69 6c 6c 20 63 68 61 6e 67 65 0a 20 20 28 7a 74 72 65 65 2d 73 61 76 uration.will.change...(ztree-sav
13300 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 28 6c 65 74 20 28 28 6c 65 66 e-current-position)...(let.((lef
13320 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 t.(ztree-diff-node-left-path.nod
13340 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e e)).........(right.(ztree-diff-n
13360 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b ode-right-path.node)).........;;
13380 20 46 49 58 4d 45 3a 20 54 68 65 20 47 4e 55 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 69 73 20 74 6f .FIXME:.The.GNU.convention.is.to
133a0 20 6f 6e 6c 79 20 75 73 65 20 22 70 61 74 68 22 20 66 6f 72 20 6c 69 73 74 73 20 6f 66 0a 20 20 .only.use."path".for.lists.of...
133c0 20 20 20 20 20 20 3b 3b 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 69 6e 20 6c 6f 61 64 2d ......;;.directories.as.in.load-
133e0 70 61 74 68 2e 0a 20 20 20 20 20 20 20 20 28 6f 70 65 6e 2d 66 20 23 27 28 6c 61 6d 62 64 61 20 path..........(open-f.#'(lambda.
13400 28 70 61 74 68 29 20 28 69 66 20 68 61 72 64 20 28 66 69 6e 64 2d 66 69 6c 65 20 70 61 74 68 29 (path).(if.hard.(find-file.path)
13420 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 ................................
13440 20 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 77 69 64 74 68 2d 74 68 72 65 73 68 6f 6c 64 20 ...(let.((split-width-threshold.
13460 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nil))...........................
13480 20 20 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f ..........(view-file-other-windo
134a0 77 20 70 61 74 68 29 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 6c 65 66 w.path)))))).....(cond.((and.lef
134c0 74 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 6c 20 28 7a 74 t.right)............(if.(eql.(zt
134e0 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 73 ree-diff-node-different.node).'s
13500 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f 70 65 ame)................(funcall.ope
13520 6e 2d 66 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 68 61 72 64 0a n-f.left)..............(if.hard.
13540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 .................(ztree-diff-edi
13560 66 66 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a ff.left.right)................(z
13580 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 20 6e 6f 64 65 29 29 29 29 0a 20 tree-diff-simple-diff.node))))..
135a0 20 20 20 20 20 20 20 20 20 28 6c 65 66 74 20 28 66 75 6e 63 61 6c 6c 20 6f 70 65 6e 2d 66 20 6c .........(left.(funcall.open-f.l
135c0 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 66 75 6e 63 61 6c 6c 20 eft))...........(right.(funcall.
135e0 6f 70 65 6e 2d 66 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 open-f.right))...........(t.nil)
13600 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 66 69 )))....(defun.ztree-diff-copy-fi
13620 6c 65 20 28 6e 6f 64 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f 6e le.(node.source-path.destination
13640 2d 70 61 74 68 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 22 55 70 64 61 74 65 20 74 -path.copy-to-right)..."Update.t
13660 68 65 20 4e 4f 44 45 20 73 74 61 74 75 73 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 66 69 6c 65 he.NODE.status.and.copy.the.file
13680 2e 0a 46 69 6c 65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 53 4f 55 52 43 45 2d 50 41 54 48 20 74 ..File.copied.from.SOURCE-PATH.t
136a0 6f 20 44 45 53 54 49 4e 41 54 49 4f 4e 2d 50 41 54 48 2e 0a 43 4f 50 59 2d 54 4f 2d 52 49 47 48 o.DESTINATION-PATH..COPY-TO-RIGH
136c0 54 20 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 20 73 69 64 65 20 6f 66 20 74 68 65 20 4e 4f T.specifies.which.side.of.the.NO
136e0 44 45 20 74 6f 20 75 70 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 61 72 67 65 74 2d 70 DE.to.update."...(let.((target-p
13700 61 74 68 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 20 20 20 ath.(concat.....................
13720 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 64 65 73 74 69 6e ..(file-name-as-directory.destin
13740 61 74 69 6f 6e 2d 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 ation-path).....................
13760 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 0a 20 20 20 20 20 20 ..(file-name-nondirectory.......
13780 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
137a0 2d 6e 61 6d 65 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 -name.source-path))))).....(let.
137c0 28 28 65 72 72 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 72 61 70 ((err.(condition-case.error-trap
137e0 0a 20 20 20 20 20 20 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 ....................(progn......
13800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 61 73 6b 20 66 6f 72 ................;;.don't.ask.for
13820 20 6f 76 65 72 77 72 69 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .overwrite......................
13840 3b 3b 20 6b 65 65 70 20 74 69 6d 65 20 73 74 61 6d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;;.keep.time.stamp..............
13860 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 66 69 6c 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 74 ........(copy-file.source-path.t
13880 61 72 67 65 74 2d 70 61 74 68 20 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arget-path.t.t).................
138a0 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f .....nil)..................(erro
138c0 72 20 65 72 72 6f 72 2d 74 72 61 70 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 65 72 72 6f 72 20 r.error-trap)))).......;;.error.
138e0 6d 65 73 73 61 67 65 20 69 66 20 66 61 69 6c 65 64 0a 20 20 20 20 20 20 28 69 66 20 65 72 72 20 message.if.failed.......(if.err.
13900 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 6e 74 68 20 (message.(concat."Error:.".(nth.
13920 32 20 65 72 72 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 3a 0a 20 2.err))).........;;.otherwise:..
13940 20 20 20 20 20 20 20 3b 3b 20 61 73 73 75 6d 69 6e 67 20 61 6c 6c 20 77 65 6e 74 20 6f 6b 20 77 .......;;.assuming.all.went.ok.w
13960 68 65 6e 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 6e 6f 64 65 73 20 61 72 65 20 74 68 65 hen.left.and.right.nodes.are.the
13980 20 73 61 6d 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 65 74 20 62 6f 74 68 20 61 73 20 6e 6f 74 .same.........;;.set.both.as.not
139a0 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 79 20 77 65 72 65 20 6e 6f 74 20 69 67 6e 6f .different.if.they.were.not.igno
139c0 72 65 64 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 7a 74 72 65 65 2d 64 red.........(unless.(eq.(ztree-d
139e0 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 iff-node-different.node).'ignore
13a00 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f )...........(setf.(ztree-diff-no
13a20 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 73 61 6d 65 29 29 0a 20 20 20 20 20 de-different.node).'same))......
13a40 20 20 20 3b 3b 20 75 70 64 61 74 65 20 6c 65 66 74 2f 72 69 67 68 74 20 70 61 74 68 73 0a 20 20 ...;;.update.left/right.paths...
13a60 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 ......(if.copy-to-right.........
13a80 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 ....(setf.(ztree-diff-node-right
13aa0 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 65 74 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 -path.node).target-path)........
13ac0 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 ...(setf.(ztree-diff-node-left-p
13ae0 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 65 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 ath.node).target-path)).........
13b00 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 (ztree-diff-node-update-all-pare
13b20 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 72 65 nts-diff.node).........(ztree-re
13b40 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 fresh-buffer.(line-number-at-pos
13b60 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d ))))))...(defun.ztree-diff-copy-
13b80 64 69 72 20 28 6e 6f 64 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f dir.(node.source-path.destinatio
13ba0 6e 2d 70 61 74 68 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 22 55 70 64 61 74 65 20 n-path.copy-to-right)..."Update.
13bc0 74 68 65 20 4e 4f 44 45 20 73 74 61 74 75 73 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 64 69 72 the.NODE.status.and.copy.the.dir
13be0 65 63 74 6f 72 79 2e 0a 44 69 72 65 63 74 6f 72 79 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 53 4f ectory..Directory.copied.from.SO
13c00 55 52 43 45 2d 50 41 54 48 20 74 6f 20 44 45 53 54 49 4e 41 54 49 4f 4e 2d 50 41 54 48 2e 0a 43 URCE-PATH.to.DESTINATION-PATH..C
13c20 4f 50 59 2d 54 4f 2d 52 49 47 48 54 20 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 20 73 69 64 OPY-TO-RIGHT.specifies.which.sid
13c40 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 74 6f 20 75 70 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 e.of.the.NODE.to.update."...(let
13c60 2a 20 28 28 73 72 63 2d 70 61 74 68 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 *.((src-path.(file-name-as-direc
13c80 74 6f 72 79 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 72 tory.source-path))..........(tar
13ca0 67 65 74 2d 70 61 74 68 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 get-path.(file-name-as-directory
13cc0 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 .destination-path))..........(ta
13ce0 72 67 65 74 2d 66 75 6c 6c 2d 70 61 74 68 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 rget-full-path.(concat..........
13d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 2d 70 61 74 68 0a 20 ...................target-path..
13d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 ...........................(file
13d40 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -name-nondirectory..............
13d60 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 2d ................(directory-file-
13d80 6e 61 6d 65 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 name.source-path))))).....(let.(
13da0 28 65 72 72 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 72 61 70 0a (err.(condition-case.error-trap.
13dc0 20 20 20 20 20 20 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 ...................(progn.......
13de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6b 65 65 70 20 74 69 6d 65 20 73 74 61 6d ...............;;.keep.time.stam
13e00 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 73 6b 20 66 6f p......................;;.ask.fo
13e20 72 20 6f 76 65 72 77 72 69 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.overwrite.....................
13e40 20 28 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 20 73 72 63 2d 70 61 74 68 20 74 61 72 67 65 74 .(copy-directory.src-path.target
13e60 2d 70 61 74 68 20 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -path.t.t)......................
13e80 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 65 72 72 nil)..................(error.err
13ea0 6f 72 2d 74 72 61 70 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 65 72 72 6f 72 20 6d 65 73 73 61 or-trap)))).......;;.error.messa
13ec0 67 65 20 69 66 20 66 61 69 6c 65 64 0a 20 20 20 20 20 20 28 69 66 20 65 72 72 0a 20 20 20 20 20 ge.if.failed.......(if.err......
13ee0 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 .....(progn.............(message
13f00 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 6e 74 68 20 31 20 65 72 72 29 29 29 .(concat."Error:.".(nth.1.err)))
13f20 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 64 6f 20 72 65 73 63 61 6e 20 6f 66 .............;;.and.do.rescan.of
13f40 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 .the.node.............(ztree-dif
13f60 66 2d 64 6f 2d 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 f-do-partial-rescan.node))......
13f80 20 20 20 3b 3b 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 6f 6b 2c 20 75 70 64 61 74 ...;;.if.everything.is.ok,.updat
13fa0 65 20 73 74 61 74 75 73 65 73 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 74 61 72 67 e.statuses.........(message.targ
13fc0 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 et-full-path).........(if.copy-t
13fe0 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 o-right.............(setf.(ztree
14000 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 -diff-node-right-path.node).targ
14020 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a et-full-path)...........(setf.(z
14040 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 tree-diff-node-left-path.node).t
14060 61 72 67 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 arget-full-path)).........;;.TOD
14080 4f 3a 20 64 6f 20 6e 6f 74 20 72 65 73 63 61 6e 20 74 68 65 20 6e 6f 64 65 2e 20 55 73 65 20 73 O:.do.not.rescan.the.node..Use.s
140a0 6f 6d 65 20 6c 6f 67 69 63 20 6c 69 6b 65 20 69 6e 20 64 65 6c 65 74 65 0a 20 20 20 20 20 20 20 ome.logic.like.in.delete........
140c0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 6e 6f 64 65 20 6e .(ztree-diff-model-update-node.n
140e0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 ode).........(ztree-diff-node-up
14100 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 date-all-parents-diff.node).....
14120 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d ....(ztree-refresh-buffer.(line-
14140 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 number-at-pos))))))...(defun.ztr
14160 65 65 2d 64 69 66 66 2d 63 6f 70 79 20 28 29 0a 20 20 22 43 6f 70 79 20 74 68 65 20 66 69 6c 65 ee-diff-copy.()..."Copy.the.file
14180 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 6f 74 68 65 72 20 73 69 64 65 2e .under.the.cursor.to.other.side.
141a0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 "...(interactive)...(let.((found
141c0 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 .(ztree-find-node-at-point)))...
141e0 20 20 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 ..(when.found.......(let*.((node
14200 20 28 63 61 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 64 65 .(car.found))..............(side
14220 20 28 63 64 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 .(cdr.found))..............(node
14240 2d 73 69 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 -side.(ztree-diff-node-side.node
14260 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 74 ))..............(copy-to-right.t
14280 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 70 79 20 66 72 6f 6d 20 6c 65 66 74 20 74 6f 20 )...........;.copy.from.left.to.
142a0 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 6c 65 66 74 20 28 7a right..............(node-left.(z
142c0 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a tree-diff-node-left-path.node)).
142e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 65 2d .............(node-right.(ztree-
14300 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 diff-node-right-path.node)).....
14320 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 .........(source-path.nil)......
14340 20 20 20 20 20 20 20 20 28 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 20 6e 69 6c 29 0a 20 ........(destination-path.nil)..
14360 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ............(parent.(ztree-diff-
14380 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 node-parent.node))).........(whe
143a0 6e 20 70 61 72 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 20 6e 6f 74 n.parent................;.do.not
143c0 20 63 6f 70 79 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b .copy.the.root.node...........;;
143e0 20 64 65 74 65 72 6d 69 6e 65 20 61 20 73 69 64 65 20 74 6f 20 63 6f 70 79 20 66 72 6f 6d 2f 74 .determine.a.side.to.copy.from/t
14400 6f 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 67 6f 72 69 74 68 6d 3a 0a 20 20 20 20 20 20 o...........;;.algorithm:.......
14420 20 20 20 20 3b 3b 20 31 29 20 69 66 20 62 6f 74 68 20 73 69 64 65 20 61 72 65 20 70 72 65 73 65 ....;;.1).if.both.side.are.prese
14440 6e 74 2c 20 75 73 65 20 74 68 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 nt,.use.the.side...........;;...
14460 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 70 79 2d 74 .variable...........(setq.copy-t
14480 6f 2d 72 69 67 68 74 20 28 69 66 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 62 6f 74 68 29 o-right.(if.(eq.node-side.'both)
144a0 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 ................................
144c0 20 20 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(eq.side.'left)..............
144e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 32 29 20 69 66 20 6f 6e 65 20 ...................;;.2).if.one.
14500 6f 66 20 73 69 64 65 73 20 69 73 20 61 62 73 65 6e 74 2c 20 63 6f 70 79 20 66 72 6f 6d 0a 20 20 of.sides.is.absent,.copy.from...
14520 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 3b 3b ..............................;;
14540 20 20 20 20 74 68 65 20 73 69 64 65 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 ....the.side.where.the.file.is.p
14560 72 65 73 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 resent..........................
14580 20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 6c 65 66 74 29 29 29 0a 20 20 .......(eq.node-side.'left)))...
145a0 20 20 20 20 20 20 20 20 3b 3b 20 33 29 20 69 6e 20 62 6f 74 68 20 63 61 73 65 73 20 64 65 74 65 ........;;.3).in.both.cases.dete
145c0 72 6d 69 6e 65 20 69 66 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 rmine.if.the.destination........
145e0 20 20 20 3b 3b 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 6e 20 70 6c 61 63 65 0a 20 ...;;....directory.is.in.place..
14600 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 2d 70 61 74 68 20 28 69 66 20 63 .........(setq.source-path.(if.c
14620 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 2d 72 69 67 68 opy-to-right.node-left.node-righ
14640 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 t).................destination-p
14660 61 74 68 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 ath.(if.copy-to-right...........
14680 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 7a 74 72 65 ...........................(ztre
146a0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 70 61 72 65 6e 74 29 0a 20 e-diff-node-right-path.parent)..
146c0 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 ................................
146e0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 70 61 72 ..(ztree-diff-node-left-path.par
14700 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 75 72 ent)))...........(when.(and.sour
14720 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 0a 20 20 20 20 20 20 20 ce-path.destination-path........
14740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 28 66 6f 72 6d ..............(yes-or-no-p.(form
14760 61 74 20 22 43 6f 70 79 20 5b 25 73 5d 25 73 20 74 6f 20 5b 25 73 5d 25 73 2f 20 3f 22 0a 20 20 at."Copy.[%s]%s.to.[%s]%s/.?"...
14780 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 ................................
147a0 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 22 4c 45 46 54 22 ........(if.copy-to-right."LEFT"
147c0 20 22 52 49 47 48 54 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."RIGHT").......................
147e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ....................(ztree-diff-
14800 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 node-short-name.node)...........
14820 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 ................................
14840 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 22 52 49 47 48 54 22 20 22 4c 45 46 54 22 (if.copy-to-right."RIGHT"."LEFT"
14860 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
14880 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 29 29 29 0a ............destination-path))).
148a0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d ............(if.(file-directory-
148c0 70 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 p.source-path).................(
148e0 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 64 69 72 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 ztree-diff-copy-dir.node........
14900 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 73 6f ..............................so
14920 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urce-path.......................
14940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 0a ...............destination-path.
14960 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 ................................
14980 20 20 20 20 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....copy-to-right).............
149a0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 66 69 6c 65 20 6e 6f 64 65 0a 20 20 20 ..(ztree-diff-copy-file.node....
149c0 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 ................................
149e0 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .source-path....................
14a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 .................destination-pat
14a20 68 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 h...............................
14a40 20 20 20 20 20 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 28 64 65 ......copy-to-right))))))))..(de
14a60 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 76 69 65 77 2d 66 69 6c 65 20 28 29 0a 20 20 22 56 fun.ztree-diff-view-file.()..."V
14a80 69 65 77 20 66 69 6c 65 20 61 74 20 70 6f 69 6e 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 iew.file.at.point,.depending.on.
14aa0 73 69 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 side."...(interactive)...(let.((
14ac0 66 6f 75 6e 64 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 found.(ztree-find-node-at-point)
14ae0 29 29 0a 20 20 20 20 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 )).....(when.found.......(let*.(
14b00 28 6e 6f 64 65 20 28 63 61 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (node.(car.found))..............
14b20 28 73 69 64 65 20 28 63 64 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (side.(cdr.found))..............
14b40 28 6e 6f 64 65 2d 73 69 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 (node-side.(ztree-diff-node-side
14b60 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 6c 65 66 74 20 .node))..............(node-left.
14b80 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 (ztree-diff-node-left-path.node)
14ba0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 )..............(node-right.(ztre
14bc0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 e-diff-node-right-path.node)))..
14be0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 .......(when.(or.(eq.node-side.'
14c00 62 6f 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 73 69 64 65 both)...................(eq.side
14c20 20 6e 6f 64 65 2d 73 69 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 61 .node-side))...........(cond.((a
14c40 6e 64 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(eq.side.'left)..............
14c60 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........node-left).............
14c80 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 20 6e 6f 64 65 2d 6c 65 66 74 29 29 0a 20 20 20 20 .....(view-file.node-left)).....
14ca0 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 73 69 64 65 20 27 72 69 67 68 ............((and.(eq.side.'righ
14cc0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 72 69 t).......................node-ri
14ce0 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 ght)..................(view-file
14d00 20 6e 6f 64 65 2d 72 69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 .node-right))))))))...(defun.ztr
14d20 65 65 2d 64 69 66 66 2d 64 65 6c 65 74 65 2d 66 69 6c 65 20 28 29 0a 20 20 22 44 65 6c 65 74 65 ee-diff-delete-file.()..."Delete
14d40 20 74 68 65 20 66 69 6c 65 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2e 22 0a 20 20 28 .the.file.under.the.cursor."...(
14d60 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 7a 74 72 interactive)...(let.((found.(ztr
14d80 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 ee-find-node-at-point))).....(wh
14da0 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 63 61 72 en.found.......(let*.((node.(car
14dc0 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 64 65 20 28 63 64 72 .found))..............(side.(cdr
14de0 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 73 69 64 65 .found))..............(node-side
14e00 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 20 20 .(ztree-diff-node-side.node))...
14e20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e ...........(parent.(ztree-diff-n
14e40 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ode-parent.node))..............;
14e60 3b 20 61 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 61 74 ;.algorithm.for.determining.what
14e80 20 74 6f 20 64 65 6c 65 74 65 20 73 69 6d 69 6c 61 72 20 74 6f 20 63 6f 70 79 3a 0a 20 20 20 20 .to.delete.similar.to.copy:.....
14ea0 20 20 20 20 20 20 20 20 20 3b 3b 20 31 2e 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 .........;;.1..if.the.file.is.pr
14ec0 65 73 65 6e 74 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 2c 20 64 65 6c 65 74 65 0a 20 20 20 20 esent.on.both.sides,.delete.....
14ee0 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 66 72 6f 6d 20 74 68 65 20 73 69 64 65 20 63 75 72 .........;;....from.the.side.cur
14f00 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 rently.selected..............;;.
14f20 32 2e 20 69 66 20 6f 6e 65 20 6f 66 20 73 69 64 65 73 20 69 73 20 61 62 73 65 6e 74 2c 20 64 65 2..if.one.of.sides.is.absent,.de
14f40 6c 65 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 66 72 6f 6d 20 74 68 65 lete..............;;....from.the
14f60 20 73 69 64 65 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 65 73 65 6e 74 0a .side.where.the.file.is.present.
14f80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 .............(delete-from-left..
14fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 .............(or.(eql.node-side.
14fc0 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 'left)...................(and.(e
14fe0 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 62 6f 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ql.node-side.'both).............
15000 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 73 69 64 65 20 27 6c 65 66 74 29 29 29 29 0a 20 ...........(eql.side.'left))))..
15020 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 70 61 74 68 20 28 69 66 20 64 65 6c ............(remove-path.(if.del
15040 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ete-from-left...................
15060 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 ............(ztree-diff-node-lef
15080 74 2d 70 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-path.node)....................
150a0 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d .........(ztree-diff-node-right-
150c0 70 61 74 68 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 path.node)))).........(when.(and
150e0 20 70 61 72 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 20 .parent....................;.do.
15100 6e 6f 74 20 64 65 6c 65 74 65 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 not.delete.the.root.node........
15120 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 ............(yes-or-no-p.(format
15140 20 22 44 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20 5b 25 73 5d 25 73 20 3f 22 0a 20 20 20 20 ."Delete.the.file.[%s]%s.?".....
15160 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 ................................
15180 20 20 20 20 28 69 66 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 20 22 4c 45 46 54 22 20 ....(if.delete-from-left."LEFT".
151a0 22 52 49 47 48 54 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "RIGHT")........................
151c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 29 29 0a .................remove-path))).
151e0 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 65 6c 65 74 65 2d 63 6f 6d 6d 61 6e 64 ..........(let*.((delete-command
15200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 ...................(if.(file-dir
15220 65 63 74 6f 72 79 2d 70 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 ectory-p.remove-path)...........
15240 20 20 20 20 20 20 20 20 20 20 20 20 23 27 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 ............#'delete-directory..
15260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 64 65 6c 65 74 65 2d 66 69 6c 65 ...................#'delete-file
15280 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a ))..................(children.(z
152a0 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 70 61 72 65 6e 74 29 29 tree-diff-node-children.parent))
152c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 0a 20 20 20 20 20 20 20 20 20 ..................(err..........
152e0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 .........(condition-case.error-t
15300 72 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e rap.......................(progn
15320 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 66 75 6e 63 61 6c .........................(funcal
15340 6c 20 64 65 6c 65 74 65 2d 63 6f 6d 6d 61 6e 64 20 72 65 6d 6f 76 65 2d 70 61 74 68 20 74 29 0a l.delete-command.remove-path.t).
15360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 ........................nil)....
15380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 65 72 72 6f 72 2d 74 72 .................(error.error-tr
153a0 61 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 72 72 0a 20 20 20 20 20 ap)))).............(if.err......
153c0 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 20 20 ...........(progn...............
153e0 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 ....(message.(concat."Error:.".(
15400 6e 74 68 20 32 20 65 72 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b nth.2.err)))...................;
15420 3b 20 77 68 65 6e 20 65 72 72 6f 72 20 68 61 70 70 65 6e 65 64 20 77 68 69 6c 65 20 64 65 6c 65 ;.when.error.happened.while.dele
15440 74 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 69 ting.the...................;;.di
15460 72 65 63 74 6f 72 79 2c 20 72 65 73 63 61 6e 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 rectory,.rescan.the.node........
15480 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 70 61 72 ...........;;.and.update.the.par
154a0 65 6e 74 73 20 77 69 74 68 20 61 20 6e 65 77 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 ents.with.a.new.status..........
154c0 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 66 20 74 68 69 73 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 .........;;.of.this.node........
154e0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 ...........(when.(file-directory
15500 2d 70 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -p.remove-path).................
15520 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 72 74 69 61 6c 2d 72 65 ....(ztree-diff-model-partial-re
15540 73 63 61 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 scan.node)))...............;;.if
15560 20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .everything.ok...............;;.
15580 69 66 20 77 61 73 20 6f 6e 6c 79 20 6f 6e 20 6f 6e 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 if.was.only.on.one.side.........
155a0 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 6e 6f 64 65 20 66 72 6f 6d 20 63 68 ......;;.remove.the.node.from.ch
155c0 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 61 6e ildren...............(if.(or.(an
155e0 64 20 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 d.(eql.node-side.'left).........
15600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c ...................delete-from-l
15620 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 eft).......................(and.
15640 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 (eql.node-side.'right)..........
15660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 64 65 6c 65 74 65 2d 66 72 ..................(not.delete-fr
15680 6f 6d 2d 6c 65 66 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 om-left)))...................(se
156a0 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 70 61 72 tf.(ztree-diff-node-children.par
156c0 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 ent).........................(zt
156e0 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-filter......................
15700 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 64 69 66 66 ....(lambda.(x).(not.(ztree-diff
15720 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 78 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node-equal.x.node)))...........
15740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 0a 20 20 20 20 20 20 ...............children)).......
15760 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 75 70 64 61 74 65 20 6f 6e ..........;;.otherwise.update.on
15780 6c 79 20 6f 6e 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 ly.one.side.................(map
157a0 63 20 28 69 66 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 c.(if.delete-from-left..........
157c0 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 28 78 29 20 28 73 65 .................(lambda.(x).(se
157e0 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 78 29 tf.(ztree-diff-node-left-path.x)
15800 20 6e 69 6c 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 .nil)).........................(
15820 6c 61 6d 62 64 61 20 28 78 29 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 lambda.(x).(setf.(ztree-diff-nod
15840 65 2d 72 69 67 68 74 2d 70 61 74 68 20 78 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 e-right-path.x).nil)))..........
15860 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6e 6f 64 65 20 28 7a 74 72 65 65 2d 64 .............(cons.node.(ztree-d
15880 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 iff-node-children.node))).......
158a0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 75 70 64 61 74 65 20 64 69 66 66 20 73 74 61 ..........;;.and.update.diff.sta
158c0 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 77 61 73 20 69 67 tus.................;;.if.was.ig
158e0 6e 6f 72 65 64 20 6b 65 65 70 20 74 68 65 20 6f 6c 64 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 nored.keep.the.old.status.......
15900 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 ..........(unless.(eql.(ztree-di
15920 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 29 ff-node-different.node).'ignore)
15940 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d ...................(setf.(ztree-
15960 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 6e 65 77 29 29 diff-node-different.node).'new))
15980 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 75 70 64 61 .................;;.finally.upda
159a0 74 65 20 61 6c 6c 20 63 68 69 6c 64 72 65 6e 20 73 74 61 74 75 73 65 73 0a 20 20 20 20 20 20 20 te.all.children.statuses........
159c0 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 .........(ztree-diff-node-update
159e0 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 -diff-from-parent.node))).......
15a00 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c ......(ztree-diff-node-update-al
15a20 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 l-parents-diff.node)............
15a40 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d .(ztree-refresh-buffer.(line-num
15a60 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 ber-at-pos))))))))....(defun.ztr
15a80 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 67 6e 6f 72 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 ee-diff-node-ignore-p.(node)..."
15aa0 44 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 20 4e 4f 44 45 20 69 73 20 69 6e 20 66 69 6c 74 Determine.if.the.NODE.is.in.filt
15ac0 65 72 20 6c 69 73 74 2e 0a 49 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 69 6e 20 74 68 65 20 66 er.list..If.the.node.is.in.the.f
15ae0 69 6c 74 65 72 20 6c 69 73 74 20 69 74 20 73 68 61 6c 6c 20 6e 6f 74 20 62 65 20 76 69 73 69 62 ilter.list.it.shall.not.be.visib
15b00 6c 65 2c 0a 75 6e 6c 65 73 73 20 69 74 20 69 73 20 61 20 70 61 72 65 6e 74 20 6e 6f 64 65 2e 22 le,.unless.it.is.a.parent.node."
15b20 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d ...(let.((name.(ztree-diff-node-
15b40 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 3b 3b 20 69 67 6e 6f 72 65 short-name.node))).....;;.ignore
15b60 20 74 68 65 6e 0a 20 20 20 20 3b 3b 20 6e 6f 74 20 61 20 72 6f 6f 74 20 61 6e 64 20 69 73 20 69 .then.....;;.not.a.root.and.is.i
15b80 6e 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 28 61 6e 64 20 28 7a 74 72 65 65 2d 64 69 n.filter.list.....(and.(ztree-di
15ba0 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 7a ff-node-parent.node)..........(z
15bc0 74 72 65 65 2d 66 69 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 73 74 tree-find.ztree-diff-filter-list
15be0 20 23 27 28 6c 61 6d 62 64 61 20 28 72 78 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 78 .#'(lambda.(rx).(string-match.rx
15c00 20 6e 61 6d 65 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6e 6f 64 65 2d .name))))))...(defun.ztree-node-
15c20 69 73 2d 76 69 73 69 62 6c 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 is-visible.(node)..."Determine.i
15c40 66 20 74 68 65 20 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 f.the.NODE.should.be.visible."..
15c60 20 28 6c 65 74 20 28 28 64 69 66 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 .(let.((diff.(ztree-diff-node-di
15c80 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 3b 3b 20 76 69 73 69 62 6c 65 20 74 fferent.node))).....;;.visible.t
15ca0 68 65 6e 0a 20 20 20 20 3b 3b 20 65 69 74 68 65 72 20 69 74 20 69 73 20 61 20 72 6f 6f 74 2e 20 hen.....;;.either.it.is.a.root..
15cc0 72 6f 6f 74 20 68 61 76 65 20 6e 6f 20 70 61 72 65 6e 74 0a 20 20 20 20 28 6f 72 20 28 6e 6f 74 root.have.no.parent.....(or.(not
15ce0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 20 .(ztree-diff-node-parent.node)).
15d00 20 20 20 3b 20 70 61 72 65 6e 74 20 69 73 20 61 6c 77 61 79 73 20 76 69 73 69 62 6c 65 0a 20 20 ...;.parent.is.always.visible...
15d20 20 20 20 20 20 20 3b 3b 20 6f 72 20 74 68 65 20 66 69 6c 65 73 20 61 72 65 20 64 69 66 66 65 72 ......;;.or.the.files.are.differ
15d40 65 6e 74 0a 20 20 20 20 20 20 20 20 28 65 71 6c 20 64 69 66 66 20 27 64 69 66 66 29 0a 20 20 20 ent.........(eql.diff.'diff)....
15d60 20 20 20 20 20 3b 3b 20 6f 72 20 69 74 20 69 73 20 6f 72 70 68 61 6e 65 64 2c 20 62 75 74 20 73 .....;;.or.it.is.orphaned,.but.s
15d80 68 6f 77 20 6f 72 70 68 61 6e 65 64 20 66 69 6c 65 73 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 how.orphaned.files.for.now......
15da0 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 66 20 27 6e 65 77 29 0a 20 20 20 20 20 20 20 20 ...(and.(eql.diff.'new).........
15dc0 20 20 20 20 20 28 69 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 .....(if.(ztree-diff-node-left-p
15de0 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 ath.node)..................ztree
15e00 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 0a 20 20 20 -diff-show-left-orphan-files....
15e20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 72 69 67 68 ............ztree-diff-show-righ
15e40 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 t-orphan-files)).........;;.or.i
15e60 74 20 69 73 20 69 67 6e 6f 72 65 64 20 62 75 74 20 77 65 20 73 68 6f 77 20 69 67 6e 6f 72 65 64 t.is.ignored.but.we.show.ignored
15e80 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 66 20 .for.now.........(and.(eql.diff.
15ea0 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 'ignore)..............ztree-diff
15ec0 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 3b 3b -show-filtered-files).........;;
15ee0 20 6f 72 20 74 68 65 79 20 61 72 65 20 73 61 6d 65 20 62 75 74 20 77 65 20 73 68 6f 77 20 73 61 .or.they.are.same.but.we.show.sa
15f00 6d 65 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 me.for.now.........(and.(eql.dif
15f20 66 20 27 73 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 f.'same)..............ztree-diff
15f40 2d 73 68 6f 77 2d 65 71 75 61 6c 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f -show-equal-files))))..(defmacro
15f60 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 28 .ztree-diff-define-toggle-show.(
15f80 77 68 61 74 29 0a 20 20 28 6c 65 74 20 28 28 66 75 6e 63 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 what)...(let.((funcsymbol.(inter
15fa0 6e 20 28 63 6f 6e 63 61 74 20 22 7a 74 72 65 65 2d 64 69 66 66 2d 74 6f 67 67 6c 65 2d 73 68 6f n.(concat."ztree-diff-toggle-sho
15fc0 77 2d 22 20 77 68 61 74 20 22 2d 66 69 6c 65 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 61 w-".what."-files"))).........(va
15fe0 72 69 61 62 6c 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 7a 74 72 65 65 2d 64 69 riable.(intern.(concat."ztree-di
16000 66 66 2d 73 68 6f 77 2d 22 20 77 68 61 74 20 22 2d 66 69 6c 65 73 22 29 29 29 0a 20 20 20 20 20 ff-show-".what."-files")))......
16020 20 20 20 28 66 75 6e 64 65 73 63 20 28 63 6f 6e 63 61 74 20 22 54 6f 67 67 6c 65 20 76 69 73 69 ...(fundesc.(concat."Toggle.visi
16040 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 22 20 77 68 61 74 20 22 20 66 69 6c 65 73 2f 64 69 72 bility.of.the.".what.".files/dir
16060 65 63 74 6f 72 69 65 73 22 29 29 29 0a 20 20 20 20 60 28 64 65 66 75 6e 20 2c 66 75 6e 63 73 79 ectories"))).....`(defun.,funcsy
16080 6d 62 6f 6c 20 28 29 0a 20 20 20 20 20 20 20 2c 66 75 6e 64 65 73 63 0a 20 20 20 20 20 20 20 28 mbol.()........,fundesc........(
160a0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 76 61 72 69 61 interactive)........(setq.,varia
160c0 62 6c 65 20 28 6e 6f 74 20 2c 76 61 72 69 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 28 6d 65 73 ble.(not.,variable))........(mes
160e0 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 2c 76 61 72 69 61 62 6c 65 20 22 53 68 6f 77 sage.(concat.(if.,variable."Show
16100 20 22 20 22 48 69 64 65 20 22 29 20 2c 77 68 61 74 20 22 20 66 69 6c 65 73 22 29 29 0a 20 20 20 ."."Hide.").,what.".files"))....
16120 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 ....(ztree-refresh-buffer))))..(
16140 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 65 ztree-diff-define-toggle-show."e
16160 71 75 61 6c 22 29 0a 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 qual").(ztree-diff-define-toggle
16180 2d 73 68 6f 77 20 22 66 69 6c 74 65 72 65 64 22 29 0a 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 -show."filtered").(ztree-diff-de
161a0 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 6c 65 66 74 2d 6f 72 70 68 61 6e 22 29 0a fine-toggle-show."left-orphan").
161c0 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 (ztree-diff-define-toggle-show."
161e0 72 69 67 68 74 2d 6f 72 70 68 61 6e 22 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 right-orphan")..(defun.ztree-dif
16200 66 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 28 29 0a 20 20 f-toggle-show-orphan-files.()...
16220 22 54 6f 67 67 6c 65 20 76 69 73 69 62 69 6c 69 74 79 20 6f 66 20 6c 65 66 74 20 61 6e 64 20 72 "Toggle.visibility.of.left.and.r
16240 69 67 68 74 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ight.orphan.files."...(interacti
16260 76 65 29 0a 20 20 28 6c 65 74 20 28 28 73 68 6f 77 20 28 6e 6f 74 20 7a 74 72 65 65 2d 64 69 66 ve)...(let.((show.(not.ztree-dif
16280 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 f-show-left-orphan-files))).....
162a0 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 (setq.ztree-diff-show-left-orpha
162c0 6e 2d 66 69 6c 65 73 20 73 68 6f 77 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 n-files.show).....(setq.ztree-di
162e0 66 66 2d 73 68 6f 77 2d 72 69 67 68 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 73 68 6f 77 29 ff-show-right-orphan-files.show)
16300 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 73 68 6f 77 20 22 .....(message.(concat.(if.show."
16320 53 68 6f 77 22 20 22 48 69 64 65 22 29 20 22 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 22 29 29 0a Show"."Hide").".orphan.files")).
16340 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b ....(ztree-refresh-buffer)))..;;
16360 0a 3b 3b 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 7a 74 72 65 65 2d .;;.Implementation.of.the.ztree-
16380 70 72 6f 74 6f 63 6f 6c 0a 3b 3b 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 protocol.;;..(cl-defmethod.ztree
163a0 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 -node-visible-p.((node.ztree-dif
163c0 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 f-node))..."Return.T.if.the.NODE
163e0 20 73 68 61 6c 6c 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 6e 6f 64 .shall.be.visible."...(ztree-nod
16400 65 2d 69 73 2d 76 69 73 69 62 6c 65 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 e-is-visible.node))..(cl-defmeth
16420 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 od.ztree-node-short-name.((node.
16440 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 ztree-diff-node))..."Return.the.
16460 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 short.name.for.a.node."...(ztree
16480 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 6e 6f -diff-node-short-name-wrapper.no
164a0 64 65 20 6e 69 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f de.nil))..(cl-defmethod.ztree-no
164c0 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 de-right-short-name.((node.ztree
164e0 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 -diff-node))..."Return.the.short
16500 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 .name.for.a.node."...(ztree-diff
16520 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 6e 6f 64 65 20 74 29 -node-short-name-wrapper.node.t)
16540 29 0a 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 )...(cl-defmethod.ztree-node-exp
16560 61 6e 64 61 62 6c 65 2d 70 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 andable-p.((node.ztree-diff-node
16580 29 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 65 78 ))..."Return.T.if.the.node.is.ex
165a0 70 61 6e 64 61 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 73 pandable."...(ztree-diff-node-is
165c0 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 -directory.node))..(cl-defmethod
165e0 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 28 6e 6f 64 65 31 20 7a 74 72 65 65 2d .ztree-node-equal.((node1.ztree-
16600 64 69 66 66 2d 6e 6f 64 65 29 20 28 6e 6f 64 65 32 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 diff-node).(node2.ztree-diff-nod
16620 65 29 29 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 e))..."Equality.function.for.NOD
16640 45 31 20 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 E1.and.NODE2..Return.T.if.nodes.
16660 61 72 65 20 65 71 75 61 6c 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 65 71 are.equal"...(ztree-diff-node-eq
16680 75 61 6c 20 6e 6f 64 65 31 20 6e 6f 64 65 32 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 ual.node1.node2))..(cl-defmethod
166a0 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 28 28 6e 6f 64 65 20 7a 74 72 65 .ztree-node-children.((node.ztre
166c0 65 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f e-diff-node))..."Return.a.list.o
166e0 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e f.NODE.children"...(ztree-diff-n
16700 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 ode-children.node))..(cl-defmeth
16720 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 28 28 6e 6f 64 65 20 7a 74 72 65 od.ztree-node-action.((node.ztre
16740 65 2d 64 69 66 66 2d 6e 6f 64 65 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 6e e-diff-node).hard)..."Perform.an
16760 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 73 .action.when.the.Return.is.press
16780 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ed.on.a.NODE."...(ztree-diff-nod
167a0 65 2d 61 63 74 69 6f 6e 20 6e 6f 64 65 20 68 61 72 64 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 e-action.node.hard))..(cl-defmet
167c0 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 hod.ztree-node-side.((node.ztree
167e0 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 69 -diff-node))..."Determine.the.si
16800 64 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e de.of.the.NODE."...(ztree-diff-n
16820 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a ode-side.node))..(cl-defmethod.z
16840 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 66 tree-node-face.((node.ztree-diff
16860 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 77 72 69 74 -node))..."Return.a.face.to.writ
16880 65 20 61 20 4e 4f 44 45 20 69 6e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d e.a.NODE.in"...(ztree-diff-node-
168a0 66 61 63 65 20 6e 6f 64 65 29 29 0a 20 20 0a 3b 3b 0a 3b 3b 20 45 6e 74 72 79 20 70 6f 69 6e 74 face.node))....;;.;;.Entry.point
168c0 0a 3b 3b 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 .;;..;;;###autoload.(defun.ztree
168e0 2d 64 69 66 66 20 28 64 69 72 31 20 64 69 72 32 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 69 -diff.(dir1.dir2)..."Create.an.i
16900 6e 74 65 72 61 63 74 69 76 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 64 69 72 65 63 nteractive.buffer.with.the.direc
16920 74 6f 72 79 20 74 72 65 65 20 6f 66 20 74 68 65 20 70 61 74 68 20 67 69 76 65 6e 2e 0a 41 72 67 tory.tree.of.the.path.given..Arg
16940 75 6d 65 6e 74 20 44 49 52 31 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 41 72 67 75 6d ument.DIR1.left.directory..Argum
16960 65 6e 74 20 44 49 52 32 20 72 69 67 68 74 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 69 6e ent.DIR2.right.directory."...(in
16980 74 65 72 61 63 74 69 76 65 20 22 44 4c 65 66 74 20 64 69 72 65 63 74 6f 72 79 20 5c 6e 44 52 69 teractive."DLeft.directory.\nDRi
169a0 67 68 74 20 64 69 72 65 63 74 6f 72 79 20 22 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 ght.directory.")...(unless.(and.
169c0 64 69 72 31 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 31 29 29 0a 20 20 dir1.(file-directory-p.dir1))...
169e0 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 ..(error."Path.%s.is.not.a.direc
16a00 74 6f 72 79 22 20 64 69 72 31 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 65 78 69 tory".dir1))...(unless.(file-exi
16a20 73 74 73 2d 70 20 64 69 72 31 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 sts-p.dir1).....(error."Path.%s.
16a40 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 31 29 29 0a 20 20 28 75 6e 6c 65 73 73 does.not.exist".dir1))...(unless
16a60 20 28 61 6e 64 20 64 69 72 32 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 .(and.dir2.(file-directory-p.dir
16a80 32 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 69 73 20 6e 6f 74 20 61 2)).....(error."Path.%s.is.not.a
16aa0 20 64 69 72 65 63 74 6f 72 79 22 20 64 69 72 32 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 .directory".dir2))...(unless.(fi
16ac0 6c 65 2d 65 78 69 73 74 73 2d 70 20 64 69 72 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 le-exists-p.dir2).....(error."Pa
16ae0 74 68 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 32 29 29 0a 20 20 28 th.%s.does.not.exist".dir2))...(
16b00 75 6e 6c 65 73 73 20 28 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d 70 20 64 69 72 31 20 64 unless.(ztree-same-host-p.dir1.d
16b20 69 72 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 70 61 72 65 64 20 64 69 72 65 63 74 ir2).....(error."Compared.direct
16b40 6f 72 69 65 73 20 61 72 65 20 6e 6f 74 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f 73 74 22 29 ories.are.not.on.the.same.host")
16b60 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 )...(let*.((model...........(ztr
16b80 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 20 6e 69 6c 20 64 69 72 31 20 64 69 72 ee-diff-node-create.nil.dir1.dir
16ba0 32 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 2d 6e 61 6d 65 20 28 63 6f 6e 63 2.nil))..........(buf-name.(conc
16bc0 61 74 20 22 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at."*"..........................
16be0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6d 6f ..(ztree-diff-node-short-name.mo
16c00 64 65 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 del)............................
16c20 22 20 3c 2d 2d 3e 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ".<-->."........................
16c40 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 ....(ztree-diff-node-right-short
16c60 2d 6e 61 6d 65 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.model)....................
16c80 20 20 20 20 20 20 20 20 22 2a 22 29 29 29 0a 20 20 20 20 3b 3b 20 61 66 74 65 72 20 74 68 69 73 ........"*"))).....;;.after.this
16ca0 20 63 6f 6d 6d 61 6e 64 20 77 65 20 61 72 65 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 2c .command.we.are.in.a.new.buffer,
16cc0 0a 20 20 20 20 3b 3b 20 73 6f 20 61 6c 6c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 73 .....;;.so.all.buffer-local.vars
16ce0 20 61 72 65 20 76 61 6c 69 64 0a 20 20 20 20 28 7a 74 72 65 65 2d 76 69 65 77 20 62 75 66 2d 6e .are.valid.....(ztree-view.buf-n
16d00 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 7a 74 72 65 65 2d 64 69 66 66 ame.................#'ztree-diff
16d20 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 -insert-buffer-header...........
16d40 20 20 20 20 20 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d ......model.................(lam
16d60 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d bda.()...................(ztree-
16d80 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 65 74 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 23 27 7a 74 72 65 diff-model-set-ignore-fun.#'ztre
16da0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 67 6e 6f 72 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 e-diff-node-ignore-p)...........
16dc0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 ........(setq.ztree-diff-dirs-pa
16de0 69 72 20 28 63 6f 6e 73 20 64 69 72 31 20 64 69 72 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ir.(cons.dir1.dir2))............
16e00 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 .......(ztree-diff-node-recreate
16e20 2d 77 69 74 68 2d 70 72 6f 67 72 65 73 73 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 -with-progress.model)...........
16e40 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 64 69 66 66 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 ........(ztreediff-mode)).......
16e60 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 ..........t)))....(provide.'ztre
16e80 65 2d 64 69 66 66 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 20 65 6e 64 73 20 68 e-diff).;;;.ztree-diff.el.ends.h
16ea0 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ere.............................
16ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-util.el.......
17020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17060 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
17080 30 30 30 36 37 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 34 35 00 20 30 00 00 00 0006733.00000000000.013745..0...
170a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
170c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
170e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17100 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...................
17120 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...................
17140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17200 3b 3b 3b 20 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 20 2d 2d 2d 20 41 75 78 69 6c 69 61 72 79 20 ;;;.ztree-util.el.---.Auxiliary.
17220 75 74 69 6c 69 74 69 65 73 20 66 6f 72 20 74 68 65 20 7a 74 72 65 65 20 70 61 63 6b 61 67 65 20 utilities.for.the.ztree.package.
17240 2d 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 -*-.lexical-binding:.t;.-*-..;;.
17260 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f Copyright.(C).2013-2021..Free.So
17280 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 ftware.Foundation,.Inc..;;.;;.Au
172a0 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 thor:.Alexey.Veretennikov.<alexe
172c0 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 y.veretennikov@gmail.com>.;;.;;.
172e0 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 Created:.2013-11-11.;;.;;.Keywor
17300 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f ds:.files.tools.;;.URL:.https://
17320 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 github.com/fourier/ztree.;;.Comp
17340 61 74 69 62 69 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 atibility:.GNU.Emacs.24.x.;;.;;.
17360 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a This.file.is.part.of.GNU.Emacs..
17380 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 ;;.;;.GNU.Emacs.is.free.software
173a0 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 :.you.can.redistribute.it.and/or
173c0 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 65 72 6d 73 20 6f 66 .modify.;;.it.under.the.terms.of
173e0 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 69 63 65 6e 73 65 20 .the.GNU.General.Public.License.
17400 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 65 65 20 53 6f 66 74 as.published.by.;;.the.Free.Soft
17420 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 ware.Foundation,.either.version.
17440 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 3.of.the.License,.or.;;.(at.your
17460 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b .option).any.later.version..;;.;
17480 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 ;.GNU.Emacs.is.distributed.in.th
174a0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b e.hope.that.it.will.be.useful,.;
174c0 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ;.but.WITHOUT.ANY.WARRANTY;.with
174e0 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
17500 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 .;;.MERCHANTABILITY.or.FITNESS.F
17520 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
17540 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 e.;;.GNU.General.Public.License.
17560 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
17580 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
175a0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
175c0 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 ng.with.GNU.Emacs...If.not,.see.
175e0 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a <http://www.gnu.org/licenses/>..
17600 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0a ;;.;;;.Commentary:..;;;.Code:...
17620 28 64 65 66 6d 61 63 72 6f 20 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 28 6e (defmacro.def-ztree-local-fun.(n
17640 61 6d 65 20 64 6f 63 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 ame.doc)..."Create.a.buffer-loca
17660 6c 20 76 61 72 69 61 62 6c 65 20 4e 41 4d 45 2d 46 55 4e 20 61 6e 64 20 61 20 66 75 6e 63 74 69 l.variable.NAME-FUN.and.a.functi
17680 6f 6e 20 4e 41 4d 45 2e 0a 42 6f 74 68 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 61 20 66 75 on.NAME..Both.variables.and.a.fu
176a0 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 68 61 76 65 20 61 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e nction.will.have.a.documentation
176c0 20 44 4f 43 2e 0a 46 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 46 55 4e 43 41 4c 4c 20 74 68 65 20 .DOC..Function.will.FUNCALL.the.
176e0 76 61 72 69 61 62 6c 65 20 4e 41 4d 45 2d 46 55 4e 2e 0a 55 73 65 64 20 74 6f 20 63 72 65 61 74 variable.NAME-FUN..Used.to.creat
17700 65 20 63 61 6c 6c 62 61 63 6b 73 2e 0a 45 78 61 6d 70 6c 65 3a 0a 28 6d 61 63 72 6f 65 78 70 61 e.callbacks..Example:.(macroexpa
17720 6e 64 2d 31 20 27 28 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 61 64 64 20 5c nd-1.'(def-ztree-local-fun.add.\
17740 22 41 64 64 69 74 69 6f 6e 5c 22 29 29 0a 28 70 72 6f 67 6e 0a 20 20 28 64 65 66 76 61 72 2d 6c "Addition\")).(progn...(defvar-l
17760 6f 63 61 6c 20 61 64 64 2d 66 75 6e 20 6e 69 6c 20 5c 22 41 64 64 69 74 69 6f 6e 5c 22 29 0a 20 ocal.add-fun.nil.\"Addition\")..
17780 20 28 64 65 66 75 6e 20 61 64 64 20 28 26 72 65 73 74 20 61 72 67 73 29 20 5c 22 41 64 64 69 74 .(defun.add.(&rest.args).\"Addit
177a0 69 6f 6e 5c 22 20 28 61 70 70 6c 79 20 61 64 64 2d 66 75 6e 20 61 72 67 73 29 29 29 22 0a 20 20 ion\".(apply.add-fun.args)))"...
177c0 28 6c 65 74 20 28 28 76 61 72 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 (let.((var.(intern.(concat.(symb
177e0 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 22 2d 66 75 6e 22 29 29 29 29 0a 20 20 20 20 60 28 70 ol-name.name)."-fun")))).....`(p
17800 72 6f 67 6e 0a 20 20 20 20 20 20 20 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 2c 76 61 72 20 6e rogn........(defvar-local.,var.n
17820 69 6c 0a 20 20 20 20 20 20 20 20 20 2c 64 6f 63 29 0a 20 20 20 20 20 20 20 28 64 65 66 75 6e 20 il..........,doc)........(defun.
17840 2c 6e 61 6d 65 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 2c 64 6f 63 ,name.(&rest.args)..........,doc
17860 0a 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 2c 76 61 72 20 61 72 67 73 29 29 29 29 29 0a ..........(apply.,var.args))))).
17880 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 69 6e 64 20 28 77 68 65 72 65 20 77 68 69 63 68 29 .(defun.ztree-find.(where.which)
178a0 0a 20 20 22 46 69 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 57 48 45 ..."Find.element.of.the.list.WHE
178c0 52 45 20 6d 61 74 63 68 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 57 48 49 43 48 2e 22 0a 20 20 RE.matching.predicate.WHICH."...
178e0 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 74 20 77 (catch.'found.....(dolist.(elt.w
17900 68 65 72 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 77 68 69 63 68 here).......(when.(funcall.which
17920 20 65 6c 74 29 0a 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 65 6c 74 29 .elt).........(throw.'found.elt)
17940 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 69 6c 74 65 )).....nil))..(defun.ztree-filte
17960 72 20 28 63 6f 6e 64 70 20 6c 73 74 29 0a 20 20 22 46 69 6c 74 65 72 20 6f 75 74 20 65 6c 65 6d r.(condp.lst)..."Filter.out.elem
17980 65 6e 74 73 20 6e 6f 74 20 73 61 74 69 73 66 79 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 43 4f ents.not.satisfying.predicate.CO
179a0 4e 44 50 20 69 6e 20 74 68 65 20 6c 69 73 74 20 4c 53 54 2e 0a 54 61 6b 65 6e 20 66 72 6f 6d 20 NDP.in.the.list.LST..Taken.from.
179c0 68 74 74 70 3a 2f 2f 77 77 77 2e 65 6d 61 63 73 77 69 6b 69 2e 6f 72 67 2f 65 6d 61 63 73 2f 45 http://www.emacswiki.org/emacs/E
179e0 6c 69 73 70 43 6f 6f 6b 62 6f 6f 6b 23 74 6f 63 33 39 22 0a 20 20 28 64 65 6c 71 20 6e 69 6c 0a lispCookbook#toc39"...(delq.nil.
17a00 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 61 6e 64 ........(mapcar.(lambda.(x).(and
17a20 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6e 64 70 20 78 29 20 78 29 29 20 6c 73 74 29 29 29 0a 0a 0a .(funcall.condp.x).x)).lst)))...
17a40 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 72 69 6e 74 61 62 6c 65 2d 73 74 72 69 6e 67 20 28 73 (defun.ztree-printable-string.(s
17a60 74 72 69 6e 67 29 0a 20 20 22 53 74 72 69 70 20 6e 65 77 6c 69 6e 65 20 63 68 61 72 61 63 74 65 tring)..."Strip.newline.characte
17a80 72 20 66 72 6f 6d 20 66 69 6c 65 20 6e 61 6d 65 73 2c 20 6c 69 6b 65 20 60 49 63 6f 6e 5c 6e 27 r.from.file.names,.like.`Icon\n'
17aa0 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 52 49 4e 47 20 73 74 72 69 6e 67 20 74 6f 20 70 72 6f 63 ..Argument.STRING.string.to.proc
17ac0 65 73 73 2e 27 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 ess.'."...(replace-regexp-in-str
17ae0 69 6e 67 20 22 5c 6e 22 20 22 22 20 73 74 72 69 6e 67 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 ing."\n"."".string))...(defun.zt
17b00 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 66 69 6c 65 29 0a 20 20 22 42 79 ree-file-short-name.(file)..."By
17b20 20 67 69 76 65 6e 20 46 49 4c 45 20 6e 61 6d 65 20 72 65 74 75 72 6e 20 62 61 73 65 20 66 69 6c .given.FILE.name.return.base.fil
17b40 65 2f 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2e 0a 54 61 6b 65 6e 20 66 72 6f 6d 20 68 74 74 e/directory.name..Taken.from.htt
17b60 70 3a 2f 2f 6c 69 73 74 73 2e 67 6e 75 2e 6f 72 67 2f 61 72 63 68 69 76 65 2f 68 74 6d 6c 2f 65 p://lists.gnu.org/archive/html/e
17b80 6d 61 63 73 2d 64 65 76 65 6c 2f 32 30 31 31 2d 30 31 2f 6d 73 67 30 31 32 33 38 2e 68 74 6d 6c macs-devel/2011-01/msg01238.html
17ba0 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d "...(let*.((dir.(directory-file-
17bc0 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 6d 70 6c 65 2d 64 69 72 name.file))..........(simple-dir
17be0 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 64 69 72 29 29 29 0a .(file-name-nondirectory.dir))).
17c00 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f ....;;.check.if.the.root.directo
17c20 72 79 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 22 22 20 73 69 6d 70 6c 65 2d 64 69 ry.....(if.(string=."".simple-di
17c40 72 29 0a 20 20 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 70 72 69 6e r).........dir.......(ztree-prin
17c60 74 61 62 6c 65 2d 73 74 72 69 6e 67 20 73 69 6d 70 6c 65 2d 64 69 72 29 29 29 29 0a 0a 0a 28 64 table-string.simple-dir))))...(d
17c80 65 66 75 6e 20 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 28 76 61 6c 75 65 29 0a 20 20 22 52 efun.ztree-car-atom.(value)..."R
17ca0 65 74 75 72 6e 20 56 41 4c 55 45 20 69 66 20 76 61 6c 75 65 20 69 73 20 61 6e 20 61 74 6f 6d 2c eturn.VALUE.if.value.is.an.atom,
17cc0 20 6f 74 68 65 72 77 69 73 65 20 28 63 61 72 20 76 61 6c 75 65 29 20 6f 72 20 6e 69 6c 2e 0a 55 .otherwise.(car.value).or.nil..U
17ce0 73 65 64 20 73 69 6e 63 65 20 60 63 61 72 2d 73 61 66 65 27 20 72 65 74 75 72 6e 73 20 6e 69 6c sed.since.`car-safe'.returns.nil
17d00 20 66 6f 72 20 61 74 6f 6d 73 22 0a 20 20 28 69 66 20 28 61 74 6f 6d 20 76 61 6c 75 65 29 20 76 .for.atoms"...(if.(atom.value).v
17d20 61 6c 75 65 20 28 63 61 72 20 76 61 6c 75 65 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 alue.(car.value)))...(defun.ztre
17d40 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 28 74 65 78 74 20 66 61 63 65 29 0a 20 e-insert-with-face.(text.face)..
17d60 20 22 49 6e 73 65 72 74 20 54 45 58 54 20 77 69 74 68 20 74 68 65 20 46 41 43 45 20 70 72 6f 76 ."Insert.TEXT.with.the.FACE.prov
17d80 69 64 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a ided."...(let.((start.(point))).
17da0 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 0a 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d ....(insert.text).....(put-text-
17dc0 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 20 66 61 63 property.start.(point).'face.fac
17de0 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 e)))..(defun.ztree-untrampify-fi
17e00 6c 65 6e 61 6d 65 20 28 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 46 49 4c 45 20 61 73 20 lename.(file)..."Return.FILE.as.
17e20 74 68 65 20 6c 6f 63 61 6c 20 66 69 6c 65 20 6e 61 6d 65 2e 22 0a 20 20 28 6f 72 20 28 66 69 6c the.local.file.name."...(or.(fil
17e40 65 2d 72 65 6d 6f 74 65 2d 70 20 66 69 6c 65 20 27 6c 6f 63 61 6c 6e 61 6d 65 29 20 66 69 6c 65 e-remote-p.file.'localname).file
17e60 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 71 75 6f 74 69 66 79 2d 73 74 72 69 6e 67 20 ))..(defun.ztree-quotify-string.
17e80 28 73 74 72 29 0a 20 20 22 53 75 72 72 6f 75 6e 64 20 53 54 52 20 77 69 74 68 20 71 75 6f 74 65 (str)..."Surround.STR.with.quote
17ea0 73 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 20 73 74 72 20 22 5c 22 22 29 29 0a 0a 28 s."...(concat."\"".str."\""))..(
17ec0 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d 70 20 28 66 69 6c 65 31 20 66 defun.ztree-same-host-p.(file1.f
17ee0 69 6c 65 32 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 46 49 4c 45 31 20 61 6e 64 20 46 ile2)..."Return.t.if.FILE1.and.F
17f00 49 4c 45 32 20 61 72 65 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f 73 74 2e 22 0a 20 20 28 6c ILE2.are.on.the.same.host."...(l
17f20 65 74 20 28 28 66 69 6c 65 31 2d 72 65 6d 6f 74 65 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 et.((file1-remote.(file-remote-p
17f40 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 2d 72 65 6d 6f 74 65 20 28 .file1)).........(file2-remote.(
17f60 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 66 69 6c 65 32 29 29 29 0a 20 20 20 20 28 73 74 72 69 file-remote-p.file2))).....(stri
17f80 6e 67 2d 65 71 75 61 6c 20 66 69 6c 65 31 2d 72 65 6d 6f 74 65 20 66 69 6c 65 32 2d 72 65 6d 6f ng-equal.file1-remote.file2-remo
17fa0 74 65 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 0a 0a 3b te)))...(provide.'ztree-util)..;
17fc0 3b 3b 20 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 ;;.ztree-util.el.ends.here......
17fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/README.md...........
18020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18060 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
18080 30 30 31 33 36 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 37 31 00 20 30 00 00 00 0013640.00000000000.012571..0...
180a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
180c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
180e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18100 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...................
18120 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...................
18140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18200 23 20 7a 74 72 65 65 0a 5a 74 72 65 65 20 69 73 20 61 20 70 72 6f 6a 65 63 74 20 64 65 64 69 63 #.ztree.Ztree.is.a.project.dedic
18220 61 74 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73 65 76 65 72 61 ated.to.implementation.of.severa
18240 6c 20 74 65 78 74 2d 74 72 65 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 69 6e 73 69 64 65 20 l.text-tree.applications.inside.
18260 5b 47 4e 55 20 45 6d 61 63 73 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 [GNU.Emacs](http://www.gnu.org/s
18280 6f 66 74 77 61 72 65 2f 65 6d 61 63 73 2f 29 2e 20 49 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 oftware/emacs/)..It.consists.of.
182a0 32 20 73 75 62 70 72 6f 6a 65 63 74 73 3a 20 2a 2a 7a 74 72 65 65 2d 64 69 66 66 2a 2a 20 61 6e 2.subprojects:.**ztree-diff**.an
182c0 64 20 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 20 28 74 68 65 20 62 61 73 69 73 20 6f 66 20 2a 2a d.**ztree-dir**.(the.basis.of.**
182e0 7a 74 72 65 65 2d 64 69 66 66 2a 2a 29 2e 20 41 76 61 69 6c 61 62 6c 65 20 69 6e 20 5b 47 4e 55 ztree-diff**)..Available.in.[GNU
18300 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 29 20 61 6e .ELPA](https://elpa.gnu.org/).an
18320 64 20 5b 4d 45 4c 50 41 5d 28 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 29 2e 0a d.[MELPA](http://melpa.org/#/)..
18340 0a 23 23 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 23 23 23 20 55 73 69 6e 67 20 45 4c 50 41 .##.Installation..###.Using.ELPA
18360 0a 50 72 65 73 73 20 60 4d 2d 78 60 20 69 6e 20 47 4e 55 20 45 6d 61 63 73 20 61 6e 64 20 77 72 .Press.`M-x`.in.GNU.Emacs.and.wr
18380 69 74 65 20 60 6c 69 73 74 2d 70 61 63 6b 61 67 65 73 60 2e 20 46 69 6e 64 20 74 68 65 20 60 7a ite.`list-packages`..Find.the.`z
183a0 74 72 65 65 60 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 20 61 6e tree`.in.the.list.of.packages.an
183c0 64 20 70 72 65 73 73 20 60 69 60 20 74 6f 20 73 65 6c 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 d.press.`i`.to.select.this.packa
183e0 67 65 2c 20 60 78 60 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 70 61 63 6b 61 67 65 2e 0a ge,.`x`.to.install.the.package..
18400 0a 23 23 23 20 55 73 69 6e 67 20 4d 45 4c 50 41 0a 41 64 64 20 74 6f 20 79 6f 75 72 20 60 2e 65 .###.Using.MELPA.Add.to.your.`.e
18420 6d 61 63 73 60 20 6f 72 20 60 2e 65 6d 61 63 73 2e 64 2f 69 6e 69 74 2e 65 6c 60 20 66 6f 6c 6c macs`.or.`.emacs.d/init.el`.foll
18440 6f 77 69 6e 67 20 6c 69 6e 65 73 3a 0a 0a 60 60 60 73 63 68 65 6d 65 0a 28 73 65 74 71 20 70 61 owing.lines:..```scheme.(setq.pa
18460 63 6b 61 67 65 2d 61 72 63 68 69 76 65 73 20 27 28 28 22 67 6e 75 22 20 2e 20 22 68 74 74 70 3a ckage-archives.'(("gnu"..."http:
18480 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 22 29 0a 20 20 20 20 20 //elpa.gnu.org/packages/")......
184a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 6c 70 61 22 20 2e 20 22 ....................("melpa"..."
184c0 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6d 69 6c 6b 62 6f 78 2e 6e 65 74 2f 70 61 63 6b 61 67 65 http://melpa.milkbox.net/package
184e0 73 2f 22 29 29 29 0a 60 60 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s/"))).```......................
18500 20 20 20 20 0a 46 6f 6c 6c 6f 77 20 74 68 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 69 6e 73 .....Follow.the.installation.ins
18520 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 47 4e 55 20 45 4c 50 41 20 61 62 6f 76 65 tructions.for.the.GNU.ELPA.above
18540 2e 0a 0a 23 23 23 20 4d 61 6e 75 61 6c 0a 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ...###.Manual.Add.the.following.
18560 74 6f 20 79 6f 75 72 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 0a 60 60 60 73 63 68 65 6d 65 0a to.your..emacs.file:..```scheme.
18580 28 70 75 73 68 20 28 73 75 62 73 74 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 (push.(substitute-in-file-name."
185a0 70 61 74 68 2d 74 6f 2d 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 path-to-ztree-directory").load-p
185c0 61 74 68 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 29 0a 60 60 60 0a 0a 23 23 20 7a 74 ath).(require.'ztree).```..##.zt
185e0 72 65 65 2d 64 69 66 66 0a 2a 2a 7a 74 72 65 65 2d 64 69 66 66 2a 2a 20 69 73 20 61 20 64 69 72 ree-diff.**ztree-diff**.is.a.dir
18600 65 63 74 6f 72 79 2d 64 69 66 66 20 74 6f 6f 6c 20 66 6f 72 20 45 6d 61 63 73 20 69 6e 73 70 69 ectory-diff.tool.for.Emacs.inspi
18620 72 65 64 20 62 79 20 63 6f 6d 6d 65 72 63 69 61 6c 20 74 6f 6f 6c 73 20 6c 69 6b 65 20 42 65 79 red.by.commercial.tools.like.Bey
18640 6f 6e 64 20 43 6f 6d 70 61 72 65 20 6f 72 20 41 72 61 78 69 73 20 4d 65 72 67 65 2e 20 49 74 20 ond.Compare.or.Araxis.Merge..It.
18660 73 75 70 70 6f 72 74 73 20 73 68 6f 77 69 6e 67 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 supports.showing.the.difference.
18680 62 65 74 77 65 65 6e 20 74 77 6f 20 64 69 72 65 63 74 6f 72 69 65 73 3b 20 63 61 6c 6c 69 6e 67 between.two.directories;.calling
186a0 20 2a 2a 45 64 69 66 66 2a 2a 20 66 6f 72 20 6e 6f 74 20 6d 61 74 63 68 69 6e 67 20 66 69 6c 65 .**Ediff**.for.not.matching.file
186c0 73 2c 20 63 6f 70 79 69 6e 67 20 62 65 74 77 65 65 6e 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 s,.copying.between.directories,.
186e0 64 65 6c 65 74 69 6e 67 20 66 69 6c 65 2f 64 69 72 65 63 74 6f 72 69 65 73 2c 20 68 69 64 69 6e deleting.file/directories,.hidin
18700 67 2f 73 68 6f 77 69 6e 67 20 65 71 75 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 g/showing.equal.files/directorie
18720 73 2e 0a 0a 54 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 69 74 73 65 6c 66 20 70 65 72 66 6f 72 s...The.comparison.itself.perfor
18740 6d 65 64 20 77 69 74 68 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 2a 2a 47 4e 55 20 64 69 66 66 med.with.the.external.**GNU.diff
18760 2a 2a 20 74 6f 6f 6c 2c 20 73 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 6f 6e **.tool,.so.make.sure.to.have.on
18780 65 20 69 6e 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 70 61 74 68 2e 20 56 65 72 69 66 69 e.in.the.executable.path..Verifi
187a0 65 64 20 6f 6e 20 4f 53 58 20 61 6e 64 20 4c 69 6e 75 78 2e 0a 0a 49 66 20 6f 6e 65 20 77 61 6e ed.on.OSX.and.Linux...If.one.wan
187c0 74 73 20 74 6f 20 68 61 76 65 20 61 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20 61 70 70 6c 69 63 61 ts.to.have.a.stand-alone.applica
187e0 74 69 6f 6e 2c 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 28 57 49 50 29 5b 7a 64 69 72 63 6d 70 tion,.consider.the.(WIP)[zdircmp
18800 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 64 69 ](https://github.com/fourier/zdi
18820 72 63 6d 70 29 20 70 72 6f 6a 65 63 74 20 62 61 73 65 64 20 6f 6e 20 2a 2a 7a 74 72 65 65 2d 64 rcmp).project.based.on.**ztree-d
18840 69 66 66 2a 2a 2e 0a 0a 43 61 6c 6c 20 74 68 65 20 60 7a 74 72 65 65 2d 64 69 66 66 60 20 69 6e iff**...Call.the.`ztree-diff`.in
18860 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 60 60 60 0a 4d 2d 78 20 7a 74 72 teractive.function:..```.M-x.ztr
18880 65 65 2d 64 69 66 66 0a 60 60 60 0a 54 68 65 6e 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 70 65 ee-diff.```.Then.you.need.to.spe
188a0 63 69 66 79 20 74 68 65 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 64 69 72 65 63 74 6f 72 cify.the.left.and.right.director
188c0 69 65 73 20 74 6f 20 63 6f 6d 70 61 72 65 2e 0a 0a 23 23 23 20 48 6f 74 6b 65 79 73 20 73 75 70 ies.to.compare...###.Hotkeys.sup
188e0 70 6f 72 74 65 64 0a 20 2a 20 4f 70 65 6e 2f 63 6c 6f 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 ported..*.Open/close.directories
18900 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 60 52 45 54 60 20 6f 72 20 60 53 70 .with.double-click,.`RET`.or.`Sp
18920 61 63 65 60 20 6b 65 79 73 2e 0a 20 2a 20 54 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 70 61 72 ace`.keys...*.To.jump.to.the.par
18940 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 65 20 60 42 61 63 6b 73 70 61 63 ent.directory,.hit.the.`Backspac
18960 65 60 20 6b 65 79 2e 0a 20 2a 20 54 6f 20 74 6f 67 67 6c 65 20 6f 70 65 6e 2f 63 6c 6f 73 65 64 e`.key...*.To.toggle.open/closed
18980 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 20 6f 66 20 74 68 65 20 63 75 72 .state.of.the.subtree.of.the.cur
189a0 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 65 20 60 78 60 20 6b 65 79 2e rent.directory,.hit.the.`x`.key.
189c0 0a 20 2a 20 60 52 45 54 60 20 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 73 20 73 74 61 ..*.`RET`.on.different.files.sta
189e0 72 74 73 20 74 68 65 20 2a 2a 45 64 69 66 66 2a 2a 20 28 6f 72 20 6f 70 65 6e 20 66 69 6c 65 20 rts.the.**Ediff**.(or.open.file.
18a00 69 66 20 6f 6e 65 20 61 62 73 65 6e 74 20 6f 72 20 74 68 65 20 73 61 6d 65 29 0a 20 2a 20 60 53 if.one.absent.or.the.same)..*.`S
18a20 70 61 63 65 60 20 73 68 6f 77 20 74 68 65 20 73 69 6d 70 6c 65 20 64 69 66 66 20 77 69 6e 64 6f pace`.show.the.simple.diff.windo
18a40 77 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 20 69 6e 73 74 65 61 64 20 6f w.for.the.current.file.instead.o
18a60 66 20 2a 2a 45 64 69 66 66 2a 2a 20 28 6f 72 20 76 69 65 77 20 66 69 6c 65 20 69 66 20 6f 6e 65 f.**Ediff**.(or.view.file.if.one
18a80 20 61 62 73 65 6e 74 20 6f 72 20 74 68 65 20 73 61 6d 65 29 0a 20 2a 20 60 54 41 42 60 20 74 6f .absent.or.the.same)..*.`TAB`.to
18aa0 20 66 61 73 74 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 70 61 6e 65 6c 73 0a 20 2a 20 60 .fast.switch.between.panels..*.`
18ac0 68 60 20 6b 65 79 20 74 6f 20 74 6f 67 67 6c 65 20 73 68 6f 77 2f 68 69 64 65 20 69 64 65 6e 74 h`.key.to.toggle.show/hide.ident
18ae0 69 63 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 0a 20 2a 20 60 48 60 20 6b 65 ical.files/directories..*.`H`.ke
18b00 79 20 74 6f 20 74 6f 67 67 6c 65 20 73 68 6f 77 2f 68 69 64 65 20 68 69 64 64 65 6e 2f 69 67 6e y.to.toggle.show/hide.hidden/ign
18b20 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 0a 20 2a 20 60 43 60 20 6b 65 ored.files/directories..*.`C`.ke
18b40 79 20 74 6f 20 63 6f 70 79 20 63 75 72 72 65 6e 74 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 y.to.copy.current.file.or.direct
18b60 6f 72 79 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 72 20 72 69 67 68 74 20 70 61 6e 65 6c 0a 20 ory.to.the.left.or.right.panel..
18b80 2a 20 60 44 60 20 6b 65 79 20 74 6f 20 64 65 6c 65 74 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 *.`D`.key.to.delete.current.file
18ba0 20 6f 72 20 64 69 72 65 63 74 6f 72 79 0a 20 2a 20 60 76 60 20 6b 65 79 20 74 6f 20 71 75 69 63 .or.directory..*.`v`.key.to.quic
18bc0 6b 20 76 69 65 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 0a 20 2a 20 60 72 60 20 69 k.view.the.current.file..*.`r`.i
18be0 6e 69 74 69 61 74 65 73 20 74 68 65 20 72 65 73 63 61 6e 2f 72 65 66 72 65 73 68 20 6f 66 20 63 nitiates.the.rescan/refresh.of.c
18c00 75 72 72 65 6e 74 20 66 69 6c 65 20 6f 72 20 73 75 62 64 69 72 65 63 74 6f 72 79 0a 20 2a 20 60 urrent.file.or.subdirectory..*.`
18c20 46 35 60 20 66 6f 72 63 65 73 20 74 68 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 2e 0a 0a 23 23 23 F5`.forces.the.full.rescan...###
18c40 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 0a 42 79 20 64 65 66 61 75 6c 74 20 61 6c 6c 20 66 .Customizations.By.default.all.f
18c60 69 6c 65 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 28 6c 69 6b 65 20 60 2e 67 iles.starting.with.dot.(like.`.g
18c80 69 74 69 67 6e 6f 72 65 60 29 20 61 72 65 20 6e 6f 74 20 73 68 6f 77 6e 20 61 6e 64 20 65 78 63 itignore`).are.not.shown.and.exc
18ca0 6c 75 64 65 64 20 66 72 6f 6d 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 73 74 61 74 75 73 luded.from.the.difference.status
18cc0 20 66 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 2e 20 4f 6e 65 20 63 61 6e 20 61 64 64 20 61 6e .for.directories..One.can.add.an
18ce0 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 67 65 78 70 73 20 74 6f 20 74 68 65 20 6c 69 73 74 20 .additional.regexps.to.the.list.
18d00 60 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 73 74 60 2e 0a 0a 4f 6e 65 20 61 `ztree-diff-filter-list`...One.a
18d20 6c 73 6f 20 63 6f 75 6c 64 20 74 75 72 6e 20 6f 6e 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 lso.could.turn.on.unicode.charac
18d40 74 65 72 73 20 74 6f 20 64 72 61 77 20 74 68 65 20 74 72 65 65 20 77 69 74 68 20 69 6e 73 74 65 ters.to.draw.the.tree.with.inste
18d60 61 64 20 6f 66 20 6e 6f 72 6d 61 6c 20 41 53 43 49 49 2d 63 68 61 72 61 63 74 65 72 73 2e 20 54 ad.of.normal.ASCII-characters..T
18d80 68 69 73 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 60 7a 74 72 65 65 2d his.is.controlled.by.the.`ztree-
18da0 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 60 20 76 61 72 69 61 62 6c 65 2e 0a 0a 54 draw-unicode-lines`.variable...T
18dc0 68 65 20 76 61 72 69 61 62 6c 65 20 60 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 he.variable.`ztree-diff-consider
18de0 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 60 20 28 77 68 69 63 68 20 69 73 20 60 6e 69 -file-permissions`.(which.is.`ni
18e00 6c 60 20 62 79 20 64 65 66 61 75 6c 74 29 20 69 66 20 73 65 74 20 74 6f 20 60 74 60 20 61 6c 6c l`.by.default).if.set.to.`t`.all
18e20 6f 77 73 20 74 6f 20 63 6f 6d 70 61 72 65 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 61 ows.to.compare.file.attributes.a
18e40 73 20 77 65 6c 6c 2c 20 74 68 65 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 69 64 s.well,.the.files.will.be.consid
18e60 65 72 65 64 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 79 20 68 61 76 65 20 64 69 66 66 ered.different.if.they.have.diff
18e80 65 72 65 6e 74 20 6d 6f 64 65 2e 0a 0a 54 68 65 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c erent.mode...The.special.variabl
18ea0 65 20 60 7a 74 72 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 e.`ztree-diff-additional-options
18ec0 60 0a 69 6e 74 72 6f 64 75 63 65 64 20 74 6f 20 70 72 6f 76 69 64 65 20 61 6e 20 61 64 64 69 74 `.introduced.to.provide.an.addit
18ee0 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 0a 74 6f 20 74 68 65 20 27 64 69 66 66 27 20 74 6f ional.arguments.to.the.'diff'.to
18f00 6f 6c 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 20 6f 6e 65 20 63 6f 75 6c 64 20 73 70 65 63 69 66 ol..For.example.one.could.specif
18f20 79 0a 60 60 60 0a 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 y.```.(setq.ztree-diff-additiona
18f40 6c 2d 6f 70 74 69 6f 6e 73 20 27 28 22 2d 77 22 20 22 2d 69 22 29 29 0a 60 60 60 0a 74 6f 20 69 l-options.'("-w"."-i")).```.to.i
18f60 67 6e 6f 72 65 20 63 61 73 65 20 64 69 66 66 65 72 65 6e 63 65 73 20 61 6e 64 20 77 68 69 74 65 gnore.case.differences.and.white
18f80 73 70 61 63 65 20 64 69 66 66 65 72 65 6e 63 65 73 2e 0a 0a 0a 23 23 23 20 53 63 72 65 65 6e 73 space.differences....###.Screens
18fa0 68 6f 74 73 0a 0a 21 5b 7a 74 72 65 65 64 69 66 66 20 65 6d 61 63 73 78 31 31 5d 28 68 74 74 70 hots..![ztreediff.emacsx11](http
18fc0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 s://github.com/fourier/ztree/raw
18fe0 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 64 /screenshots/screenshots/emacs_d
19000 69 66 66 5f 78 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 78 74 65 72 6d 20 77 69 iff_xterm.png."Emacs.in.xterm.wi
19020 74 68 20 7a 74 72 65 65 2d 64 69 66 66 22 29 0a 0a 21 5b 7a 74 72 65 65 64 69 66 66 2d 64 69 66 th.ztree-diff")..![ztreediff-dif
19040 66 20 65 6d 61 63 73 78 31 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 f.emacsx11](https://github.com/f
19060 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 ourier/ztree/raw/screenshots/scr
19080 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 64 69 66 66 5f 73 69 6d 70 6c 65 64 69 66 66 5f 78 eenshots/emacs_diff_simplediff_x
190a0 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 78 74 65 72 6d 20 77 69 74 68 20 7a 74 term.png."Emacs.in.xterm.with.zt
190c0 72 65 65 2d 64 69 66 66 20 61 6e 64 20 73 69 6d 70 6c 65 20 64 69 66 66 22 29 0a 0a 23 23 20 7a ree-diff.and.simple.diff")..##.z
190e0 74 72 65 65 2d 64 69 72 0a 0a 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 20 69 73 20 61 20 73 69 6d tree-dir..**ztree-dir**.is.a.sim
19100 70 6c 65 20 74 65 78 74 2d 6d 6f 64 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 66 6f 72 ple.text-mode.directory.tree.for
19120 20 45 6d 61 63 73 2e 20 53 65 65 20 73 63 72 65 65 6e 73 68 6f 74 73 20 62 65 6c 6f 77 20 66 6f .Emacs..See.screenshots.below.fo
19140 72 20 74 68 65 20 47 55 49 20 61 6e 64 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 20 76 65 72 73 69 r.the.GUI.and.the.terminal.versi
19160 6f 6e 73 20 6f 66 20 74 68 65 20 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 2e 0a 0a 43 61 6c 6c 20 ons.of.the.**ztree-dir**...Call.
19180 74 68 65 20 60 7a 74 72 65 65 2d 64 69 72 60 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 the.`ztree-dir`.interactive.func
191a0 74 69 6f 6e 3a 0a 0a 60 60 60 0a 4d 2d 78 20 7a 74 72 65 65 2d 64 69 72 0a 60 60 60 0a 0a 23 23 tion:..```.M-x.ztree-dir.```..##
191c0 23 20 48 6f 74 6b 65 79 73 20 73 75 70 70 6f 72 74 65 64 0a 2a 20 4f 70 65 6e 2f 63 6c 6f 73 65 #.Hotkeys.supported.*.Open/close
191e0 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 .directories.with.double-click,.
19200 60 52 45 54 60 20 6f 72 20 60 53 70 61 63 65 60 20 6b 65 79 73 2e 0a 2a 20 54 6f 20 6a 75 6d 70 `RET`.or.`Space`.keys..*.To.jump
19220 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 .to.the.parent.directory,.hit.th
19240 65 20 60 42 61 63 6b 73 70 61 63 65 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 74 6f 67 67 6c 65 20 6f e.`Backspace`.key..*.To.toggle.o
19260 70 65 6e 2f 63 6c 6f 73 65 64 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 20 pen/closed.state.of.the.subtree.
19280 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 of.the.current.directory,.hit.th
192a0 65 20 60 78 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 76 69 73 69 74 20 61 20 66 69 6c 65 2c 20 70 72 e.`x`.key..*.To.visit.a.file,.pr
192c0 65 73 73 20 60 53 70 61 63 65 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 6f 70 65 6e 20 66 69 6c 65 20 ess.`Space`.key..*.To.open.file.
192e0 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 2c 20 75 73 65 20 60 52 45 54 60 20 6b 65 79 2e 0a in.other.window,.use.`RET`.key..
19300 2a 20 54 6f 20 6f 70 65 6e 20 60 44 69 72 65 64 60 20 77 69 74 68 20 74 68 65 20 64 69 72 65 63 *.To.open.`Dired`.with.the.direc
19320 74 6f 72 79 20 74 68 65 20 70 6f 69 6e 74 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 2c 20 tory.the.point.is.currently.on,.
19340 75 73 65 20 74 68 65 20 60 64 60 20 6b 65 79 2e 0a 0a 23 23 23 20 43 75 73 74 6f 6d 69 7a 61 74 use.the.`d`.key...###.Customizat
19360 69 6f 6e 73 0a 53 65 74 20 74 68 65 20 60 7a 74 72 65 65 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 ions.Set.the.`ztree-dir-move-foc
19380 75 73 60 20 76 61 72 69 61 62 6c 65 20 74 6f 20 60 74 60 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 us`.variable.to.`t`.in.order.to.
193a0 6d 6f 76 65 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 77 move.focus.to.the.other.window.w
193c0 68 65 6e 20 74 68 65 20 60 52 45 54 60 20 6b 65 79 20 69 73 20 70 72 65 73 73 65 64 3b 20 74 68 hen.the.`RET`.key.is.pressed;.th
193e0 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20 6b 65 65 70 20 66 6f e.default.behavior.is.to.keep.fo
19400 63 75 73 20 69 6e 20 60 7a 74 72 65 65 2d 64 69 72 60 20 77 69 6e 64 6f 77 2e 0a 0a 0a 21 5b 7a cus.in.`ztree-dir`.window....![z
19420 74 72 65 65 20 65 6d 61 63 73 61 70 70 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f tree.emacsapp](https://github.co
19440 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f m/fourier/ztree/raw/screenshots/
19460 73 63 72 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 61 70 70 2e 70 6e 67 20 22 45 6d 61 63 73 screenshots/emacs_app.png."Emacs
19480 20 41 70 70 20 77 69 74 68 20 7a 74 72 65 65 2d 64 69 72 22 29 0a 0a 21 5b 7a 74 72 65 65 20 65 .App.with.ztree-dir")..![ztree.e
194a0 6d 61 63 73 78 31 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 macsx11](https://github.com/four
194c0 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 65 65 6e ier/ztree/raw/screenshots/screen
194e0 73 68 6f 74 73 2f 65 6d 61 63 73 5f 78 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 shots/emacs_xterm.png."Emacs.in.
19500 78 74 65 72 6d 20 77 69 74 68 20 7a 74 72 65 65 2d 64 69 72 22 29 0a 0a 0a 23 23 20 43 6f 6e 74 xterm.with.ztree-dir")...##.Cont
19520 72 69 62 75 74 69 6f 6e 73 0a 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20 ributions.You.can.contribute.to.
19540 2a 2a 7a 74 72 65 65 2a 2a 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e **ztree**.in.one.of.the.followin
19560 67 20 77 61 79 73 2e 0a 2d 20 53 75 62 6d 69 74 20 61 20 62 75 67 20 72 65 70 6f 72 74 0a 2d 20 g.ways..-.Submit.a.bug.report.-.
19580 53 75 62 6d 69 74 20 61 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 0a 2d 20 53 75 62 6d 69 Submit.a.feature.request.-.Submi
195a0 74 20 61 20 73 69 6d 70 6c 65 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 28 77 69 74 68 20 63 68 t.a.simple.pull.request.(with.ch
195c0 61 6e 67 65 73 20 3c 20 31 35 20 6c 69 6e 65 73 29 0a 0a 23 23 23 20 43 6f 70 79 72 69 67 68 74 anges.<.15.lines)..###.Copyright
195e0 20 69 73 73 75 65 73 0a 53 69 6e 63 65 20 2a 2a 7a 74 72 65 65 2a 2a 20 69 73 20 61 20 70 61 72 .issues.Since.**ztree**.is.a.par
19600 74 20 6f 66 20 5b 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 t.of.[GNU.ELPA](https://elpa.gnu
19620 2e 6f 72 67 2f 29 2c 20 69 74 20 69 73 20 63 6f 70 79 72 69 67 68 74 65 64 20 62 79 20 74 68 65 .org/),.it.is.copyrighted.by.the
19640 20 5b 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e .[Free.Software.Foundation,.Inc.
19660 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 66 73 66 2e 6f 72 67 2f 29 2e 20 54 68 65 72 65 66 6f 72 ](http://www.fsf.org/)..Therefor
19680 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 75 62 6d 69 74 20 6e 6f 6e 74 72 69 76 69 61 6c 20 e.in.order.to.submit.nontrivial.
196a0 63 68 61 6e 67 65 73 20 28 77 69 74 68 20 74 6f 74 61 6c 20 61 6d 6f 75 6e 74 20 6f 66 20 6c 69 changes.(with.total.amount.of.li
196c0 6e 65 73 20 3e 20 31 35 29 2c 20 6f 6e 65 20 6e 65 65 64 73 20 74 6f 20 74 6f 20 67 72 61 6e 74 nes.>.15),.one.needs.to.to.grant
196e0 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 79 6f 75 72 20 77 6f 72 6b 73 .the.right.to.include.your.works
19700 20 69 6e 20 47 4e 55 20 45 6d 61 63 73 20 74 6f 20 74 68 65 20 46 53 46 2e 0a 0a 46 6f 72 20 74 .in.GNU.Emacs.to.the.FSF...For.t
19720 68 69 73 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 5b 74 68 69 73 5d 28 his.you.need.to.complete.[this](
19740 68 74 74 70 73 3a 2f 2f 72 61 77 2e 67 69 74 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f https://raw.githubusercontent.co
19760 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 2f 72 65 m/fourier/ztree/contributions/re
19780 71 75 65 73 74 2d 61 73 73 69 67 6e 2e 74 78 74 29 20 66 6f 72 6d 2c 20 61 6e 64 20 73 65 6e 64 quest-assign.txt).form,.and.send
197a0 20 69 74 20 74 6f 20 5b 61 73 73 69 67 6e 40 67 6e 75 2e 6f 72 67 5d 28 6d 61 69 6c 74 6f 3a 61 .it.to.[assign@gnu.org](mailto:a
197c0 73 73 69 67 6e 40 67 6e 75 2e 6f 72 67 29 2e 20 54 68 65 20 46 53 46 20 77 69 6c 6c 20 73 65 6e ssign@gnu.org)..The.FSF.will.sen
197e0 64 20 79 6f 75 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 63 6f 6e 74 72 61 63 74 20 74 68 d.you.the.assignment.contract.th
19800 61 74 20 62 6f 74 68 20 79 6f 75 20 61 6e 64 20 74 68 65 20 46 53 46 20 77 69 6c 6c 20 73 69 67 at.both.you.and.the.FSF.will.sig
19820 6e 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 65 20 63 61 6e n...For.more.information.one.can
19840 20 72 65 61 64 20 5b 68 65 72 65 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f .read.[here](http://www.gnu.org/
19860 6c 69 63 65 6e 73 65 73 2f 77 68 79 2d 61 73 73 69 67 6e 2e 68 74 6d 6c 29 20 74 6f 20 75 6e 64 licenses/why-assign.html).to.und
19880 65 72 73 74 61 6e 64 20 77 68 79 20 69 74 20 69 73 20 6e 65 65 64 65 64 2e 0a 0a 41 73 20 73 6f erstand.why.it.is.needed...As.so
198a0 6f 6e 20 61 73 20 74 68 65 20 70 61 70 65 72 77 6f 72 6b 20 69 73 20 64 6f 6e 65 20 6f 6e 65 20 on.as.the.paperwork.is.done.one.
198c0 63 61 6e 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20 2a 2a 7a 74 72 65 65 2a 2a 20 77 69 74 68 can.contribute.to.**ztree**.with
198e0 20 62 69 67 67 65 72 20 70 75 6c 6c 20 72 65 71 75 65 73 74 73 2e 0a 4e 6f 74 65 20 77 68 61 74 .bigger.pull.requests..Note.what
19900 20 70 75 6c 6c 20 72 65 71 75 65 73 74 73 20 77 69 74 68 6f 75 74 20 70 61 70 65 72 77 6f 72 6b .pull.requests.without.paperwork
19920 20 64 6f 6e 65 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 63 63 65 70 74 65 64 2c 20 73 6f 20 70 .done.will.not.be.accepted,.so.p
19940 6c 65 61 73 65 20 6e 6f 74 69 66 79 20 74 68 65 20 5b 6d 61 69 6e 74 61 69 6e 65 72 5d 28 6d 61 lease.notify.the.[maintainer](ma
19960 69 6c 74 6f 3a 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 ilto:alexey.veretennikov@gmail.c
19980 6f 6d 29 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 69 6e 20 70 6c 61 63 65 2e 0a 0a om).if.everything.is.in.place...
199a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a00 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-view.el.......
19a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a60 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
19a80 30 30 37 34 36 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 34 30 00 20 30 00 00 00 0074600.00000000000.013740..0...
19aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b00 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...................
19b20 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...................
19b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c00 3b 3b 3b 20 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 ;;;.ztree-view.el.---.Text.mode.
19c20 74 72 65 65 20 76 69 65 77 20 28 62 75 66 66 65 72 29 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 tree.view.(buffer).-*-.lexical-b
19c40 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
19c60 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 .2013-2021..Free.Software.Founda
19c80 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 tion,.Inc..;;.;;.Author:.Alexey.
19ca0 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f Veretennikov.<alexey.veretenniko
19cc0 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 v@gmail.com>.;;.;;.Created:.2013
19ce0 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f -11-11.;;.;;.Keywords:.files.too
19d00 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f ls.;;.URL:.https://github.com/fo
19d20 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 47 4e urier/ztree.;;.Compatibility:.GN
19d40 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 U.Emacs.24.x.;;.;;.This.file.is.
19d60 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 part.of.GNU.Emacs..;;.;;.GNU.Ema
19d80 63 73 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 65 64 cs.is.free.software:.you.can.red
19da0 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 69 74 istribute.it.and/or.modify.;;.it
19dc0 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 6e 65 .under.the.terms.of.the.GNU.Gene
19de0 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 64 20 ral.Public.License.as.published.
19e00 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 74 69 by.;;.the.Free.Software.Foundati
19e20 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 63 65 on,.either.version.3.of.the.Lice
19e40 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 79 20 nse,.or.;;.(at.your.option).any.
19e60 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 later.version..;;.;;.GNU.Emacs.i
19e80 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 74 20 69 s.distributed.in.the.hope.that.i
19ea0 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 4f 55 54 t.will.be.useful,.;;.but.WITHOUT
19ec0 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 68 65 20 .ANY.WARRANTY;.without.even.the.
19ee0 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 4e 54 41 implied.warranty.of.;;.MERCHANTA
19f00 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 43 55 4c BILITY.or.FITNESS.FOR.A.PARTICUL
19f20 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 65 6e 65 AR.PURPOSE...See.the.;;.GNU.Gene
19f40 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 65 74 61 ral.Public.License.for.more.deta
19f60 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 ils..;;.;;.You.should.have.recei
19f80 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 75 ved.a.copy.of.the.GNU.General.Pu
19fa0 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 4e 55 20 45 blic.License.;;.along.with.GNU.E
19fc0 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 macs...If.not,.see.<http://www.g
19fe0 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e nu.org/licenses/>..;;.;;;.Commen
1a000 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f tary:.;;.;;.Add.the.following.to
1a020 20 79 6f 75 72 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 3b 3b 0a 3b 3b 20 28 70 75 73 68 20 28 .your..emacs.file:.;;.;;.(push.(
1a040 73 75 62 73 74 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 61 74 68 2d 74 6f substitute-in-file-name."path-to
1a060 2d 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 61 74 68 29 0a 3b 3b -ztree-directory").load-path).;;
1a080 20 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 3b 3b 0a 3b 3b 20 43 61 6c .(require.'ztree-view).;;.;;.Cal
1a0a0 6c 20 74 68 65 20 7a 74 72 65 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e l.the.ztree.interactive.function
1a0c0 3a 0a 3b 3b 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 3a :.;;.Use.the.following.function:
1a0e0 20 7a 74 72 65 65 2d 76 69 65 77 0a 3b 3b 0a 3b 3b 3b 20 49 73 73 75 65 73 3a 0a 3b 3b 0a 3b 3b .ztree-view.;;.;;;.Issues:.;;.;;
1a100 3b 20 54 4f 44 4f 3a 0a 3b 3b 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 ;.TODO:.;;.;;.;;;.Code:..(eval-w
1a120 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 hen-compile.(require.'cl-lib)).(
1a140 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 require.'subr-x).(require.'ztree
1a160 2d 75 74 69 6c 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 -util).(require.'ztree-protocol)
1a180 0a 3b 3b 0a 3b 3b 20 47 6c 6f 62 61 6c 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 .;;.;;.Globals.;;..(defvar.ztree
1a1a0 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 6e 69 6c 0a 20 20 22 49 66 20 73 65 -draw-unicode-lines.nil..."If.se
1a1c0 74 20 66 6f 72 63 65 73 20 7a 74 72 65 65 20 74 6f 20 64 72 61 77 20 6c 69 6e 65 73 20 77 69 74 t.forces.ztree.to.draw.lines.wit
1a1e0 68 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 h.unicode.characters.")..(defvar
1a200 20 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 20 6e .ztree-show-number-of-children.n
1a220 69 6c 0a 20 20 22 49 66 20 73 65 74 20 66 6f 72 63 65 73 20 7a 74 72 65 65 20 73 68 6f 77 20 6e il..."If.set.forces.ztree.show.n
1a240 75 6d 62 65 72 20 6f 66 20 63 68 69 6c 64 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 62 72 umber.of.child.entries.in.the.br
1a260 61 63 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 65 78 70 aces.")..(defvar-local.ztree-exp
1a280 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f anded-nodes-list.nil..."A.list.o
1a2a0 66 20 45 78 70 61 6e 64 65 64 20 6e 6f 64 65 73 20 28 69 2e 65 2e 20 64 69 72 65 63 74 6f 72 69 f.Expanded.nodes.(i.e..directori
1a2c0 65 73 29 20 65 6e 74 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 es).entries.")..(defvar-local.zt
1a2e0 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 69 6c 0a 20 20 22 53 74 61 72 74 20 6e 6f 64 65 ree-start-node.nil..."Start.node
1a300 28 69 2e 65 2e 20 64 69 72 65 63 74 6f 72 79 29 20 66 6f 72 20 74 68 65 20 77 69 6e 64 6f 77 2e (i.e..directory).for.the.window.
1a320 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d ")..(defvar-local.ztree-line-to-
1a340 6e 6f 64 65 2d 74 61 62 6c 65 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 74 75 70 6c 65 73 node-table.nil..."List.of.tuples
1a360 20 77 69 74 68 20 66 75 6c 6c 20 6e 6f 64 65 28 69 2e 65 2e 20 66 69 6c 65 2f 64 69 72 65 63 74 .with.full.node(i.e..file/direct
1a380 6f 72 79 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 ory.name.and.the.line.")..(defva
1a3a0 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 22 r-local.ztree-start-line.nil..."
1a3c0 49 6e 64 65 78 20 6f 66 20 74 68 65 20 73 74 61 72 74 20 6c 69 6e 65 20 2d 20 74 68 65 20 72 6f Index.of.the.start.line.-.the.ro
1a3e0 6f 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 70 61 72 65 6e ot.")..(defvar-local.ztree-paren
1a400 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 6e 69 6c 0a 20 20 22 41 72 72 61 79 20 6f 66 20 70 61 t-lines-array.nil..."Array.of.pa
1a420 72 65 6e 74 20 6c 69 6e 65 73 2e 0a 54 68 65 20 69 74 68 20 76 61 6c 75 65 20 6f 66 20 74 68 65 rent.lines..The.ith.value.of.the
1a440 20 61 72 72 61 79 20 69 73 20 74 68 65 20 70 61 72 65 6e 74 20 6c 69 6e 65 20 66 6f 72 20 6c 69 .array.is.the.parent.line.for.li
1a460 6e 65 20 69 2e 0a 49 66 20 69 74 68 20 76 61 6c 75 65 20 69 73 20 69 20 2d 20 69 74 20 69 73 20 ne.i..If.ith.value.is.i.-.it.is.
1a480 74 68 65 20 72 6f 6f 74 20 6c 69 6e 65 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a the.root.line")..(defvar-local.z
1a4a0 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 6e 69 6c 0a 20 20 22 tree-count-subsequent-bs.nil..."
1a4c0 43 6f 75 6e 74 65 72 20 66 6f 72 20 74 68 65 20 73 75 62 73 65 71 75 65 73 74 20 42 53 20 6b 65 Counter.for.the.subsequest.BS.ke
1a4e0 79 73 20 28 74 6f 20 69 64 65 6e 74 69 66 79 20 64 6f 75 62 6c 65 20 42 53 29 2e 0a 55 73 65 64 ys.(to.identify.double.BS)..Used
1a500 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6e 6f 74 20 74 6f 20 75 73 65 20 63 6c 20 70 61 63 6b 61 .in.order.to.not.to.use.cl.packa
1a520 67 65 20 61 6e 64 20 60 6c 65 78 69 63 61 6c 2d 6c 65 74 27 22 29 0a 0a 28 64 65 66 76 61 72 2d ge.and.`lexical-let'")..(defvar-
1a540 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 73 local.ztree-line-tree-properties
1a560 20 6e 69 6c 0a 20 20 22 48 61 73 68 20 74 61 62 6c 65 2c 20 77 69 74 68 20 6b 65 79 20 2d 20 6c .nil..."Hash.table,.with.key.-.l
1a580 69 6e 65 20 6e 75 6d 62 65 72 2c 20 76 61 6c 75 65 20 2d 20 70 72 6f 70 65 72 74 79 20 6c 69 73 ine.number,.value.-.property.lis
1a5a0 74 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 0a 54 68 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74 t.of.the.line..The.property.list
1a5c0 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 2d 20 73 69 64 65 20 .has.the.following.keys:.-.side.
1a5e0 28 60 6c 65 66 74 27 2c 20 60 72 69 67 68 74 27 2c 20 60 62 6f 74 68 27 29 2e 0a 55 73 65 64 20 (`left',.`right',.`both')..Used.
1a600 66 6f 72 20 32 2d 73 69 64 65 20 74 72 65 65 73 2c 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 for.2-side.trees,.to.determine.i
1a620 66 20 74 68 65 20 6e 6f 64 65 20 65 78 69 73 74 73 20 6f 6e 20 6c 65 66 74 20 6f 72 20 72 69 67 f.the.node.exists.on.left.or.rig
1a640 68 74 0a 6f 72 20 62 6f 74 68 20 73 69 64 65 73 0a 2d 20 6f 66 66 73 65 74 20 2d 20 74 68 65 20 ht.or.both.sides.-.offset.-.the.
1a660 63 6f 6c 75 6d 6e 20 74 68 65 72 65 20 74 68 65 20 74 65 78 74 20 73 74 61 72 74 73 20 22 29 0a column.there.the.text.starts.").
1a680 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 .(defvar-local.ztree-prev-positi
1a6a0 6f 6e 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6e 73 20 70 61 69 72 20 6f 66 20 74 68 65 20 70 on.nil..."The.cons.pair.of.the.p
1a6c0 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 2e 20 55 73 65 64 0a 74 6f revious.line.and.column..Used.to
1a6e0 20 72 65 73 74 6f 72 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 72 .restore.cursor.position.after.r
1a700 65 66 72 65 73 68 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 61 efresh")..(defvar-local.ztree-la
1a720 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 6e 69 6c 0a 20 20 22 54 68 65 20 77 69 6e 64 6f st-window-width.nil..."The.windo
1a740 77 20 77 69 64 74 68 20 61 74 20 74 68 65 20 6c 61 73 74 20 72 65 66 72 65 73 68 22 29 0a 0a 28 w.width.at.the.last.refresh")..(
1a760 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 6e defvar-local.ztree-two-sided-p.n
1a780 69 6c 0a 20 20 22 49 66 20 74 68 65 20 74 72 65 65 20 69 73 20 32 20 73 69 64 65 64 2c 20 32 20 il..."If.the.tree.is.2.sided,.2.
1a7a0 74 72 65 65 73 20 73 68 61 6c 6c 20 62 65 20 64 72 61 77 6e 20 73 69 64 65 20 62 79 20 73 69 64 trees.shall.be.drawn.side.by.sid
1a7c0 65 22 29 0a 0a 28 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 7a 74 72 65 65 2d e")..(def-ztree-local-fun.ztree-
1a7e0 74 72 65 65 2d 68 65 61 64 65 72 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 69 6e tree-header..."Function.insertin
1a800 67 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 74 6f 20 74 68 65 20 74 72 65 65 20 62 75 66 66 65 g.the.header.into.the.tree.buffe
1a820 72 2e 0a 4d 55 53 54 20 69 6e 73 74 65 72 20 6e 65 77 6c 69 6e 65 20 61 74 20 74 68 65 20 65 6e r..MUST.inster.newline.at.the.en
1a840 64 21 22 29 0a 0a 3b 3b 0a 3b 3b 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 64 65 66 69 6e 69 74 69 6f d!")..;;.;;.Major.mode.definitio
1a860 6e 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 ns.;;..(defvar.ztree-mode-map...
1a880 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 (let.((map.(make-sparse-keymap))
1a8a0 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 5c 72 22 29 ).....(define-key.map.(kbd."\r")
1a8c0 20 27 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 .'ztree-perform-action).....(def
1a8e0 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 50 43 22 29 20 27 7a 74 72 65 65 2d 70 ine-key.map.(kbd."SPC").'ztree-p
1a900 65 72 66 6f 72 6d 2d 73 6f 66 74 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d erform-soft-action).....(define-
1a920 6b 65 79 20 6d 61 70 20 5b 64 6f 75 62 6c 65 2d 6d 6f 75 73 65 2d 31 5d 20 27 7a 74 72 65 65 2d key.map.[double-mouse-1].'ztree-
1a940 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 perform-action).....(define-key.
1a960 6d 61 70 20 28 6b 62 64 20 22 54 41 42 22 29 20 27 7a 74 72 65 65 2d 6a 75 6d 70 2d 73 69 64 65 map.(kbd."TAB").'ztree-jump-side
1a980 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 67 22 29 20 ).....(define-key.map.(kbd."g").
1a9a0 27 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 'ztree-refresh-buffer).....(defi
1a9c0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 22 29 20 27 7a 74 72 65 65 2d 74 6f 67 67 ne-key.map.(kbd."x").'ztree-togg
1a9e0 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b le-expand-subtree).....(define-k
1aa00 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 6e 65 78 74 2d 6c 69 6e 65 5d 20 27 7a 74 72 65 65 2d ey.map.[remap.next-line].'ztree-
1aa20 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b next-line).....(define-key.map.[
1aa40 72 65 6d 61 70 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 5d 20 27 7a 74 72 65 65 2d 70 72 65 76 remap.previous-line].'ztree-prev
1aa60 69 6f 75 73 2d 6c 69 6e 65 29 0a 20 20 20 20 28 69 66 20 77 69 6e 64 6f 77 2d 73 79 73 74 65 6d ious-line).....(if.window-system
1aa80 0a 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c .........(define-key.map.(kbd."<
1aaa0 62 61 63 6b 73 70 61 63 65 3e 22 29 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 backspace>").'ztree-move-up-in-t
1aac0 72 65 65 29 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 31 37 37 ree).......(define-key.map."\177
1aae0 22 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 65 65 29 29 0a 20 20 20 20 6d ".'ztree-move-up-in-tree)).....m
1ab00 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 7a 74 72 65 65 2d 6d 6f 64 65 27 2e 22 ap)..."Keymap.for.`ztree-mode'."
1ab20 29 0a 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 66 61 63 65 0a 20 20 )...(defface.ztreep-node-face...
1ab40 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f '((((background.dark)).(:foregro
1ab60 75 6e 64 20 22 23 66 66 66 66 66 66 22 29 29 0a 20 20 20 20 28 28 28 74 79 70 65 20 6e 69 6c 29 und."#ffffff")).....(((type.nil)
1ab80 29 20 20 20 20 20 20 20 20 28 3a 69 6e 68 65 72 69 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 )........(:inherit.'font-lock-fu
1aba0 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 nction-name-face)).....(t.......
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 42 6c 75 65 22 29 ............(:foreground."Blue")
1abe0 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 ))..."*Face.used.for.expandable.
1ac00 65 6e 74 72 69 65 73 28 64 69 72 65 63 74 6f 72 69 65 73 20 65 74 63 29 20 69 6e 20 5a 74 72 65 entries(directories.etc).in.Ztre
1ac20 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 e.buffer."...:group.'Ztree.:grou
1ac40 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 p.'font-lock-highlighting-faces)
1ac60 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 66 61 63 65 20 27 7a 74 72 65 65 .(defvar.ztreep-node-face.'ztree
1ac80 70 2d 6e 6f 64 65 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 6c 65 p-node-face)..(defface.ztreep-le
1aca0 61 66 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 af-face...'((((background.dark))
1acc0 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 63 79 61 6e 31 22 29 29 0a 20 20 20 20 28 28 28 74 .(:foreground."cyan1")).....(((t
1ace0 79 70 65 20 6e 69 6c 29 29 20 20 20 20 20 20 20 20 28 3a 69 6e 68 65 72 69 74 20 27 66 6f 6e 74 ype.nil))........(:inherit.'font
1ad00 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 20 20 28 -lock-variable-name-face)).....(
1ad20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 t...................(:foreground
1ad40 20 22 64 61 72 6b 62 6c 75 65 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 ."darkblue")))..."*Face.used.for
1ad60 20 6e 6f 74 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 28 6c 65 61 66 73 2c 20 69 2e 65 .not.expandable.nodes(leafs,.i.e
1ad80 2e 20 66 69 6c 65 73 29 20 69 6e 20 5a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 ..files).in.Ztree.buffer."...:gr
1ada0 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 oup.'Ztree.:group.'font-lock-hig
1adc0 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d hlighting-faces).(defvar.ztreep-
1ade0 6c 65 61 66 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 6c 65 61 66 2d 66 61 63 65 29 0a 0a 28 64 leaf-face.'ztreep-leaf-face)..(d
1ae00 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 0a 20 20 27 28 28 28 28 efface.ztreep-arrow-face...'((((
1ae20 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 background.dark)).(:foreground."
1ae40 23 37 66 37 66 37 66 22 29 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #7f7f7f")).....(t...............
1ae60 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 38 64 38 64 38 64 22 29 29 29 0a 20 20 ....(:foreground."#8d8d8d")))...
1ae80 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 61 72 72 6f 77 73 20 69 6e 20 5a 74 72 65 65 20 "*Face.used.for.arrows.in.Ztree.
1aea0 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 buffer."...:group.'Ztree.:group.
1aec0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 'font-lock-highlighting-faces).(
1aee0 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 20 27 7a 74 72 65 65 70 defvar.ztreep-arrow-face.'ztreep
1af00 2d 61 72 72 6f 77 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 65 78 -arrow-face)..(defface.ztreep-ex
1af20 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 pand-sign-face...'((((background
1af40 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 66 66 22 29 29 .dark)).(:foreground."#7f7fff"))
1af60 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 .....(t...................(:fore
1af80 67 72 6f 75 6e 64 20 22 23 38 64 38 64 38 64 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 ground."#8d8d8d")))..."*Face.use
1afa0 64 20 66 6f 72 20 65 78 70 61 6e 64 20 73 69 67 6e 20 5b 2b 5d 20 69 6e 20 5a 74 72 65 65 20 62 d.for.expand.sign.[+].in.Ztree.b
1afc0 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 27 uffer."...:group.'Ztree.:group.'
1afe0 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 font-lock-highlighting-faces).(d
1b000 65 66 76 61 72 20 7a 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 20 27 7a efvar.ztreep-expand-sign-face.'z
1b020 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 treep-expand-sign-face)..(deffac
1b040 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 e.ztreep-node-count-children-fac
1b060 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 68 e...'((t...................(:inh
1b080 65 72 69 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 3a 73 6c erit.'font-lock-comment-face.:sl
1b0a0 61 6e 74 20 69 74 61 6c 69 63 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 ant.italic)))..."*Face.used.for.
1b0c0 63 6f 75 6e 74 20 6f 66 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 69 6c 64 20 65 6e 74 72 69 65 73 count.of.number.of.child.entries
1b0e0 20 69 6e 20 5a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 .in.Ztree.buffer."...:group.'Ztr
1b100 65 65 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e ee.:group.'font-lock-highlightin
1b120 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 g-faces).(defvar.ztreep-node-cou
1b140 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f nt-children-face.'ztreep-node-co
1b160 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 65 29 0a 0a 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f unt-children-face)....;;;###auto
1b180 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 7a 74 72 65 65 2d load.(define-derived-mode.ztree-
1b1a0 6d 6f 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 5a 74 72 65 65 22 0a 20 20 22 41 20 6d mode.special-mode."Ztree"..."A.m
1b1c0 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 72 ajor.mode.for.displaying.the.dir
1b1e0 65 63 74 6f 72 79 20 74 72 65 65 20 69 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 ectory.tree.in.text.mode."...;;.
1b200 6f 6e 6c 79 20 73 70 61 63 65 73 0a 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d only.spaces...(setq.indent-tabs-
1b220 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 28 73 65 74 71 09 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e mode.nil)...(setq.buffer-read-on
1b240 6c 79 20 74 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d ly.t))...(defun.ztree-scroll-to-
1b260 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f line.(line)..."Set.the.cursor.to
1b280 20 73 70 65 63 69 66 69 65 64 20 4c 49 4e 45 20 61 6e 64 20 74 6f 20 74 68 65 20 74 65 78 74 20 .specified.LINE.and.to.the.text.
1b2a0 6f 66 66 73 65 74 20 28 69 66 20 70 6f 73 73 69 62 6c 65 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 offset.(if.possible)."...(let.((
1b2c0 63 65 6e 74 65 72 20 28 2f 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 0a 20 20 20 center.(/.(window-width).2))....
1b2e0 20 20 20 20 20 28 63 75 72 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 .....(cur-line.(line-number-at-p
1b300 6f 73 29 29 29 0a 20 20 20 20 3b 3b 20 62 61 73 65 64 20 6f 6e 20 64 69 72 65 64 2d 6e 65 78 74 os))).....;;.based.on.dired-next
1b320 2d 6c 69 6e 65 0a 20 20 20 20 3b 3b 20 73 65 74 20 6c 69 6e 65 2d 6d 6f 76 65 20 74 6f 20 6d 6f -line.....;;.set.line-move.to.mo
1b340 76 65 20 62 79 20 6c 6f 67 69 63 61 6c 20 6c 69 6e 65 73 0a 20 20 20 20 28 6c 65 74 20 28 28 6c ve.by.logical.lines.....(let.((l
1b360 69 6e 65 2d 6d 6f 76 65 2d 76 69 73 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 61 6c ine-move-visual)...........(goal
1b380 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 28 6c 69 6e 65 2d 6d 6f 76 65 20 28 2d 20 6c 69 -column)).......(line-move.(-.li
1b3a0 6e 65 20 63 75 72 2d 6c 69 6e 65 29 20 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 ne.cur-line).t).......(when-let.
1b3c0 28 6f 66 66 73 65 74 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (offset.(plist-get..............
1b3e0 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 ............(gethash.(line-numbe
1b400 72 2d 61 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-at-pos).......................
1b420 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 ............ztree-line-tree-prop
1b440 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erties).........................
1b460 20 27 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 7a 74 .'offset)).........(when.(and.zt
1b480 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-two-sided-p.................
1b4a0 20 20 20 28 3e 3d 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 29 ...(>=.(current-column).center))
1b4c0 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 6f 66 66 73 65 74 20 28 31 2b 20 63 ...........(cl-incf.offset.(1+.c
1b4e0 65 6e 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c enter))).........(beginning-of-l
1b500 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 70 6f 69 6e ine).........(goto-char.(+.(poin
1b520 74 29 20 6f 66 66 73 65 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 t).offset))))))...(defun.ztree-f
1b540 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 52 65 74 75 72 ind-node-in-line.(line)..."Retur
1b560 6e 20 74 68 65 20 6e 6f 64 65 20 66 6f 72 20 74 68 65 20 4c 49 4e 45 20 73 70 65 63 69 66 69 65 n.the.node.for.the.LINE.specifie
1b580 64 2e 0a 53 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 61 72 72 61 79 20 6f 66 20 6e d..Search.through.the.array.of.n
1b5a0 6f 64 65 2d 6c 69 6e 65 20 70 61 69 72 73 2e 22 0a 20 20 28 67 65 74 68 61 73 68 20 6c 69 6e 65 ode-line.pairs."...(gethash.line
1b5c0 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d 6e 6f 64 65 2d 74 61 62 6c 65 29 29 0a 0a 28 64 65 .ztree-line-to-node-table))..(de
1b5e0 66 75 6e 20 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a fun.ztree-find-node-at-point.().
1b600 20 20 22 46 69 6e 64 20 74 68 65 20 6e 6f 64 65 20 61 74 20 70 6f 69 6e 74 2e 0a 52 65 74 75 72 .."Find.the.node.at.point..Retur
1b620 6e 73 20 63 6f 6e 73 20 70 61 69 72 20 28 6e 6f 64 65 2c 20 73 69 64 65 29 20 66 6f 72 20 74 68 ns.cons.pair.(node,.side).for.th
1b640 65 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 0a 6f 72 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 e.current.point.or.nil.if.there.
1b660 69 73 20 6e 6f 20 6e 6f 64 65 22 0a 20 20 28 6c 65 74 20 28 28 63 65 6e 74 65 72 20 28 2f 20 28 is.no.node"...(let.((center.(/.(
1b680 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 window-width).2)).........(node.
1b6a0 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e (ztree-find-node-in-line.(line-n
1b6c0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65 0a umber-at-pos)))).....(when.node.
1b6e0 20 20 20 20 20 20 28 63 6f 6e 73 20 6e 6f 64 65 20 28 69 66 20 28 3e 20 28 63 75 72 72 65 6e 74 ......(cons.node.(if.(>.(current
1b700 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 20 27 72 69 67 68 74 20 27 6c 65 66 74 29 29 29 -column).center).'right.'left)))
1b720 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f ))...(defun.ztree-is-expanded-no
1b740 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 46 69 6e 64 20 69 66 20 74 68 65 20 4e 4f 44 45 20 69 73 de.(node)..."Find.if.the.NODE.is
1b760 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 65 78 70 61 6e 64 65 64 20 6e 6f 64 65 73 2e 22 .in.the.list.of.expanded.nodes."
1b780 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f ...(ztree-find.ztree-expanded-no
1b7a0 64 65 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 des-list...............#'(lambda
1b7c0 20 28 78 29 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 78 20 6e 6f 64 65 29 29 29 .(x).(ztree-node-equal.x.node)))
1b7e0 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d )...(defun.ztree-set-parent-for-
1b800 6c 69 6e 65 20 28 6c 69 6e 65 20 70 61 72 65 6e 74 29 0a 20 20 22 46 6f 72 20 67 69 76 65 6e 20 line.(line.parent)..."For.given.
1b820 4c 49 4e 45 20 73 65 74 20 74 68 65 20 50 41 52 45 4e 54 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 LINE.set.the.PARENT.in.the.globa
1b840 6c 20 61 72 72 61 79 2e 22 0a 20 20 28 61 73 65 74 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c l.array."...(aset.ztree-parent-l
1b860 69 6e 65 73 2d 61 72 72 61 79 20 28 2d 20 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c ines-array.(-.line.ztree-start-l
1b880 69 6e 65 29 20 70 61 72 65 6e 74 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 67 65 74 ine).parent))...(defun.ztree-get
1b8a0 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 46 6f 72 20 67 -parent-for-line.(line)..."For.g
1b8c0 69 76 65 6e 20 4c 49 4e 45 20 72 65 74 75 72 6e 20 61 20 70 61 72 65 6e 74 2e 22 0a 20 20 28 77 iven.LINE.return.a.parent."...(w
1b8e0 68 65 6e 20 28 61 6e 64 20 28 3e 3d 20 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 hen.(and.(>=.line.ztree-start-li
1b900 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 6c 69 6e 65 20 28 2b 20 28 6c 65 6e ne)..............(<.line.(+.(len
1b920 67 74 68 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 29 20 7a 74 gth.ztree-parent-lines-array).zt
1b940 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 61 72 65 66 20 7a 74 72 65 ree-start-line))).....(aref.ztre
1b960 65 2d 70 61 72 65 6e 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 28 2d 20 6c 69 6e 65 20 7a 74 72 e-parent-lines-array.(-.line.ztr
1b980 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 ee-start-line))))...(defun.ztree
1b9a0 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 28 -do-toggle-expand-subtree-iter.(
1b9c0 6e 6f 64 65 20 73 74 61 74 65 29 0a 20 20 22 49 74 65 72 61 74 69 6f 6e 20 69 6e 20 65 78 70 61 node.state)..."Iteration.in.expa
1b9e0 6e 64 69 6e 67 20 73 75 62 74 72 65 65 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 63 75 72 nding.subtree..Argument.NODE.cur
1ba00 72 65 6e 74 20 6e 6f 64 65 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 41 54 45 20 6e 6f 64 65 20 73 rent.node..Argument.STATE.node.s
1ba20 74 61 74 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e tate."...(when.(ztree-node-expan
1ba40 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 68 69 6c 64 72 65 dable-p.node).....(let.((childre
1ba60 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 n.(ztree-node-children.node)))..
1ba80 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 .....(ztree-do-toggle-expand-sta
1baa0 74 65 20 6e 6f 64 65 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 te.node.state).......(dolist.(ch
1bac0 69 6c 64 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d ild.children).........(ztree-do-
1bae0 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 63 68 69 6c 64 toggle-expand-subtree-iter.child
1bb00 20 73 74 61 74 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d 74 6f .state)))))...(defun.ztree-do-to
1bb20 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 20 28 29 0a 20 20 22 49 6d 70 6c 65 6d ggle-expand-subtree.()..."Implem
1bb40 65 6e 74 73 20 74 68 65 20 73 75 62 74 72 65 65 20 65 78 70 61 6e 64 2e 22 0a 20 20 28 6c 65 74 ents.the.subtree.expand."...(let
1bb60 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 *.((line.(line-number-at-pos))..
1bb80 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 ........(node.(ztree-find-node-i
1bba0 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 61 76 65 20 74 n-line.line))..........;;.save.t
1bbc0 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e he.current.window.start.position
1bbe0 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 70 6f 73 20 28 77 69 6e 64 6f 77 2d 73 ..........(current-pos.(window-s
1bc00 74 61 72 74 29 29 29 0a 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 66 6f 72 20 65 78 70 61 6e 64 61 62 tart))).....;;.only.for.expandab
1bc20 6c 65 20 6e 6f 64 65 73 0a 20 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 le.nodes.....(when.(ztree-node-e
1bc40 78 70 61 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 3b 3b 20 67 65 74 20 74 xpandable-p.node).......;;.get.t
1bc60 68 65 20 63 75 72 72 65 6e 74 20 65 78 70 61 6e 64 20 73 74 61 74 65 20 61 6e 64 20 69 6e 76 65 he.current.expand.state.and.inve
1bc80 72 74 20 69 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 6f 2d 65 78 70 61 6e 64 20 28 6e 6f rt.it.......(let.((do-expand.(no
1bca0 74 20 28 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 t.(ztree-is-expanded-node.node))
1bcc0 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 )).........(ztree-do-toggle-expa
1bce0 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 6e 6f 64 65 20 64 6f 2d 65 78 70 61 6e 64 29 29 nd-subtree-iter.node.do-expand))
1bd00 0a 20 20 20 20 20 20 3b 3b 20 72 65 66 72 65 73 68 20 62 75 66 66 65 72 20 61 6e 64 20 73 63 72 .......;;.refresh.buffer.and.scr
1bd20 6f 6c 6c 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 61 76 65 64 20 6c 69 6e 65 0a 20 20 20 20 20 oll.back.to.the.saved.line......
1bd40 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 6c 69 6e 65 29 0a 20 20 20 .(ztree-refresh-buffer.line)....
1bd60 20 20 20 3b 3b 20 72 65 73 74 6f 72 65 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 ...;;.restore.window.start.posit
1bd80 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 73 74 61 72 74 20 28 73 65 6c ion.......(set-window-start.(sel
1bda0 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 20 63 75 72 72 65 6e 74 2d 70 6f 73 29 29 29 29 0a 0a 0a ected-window).current-pos))))...
1bdc0 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 28 (defun.ztree-do-perform-action.(
1bde0 68 61 72 64 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c 6c 61 70 73 65 64 hard)..."Toggle.expand/collapsed
1be00 20 73 74 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 6d 20 61 6e 20 61 .state.for.nodes.or.perform.an.a
1be20 63 74 69 6f 6e 2e 0a 48 41 52 44 20 73 70 65 63 69 66 69 65 73 20 28 74 20 6f 72 20 6e 69 6c 29 ction..HARD.specifies.(t.or.nil)
1be40 20 69 66 20 74 68 65 20 68 61 72 64 20 61 63 74 69 6f 6e 2c 20 62 69 6e 64 65 64 20 6f 6e 20 52 .if.the.hard.action,.binded.on.R
1be60 45 54 2c 0a 73 68 6f 75 6c 64 20 62 65 20 70 65 72 66 6f 72 6d 65 64 20 6f 6e 20 6e 6f 64 65 2e ET,.should.be.performed.on.node.
1be80 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 "...(let*.((line.(line-number-at
1bea0 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e -pos))..........(node.(ztree-fin
1bec0 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e d-node-in-line.line))).....(when
1bee0 20 6e 6f 64 65 0a 20 20 20 20 20 20 28 69 66 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 .node.......(if.(ztree-node-expa
1bf00 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 6c 79 ndable-p.node)...........;;.only
1bf20 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 .for.expandable.nodes...........
1bf40 28 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 6e 6f 64 65 29 (ztree-toggle-expand-state.node)
1bf60 0a 20 20 20 20 20 20 20 20 3b 3b 20 70 65 72 66 6f 72 6d 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 .........;;.perform.action......
1bf80 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 6e 6f 64 65 20 68 61 72 64 29 ...(ztree-node-action.node.hard)
1bfa0 29 0a 20 20 20 20 20 20 3b 3b 20 73 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 ).......;;.save.the.current.wind
1bfc0 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 ow.start.position.......(let.((c
1bfe0 75 72 72 65 6e 74 2d 70 6f 73 20 28 77 69 6e 64 6f 77 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 urrent-pos.(window-start))).....
1c000 20 20 20 20 3b 3b 20 72 65 66 72 65 73 68 20 62 75 66 66 65 72 20 61 6e 64 20 73 63 72 6f 6c 6c ....;;.refresh.buffer.and.scroll
1c020 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 61 76 65 64 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 .back.to.the.saved.line.........
1c040 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 6c 69 6e 65 29 0a 20 20 20 20 (ztree-refresh-buffer.line).....
1c060 20 20 20 20 3b 3b 20 72 65 73 74 6f 72 65 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 ....;;.restore.window.start.posi
1c080 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 73 74 61 72 74 20 28 tion.........(set-window-start.(
1c0a0 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 20 63 75 72 72 65 6e 74 2d 70 6f 73 29 29 29 29 selected-window).current-pos))))
1c0c0 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 )...(defun.ztree-perform-action.
1c0e0 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c 6c 61 70 73 65 64 20 73 74 ()..."Toggle.expand/collapsed.st
1c100 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 6d 20 74 68 65 20 61 63 74 ate.for.nodes.or.perform.the.act
1c120 69 6f 6e 2e 0a 50 65 72 66 6f 72 6d 73 20 74 68 65 20 68 61 72 64 20 61 63 74 69 6f 6e 2c 20 62 ion..Performs.the.hard.action,.b
1c140 69 6e 64 65 64 20 6f 6e 20 52 45 54 2c 20 6f 6e 20 6e 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 inded.on.RET,.on.node."...(inter
1c160 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 active)...(ztree-do-perform-acti
1c180 6f 6e 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 73 6f 66 on.t))..(defun.ztree-perform-sof
1c1a0 74 2d 61 63 74 69 6f 6e 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c t-action.()..."Toggle.expand/col
1c1c0 6c 61 70 73 65 64 20 73 74 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 lapsed.state.for.nodes.or.perfor
1c1e0 6d 20 74 68 65 20 61 63 74 69 6f 6e 2e 0a 50 65 72 66 6f 72 6d 73 20 74 68 65 20 73 6f 66 74 20 m.the.action..Performs.the.soft.
1c200 61 63 74 69 6f 6e 2c 20 62 69 6e 64 65 64 20 6f 6e 20 53 70 61 63 65 2c 20 6f 6e 20 6e 6f 64 65 action,.binded.on.Space,.on.node
1c220 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 70 ."...(interactive)...(ztree-do-p
1c240 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 erform-action.nil))...(defun.ztr
1c260 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 28 29 0a 20 20 22 54 6f ee-toggle-expand-subtree()..."To
1c280 67 67 6c 65 20 45 78 70 61 6e 64 65 64 2f 43 6f 6c 6c 61 70 73 65 64 20 73 74 61 74 65 20 6f 6e ggle.Expanded/Collapsed.state.on
1c2a0 20 61 6c 6c 20 6e 6f 64 65 73 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 22 0a 20 20 28 69 6e .all.nodes.of.the.subtree"...(in
1c2c0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 teractive)...(ztree-do-toggle-ex
1c2e0 70 61 6e 64 2d 73 75 62 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d pand-subtree))..(defun.ztree-do-
1c300 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 28 6e 6f 64 65 20 64 6f 2d 65 78 70 toggle-expand-state.(node.do-exp
1c320 61 6e 64 29 0a 20 20 22 53 65 74 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 73 74 61 74 65 20 6f and)..."Set.the.expanded.state.o
1c340 66 20 74 68 65 20 4e 4f 44 45 20 74 6f 20 44 4f 2d 45 58 50 41 4e 44 2e 22 0a 20 20 28 69 66 20 f.the.NODE.to.DO-EXPAND."...(if.
1c360 28 6e 6f 74 20 64 6f 2d 65 78 70 61 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 (not.do-expand).......(setq.ztre
1c380 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 e-expanded-nodes-list...........
1c3a0 20 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 ..(ztree-filter..............#'(
1c3c0 6c 61 6d 62 64 61 20 28 78 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 lambda.(x).(not.(ztree-node-equa
1c3e0 6c 20 6e 6f 64 65 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 65 l.node.x)))..............ztree-e
1c400 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 70 75 73 68 20 6e xpanded-nodes-list)).....(push.n
1c420 6f 64 65 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 29 29 29 ode.ztree-expanded-nodes-list)))
1c440 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 ...(defun.ztree-toggle-expand-st
1c460 61 74 65 20 28 6e 6f 64 65 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 65 64 2f 63 6f ate.(node)..."Toggle.expanded/co
1c480 6c 6c 61 70 73 65 64 20 73 74 61 74 65 20 66 6f 72 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 llapsed.state.for.NODE."...(ztre
1c4a0 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 6e 6f 64 65 20 28 6e e-do-toggle-expand-state.node.(n
1c4c0 6f 74 20 28 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 ot.(ztree-is-expanded-node.node)
1c4e0 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 )))...(defun.ztree-move-up-in-tr
1c500 65 65 20 28 29 0a 20 20 22 41 63 74 69 6f 6e 20 6f 6e 20 42 61 63 6b 73 70 61 63 65 20 6b 65 79 ee.()..."Action.on.Backspace.key
1c520 2e 0a 4a 75 6d 70 20 74 6f 20 74 68 65 20 6c 69 6e 65 20 6f 66 20 61 20 70 61 72 65 6e 74 20 6e ..Jump.to.the.line.of.a.parent.n
1c540 6f 64 65 2e 20 20 49 66 20 70 72 65 76 69 6f 75 73 20 6b 65 79 20 77 61 73 20 42 61 63 6b 73 70 ode...If.previous.key.was.Backsp
1c560 61 63 65 0a 74 68 65 6e 20 63 6c 6f 73 65 20 74 68 65 20 6e 6f 64 65 2e 22 0a 20 20 28 69 6e 74 ace.then.close.the.node."...(int
1c580 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c eractive)...(when.ztree-parent-l
1c5a0 69 6e 65 73 2d 61 72 72 61 79 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e ines-array.....(let*.((line.(lin
1c5c0 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 e-number-at-pos.(point))).......
1c5e0 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 .....(parent.(ztree-get-parent-f
1c600 6f 72 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 or-line.line))).......(when.pare
1c620 6e 74 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 71 75 61 6c 20 6c 61 73 74 2d nt.........(if.(and.(equal.last-
1c640 63 6f 6d 6d 61 6e 64 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 65 65 29 0a command.'ztree-move-up-in-tree).
1c660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 7a 74 72 65 65 2d 63 6f 75 6e .................(not.ztree-coun
1c680 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c t-subsequent-bs)).............(l
1c6a0 65 74 20 28 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 et.((node.(ztree-find-node-in-li
1c6c0 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 ne.line)))...............(when.(
1c6e0 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 0a 20 20 20 ztree-is-expanded-node.node)....
1c700 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e .............(ztree-toggle-expan
1c720 64 2d 73 74 61 74 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 d-state.node))...............(se
1c740 74 71 20 7a 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 74 29 0a tq.ztree-count-subsequent-bs.t).
1c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 ..............(ztree-refresh-buf
1c780 66 65 72 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 fer.line))...........(progn.(set
1c7a0 71 20 7a 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 6e 69 6c 29 q.ztree-count-subsequent-bs.nil)
1c7c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d ..................(ztree-scroll-
1c7e0 74 6f 2d 6c 69 6e 65 20 70 61 72 65 6e 74 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a to-line.parent)))))))...(defun.z
1c800 74 72 65 65 2d 67 65 74 2d 73 70 6c 69 74 74 65 64 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 73 20 28 tree-get-splitted-node-contens.(
1c820 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 69 72 20 6f 66 20 32 20 65 6c 65 6d 65 6e node)..."Return.pair.of.2.elemen
1c840 74 73 3a 20 6c 69 73 74 20 6f 66 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 20 61 6e 64 ts:.list.of.expandable.nodes.and
1c860 20 6c 69 73 74 20 6f 66 20 6c 65 61 66 73 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 6e 6f .list.of.leafs..Argument.NODE.no
1c880 64 65 20 77 68 69 63 68 20 63 6f 6e 74 65 6e 74 73 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e de.which.contents.will.be.return
1c8a0 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 73 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d ed."...(let.((nodes.(ztree-node-
1c8c0 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 70 20 20 23 children.node)).........(comp..#
1c8e0 27 28 6c 61 6d 62 64 61 20 28 78 20 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '(lambda.(x.y)..................
1c900 20 20 28 73 74 72 69 6e 67 3c 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d ..(string<.(ztree-node-short-nam
1c920 65 20 78 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 e.x)............................
1c940 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 79 29 29 29 29 29 0a 20 .(ztree-node-short-name.y)))))..
1c960 20 20 20 28 63 6f 6e 73 20 28 73 6f 72 74 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 ...(cons.(sort.(ztree-filter....
1c980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 66 29 20 28 7a 74 72 ..............#'(lambda.(f).(ztr
1c9a0 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 66 29 29 0a 20 20 20 20 20 20 20 ee-node-expandable-p.f))........
1c9c0 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........nodes)................
1c9e0 20 63 6f 6d 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 20 28 7a 74 72 65 65 2d 66 69 .comp)...........(sort.(ztree-fi
1ca00 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 lter..................#'(lambda.
1ca20 28 66 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d (f).(not.(ztree-node-expandable-
1ca40 70 20 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 73 29 0a 20 p.f)))..................nodes)..
1ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e ...............comp))))...(defun
1ca80 20 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 28 63 20 78 20 79 20 26 6f 70 74 69 6f 6e 61 .ztree-draw-char.(c.x.y.&optiona
1caa0 6c 20 66 61 63 65 29 0a 20 20 22 44 72 61 77 20 63 68 61 72 20 43 20 61 74 20 74 68 65 20 70 6f l.face)..."Draw.char.C.at.the.po
1cac0 73 69 74 69 6f 6e 20 28 31 2d 62 61 73 65 64 29 20 28 58 20 59 29 2e 0a 4f 70 74 69 6f 6e 61 6c sition.(1-based).(X.Y)..Optional
1cae0 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f 20 75 73 65 20 74 6f 20 64 72 .argument.FACE.face.to.use.to.dr
1cb00 61 77 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 aw.a.character."...(save-excursi
1cb20 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 on.....(goto-char.(point-min))..
1cb40 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 79 29 29 0a 20 20 20 20 28 62 65 ...(forward-line.(1-.y)).....(be
1cb60 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ginning-of-line).....(goto-char.
1cb80 28 2b 20 78 20 28 2d 28 70 6f 69 6e 74 29 20 31 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d (+.x.(-(point).1))).....(delete-
1cba0 63 68 61 72 20 31 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 63 20 31 29 0a 20 20 char.1).....(insert-char.c.1)...
1cbc0 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 28 70 6f 69 6e 74 29 ..(put-text-property.(1-.(point)
1cbe0 29 20 28 70 6f 69 6e 74 29 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 28 69 66 20 66 61 ).(point).'font-lock-face.(if.fa
1cc00 63 65 20 66 61 63 65 20 27 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 29 29 29 29 0a 0a ce.face.'ztreep-arrow-face))))..
1cc20 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 68 61 72 20 (defun.ztree-vertical-line-char.
1cc40 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 75 73 65 64 20 ()..."Return.the.character.used.
1cc60 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 7a 74 to.draw.vertical.line."...(if.zt
1cc80 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 32 35 30 32 20 3f 5c ree-draw-unicode-lines.#x2502.?\
1cca0 7c 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e |))..(defun.ztree-horizontal-lin
1ccc0 65 2d 63 68 61 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 e-char.()..."Return.the.characte
1cce0 72 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 2e 22 0a 20 r.used.to.draw.vertical.line."..
1cd00 20 28 69 66 20 7a 74 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 .(if.ztree-draw-unicode-lines.#x
1cd20 32 35 30 30 20 3f 5c 2d 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6c 65 66 74 2d 62 6f 2500.?\-))..(defun.ztree-left-bo
1cd40 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 68 61 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 ttom-corner-char.()..."Return.th
1cd60 65 20 63 68 61 72 61 63 74 65 72 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 e.character.used.to.draw.vertica
1cd80 6c 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 7a 74 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 l.line."...(if.ztree-draw-unicod
1cda0 65 2d 6c 69 6e 65 73 20 23 78 32 35 31 34 20 3f 5c 60 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 e-lines.#x2514.?\`))..(defun.ztr
1cdc0 65 65 2d 6c 65 66 74 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 72 20 28 29 0a 20 20 22 ee-left-intersection-char.()..."
1cde0 52 65 74 75 72 6e 20 6c 65 66 74 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 63 68 61 72 61 63 74 Return.left.intersection.charact
1ce00 65 72 2e 0a 49 74 20 69 73 20 6a 75 73 74 20 76 65 72 74 69 63 61 6c 20 62 61 72 20 77 68 65 6e er..It.is.just.vertical.bar.when
1ce20 20 75 6e 69 63 6f 64 65 20 64 69 73 61 62 6c 65 64 22 0a 20 20 28 69 66 20 7a 74 72 65 65 2d 64 .unicode.disabled"...(if.ztree-d
1ce40 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 32 35 31 43 20 3f 5c 7c 29 29 0a 0a raw-unicode-lines.#x251C.?\|))..
1ce60 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 (defun.ztree-draw-vertical-line.
1ce80 28 79 31 20 79 32 20 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 61 63 65 29 0a 20 20 22 44 72 61 77 (y1.y2.x.&optional.face)..."Draw
1cea0 20 61 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 6f 66 20 60 7c 27 20 63 68 61 72 61 63 74 65 .a.vertical.line.of.`|'.characte
1cec0 72 73 20 66 72 6f 6d 20 59 31 20 72 6f 77 20 74 6f 20 59 32 20 69 6e 20 58 20 63 6f 6c 75 6d 6e rs.from.Y1.row.to.Y2.in.X.column
1cee0 2e 0a 4f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f ..Optional.argument.FACE.face.to
1cf00 20 64 72 61 77 20 6c 69 6e 65 20 77 69 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 65 72 2d 6c .draw.line.with."...(let.((ver-l
1cf20 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 68 ine-char.(ztree-vertical-line-ch
1cf40 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20 28 61 62 73 20 28 2d 20 79 31 20 79 ar)).........(count.(abs.(-.y1.y
1cf60 32 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 79 31 20 79 32 29 0a 20 20 20 20 20 20 20 20 2)))).....(if.(>.y1.y2).........
1cf80 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 (progn...........(dotimes.(y.cou
1cfa0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 nt).............(ztree-draw-char
1cfc0 20 76 65 72 2d 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 79 29 20 66 61 63 65 29 29 .ver-line-char.x.(+.y2.y).face))
1cfe0 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d ...........(ztree-draw-char.ver-
1d000 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 0a line-char.x.(+.y2.count).face)).
1d020 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 ......(progn.........(dotimes.(y
1d040 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 .count)...........(ztree-draw-ch
1d060 61 72 20 76 65 72 2d 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 79 29 20 66 61 63 65 ar.ver-line-char.x.(+.y1.y).face
1d080 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d )).........(ztree-draw-char.ver-
1d0a0 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 29 line-char.x.(+.y1.count).face)))
1d0c0 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 72 ))..(defun.ztree-draw-vertical-r
1d0e0 6f 75 6e 64 65 64 2d 6c 69 6e 65 20 28 79 31 20 79 32 20 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 ounded-line.(y1.y2.x.&optional.f
1d100 61 63 65 29 0a 20 20 22 44 72 61 77 20 61 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 6f 66 20 ace)..."Draw.a.vertical.line.of.
1d120 60 7c 27 20 63 68 61 72 61 63 74 65 72 73 20 66 69 6e 69 73 68 69 6e 67 20 77 69 74 68 20 60 5c `|'.characters.finishing.with.`\
1d140 5c 3d 60 27 20 63 68 61 72 61 63 74 65 72 2e 0a 44 72 61 77 73 20 74 68 65 20 6c 69 6e 65 20 66 \=`'.character..Draws.the.line.f
1d160 72 6f 6d 20 59 31 20 72 6f 77 20 74 6f 20 59 32 20 69 6e 20 58 20 63 6f 6c 75 6d 6e 2e 0a 4f 70 rom.Y1.row.to.Y2.in.X.column..Op
1d180 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 74 20 74 6f 20 64 72 tional.argument.FACE.facet.to.dr
1d1a0 61 77 20 74 68 65 20 6c 69 6e 65 20 77 69 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 65 72 2d aw.the.line.with."...(let.((ver-
1d1c0 6c 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 line-char.(ztree-vertical-line-c
1d1e0 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 72 6e 65 72 2d 63 68 61 72 20 28 7a 74 72 65 har)).........(corner-char.(ztre
1d200 65 2d 6c 65 66 74 2d 62 6f 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 68 61 72 29 29 0a 20 20 20 20 e-left-bottom-corner-char)).....
1d220 20 20 20 20 28 63 6f 75 6e 74 20 28 61 62 73 20 28 2d 20 79 31 20 79 32 29 29 29 29 0a 20 20 20 ....(count.(abs.(-.y1.y2))))....
1d240 20 28 69 66 20 28 3e 20 79 31 20 79 32 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 .(if.(>.y1.y2).........(progn...
1d260 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 ........(dotimes.(y.count)......
1d280 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d 6c 69 6e 65 .......(ztree-draw-char.ver-line
1d2a0 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 79 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 -char.x.(+.y2.y).face)).........
1d2c0 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 6f 72 6e 65 72 2d 63 68 61 72 20 78 ..(ztree-draw-char.corner-char.x
1d2e0 20 28 2b 20 79 32 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 .(+.y2.count).face)).......(prog
1d300 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 6e 74 29 0a 20 20 20 n.........(dotimes.(y.count)....
1d320 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d 6c 69 6e 65 .......(ztree-draw-char.ver-line
1d340 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 79 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 -char.x.(+.y1.y).face)).........
1d360 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 6f 72 6e 65 72 2d 63 68 61 72 20 78 20 28 (ztree-draw-char.corner-char.x.(
1d380 2b 20 79 31 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a +.y1.count).face)))))...(defun.z
1d3a0 74 72 65 65 2d 64 72 61 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 20 28 78 31 20 78 32 tree-draw-horizontal-line.(x1.x2
1d3c0 20 79 29 0a 20 20 22 44 72 61 77 20 74 68 65 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 6c 69 6e 65 20 .y)..."Draw.the.horizontal.line.
1d3e0 66 72 6f 6d 20 63 6f 6c 75 6d 6e 20 58 31 20 74 6f 20 58 32 20 69 6e 20 74 68 65 20 72 6f 77 20 from.column.X1.to.X2.in.the.row.
1d400 59 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 Y."...(let.((hor-line-char.(ztre
1d420 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 2d 63 68 61 72 29 29 29 0a 20 20 20 20 28 69 e-horizontal-line-char))).....(i
1d440 66 20 28 3e 20 78 31 20 78 32 29 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 78 20 f.(>.x1.x2).........(dotimes.(x.
1d460 28 31 2b 20 28 2d 20 78 31 20 78 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 (1+.(-.x1.x2)))...........(ztree
1d480 2d 64 72 61 77 2d 63 68 61 72 20 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 2b 20 78 32 20 78 -draw-char.hor-line-char.(+.x2.x
1d4a0 29 20 79 29 29 0a 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 78 20 28 31 2b 20 28 2d 20 78 ).y)).......(dotimes.(x.(1+.(-.x
1d4c0 32 20 78 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 2.x1))).........(ztree-draw-char
1d4e0 20 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 2b 20 78 31 20 78 29 20 79 29 29 29 29 29 0a 0a .hor-line-char.(+.x1.x).y)))))..
1d500 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 28 74 72 65 65 20 64 65 .(defun.ztree-draw-tree.(tree.de
1d520 70 74 68 20 73 74 61 72 74 2d 6f 66 66 73 65 74 29 0a 20 20 22 44 72 61 77 20 74 68 65 20 54 52 pth.start-offset)..."Draw.the.TR
1d540 45 45 20 6f 66 20 6c 69 6e 65 73 20 77 69 74 68 20 70 61 72 65 6e 74 73 2e 0a 41 72 67 75 6d 65 EE.of.lines.with.parents..Argume
1d560 6e 74 20 44 45 50 54 48 20 63 75 72 72 65 6e 74 20 64 65 70 74 68 2e 0a 41 72 67 75 6d 65 6e 74 nt.DEPTH.current.depth..Argument
1d580 20 53 54 41 52 54 2d 4f 46 46 53 45 54 20 63 6f 6c 75 6d 6e 20 74 6f 20 73 74 61 72 74 20 64 72 .START-OFFSET.column.to.start.dr
1d5a0 61 77 69 6e 67 20 66 72 6f 6d 2e 22 0a 20 20 28 69 66 20 28 61 74 6f 6d 20 74 72 65 65 29 0a 20 awing.from."...(if.(atom.tree)..
1d5c0 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 20 28 63 61 72 20 74 .....nil.....(let*.((root.(car.t
1d5e0 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 63 64 72 20 ree))............(children.(cdr.
1d600 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 2b 20 73 74 61 tree))............(offset.(+.sta
1d620 72 74 2d 6f 66 66 73 65 74 20 28 2a 20 64 65 70 74 68 20 34 29 29 29 0a 20 20 20 20 20 20 20 20 rt-offset.(*.depth.4))).........
1d640 20 20 20 28 6c 69 6e 65 2d 73 74 61 72 74 20 28 2b 20 33 20 6f 66 66 73 65 74 29 29 0a 20 20 20 ...(line-start.(+.3.offset))....
1d660 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 6c 65 61 66 20 28 2b 20 37 20 6f 66 66 73 ........(line-end-leaf.(+.7.offs
1d680 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 6e 6f 64 65 20 28 et))............(line-end-node.(
1d6a0 2b 20 34 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 72 6e 65 72 2d +.4.offset))............(corner-
1d6c0 63 68 61 72 20 28 7a 74 72 65 65 2d 6c 65 66 74 2d 62 6f 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 char.(ztree-left-bottom-corner-c
1d6e0 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 har))............(intersection-c
1d700 68 61 72 20 28 7a 74 72 65 65 2d 6c 65 66 74 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 har.(ztree-left-intersection-cha
1d720 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 r))............;;.determine.if.t
1d740 68 65 20 6c 69 6e 65 20 69 73 20 76 69 73 69 62 6c 65 2e 20 49 74 20 69 73 20 61 6c 77 61 79 73 he.line.is.visible..It.is.always
1d760 20 74 68 65 20 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 31 2d 73 69 .the.case............;;.for.1-si
1d780 64 65 64 20 74 72 65 65 73 3b 20 68 6f 77 65 76 65 72 20 66 6f 72 20 32 20 73 69 64 65 64 20 74 ded.trees;.however.for.2.sided.t
1d7a0 72 65 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 64 65 70 65 6e 64 73 20 6f 6e rees............;;.it.depends.on
1d7c0 20 77 68 69 63 68 20 73 69 64 65 20 69 73 20 74 68 65 20 61 63 74 75 61 6c 20 65 6c 65 6d 65 6e .which.side.is.the.actual.elemen
1d7e0 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 77 68 69 63 68 20 74 72 65 65 20 28 t............;;.and.which.tree.(
1d800 6c 65 66 74 20 77 69 74 68 20 6f 66 66 73 65 74 20 30 20 6f 72 20 72 69 67 68 74 20 77 69 74 68 left.with.offset.0.or.right.with
1d820 20 6f 66 66 73 65 74 20 3e 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 .offset.>.0............;;.we.are
1d840 20 64 72 61 77 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 76 69 73 69 62 6c 65 20 23 27 28 .drawing............(visible.#'(
1d860 6c 61 6d 62 64 61 20 28 6c 69 6e 65 29 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(line).()................
1d880 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 .........(if.(not.ztree-two-side
1d8a0 64 2d 70 29 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-p).t..........................
1d8c0 20 28 6c 65 74 20 28 28 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(let.((side....................
1d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 65 74 68 61 73 ..............(plist-get.(gethas
1d900 68 20 6c 69 6e 65 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 h.line.ztree-line-tree-propertie
1d920 73 29 20 27 73 69 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s).'side))).....................
1d940 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 28 ........(cond.((eq.side.'left).(
1d960 3d 20 73 74 61 72 74 2d 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 =.start-offset.0))..............
1d980 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 73 69 64 65 20 27 .....................((eq.side.'
1d9a0 72 69 67 68 74 29 20 28 3e 20 73 74 61 72 74 2d 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 right).(>.start-offset.0))......
1d9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 .............................(t.
1d9e0 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 68 69 6c 64 72 65 6e 0a 20 20 t))))))).......(when.children...
1da00 20 20 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 6c 69 6e 65 20 74 6f 20 74 68 65 20 6c 61 ......;;.draw.the.line.to.the.la
1da20 73 74 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 69 6e 63 65 20 77 65 20 70 75 73 st.child.........;;.since.we.pus
1da40 68 27 64 20 63 68 69 6c 64 72 65 6e 20 74 6f 20 74 68 65 20 6c 69 73 74 2c 20 69 74 27 73 20 74 h'd.children.to.the.list,.it's.t
1da60 68 65 20 66 69 72 73 74 20 76 69 73 69 62 6c 65 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 3b 3b he.first.visible.line.........;;
1da80 20 66 72 6f 6d 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 .from.the.children.list.........
1daa0 28 6c 65 74 20 28 28 6c 61 73 74 2d 63 68 69 6c 64 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 63 68 (let.((last-child.(ztree-find.ch
1dac0 69 6c 64 72 65 6e 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 ildren..........................
1dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 .............#'(lambda.(x)......
1db00 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 ................................
1db20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 76 69 73 69 62 6c 65 20 28 7a 74 72 65 65 2d 63 61 72 .....(funcall.visible.(ztree-car
1db40 2d 61 74 6f 6d 20 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 78 2d 6f 66 -atom.x)))))...............(x-of
1db60 66 73 65 74 20 28 2b 20 32 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 fset.(+.2.offset)))...........(w
1db80 68 65 6e 20 6c 61 73 74 2d 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 hen.last-child.............(ztre
1dba0 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 28 31 2b 20 72 6f 6f 74 29 0a 20 e-draw-vertical-line.(1+.root)..
1dbc0 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 ................................
1dbe0 20 20 20 20 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 6c 61 73 74 2d 63 68 69 6c 64 29 .....(ztree-car-atom.last-child)
1dc00 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 ................................
1dc20 20 20 20 20 20 20 20 78 2d 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 .......x-offset))...........;;.d
1dc40 72 61 77 20 72 65 63 75 72 73 69 76 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 raw.recursively...........(dolis
1dc60 74 20 28 63 68 69 6c 64 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 t.(child.children).............(
1dc80 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 63 68 69 6c 64 20 28 31 2b 20 64 65 70 74 68 29 ztree-draw-tree.child.(1+.depth)
1dca0 20 73 74 61 72 74 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 .start-offset).............(let.
1dcc0 28 28 65 6e 64 20 28 69 66 20 28 6c 69 73 74 70 20 63 68 69 6c 64 29 20 6c 69 6e 65 2d 65 6e 64 ((end.(if.(listp.child).line-end
1dce0 2d 6e 6f 64 65 20 6c 69 6e 65 2d 65 6e 64 2d 6c 65 61 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node.line-end-leaf))...........
1dd00 20 20 20 20 20 20 20 20 28 72 6f 77 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 ........(row.(ztree-car-atom.chi
1dd20 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 ld)))...............(when.(funca
1dd40 6c 6c 20 76 69 73 69 62 6c 65 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 6c 64 ll.visible.(ztree-car-atom.child
1dd60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 )).................(ztree-draw-c
1dd80 68 61 72 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 72 20 28 31 2d 20 6c 69 6e 65 2d 73 har.intersection-char.(1-.line-s
1dda0 74 61 72 74 29 20 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 tart).row).................(ztre
1ddc0 65 2d 64 72 61 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 20 6c 69 6e 65 2d 73 74 61 72 e-draw-horizontal-line.line-star
1dde0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
1de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............end...............
1de20 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 72 6f ..............................ro
1de40 77 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 64 72 61 77 20 w))))...........;;.finally.draw.
1de60 74 68 65 20 63 6f 72 6e 65 72 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 76 65 72 74 69 63 61 the.corner.at.the.end.of.vertica
1de80 6c 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 61 73 74 2d 63 68 69 6c l.line...........(when.last-chil
1dea0 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 d.............(ztree-draw-char.c
1dec0 6f 72 6e 65 72 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orner-char......................
1dee0 20 20 20 20 20 20 20 20 78 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........x-offset................
1df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 6c 61 ..............(ztree-car-atom.la
1df20 73 74 2d 63 68 69 6c 64 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 st-child))))))))..(defun.ztree-f
1df40 69 6c 6c 2d 70 61 72 65 6e 74 2d 61 72 72 61 79 20 28 74 72 65 65 29 0a 20 20 22 53 65 74 20 74 ill-parent-array.(tree)..."Set.t
1df60 68 65 20 72 6f 6f 74 20 6c 69 6e 65 73 20 61 72 72 61 79 2e 0a 41 72 67 75 6d 65 6e 74 20 54 52 he.root.lines.array..Argument.TR
1df80 45 45 20 6e 6f 64 65 73 20 74 72 65 65 20 74 6f 20 63 72 65 61 74 65 20 61 6e 20 61 72 72 61 79 EE.nodes.tree.to.create.an.array
1dfa0 20 6f 66 20 6c 69 6e 65 73 20 66 72 6f 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 .of.lines.from."...(let.((root.(
1dfc0 63 61 72 20 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 63 64 car.tree)).........(children.(cd
1dfe0 72 20 74 72 65 65 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 69 6c 64 20 63 68 69 r.tree))).....(dolist.(child.chi
1e000 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 ldren).......(ztree-set-parent-f
1e020 6f 72 2d 6c 69 6e 65 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 6c 64 29 20 72 or-line.(ztree-car-atom.child).r
1e040 6f 6f 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 69 73 74 70 20 63 68 69 6c 64 29 0a 20 oot).......(when.(listp.child)..
1e060 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 6c 2d 70 61 72 65 6e 74 2d 61 72 72 61 79 20 .......(ztree-fill-parent-array.
1e080 63 68 69 6c 64 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 child)))))...(defun.ztree-insert
1e0a0 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 20 28 70 61 74 68 29 0a 20 20 22 49 6e 73 65 72 74 20 -node-contents.(path)..."Insert.
1e0c0 6e 6f 64 65 20 63 6f 6e 74 65 6e 74 73 20 77 69 74 68 20 69 6e 69 74 69 61 6c 20 64 65 70 74 68 node.contents.with.initial.depth
1e0e0 20 30 2e 0a 60 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d .0..`ztree-insert-node-contents-
1e100 31 27 20 72 65 74 75 72 6e 20 74 68 65 20 74 72 65 65 20 6f 66 20 6c 69 6e 65 0a 6e 75 6d 62 65 1'.return.the.tree.of.line.numbe
1e120 72 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 6f 20 69 73 20 70 61 72 65 6e 74 20 6c 69 rs.to.determine.who.is.parent.li
1e140 6e 65 20 6f 66 20 74 68 65 0a 70 61 72 74 69 63 75 6c 61 72 20 6c 69 6e 65 2e 20 20 54 68 69 73 ne.of.the.particular.line...This
1e160 20 74 72 65 65 20 69 73 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 74 68 65 0a 67 72 61 70 68 2e .tree.is.used.to.draw.the.graph.
1e180 0a 41 72 67 75 6d 65 6e 74 20 50 41 54 48 20 73 74 61 72 74 20 6e 6f 64 65 2e 22 0a 20 20 28 6c .Argument.PATH.start.node."...(l
1e1a0 65 74 20 28 28 74 72 65 65 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e et.((tree.(ztree-insert-node-con
1e1c0 74 65 6e 74 73 2d 31 20 70 61 74 68 20 30 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 75 6d 62 tents-1.path.0)).........;;.numb
1e1e0 65 72 20 6f 66 20 27 72 6f 77 73 27 20 69 6e 20 74 72 65 65 20 69 73 20 6c 61 73 74 20 6c 69 6e er.of.'rows'.in.tree.is.last.lin
1e200 65 20 6d 69 6e 75 73 20 73 74 61 72 74 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 6e 75 6d 2d e.minus.start.line.........(num-
1e220 6f 66 2d 69 74 65 6d 73 20 28 2d 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 of-items.(-.(line-number-at-pos.
1e240 28 70 6f 69 6e 74 29 29 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 (point)).ztree-start-line)))....
1e260 20 3b 3b 20 63 72 65 61 74 65 20 61 20 70 61 72 65 6e 74 73 20 61 72 72 61 79 20 74 6f 20 73 74 .;;.create.a.parents.array.to.st
1e280 6f 72 65 20 70 61 72 65 6e 74 73 20 6f 66 20 6c 69 6e 65 73 0a 20 20 20 20 3b 3b 20 70 61 72 65 ore.parents.of.lines.....;;.pare
1e2a0 6e 74 73 20 61 72 72 61 79 20 75 73 65 64 20 66 6f 72 20 6e 61 76 69 67 61 74 69 6f 6e 20 77 69 nts.array.used.for.navigation.wi
1e2c0 74 68 20 74 68 65 20 42 53 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 th.the.BS.....(setq.ztree-parent
1e2e0 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 6e 75 6d 2d 6f 66 -lines-array.(make-vector.num-of
1e300 2d 69 74 65 6d 73 20 30 29 29 0a 20 20 20 20 3b 3b 20 73 65 74 20 74 68 65 20 72 6f 6f 74 20 6e -items.0)).....;;.set.the.root.n
1e320 6f 64 65 20 69 6e 20 6c 69 6e 65 73 20 70 61 72 65 6e 74 73 20 61 72 72 61 79 0a 20 20 20 20 28 ode.in.lines.parents.array.....(
1e340 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 7a 74 72 65 65 2d ztree-set-parent-for-line.ztree-
1e360 73 74 61 72 74 2d 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 0a 20 20 20 start-line.ztree-start-line)....
1e380 20 3b 3b 20 66 69 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 20 61 72 72 72 61 79 20 66 72 6f 6d 20 .;;.fill.the.parent.arrray.from.
1e3a0 74 68 65 20 74 72 65 65 0a 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 6c 2d 70 61 72 65 6e 74 2d the.tree.....(ztree-fill-parent-
1e3c0 61 72 72 61 79 20 74 72 65 65 29 0a 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 74 72 65 65 array.tree).....;;.draw.the.tree
1e3e0 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 65 70 74 68 20 30 20 61 6e 64 20 6f 66 66 73 65 .starting.with.depth.0.and.offse
1e400 74 20 30 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 74 72 65 65 20 30 20 t.0.....(ztree-draw-tree.tree.0.
1e420 30 29 0a 20 20 20 20 3b 3b 20 66 6f 72 20 74 68 65 20 32 2d 73 69 64 65 64 20 74 72 65 65 20 77 0).....;;.for.the.2-sided.tree.w
1e440 65 20 6e 65 65 64 20 74 6f 20 64 72 61 77 20 74 68 65 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 e.need.to.draw.the.vertical.line
1e460 0a 20 20 20 20 3b 3b 20 61 6e 64 20 61 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 72 65 65 0a 20 .....;;.and.an.additional.tree..
1e480 20 20 20 28 69 66 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 ...(if.ztree-two-sided-p........
1e4a0 20 20 20 20 20 3b 20 32 2d 73 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 20 20 20 20 28 6c 65 74 .....;.2-sided.tree.........(let
1e4c0 20 28 28 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 29 0a 20 20 20 20 20 20 .((width.(window-width))).......
1e4e0 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 69 6e ....;;.draw.the.vertical.line.in
1e500 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 .the.middle.of.the.window.......
1e520 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 7a 74 ....(ztree-draw-vertical-line.zt
1e540 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-start-line..................
1e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 2b 20 6e 75 6d 2d 6f 66 ...................(1-.(+.num-of
1e580 2d 69 74 65 6d 73 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 -items.ztree-start-line)).......
1e5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f ..............................(/
1e5c0 20 77 69 64 74 68 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .width.2).......................
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 76 65 72 74 69 63 61 6c 2d 62 6f 72 64 65 72 29 0a ..............'vertical-border).
1e600 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 74 72 65 65 20 ..........(ztree-draw-tree.tree.
1e620 30 20 28 31 2b 20 28 2f 20 77 69 64 74 68 20 32 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 0.(1+.(/.width.2)))))))...(defun
1e640 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d 31 20 28 6e .ztree-insert-node-contents-1.(n
1e660 6f 64 65 20 64 65 70 74 68 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 69 6e 73 65 72 74 ode.depth)..."Recursively.insert
1e680 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 69 74 68 20 63 75 72 72 65 .contents.of.the.NODE.with.curre
1e6a0 6e 74 20 44 45 50 54 48 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 65 78 70 61 6e 64 65 64 20 28 7a nt.DEPTH."...(let*.((expanded.(z
1e6c0 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 0a 20 20 20 tree-is-expanded-node.node))....
1e6e0 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6e 6f 64 65 20 65 6e 74 72 79 20 77 69 74 68 20 ......;;.insert.node.entry.with.
1e700 64 65 66 69 6e 65 64 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 28 72 6f 6f 74 2d 6c 69 6e defined.depth..........(root-lin
1e720 65 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 6e 6f 64 65 20 64 65 70 74 68 e.(ztree-insert-entry.node.depth
1e740 20 65 78 70 61 6e 64 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 69 6c 64 72 65 6e .expanded))..........;;.children
1e760 20 6c 69 73 74 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6c 69 6e 65 73 20 77 68 69 63 68 .list.is.the.list.of.lines.which
1e780 20 61 72 65 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 66 20 74 68 65 .are.children..........;;.of.the
1e7a0 20 72 6f 6f 74 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 6e 69 .root.line..........(children.ni
1e7c0 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 78 70 61 6e 64 65 64 20 3b 3b 20 69 66 20 65 78 70 l)).....(when.expanded.;;.if.exp
1e7e0 61 6e 64 65 64 20 77 65 20 6e 65 65 64 20 74 6f 20 61 64 64 20 61 6c 6c 20 73 75 62 6e 6f 64 65 anded.we.need.to.add.all.subnode
1e800 73 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 73 20 28 7a 74 72 65 65 2d s.......(let*.((contents.(ztree-
1e820 67 65 74 2d 73 70 6c 69 74 74 65 64 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 73 20 6e 6f 64 65 29 29 get-splitted-node-contens.node))
1e840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 74 65 6e 74 73 20 69 73 20 74 68 65 ..............;;.contents.is.the
1e860 20 6c 69 73 74 20 6f 66 20 32 20 65 6c 65 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 .list.of.2.elements:............
1e880 20 20 28 6e 6f 64 65 73 20 28 63 61 72 20 63 6f 6e 74 65 6e 74 73 29 29 20 20 20 20 20 3b 20 65 ..(nodes.(car.contents)).....;.e
1e8a0 78 70 61 6e 64 61 62 6c 65 20 65 6e 74 72 69 65 73 20 2d 20 6e 6f 64 65 73 0a 20 20 20 20 20 20 xpandable.entries.-.nodes.......
1e8c0 20 20 20 20 20 20 20 28 6c 65 61 66 73 20 28 63 64 72 20 63 6f 6e 74 65 6e 74 73 29 29 29 20 20 .......(leafs.(cdr.contents)))..
1e8e0 20 20 3b 20 6c 65 61 66 73 20 2d 20 77 68 69 63 68 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 73 ..;.leafs.-.which.doesn't.have.s
1e900 75 62 6c 65 61 66 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 74 65 72 61 74 65 20 74 68 72 6f 75 ubleafs.........;;.iterate.throu
1e920 67 68 20 61 6c 6c 20 65 78 70 61 6e 64 61 62 6c 65 20 65 6e 74 72 69 65 73 20 74 6f 20 69 6e 73 gh.all.expandable.entries.to.ins
1e940 65 72 74 20 74 68 65 6d 20 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ert.them.first.........(dolist.(
1e960 6e 6f 64 65 20 6e 6f 64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 69 74 20 69 node.nodes)...........;;.if.it.i
1e980 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 20 20 20 s.not.in.the.filter.list........
1e9a0 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 6e ...(when.(ztree-node-visible-p.n
1e9c0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6e 6f 64 65 20 ode).............;;.insert.node.
1e9e0 6f 6e 20 74 68 65 20 6e 65 78 74 20 64 65 70 74 68 20 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 on.the.next.depth.level.........
1ea00 20 20 20 20 3b 3b 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 72 65 74 75 72 6e 69 6e 67 20 72 65 ....;;.and.push.the.returning.re
1ea20 73 75 6c 74 20 28 69 6e 20 66 6f 72 6d 20 28 72 6f 6f 74 20 63 68 69 6c 64 72 65 6e 29 29 0a 20 sult.(in.form.(root.children))..
1ea40 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6c 69 ...........;;.to.the.children.li
1ea60 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 7a 74 72 65 65 2d 69 6e 73 65 st.............(push.(ztree-inse
1ea80 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d 31 20 6e 6f 64 65 20 28 31 2b 20 64 65 70 74 rt-node-contents-1.node.(1+.dept
1eaa0 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 h))...................children))
1eac0 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 77 20 69 74 65 72 61 74 65 20 74 68 72 6f 75 67 68 ).........;;.now.iterate.through
1eae0 20 61 6c 6c 20 74 68 65 20 6c 65 61 66 73 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 .all.the.leafs.........(dolist.(
1eb00 6c 65 61 66 20 6c 65 61 66 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 6e 6f 74 20 leaf.leafs)...........;;.if.not.
1eb20 69 6e 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 in.filter.list...........(when.(
1eb40 7a 74 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 6c 65 61 66 29 0a 20 20 20 20 20 ztree-node-visible-p.leaf)......
1eb60 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 74 68 65 20 6c 65 61 66 20 61 6e 64 20 61 64 .......;;.insert.the.leaf.and.ad
1eb80 64 20 69 74 20 74 6f 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 d.it.to.children.............(pu
1eba0 73 68 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 6c 65 61 66 20 28 31 2b 20 sh.(ztree-insert-entry.leaf.(1+.
1ebc0 64 65 70 74 68 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 depth).nil)...................ch
1ebe0 69 6c 64 72 65 6e 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 72 65 73 75 6c 74 20 76 61 6c 75 65 20 ildren))))).....;;.result.value.
1ec00 69 73 20 74 68 65 20 6c 69 73 74 20 2d 20 68 65 61 64 20 69 73 20 74 68 65 20 72 6f 6f 74 20 6c is.the.list.-.head.is.the.root.l
1ec20 69 6e 65 2c 0a 20 20 20 20 3b 3b 20 72 65 73 74 20 61 72 65 20 63 68 69 6c 64 72 65 6e 0a 20 20 ine,.....;;.rest.are.children...
1ec40 20 20 28 63 6f 6e 73 20 72 6f 6f 74 2d 6c 69 6e 65 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 28 ..(cons.root-line.children)))..(
1ec60 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 28 6e 6f 64 65 20 64 defun.ztree-insert-entry.(node.d
1ec80 65 70 74 68 20 65 78 70 61 6e 64 65 64 29 0a 20 20 22 49 6e 73 65 6c 74 20 74 68 65 20 4e 4f 44 epth.expanded)..."Inselt.the.NOD
1eca0 45 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 77 69 74 68 20 73 70 65 63 69 E.to.the.current.line.with.speci
1ecc0 66 69 65 64 20 44 45 50 54 48 20 61 6e 64 20 45 58 50 41 4e 44 45 44 20 73 74 61 74 65 2e 22 0a fied.DEPTH.and.EXPANDED.state.".
1ece0 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 ..(let*.((line.(line-number-at-p
1ed00 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 os))..........;;.the.properties.
1ed20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 75 70 64 61 74 65 of.the.line..they.will.be.update
1ed40 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 69 74 68 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 d..........;;.with.the.offset.of
1ed60 20 74 68 65 20 74 65 78 74 20 61 6e 64 20 72 65 6c 65 76 61 6e 74 20 73 69 64 65 20 69 6e 66 6f .the.text.and.relevant.side.info
1ed80 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 rmation..........(line-propertie
1eda0 73 20 28 67 65 74 68 61 73 68 20 6c 69 6e 65 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d s.(gethash.line.ztree-line-tree-
1edc0 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 61 62 6c properties))..........(expandabl
1ede0 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 e.(ztree-node-expandable-p.node)
1ee00 29 0a 20 20 20 20 20 20 20 20 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 6e 6f )..........(short-name.(ztree-no
1ee20 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 de-left-short-name.node)).......
1ee40 20 20 20 28 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 6c 65 66 74 20 0a 20 20 20 20 20 20 20 ...(count-children-left.........
1ee60 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 78 70 61 6e 64 61 62 6c 65 20 7a 74 72 65 65 2d 73 ...(when.(and.expandable.ztree-s
1ee80 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 how-number-of-children).........
1eea0 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(ignore-errors..............
1eec0 20 28 6c 65 6e 67 74 68 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 .(length.(cl-remove-if.(lambda.(
1eee0 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n)..............................
1ef00 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a .........(and.ztree-two-sided-p.
1ef20 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 ................................
1ef40 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(eql.................
1ef60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 .............................(zt
1ef80 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-node-side.n)................
1efa0 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 27 72 69 .............................'ri
1efc0 67 68 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 ght)))..........................
1efe0 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 ...........(ztree-node-children.
1f000 6e 6f 64 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 2d 63 68 69 6c 64 node))))))..........(count-child
1f020 72 65 6e 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 ren-right...........(when.(and.e
1f040 78 70 61 6e 64 61 62 6c 65 20 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 xpandable.ztree-show-number-of-c
1f060 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 hildren).............(ignore-err
1f080 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 63 6c 2d 72 65 ors...............(length.(cl-re
1f0a0 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 move-if.(lambda.(n).............
1f0c0 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 61 6e 64 20 7a ..........................(and.z
1f0e0 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tree-two-sided-p................
1f100 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 65 71 6c ............................(eql
1f120 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 ................................
1f140 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 29 .............(ztree-node-side.n)
1f160 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 ................................
1f180 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 66 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .............'left)))...........
1f1a0 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 7a 74 72 65 65 ..........................(ztree
1f1c0 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 29 29 29 29 0a 20 20 20 20 28 -node-children.node))))))).....(
1f1e0 69 66 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 20 20 20 3b if.ztree-two-sided-p...........;
1f200 20 32 2d 73 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 69 67 .2-sided.tree.........(let.((rig
1f220 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d ht-short-name.(ztree-node-right-
1f240 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 short-name.node))...............
1f260 28 73 69 64 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 20 20 (side.(ztree-node-side.node))...
1f280 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 ............(width.(window-width
1f2a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 )))...........(when.(eq.side.'le
1f2c0 66 74 29 20 20 28 73 65 74 71 20 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 22 22 29 29 ft)..(setq.right-short-name.""))
1f2e0 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 72 69 67 68 74 ...........(when.(eq.side.'right
1f300 29 20 28 73 65 74 71 20 73 68 6f 72 74 2d 6e 61 6d 65 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 ).(setq.short-name."")).........
1f320 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 ..(setq.line-properties.........
1f340 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 ........(plist-put.line-properti
1f360 65 73 20 27 6f 66 66 73 65 74 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es.'offset......................
1f380 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 20 73 .......;;.insert.left.side.and.s
1f3a0 61 76 65 20 74 68 65 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ave.the.offset..................
1f3c0 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e 67 6c 65 2d 65 ..........(ztree-insert-single-e
1f3e0 6e 74 72 79 20 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 20 ntry.short-name.depth...........
1f400 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 ................................
1f420 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 20 ............expandable.expanded.
1f440 30 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 0...............................
1f460 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 75 6e 74 2d 63 68 ........................count-ch
1f480 69 6c 64 72 65 6e 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ildren-left.....................
1f4a0 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 ................................
1f4c0 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 ..(when.ztree-two-sided-p.......
1f4e0 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 ................................
1f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 ..................(ztree-node-fa
1f520 63 65 20 6e 6f 64 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 69 67 68 74 20 ce.node)))))...........;;.right.
1f540 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e side...........(ztree-insert-sin
1f560 67 6c 65 2d 65 6e 74 72 79 20 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 gle-entry.right-short-name.depth
1f580 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 ................................
1f5a0 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 20 28 31 2b 20 28 2f ......expandable.expanded.(1+.(/
1f5c0 20 77 69 64 74 68 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .width.2))......................
1f5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 72 ................count-children-r
1f600 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ight............................
1f620 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d ..........(when.ztree-two-sided-
1f640 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p...............................
1f660 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 6e 6f 64 65 29 29 .........(ztree-node-face.node))
1f680 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 )...........(setq.line-propertie
1f6a0 73 20 28 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 27 73 69 s.(plist-put.line-properties.'si
1f6c0 64 65 20 73 69 64 65 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 6f 6e 65 20 73 69 64 65 64 20 76 69 de.side))).......;;.one.sided.vi
1f6e0 65 77 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 28 ew.......(setq.line-properties.(
1f700 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 27 6f 66 66 73 65 plist-put.line-properties.'offse
1f720 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
1f740 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e 67 6c 65 2d 65 6e .........(ztree-insert-single-en
1f760 74 72 79 20 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 try.short-name.depth............
1f780 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 ................................
1f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c .......................expandabl
1f7c0 65 20 65 78 70 61 6e 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.expanded......................
1f7e0 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 ................................
1f800 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 77 68 65 6e 20 65 78 70 61 6e 64 61 62 6c 65 0a .............0.(when.expandable.
1f820 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 ................................
1f840 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 ................................
1f860 20 20 20 20 20 20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 6c 65 66 74 29 29 29 29 29 0a 20 ......count-children-left)))))..
1f880 20 20 20 28 70 75 74 68 61 73 68 20 6c 69 6e 65 20 6e 6f 64 65 20 7a 74 72 65 65 2d 6c 69 6e 65 ...(puthash.line.node.ztree-line
1f8a0 2d 74 6f 2d 6e 6f 64 65 2d 74 61 62 6c 65 29 0a 20 20 20 20 3b 3b 20 73 61 76 65 20 74 68 65 20 -to-node-table).....;;.save.the.
1f8c0 70 72 6f 70 65 72 74 69 65 73 20 66 6f 72 20 74 68 65 20 6c 69 6e 65 20 2d 20 73 69 64 65 20 61 properties.for.the.line.-.side.a
1f8e0 6e 64 20 74 65 78 74 20 6f 66 66 73 65 74 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 6c 69 6e 65 nd.text.offset.....(puthash.line
1f900 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 .line-properties.ztree-line-tree
1f920 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 -properties).....(insert."\n")..
1f940 20 20 20 6c 69 6e 65 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 ...line))..(defun.ztree-insert-s
1f960 69 6e 67 6c 65 2d 65 6e 74 72 79 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 ingle-entry.(short-name.depth...
1f980 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 ................................
1f9a0 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 0a 20 ...........expandable.expanded..
1f9c0 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 ................................
1f9e0 20 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............offset..............
1fa00 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 ................................
1fa20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 count-children..................
1fa40 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 26 6f 70 74 ............................&opt
1fa60 69 6f 6e 61 6c 20 66 61 63 65 29 0a 20 20 22 57 72 69 74 65 73 20 61 20 53 48 4f 52 54 2d 4e 41 ional.face)..."Writes.a.SHORT-NA
1fa80 4d 45 20 69 6e 20 61 20 70 72 6f 70 65 72 20 70 6f 73 69 74 69 6f 6e 20 77 69 74 68 20 74 68 65 ME.in.a.proper.position.with.the
1faa0 20 74 79 70 65 20 67 69 76 65 6e 2e 0a 57 72 69 74 65 73 20 61 20 73 74 72 69 6e 67 20 77 69 74 .type.given..Writes.a.string.wit
1fac0 68 20 67 69 76 65 6e 20 44 45 50 54 48 2c 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 5b 20 5d h.given.DEPTH,.prefixed.with.[.]
1fae0 20 69 66 20 45 58 50 41 4e 44 41 42 4c 45 0a 61 6e 64 20 5b 2d 5d 20 6f 72 20 5b 2b 5d 20 64 65 .if.EXPANDABLE.and.[-].or.[+].de
1fb00 70 65 6e 64 69 6e 67 20 6f 6e 20 69 66 20 69 74 20 69 73 20 45 58 50 41 4e 44 45 44 20 66 72 6f pending.on.if.it.is.EXPANDED.fro
1fb20 6d 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 4f 46 46 53 45 54 2e 0a 49 66 20 60 7a 74 72 65 m.the.specified.OFFSET..If.`ztre
1fb40 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 27 20 69 73 20 73 65 e-show-number-of-children'.is.se
1fb60 74 20 74 6f 20 74 20 74 68 65 20 43 4f 55 4e 54 2d 43 48 49 4c 44 52 45 4e 0a 61 72 67 75 6d 65 t.to.t.the.COUNT-CHILDREN.argume
1fb80 6e 74 20 69 73 20 75 73 65 64 20 74 6f 20 70 72 65 73 65 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 nt.is.used.to.present.number.of.
1fba0 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 65 78 70 61 6e 64 61 62 6c 65 20 69 74 65 6d 2e 0a entries.in.the.expandable.item..
1fbc0 43 4f 55 4e 54 2d 43 48 49 4c 44 52 45 4e 20 6d 69 67 68 74 20 62 65 20 6e 75 6c 6c 20 69 66 20 COUNT-CHILDREN.might.be.null.if.
1fbe0 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 20 the.contents.of.expandable.node.
1fc00 61 72 65 0a 6e 6f 74 20 61 63 63 65 73 73 69 62 6c 65 2e 0a 4f 70 74 69 6f 6e 61 6c 20 61 72 67 are.not.accessible..Optional.arg
1fc20 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f 20 77 72 69 74 65 20 74 65 78 74 20 77 69 ument.FACE.face.to.write.text.wi
1fc40 74 68 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 77 68 65 72 65 20 74 th..Returns.the.position.where.t
1fc60 68 65 20 74 65 78 74 20 73 74 61 72 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 he.text.starts."...(let.((result
1fc80 20 30 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 73 69 67 6e 20 23 27 28 6c 61 6d 62 64 61 .0).........(node-sign.#'(lambda
1fca0 20 28 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .(exp)........................(l
1fcc0 65 74 20 28 28 73 69 67 6e 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 28 69 66 20 65 78 70 20 22 2d et.((sign.(concat."[".(if.exp."-
1fce0 22 20 22 2b 22 29 20 22 5d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "."+")."]")))...................
1fd00 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 69 67 6e 0a .......(insert.(propertize.sign.
1fd20 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 ................................
1fd40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 0a 20 20 20 .............'font-lock-face....
1fd60 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 ................................
1fd80 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 ..........ztreep-expand-sign-fac
1fda0 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 61 63 65 20 74 6f 20 75 73 65 2e 20 69 e))))).........;;.face.to.use..i
1fdc0 66 20 46 41 43 45 20 69 73 20 6e 6f 74 20 6e 75 6c 6c 2c 20 75 73 65 20 69 74 2c 20 6f 74 68 65 f.FACE.is.not.null,.use.it,.othe
1fde0 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 64 65 73 69 64 65 20 66 72 6f 6d 20 74 68 65 rwise.........;;.deside.from.the
1fe00 20 6e 6f 64 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 2d 66 61 63 65 20 28 .node.type.........(entry-face.(
1fe20 63 6f 6e 64 20 28 66 61 63 65 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cond.(face.face)................
1fe40 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 61 62 6c 65 20 27 7a 74 72 65 65 70 2d 6e ...........(expandable.'ztreep-n
1fe60 6f 64 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode-face).......................
1fe80 20 20 20 20 28 74 20 7a 74 72 65 65 70 2d 6c 65 61 66 2d 66 61 63 65 29 29 29 29 0a 20 20 20 20 ....(t.ztreep-leaf-face)))).....
1fea0 3b 3b 20 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 69 6e 20 63 6f 6e 74 72 61 73 74 20 74 6f ;;.move-to-column.in.contrast.to
1fec0 20 69 6e 73 65 72 74 20 72 65 75 73 65 73 20 74 68 65 20 6c 61 73 74 20 70 72 6f 70 65 72 74 79 .insert.reuses.the.last.property
1fee0 0a 20 20 20 20 3b 3b 20 73 6f 20 6e 65 65 64 20 74 6f 20 63 6c 65 61 72 20 69 74 0a 20 20 20 20 .....;;.so.need.to.clear.it.....
1ff00 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 (let.((start-pos.(point)))......
1ff20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 6f 66 66 73 65 74 20 74 29 0a 20 20 20 20 20 .(move-to-column.offset.t)......
1ff40 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 2d 70 .(remove-text-properties.start-p
1ff60 6f 73 20 28 70 6f 69 6e 74 29 20 27 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 6e 69 6c 29 os.(point).'(font-lock-face.nil)
1ff80 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 6c )).....(delete-region.(point).(l
1ffa0 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 3b 3b 20 65 76 65 72 79 20 ine-end-position)).....;;.every.
1ffc0 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 65 6c 20 69 73 20 34 20 63 68 61 72 61 63 74 65 72 indentation.level.is.4.character
1ffe0 73 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 20 64 65 70 74 68 20 30 29 0a 20 20 20 20 20 20 28 69 s.....(when.(>.depth.0).......(i
20000 6e 73 65 72 74 2d 63 68 61 72 20 3f 5c 73 20 28 2a 20 34 20 64 65 70 74 68 29 29 29 20 20 20 20 nsert-char.?\s.(*.4.depth)))....
20020 20 20 20 20 20 20 20 3b 20 69 6e 73 65 72 74 20 34 20 73 70 61 63 65 73 0a 20 20 20 20 28 77 68 .......;.insert.4.spaces.....(wh
20040 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 68 6f 72 74 2d 6e 61 6d 65 29 20 30 29 0a 20 20 20 en.(>.(length.short-name).0)....
20060 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 ...(let.((start-pos.(point)))...
20080 20 20 20 20 20 20 28 69 66 20 65 78 70 61 6e 64 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 ......(if.expandable............
200a0 20 28 66 75 6e 63 61 6c 6c 20 6e 6f 64 65 2d 73 69 67 6e 20 65 78 70 61 6e 64 65 64 29 29 20 20 .(funcall.node-sign.expanded))..
200c0 20 3b 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 20 69 6e 73 65 72 74 20 22 .;.for.expandable.nodes.insert."
200e0 5b 2b 2f 2d 5d 22 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 66 6f [+/-]".........;;.indentation.fo
20100 72 20 6c 65 61 66 73 20 34 20 73 70 61 63 65 73 20 66 72 6f 6d 20 74 68 65 20 6e 6f 64 65 20 6e r.leafs.4.spaces.from.the.node.n
20120 61 6d 65 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 3f 5c 73 20 28 2d 20 ame.........(insert-char.?\s.(-.
20140 34 20 28 2d 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 6f 73 29 29 29 29 0a 20 20 20 20 20 4.(-.(point).start-pos))))......
20160 20 3b 3b 20 73 61 76 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 65 67 .;;.save.the.position.of.the.beg
20180 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 74 65 78 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 inning.of.the.text.......(setq.r
201a0 65 73 75 6c 74 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 28 69 esult.(current-column)).......(i
201c0 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 68 6f 72 74 2d 6e 61 6d 65 20 27 66 6f nsert.(propertize.short-name.'fo
201e0 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 65 6e 74 72 79 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 nt-lock-face.entry-face)).......
20200 3b 3b 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 61 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 69 6c ;;.optionally.add.number.of.chil
20220 64 72 65 6e 20 69 6e 20 62 72 61 63 65 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 dren.in.braces.......(when.(and.
20240 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 20 65 78 ztree-show-number-of-children.ex
20260 70 61 6e 64 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 2d 73 pandable).........(let.((count-s
20280 74 72 20 28 66 6f 72 6d 61 74 20 22 20 5b 25 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tr.(format.".[%s]"..............
202a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 75 6e 74 2d 63 68 ....................(if.count-ch
202c0 69 6c 64 72 65 6e 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 6f 75 6e 74 2d 63 ildren.(number-to-string.count-c
202e0 68 69 6c 64 72 65 6e 29 20 22 4e 2f 41 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e hildren)."N/A"))))...........(in
20300 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 63 6f 75 6e 74 2d 73 74 72 20 27 66 6f 6e 74 sert.(propertize.count-str.'font
20320 2d 6c 6f 63 6b 2d 66 61 63 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 6e 74 2d 63 68 69 -lock-face.ztreep-node-count-chi
20340 6c 64 72 65 6e 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 0a 28 ldren-face))))).....result))...(
20360 64 65 66 75 6e 20 7a 74 72 65 65 2d 6a 75 6d 70 2d 73 69 64 65 20 28 29 0a 20 20 22 4a 75 6d 70 defun.ztree-jump-side.()..."Jump
20380 20 74 6f 20 61 6e 6f 74 68 65 72 20 73 69 64 65 20 66 6f 72 20 32 2d 73 69 64 65 64 20 74 72 65 .to.another.side.for.2-sided.tre
203a0 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 7a 74 72 es."...(interactive)...(when.ztr
203c0 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 32 2d 73 ee-two-sided-p.............;.2-s
203e0 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 28 6c 65 74 20 28 28 63 65 6e 74 65 72 20 28 2f 20 28 ided.tree.....(let.((center.(/.(
20400 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3c 20 window-width).2))).......(if.(<.
20420 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 0a 20 20 20 20 20 20 20 (current-column).center)........
20440 20 20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 28 31 2b 20 63 65 6e 74 65 72 29 29 0a ...(move-to-column.(1+.center)).
20460 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 31 29 29 0a 20 20 20 20 ........(move-to-column.1)).....
20480 20 20 3b 3b 20 6a 75 73 74 20 72 65 63 61 6c 63 75 6c 61 74 65 20 61 6e 64 20 6d 6f 76 65 20 74 ..;;.just.recalculate.and.move.t
204a0 6f 20 70 72 6f 70 65 72 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 o.proper.column.......(ztree-scr
204c0 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 oll-to-line.(line-number-at-pos)
204e0 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 ))))...(defun.ztree-save-current
20500 2d 70 6f 73 69 74 69 6f 6e 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 -position.()..."Save.the.current
20520 20 70 6f 73 69 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 .position.into.the.global.variab
20540 6c 65 2e 22 0a 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e le."...(setq.ztree-prev-position
20560 20 28 63 6f 6e 73 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e .(cons.(line-number-at-pos.(poin
20580 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t)).............................
205a0 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 0a 0a 28 64 65 66 ......(current-column))))...(def
205c0 75 6e 20 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e un.ztree-refresh-buffer.(&option
205e0 61 6c 20 6c 69 6e 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 62 75 66 66 65 72 2e 0a al.line)..."Refresh.the.buffer..
20600 4f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 4c 49 4e 45 20 73 63 72 6f 6c 6c 20 74 6f Optional.argument.LINE.scroll.to
20620 20 74 68 65 20 6c 69 6e 65 20 67 69 76 65 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .the.line.given."...(interactive
20640 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 75 61 6c 20 6d 61 6a 6f 72 2d 6d 6f 64 65 )...(when.(and.(equal.major-mode
20660 20 27 7a 74 72 65 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e .'ztree-mode)..............(boun
20680 64 70 20 27 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 74 20 dp.'ztree-start-node)).....(let.
206a0 28 28 70 72 65 76 2d 70 6f 73 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 29 ((prev-pos.ztree-prev-position))
206c0 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d 6e 6f 64 65 2d .......(setq.ztree-line-to-node-
206e0 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 3b table.(make-hash-table)).......;
20700 3b 20 63 72 65 61 74 65 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 6f 66 20 6e 6f 64 65 20 70 72 ;.create.a.hash.table.of.node.pr
20720 6f 70 65 72 74 69 65 73 20 66 6f 72 20 6c 69 6e 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 operties.for.line.......(setq.zt
20740 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6d 61 6b 65 2d 68 ree-line-tree-properties.(make-h
20760 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 ash-table)).......(let.((inhibit
20780 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 61 -read-only.t)).........(ztree-sa
207a0 76 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 65 72 ve-current-position).........(er
207c0 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 74 72 65 65 2d ase-buffer).........(ztree-tree-
207e0 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 73 74 61 72 header).........(setq.ztree-star
20800 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e t-line.(line-number-at-pos.(poin
20820 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d t))).........(ztree-insert-node-
20840 63 6f 6e 74 65 6e 74 73 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 contents.ztree-start-node)......
20860 20 20 20 28 63 6f 6e 64 20 28 6c 69 6e 65 20 3b 3b 20 6c 6f 63 61 6c 20 72 65 66 72 65 73 68 2c ...(cond.(line.;;.local.refresh,
20880 20 73 63 72 6f 6c 6c 20 74 6f 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .scroll.to.line................(
208a0 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 ztree-scroll-to-line.line)......
208c0 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 65 76 2d 70 6f 73 0a 20 20 20 20 20 20 20 ..........(when.prev-pos........
208e0 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 ..........(beginning-of-line)...
20900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 63 64 ...............(goto-char.(+.(cd
20920 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 29 r.ztree-prev-position).(point)))
20940 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 75 6c 6c 20 6c 69 6e ))...............((and.(null.lin
20960 65 29 20 28 6e 75 6c 6c 20 70 72 65 76 2d 70 6f 73 29 29 20 3b 3b 20 66 69 72 73 74 20 72 65 66 e).(null.prev-pos)).;;.first.ref
20980 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c resh................(ztree-scrol
209a0 6c 2d 74 6f 2d 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 0a 20 20 20 20 l-to-line.ztree-start-line).....
209c0 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 70 ...........(ztree-save-current-p
209e0 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e osition))...............((and.(n
20a00 75 6c 6c 20 6c 69 6e 65 29 20 70 72 65 76 2d 70 6f 73 29 20 3b 3b 20 6e 6f 74 20 66 69 72 73 74 ull.line).prev-pos).;;.not.first
20a20 20 72 65 66 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 74 6f .refresh................;;.resto
20a40 72 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 69 66 20 70 6f 73 73 69 62 6c 65 0a 20 re.cursor.position.if.possible..
20a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c ..............(ztree-scroll-to-l
20a80 69 6e 65 20 28 63 61 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 ine.(car.ztree-prev-position))..
20aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 ..............(beginning-of-line
20ac0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 )................(goto-char.(+.(
20ae0 63 64 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 cdr.ztree-prev-position).(point)
20b00 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 )))))).....(setq.ztree-last-wind
20b20 6f 77 2d 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 29 29 0a 0a 20 20 20 20 ow-width.(window-width))))......
20b40 20 20 20 20 20 20 20 20 20 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 63 68 61 6e 67 65 2d 73 ...........(defun.ztree-change-s
20b60 74 61 72 74 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 tart-node.(node)..."Refresh.the.
20b80 62 75 66 66 65 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 6e 65 77 20 72 6f 6f 74 20 4e 4f 44 45 buffer.setting.the.new.root.NODE
20ba0 2e 0a 54 68 69 73 20 77 69 6c 6c 20 72 65 75 73 65 20 61 6c 6c 20 6f 74 68 65 72 20 73 65 74 74 ..This.will.reuse.all.other.sett
20bc0 69 6e 67 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 7a 74 72 65 65 20 62 75 66 66 65 ings.for.the.current.ztree.buffe
20be0 72 2c 20 62 75 74 0a 63 68 61 6e 67 65 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 20 74 6f 20 74 r,.but.change.the.root.node.to.t
20c00 68 65 20 6e 6f 64 65 20 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 28 73 65 74 71 20 7a 74 72 65 he.node.specified."...(setq.ztre
20c20 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d e-start-node.node.........ztree-
20c40 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d expanded-nodes-list.(list.ztree-
20c60 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 6e 20 74 68 65 20 start-node).........;;.then.the.
20c80 6e 65 77 20 72 6f 6f 74 20 6e 6f 64 65 20 69 73 20 67 69 76 65 6e 2c 20 6e 6f 20 73 65 6e 73 65 new.root.node.is.given,.no.sense
20ca0 20 74 6f 20 70 72 65 73 65 72 76 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 20 63 75 72 73 6f 72 .to.preserve.........;;.a.cursor
20cc0 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 .position.........ztree-prev-pos
20ce0 69 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 ition.nil)...(ztree-refresh-buff
20d00 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 er))..(defun.ztree-previous-line
20d20 20 28 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 74 6f 20 41 52 47 20 .(arg)..."Move.the.point.to.ARG.
20d40 6c 69 6e 65 73 20 75 70 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 5e 70 22 29 0a 20 lines.up"...(interactive."^p")..
20d60 20 28 7a 74 72 65 65 2d 6e 65 78 74 2d 6c 69 6e 65 20 28 2d 20 28 6f 72 20 61 72 67 20 31 29 29 .(ztree-next-line.(-.(or.arg.1))
20d80 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6e 65 78 74 2d 6c 69 6e 65 20 28 61 72 67 ))...(defun.ztree-next-line.(arg
20da0 29 0a 20 20 22 4d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 74 6f 20 41 52 47 20 6c 69 6e 65 73 )..."Move.the.point.to.ARG.lines
20dc0 20 64 6f 77 6e 22 20 20 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 5e 70 22 29 0a 20 20 .down".....(interactive."^p")...
20de0 28 7a 74 72 65 65 2d 6d 6f 76 65 2d 6c 69 6e 65 20 61 72 67 29 29 0a 0a 0a 28 64 65 66 75 6e 20 (ztree-move-line.arg))...(defun.
20e00 7a 74 72 65 65 2d 6d 6f 76 65 2d 6c 69 6e 65 20 28 63 6f 75 6e 74 29 0a 20 20 22 4d 6f 76 65 20 ztree-move-line.(count)..."Move.
20e20 74 68 65 20 70 6f 69 6e 74 20 43 4f 55 4e 54 20 6c 69 6e 65 73 20 61 6e 64 20 70 6c 61 63 65 20 the.point.COUNT.lines.and.place.
20e40 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e 22 0a 20 at.the.beginning.of.the.node."..
20e60 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 0a 20 20 20 28 2b 20 63 6f 75 .(ztree-scroll-to-line....(+.cou
20e80 6e 74 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 0a 0a 3b 3b 3b 23 nt.(line-number-at-pos))))..;;;#
20ea0 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 76 69 65 77 2d 6f 6e 2d ##autoload.(defun.ztree-view-on-
20ec0 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 63 68 61 6e 67 65 64 20 28 29 0a window-configuration-changed.().
20ee0 20 20 22 48 6f 6f 6b 20 63 61 6c 6c 65 64 20 74 68 65 6e 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 .."Hook.called.then.window.confi
20f00 67 75 72 61 74 69 6f 6e 20 63 68 61 6e 67 65 64 20 74 6f 20 72 65 73 69 7a 65 20 62 75 66 66 65 guration.changed.to.resize.buffe
20f20 72 27 73 20 63 6f 6e 74 65 6e 74 73 22 0a 20 20 3b 3b 20 72 65 66 72 65 73 68 20 76 69 73 69 62 r's.contents"...;;.refresh.visib
20f40 6c 65 20 7a 74 72 65 65 20 62 75 66 66 65 72 73 0a 20 20 28 77 61 6c 6b 2d 77 69 6e 64 6f 77 73 le.ztree.buffers...(walk-windows
20f60 20 28 6c 61 6d 62 64 61 20 28 77 69 6e 29 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(lambda.(win)..................
20f80 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 77 69 6e 64 6f 77 2d 62 ..(with-current-buffer.(window-b
20fa0 75 66 66 65 72 20 77 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 uffer.win).....................(
20fc0 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 7a 74 72 65 65 2d 6d 6f 64 65 when.(derived-mode-p.'ztree-mode
20fe0 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 77 68 65 6e 20 28 61 ).......................(when.(a
21000 6e 64 20 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 0a 20 20 20 20 20 nd.ztree-last-window-width......
21020 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 2f 3d 20 ............................(/=.
21040 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d ztree-last-window-width.(window-
21060 77 69 64 74 68 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 width)))........................
21080 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 .(ztree-refresh-buffer))))).....
210a0 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 76 69 73 69 62 6c 65 29 29 0a 0a 28 64 65 66 ............nil.'visible))..(def
210c0 75 6e 20 7a 74 72 65 65 2d 76 69 65 77 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 61 64 65 un.ztree-view.(buffer-name.heade
210e0 72 2d 66 75 6e 20 73 74 61 72 74 2d 6e 6f 64 65 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 20 26 r-fun.start-node.init-function.&
21100 6f 70 74 69 6f 6e 61 6c 20 74 77 6f 2d 73 69 64 65 64 2d 70 29 0a 20 20 22 43 72 65 61 74 65 20 optional.two-sided-p)..."Create.
21120 61 20 7a 74 72 65 65 20 76 69 65 77 20 62 75 66 66 65 72 20 63 6f 6e 66 69 67 75 72 65 64 20 77 a.ztree.view.buffer.configured.w
21140 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 20 67 69 76 65 6e 2e 0a 41 72 67 75 6d 65 6e 74 20 42 ith.parameters.given..Argument.B
21160 55 46 46 45 52 2d 4e 41 4d 45 20 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 63 72 UFFER-NAME.Name.of.the.buffer.cr
21180 65 61 74 65 64 2e 0a 41 72 67 75 6d 65 6e 74 20 48 45 41 44 45 52 2d 46 55 4e 20 46 75 6e 63 74 eated..Argument.HEADER-FUN.Funct
211a0 69 6f 6e 20 77 68 69 63 68 20 69 6e 73 65 72 74 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 74 ion.which.inserts.the.header.int
211c0 6f 20 74 68 65 20 62 75 66 66 65 72 0a 62 65 66 6f 72 65 20 64 72 61 77 69 6e 67 20 74 68 65 20 o.the.buffer.before.drawing.the.
211e0 74 72 65 65 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 41 52 54 2d 4e 4f 44 45 20 53 74 61 72 74 69 tree..Argument.START-NODE.Starti
21200 6e 67 20 6e 6f 64 65 20 2d 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 74 72 65 65 2e 0a ng.node.-.the.root.of.the.tree..
21220 41 72 67 75 6d 65 6e 74 20 49 4e 49 54 2d 46 55 4e 43 54 49 4f 4e 20 46 75 6e 63 74 69 6f 6e 20 Argument.INIT-FUNCTION.Function.
21240 74 6f 20 63 61 6c 6c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 72 65 66 72 65 73 68 69 6e 67 20 74 to.call.just.before.refreshing.t
21260 68 65 20 62 75 66 66 65 72 20 61 6e 64 0a 73 65 74 74 69 6e 67 20 61 6c 6c 20 76 61 72 69 61 62 he.buffer.and.setting.all.variab
21280 6c 65 73 20 61 6e 64 20 6d 6f 64 65 2e 20 43 6f 75 6c 64 20 62 65 20 6e 69 6c 2e 0a 49 74 20 63 les.and.mode..Could.be.nil..It.c
212a0 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 6f 20 73 65 74 20 75 70 20 61 20 6d 69 6e 6f 72 20 6d ould.be.used.to.set.up.a.minor.m
212c0 6f 64 65 20 6f 72 20 62 75 69 6c 64 20 61 20 74 72 65 65 2e 20 46 75 6e 63 74 69 6f 6e 20 73 68 ode.or.build.a.tree..Function.sh
212e0 6f 75 6c 64 20 6e 6f 74 0a 65 78 70 65 63 74 20 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2e 20 45 ould.not.expect.any.arguments..E
21300 78 61 6d 70 6c 65 3a 20 23 27 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 4f 70 74 69 6f 6e 61 6c xample:.#'ztreedir-mode.Optional
21320 20 61 72 67 75 6d 65 6e 74 20 54 57 4f 2d 53 49 44 45 44 2d 50 20 44 65 74 65 72 6d 69 6e 65 73 .argument.TWO-SIDED-P.Determines
21340 20 69 66 20 74 68 65 20 74 72 65 65 20 69 73 20 32 2d 73 69 64 65 64 20 28 6e 69 6c 20 62 79 20 .if.the.tree.is.2-sided.(nil.by.
21360 64 65 66 61 75 6c 74 29 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 default)"...(let.((buf.(get-buff
21380 65 72 2d 63 72 65 61 74 65 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 73 77 er-create.buffer-name))).....(sw
213a0 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 6d itch-to-buffer.buf).....(ztree-m
213c0 6f 64 65 29 0a 20 20 20 20 3b 3b 20 63 6f 6e 66 69 67 75 72 65 20 7a 74 72 65 65 2d 76 69 65 77 ode).....;;.configure.ztree-view
213e0 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 73 74 61 72 .....(setq.ztree-start-node.star
21400 74 2d 6e 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 t-node).....(setq.ztree-expanded
21420 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f -nodes-list.(list.ztree-start-no
21440 64 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 74 72 65 65 2d 68 65 61 64 65 72 de)).....(setq.ztree-tree-header
21460 2d 66 75 6e 20 68 65 61 64 65 72 2d 66 75 6e 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 -fun.header-fun).....(setq.ztree
21480 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 74 77 6f 2d 73 69 64 65 64 2d 70 29 0a 20 20 20 20 28 77 -two-sided-p.two-sided-p).....(w
214a0 68 65 6e 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c hen.init-function.......(funcall
214c0 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 .init-function)).....(ztree-refr
214e0 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 77 69 6e 64 6f esh-buffer).....(add-hook.'windo
21500 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 63 68 61 6e 67 65 2d 68 6f 6f 6b 20 23 27 7a 74 w-configuration-change-hook.#'zt
21520 72 65 65 2d 76 69 65 77 2d 6f 6e 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e ree-view-on-window-configuration
21540 2d 63 68 61 6e 67 65 64 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 2d 76 69 -changed)))...(provide.'ztree-vi
21560 65 77 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a ew).;;;.ztree-view.el.ends.here.
21580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21600 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree.el............
21620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21660 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
21680 30 30 30 32 32 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 35 37 00 20 30 00 00 00 0002222.00000000000.012757..0...
216a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21700 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...................
21720 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...................
21740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21800 3b 3b 3b 20 7a 74 72 65 65 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 64 69 72 65 63 ;;;.ztree.el.---.Text.mode.direc
21820 74 6f 72 79 20 74 72 65 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 tory.tree.-*-.lexical-binding:.t
21840 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 ;.-*-..;;.Copyright.(C).2013-202
21860 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 1..Free.Software.Foundation,.Inc
21880 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 ..;;.;;.Author:.Alexey.Veretenni
218a0 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 kov.<alexey.veretennikov@gmail.c
218c0 6f 6d 3e 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 20 56 65 om>.;;.Created:.2013-11-11.;;.Ve
218e0 72 73 69 6f 6e 3a 20 31 2e 30 2e 36 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 rsion:.1.0.6.;;.Package-Requires
21900 3a 20 28 28 63 6c 2d 6c 69 62 20 22 30 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 :.((cl-lib."0")).;;.Keywords:.fi
21920 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 les.tools.;;.URL:.https://github
21940 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c .com/fourier/ztree.;;.Compatibil
21960 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 ity:.GNU.Emacs.24.x.;;.;;.This.f
21980 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 ile.is.part.of.GNU.Emacs..;;.;;.
219a0 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 GNU.Emacs.is.free.software:.you.
219c0 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 can.redistribute.it.and/or.modif
219e0 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 y.;;.it.under.the.terms.of.the.G
21a00 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 NU.General.Public.License.as.pub
21a20 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 lished.by.;;.the.Free.Software.F
21a40 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 oundation,.either.version.3.of.t
21a60 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f he.License,.or.;;.(at.your.optio
21a80 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 n).any.later.version..;;.;;.GNU.
21aa0 45 6d 61 63 73 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 Emacs.is.distributed.in.the.hope
21ac0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 .that.it.will.be.useful,.;;.but.
21ae0 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 WITHOUT.ANY.WARRANTY;.without.ev
21b00 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 en.the.implied.warranty.of.;;.ME
21b20 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 RCHANTABILITY.or.FITNESS.FOR.A.P
21b40 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 ARTICULAR.PURPOSE...See.the.;;.G
21b60 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f NU.General.Public.License.for.mo
21b80 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
21ba0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
21bc0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
21be0 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a h.GNU.Emacs...If.not,.see.<http:
21c00 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b //www.gnu.org/licenses/>..;;.;;;
21c20 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 .Commentary:.;;.;;.;;;.Code:..(r
21c40 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 64 69 72 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 equire.'ztree-dir).(require.'ztr
21c60 65 65 2d 64 69 66 66 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 29 0a 3b 3b 3b 20 7a ee-diff)..(provide.'ztree).;;;.z
21c80 74 72 65 65 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 tree.el.ends.here...............
21ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................