Artifact
0a129e43e33371229dbbd118d33a5d5bf406179ce3f3b2e740575b8dd5733243:
0000: 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 0a <!doctype html>.
0010: 3c 68 74 6d 6c 3e 0a 09 3c 68 65 61 64 3e 0a 09 <html>..<head>..
0020: 09 3c 74 69 74 6c 65 3e 6a 73 6f 6e 2d 75 72 6c .<title>json-url
0030: 20 64 65 6d 6f 20 70 61 67 65 3c 2f 74 69 74 6c demo page</titl
0040: 65 3e 0a 09 09 3c 73 74 79 6c 65 20 74 79 70 65 e>...<style type
0050: 3d 22 74 65 78 74 2f 63 73 73 22 3e 0a 09 09 09 ="text/css">....
0060: 62 6f 64 79 20 7b 0a 09 09 09 09 70 61 64 64 69 body {.....paddi
0070: 6e 67 3a 20 30 3b 0a 09 09 09 09 6d 61 72 67 69 ng: 0;.....margi
0080: 6e 3a 20 30 3b 0a 09 09 09 09 66 6f 6e 74 2d 66 n: 0;.....font-f
0090: 61 6d 69 6c 79 3a 20 48 65 6c 76 65 74 69 63 61 amily: Helvetica
00a0: 20 4e 65 75 65 2c 20 53 65 67 6f 65 20 55 49 2c Neue, Segoe UI,
00b0: 20 52 6f 62 6f 74 6f 2c 20 73 61 6e 73 2d 73 65 Roboto, sans-se
00c0: 72 69 66 3b 0a 09 09 09 7d 0a 0a 09 09 09 68 65 rif;....}.....he
00d0: 61 64 65 72 20 7b 0a 09 09 09 09 66 6f 6e 74 2d ader {.....font-
00e0: 66 61 6d 69 6c 79 3a 20 49 6f 77 61 6e 20 4f 6c family: Iowan Ol
00f0: 64 20 53 74 79 6c 65 2c 20 73 65 72 69 66 3b 0a d Style, serif;.
0100: 09 09 09 09 6d 61 72 67 69 6e 3a 20 30 3b 0a 09 ....margin: 0;..
0110: 09 09 09 70 61 64 64 69 6e 67 3a 20 31 65 6d 20 ...padding: 1em
0120: 30 3b 0a 09 09 09 09 62 61 63 6b 67 72 6f 75 6e 0;.....backgroun
0130: 64 2d 63 6f 6c 6f 72 3a 20 23 33 33 33 3b 0a 09 d-color: #333;..
0140: 09 09 09 74 65 78 74 2d 61 6c 69 67 6e 3a 20 63 ...text-align: c
0150: 65 6e 74 65 72 3b 0a 09 09 09 09 63 6f 6c 6f 72 enter;.....color
0160: 3a 20 77 68 69 74 65 3b 0a 09 09 09 7d 0a 0a 09 : white;....}...
0170: 09 09 68 65 61 64 65 72 20 3e 20 68 31 20 7b 0a ..header > h1 {.
0180: 09 09 09 09 6d 61 72 67 69 6e 3a 20 30 3b 0a 09 ....margin: 0;..
0190: 09 09 7d 0a 0a 09 09 09 23 63 6f 6e 74 61 69 6e ..}.....#contain
01a0: 65 72 20 7b 0a 09 09 09 09 70 61 64 64 69 6e 67 er {.....padding
01b0: 3a 20 31 65 6d 3b 0a 09 09 09 7d 0a 0a 0a 09 09 : 1em;....}.....
01c0: 09 2a 2c 20 69 6e 70 75 74 2c 20 62 75 74 74 6f .*, input, butto
01d0: 6e 2c 20 73 65 6c 65 63 74 20 7b 0a 09 09 09 09 n, select {.....
01e0: 62 6f 78 2d 73 69 7a 69 6e 67 3a 20 62 6f 72 64 box-sizing: bord
01f0: 65 72 2d 62 6f 78 3b 0a 09 09 09 7d 0a 0a 09 09 er-box;....}....
0200: 09 6c 61 62 65 6c 20 7b 0a 09 09 09 09 77 69 64 .label {.....wid
0210: 74 68 3a 20 31 30 65 6d 3b 0a 09 09 09 09 64 69 th: 10em;.....di
0220: 73 70 6c 61 79 3a 20 69 6e 6c 69 6e 65 2d 62 6c splay: inline-bl
0230: 6f 63 6b 3b 0a 09 09 09 09 76 65 72 74 69 63 61 ock;.....vertica
0240: 6c 2d 61 6c 69 67 6e 3a 20 74 6f 70 3b 0a 09 09 l-align: top;...
0250: 09 7d 0a 0a 09 09 09 69 6e 70 75 74 2c 20 62 75 .}.....input, bu
0260: 74 74 6f 6e 2c 20 73 65 6c 65 63 74 2c 20 74 65 tton, select, te
0270: 78 74 61 72 65 61 20 7b 0a 09 09 09 09 62 6f 72 xtarea {.....bor
0280: 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 64 20 23 der: 1px solid #
0290: 33 33 33 3b 0a 09 09 09 09 62 6f 72 64 65 72 2d 333;.....border-
02a0: 72 61 64 69 75 73 3a 20 2e 32 65 6d 3b 0a 09 09 radius: .2em;...
02b0: 09 09 70 61 64 64 69 6e 67 3a 20 2e 32 65 6d 3b ..padding: .2em;
02c0: 0a 09 09 09 09 66 6f 6e 74 2d 73 69 7a 65 3a 20 .....font-size:
02d0: 31 36 70 78 3b 0a 09 09 09 7d 0a 0a 09 09 09 23 16px;....}.....#
02e0: 6a 73 6f 6e 20 7b 0a 09 09 09 09 77 69 64 74 68 json {.....width
02f0: 3a 20 33 30 65 6d 3b 0a 09 09 09 09 68 65 69 67 : 30em;.....heig
0300: 68 74 3a 20 31 30 65 6d 3b 0a 09 09 09 09 66 6f ht: 10em;.....fo
0310: 6e 74 2d 66 61 6d 69 6c 79 3a 20 4d 65 6e 6c 6f nt-family: Menlo
0320: 2c 20 6d 6f 6e 6f 73 70 61 63 65 3b 0a 09 09 09 , monospace;....
0330: 7d 0a 0a 09 09 09 62 75 74 74 6f 6e 20 7b 0a 09 }.....button {..
0340: 09 09 09 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f ...background-co
0350: 6c 6f 72 3a 20 23 63 63 63 3b 0a 09 09 09 09 70 lor: #ccc;.....p
0360: 61 64 64 69 6e 67 3a 20 2e 32 65 6d 20 31 65 6d adding: .2em 1em
0370: 3b 0a 09 09 09 09 74 72 61 6e 73 69 74 69 6f 6e ;.....transition
0380: 3a 20 2e 32 73 20 65 61 73 65 3b 0a 09 09 09 7d : .2s ease;....}
0390: 0a 0a 09 09 09 62 75 74 74 6f 6e 3a 68 6f 76 65 .....button:hove
03a0: 72 2c 20 62 75 74 74 6f 6e 3a 66 6f 63 75 73 20 r, button:focus
03b0: 7b 0a 09 09 09 09 62 61 63 6b 67 72 6f 75 6e 64 {.....background
03c0: 2d 63 6f 6c 6f 72 3a 20 23 65 65 65 3b 0a 09 09 -color: #eee;...
03d0: 09 09 63 75 72 73 6f 72 3a 20 70 6f 69 6e 74 65 ..cursor: pointe
03e0: 72 3b 0a 09 09 09 7d 0a 0a 0a 09 09 09 23 63 6f r;....}......#co
03f0: 6e 74 61 69 6e 65 72 20 3e 20 64 69 76 20 7b 0a ntainer > div {.
0400: 09 09 09 09 6d 61 72 67 69 6e 2d 62 6f 74 74 6f ....margin-botto
0410: 6d 3a 20 2e 35 65 6d 3b 0a 09 09 09 7d 0a 0a 09 m: .5em;....}...
0420: 09 09 23 72 65 73 75 6c 74 2c 20 23 64 65 63 6f ..#result, #deco
0430: 6d 70 72 65 73 73 65 64 20 7b 0a 09 09 09 09 66 mpressed {.....f
0440: 6f 6e 74 2d 66 61 6d 69 6c 79 3a 20 4d 65 6e 6c ont-family: Menl
0450: 6f 2c 20 6d 6f 6e 6f 73 70 61 63 65 3b 0a 09 09 o, monospace;...
0460: 09 09 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c ..background-col
0470: 6f 72 3a 20 23 65 65 65 3b 0a 09 09 09 09 6d 69 or: #eee;.....mi
0480: 6e 2d 68 65 69 67 68 74 3a 20 31 30 65 6d 3b 0a n-height: 10em;.
0490: 09 09 09 09 70 61 64 64 69 6e 67 3a 20 30 2e 35 ....padding: 0.5
04a0: 65 6d 3b 0a 09 09 09 09 62 6f 72 64 65 72 2d 72 em;.....border-r
04b0: 61 64 69 75 73 3a 20 2e 32 65 6d 3b 0a 09 09 09 adius: .2em;....
04c0: 09 77 69 64 74 68 3a 20 31 30 30 25 3b 0a 09 09 .width: 100%;...
04d0: 09 7d 0a 0a 09 09 09 66 6f 6f 74 65 72 20 7b 0a .}.....footer {.
04e0: 09 09 09 09 62 61 63 6b 67 72 6f 75 6e 64 2d 63 ....background-c
04f0: 6f 6c 6f 72 20 3a 23 33 33 33 3b 0a 09 09 09 09 olor :#333;.....
0500: 63 6f 6c 6f 72 3a 20 77 68 69 74 65 3b 0a 09 09 color: white;...
0510: 09 09 70 6f 73 69 74 69 6f 6e 3a 20 66 69 78 65 ..position: fixe
0520: 64 3b 0a 09 09 09 09 62 6f 74 74 6f 6d 3a 20 30 d;.....bottom: 0
0530: 3b 0a 09 09 09 09 6c 65 66 74 3a 20 30 3b 0a 09 ;.....left: 0;..
0540: 09 09 09 64 69 73 70 6c 61 79 3a 20 62 6c 6f 63 ...display: bloc
0550: 6b 3b 0a 09 09 09 09 77 69 64 74 68 3a 20 31 30 k;.....width: 10
0560: 30 25 3b 0a 09 09 09 09 74 65 78 74 2d 61 6c 69 0%;.....text-ali
0570: 67 6e 3a 20 63 65 6e 74 65 72 3b 0a 09 09 09 7d gn: center;....}
0580: 0a 09 09 3c 2f 73 74 79 6c 65 3e 0a 09 3c 2f 68 ...</style>..</h
0590: 65 61 64 3e 0a 09 3c 62 6f 64 79 3e 0a 09 09 3c ead>..<body>...<
05a0: 68 65 61 64 65 72 3e 0a 09 09 09 3c 68 31 3e 6a header>....<h1>j
05b0: 73 6f 6e 2d 75 72 6c 20 64 65 6d 6f 3c 2f 68 31 son-url demo</h1
05c0: 3e 0a 09 09 09 3c 73 6d 61 6c 6c 3e 50 72 6f 75 >....<small>Prou
05d0: 64 6c 79 20 77 72 69 74 74 65 6e 20 69 6e 20 76 dly written in v
05e0: 61 6e 69 6c 6c 61 2e 6a 73 26 74 72 61 64 65 3b anilla.js™
05f0: 3c 2f 73 6d 61 6c 6c 3e 0a 09 09 3c 2f 68 65 61 </small>...</hea
0600: 64 65 72 3e 0a 09 09 3c 64 69 76 20 69 64 3d 22 der>...<div id="
0610: 63 6f 6e 74 61 69 6e 65 72 22 3e 0a 09 09 09 3c container">....<
0620: 64 69 76 3e 0a 09 09 09 09 3c 6c 61 62 65 6c 20 div>.....<label
0630: 66 6f 72 3d 22 61 6c 67 6f 72 69 74 68 6d 22 3e for="algorithm">
0640: 41 6c 67 6f 72 69 74 68 6d 3c 2f 6c 61 62 65 6c Algorithm</label
0650: 3e 0a 09 09 09 09 3c 73 65 6c 65 63 74 20 69 64 >.....<select id
0660: 3d 22 61 6c 67 6f 72 69 74 68 6d 22 20 6e 61 6d ="algorithm" nam
0670: 65 3d 22 61 6c 67 6f 72 69 74 68 6d 22 3e 0a 09 e="algorithm">..
0680: 09 09 09 09 3c 6f 70 74 69 6f 6e 20 76 61 6c 75 ....<option valu
0690: 65 3d 22 6c 7a 77 22 3e 6c 7a 77 3c 2f 6f 70 74 e="lzw">lzw</opt
06a0: 69 6f 6e 3e 0a 09 09 09 09 09 3c 6f 70 74 69 6f ion>......<optio
06b0: 6e 20 76 61 6c 75 65 3d 22 6c 7a 6d 61 22 3e 6c n value="lzma">l
06c0: 7a 6d 61 3c 2f 6f 70 74 69 6f 6e 3e 0a 09 09 09 zma</option>....
06d0: 09 09 3c 6f 70 74 69 6f 6e 20 76 61 6c 75 65 3d ..<option value=
06e0: 22 6c 7a 73 74 72 69 6e 67 22 3e 6c 7a 73 74 72 "lzstring">lzstr
06f0: 69 6e 67 3c 2f 6f 70 74 69 6f 6e 3e 0a 09 09 09 ing</option>....
0700: 09 09 3c 6f 70 74 69 6f 6e 20 76 61 6c 75 65 3d ..<option value=
0710: 22 70 61 63 6b 22 3e 70 61 63 6b 3c 2f 6f 70 74 "pack">pack</opt
0720: 69 6f 6e 3e 0a 09 09 09 09 3c 2f 73 65 6c 65 63 ion>.....</selec
0730: 74 3e 0a 09 09 09 3c 2f 64 69 76 3e 0a 09 09 09 t>....</div>....
0740: 3c 64 69 76 3e 0a 09 09 09 09 3c 6c 61 62 65 6c <div>.....<label
0750: 20 66 6f 72 3d 22 6a 73 6f 6e 22 3e 4a 53 4f 4e for="json">JSON
0760: 20 49 6e 70 75 74 3c 2f 6c 61 62 65 6c 3e 0a 09 Input</label>..
0770: 09 09 09 3c 74 65 78 74 61 72 65 61 20 69 64 3d ...<textarea id=
0780: 22 6a 73 6f 6e 22 20 6e 61 6d 65 3d 22 6a 73 6f "json" name="jso
0790: 6e 22 3e 3c 2f 74 65 78 74 61 72 65 61 3e 0a 09 n"></textarea>..
07a0: 09 09 3c 2f 64 69 76 3e 0a 09 09 09 3c 62 75 74 ..</div>....<but
07b0: 74 6f 6e 20 69 64 3d 22 67 65 6e 65 72 61 74 65 ton id="generate
07c0: 22 20 74 79 70 65 3d 22 62 75 74 74 6f 6e 22 3e " type="button">
07d0: 47 65 6e 65 72 61 74 65 3c 2f 62 75 74 74 6f 6e Generate</button
07e0: 3e 0a 09 09 09 3c 64 69 76 3e 0a 09 09 09 09 3c >....<div>.....<
07f0: 68 33 3e 52 65 73 75 6c 74 3c 2f 68 33 3e 0a 09 h3>Result</h3>..
0800: 09 09 09 3c 74 65 78 74 61 72 65 61 20 63 6c 61 ...<textarea cla
0810: 73 73 3d 22 69 6e 74 70 75 74 2d 6f 75 74 70 75 ss="intput-outpu
0820: 74 22 20 69 64 3d 22 72 65 73 75 6c 74 22 3e 0a t" id="result">.
0830: 09 09 09 09 3c 2f 74 65 78 74 61 72 65 61 3e 0a ....</textarea>.
0840: 09 09 09 3c 2f 64 69 76 3e 0a 09 09 09 3c 62 75 ...</div>....<bu
0850: 74 74 6f 6e 20 69 64 3d 22 64 65 63 6f 6d 70 72 tton id="decompr
0860: 65 73 73 22 20 74 79 70 65 3d 22 62 75 74 74 6f ess" type="butto
0870: 6e 22 3e 44 65 63 6f 6d 70 72 65 73 73 3c 2f 62 n">Decompress</b
0880: 75 74 74 6f 6e 3e 0a 09 09 09 3c 64 69 76 3e 0a utton>....<div>.
0890: 09 09 09 09 3c 68 33 3e 44 65 63 6f 6d 70 72 65 ....<h3>Decompre
08a0: 73 73 69 6f 6e 3c 2f 68 33 3e 0a 09 09 09 09 3c ssion</h3>.....<
08b0: 74 65 78 74 61 72 65 61 20 63 6c 61 73 73 3d 22 textarea class="
08c0: 69 6e 70 75 74 2d 6f 75 74 70 75 74 22 20 69 64 input-output" id
08d0: 3d 22 64 65 63 6f 6d 70 72 65 73 73 65 64 22 3e ="decompressed">
08e0: 0a 09 09 09 09 3c 2f 74 65 78 74 61 72 65 61 3e .....</textarea>
08f0: 0a 09 09 09 3c 2f 64 69 76 3e 0a 09 09 3c 2f 64 ....</div>...</d
0900: 69 76 3e 0a 09 3c 2f 62 6f 64 79 3e 0a 09 3c 73 iv>..</body>..<s
0910: 63 72 69 70 74 20 74 79 70 65 3d 22 74 65 78 74 cript type="text
0920: 2f 6a 61 76 61 73 63 72 69 70 74 22 20 73 72 63 /javascript" src
0930: 3d 22 2f 64 69 73 74 2f 62 72 6f 77 73 65 72 2f ="/dist/browser/
0940: 6a 73 6f 6e 2d 75 72 6c 2e 6a 73 22 3e 3c 2f 73 json-url.js"></s
0950: 63 72 69 70 74 3e 0a 09 3c 73 63 72 69 70 74 3e cript>..<script>
0960: 0a 09 09 2f 2a 20 65 73 6c 69 6e 74 2d 64 69 73 .../* eslint-dis
0970: 61 62 6c 65 20 2a 2f 0a 09 09 6a 73 6f 6e 2e 76 able */...json.v
0980: 61 6c 75 65 20 3d 20 4a 53 4f 4e 2e 73 74 72 69 alue = JSON.stri
0990: 6e 67 69 66 79 28 7b 0a 09 09 09 72 6f 73 65 73 ngify({....roses
09a0: 3a 20 27 72 65 64 27 2c 0a 09 09 09 76 69 6f 6c : 'red',....viol
09b0: 65 74 73 3a 20 27 62 6c 75 65 27 2c 0a 09 09 09 ets: 'blue',....
09c0: 66 72 75 69 74 73 3a 20 5b 20 27 61 70 70 6c 65 fruits: [ 'apple
09d0: 27 2c 20 32 20 5d 0a 09 09 7d 2c 20 6e 75 6c 6c ', 2 ]...}, null
09e0: 2c 20 32 29 3b 0a 09 09 09 61 6c 67 6f 72 69 74 , 2);....algorit
09f0: 68 6d 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65 hm.addEventListe
0a00: 6e 65 72 28 27 63 68 61 6e 67 65 27 2c 20 28 29 ner('change', ()
0a10: 20 3d 3e 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 => {.....result
0a20: 2e 76 61 6c 75 65 20 3d 20 27 27 3b 0a 09 09 09 .value = '';....
0a30: 09 64 65 63 6f 6d 70 72 65 73 73 65 64 2e 76 61 .decompressed.va
0a40: 6c 75 65 20 3d 20 27 27 3b 0a 09 09 09 09 67 65 lue = '';.....ge
0a50: 6e 65 72 61 74 65 2e 63 6c 69 63 6b 28 29 3b 0a nerate.click();.
0a60: 09 09 09 7d 29 3b 0a 09 09 09 67 65 6e 65 72 61 ...});....genera
0a70: 74 65 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65 te.addEventListe
0a80: 6e 65 72 28 27 63 6c 69 63 6b 27 2c 20 28 29 20 ner('click', ()
0a90: 3d 3e 20 7b 0a 09 09 09 09 74 72 79 20 7b 0a 09 => {.....try {..
0aa0: 09 09 09 09 63 6f 6e 73 74 20 70 61 72 73 65 64 ....const parsed
0ab0: 20 3d 20 4a 53 4f 4e 2e 70 61 72 73 65 28 6a 73 = JSON.parse(js
0ac0: 6f 6e 2e 76 61 6c 75 65 29 3b 0a 09 09 09 09 09 on.value);......
0ad0: 63 6f 6e 73 74 20 6c 69 62 20 3d 20 4a 73 6f 6e const lib = Json
0ae0: 55 72 6c 28 61 6c 67 6f 72 69 74 68 6d 2e 76 61 Url(algorithm.va
0af0: 6c 75 65 29 3b 0a 09 09 09 09 09 6c 69 62 2e 63 lue);......lib.c
0b00: 6f 6d 70 72 65 73 73 28 70 61 72 73 65 64 29 2e ompress(parsed).
0b10: 74 68 65 6e 28 6f 75 74 70 75 74 20 3d 3e 20 7b then(output => {
0b20: 20 72 65 73 75 6c 74 2e 76 61 6c 75 65 20 3d 20 result.value =
0b30: 6f 75 74 70 75 74 3b 20 7d 29 3b 0a 09 09 09 09 output; });.....
0b40: 7d 20 63 61 74 63 68 20 28 65 72 72 29 20 7b 0a } catch (err) {.
0b50: 09 09 09 09 09 72 65 73 75 6c 74 2e 76 61 6c 75 .....result.valu
0b60: 65 20 3d 20 60 55 6e 61 62 6c 65 20 74 6f 20 63 e = `Unable to c
0b70: 6f 6d 70 72 65 73 73 2e 20 52 65 61 73 6f 6e 3a ompress. Reason:
0b80: 20 24 7b 65 72 72 7d 60 3b 0a 09 09 09 09 7d 0a ${err}`;.....}.
0b90: 09 09 09 7d 29 3b 0a 09 09 09 64 65 63 6f 6d 70 ...});....decomp
0ba0: 72 65 73 73 2e 61 64 64 45 76 65 6e 74 4c 69 73 ress.addEventLis
0bb0: 74 65 6e 65 72 28 27 63 6c 69 63 6b 27 2c 20 28 tener('click', (
0bc0: 29 20 3d 3e 20 7b 0a 09 09 09 09 74 72 79 20 7b ) => {.....try {
0bd0: 0a 09 09 09 09 09 63 6f 6e 73 74 20 63 6f 6d 70 ......const comp
0be0: 72 65 73 73 65 64 20 3d 20 72 65 73 75 6c 74 2e ressed = result.
0bf0: 76 61 6c 75 65 2e 74 72 69 6d 28 29 3b 0a 09 09 value.trim();...
0c00: 09 09 09 63 6f 6e 73 74 20 6c 69 62 20 3d 20 4a ...const lib = J
0c10: 73 6f 6e 55 72 6c 28 61 6c 67 6f 72 69 74 68 6d sonUrl(algorithm
0c20: 2e 76 61 6c 75 65 29 3b 0a 09 09 09 09 09 6c 69 .value);......li
0c30: 62 2e 64 65 63 6f 6d 70 72 65 73 73 28 63 6f 6d b.decompress(com
0c40: 70 72 65 73 73 65 64 29 2e 74 68 65 6e 28 6f 75 pressed).then(ou
0c50: 74 70 75 74 20 3d 3e 20 7b 20 64 65 63 6f 6d 70 tput => { decomp
0c60: 72 65 73 73 65 64 2e 76 61 6c 75 65 20 3d 20 4a ressed.value = J
0c70: 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 6f 75 SON.stringify(ou
0c80: 74 70 75 74 2c 20 6e 75 6c 6c 2c 20 32 29 3b 20 tput, null, 2);
0c90: 7d 29 0a 09 09 09 09 7d 20 63 61 74 63 68 20 28 }).....} catch (
0ca0: 65 72 72 29 20 7b 0a 09 09 09 09 09 64 65 63 6f err) {......deco
0cb0: 6d 70 72 65 73 73 65 64 2e 76 61 6c 75 65 20 3d mpressed.value =
0cc0: 20 60 55 6e 61 62 6c 65 20 74 6f 20 64 65 63 6f `Unable to deco
0cd0: 6d 70 72 65 73 73 2e 20 52 65 61 73 6f 6e 3a 20 mpress. Reason:
0ce0: 24 7b 65 72 72 7d 60 3b 0a 09 09 09 09 7d 0a 09 ${err}`;.....}..
0cf0: 09 09 7d 29 3b 0a 09 3c 2f 73 63 72 69 70 74 3e ..});..</script>
0d00: 0a 3c 2f 68 74 6d 6c 3e .</html>