summaryrefslogtreecommitdiff
path: root/.localrepo/web-20141231.2001.tar
blob: 38d5b41e76824541294d8e7d3c619b6149ec8b48 (plain)
ofshex dumpascii
0000 77 65 62 2d 32 30 31 34 31 32 33 31 2e 32 30 30 31 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 web-20141231.2001/..............
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 35 34 36 00 20 35 00 00 00 0000000.00000000000.011546..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 77 65 62 2d 32 30 31 34 31 32 33 31 2e 32 30 30 31 2f 77 65 62 2d 70 6b 67 2e 65 6c 00 00 00 00 web-20141231.2001/web-pkg.el....
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 30 36 37 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 33 30 00 20 30 00 00 00 0000671.00000000000.013430..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 ;;.-*-.no-byte-compile:.t;.lexic
0420 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b al-binding:.nil.-*-.(define-pack
0440 61 67 65 20 22 77 65 62 22 20 22 32 30 31 34 31 32 33 31 2e 32 30 30 31 22 0a 20 20 22 55 73 65 age."web"."20141231.2001"..."Use
0460 66 75 6c 20 48 54 54 50 20 63 6c 69 65 6e 74 2e 22 0a 20 20 27 28 28 64 61 73 68 20 22 32 2e 39 ful.HTTP.client."...'((dash."2.9
0480 2e 30 22 29 0a 20 20 20 20 28 73 20 20 20 20 22 31 2e 35 2e 30 22 29 29 0a 20 20 3a 75 72 6c 20 .0").....(s...."1.5.0"))...:url.
04a0 22 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 69 63 66 65 72 72 69 65 72 2f 65 6d "http://github.com/nicferrier/em
04c0 61 63 73 2d 77 65 62 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 34 38 33 31 38 38 64 61 63 34 62 63 acs-web"...:commit."483188dac4bc
04e0 36 62 34 30 39 62 39 38 35 63 39 64 61 65 34 35 66 33 33 32 34 61 34 32 35 65 66 64 22 0a 20 20 6b409b985c9dae45f3324a425efd"...
0500 3a 72 65 76 64 65 73 63 20 22 34 38 33 31 38 38 64 61 63 34 62 63 22 0a 20 20 3a 6b 65 79 77 6f :revdesc."483188dac4bc"...:keywo
0520 72 64 73 20 27 28 22 6c 69 73 70 22 20 22 68 74 74 70 22 20 22 68 79 70 65 72 6d 65 64 69 61 22 rds.'("lisp"."http"."hypermedia"
0540 29 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20 )...:authors.'(("Nic.Ferrier"...
0560 22 6e 66 65 72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 "nferrier@ferrier.me.uk"))...:ma
0580 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20 22 6e 66 intainers.'(("Nic.Ferrier"..."nf
05a0 65 72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 22 29 29 29 0a 00 00 00 00 00 00 00 errier@ferrier.me.uk")))........
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 77 65 62 2d 32 30 31 34 31 32 33 31 2e 32 30 30 31 2f 77 65 62 2e 65 6c 00 00 00 00 00 00 00 00 web-20141231.2001/web.el........
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0680 30 30 37 31 35 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 36 35 37 00 20 30 00 00 00 0071516.00000000000.012657..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 77 65 62 2e 65 6c 20 2d 2d 2d 20 75 73 65 66 75 6c 20 48 54 54 50 20 63 6c 69 65 6e ;;;.web.el.---.useful.HTTP.clien
0820 74 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b t.-*-.lexical-binding:.t.-*-..;;
0840 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 32 20 20 4e 69 63 20 46 65 72 72 69 65 72 .Copyright.(C).2012..Nic.Ferrier
0860 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4e 69 63 20 46 65 72 72 69 65 72 20 3c 6e 66 65 72 72 69 ..;;.Author:.Nic.Ferrier.<nferri
0880 65 72 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 3a er@ferrier.me.uk>.;;.Maintainer:
08a0 20 4e 69 63 20 46 65 72 72 69 65 72 20 3c 6e 66 65 72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d .Nic.Ferrier.<nferrier@ferrier.m
08c0 65 2e 75 6b 3e 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 33 20 41 75 67 20 32 30 31 32 0a 3b 3b 20 e.uk>.;;.Created:.3.Aug.2012.;;.
08e0 50 61 63 6b 61 67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30 31 34 31 32 33 31 2e 32 30 30 31 0a 3b Package-Version:.20141231.2001.;
0900 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a 20 34 38 33 31 38 38 64 61 63 34 62 63 ;.Package-Revision:.483188dac4bc
0920 0a 3b 3b 20 55 72 6c 3a 20 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 69 63 66 65 .;;.Url:.http://github.com/nicfe
0940 72 72 69 65 72 2f 65 6d 61 63 73 2d 77 65 62 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 69 73 rrier/emacs-web.;;.Keywords:.lis
0960 70 2c 20 68 74 74 70 2c 20 68 79 70 65 72 6d 65 64 69 61 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 72 p,.http,.hypermedia.;;.Package-r
0980 65 71 75 69 72 65 73 3a 20 28 28 64 61 73 68 20 22 32 2e 39 2e 30 22 29 28 73 20 22 31 2e 35 2e equires:.((dash."2.9.0")(s."1.5.
09a0 30 22 29 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 0"))..;;.This.file.is.NOT.part.o
09c0 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 f.GNU.Emacs...;;.This.program.is
09e0 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 .free.software;.you.can.redistri
0a00 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
0a20 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
0a40 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.;;
0a60 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
0a80 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,.
0aa0 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
0ac0 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 .version...;;.This.program.is.di
0ae0 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
0b00 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 ll.be.useful,.;;.but.WITHOUT.ANY
0b20 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
0b40 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 ied.warranty.of.;;.MERCHANTABILI
0b60 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 TY.or.FITNESS.FOR.A.PARTICULAR.P
0b80 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 URPOSE...See.the.;;.GNU.General.
0ba0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e Public.License.for.more.details.
0bc0 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ..;;.You.should.have.received.a.
0be0 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 4c copy.of.the.GNU.General.Public.L
0c00 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 icense.;;.along.with.this.progra
0c20 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e m...If.not,.see.<http://www.gnu.
0c40 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a org/licenses/>...;;;.Commentary:
0c60 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 61 6e 20 48 54 54 50 20 63 6c 69 65 6e 74 20 75 73 .;;.;;.This.is.an.HTTP.client.us
0c80 69 6e 67 20 6c 65 78 69 63 61 6c 20 73 63 6f 70 65 2e 20 20 54 68 69 73 20 6d 61 6b 65 73 20 63 ing.lexical.scope...This.makes.c
0ca0 6f 64 69 6e 67 20 77 69 74 68 0a 3b 3b 20 63 61 6c 6c 62 61 63 6b 73 20 65 61 73 69 65 72 20 74 oding.with.;;.callbacks.easier.t
0cc0 68 61 6e 20 77 69 74 68 20 60 75 72 6c 27 2e 20 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 61 6c han.with.`url'...This.package.al
0ce0 73 6f 20 70 72 6f 76 69 64 65 73 20 61 0a 3b 3b 20 73 74 72 65 61 6d 69 6e 67 20 6d 6f 64 65 20 so.provides.a.;;.streaming.mode.
0d00 77 68 65 72 65 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 63 6f 6e 74 69 6e 75 61 6c 6c where.the.callback.is.continuall
0d20 79 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 76 65 72 0a 3b 3b 20 64 61 74 61 20 61 72 72 69 76 65 y.called.whenever.;;.data.arrive
0d40 73 2e 20 54 68 69 73 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75 73 65 66 75 6c 20 66 s..This.is.particularly.useful.f
0d60 6f 72 20 63 68 75 6e 6b 65 64 20 65 6e 63 6f 64 69 6e 67 0a 3b 3b 20 73 63 65 6e 61 72 69 6f 73 or.chunked.encoding.;;.scenarios
0d80 2e 0a 0a 3b 3b 20 45 78 61 6d 70 6c 65 73 3a 0a 0a 3b 3b 20 47 45 54 2d 69 6e 67 20 61 6e 20 48 ...;;.Examples:..;;.GET-ing.an.H
0da0 54 54 50 20 70 61 67 65 0a 3b 3b 0a 3b 3b 20 28 77 65 62 2d 68 74 74 70 2d 67 65 74 0a 3b 3b 20 TTP.page.;;.;;.(web-http-get.;;.
0dc0 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 20 68 65 61 64 65 72 20 64 61 74 61 29 0a 3b 3b 20 20 20 .(lambda.(con.header.data).;;...
0de0 20 28 6d 65 73 73 61 67 65 20 22 74 68 65 20 70 61 67 65 20 72 65 74 75 72 6e 65 64 20 69 73 3a .(message."the.page.returned.is:
0e00 20 25 73 22 20 64 61 74 61 29 29 0a 3b 3b 20 20 3a 75 72 6c 20 22 68 74 74 70 3a 2f 2f 65 6d 61 .%s".data)).;;..:url."http://ema
0e20 63 73 77 69 6b 69 2e 6f 72 67 2f 77 69 6b 69 2f 4e 69 63 46 65 72 72 69 65 72 22 29 0a 0a 3b 3b cswiki.org/wiki/NicFerrier")..;;
0e40 20 50 4f 53 54 2d 69 6e 67 20 74 6f 20 61 6e 20 48 54 54 50 20 61 70 70 0a 3b 3b 0a 3b 3b 20 28 .POST-ing.to.an.HTTP.app.;;.;;.(
0e60 77 65 62 2d 68 74 74 70 2d 70 6f 73 74 0a 3b 3b 20 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 20 68 web-http-post.;;..(lambda.(con.h
0e80 65 61 64 65 72 20 64 61 74 61 29 0a 3b 3b 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 74 68 65 20 eader.data).;;....(message."the.
0ea0 64 61 74 61 20 69 73 3a 20 25 53 22 20 64 61 74 61 29 29 0a 3b 3b 20 20 3a 75 72 6c 20 22 68 74 data.is:.%S".data)).;;..:url."ht
0ec0 74 70 3a 2f 2f 65 78 61 6d 70 6c 65 2e 6f 72 67 2f 70 6f 73 74 70 6c 61 63 65 2f 22 0a 3b 3b 20 tp://example.org/postplace/".;;.
0ee0 20 3a 64 61 74 61 20 27 28 28 22 70 61 72 61 6d 65 74 65 72 31 22 20 2e 20 22 64 61 74 61 22 29 .:data.'(("parameter1"..."data")
0f00 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 22 70 61 72 61 6d 65 74 65 72 32 22 20 2e 20 22 6d 6f .;;..........("parameter2"..."mo
0f20 72 65 20 64 61 74 61 22 29 29 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 53 74 79 6c 65 re.data")))..;;;.Code:..;;.Style
0f40 2d 6e 6f 74 65 3a 20 54 68 69 73 20 63 6f 64 65 73 20 75 73 65 73 20 74 68 65 20 45 6d 61 63 73 -note:.This.codes.uses.the.Emacs
0f60 20 73 74 79 6c 65 20 6f 66 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 77 65 62 2f 70 72 69 76 61 74 65 2d .style.of:.;;.;;....web/private-
0f80 66 75 6e 63 74 69 6f 6e 0a 3b 3b 0a 3b 3b 20 66 6f 72 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 function.;;.;;.for.private.funct
0fa0 69 6f 6e 73 2e 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 ions...(eval-when-compile...(req
0fc0 75 69 72 65 20 27 63 6c 29 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 uire.'cl)).(require.'cl-lib).(re
0fe0 71 75 69 72 65 20 27 75 72 6c 2d 70 61 72 73 65 29 0a 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e quire.'url-parse).(require.'json
1000 29 0a 28 72 65 71 75 69 72 65 20 27 62 72 6f 77 73 65 2d 75 72 6c 29 0a 28 72 65 71 75 69 72 65 ).(require.'browse-url).(require
1020 20 27 64 61 73 68 29 0a 28 72 65 71 75 69 72 65 20 27 74 69 6d 65 2d 73 74 61 6d 70 29 0a 28 72 .'dash).(require.'time-stamp).(r
1040 65 71 75 69 72 65 20 27 72 78 29 0a 28 72 65 71 75 69 72 65 20 27 73 29 0a 0a 28 64 65 66 63 6f equire.'rx).(require.'s)..(defco
1060 6e 73 74 20 77 65 62 2f 72 65 71 75 65 73 74 2d 6d 69 6d 65 74 79 70 65 0a 20 20 27 61 70 70 6c nst.web/request-mimetype...'appl
1080 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 0a 20 20 ication/x-www-form-urlencoded...
10a0 22 54 68 65 20 64 65 66 61 75 6c 74 20 4d 49 4d 45 20 74 79 70 65 20 75 73 65 64 20 66 6f 72 20 "The.default.MIME.type.used.for.
10c0 72 65 71 75 65 73 74 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 77 65 62 2d 6d 75 6c 74 69 requests.")..(defconst.web-multi
10e0 70 61 72 74 2d 6d 69 6d 65 74 79 70 65 0a 20 20 27 6d 75 6c 74 69 70 61 72 74 2f 66 6f 72 6d 2d part-mimetype...'multipart/form-
1100 64 61 74 61 0a 20 20 22 54 68 65 20 4d 49 4d 45 20 74 79 70 65 20 75 73 65 64 20 66 6f 72 20 6d data..."The.MIME.type.used.for.m
1120 75 6c 74 69 70 61 72 74 20 72 65 71 75 65 73 74 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 ultipart.requests.")..(defun.web
1140 2d 68 65 61 64 65 72 2d 70 61 72 73 65 20 28 64 61 74 61 29 0a 20 20 22 50 61 72 73 65 20 61 6e -header-parse.(data)..."Parse.an
1160 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 20 68 65 61 64 65 72 2e 0a 0a 45 61 63 68 20 68 65 61 .HTTP.response.header...Each.hea
1180 64 65 72 20 6c 69 6e 65 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 68 61 73 68 20 77 der.line.is.stored.in.the.hash.w
11a0 69 74 68 20 61 20 73 79 6d 62 6f 6c 20 66 6f 72 6d 20 6f 66 20 74 68 65 0a 68 65 61 64 65 72 20 ith.a.symbol.form.of.the.header.
11c0 6e 61 6d 65 2e 0a 0a 54 68 65 20 73 74 61 74 75 73 20 6c 69 6e 65 20 69 73 20 65 78 70 65 63 74 name...The.status.line.is.expect
11e0 65 64 20 74 6f 20 62 65 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 64 ed.to.be.the.first.line.of.the.d
1200 61 74 61 2e 0a 54 68 65 20 73 74 61 74 75 73 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 ata..The.status.is.stored.in.the
1220 20 68 65 61 64 65 72 20 61 73 20 77 65 6c 6c 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 .header.as.well.with.the.followi
1240 6e 67 0a 6b 65 79 73 3a 0a 0a 20 20 73 74 61 74 75 73 2d 76 65 72 73 69 6f 6e 0a 20 20 73 74 61 ng.keys:....status-version...sta
1260 74 75 73 2d 63 6f 64 65 0a 20 20 73 74 61 74 75 73 2d 73 74 72 69 6e 67 0a 0a 77 68 69 63 68 20 tus-code...status-string..which.
1280 61 72 65 20 73 74 6f 72 65 64 20 61 73 20 73 79 6d 62 6f 6c 73 20 74 68 65 20 73 61 6d 65 20 61 are.stored.as.symbols.the.same.a
12a0 73 20 74 68 65 20 6e 6f 72 6d 61 6c 20 68 65 61 64 65 72 20 6b 65 79 73 2e 22 0a 20 20 28 6c 65 s.the.normal.header.keys."...(le
12c0 74 2a 20 28 28 68 65 61 64 65 72 2d 68 61 73 68 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c t*.((header-hash.(make-hash-tabl
12e0 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 e.:test.'equal))..........(heade
1300 72 2d 6c 69 6e 65 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 74 61 20 22 5c 72 5c 6e r-lines.(split-string.data."\r\n
1320 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 74 75 73 2d 6c 69 6e 65 20 28 63 61 72 20 68 "))..........(status-line.(car.h
1340 65 61 64 65 72 2d 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 eader-lines))).....(when.(string
1360 2d 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 22 48 54 54 50 2f 5c 5c 28 5b 30 2d 39 2e -match............"HTTP/\\([0-9.
1380 5d 2b 5c 5c 29 20 5c 5c 28 5b 30 2d 39 5d 5c 5c 7b 33 5c 5c 7d 5c 5c 29 5c 5c 28 20 5c 5c 28 2e ]+\\).\\([0-9]\\{3\\}\\)\\(.\\(.
13a0 2a 5c 5c 29 5c 5c 29 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 75 73 2d 6c 69 6e 65 *\\)\\)*"............status-line
13c0 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 27 73 74 61 74 75 73 2d 76 65 72 73 69 6f 6e ).......(puthash.'status-version
13e0 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 61 74 75 73 2d 6c 69 6e 65 29 20 68 65 .(match-string.1.status-line).he
1400 61 64 65 72 2d 68 61 73 68 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 27 73 74 61 74 75 ader-hash).......(puthash.'statu
1420 73 2d 63 6f 64 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 73 74 61 74 75 73 2d 6c 69 s-code.(match-string.2.status-li
1440 6e 65 29 20 68 65 61 64 65 72 2d 68 61 73 68 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 ne).header-hash).......(puthash.
1460 27 73 74 61 74 75 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 'status-string................(o
1480 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 34 20 73 74 61 74 75 73 2d 6c 69 6e 65 29 20 22 r.(match-string.4.status-line)."
14a0 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 2d 68 61 73 68 29 29 0a ")................header-hash)).
14c0 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 28 63 64 72 20 68 65 ....(cl-loop.for.line.in.(cdr.he
14e0 61 64 65 72 2d 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 ader-lines)........if.(string-ma
1500 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 22 5e 5c 5c 28 5b 41 2d 5a 61 2d 7a 30 2d 39 2e 2d tch............"^\\([A-Za-z0-9.-
1520 5d 2b 5c 5c 29 3a 5b 20 5d 2a 5c 5c 28 2e 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 6c ]+\\):[.]*\\(.*\\)"............l
1540 69 6e 65 29 0a 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e ine)........do..........(let.((n
1560 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 64 6f 77 6e 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 ame.(intern.(downcase.(match-str
1580 69 6e 67 20 31 20 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 ing.1.line))))................(v
15a0 61 6c 75 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 6c 69 6e 65 29 29 29 0a 20 20 20 alue.(match-string.2.line)))....
15c0 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 6e 61 6d 65 20 76 61 6c 75 65 20 68 65 61 64 ........(puthash.name.value.head
15e0 65 72 2d 68 61 73 68 29 29 29 0a 20 20 20 20 68 65 61 64 65 72 2d 68 61 73 68 29 29 0a 0a 28 64 er-hash))).....header-hash))..(d
1600 65 66 75 6e 20 77 65 62 2f 63 68 75 6e 6b 65 64 2d 64 65 63 6f 64 65 2d 73 74 72 65 61 6d 20 28 efun.web/chunked-decode-stream.(
1620 63 6f 6e 20 64 61 74 61 20 63 6f 6e 73 75 6d 65 72 29 0a 20 20 22 44 65 63 6f 64 65 20 74 68 65 con.data.consumer)..."Decode.the
1640 20 63 68 75 6e 6b 65 64 20 65 6e 63 6f 64 69 6e 67 20 73 74 72 65 61 6d 20 6f 6e 20 74 68 65 20 .chunked.encoding.stream.on.the.
1660 70 72 6f 63 65 73 73 20 43 4f 4e 2e 0a 0a 44 41 54 41 20 69 73 20 61 20 6c 75 6d 70 20 6f 66 20 process.CON...DATA.is.a.lump.of.
1680 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 73 74 72 65 61 6d 2c 20 61 73 20 70 61 73 73 65 64 20 data.from.the.stream,.as.passed.
16a0 66 72 6f 6d 20 61 20 66 69 6c 74 65 72 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 65 78 61 6d 70 from.a.filter.function.for.examp
16c0 6c 65 2e 0a 0a 43 4f 4e 53 55 4d 45 52 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 le...CONSUMER.is.a.function.that
16e0 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 69 .will.be.called.with.the.resulti
1700 6e 67 0a 64 61 74 61 20 6c 69 6b 65 3a 0a 0a 20 20 43 4f 4e 20 43 48 55 4e 4b 0a 0a 74 68 65 20 ng.data.like:....CON.CHUNK..the.
1720 43 4f 4e 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 43 4f 4e 20 69 6e 20 74 68 CON.is.the.same.as.the.CON.in.th
1740 69 73 20 63 61 6c 6c 2e 20 20 54 68 65 20 60 63 68 75 6e 6b 27 20 69 73 20 74 68 65 0a 63 68 75 is.call...The.`chunk'.is.the.chu
1760 6e 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 72 65 61 64 2e 20 20 4f 6e 6c 79 20 63 6f 6d nk.that.has.been.read...Only.com
1780 70 6c 65 74 65 20 63 68 75 6e 6b 73 20 61 72 65 20 73 65 6e 74 20 74 6f 20 74 68 65 0a 43 4f 4e plete.chunks.are.sent.to.the.CON
17a0 53 55 4d 45 52 2e 0a 0a 57 68 65 6e 20 74 68 65 20 63 68 75 6e 6b 65 64 20 73 74 72 65 61 6d 20 SUMER...When.the.chunked.stream.
17c0 65 6e 64 73 20 74 68 65 20 43 4f 4e 53 55 4d 45 52 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 ends.the.CONSUMER.is.called.with
17e0 20 43 48 55 4e 4b 0a 62 65 69 6e 67 20 60 3a 64 6f 6e 65 27 2e 20 20 54 68 69 73 20 63 61 6e 20 .CHUNK.being.`:done'...This.can.
1800 62 65 20 75 73 65 64 20 74 6f 20 64 6f 20 63 6c 65 61 6e 20 75 70 2e 20 20 49 74 20 69 73 20 4e be.used.to.do.clean.up...It.is.N
1820 4f 54 0a 65 78 70 65 63 74 65 64 20 74 68 61 74 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 77 69 OT.expected.that.the.callback.wi
1840 6c 6c 20 68 61 76 65 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 74 68 65 20 43 4f 4e 2c 20 74 68 61 ll.have.to.clean.up.the.CON,.tha
1860 74 0a 73 68 6f 75 6c 64 20 62 65 20 64 6f 6e 65 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 2e 0a t.should.be.done.by.the.caller..
1880 0a 43 4f 4e 20 69 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 73 74 61 74 65 20 77 69 74 68 .CON.is.used.to.store.state.with
18a0 20 74 68 65 20 70 72 6f 63 65 73 73 20 70 72 6f 70 65 72 74 79 0a 60 3a 63 68 75 6e 6b 65 64 2d .the.process.property.`:chunked-
18c0 65 6e 63 6f 64 69 6e 67 2d 62 75 66 66 65 72 27 20 62 65 69 6e 67 20 75 73 65 64 20 61 73 20 61 encoding-buffer'.being.used.as.a
18e0 20 62 75 66 66 65 72 2e 22 0a 20 20 3b 3b 20 4d 61 6b 65 20 64 61 74 61 20 74 68 65 20 77 68 6f .buffer."...;;.Make.data.the.who
1900 6c 65 20 63 68 75 6e 6b 0a 20 20 28 73 65 74 71 20 64 61 74 61 20 28 6c 65 74 20 28 28 73 61 76 le.chunk...(setq.data.(let.((sav
1920 65 64 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 63 6f 6e 20 3a 63 68 75 6e 6b 65 64 2d 65 6e 63 ed.(process-get.con.:chunked-enc
1940 6f 64 69 6e 67 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 oding-buffer)))................(
1960 69 66 20 73 61 76 65 64 20 28 63 6f 6e 63 61 74 20 73 61 76 65 64 20 64 61 74 61 29 20 64 61 74 if.saved.(concat.saved.data).dat
1980 61 29 29 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e a)))...(if.(not.(string-match."^
19a0 5c 5c 28 5b 30 2d 39 41 2d 46 61 2d 66 5d 2b 5c 5c 29 5c 72 5c 6e 22 20 64 61 74 61 29 29 0a 20 \\([0-9A-Fa-f]+\\)\r\n".data))..
19c0 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 63 68 75 6e 6b 65 64 2d 65 .....(process-put.con.:chunked-e
19e0 6e 63 6f 64 69 6e 67 2d 62 75 66 66 65 72 20 64 61 74 61 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 ncoding-buffer.data).......;;.We
1a00 20 68 61 76 65 20 69 64 65 6e 74 69 66 69 65 64 20 61 20 63 68 75 6e 6b 0a 20 20 20 20 20 20 28 .have.identified.a.chunk.......(
1a20 6c 65 74 2a 20 28 28 63 68 75 6e 6b 2d 6e 75 6d 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 let*.((chunk-num.(match-string.1
1a40 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 75 6e 6b 2d 73 69 7a 65 .data))..............(chunk-size
1a60 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 63 68 75 6e 6b 2d 6e 75 6d 20 31 36 29 .(string-to-number.chunk-num.16)
1a80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 72 65 61 64 2d 70 6f 73 20 28 2b 20 32 20 )..............(toread-pos.(+.2.
1aa0 28 6c 65 6e 67 74 68 20 63 68 75 6e 6b 2d 6e 75 6d 29 29 29 20 3b 20 2b 32 20 3d 3d 20 5c 72 5c (length.chunk-num))).;.+2.==.\r\
1ac0 6e 20 61 66 74 65 72 20 63 68 75 6e 6b 20 73 7a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 n.after.chunk.sz..............(c
1ae0 68 75 6e 6b 2d 65 6e 64 20 28 2b 20 74 6f 72 65 61 64 2d 70 6f 73 20 63 68 75 6e 6b 2d 73 69 7a hunk-end.(+.toread-pos.chunk-siz
1b00 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 28 6c 65 6e 67 74 68 20 64 61 74 61 e))).........(if.(<.(length.data
1b20 29 20 28 2b 20 32 20 63 68 75 6e 6b 2d 65 6e 64 29 29 20 3b 20 2b 32 20 3d 3d 20 5c 72 5c 6e 20 ).(+.2.chunk-end)).;.+2.==.\r\n.
1b40 61 74 20 65 6e 64 20 6f 66 20 63 68 75 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f at.end.of.chunk.............(pro
1b60 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 63 68 75 6e 6b 65 64 2d 65 6e 63 6f 64 69 6e 67 2d 62 cess-put.con.:chunked-encoding-b
1b80 75 66 66 65 72 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 uffer.data).............(let.((t
1ba0 6f 72 65 61 64 20 28 73 75 62 73 74 72 69 6e 67 20 64 61 74 61 20 74 6f 72 65 61 64 2d 70 6f 73 oread.(substring.data.toread-pos
1bc0 20 63 68 75 6e 6b 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .chunk-end))...................(
1be0 74 72 61 69 6c 69 6e 67 20 28 73 75 62 73 74 72 69 6e 67 20 64 61 74 61 20 63 68 75 6e 6b 2d 65 trailing.(substring.data.chunk-e
1c00 6e 64 20 28 2b 20 63 68 75 6e 6b 2d 65 6e 64 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 nd.(+.chunk-end.2)))............
1c20 20 20 20 20 20 20 20 28 6c 65 66 74 20 28 73 75 62 73 74 72 69 6e 67 20 64 61 74 61 20 28 2b 20 .......(left.(substring.data.(+.
1c40 63 68 75 6e 6b 2d 65 6e 64 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 chunk-end.2))))...............(i
1c60 66 20 74 72 61 69 6c 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 f.trailing...................(as
1c80 73 65 72 74 20 28 65 71 75 61 6c 20 74 72 61 69 6c 69 6e 67 20 22 5c 72 5c 6e 22 29 20 74 29 29 sert.(equal.trailing."\r\n").t))
1ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ...............(cond............
1cc0 20 20 20 20 20 28 28 65 71 75 61 6c 20 30 20 63 68 75 6e 6b 2d 73 69 7a 65 29 0a 20 20 20 20 20 .....((equal.0.chunk-size)......
1ce0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 69 73 68 65 64 0a 20 20 20 20 20 20 20 20 ............;;.Finished.........
1d00 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6e 73 75 6d 65 72 20 63 6f 6e 20 3a .........(funcall.consumer.con.:
1d20 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 6f 6e 65 29 0a 20 20 done)..................:done)...
1d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 68 75 6e 6b 2d 73 69 7a 65 20 28 6c 65 ..............((>.chunk-size.(le
1d60 6e 67 74 68 20 74 6f 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ngth.toread))..................(
1d80 70 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 63 68 75 6e 6b 65 64 2d 65 6e 63 6f 64 69 6e process-put.con.:chunked-encodin
1da0 67 2d 62 75 66 66 65 72 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-buffer.data)).................
1dc0 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 61 74 20 74 68 65 20 64 (t..................;;.Eat.the.d
1de0 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 6f ata..................(funcall.co
1e00 6e 73 75 6d 65 72 20 63 6f 6e 20 74 6f 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nsumer.con.toread)..............
1e20 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 74 68 65 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 ....;;.Clear.the.buffer.........
1e40 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 63 68 75 6e 6b .........(process-put.con.:chunk
1e60 65 64 2d 65 6e 63 6f 64 69 6e 67 2d 62 75 66 66 65 72 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 ed-encoding-buffer."")..........
1e80 20 20 20 20 20 20 20 20 3b 3b 20 47 6f 20 72 6f 75 6e 64 20 61 67 61 69 6e 20 69 66 20 77 65 20 ........;;.Go.round.again.if.we.
1ea0 6e 65 65 64 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6c 65 66 need.to..................(if.lef
1ec0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 63 68 75 6e t......................(web/chun
1ee0 6b 65 64 2d 64 65 63 6f 64 65 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ked-decode-stream...............
1f00 20 20 20 20 20 20 20 20 63 6f 6e 20 6c 65 66 74 20 63 6f 6e 73 75 6d 65 72 29 29 29 29 29 29 29 ........con.left.consumer)))))))
1f20 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 63 6c 65 61 6e 75 70 2d 70 72 6f 63 65 73 73 20 28 ))..(defun.web/cleanup-process.(
1f40 70 72 6f 63 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 63 6c 65 proc)..."Kill.the.buffer.and.cle
1f60 61 6e 20 74 68 65 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 70 an.the.process."...(let.((buf.(p
1f80 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 rocess-buffer.proc))).....(delet
1fa0 65 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 e-process.proc).....(kill-buffer
1fc0 20 62 75 66 29 29 29 0a 0a 0a 28 64 65 66 63 6f 6e 73 74 20 77 65 62 2d 63 6f 6f 6b 69 65 2d 6a .buf)))...(defconst.web-cookie-j
1fe0 61 72 2d 66 69 6c 65 0a 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 77 65 62 ar-file...(expand-file-name."web
2000 2d 63 6f 6f 6b 69 65 73 22 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a -cookies".user-emacs-directory).
2020 20 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6f 6b 69 65 20 6a 61 .."The.location.of.the.cookie.ja
2040 72 20 66 69 6c 65 2e 0a 0a 4f 76 65 72 72 69 64 65 20 74 68 69 73 20 77 69 74 68 20 64 79 6e 61 r.file...Override.this.with.dyna
2060 6d 69 63 20 73 63 6f 70 65 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 75 73 65 20 61 20 73 mic.scope.if.you.need.to.use.a.s
2080 70 65 63 69 66 69 63 0a 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 63 6f 6f 6b pecific.file.")..(defun.web/cook
20a0 69 65 2d 73 70 6c 69 74 20 28 63 6f 6f 6b 69 65 2d 68 65 61 64 65 72 29 0a 20 20 28 77 68 65 6e ie-split.(cookie-header)...(when
20c0 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 28 5b 5e 3d 5d 2b 5c 5c 29 3d 5c 5c 28 2e .(string-match."\\([^=]+\\)=\\(.
20e0 2a 5c 5c 29 22 20 63 6f 6f 6b 69 65 2d 68 65 61 64 65 72 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 *\\)".cookie-header).....(let*.(
2100 28 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 6f 6f 6b 69 65 2d 68 65 61 (name.(match-string.1.cookie-hea
2120 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6f 6b 69 65 2d 73 74 72 20 28 6d 61 der))............(cookie-str.(ma
2140 74 63 68 2d 73 74 72 69 6e 67 20 32 20 63 6f 6f 6b 69 65 2d 68 65 61 64 65 72 29 29 0a 20 20 20 tch-string.2.cookie-header))....
2160 20 20 20 20 20 20 20 20 28 70 61 72 74 73 20 28 73 2d 73 70 6c 69 74 20 22 3b 22 20 63 6f 6f 6b ........(parts.(s-split.";".cook
2180 69 65 2d 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 63 61 72 20 ie-str))............(value.(car.
21a0 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 2d 2d 6b 65 65 70 parts))............(args.(--keep
21c0 20 28 73 2d 73 70 6c 69 74 20 22 3d 22 20 28 73 2d 74 72 69 6d 20 69 74 29 20 74 29 20 28 63 64 .(s-split."=".(s-trim.it).t).(cd
21e0 72 20 70 61 72 74 73 29 29 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 6e 61 6d 65 20 76 61 6c r.parts)))).......(list.name.val
2200 75 65 20 61 72 67 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 63 6f 6f 6b 69 65 2d 68 ue.args))))..(defun.web/cookie-h
2220 61 6e 64 6c 65 72 20 28 63 6f 6e 20 68 64 72 29 0a 20 20 22 4d 61 69 6e 74 61 69 6e 73 20 61 20 andler.(con.hdr)..."Maintains.a.
2240 63 6f 6f 6b 69 65 20 6a 61 72 2e 0a 0a 43 6f 6f 6b 69 65 73 20 61 72 65 20 77 72 69 74 74 65 6e cookie.jar...Cookies.are.written
2260 20 74 6f 20 66 69 6c 65 20 5c 22 77 65 62 2d 63 6f 6f 6b 69 65 2d 6a 61 72 2d 66 69 6c 65 5c 22 .to.file.\"web-cookie-jar-file\"
2280 20 69 6e 20 61 20 4a 53 4f 4e 0a 66 6f 72 6d 61 74 20 62 75 74 20 70 72 65 66 69 78 65 64 20 62 .in.a.JSON.format.but.prefixed.b
22a0 79 20 74 68 65 20 75 72 6c 20 74 68 61 74 20 63 61 75 73 65 64 20 74 68 65 20 63 6f 6f 6b 69 65 y.the.url.that.caused.the.cookie
22c0 20 74 6f 20 62 65 20 73 65 74 2e 22 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a .to.be.set."...(save-match-data.
22e0 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6f 6b 69 65 2d 68 64 72 20 28 67 65 74 68 61 73 68 20 27 ....(let.((cookie-hdr.(gethash.'
2300 73 65 74 2d 63 6f 6f 6b 69 65 20 68 64 72 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 set-cookie.hdr))).......(when.(s
2320 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 28 5b 5e 3d 5d 2b 5c 5c 29 3d 5c 5c 28 2e 2a 5c 5c tring-match."\\([^=]+\\)=\\(.*\\
2340 29 22 20 63 6f 6f 6b 69 65 2d 68 64 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e )".cookie-hdr).........(let*.((n
2360 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 6f 6f 6b 69 65 2d 68 64 72 29 29 ame.(match-string.1.cookie-hdr))
2380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6f 6b 69 65 2d 73 74 72 20 28 6d 61 74 ................(cookie-str.(mat
23a0 63 68 2d 73 74 72 69 6e 67 20 32 20 63 6f 6f 6b 69 65 2d 68 64 72 29 29 0a 20 20 20 20 20 20 20 ch-string.2.cookie-hdr))........
23c0 20 20 20 20 20 20 20 20 28 70 61 72 74 73 20 28 73 2d 73 70 6c 69 74 20 22 3b 22 20 63 6f 6f 6b ........(parts.(s-split.";".cook
23e0 69 65 2d 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 ie-str))................(value.(
2400 63 61 72 20 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 car.parts))................(args
2420 20 28 2d 2d 6b 65 65 70 20 28 73 2d 73 70 6c 69 74 20 22 3d 22 20 28 73 2d 74 72 69 6d 20 69 74 .(--keep.(s-split."=".(s-trim.it
2440 29 20 74 29 20 28 63 64 72 20 70 61 72 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 ).t).(cdr.parts))))...........(c
2460 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ondition-case.err...............
2480 28 77 68 65 6e 20 77 65 62 2d 63 6f 6f 6b 69 65 2d 6a 61 72 2d 66 69 6c 65 0a 20 20 20 20 20 20 (when.web-cookie-jar-file.......
24a0 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 ..........(with-current-buffer.(
24c0 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 77 65 62 2d 63 6f 6f 6b 69 65 2d 6a 61 find-file-noselect.web-cookie-ja
24e0 72 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d r-file)...................(goto-
2500 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.(point-min))...............
2520 20 20 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 63 6f 6e 20 ....(let.((url.(process-get.con.
2540 3a 77 65 62 2d 75 72 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 :web-url))......................
2560 20 20 20 28 6a 73 6f 6e 20 28 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 60 28 2c 6e 61 6d 65 20 2c 76 ...(json.(json-encode.`(,name.,v
2580 61 6c 75 65 20 2c 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alue.,args))))..................
25a0 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...(save-match-data.............
25c0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 ..........(if.(re-search-forward
25e0 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 72 78 2d ............................(rx-
2600 74 6f 2d 73 74 72 69 6e 67 20 60 28 61 6e 64 20 62 6f 6c 20 2c 75 72 6c 20 22 20 22 20 28 67 72 to-string.`(and.bol.,url.".".(gr
2620 6f 75 70 2d 6e 20 31 20 28 2a 20 61 6e 79 74 68 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 oup-n.1.(*.anything)))).........
2640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 ...................nil.t).......
2660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 ....................(replace-mat
2680 63 68 20 6a 73 6f 6e 20 6e 69 6c 20 74 20 6e 69 6c 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 ch.json.nil.t.nil.1)............
26a0 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 70 6f 69 6e 74 ...............(goto-char.(point
26c0 2d 6d 61 78 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 -max))..........................
26e0 20 28 69 6e 73 65 72 74 20 75 72 6c 20 22 20 22 20 6a 73 6f 6e 20 22 5c 6e 22 29 29 29 29 0a 20 .(insert.url.".".json."\n"))))..
2700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 66 69 6c 65 20 28 62 75 .................(write-file.(bu
2720 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ffer-file-name)))).............(
2740 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 error.(message..................
2760 20 20 20 22 77 65 62 2f 63 6f 6f 6b 69 65 2d 68 61 6e 64 6c 65 72 3a 20 27 25 73 27 20 77 72 69 ..."web/cookie-handler:.'%s'.wri
2780 74 69 6e 67 20 63 6f 6f 6b 69 65 73 20 74 6f 20 27 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 ting.cookies.to.'%s'"...........
27a0 20 20 20 20 20 20 20 20 20 20 65 72 72 20 77 65 62 2d 63 6f 6f 6b 69 65 2d 6a 61 72 2d 66 69 6c ..........err.web-cookie-jar-fil
27c0 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 63 68 75 6e 6b 65 64 2d 66 69 e))))))))..(defun.web/chunked-fi
27e0 6c 74 65 72 20 28 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 6d 6f 64 65 20 68 65 61 64 65 72 20 64 lter.(callback.con.mode.header.d
2800 61 74 61 29 0a 20 20 22 46 69 6c 74 65 72 20 66 6f 72 20 74 68 65 20 63 6c 69 65 6e 74 20 77 68 ata)..."Filter.for.the.client.wh
2820 65 6e 20 77 65 27 72 65 20 64 6f 69 6e 67 20 63 68 75 6e 6b 69 6e 67 2e 22 0a 20 20 28 63 6f 6e en.we're.doing.chunking."...(con
2840 64 0a 20 20 20 20 28 28 65 71 20 6d 6f 64 65 20 27 73 74 72 65 61 6d 29 0a 20 20 20 20 20 28 66 d.....((eq.mode.'stream)......(f
2860 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 65 61 64 65 72 20 64 61 74 61 29 uncall.callback.con.header.data)
2880 0a 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 64 61 74 61 20 3a 64 6f 6e 65 29 0a 20 20 20 20 ......(when.(eq.data.:done).....
28a0 20 20 20 28 77 65 62 2f 63 6c 65 61 6e 75 70 2d 70 72 6f 63 65 73 73 20 63 6f 6e 29 29 29 0a 20 ...(web/cleanup-process.con)))..
28c0 20 20 20 28 28 61 6e 64 20 28 65 71 20 6d 6f 64 65 20 27 62 61 74 63 68 29 0a 20 20 20 20 20 20 ...((and.(eq.mode.'batch).......
28e0 20 20 20 20 28 65 71 20 64 61 74 61 20 3a 64 6f 6e 65 29 29 0a 20 20 20 20 20 28 66 75 6e 63 61 ....(eq.data.:done))......(funca
2900 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 65 61 64 65 72 20 28 70 72 6f 63 65 73 73 2d ll.callback.con.header.(process-
2920 67 65 74 20 63 6f 6e 20 3a 77 65 62 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 28 77 65 62 2f get.con.:web-buffer))......(web/
2940 63 6c 65 61 6e 75 70 2d 70 72 6f 63 65 73 73 20 63 6f 6e 29 29 0a 20 20 20 20 28 74 0a 20 20 20 cleanup-process.con)).....(t....
2960 20 20 28 70 72 6f 63 65 73 73 2d 70 75 74 0a 20 20 20 20 20 20 63 6f 6e 20 3a 77 65 62 2d 62 75 ..(process-put.......con.:web-bu
2980 66 66 65 72 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6f 72 20 28 70 72 6f 63 65 73 73 2d ffer.......(concat.(or.(process-
29a0 67 65 74 20 63 6f 6e 20 3a 77 65 62 2d 62 75 66 66 65 72 29 20 22 22 29 0a 20 20 20 20 20 20 20 get.con.:web-buffer)."")........
29c0 20 20 20 20 20 20 20 64 61 74 61 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 63 6f 6e .......data)))))..(defun.web/con
29e0 74 65 6e 74 2d 6c 65 6e 67 74 68 2d 66 69 6c 74 65 72 20 28 63 61 6c 6c 62 61 63 6b 20 63 6f 6e tent-length-filter.(callback.con
2a00 20 6d 6f 64 65 20 68 65 61 64 65 72 20 64 61 74 61 29 0a 20 20 22 44 6f 65 73 20 74 68 65 20 63 .mode.header.data)..."Does.the.c
2a20 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 20 66 69 6c 74 65 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 ontent-length.filtering."...(let
2a40 20 28 28 63 6f 6e 74 65 6e 74 2d 6c 65 6e 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 .((content-len.(string-to-number
2a60 20 28 67 65 74 68 61 73 68 20 27 63 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 20 68 65 61 64 65 72 .(gethash.'content-length.header
2a80 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 6d 6f 64 65 20 27 62 61 74 63 68 29 0a 20 20 )))).....(if.(eq.mode.'batch)...
2aa0 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 6f 2d 66 61 72 20 28 63 6f 6e 63 61 74 20 28 70 72 6f ......(let.((so-far.(concat.(pro
2ac0 63 65 73 73 2d 67 65 74 20 63 6f 6e 20 3a 77 65 62 2d 62 75 66 66 65 72 29 20 64 61 74 61 29 29 cess-get.con.:web-buffer).data))
2ae0 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 63 6f 6e 74 65 6e 74 2d 6c 65 6e 20 28 )...........(if.(>.content-len.(
2b00 6c 65 6e 67 74 68 20 73 6f 2d 66 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 length.so-far))...............(p
2b20 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 77 65 62 2d 62 75 66 66 65 72 20 73 6f 2d 66 61 rocess-put.con.:web-buffer.so-fa
2b40 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 76 65 20 61 6c 6c 20 r)...............;;.We.have.all.
2b60 74 68 65 20 64 61 74 61 2c 20 63 61 6c 6c 62 61 63 6b 20 61 6e 64 20 74 68 65 6e 20 6b 69 6c 6c the.data,.callback.and.then.kill
2b80 20 74 68 65 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 77 69 .the.process...............(unwi
2ba0 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 nd-protect....................(f
2bc0 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 65 61 64 65 72 20 73 6f 2d 66 61 uncall.callback.con.header.so-fa
2be0 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 63 6c 65 61 6e 75 70 2d r).................(web/cleanup-
2c00 70 72 6f 63 65 73 73 20 63 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 process.con)))).........;;.Else.
2c20 77 65 27 72 65 20 69 6e 20 73 74 72 65 61 6d 20 6d 6f 64 65 20 73 6f 20 64 65 6c 69 76 65 72 20 we're.in.stream.mode.so.deliver.
2c40 74 68 65 20 62 69 74 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6c 6c 65 63 74 65 the.bits.........(let.((collecte
2c60 64 20 28 2b 20 28 6f 72 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 63 6f 6e 20 3a 77 65 62 2d 6c d.(+.(or.(process-get.con.:web-l
2c80 65 6e 29 20 30 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 en).0)..........................
2ca0 20 20 20 28 6c 65 6e 67 74 68 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 ...(length.data))))...........(i
2cc0 66 20 28 3e 20 63 6f 6e 74 65 6e 74 2d 6c 65 6e 20 63 6f 6c 6c 65 63 74 65 64 29 0a 20 20 20 20 f.(>.content-len.collected).....
2ce0 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 20 ..........(progn................
2d00 20 28 70 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 77 65 62 2d 6c 65 6e 20 63 6f 6c 6c 65 .(process-put.con.:web-len.colle
2d20 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 cted).................(funcall.c
2d40 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 65 61 64 65 72 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 allback.con.header.data)).......
2d60 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 77 65 27 72 65 20 64 6f 6e 65 0a 20 20 20 20 20 ........;;.Else.we're.done......
2d80 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 .........(funcall.callback.con.h
2da0 65 61 64 65 72 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 eader.data)...............(funca
2dc0 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 68 65 61 64 65 72 20 3a 64 6f 6e 65 29 0a 20 20 ll.callback.con.header.:done)...
2de0 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 63 6c 65 61 6e 75 70 2d 70 72 6f 63 65 73 73 ............(web/cleanup-process
2e00 20 63 6f 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 .con))))))..(defun.web/http-post
2e20 2d 66 69 6c 74 65 72 20 28 63 6f 6e 20 64 61 74 61 20 63 61 6c 6c 62 61 63 6b 20 6d 6f 64 65 29 -filter.(con.data.callback.mode)
2e40 0a 20 20 22 46 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 48 54 54 50 20 50 4f 53 ..."Filter.function.for.HTTP.POS
2e60 54 2e 0a 0a 4e 6f 74 20 61 63 74 75 61 6c 6c 79 20 61 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 T...Not.actually.a.filter.functi
2e80 6f 6e 20 62 65 63 61 75 73 65 20 69 74 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 74 68 65 0a on.because.it.also.receives.the.
2ea0 43 41 4c 4c 42 41 43 4b 20 61 6e 64 20 74 68 65 20 4d 4f 44 45 20 66 72 6f 6d 20 74 68 65 20 61 CALLBACK.and.the.MODE.from.the.a
2ec0 63 74 75 61 6c 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 2c 20 61 20 6c 65 78 69 63 61 6c ctual.filter.function,.a.lexical
2ee0 0a 63 6c 6f 73 75 72 65 20 69 6e 73 69 64 65 20 60 77 65 62 2d 68 74 74 70 2d 70 6f 73 74 27 2e .closure.inside.`web-http-post'.
2f00 0a 0a 43 41 4c 4c 42 41 43 4b 20 69 73 20 61 20 75 73 65 72 20 73 75 70 70 6c 69 65 64 20 66 75 ..CALLBACK.is.a.user.supplied.fu
2f20 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 72 65 74 75 72 6e 20 66 72 6f 6d 20 nction.handling.the.return.from.
2f40 74 68 65 0a 48 54 54 50 20 73 65 72 76 65 72 2e 0a 0a 4d 4f 44 45 20 63 6f 6d 65 73 20 66 72 6f the.HTTP.server...MODE.comes.fro
2f60 6d 20 74 68 65 20 60 77 65 62 2d 68 74 74 70 2d 70 6f 73 74 27 20 63 61 6c 6c 2e 20 20 54 68 69 m.the.`web-http-post'.call...Thi
2f80 73 20 66 75 6e 63 74 69 6f 6e 0a 68 61 6e 64 6c 65 73 20 74 68 65 20 4d 4f 44 45 20 62 79 20 65 s.function.handles.the.MODE.by.e
2fa0 69 74 68 65 72 20 73 74 72 65 61 6d 69 6e 67 20 74 68 65 20 64 61 74 61 20 74 6f 20 74 68 65 20 ither.streaming.the.data.to.the.
2fc0 43 41 4c 4c 42 41 43 4b 20 6f 72 0a 62 79 20 63 6f 6c 6c 65 63 74 69 6e 67 20 69 74 20 61 6e 64 CALLBACK.or.by.collecting.it.and
2fe0 20 74 68 65 6e 20 62 61 74 63 68 69 6e 67 20 69 74 20 74 6f 20 74 68 65 20 43 41 4c 4c 42 41 43 .then.batching.it.to.the.CALLBAC
3000 4b 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 72 6f 63 K."...(with-current-buffer.(proc
3020 65 73 73 2d 62 75 66 66 65 72 20 63 6f 6e 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 65 ess-buffer.con).....(let.((heade
3040 72 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 63 6f 6e 20 3a 68 74 74 70 2d 68 65 61 64 65 72 29 r.(process-get.con.:http-header)
3060 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 )).......(if.(not.header).......
3080 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(save-excursion.............
30a0 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 (goto-char.(point-max)).........
30c0 20 20 20 20 28 69 6e 73 65 72 74 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ....(insert.data).............;;
30e0 20 46 69 6e 64 20 74 68 65 20 68 65 61 64 65 72 20 69 66 20 77 65 20 64 6f 6e 27 74 20 68 61 76 .Find.the.header.if.we.don't.hav
3100 65 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 68 e.it.............(if.(and.(not.h
3120 65 61 64 65 72 29 0a 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 eader)......................(pro
3140 67 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 28 67 6f 74 6f 2d gn........................(goto-
3160 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.(point-min))...............
3180 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 72 5c .........(re-search-forward."\r\
31a0 6e 5c 72 5c 6e 22 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n\r\n".nil.t))).................
31c0 28 6c 65 74 20 28 28 68 64 72 20 28 77 65 62 2d 68 65 61 64 65 72 2d 70 61 72 73 65 0a 20 20 20 (let.((hdr.(web-header-parse....
31e0 20 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 62 75 66 66 65 72 .........................(buffer
3200 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 -substring.(point-min).(point-ma
3220 78 29 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 3b 3b 20 46 x)))).......................;;.F
3240 72 6f 6d 20 74 68 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 65 20 65 6e 64 20 6f 66 20 68 65 61 64 rom.the.point.of.the.end.of.head
3260 65 72 20 74 6f 20 74 68 65 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er.to.the.end...................
3280 20 20 20 20 3b 3b 20 69 73 20 74 68 65 20 64 61 74 61 20 77 65 20 6e 65 65 64 2e 2e 2e 20 74 68 ....;;.is.the.data.we.need....th
32a0 69 73 20 6d 61 79 20 62 65 20 6e 6f 74 68 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 is.may.be.nothing...............
32c0 20 20 20 20 20 20 20 20 20 28 70 61 72 74 2d 64 61 74 61 20 28 69 66 20 28 3e 20 28 70 6f 69 6e .........(part-data.(if.(>.(poin
32e0 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-max).(point)).................
3300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 .....................(buffer-sub
3320 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 string.(point).(point-max)).....
3340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3360 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 .nil)))...................(proce
3380 73 73 2d 70 75 74 20 63 6f 6e 20 3a 68 74 74 70 2d 68 65 61 64 65 72 2d 70 6f 73 20 28 70 6f 69 ss-put.con.:http-header-pos.(poi
33a0 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d nt))...................(process-
33c0 70 75 74 20 63 6f 6e 20 3a 68 74 74 70 2d 68 65 61 64 65 72 20 68 64 72 29 0a 20 20 20 20 20 20 put.con.:http-header.hdr).......
33e0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 20 6d 6f 72 65 20 64 ............;;.If.we.have.more.d
3400 61 74 61 20 63 61 6c 6c 20 6f 75 72 73 65 6c 76 65 73 20 74 6f 20 70 72 6f 63 65 73 73 20 69 74 ata.call.ourselves.to.process.it
3420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 74 2d 64 61 ...................(when.part-da
3440 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 68 74 74 70 ta.....................(web/http
3460 2d 70 6f 73 74 2d 66 69 6c 74 65 72 20 63 6f 6e 20 70 61 72 74 2d 64 61 74 61 20 63 61 6c 6c 62 -post-filter.con.part-data.callb
3480 61 63 6b 20 6d 6f 64 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 ack.mode)))))...........;;.Else.
34a0 77 65 20 68 61 76 65 20 74 68 65 20 68 65 61 64 65 72 2c 20 72 65 61 64 20 74 68 65 20 62 6f 64 we.have.the.header,.read.the.bod
34c0 79 20 61 6e 64 20 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 3b 3b y.and.call.callback...........;;
34e0 20 46 49 58 4d 45 20 2d 20 77 65 20 63 6f 75 6c 64 20 64 6f 20 63 6f 6f 6b 69 65 20 68 61 6e 64 .FIXME.-.we.could.do.cookie.hand
3500 6c 69 6e 67 20 68 65 72 65 2e 2e 2e 20 61 6e 64 20 61 75 74 6f 20 72 65 64 69 72 65 63 74 20 0a ling.here....and.auto.redirect..
3520 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 ..........(cond.............((eq
3540 75 61 6c 20 22 63 68 75 6e 6b 65 64 22 20 28 67 65 74 68 61 73 68 20 27 74 72 61 6e 73 66 65 72 ual."chunked".(gethash.'transfer
3560 2d 65 6e 63 6f 64 69 6e 67 20 68 65 61 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -encoding.header))..............
3580 28 77 65 62 2f 63 68 75 6e 6b 65 64 2d 64 65 63 6f 64 65 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 (web/chunked-decode-stream......
35a0 20 20 20 20 20 20 20 20 20 63 6f 6e 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........con.data...............
35c0 3b 3b 20 46 49 58 4d 45 20 77 65 20 73 74 69 6c 6c 20 6e 65 65 64 20 74 68 65 20 63 61 6c 6c 62 ;;.FIXME.we.still.need.the.callb
35e0 61 63 6b 20 74 6f 20 6b 6e 6f 77 20 69 66 20 74 68 69 73 20 69 73 20 63 6f 6d 70 6c 65 74 69 6f ack.to.know.if.this.is.completio
3600 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 20 64 61 74 n...............(lambda.(con.dat
3620 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 63 68 75 6e 6b 65 64 2d a).................(web/chunked-
3640 66 69 6c 74 65 72 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 6d 6f 64 65 20 68 65 61 64 65 72 20 filter.callback.con.mode.header.
3660 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 76 65 20 data)))).............;;.We.have.
3680 61 20 63 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 20 68 65 61 64 65 72 20 73 6f 20 6a 75 73 74 20 a.content-length.header.so.just.
36a0 62 75 66 66 65 72 20 74 68 61 74 20 6d 75 63 68 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 buffer.that.much.data...........
36c0 20 20 28 28 67 65 74 68 61 73 68 20 27 63 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 20 68 65 61 64 ..((gethash.'content-length.head
36e0 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 63 6f 6e 74 65 6e 74 2d 6c 65 er)..............(web/content-le
3700 6e 67 74 68 2d 66 69 6c 74 65 72 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6e 20 6d 6f 64 65 20 68 65 ngth-filter.callback.con.mode.he
3720 61 64 65 72 20 64 61 74 61 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 6b 65 79 ader.data)))))))..(defun.web/key
3740 2d 76 61 6c 75 65 2d 65 6e 63 6f 64 65 20 28 6b 65 79 20 76 61 6c 75 65 29 0a 20 20 22 45 6e 63 -value-encode.(key.value)..."Enc
3760 6f 64 65 20 61 20 4b 45 59 20 61 6e 64 20 56 41 4c 55 45 20 66 6f 72 20 75 72 6c 20 65 6e 63 6f ode.a.KEY.and.VALUE.for.url.enco
3780 64 69 6e 67 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 20 28 28 6f 72 0a 20 20 20 20 20 20 28 6e ding."...(cond.....((or.......(n
37a0 75 6d 62 65 72 70 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 70 20 76 61 6c umberp.value).......(stringp.val
37c0 75 65 29 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 22 25 73 3d 25 73 22 0a ue))......(format......."%s=%s".
37e0 20 20 20 20 20 20 28 75 72 6c 2d 68 65 78 69 66 79 2d 73 74 72 69 6e 67 20 28 66 6f 72 6d 61 74 ......(url-hexify-string.(format
3800 20 22 25 73 22 20 6b 65 79 29 29 0a 20 20 20 20 20 20 28 75 72 6c 2d 68 65 78 69 66 79 2d 73 74 ."%s".key)).......(url-hexify-st
3820 72 69 6e 67 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 ring.(format."%s".value)))).....
3840 28 74 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 75 72 6c 2d 68 65 78 69 66 79 (t......(format."%s".(url-hexify
3860 2d 73 74 72 69 6e 67 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 6b 65 79 29 29 29 29 29 29 0a 0a -string.(format."%s".key))))))..
3880 28 64 65 66 75 6e 20 77 65 62 2d 74 6f 2d 71 75 65 72 79 2d 73 74 72 69 6e 67 20 28 6f 62 6a 65 (defun.web-to-query-string.(obje
38a0 63 74 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 4f 42 4a 45 43 54 20 28 61 20 68 61 73 68 2d 74 61 ct)..."Convert.OBJECT.(a.hash-ta
38c0 62 6c 65 20 6f 72 20 61 6c 69 73 74 29 20 74 6f 20 61 6e 20 48 54 54 50 20 71 75 65 72 79 20 73 ble.or.alist).to.an.HTTP.query.s
38e0 74 72 69 6e 67 2e 0a 0a 49 66 20 4f 42 4a 45 43 54 20 69 73 20 6f 66 20 74 79 70 65 20 60 68 61 tring...If.OBJECT.is.of.type.`ha
3900 73 68 2d 74 61 62 6c 65 27 20 74 68 65 6e 20 74 68 65 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 sh-table'.then.the.keys.and.valu
3920 65 73 20 6f 66 20 74 68 65 0a 68 61 73 68 20 61 72 65 20 69 74 65 72 61 74 65 64 20 69 6e 74 6f es.of.the.hash.are.iterated.into
3940 20 74 68 65 20 73 74 72 69 6e 67 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 69 72 20 74 .the.string.depending.on.their.t
3960 79 70 65 73 2e 0a 0a 4b 65 79 73 20 77 69 74 68 20 60 6e 75 6d 62 65 72 27 20 61 6e 64 20 60 73 ypes...Keys.with.`number'.and.`s
3980 74 72 69 6e 67 27 20 76 61 6c 75 65 73 20 61 72 65 20 65 6e 63 6f 64 65 64 20 61 73 0a 5c 22 6b tring'.values.are.encoded.as.\"k
39a0 65 79 3d 76 61 6c 75 65 5c 22 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 71 75 65 72 ey=value\".in.the.resulting.quer
39c0 79 2e 0a 0a 4b 65 79 73 20 77 69 74 68 20 61 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 28 6f y...Keys.with.a.boolean.value.(o
39e0 72 20 61 6e 79 20 6f 74 68 65 72 20 76 61 6c 75 65 20 6e 6f 74 20 61 6c 72 65 61 64 79 0a 64 65 r.any.other.value.not.already.de
3a00 73 63 72 69 62 65 64 29 20 61 72 65 20 65 6e 63 6f 64 65 64 20 6a 75 73 74 20 61 73 20 5c 22 6b scribed).are.encoded.just.as.\"k
3a20 65 79 5c 22 2e 0a 0a 4b 65 79 73 20 6d 61 79 20 62 65 20 73 79 6d 62 6f 6c 73 20 6f 72 20 73 74 ey\"...Keys.may.be.symbols.or.st
3a40 72 69 6e 67 73 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 rings."...(mapconcat....(lambda.
3a60 28 70 61 69 72 29 0a 20 20 20 20 20 28 77 65 62 2f 6b 65 79 2d 76 61 6c 75 65 2d 65 6e 63 6f 64 (pair)......(web/key-value-encod
3a80 65 20 28 63 61 72 20 70 61 69 72 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 20 28 63 6f e.(car.pair).(cdr.pair)))....(co
3aa0 6e 64 0a 20 20 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 6f 62 6a 65 63 74 29 0a 20 nd......((hash-table-p.object)..
3ac0 20 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 68 .....(let.(result).........(maph
3ae0 61 73 68 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 ash..........(lambda.(key.value)
3b00 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 61 70 70 65 6e 64 ............(setq.result.(append
3b20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 6b 65 79 20 76 61 6c 75 65 29 29 20 72 65 73 75 6c 74 29 .(list.(cons.key.value)).result)
3b40 29 29 0a 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 28 72 65 76 ))..........object).........(rev
3b60 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 20 28 28 6c 69 73 74 70 20 6f 62 6a 65 erse.result)))......((listp.obje
3b80 63 74 29 0a 20 20 20 20 20 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 22 26 22 29 29 0a 0a 0a 3b 3b ct).......object))...."&"))...;;
3ba0 20 57 68 61 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 62 6f 64 79 20 6c 6f 6f 6b 73 20 6c 69 6b .What.a.multipart.body.looks.lik
3bc0 65 0a 3b 3b 20 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 6d 75 6c 74 69 70 61 72 74 2f 66 6f 72 e.;;.Content-type:.multipart/for
3be0 6d 2d 64 61 74 61 2c 20 62 6f 75 6e 64 61 72 79 3d 41 61 42 30 33 78 0a 3b 3b 0a 3b 3b 20 2d 2d m-data,.boundary=AaB03x.;;.;;.--
3c00 41 61 42 30 33 78 0a 3b 3b 20 63 6f 6e 74 65 6e 74 2d 64 69 73 70 6f 73 69 74 69 6f 6e 3a 20 66 AaB03x.;;.content-disposition:.f
3c20 6f 72 6d 2d 64 61 74 61 3b 20 6e 61 6d 65 3d 22 66 69 65 6c 64 31 22 0a 3b 3b 0a 3b 3b 20 4a 6f orm-data;.name="field1".;;.;;.Jo
3c40 65 20 42 6c 6f 77 0a 3b 3b 20 2d 2d 41 61 42 30 33 78 0a 3b 3b 20 63 6f 6e 74 65 6e 74 2d 64 69 e.Blow.;;.--AaB03x.;;.content-di
3c60 73 70 6f 73 69 74 69 6f 6e 3a 20 66 6f 72 6d 2d 64 61 74 61 3b 20 6e 61 6d 65 3d 22 70 69 63 73 sposition:.form-data;.name="pics
3c80 22 3b 20 66 69 6c 65 6e 61 6d 65 3d 22 66 69 6c 65 31 2e 74 78 74 22 0a 3b 3b 20 43 6f 6e 74 65 ";.filename="file1.txt".;;.Conte
3ca0 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 0a 3b 3b 0a 3b 3b 20 20 2e 2e 2e 20 63 nt-Type:.text/plain.;;.;;......c
3cc0 6f 6e 74 65 6e 74 73 20 6f 66 20 66 69 6c 65 31 2e 74 78 74 20 2e 2e 2e 0a 3b 3b 20 2d 2d 41 61 ontents.of.file1.txt.....;;.--Aa
3ce0 42 30 33 78 2d 2d 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 74 6f 2d 6d 75 6c 74 69 70 61 72 74 2d B03x--..(defun.web/to-multipart-
3d00 62 6f 75 6e 64 61 72 79 20 28 29 0a 20 20 22 4d 61 6b 65 20 61 20 62 6f 75 6e 64 61 72 79 20 6d boundary.()..."Make.a.boundary.m
3d20 61 72 6b 65 72 2e 22 0a 20 20 28 73 68 61 31 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 22 20 28 arker."...(sha1.(format."%s%s".(
3d40 72 61 6e 64 6f 6d 29 20 28 74 69 6d 65 2d 73 74 61 6d 70 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a random).(time-stamp-string))))..
3d60 28 64 65 66 75 6e 20 77 65 62 2f 69 73 2d 66 69 6c 65 20 28 6b 76 29 0a 20 20 28 6c 65 74 20 28 (defun.web/is-file.(kv)...(let.(
3d80 28 62 20 28 63 64 72 20 6b 76 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 62 75 66 66 65 72 70 20 (b.(cdr.kv))).....(and.(bufferp.
3da0 62 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 29 20 62 29 29 29 0a 0a 28 64 b).(buffer-file-name.b).b)))..(d
3dc0 65 66 75 6e 20 77 65 62 2d 74 6f 2d 6d 75 6c 74 69 70 61 72 74 20 28 64 61 74 61 29 0a 20 20 22 efun.web-to-multipart.(data)..."
3de0 43 6f 6e 76 65 72 74 20 44 41 54 41 2c 20 61 6e 20 41 4c 49 53 54 20 6f 72 20 48 61 73 68 74 61 Convert.DATA,.an.ALIST.or.Hashta
3e00 62 6c 65 2c 20 69 6e 74 6f 20 61 20 4d 75 6c 74 69 70 61 72 74 20 62 6f 64 79 2e 0a 0a 52 65 74 ble,.into.a.Multipart.body...Ret
3e20 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 6d 75 6c 74 69 70 61 72 74 20 62 urns.a.string.of.the.multipart.b
3e40 6f 64 79 20 70 72 6f 70 65 72 74 69 7a 65 64 20 77 69 74 68 0a 60 3a 62 6f 75 6e 64 61 72 79 27 ody.propertized.with.`:boundary'
3e60 20 77 69 74 68 20 61 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 62 6f 75 6e 64 61 72 79 20 73 74 .with.a.value.of.the.boundary.st
3e80 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 6f 75 6e 64 61 72 79 20 28 77 65 62 2f 74 ring."...(let*.((boundary.(web/t
3ea0 6f 2d 6d 75 6c 74 69 70 61 72 74 2d 62 6f 75 6e 64 61 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 o-multipart-boundary))..........
3ec0 28 70 61 72 74 73 20 28 6d 61 70 63 6f 6e 63 61 74 20 20 3b 20 66 69 72 73 74 20 74 68 65 20 70 (parts.(mapconcat..;.first.the.p
3ee0 61 72 61 6d 73 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 arams......................(lamb
3f00 64 61 20 28 6b 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 da.(kv)....................(let.
3f20 28 28 6e 61 6d 65 20 28 63 61 72 20 6b 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ((name.(car.kv))................
3f40 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 63 64 72 20 6b 76 29 29 29 0a 20 20 20 20 ..........(value.(cdr.kv))).....
3f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2d 2d 25 73 5c 72 .................(format."--%s\r
3f80 0a 43 6f 6e 74 65 6e 74 2d 44 69 73 70 6f 73 69 74 69 6f 6e 3a 20 66 6f 72 6d 2d 64 61 74 61 3b .Content-Disposition:.form-data;
3fa0 20 6e 61 6d 65 3d 5c 22 25 73 5c 22 5c 72 5c 6e 5c 72 5c 6e 25 73 22 0a 20 20 20 20 20 20 20 20 .name=\"%s\"\r\n\r\n%s".........
3fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 61 72 79 20 6e 61 .....................boundary.na
3fe0 6d 65 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 66 me.value)))..................(-f
4000 69 6c 74 65 72 20 28 6c 61 6d 62 64 61 20 28 6b 76 29 20 28 6e 6f 74 20 28 77 65 62 2f 69 73 2d ilter.(lambda.(kv).(not.(web/is-
4020 66 69 6c 65 20 6b 76 29 29 29 20 64 61 74 61 29 20 22 5c 72 5c 6e 22 29 29 0a 20 20 20 20 20 20 file.kv))).data)."\r\n")).......
4040 20 20 20 28 66 69 6c 65 73 20 28 6d 61 70 63 6f 6e 63 61 74 20 20 3b 20 74 68 65 6e 20 74 68 65 ...(files.(mapconcat..;.then.the
4060 20 66 69 6c 65 73 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d .files......................(lam
4080 62 64 61 20 28 6b 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 bda.(kv)....................(let
40a0 2a 20 28 28 6e 61 6d 65 20 28 63 61 72 20 6b 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.((name.(car.kv))..............
40c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 20 28 63 64 72 20 6b 76 29 29 0a 20 .............(buffer.(cdr.kv))..
40e0 20 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 6e 61 .........................(filena
4100 6d 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 29 0a 20 20 me.(buffer-file-name.buffer))...
4120 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 6d 69 6d 65 2d 65 6e ........................(mime-en
4140 63 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.(or...........................
4160 20 20 20 20 20 20 20 20 20 20 20 28 6d 6d 2d 64 65 66 61 75 6c 74 2d 66 69 6c 65 2d 65 6e 63 6f ...........(mm-default-file-enco
4180 64 69 6e 67 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ding.filename)..................
41a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 ...................."text/plain"
41c0 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 28 66 6f 72 6d 61 74 )))......................(format
41e0 20 22 2d 2d 25 73 5c 72 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 ."--%s\r.Content-Transfer-Encodi
4200 6e 67 3a 20 42 41 53 45 36 34 5c 72 0a 43 6f 6e 74 65 6e 74 2d 44 69 73 70 6f 73 69 74 69 6f 6e ng:.BASE64\r.Content-Disposition
4220 3a 20 66 6f 72 6d 2d 64 61 74 61 3b 20 6e 61 6d 65 3d 5c 22 25 73 5c 22 3b 20 66 69 6c 65 6e 61 :.form-data;.name=\"%s\";.filena
4240 6d 65 3d 5c 22 25 73 5c 22 5c 72 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 25 73 5c 72 5c 6e me=\"%s\"\r.Content-Type:.%s\r\n
4260 5c 72 5c 6e 25 73 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 \r\n%s".........................
4280 20 20 20 20 20 62 6f 75 6e 64 61 72 79 20 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f .....boundary.name.(file-name-no
42a0 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d 65 29 20 6d 69 6d 65 2d 65 6e 63 0a 20 20 ndirectory.filename).mime-enc...
42c0 20 20 20 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 20 46 49 ...........................;;.FI
42e0 58 4d 45 20 2d 20 57 65 20 73 68 6f 75 6c 64 20 62 61 73 65 36 34 20 74 68 65 20 63 6f 6e 74 65 XME.-.We.should.base64.the.conte
4300 6e 74 20 77 68 65 6e 20 61 70 70 72 6f 70 72 69 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 nt.when.appropriate.............
4320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 2d .................(base64-encode-
4340 73 74 72 69 6e 67 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 string..........................
4360 20 20 20 20 20 28 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(apply.....................
4380 20 20 20 20 20 20 20 20 20 20 20 27 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 ...........'encode-coding-string
43a0 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 ................................
43c0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 (with-current-buffer.buffer.....
43e0 20 20 20 20 20 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 6c 69 .............................(li
4400 73 74 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 st.(buffer-string).buffer-file-c
4420 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 oding-system))))))).............
4440 20 20 20 20 20 28 2d 66 69 6c 74 65 72 20 27 77 65 62 2f 69 73 2d 66 69 6c 65 20 64 61 74 61 29 .....(-filter.'web/is-file.data)
4460 20 22 5c 72 5c 6e 22 29 29 29 0a 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 ."\r\n"))).....(propertize......
4480 28 66 6f 72 6d 61 74 20 22 25 73 25 73 2d 2d 25 73 2d 2d 5c 72 5c 6e 22 20 0a 20 20 20 20 20 20 (format."%s%s--%s--\r\n"........
44a0 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 70 61 72 74 73 20 28 6e 6f 74 20 28 65 71 75 61 .......(if.(and.parts.(not.(equa
44c0 6c 20 70 61 72 74 73 20 22 22 29 29 29 20 28 63 6f 6e 63 61 74 20 70 61 72 74 73 20 22 5c 72 5c l.parts.""))).(concat.parts."\r\
44e0 6e 22 29 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 66 69 n")."")..............(if.(and.fi
4500 6c 65 73 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 66 69 6c 65 73 20 22 22 29 29 29 20 28 63 6f 6e les.(not.(equal.files.""))).(con
4520 63 61 74 20 66 69 6c 65 73 20 22 5c 72 5c 6e 22 29 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 cat.files."\r\n")."")...........
4540 20 20 20 62 6f 75 6e 64 61 72 79 29 0a 20 20 20 20 20 3a 62 6f 75 6e 64 61 72 79 20 62 6f 75 6e ...boundary)......:boundary.boun
4560 64 61 72 79 29 29 29 0a 0a 28 64 65 66 76 61 72 20 77 65 62 2d 6c 6f 67 2d 69 6e 66 6f 20 6e 69 dary)))..(defvar.web-log-info.ni
4580 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 6c 6f 67 20 69 6e 66 6f 20 6d 65 73 73 61 67 65 l..."Whether.to.log.info.message
45a0 73 2c 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 72 6f 6d 20 74 68 65 20 73 65 6e 74 69 6e 65 s,.specifically.from.the.sentine
45c0 6c 2e 22 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 l.")..(defun.web/http-post-senti
45e0 6e 65 6c 20 28 63 6f 6e 20 65 76 74 29 0a 20 20 22 53 65 6e 74 69 6e 65 6c 20 66 6f 72 20 74 68 nel.(con.evt)..."Sentinel.for.th
4600 65 20 48 54 54 50 20 50 4f 53 54 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 20 49 27 6d 20 73 75 72 e.HTTP.POST."...;;.FIXME.I'm.sur
4620 65 20 74 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 64 69 66 66 65 72 65 6e 74 20 2d 20 62 e.this.needs.to.be.different.-.b
4640 75 74 20 68 6f 77 3f 20 69 74 20 6e 65 65 64 73 20 74 6f 0a 20 20 3b 3b 20 63 6f 6d 6d 75 6e 69 ut.how?.it.needs.to...;;.communi
4660 63 61 74 65 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 3f 0a 20 20 28 cate.to.the.filter.function?...(
4680 63 6f 6e 64 0a 20 20 20 20 28 28 65 71 75 61 6c 20 65 76 74 20 22 63 6c 6f 73 65 64 5c 6e 22 29 cond.....((equal.evt."closed\n")
46a0 0a 20 20 20 20 20 28 77 68 65 6e 20 77 65 62 2d 6c 6f 67 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 ......(when.web-log-info........
46c0 28 6d 65 73 73 61 67 65 20 22 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e 65 6c (message."web/http-post-sentinel
46e0 20 68 74 74 70 20 63 6c 69 65 6e 74 20 70 6f 73 74 20 63 6c 6f 73 65 64 22 29 29 29 0a 20 20 20 .http.client.post.closed")))....
4700 20 28 28 65 71 75 61 6c 20 65 76 74 20 22 64 65 6c 65 74 65 64 5c 6e 22 29 0a 20 20 20 20 20 28 .((equal.evt."deleted\n")......(
4720 64 65 6c 65 74 65 2d 70 72 6f 63 65 73 73 20 63 6f 6e 29 0a 20 20 20 20 20 28 77 68 65 6e 20 77 delete-process.con)......(when.w
4740 65 62 2d 6c 6f 67 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 77 65 62 eb-log-info........(message."web
4760 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e 65 6c 20 68 74 74 70 20 63 6c 69 65 6e 74 20 /http-post-sentinel.http.client.
4780 70 6f 73 74 20 64 65 6c 65 74 65 64 22 29 29 29 0a 20 20 20 20 28 28 65 71 75 61 6c 20 65 76 74 post.deleted"))).....((equal.evt
47a0 20 22 63 6f 6e 6e 65 63 74 69 6f 6e 20 62 72 6f 6b 65 6e 20 62 79 20 70 65 65 72 5c 6e 22 29 0a ."connection.broken.by.peer\n").
47c0 20 20 20 20 20 28 77 68 65 6e 20 77 65 62 2d 6c 6f 67 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 28 .....(when.web-log-info........(
47e0 6d 65 73 73 61 67 65 20 22 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e 65 6c 20 message."web/http-post-sentinel.
4800 68 74 74 70 20 63 6c 69 65 6e 74 20 62 72 6f 6b 65 6e 22 29 29 29 0a 20 20 20 20 28 74 0a 20 20 http.client.broken"))).....(t...
4820 20 20 20 28 77 68 65 6e 20 77 65 62 2d 6c 6f 67 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 28 6d 65 ...(when.web-log-info........(me
4840 73 73 61 67 65 20 22 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e 65 6c 20 75 6e ssage."web/http-post-sentinel.un
4860 65 78 70 65 63 74 65 64 20 65 76 74 3a 20 25 73 22 20 65 76 74 29 29 29 29 29 0a 0a 28 64 65 66 expected.evt:.%s".evt)))))..(def
4880 75 6e 20 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e 65 6c 2d 77 69 74 68 2d 6c un.web/http-post-sentinel-with-l
48a0 6f 67 67 69 6e 67 20 28 63 6f 6e 20 65 76 74 20 6c 6f 67 67 69 6e 67 29 0a 20 20 22 4d 61 70 20 ogging.(con.evt.logging)..."Map.
48c0 61 20 6c 6f 67 67 69 6e 67 20 76 61 72 69 61 62 6c 65 20 69 6e 74 6f 20 74 68 65 20 73 65 6e 74 a.logging.variable.into.the.sent
48e0 69 6e 65 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 77 65 62 2d 6c 6f 67 2d 69 6e 66 6f 20 6c 6f 67 inel."...(let.((web-log-info.log
4900 67 69 6e 67 29 29 0a 20 20 20 20 28 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 73 65 6e 74 69 6e ging)).....(web/http-post-sentin
4920 65 6c 20 63 6f 6e 20 65 76 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 68 65 61 64 65 72 el.con.evt)))..(defun.web/header
4940 2d 6c 69 73 74 20 28 68 65 61 64 65 72 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 48 45 41 44 45 -list.(headers)..."Convert.HEADE
4960 52 53 20 28 68 61 73 68 2d 74 61 62 6c 65 20 6f 72 20 61 6c 69 73 74 29 20 69 6e 74 6f 20 61 20 RS.(hash-table.or.alist).into.a.
4980 68 65 61 64 65 72 20 6c 69 73 74 2e 22 0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 0a 20 20 20 20 20 header.list."...(cl-labels......
49a0 20 28 28 68 64 72 20 28 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 .((hdr.(key.val)..........(forma
49c0 74 20 22 25 73 3a 20 25 73 5c 72 5c 6e 22 20 6b 65 79 20 76 61 6c 29 29 29 0a 20 20 20 20 28 63 t."%s:.%s\r\n".key.val))).....(c
49e0 6f 6e 64 0a 20 20 20 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 68 65 61 64 65 72 73 ond.......((hash-table-p.headers
4a00 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 72 65 73 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 )........(let.(res)..........(ma
4a20 70 68 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c phash...........(lambda.(key.val
4a40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 20 28 61 70 70 65 6e 64 20 ).............(setq.res.(append.
4a60 28 6c 69 73 74 20 28 68 64 72 20 6b 65 79 20 76 61 6c 29 29 20 72 65 73 29 29 29 0a 20 20 20 20 (list.(hdr.key.val)).res))).....
4a80 20 20 20 20 20 20 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 72 65 73 29 29 0a 20 20 ......headers)..........res))...
4aa0 20 20 20 20 28 28 6c 69 73 74 70 20 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 28 6d 61 70 ....((listp.headers)........(map
4ac0 63 61 72 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 68 64 72 20 car.........(lambda.(pair).(hdr.
4ae0 28 63 61 72 20 70 61 69 72 29 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 68 (car.pair)(cdr.pair))).........h
4b00 65 61 64 65 72 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2f 68 65 61 64 65 72 2d 73 eaders)))))..(defun.web/header-s
4b20 74 72 69 6e 67 20 28 6d 65 74 68 6f 64 20 68 65 61 64 65 72 73 20 6d 69 6d 65 2d 74 79 70 65 20 tring.(method.headers.mime-type.
4b40 74 6f 2d 73 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 6f 66 20 61 to-send)..."Return.a.string.of.a
4b60 6c 6c 20 74 68 65 20 48 45 41 44 45 52 53 20 66 6f 72 6d 61 74 74 65 64 20 66 6f 72 20 61 20 72 ll.the.HEADERS.formatted.for.a.r
4b80 65 71 75 65 73 74 2e 0a 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 20 61 6e 64 20 43 6f 6e 74 65 6e equest...Content-Type.and.Conten
4ba0 74 2d 4c 65 6e 67 74 68 20 61 72 65 20 62 6f 74 68 20 63 6f 6d 70 75 74 65 64 20 61 75 74 6f 6d t-Length.are.both.computed.autom
4bc0 61 74 69 63 61 6c 6c 79 2e 0a 0a 4d 45 54 48 4f 44 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 atically...METHOD.specifies.the.
4be0 75 73 75 61 6c 20 48 54 54 50 20 6d 65 74 68 6f 64 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 usual.HTTP.method.and.therefore.
4c00 77 68 65 74 68 65 72 0a 74 68 65 72 65 20 6d 69 67 68 74 20 62 65 20 61 20 43 6f 6e 74 65 6e 74 whether.there.might.be.a.Content
4c20 2d 54 79 70 65 20 6f 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 62 6f 64 79 2e 0a 0a 4d 49 4d 45 -Type.on.the.request.body...MIME
4c40 2d 54 59 50 45 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 4d 49 4d 45 2d 54 59 50 45 20 6f 66 -TYPE.specifies.the.MIME-TYPE.of
4c60 20 61 6e 79 20 54 4f 2d 53 45 4e 44 2e 0a 0a 54 4f 2d 53 45 4e 44 20 69 73 20 61 6e 79 20 72 65 .any.TO-SEND...TO-SEND.is.any.re
4c80 71 75 65 73 74 20 62 6f 64 79 20 74 68 61 74 20 6e 65 65 64 73 20 74 6f 20 62 65 20 73 65 6e 74 quest.body.that.needs.to.be.sent
4ca0 2e 20 20 54 4f 2d 53 45 4e 44 20 6d 61 79 0a 62 65 20 70 72 6f 70 65 72 74 69 7a 65 64 20 77 69 ...TO-SEND.may.be.propertized.wi
4cc0 74 68 20 61 20 6d 75 6c 74 69 70 61 72 74 20 62 6f 75 6e 64 61 72 79 20 6d 61 72 6b 65 72 20 77 th.a.multipart.boundary.marker.w
4ce0 68 69 63 68 20 6e 65 65 64 73 20 74 6f 20 62 65 0a 73 65 74 20 6f 6e 20 74 68 65 20 43 6f 6e 74 hich.needs.to.be.set.on.the.Cont
4d00 65 6e 74 2d 54 79 70 65 20 68 65 61 64 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 74 74 70 2d ent-Type.header."...(let.((http-
4d20 68 64 72 73 20 28 77 65 62 2f 68 65 61 64 65 72 2d 6c 69 73 74 20 68 65 61 64 65 72 73 29 29 0a hdrs.(web/header-list.headers)).
4d40 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 61 72 79 20 28 61 6e 64 20 74 6f 2d 73 65 6e 64 0a 20 ........(boundary.(and.to-send..
4d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 ......................(plist-get
4d80 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 2d 61 74 20 30 20 74 6f 2d 73 65 6e 64 29 20 .(text-properties-at.0.to-send).
4da0 3a 62 6f 75 6e 64 61 72 79 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 :boundary)))).....(when.(member.
4dc0 6d 65 74 68 6f 64 20 27 28 22 50 4f 53 54 22 20 22 50 55 54 22 29 29 0a 20 20 20 20 20 20 28 77 method.'("POST"."PUT")).......(w
4de0 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 74 6f 2d 73 65 6e 64 29 20 31 29 0a 20 20 20 20 20 hen.(>.(length.to-send).1)......
4e00 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(push.(format................
4e20 22 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 25 73 25 73 5c 72 5c 6e 22 20 6d 69 6d 65 2d 74 79 "Content-type:.%s%s\r\n".mime-ty
4e40 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 62 6f 75 6e 64 61 72 79 20 28 pe................(if.boundary.(
4e60 66 6f 72 6d 61 74 20 22 3b 20 62 6f 75 6e 64 61 72 79 3d 25 73 22 20 62 6f 75 6e 64 61 72 79 29 format.";.boundary=%s".boundary)
4e80 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 68 64 72 73 29 29 29 0a 20 20 20 20 .""))..........http-hdrs))).....
4ea0 28 77 68 65 6e 20 28 61 6e 64 20 74 6f 2d 73 65 6e 64 20 28 3e 20 28 6c 65 6e 67 74 68 20 74 6f (when.(and.to-send.(>.(length.to
4ec0 2d 73 65 6e 64 29 20 30 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 28 66 -send).0)).......(push........(f
4ee0 6f 72 6d 61 74 20 22 43 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 3a 20 25 64 5c 72 5c 6e 22 20 28 ormat."Content-length:.%d\r\n".(
4f00 6c 65 6e 67 74 68 20 74 6f 2d 73 65 6e 64 29 29 0a 20 20 20 20 20 20 20 68 74 74 70 2d 68 64 72 length.to-send))........http-hdr
4f20 73 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 68 64 72 20 69 6e 20 68 74 74 70 s)).....(cl-loop.for.hdr.in.http
4f40 2d 68 64 72 73 20 69 66 20 68 64 72 20 63 6f 6e 63 61 74 20 68 64 72 29 29 29 0a 0a 28 64 65 66 -hdrs.if.hdr.concat.hdr)))..(def
4f60 75 6e 20 77 65 62 2f 6c 6f 67 20 28 6c 6f 67 29 0a 20 20 28 77 68 65 6e 20 6c 6f 67 0a 20 20 20 un.web/log.(log)...(when.log....
4f80 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 .(with-current-buffer.(get-buffe
4fa0 72 2d 63 72 65 61 74 65 20 22 2a 77 65 62 2d 6c 6f 67 2a 22 29 0a 20 20 20 20 20 20 28 73 61 76 r-create."*web-log*").......(sav
4fc0 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 e-excursion.........(goto-char.(
4fe0 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 77 65 62 point-max)).........(insert."web
5000 2d 68 74 74 70 20 22 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 -http.").........(insert.(format
5020 20 22 25 73 22 20 6c 6f 67 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 ."%s".log)).........(insert."\n"
5040 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 )))))..;;;###autoload.(cl-defun.
5060 77 65 62 2d 68 74 74 70 2d 63 61 6c 6c 20 28 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 web-http-call.(method...........
5080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 ...............callback.........
50a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 .................&key...........
50c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............url..............
50e0 20 20 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 20 ............(host."localhost")..
5100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 72 74 20 38 30 ........................(port.80
5120 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 73 65 63 75 72 )..........................secur
5140 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 e..........................(path
5160 20 22 2f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ."/")..........................e
5180 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xtra-headers....................
51a0 20 20 20 20 20 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......data......................
51c0 20 20 20 20 28 6d 69 6d 65 2d 74 79 70 65 20 77 65 62 2f 72 65 71 75 65 73 74 2d 6d 69 6d 65 74 ....(mime-type.web/request-mimet
51e0 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d ype)..........................(m
5200 6f 64 65 20 27 62 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode.'batch).....................
5220 20 20 20 20 20 6c 6f 67 67 69 6e 67 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 48 54 54 50 20 6d 65 .....logging)..."Make.an.HTTP.me
5240 74 68 6f 64 20 74 6f 20 74 68 65 20 55 52 4c 20 6f 72 20 74 68 65 20 48 4f 53 54 2c 20 50 4f 52 thod.to.the.URL.or.the.HOST,.POR
5260 54 2c 20 50 41 54 48 20 61 6e 64 20 73 65 6e 64 20 44 41 54 41 2e 0a 0a 49 66 20 55 52 4c 20 69 T,.PATH.and.send.DATA...If.URL.i
5280 73 20 73 70 65 63 69 66 69 65 64 20 74 68 65 6e 20 69 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 s.specified.then.it.takes.preced
52a0 65 6e 63 65 20 6f 76 65 72 20 53 45 43 55 52 45 2c 20 48 4f 53 54 2c 0a 50 4f 52 54 20 61 6e 64 ence.over.SECURE,.HOST,.PORT.and
52c0 20 50 41 54 48 2e 20 20 55 52 4c 20 6d 61 79 20 62 65 20 48 54 54 50 20 6f 72 20 48 54 54 50 53 .PATH...URL.may.be.HTTP.or.HTTPS
52e0 2e 0a 0a 49 6d 70 6f 72 74 61 6e 74 20 6e 6f 74 65 3a 20 61 6e 79 20 71 75 65 72 79 20 69 6e 20 ...Important.note:.any.query.in.
5300 55 52 4c 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 49 47 4e 4f 52 45 44 21 0a 0a 53 45 43 55 52 URL.is.currently.IGNORED!..SECUR
5320 45 20 69 73 20 60 6e 69 6c 27 20 62 79 20 64 65 66 61 75 6c 74 20 62 75 74 20 69 66 20 60 74 27 E.is.`nil'.by.default.but.if.`t'
5340 20 74 68 65 6e 20 53 53 4c 20 69 73 20 75 73 65 64 2e 0a 0a 50 4f 52 54 20 69 73 20 38 30 20 62 .then.SSL.is.used...PORT.is.80.b
5360 79 20 64 65 66 61 75 6c 74 2e 20 20 45 76 65 6e 20 69 66 20 53 45 43 55 52 45 20 69 74 20 60 74 y.default...Even.if.SECURE.it.`t
5380 27 2e 20 20 49 66 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 0a 73 70 65 63 69 66 79 20 53 45 43 55 '...If.you.manually.specify.SECU
53a0 52 45 20 79 6f 75 20 73 68 6f 75 6c 64 20 6d 61 6e 75 61 6c 6c 79 20 73 70 65 63 69 66 79 20 50 RE.you.should.manually.specify.P
53c0 4f 52 54 20 74 6f 20 62 65 20 34 34 33 2e 20 20 55 73 69 6e 67 0a 55 52 4c 20 6e 65 67 61 74 65 ORT.to.be.443...Using.URL.negate
53e0 73 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 74 68 61 74 2c 20 61 6e 20 53 53 4c 20 55 52 4c 20 s.the.need.for.that,.an.SSL.URL.
5400 77 69 6c 6c 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 2e 0a 0a 54 68 65 20 55 52 4c 20 63 6f will.work.correctly...The.URL.co
5420 6e 6e 65 63 74 65 64 20 74 6f 20 28 77 68 65 74 68 65 72 20 73 70 65 63 69 66 69 65 64 20 62 79 nnected.to.(whether.specified.by
5440 20 55 52 4c 20 6f 72 20 62 79 20 74 68 65 20 48 4f 53 54 20 61 6e 64 0a 50 4f 52 54 29 20 69 73 .URL.or.by.the.HOST.and.PORT).is
5460 20 72 65 63 6f 72 64 65 64 20 6f 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 6e 6e 65 .recorded.on.the.resulting.conne
5480 63 74 69 6f 6e 20 61 73 20 74 68 65 20 70 72 6f 63 65 73 73 0a 70 72 6f 70 65 72 74 79 20 60 3a ction.as.the.process.property.`:
54a0 77 65 62 2d 75 72 6c 27 2e 0a 0a 45 58 54 52 41 2d 48 45 41 44 45 52 53 20 69 73 20 61 6e 20 61 web-url'...EXTRA-HEADERS.is.an.a
54c0 6c 69 73 74 20 6f 72 20 61 20 68 61 73 68 2d 74 61 62 6c 65 20 6f 66 20 65 78 74 72 61 20 68 65 list.or.a.hash-table.of.extra.he
54e0 61 64 65 72 73 20 74 6f 0a 73 65 6e 64 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 2e 0a 0a 54 68 aders.to.send.to.the.server...Th
5500 65 20 66 75 6c 6c 20 73 65 74 20 6f 66 20 68 65 61 64 65 72 73 20 73 65 6e 74 20 74 6f 20 74 68 e.full.set.of.headers.sent.to.th
5520 65 20 73 65 72 76 65 72 20 69 73 20 72 65 63 6f 72 64 65 64 20 6f 6e 20 74 68 65 0a 63 6f 6e 6e e.server.is.recorded.on.the.conn
5540 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 70 72 6f 63 65 73 73 20 70 72 6f 70 65 72 74 79 ection.with.the.process.property
5560 20 60 3a 77 65 62 2d 68 65 61 64 65 72 73 27 2e 0a 0a 44 41 54 41 20 69 73 20 6f 66 20 4d 49 4d .`:web-headers'...DATA.is.of.MIM
5580 45 2d 54 59 50 45 2e 20 20 57 65 20 74 72 79 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 44 41 54 E-TYPE...We.try.to.interpret.DAT
55a0 41 20 61 6e 64 20 4d 49 4d 45 2d 54 59 50 45 0a 75 73 65 66 75 6c 6c 79 3a 0a 0a 49 66 20 4d 49 A.and.MIME-TYPE.usefully:..If.MI
55c0 4d 45 2d 54 59 50 45 20 69 73 20 60 61 70 70 6c 69 63 61 74 69 6f 6e 2f 66 6f 72 6d 2d 77 77 77 ME-TYPE.is.`application/form-www
55e0 2d 75 72 6c 2d 65 6e 63 6f 64 65 64 27 20 74 68 65 6e 0a 60 77 65 62 2d 74 6f 2d 71 75 65 72 79 -url-encoded'.then.`web-to-query
5600 2d 73 74 72 69 6e 67 27 20 69 73 20 75 73 65 64 20 74 6f 20 74 6f 20 66 6f 72 6d 61 74 20 74 68 -string'.is.used.to.to.format.th
5620 65 20 44 41 54 41 20 69 6e 74 6f 20 61 20 50 4f 53 54 0a 62 6f 64 79 2e 0a 0a 49 66 20 4d 49 4d e.DATA.into.a.POST.body...If.MIM
5640 45 2d 54 59 50 45 20 69 73 20 60 6d 75 6c 74 69 70 61 72 74 2f 66 6f 72 6d 2d 64 61 74 61 27 20 E-TYPE.is.`multipart/form-data'.
5660 74 68 65 6e 20 60 77 65 62 2d 74 6f 2d 6d 75 6c 74 69 70 61 72 74 27 20 69 73 0a 63 61 6c 6c 65 then.`web-to-multipart'.is.calle
5680 64 20 74 6f 20 67 65 74 20 61 20 50 4f 53 54 20 62 6f 64 79 2e 0a 0a 41 6e 79 20 64 61 74 61 20 d.to.get.a.POST.body...Any.data.
56a0 73 65 6e 74 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 20 69 73 20 72 65 63 6f 72 64 65 64 20 6f sent.to.the.server.is.recorded.o
56c0 6e 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 0a 74 68 65 20 70 72 6f 63 65 73 n.the.connection.with.the.proces
56e0 73 20 70 72 6f 70 65 72 74 79 20 60 3a 77 65 62 2d 73 65 6e 74 27 2e 0a 0a 57 68 65 6e 20 74 68 s.property.`:web-sent'...When.th
5700 65 20 72 65 71 75 65 73 74 20 63 6f 6d 65 73 20 62 61 63 6b 20 74 68 65 20 43 41 4c 4c 42 41 43 e.request.comes.back.the.CALLBAC
5720 4b 20 69 73 20 63 61 6c 6c 65 64 2e 20 20 43 41 4c 4c 42 41 43 4b 20 69 73 0a 61 6c 77 61 79 73 K.is.called...CALLBACK.is.always
5740 20 70 61 73 73 65 64 20 33 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 48 54 54 50 20 63 6f .passed.3.arguments:.the.HTTP.co
5760 6e 6e 65 63 74 69 6f 6e 20 77 68 69 63 68 20 69 73 20 61 20 70 72 6f 63 65 73 73 0a 6f 62 6a 65 nnection.which.is.a.process.obje
5780 63 74 2c 20 74 68 65 20 48 54 54 50 20 68 65 61 64 65 72 20 77 68 69 63 68 20 69 73 20 61 20 60 ct,.the.HTTP.header.which.is.a.`
57a0 68 61 73 68 2d 74 61 62 6c 65 27 20 61 6e 64 20 60 64 61 74 61 27 2c 20 77 68 69 63 68 0a 69 73 hash-table'.and.`data',.which.is
57c0 20 6e 6f 72 6d 61 6c 6c 79 20 61 20 73 74 72 69 6e 67 2e 20 20 60 64 61 74 61 27 20 64 65 70 65 .normally.a.string...`data'.depe
57e0 6e 64 73 20 73 6f 6d 65 77 68 61 74 20 6f 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 0a 53 65 65 nds.somewhat.on.the.context..See
5800 20 62 65 6c 6f 77 2e 0a 0a 4d 4f 44 45 20 64 65 66 69 6e 65 73 20 77 68 61 74 20 69 74 20 6d 65 .below...MODE.defines.what.it.me
5820 61 6e 73 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 63 61 75 73 65 20 74 68 65 ans.for.the.request.to.cause.the
5840 20 43 41 4c 4c 42 41 43 4b 0a 74 6f 20 62 65 20 66 69 72 65 64 2e 20 20 57 68 65 6e 20 4d 4f 44 .CALLBACK.to.be.fired...When.MOD
5860 45 20 69 73 20 60 73 74 72 65 61 6d 27 20 74 68 65 6e 20 74 68 65 20 43 41 4c 4c 42 41 43 4b 20 E.is.`stream'.then.the.CALLBACK.
5880 69 73 20 63 61 6c 6c 65 64 0a 66 6f 72 20 65 76 65 72 79 20 63 68 75 6e 6b 20 6f 66 20 64 61 74 is.called.for.every.chunk.of.dat
58a0 61 20 72 65 63 65 69 76 65 64 20 61 66 74 65 72 20 74 68 65 20 68 65 61 64 65 72 20 68 61 73 20 a.received.after.the.header.has.
58c0 61 72 72 69 76 65 64 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 73 74 72 65 61 6d 69 6e 67 20 64 arrived..This.allows.streaming.d
58e0 61 74 61 20 74 6f 20 73 6f 6d 65 77 68 65 72 65 20 65 6c 73 65 3b 20 68 65 6e 63 65 20 60 73 74 ata.to.somewhere.else;.hence.`st
5900 72 65 61 6d 27 0a 6d 6f 64 65 2e 20 20 49 6e 20 74 68 69 73 20 6d 6f 64 65 20 43 41 4c 4c 42 41 ream'.mode...In.this.mode.CALLBA
5920 43 4b 27 73 20 60 64 61 74 61 27 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 73 69 6e 67 6c 65 CK's.`data'.argument.is.a.single
5940 20 63 68 75 6e 6b 0a 6f 66 20 74 68 65 20 73 74 72 65 61 6d 20 6f 72 20 60 3a 64 6f 6e 65 27 20 .chunk.of.the.stream.or.`:done'.
5960 77 68 65 6e 20 74 68 65 20 73 74 72 65 61 6d 20 65 6e 64 73 2e 0a 0a 54 68 65 20 64 65 66 61 75 when.the.stream.ends...The.defau
5980 6c 74 20 4d 4f 44 45 20 69 73 20 60 62 61 74 63 68 27 20 77 68 69 63 68 20 63 6f 6c 6c 65 63 74 lt.MODE.is.`batch'.which.collect
59a0 73 20 61 6c 6c 20 74 68 65 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 s.all.the.data.from.the.response
59c0 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 61 6c .before.calling.CALLBACK.with.al
59e0 6c 20 74 68 65 20 64 61 74 61 20 61 73 20 61 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 77 68 65 6e l.the.data.as.a.string."...(when
5a00 20 6c 6f 67 67 69 6e 67 20 28 77 65 62 2f 6c 6f 67 20 75 72 6c 29 29 0a 20 20 28 6c 65 74 2a 20 .logging.(web/log.url))...(let*.
5a20 28 28 6d 6f 64 65 20 28 6f 72 20 6d 6f 64 65 20 27 62 61 74 63 68 29 29 0a 20 20 20 20 20 20 20 ((mode.(or.mode.'batch))........
5a40 20 20 28 70 61 72 73 65 64 2d 75 72 6c 20 28 75 72 6c 2d 67 65 6e 65 72 69 63 2d 70 61 72 73 65 ..(parsed-url.(url-generic-parse
5a60 2d 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 75 -url.......................(if.u
5a80 72 6c 20 75 72 6c 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 rl.url..........................
5aa0 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 2f 2f 25 73 3a 25 64 25 73 22 0a 20 20 20 20 20 20 20 20 .(format."%s://%s:%d%s".........
5ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 65 ..........................(if.se
5ae0 63 75 72 65 20 22 68 74 74 70 73 22 20 22 68 74 74 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 cure."https"."http")............
5b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 74 20 70 6f 72 74 .......................host.port
5b20 20 70 61 74 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 28 70 72 6f 67 6e 0a .path))))..........(host.(progn.
5b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 65 72 74 0a 20 20 20 20 20 20 20 .................(assert........
5b60 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 28 75 72 6c 2d 74 79 70 65 20 ...........(or.(equal.(url-type.
5b80 70 61 72 73 65 64 2d 75 72 6c 29 20 22 68 74 74 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 parsed-url)."http").............
5ba0 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 75 72 6c 2d 74 79 70 65 20 70 61 72 73 65 ..........(equal.(url-type.parse
5bc0 64 2d 75 72 6c 29 20 22 68 74 74 70 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-url)."https"))................
5be0 20 20 20 74 20 22 54 68 65 20 75 72 6c 20 73 63 68 65 6d 65 20 6d 75 73 74 20 62 65 20 68 74 74 ...t."The.url.scheme.must.be.htt
5c00 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 68 6f 73 74 20 70 p")..................(url-host.p
5c20 61 72 73 65 64 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 72 74 20 28 75 72 6c arsed-url)))..........(port.(url
5c40 2d 70 6f 72 74 20 70 61 72 73 65 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 74 -port.parsed-url))..........(pat
5c60 68 20 28 6c 65 74 20 28 28 70 74 68 20 28 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 20 70 61 72 73 65 h.(let.((pth.(url-filename.parse
5c80 64 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 d-url)))..................(if.(e
5ca0 71 75 61 6c 20 70 74 68 20 22 22 29 20 22 2f 22 20 70 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 qual.pth."")."/".pth))).........
5cc0 20 28 64 65 73 74 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 25 73 22 20 68 6f 73 74 20 70 6f .(dest.(format."%s:%s%s".host.po
5ce0 72 74 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 67 65 6e 65 72 61 74 rt.path))..........(buf.(generat
5d00 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 64 65 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f e-new-buffer.dest))..........(co
5d20 6e 20 28 6f 70 65 6e 2d 6e 65 74 77 6f 72 6b 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 n.(open-network-stream..........
5d40 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 77 65 62 2d 68 74 74 70 2d 70 6f 73 74 2d 25 73 22 ......(format."web-http-post-%s"
5d60 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 20 68 6f 73 74 20 70 .dest)................buf.host.p
5d80 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 28 63 6f 6e 64 0a 20 ort................:type.(cond..
5da0 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 75 61 6c 20 28 75 72 .....................((equal.(ur
5dc0 6c 2d 74 79 70 65 20 70 61 72 73 65 64 2d 75 72 6c 29 20 22 68 74 74 70 22 29 20 27 70 6c 61 69 l-type.parsed-url)."http").'plai
5de0 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 28 28 65 71 75 61 6c n).......................((equal
5e00 20 28 75 72 6c 2d 74 79 70 65 20 70 61 72 73 65 64 2d 75 72 6c 29 20 22 68 74 74 70 73 22 29 20 .(url-type.parsed-url)."https").
5e20 27 74 6c 73 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 57 65 20 6d 75 73 74 20 75 73 65 20 74 68 69 'tls))))).....;;.We.must.use.thi
5e40 73 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 6f 72 20 74 68 65 20 77 65 62 20 64 69 65 73 0a s.coding.system.or.the.web.dies.
5e60 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 63 ....(set-process-coding-system.c
5e80 6f 6e 20 27 72 61 77 2d 74 65 78 74 2d 75 6e 69 78 20 27 72 61 77 2d 74 65 78 74 2d 75 6e 69 78 on.'raw-text-unix.'raw-text-unix
5ea0 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 63 6f 6e 20 ).....(set-process-sentinel.con.
5ec0 28 6c 61 6d 62 64 61 20 28 63 6f 6e 20 65 76 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (lambda.(con.evt)...............
5ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 ..................(web/http-post
5f00 2d 73 65 6e 74 69 6e 65 6c 2d 77 69 74 68 2d 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 20 20 20 -sentinel-with-logging..........
5f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 20 65 76 74 20 ........................con.evt.
5f40 6c 6f 67 67 69 6e 67 29 29 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 logging))).....(set-process-filt
5f60 65 72 0a 20 20 20 20 20 63 6f 6e 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 20 64 61 er......con......(lambda.(con.da
5f80 74 61 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 20 6d 6f 64 65 29 0a 20 20 20 ta)........(let.((mode.mode)....
5fa0 20 20 20 20 20 20 20 20 20 20 28 63 62 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 20 20 ..........(cb.callback))........
5fc0 20 20 28 77 65 62 2f 68 74 74 70 2d 70 6f 73 74 2d 66 69 6c 74 65 72 20 63 6f 6e 20 64 61 74 61 ..(web/http-post-filter.con.data
5fe0 20 63 62 20 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 53 65 6e 64 20 74 68 65 20 72 65 71 .cb.mode)))).....;;.Send.the.req
6000 75 65 73 74 0a 20 20 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 20 20 28 28 73 79 6d 2d 6d 74 20 uest.....(let*.........((sym-mt.
6020 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 6d 69 6d 65 2d 74 79 70 65 29 20 6d 69 6d 65 2d 74 79 70 (if.(symbolp.mime-type).mime-typ
6040 65 20 28 69 6e 74 65 72 6e 20 6d 69 6d 65 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 e.(intern.mime-type)))..........
6060 28 74 6f 2d 73 65 6e 64 20 28 63 61 73 65 20 73 79 6d 2d 6d 74 0a 20 20 20 20 20 20 20 20 20 20 (to-send.(case.sym-mt...........
6080 20 20 20 20 20 20 20 20 20 20 28 27 6d 75 6c 74 69 70 61 72 74 2f 66 6f 72 6d 2d 64 61 74 61 0a ..........('multipart/form-data.
60a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 65 62 2d 74 6f 2d 6d 75 6c .....................(web-to-mul
60c0 74 69 70 61 72 74 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tipart.data))...................
60e0 20 20 28 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e ..('application/x-www-form-urlen
6100 63 6f 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 28 77 65 62 2d coded......................(web-
6120 74 6f 2d 71 75 65 72 79 2d 73 74 72 69 6e 67 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 to-query-string.data))..........
6140 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 79 20 64 65 66 61 75 6c 74 20 6a 75 73 74 20 68 61 ...........;;.By.default.just.ha
6160 76 65 20 74 68 65 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve.the.data.....................
6180 28 74 20 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 20 28 6f 72 (t.data)))..........(headers.(or
61a0 20 28 77 65 62 2f 68 65 61 64 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(web/header-string.............
61c0 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f 64 20 65 78 74 72 61 2d 68 65 61 64 65 72 73 20 ...........method.extra-headers.
61e0 6d 69 6d 65 2d 74 79 70 65 20 74 6f 2d 73 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 mime-type.to-send)..............
6200 20 20 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 75 62 6d 69 73 73 69 .........""))..........(submissi
6220 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 on...........(format............
6240 22 25 73 20 25 73 20 48 54 54 50 2f 31 2e 31 5c 72 5c 6e 48 6f 73 74 3a 20 25 73 5c 72 5c 6e 25 "%s.%s.HTTP/1.1\r\nHost:.%s\r\n%
6260 73 5c 72 5c 6e 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f 64 20 70 61 74 68 20 s\r\n%s"............method.path.
6280 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 host............headers.........
62a0 20 20 20 28 69 66 20 74 6f 2d 73 65 6e 64 20 74 6f 2d 73 65 6e 64 20 22 22 29 29 29 29 0a 20 20 ...(if.to-send.to-send.""))))...
62c0 20 20 20 20 3b 3b 20 53 65 74 20 73 6f 6d 65 20 64 61 74 61 20 6f 6e 20 74 68 65 20 63 6f 6e 6e ....;;.Set.some.data.on.the.conn
62e0 65 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 20 73 6f 20 75 73 65 72 73 20 77 69 6c 6c 20 62 65 20 ection.process.so.users.will.be.
6300 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 64 61 74 61 0a 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 able.to.find.data.......(process
6320 2d 70 75 74 20 63 6f 6e 20 3a 77 65 62 2d 75 72 6c 20 28 66 6f 72 6d 61 74 20 22 68 74 74 70 3a -put.con.:web-url.(format."http:
6340 2f 2f 25 73 22 20 64 65 73 74 29 29 0a 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 70 75 74 20 //%s".dest)).......(process-put.
6360 63 6f 6e 20 3a 77 65 62 2d 68 65 61 64 65 72 73 20 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 con.:web-headers.headers).......
6380 28 70 72 6f 63 65 73 73 2d 70 75 74 20 63 6f 6e 20 3a 77 65 62 2d 73 65 6e 74 20 74 6f 2d 73 65 (process-put.con.:web-sent.to-se
63a0 6e 64 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 6f 67 67 69 6e 67 20 28 77 65 62 2f 6c 6f 67 nd).......(when.logging.(web/log
63c0 20 73 75 62 6d 69 73 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e .submission)).......(process-sen
63e0 64 2d 73 74 72 69 6e 67 20 63 6f 6e 20 73 75 62 6d 69 73 73 69 6f 6e 29 29 0a 20 20 20 20 63 6f d-string.con.submission)).....co
6400 6e 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 77 65 n))..;;;###autoload.(cl-defun.we
6420 62 2d 68 74 74 70 2d 67 65 74 20 28 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 b-http-get.(callback............
6440 20 20 20 20 20 20 20 20 20 20 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........&key.................
6460 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......url.......................
6480 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (host."localhost")..............
64a0 20 20 20 20 20 20 20 20 20 28 70 6f 72 74 20 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(port.80)..............
64c0 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 22 2f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........(path."/").............
64e0 20 20 20 20 20 20 20 20 20 20 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 ..........extra-headers.........
6500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 20 27 62 61 74 63 68 29 0a 20 20 20 20 ..............(mode.'batch).....
6520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 67 69 6e 67 20 74 29 29 0a 20 ..................(logging.t))..
6540 20 22 4d 61 6b 65 20 61 20 47 45 54 20 63 61 6c 6c 69 6e 67 20 43 41 4c 4c 42 41 43 4b 20 77 69 ."Make.a.GET.calling.CALLBACK.wi
6560 74 68 20 74 68 65 20 72 65 73 75 6c 74 2e 0a 0a 46 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 th.the.result...For.information.
6580 6f 6e 20 55 52 4c 20 6f 72 20 50 41 54 48 2c 20 48 4f 53 54 2c 20 50 4f 52 54 20 61 6e 64 20 61 on.URL.or.PATH,.HOST,.PORT.and.a
65a0 6c 73 6f 20 45 58 54 52 41 2d 48 45 41 44 45 52 53 0a 61 6e 64 20 4d 4f 44 45 20 73 65 65 20 60 lso.EXTRA-HEADERS.and.MODE.see.`
65c0 77 65 62 2d 68 74 74 70 2d 63 61 6c 6c 27 2e 0a 0a 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 70 72 web-http-call'...The.callback.pr
65e0 6f 62 61 62 6c 79 20 77 6f 6e 27 74 20 77 6f 72 6b 20 75 6e 6c 65 73 73 20 79 6f 75 20 73 65 74 obably.won't.work.unless.you.set
6600 20 60 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 27 0a 74 6f 20 60 74 27 2e 22 0a 20 20 28 77 .`lexical-binding'.to.`t'."...(w
6620 65 62 2d 68 74 74 70 2d 63 61 6c 6c 0a 20 20 20 22 47 45 54 22 0a 20 20 20 63 61 6c 6c 62 61 63 eb-http-call...."GET"....callbac
6640 6b 0a 20 20 20 3a 75 72 6c 20 75 72 6c 0a 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 3a k....:url.url....:host.host....:
6660 70 6f 72 74 20 70 6f 72 74 0a 20 20 20 3a 70 61 74 68 20 70 61 74 68 0a 20 20 20 3a 65 78 74 72 port.port....:path.path....:extr
6680 61 2d 68 65 61 64 65 72 73 20 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 3a 6d 6f 64 65 a-headers.extra-headers....:mode
66a0 20 6d 6f 64 65 0a 20 20 20 3a 6c 6f 67 67 69 6e 67 20 6c 6f 67 67 69 6e 67 29 29 0a 0a 3b 3b 3b .mode....:logging.logging))..;;;
66c0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 77 65 62 2d 68 74 74 70 2d 70 ###autoload.(cl-defun.web-http-p
66e0 6f 73 74 20 28 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ost.(callback...................
6700 20 20 20 20 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....&key.......................
6720 20 75 72 6c 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 68 6f 73 .url........................(hos
6740 74 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."localhost")..................
6760 20 20 20 20 20 20 28 70 6f 72 74 20 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(port.80).................
6780 20 20 20 20 20 20 20 28 70 61 74 68 20 22 2f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(path."/")...............
67a0 20 20 20 20 20 20 20 20 20 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 .........extra-headers..........
67c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............data..............
67e0 20 20 20 20 20 20 20 20 20 20 28 6d 69 6d 65 2d 74 79 70 65 20 77 65 62 2f 72 65 71 75 65 73 74 ..........(mime-type.web/request
6800 2d 6d 69 6d 65 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -mimetype)......................
6820 20 20 28 6d 6f 64 65 20 27 62 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(mode.'batch).................
6840 20 20 20 20 20 20 20 28 6c 6f 67 67 69 6e 67 20 74 29 29 0a 20 20 22 4d 61 6b 65 20 61 20 50 4f .......(logging.t))..."Make.a.PO
6860 53 54 20 61 6e 64 20 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 74 68 65 20 72 65 ST.and.call.CALLBACK.with.the.re
6880 73 75 6c 74 2e 0a 0a 46 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 55 52 4c 20 6f 72 sult...For.information.on.URL.or
68a0 20 50 41 54 48 2c 20 48 4f 53 54 2c 20 50 4f 52 54 20 61 6e 64 20 61 6c 73 6f 20 4d 4f 44 45 20 .PATH,.HOST,.PORT.and.also.MODE.
68c0 73 65 65 0a 60 77 65 62 2d 68 74 74 70 2d 63 61 6c 6c 27 2e 0a 0a 54 68 65 20 63 61 6c 6c 62 61 see.`web-http-call'...The.callba
68e0 63 6b 20 70 72 6f 62 61 62 6c 79 20 77 6f 6e 27 74 20 77 6f 72 6b 20 75 6e 6c 65 73 73 20 79 6f ck.probably.won't.work.unless.yo
6900 75 20 73 65 74 20 60 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 27 0a 74 6f 20 60 74 27 2e 22 u.set.`lexical-binding'.to.`t'."
6920 0a 20 20 28 77 65 62 2d 68 74 74 70 2d 63 61 6c 6c 0a 20 20 20 22 50 4f 53 54 22 0a 20 20 20 63 ...(web-http-call...."POST"....c
6940 61 6c 6c 62 61 63 6b 0a 20 20 20 3a 75 72 6c 20 75 72 6c 0a 20 20 20 3a 68 6f 73 74 20 68 6f 73 allback....:url.url....:host.hos
6960 74 0a 20 20 20 3a 70 6f 72 74 20 70 6f 72 74 0a 20 20 20 3a 70 61 74 68 20 70 61 74 68 0a 20 20 t....:port.port....:path.path...
6980 20 3a 65 78 74 72 61 2d 68 65 61 64 65 72 73 20 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 .:extra-headers.extra-headers...
69a0 20 3a 64 61 74 61 20 64 61 74 61 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 20 6d 69 6d 65 2d 74 .:data.data....:mime-type.mime-t
69c0 79 70 65 0a 20 20 20 3a 6c 6f 67 67 69 6e 67 20 6c 6f 67 67 69 6e 67 0a 20 20 20 3a 6d 6f 64 65 ype....:logging.logging....:mode
69e0 20 6d 6f 64 65 29 29 0a 0a 28 64 65 66 76 61 72 20 77 65 62 2d 6a 73 6f 6e 2d 65 78 70 65 63 74 .mode))..(defvar.web-json-expect
6a00 65 64 2d 6d 69 6d 65 74 79 70 65 73 2d 6c 69 73 74 0a 20 20 27 28 22 61 70 70 6c 69 63 61 74 69 ed-mimetypes-list...'("applicati
6a20 6f 6e 2f 6a 73 6f 6e 22 0a 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 6a 61 76 61 on/json"....."application/x-java
6a40 73 63 72 69 70 74 22 0a 20 20 20 20 22 74 65 78 74 2f 6a 61 76 61 73 63 72 69 70 74 22 0a 20 20 script"....."text/javascript"...
6a60 20 20 22 74 65 78 74 2f 78 2d 6a 61 76 61 73 63 72 69 70 74 22 0a 20 20 20 20 22 74 65 78 74 2f .."text/x-javascript"....."text/
6a80 78 2d 6a 73 6f 6e 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 6d 69 6d 65 74 79 70 65 73 20 74 68 x-json")..."List.of.mimetypes.th
6aa0 61 74 20 77 65 20 75 73 65 20 74 6f 20 61 63 63 65 70 74 20 4a 53 4f 4e 2e 22 29 0a 0a 28 64 65 at.we.use.to.accept.JSON.")..(de
6ac0 66 75 6e 20 77 65 62 2d 6a 73 6f 6e 2d 64 65 66 61 75 6c 74 2d 65 78 70 65 63 74 61 74 69 6f 6e fun.web-json-default-expectation
6ae0 2d 66 61 69 6c 75 72 65 20 28 64 61 74 61 20 68 74 74 70 2d 63 6f 6e 20 68 65 61 64 65 72 73 29 -failure.(data.http-con.headers)
6b00 0a 20 20 22 44 65 66 61 75 6c 74 20 65 78 70 65 63 74 61 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b ..."Default.expectation.callback
6b20 20 66 6f 72 20 4a 53 4f 4e 20 65 78 70 65 63 74 61 74 69 6f 6e 20 65 72 72 6f 72 73 2e 22 0a 20 .for.JSON.expectation.errors."..
6b40 20 28 65 72 72 6f 72 20 22 77 65 62 2d 6a 73 6f 6e 20 66 61 69 6c 65 64 20 74 6f 20 72 65 61 64 .(error."web-json.failed.to.read
6b60 20 25 53 20 61 73 20 6a 73 6f 6e 20 77 69 74 68 20 25 73 20 61 6e 64 20 25 73 22 0a 20 20 20 20 .%S.as.json.with.%s.and.%s".....
6b80 20 20 20 20 20 64 61 74 61 20 68 74 74 70 2d 63 6f 6e 20 68 65 61 64 65 72 73 29 29 0a 0a 28 63 .....data.http-con.headers))..(c
6ba0 6c 2d 64 65 66 75 6e 20 77 65 62 2f 6a 73 6f 6e 2d 70 61 72 73 65 20 28 6a 73 6f 6e 2d 63 61 6e l-defun.web/json-parse.(json-can
6bc0 64 69 64 61 74 65 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 didate-data.....................
6be0 20 20 20 20 20 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......&key......................
6c00 20 20 20 20 20 28 6a 73 6f 6e 2d 61 72 72 61 79 2d 74 79 70 65 20 6a 73 6f 6e 2d 61 72 72 61 79 .....(json-array-type.json-array
6c20 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -type)..........................
6c40 20 28 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 .(json-object-type.json-object-t
6c60 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ype)...........................(
6c80 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 65 20 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 65 29 29 0a 20 20 json-key-type.json-key-type))...
6ca0 22 50 61 72 73 65 20 44 41 54 41 20 61 73 20 4a 53 4f 4e 20 61 6e 64 20 72 65 74 75 72 6e 20 74 "Parse.DATA.as.JSON.and.return.t
6cc0 68 65 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d 73 74 he.result."...(json-read-from-st
6ce0 72 69 6e 67 20 6a 73 6f 6e 2d 63 61 6e 64 69 64 61 74 65 2d 64 61 74 61 29 29 0a 0a 3b 3b 3b 23 ring.json-candidate-data))..;;;#
6d00 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 77 65 62 2d 6a 73 6f 6e 2d 70 6f ##autoload.(cl-defun.web-json-po
6d20 73 74 20 28 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.(callback....................
6d40 20 20 20 20 20 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......&key......................
6d60 20 20 20 20 75 72 6c 20 64 61 74 61 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 ....url.data.headers............
6d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6d 65 2d 74 79 70 65 20 77 65 62 2f 72 65 71 ..............(mime-type.web/req
6da0 75 65 73 74 2d 6d 69 6d 65 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uest-mimetype)..................
6dc0 20 20 20 20 20 20 20 20 28 6c 6f 67 67 69 6e 67 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........(logging.t).............
6de0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 61 72 72 61 79 2d 74 79 70 65 20 6a 73 .............(json-array-type.js
6e00 6f 6e 2d 61 72 72 61 79 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on-array-type)..................
6e20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 20 6a 73 6f 6e 2d 6f ........(json-object-type.json-o
6e40 62 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bject-type).....................
6e60 20 20 20 20 20 28 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 65 20 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 .....(json-key-type.json-key-typ
6e80 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 e)..........................(exp
6ea0 65 63 74 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 ectation-failure-callback.......
6ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 77 65 62 2d 6a 73 6f 6e 2d 64 65 ....................'web-json-de
6ee0 66 61 75 6c 74 2d 65 78 70 65 63 74 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 29 29 0a 20 20 22 50 fault-expectation-failure))..."P
6f00 4f 53 54 20 44 41 54 41 20 74 6f 20 55 52 4c 20 65 78 70 65 63 74 69 6e 67 20 61 20 4a 53 4f 4e OST.DATA.to.URL.expecting.a.JSON
6f20 20 72 65 73 70 6f 6e 73 65 20 73 65 6e 74 20 74 6f 20 43 41 4c 4c 42 41 43 4b 2e 0a 0a 53 65 65 .response.sent.to.CALLBACK...See
6f40 20 60 77 65 62 2d 6a 73 6f 6e 2d 65 78 70 65 63 74 65 64 2d 6d 69 6d 65 74 79 70 65 73 2d 6c 69 .`web-json-expected-mimetypes-li
6f60 73 74 27 20 66 6f 72 20 74 68 65 20 6c 69 73 74 20 6f 66 20 4d 69 6d 65 20 54 79 70 65 73 0a 77 st'.for.the.list.of.Mime.Types.w
6f80 65 20 61 63 63 65 70 74 20 4a 53 4f 4e 20 66 6f 72 2e 20 20 54 68 69 73 20 6d 61 79 20 62 65 20 e.accept.JSON.for...This.may.be.
6fa0 6c 65 74 20 62 6f 75 6e 64 2e 20 20 49 66 20 74 68 65 20 65 78 70 65 63 74 61 74 69 6f 6e 0a 69 let.bound...If.the.expectation.i
6fc0 73 20 6e 6f 74 20 6d 65 74 20 74 68 65 6e 20 45 58 50 45 43 54 41 54 49 4f 4e 2d 46 41 49 4c 55 s.not.met.then.EXPECTATION-FAILU
6fe0 52 45 2d 43 41 4c 4c 42 41 43 4b 20 69 73 20 63 61 6c 6c 65 64 20 62 65 69 6e 67 0a 70 61 73 73 RE-CALLBACK.is.called.being.pass
7000 65 64 20 74 68 65 20 43 41 4c 4c 42 41 43 4b 20 70 61 72 61 6d 65 74 65 72 73 2e 20 20 42 79 20 ed.the.CALLBACK.parameters...By.
7020 64 65 66 61 75 6c 74 0a 45 58 50 45 43 54 41 54 49 4f 4e 2d 46 41 49 4c 55 52 45 2d 43 41 4c 4c default.EXPECTATION-FAILURE-CALL
7040 42 41 43 4b 20 69 73 0a 60 77 65 62 2d 6a 73 6f 6e 2d 64 65 66 61 75 6c 74 2d 65 78 70 65 63 74 BACK.is.`web-json-default-expect
7060 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 27 2e 0a 0a 54 68 65 20 43 41 4c 4c 42 41 43 4b 20 69 73 ation-failure'...The.CALLBACK.is
7080 20 63 61 6c 6c 65 64 20 61 73 3a 0a 0a 20 20 43 41 4c 4c 42 41 43 4b 20 52 45 53 50 4f 4e 53 45 .called.as:....CALLBACK.RESPONSE
70a0 2d 44 41 54 41 20 48 54 54 50 43 4f 4e 20 52 45 53 50 4f 4e 53 45 2d 48 45 41 44 45 52 0a 0a 73 -DATA.HTTPCON.RESPONSE-HEADER..s
70c0 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 62 65 20 64 65 66 69 6e 65 64 20 6c 69 o.the.function.may.be.defined.li
70e0 6b 65 20 74 68 69 73 3a 0a 0a 20 20 28 6c 61 6d 62 64 61 20 28 64 61 74 61 20 26 72 65 73 74 20 ke.this:....(lambda.(data.&rest.
7100 73 74 75 66 66 29 20 2e 2e 2e 29 0a 0a 48 45 41 44 45 52 53 20 6d 61 79 20 62 65 20 73 70 65 63 stuff)....)..HEADERS.may.be.spec
7120 69 66 69 65 64 2c 20 74 68 65 73 65 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 65 78 74 72 ified,.these.are.treated.as.extr
7140 61 2d 68 65 61 64 65 72 73 20 74 6f 0a 62 65 20 73 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 a-headers.to.be.sent.with.the.re
7160 71 75 65 73 74 2e 0a 0a 54 68 65 20 44 41 54 41 20 69 73 20 73 65 6e 74 20 61 73 20 60 61 70 70 quest...The.DATA.is.sent.as.`app
7180 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 27 20 lication/x-www-form-urlencoded'.
71a0 62 79 0a 64 65 66 61 75 6c 74 2c 20 4d 49 4d 45 2d 54 59 50 45 20 63 61 6e 20 63 68 61 6e 67 65 by.default,.MIME-TYPE.can.change
71c0 20 74 68 61 74 2e 0a 0a 4a 53 4f 4e 2d 41 52 52 41 59 2d 54 59 50 45 2c 20 4a 53 4f 4e 2d 4f 42 .that...JSON-ARRAY-TYPE,.JSON-OB
71e0 4a 45 43 54 2d 54 59 50 45 20 61 6e 64 20 4a 53 4f 4e 2d 4b 45 59 2d 54 59 50 45 2c 20 69 66 20 JECT-TYPE.and.JSON-KEY-TYPE,.if.
7200 70 72 65 73 65 6e 74 2c 0a 61 72 65 20 75 73 65 64 20 74 6f 20 6c 65 74 20 62 69 6e 64 20 74 68 present,.are.used.to.let.bind.th
7220 65 20 60 6a 73 6f 6e 2d 72 65 61 64 27 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 74 68 65 20 73 e.`json-read'.variables.of.the.s
7240 61 6d 65 20 6e 61 6d 65 0a 61 66 66 65 63 74 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 ame.name.affecting.the.resulting
7260 20 6c 69 73 70 20 73 74 72 75 63 74 75 72 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6c 6f 73 65 .lisp.structure."...(let.((close
7280 64 2d 6a 73 6f 6e 2d 61 72 72 61 79 2d 74 79 70 65 20 6a 73 6f 6e 2d 61 72 72 61 79 2d 74 79 70 d-json-array-type.json-array-typ
72a0 65 29 0a 20 20 20 20 20 20 20 20 28 63 6c 6f 73 65 64 2d 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 e).........(closed-json-object-t
72c0 79 70 65 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 28 63 ype.json-object-type).........(c
72e0 6c 6f 73 65 64 2d 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 65 20 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 losed-json-key-type.json-key-typ
7300 65 29 29 0a 20 20 20 20 28 77 65 62 2d 68 74 74 70 2d 70 6f 73 74 0a 20 20 20 20 20 28 6c 61 6d e)).....(web-http-post......(lam
7320 62 64 61 20 28 68 74 74 70 63 6f 6e 20 68 65 61 64 65 72 20 68 74 74 70 2d 64 61 74 61 29 0a 20 bda.(httpcon.header.http-data)..
7340 20 20 20 20 20 20 3b 3b 20 41 64 64 20 61 20 6d 65 6d 62 65 72 20 74 65 73 74 20 66 6f 72 20 74 ......;;.Add.a.member.test.for.t
7360 68 65 20 4d 49 4d 45 54 59 50 45 20 65 78 70 65 63 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 he.MIMETYPE.expectation........(
7380 6c 65 74 20 28 28 6c 69 73 70 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 let.((lisp-data...............(c
73a0 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ondition-case.err...............
73c0 20 20 20 20 28 77 65 62 2f 6a 73 6f 6e 2d 70 61 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(web/json-parse.............
73e0 20 20 20 20 20 20 20 68 74 74 70 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......http-data................
7400 20 20 20 20 3a 6a 73 6f 6e 2d 61 72 72 61 79 2d 74 79 70 65 20 63 6c 6f 73 65 64 2d 6a 73 6f 6e ....:json-array-type.closed-json
7420 2d 61 72 72 61 79 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a -array-type....................:
7440 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 20 63 6c 6f 73 65 64 2d 6a 73 6f 6e 2d 6f 62 6a json-object-type.closed-json-obj
7460 65 63 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6a 73 6f ect-type....................:jso
7480 6e 2d 6b 65 79 2d 74 79 70 65 20 63 6c 6f 73 65 64 2d 6a 73 6f 6e 2d 6b 65 79 2d 74 79 70 65 29 n-key-type.closed-json-key-type)
74a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 .................(error.........
74c0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 20 20 20 .........(when.logging..........
74e0 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 77 65 62 2d 6a 73 6f 6e 2d 70 6f 73 ..........(message."web-json-pos
7500 74 20 65 78 70 65 63 74 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 25 53 22 20 65 72 72 29 29 0a t.expectation.failure.%S".err)).
7520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 78 70 65 63 74 .................(funcall.expect
7540 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 ation-failure-callback..........
7560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 64 61 74 61 20 68 74 74 70 63 .................http-data.httpc
7580 6f 6e 20 68 65 61 64 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c on.header)))))..........(funcall
75a0 20 63 61 6c 6c 62 61 63 6b 20 6c 69 73 70 2d 64 61 74 61 20 68 74 74 70 63 6f 6e 20 68 65 61 64 .callback.lisp-data.httpcon.head
75c0 65 72 29 29 29 0a 20 20 20 20 20 20 3a 75 72 6c 20 75 72 6c 0a 20 20 20 20 20 20 3a 64 61 74 61 er))).......:url.url.......:data
75e0 20 64 61 74 61 0a 20 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 20 6d 69 6d 65 2d 74 79 70 65 .data.......:mime-type.mime-type
7600 0a 20 20 20 20 20 20 3a 65 78 74 72 61 2d 68 65 61 64 65 72 73 20 68 65 61 64 65 72 73 0a 20 20 .......:extra-headers.headers...
7620 20 20 20 20 3a 6c 6f 67 67 69 6e 67 20 6c 6f 67 67 69 6e 67 29 29 29 0a 0a 28 64 65 66 76 61 72 ....:logging.logging)))..(defvar
7640 20 77 65 62 2d 67 65 74 2d 68 69 73 74 6f 72 79 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 48 69 73 .web-get-history-list.nil..."His
7660 74 6f 72 79 20 66 6f 72 20 60 77 65 62 2d 67 65 74 27 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 tory.for.`web-get'.interactive.f
7680 6f 72 6d 73 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 77 orms.")..;;;###autoload.(defun.w
76a0 65 62 2d 67 65 74 20 28 75 72 6c 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 29 0a 20 20 eb-get.(url.&optional.buffer)...
76c0 22 47 65 74 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 55 52 4c 20 69 6e 74 6f 20 74 68 65 20 "Get.the.specified.URL.into.the.
76e0 42 55 46 46 45 52 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 BUFFER."...(interactive....(list
7700 0a 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 2d 75 72 6c 20 28 62 72 6f 77 73 65 2d 75 72 6c 2d .....(let.((def-url.(browse-url-
7720 75 72 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d url-at-point))).......(read-from
7740 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 55 52 4c 3a 20 22 20 64 65 66 2d 75 72 6c 20 6e 69 6c 20 -minibuffer."URL:.".def-url.nil.
7760 6e 69 6c 20 27 77 65 62 2d 67 65 74 2d 68 69 73 74 6f 72 79 2d 6c 69 73 74 29 29 0a 20 20 20 20 nil.'web-get-history-list)).....
7780 28 77 68 65 6e 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 (when.current-prefix-arg........
77a0 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 42 75 66 66 65 72 3a 20 22 20 27 28 22 2a 77 65 62 .(read-buffer."Buffer:.".'("*web
77c0 2d 67 65 74 2a 22 29 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 68 61 6e 64 6c 65 72 0a 20 20 20 -get*")))))...(let.((handler....
77e0 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 68 74 74 70 63 20 68 65 61 64 65 72 20 64 61 74 61 ......(lambda.(httpc.header.data
7800 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 )............(with-current-buffe
7820 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 62 75 66 66 65 72 70 20 62 75 r................(if.(bufferp.bu
7840 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 0a ffer)....................buffer.
7860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 ...................(if.(stringp.
7880 62 75 66 66 65 72 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 buffer)........................(
78a0 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 0a 20 20 20 20 generate-new-buffer.buffer).....
78c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 ...................(generate-new
78e0 2d 62 75 66 66 65 72 20 22 2a 77 65 62 2d 67 65 74 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 -buffer."*web-get*")))..........
7900 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 ....(goto-char.(point-max)).....
7920 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 .........(insert.data)..........
7940 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 ....(switch-to-buffer.(current-b
7960 75 66 66 65 72 29 29 29 29 29 29 0a 20 20 20 20 28 77 65 62 2d 68 74 74 70 2d 67 65 74 20 68 61 uffer)))))).....(web-http-get.ha
7980 6e 64 6c 65 72 20 3a 75 72 6c 20 75 72 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 77 65 62 2d 68 65 ndler.:url.url)))..(defun.web-he
79a0 61 64 65 72 20 28 68 65 61 64 65 72 20 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 76 ader.(header.name.&optional.conv
79c0 65 72 74 29 0a 20 20 22 4c 6f 6f 6b 20 75 70 20 4e 41 4d 45 20 69 6e 20 48 45 41 44 45 52 2e 22 ert)..."Look.up.NAME.in.HEADER."
79e0 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 20 28 69 66 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 ...(let.((val.(if.(hash-table-p.
7a00 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 header)..................(let.((
7a20 76 20 28 67 65 74 68 61 73 68 20 28 69 6e 74 65 72 6e 20 6e 61 6d 65 29 20 68 65 61 64 65 72 29 v.(gethash.(intern.name).header)
7a40 29 29 0a 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 76 20 28 63 ))....................(when.v.(c
7a60 6f 6e 73 20 6e 61 6d 65 20 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ons.name.v)))..................;
7a80 3b 20 45 6c 73 65 20 70 72 65 73 75 6d 65 20 69 74 27 73 20 61 6e 20 61 6c 69 73 74 0a 20 20 20 ;.Else.presume.it's.an.alist....
7aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 68 65 61 64 65 72 ..............(assoc.name.header
7ac0 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 76 61 6c 0a 20 20 20 20 20 20 28 63 61 73 65 20 63 )))).....(when.val.......(case.c
7ae0 6f 6e 76 65 72 74 0a 20 20 20 20 20 20 20 20 28 3a 6e 75 6d 20 28 73 74 72 69 6e 67 2d 74 6f 2d onvert.........(:num.(string-to-
7b00 6e 75 6d 62 65 72 20 28 63 64 72 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 76 61 number.(cdr.val))).........(t.va
7b20 6c 29 29 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 77 65 62 29 0a 0a 3b 3b 3b 20 77 65 62 l)))))...(provide.'web)..;;;.web
7b40 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.ends.here...................
7b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................