iodine 0.7.59 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +15 -0
  3. data/.rspec +1 -0
  4. data/.yardopts +1 -3
  5. data/CHANGELOG.md +132 -12
  6. data/Gemfile +5 -7
  7. data/LICENSE.txt +1 -1
  8. data/README.md +147 -671
  9. data/Rakefile +9 -16
  10. data/examples/chatroom.nru +9 -0
  11. data/examples/client +74 -0
  12. data/examples/config-hello.nru +9 -0
  13. data/examples/config-hello.ru +11 -0
  14. data/examples/config-hijack.ru +13 -0
  15. data/examples/config-shootout.ru +43 -0
  16. data/examples/config.nru +120 -0
  17. data/examples/config.rb +37 -0
  18. data/examples/config.ru +42 -53
  19. data/examples/fake +24 -0
  20. data/examples/hello_neorack +137 -0
  21. data/examples/routes.nru +29 -0
  22. data/examples/routes.ru +42 -0
  23. data/exe/iodine +218 -258
  24. data/ext/iodine/extconf.rb +27 -100
  25. data/ext/iodine/fio-stl.h +128336 -0
  26. data/ext/iodine/fio-stl.md +26396 -0
  27. data/ext/iodine/iodine.c +213 -1393
  28. data/ext/iodine/iodine.h +250 -55
  29. data/ext/iodine/iodine_arg_helper.h +329 -0
  30. data/ext/iodine/iodine_caller.h +234 -25
  31. data/ext/iodine/iodine_cli.h +434 -0
  32. data/ext/iodine/iodine_compression.h +312 -0
  33. data/ext/iodine/iodine_connection.h +3484 -34
  34. data/ext/iodine/iodine_core.h +363 -0
  35. data/ext/iodine/iodine_crypto.h +1441 -0
  36. data/ext/iodine/iodine_defer.h +225 -4
  37. data/ext/iodine/iodine_json.h +738 -4
  38. data/ext/iodine/iodine_listener.h +263 -0
  39. data/ext/iodine/iodine_log.h +297 -0
  40. data/ext/iodine/iodine_minimap.h +543 -0
  41. data/ext/iodine/iodine_mustache.h +461 -4
  42. data/ext/iodine/iodine_pubsub_eng.h +729 -0
  43. data/ext/iodine/iodine_pubsub_history.h +547 -0
  44. data/ext/iodine/iodine_pubsub_msg.h +228 -0
  45. data/ext/iodine/iodine_redis.h +322 -0
  46. data/ext/iodine/iodine_store.h +418 -16
  47. data/ext/iodine/iodine_threads.h +279 -0
  48. data/ext/iodine/iodine_tls.h +515 -6
  49. data/ext/iodine/iodine_utils.h +923 -0
  50. data/iodine.gemspec +37 -42
  51. data/lib/iodine/benchmark.rb +1690 -0
  52. data/lib/iodine/documentation.rb +3085 -0
  53. data/lib/iodine/version.rb +17 -1
  54. data/lib/iodine.rb +54 -255
  55. data/logo.svg +36 -0
  56. data/mustache.md +55 -0
  57. data/sig/iodine.rbs +4 -0
  58. metadata +58 -184
  59. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  60. data/.github/workflows/ruby.yml +0 -42
  61. data/.gitignore +0 -20
  62. data/LIMITS.md +0 -41
  63. data/SPEC-PubSub-Draft.md +0 -159
  64. data/SPEC-WebSocket-Draft.md +0 -239
  65. data/bin/console +0 -22
  66. data/bin/info.md +0 -353
  67. data/bin/mustache_bench.rb +0 -100
  68. data/bin/poc/Gemfile.lock +0 -23
  69. data/bin/poc/README.md +0 -37
  70. data/bin/poc/config.ru +0 -66
  71. data/bin/poc/gemfile +0 -1
  72. data/bin/poc/www/index.html +0 -57
  73. data/examples/async_task.ru +0 -92
  74. data/examples/bates/README.md +0 -3
  75. data/examples/bates/config.ru +0 -342
  76. data/examples/bates/david+bold.pdf +0 -0
  77. data/examples/bates/public/drop-pdf.png +0 -0
  78. data/examples/bates/public/index.html +0 -600
  79. data/examples/echo.ru +0 -59
  80. data/examples/etag.ru +0 -16
  81. data/examples/hello.ru +0 -29
  82. data/examples/pubsub_engine.ru +0 -81
  83. data/examples/rack3.ru +0 -12
  84. data/examples/redis.ru +0 -70
  85. data/examples/shootout.ru +0 -73
  86. data/examples/sub-protocols.ru +0 -90
  87. data/examples/tcp_client.rb +0 -66
  88. data/examples/x-sendfile.ru +0 -14
  89. data/ext/iodine/fio.c +0 -11995
  90. data/ext/iodine/fio.h +0 -6371
  91. data/ext/iodine/fio_cli.c +0 -431
  92. data/ext/iodine/fio_cli.h +0 -189
  93. data/ext/iodine/fio_json_parser.h +0 -688
  94. data/ext/iodine/fio_siphash.c +0 -157
  95. data/ext/iodine/fio_siphash.h +0 -37
  96. data/ext/iodine/fio_tls.h +0 -129
  97. data/ext/iodine/fio_tls_missing.c +0 -649
  98. data/ext/iodine/fio_tls_openssl.c +0 -1106
  99. data/ext/iodine/fio_tmpfile.h +0 -50
  100. data/ext/iodine/fiobj.h +0 -44
  101. data/ext/iodine/fiobj4fio.h +0 -21
  102. data/ext/iodine/fiobj_ary.c +0 -333
  103. data/ext/iodine/fiobj_ary.h +0 -139
  104. data/ext/iodine/fiobj_data.c +0 -1187
  105. data/ext/iodine/fiobj_data.h +0 -167
  106. data/ext/iodine/fiobj_hash.c +0 -409
  107. data/ext/iodine/fiobj_hash.h +0 -176
  108. data/ext/iodine/fiobj_json.c +0 -622
  109. data/ext/iodine/fiobj_json.h +0 -68
  110. data/ext/iodine/fiobj_mem.h +0 -71
  111. data/ext/iodine/fiobj_mustache.c +0 -317
  112. data/ext/iodine/fiobj_mustache.h +0 -62
  113. data/ext/iodine/fiobj_numbers.c +0 -344
  114. data/ext/iodine/fiobj_numbers.h +0 -127
  115. data/ext/iodine/fiobj_str.c +0 -433
  116. data/ext/iodine/fiobj_str.h +0 -172
  117. data/ext/iodine/fiobject.c +0 -620
  118. data/ext/iodine/fiobject.h +0 -655
  119. data/ext/iodine/hpack.h +0 -1923
  120. data/ext/iodine/http.c +0 -2743
  121. data/ext/iodine/http.h +0 -1002
  122. data/ext/iodine/http1.c +0 -910
  123. data/ext/iodine/http1.h +0 -29
  124. data/ext/iodine/http1_parser.h +0 -878
  125. data/ext/iodine/http_internal.c +0 -1279
  126. data/ext/iodine/http_internal.h +0 -237
  127. data/ext/iodine/http_mime_parser.h +0 -350
  128. data/ext/iodine/iodine_caller.c +0 -230
  129. data/ext/iodine/iodine_connection.c +0 -941
  130. data/ext/iodine/iodine_defer.c +0 -420
  131. data/ext/iodine/iodine_fiobj2rb.h +0 -120
  132. data/ext/iodine/iodine_helpers.c +0 -282
  133. data/ext/iodine/iodine_helpers.h +0 -12
  134. data/ext/iodine/iodine_http.c +0 -1181
  135. data/ext/iodine/iodine_http.h +0 -23
  136. data/ext/iodine/iodine_json.c +0 -302
  137. data/ext/iodine/iodine_mustache.c +0 -567
  138. data/ext/iodine/iodine_pubsub.c +0 -580
  139. data/ext/iodine/iodine_pubsub.h +0 -26
  140. data/ext/iodine/iodine_rack_io.c +0 -273
  141. data/ext/iodine/iodine_rack_io.h +0 -20
  142. data/ext/iodine/iodine_store.c +0 -146
  143. data/ext/iodine/iodine_tcp.c +0 -346
  144. data/ext/iodine/iodine_tcp.h +0 -13
  145. data/ext/iodine/iodine_tls.c +0 -261
  146. data/ext/iodine/mustache_parser.h +0 -1546
  147. data/ext/iodine/redis_engine.c +0 -957
  148. data/ext/iodine/redis_engine.h +0 -79
  149. data/ext/iodine/resp_parser.h +0 -317
  150. data/ext/iodine/websocket_parser.h +0 -506
  151. data/ext/iodine/websockets.c +0 -743
  152. data/ext/iodine/websockets.h +0 -185
  153. data/lib/iodine/connection.rb +0 -61
  154. data/lib/iodine/json.rb +0 -42
  155. data/lib/iodine/mustache.rb +0 -113
  156. data/lib/iodine/pubsub.rb +0 -55
  157. data/lib/iodine/rack_utils.rb +0 -43
  158. data/lib/iodine/tls.rb +0 -16
  159. data/lib/rack/handler/iodine.rb +0 -33
  160. data/logo.png +0 -0
@@ -1,1279 +0,0 @@
1
- /*
2
- Copyright: Boaz Segev, 2016-2019
3
- License: MIT
4
-
5
- Feel free to copy, use and enjoy according to the license provided.
6
- */
7
- #include <http_internal.h>
8
-
9
- #include <http1.h>
10
-
11
- /* *****************************************************************************
12
- Internal Request / Response Handlers
13
- ***************************************************************************** */
14
-
15
- static uint64_t http_upgrade_hash = 0;
16
- /** Use this function to handle HTTP requests.*/
17
- void http_on_request_handler______internal(http_s *h,
18
- http_settings_s *settings) {
19
- if (!http_upgrade_hash)
20
- http_upgrade_hash = fiobj_hash_string("upgrade", 7);
21
- h->udata = settings->udata;
22
-
23
- static uint64_t host_hash = 0;
24
- if (!host_hash)
25
- host_hash = fiobj_hash_string("host", 4);
26
-
27
- if (1) {
28
- /* test for Host header and avoid duplicates */
29
- FIOBJ tmp = fiobj_hash_get2(h->headers, host_hash);
30
- if (!tmp)
31
- goto missing_host;
32
- if (FIOBJ_TYPE_IS(tmp, FIOBJ_T_ARRAY)) {
33
- fiobj_hash_set(h->headers, HTTP_HEADER_HOST, fiobj_ary_pop(tmp));
34
- }
35
- }
36
-
37
- FIOBJ t = fiobj_hash_get2(h->headers, http_upgrade_hash);
38
- if (t)
39
- goto upgrade;
40
-
41
- if (fiobj_iseq(
42
- fiobj_hash_get2(h->headers, fiobj_obj2hash(HTTP_HEADER_ACCEPT)),
43
- HTTP_HVALUE_SSE_MIME))
44
- goto eventsource;
45
- if (settings->public_folder &&
46
- (fiobj_obj2cstr(h->method).len != 4 || strncasecmp("post", fiobj_obj2cstr(h->method).data, 4))) {
47
- fio_str_info_s path_str = fiobj_obj2cstr(h->path);
48
- if (!http_sendfile2(h, settings->public_folder,
49
- settings->public_folder_length, path_str.data,
50
- path_str.len)) {
51
- return;
52
- }
53
- }
54
- settings->on_request(h);
55
- return;
56
-
57
- upgrade:
58
- if (1) {
59
- fiobj_dup(t); /* allow upgrade name access after http_finish */
60
- fio_str_info_s val = fiobj_obj2cstr(t);
61
- if (val.data[0] == 'h' && val.data[1] == '2') {
62
- http_send_error(h, 400);
63
- } else {
64
- settings->on_upgrade(h, val.data, val.len);
65
- }
66
- fiobj_free(t);
67
- return;
68
- }
69
- eventsource:
70
- settings->on_upgrade(h, (char *)"sse", 3);
71
- return;
72
- missing_host:
73
- FIO_LOG_DEBUG("missing Host header");
74
- http_send_error(h, 400);
75
- return;
76
- }
77
-
78
- void http_on_response_handler______internal(http_s *h,
79
- http_settings_s *settings) {
80
- if (!http_upgrade_hash)
81
- http_upgrade_hash = fiobj_hash_string("upgrade", 7);
82
- h->udata = settings->udata;
83
- FIOBJ t = fiobj_hash_get2(h->headers, http_upgrade_hash);
84
- if (t == FIOBJ_INVALID) {
85
- settings->on_response(h);
86
- return;
87
- } else {
88
- fio_str_info_s val = fiobj_obj2cstr(t);
89
- settings->on_upgrade(h, val.data, val.len);
90
- }
91
- }
92
-
93
- /* *****************************************************************************
94
- Internal helpers
95
- ***************************************************************************** */
96
-
97
- int http_send_error2(size_t error, intptr_t uuid, http_settings_s *settings) {
98
- if (!uuid || !settings || !error)
99
- return -1;
100
- fio_protocol_s *pr = http1_new(uuid, settings, NULL, 0);
101
- http_s *r = fio_malloc(sizeof(*r));
102
- FIO_ASSERT_ALLOC(r);
103
- FIO_ASSERT(pr, "Couldn't allocate response object for error report.")
104
- http_s_new(r, (http_fio_protocol_s *)pr, http1_vtable());
105
- int ret = http_send_error(r, error);
106
- fio_close(uuid);
107
- return ret;
108
- }
109
-
110
- /* *****************************************************************************
111
- Library initialization
112
- ***************************************************************************** */
113
-
114
- FIOBJ HTTP_HEADER_ACCEPT;
115
- FIOBJ HTTP_HEADER_ACCEPT_RANGES;
116
- FIOBJ HTTP_HEADER_CACHE_CONTROL;
117
- FIOBJ HTTP_HEADER_CONNECTION;
118
- FIOBJ HTTP_HEADER_CONTENT_ENCODING;
119
- FIOBJ HTTP_HEADER_CONTENT_LENGTH;
120
- FIOBJ HTTP_HEADER_CONTENT_RANGE;
121
- FIOBJ HTTP_HEADER_CONTENT_TYPE;
122
- FIOBJ HTTP_HEADER_COOKIE;
123
- FIOBJ HTTP_HEADER_DATE;
124
- FIOBJ HTTP_HEADER_ETAG;
125
- FIOBJ HTTP_HEADER_HOST;
126
- FIOBJ HTTP_HEADER_LAST_MODIFIED;
127
- FIOBJ HTTP_HEADER_ORIGIN;
128
- FIOBJ HTTP_HEADER_SET_COOKIE;
129
- FIOBJ HTTP_HEADER_UPGRADE;
130
- FIOBJ HTTP_HEADER_WS_SEC_CLIENT_KEY;
131
- FIOBJ HTTP_HEADER_WS_SEC_KEY;
132
- FIOBJ HTTP_HVALUE_BYTES;
133
- FIOBJ HTTP_HVALUE_CLOSE;
134
- FIOBJ HTTP_HVALUE_CONTENT_TYPE_DEFAULT;
135
- FIOBJ HTTP_HVALUE_GZIP;
136
- FIOBJ HTTP_HVALUE_KEEP_ALIVE;
137
- FIOBJ HTTP_HVALUE_MAX_AGE;
138
- FIOBJ HTTP_HVALUE_NO_CACHE;
139
- FIOBJ HTTP_HVALUE_SSE_MIME;
140
- FIOBJ HTTP_HVALUE_WEBSOCKET;
141
- FIOBJ HTTP_HVALUE_WS_SEC_VERSION;
142
- FIOBJ HTTP_HVALUE_WS_UPGRADE;
143
- FIOBJ HTTP_HVALUE_WS_VERSION;
144
-
145
- static void http_lib_init(void *ignr_);
146
- static void http_lib_cleanup(void *ignr_);
147
- static __attribute__((constructor)) void http_lib_constructor(void) {
148
- fio_state_callback_add(FIO_CALL_ON_INITIALIZE, http_lib_init, NULL);
149
- fio_state_callback_add(FIO_CALL_AT_EXIT, http_lib_cleanup, NULL);
150
- }
151
-
152
- void http_mimetype_stats(void);
153
-
154
- static void http_lib_cleanup(void *ignr_) {
155
- (void)ignr_;
156
- http_mimetype_clear();
157
- #define HTTPLIB_RESET(x) \
158
- fiobj_free(x); \
159
- x = FIOBJ_INVALID;
160
- HTTPLIB_RESET(HTTP_HEADER_ACCEPT);
161
- HTTPLIB_RESET(HTTP_HEADER_ACCEPT_RANGES);
162
- HTTPLIB_RESET(HTTP_HEADER_CACHE_CONTROL);
163
- HTTPLIB_RESET(HTTP_HEADER_CONNECTION);
164
- HTTPLIB_RESET(HTTP_HEADER_CONTENT_ENCODING);
165
- HTTPLIB_RESET(HTTP_HEADER_CONTENT_LENGTH);
166
- HTTPLIB_RESET(HTTP_HEADER_CONTENT_RANGE);
167
- HTTPLIB_RESET(HTTP_HEADER_CONTENT_TYPE);
168
- HTTPLIB_RESET(HTTP_HEADER_COOKIE);
169
- HTTPLIB_RESET(HTTP_HEADER_DATE);
170
- HTTPLIB_RESET(HTTP_HEADER_ETAG);
171
- HTTPLIB_RESET(HTTP_HEADER_HOST);
172
- HTTPLIB_RESET(HTTP_HEADER_LAST_MODIFIED);
173
- HTTPLIB_RESET(HTTP_HEADER_ORIGIN);
174
- HTTPLIB_RESET(HTTP_HEADER_SET_COOKIE);
175
- HTTPLIB_RESET(HTTP_HEADER_UPGRADE);
176
- HTTPLIB_RESET(HTTP_HEADER_WS_SEC_CLIENT_KEY);
177
- HTTPLIB_RESET(HTTP_HEADER_WS_SEC_KEY);
178
- HTTPLIB_RESET(HTTP_HVALUE_BYTES);
179
- HTTPLIB_RESET(HTTP_HVALUE_CLOSE);
180
- HTTPLIB_RESET(HTTP_HVALUE_CONTENT_TYPE_DEFAULT);
181
- HTTPLIB_RESET(HTTP_HVALUE_GZIP);
182
- HTTPLIB_RESET(HTTP_HVALUE_KEEP_ALIVE);
183
- HTTPLIB_RESET(HTTP_HVALUE_MAX_AGE);
184
- HTTPLIB_RESET(HTTP_HVALUE_NO_CACHE);
185
- HTTPLIB_RESET(HTTP_HVALUE_SSE_MIME);
186
- HTTPLIB_RESET(HTTP_HVALUE_WEBSOCKET);
187
- HTTPLIB_RESET(HTTP_HVALUE_WS_SEC_VERSION);
188
- HTTPLIB_RESET(HTTP_HVALUE_WS_UPGRADE);
189
- HTTPLIB_RESET(HTTP_HVALUE_WS_VERSION);
190
-
191
- #undef HTTPLIB_RESET
192
- http_mimetype_stats();
193
- }
194
-
195
- void http_mimetype_stats(void);
196
-
197
- static void http_lib_init(void *ignr_) {
198
- (void)ignr_;
199
- if (HTTP_HEADER_ACCEPT_RANGES)
200
- return;
201
- HTTP_HEADER_ACCEPT = fiobj_str_new("accept", 6);
202
- HTTP_HEADER_ACCEPT_RANGES = fiobj_str_new("accept-ranges", 13);
203
- HTTP_HEADER_CACHE_CONTROL = fiobj_str_new("cache-control", 13);
204
- HTTP_HEADER_CONNECTION = fiobj_str_new("connection", 10);
205
- HTTP_HEADER_CONTENT_ENCODING = fiobj_str_new("content-encoding", 16);
206
- HTTP_HEADER_CONTENT_LENGTH = fiobj_str_new("content-length", 14);
207
- HTTP_HEADER_CONTENT_RANGE = fiobj_str_new("content-range", 13);
208
- HTTP_HEADER_CONTENT_TYPE = fiobj_str_new("content-type", 12);
209
- HTTP_HEADER_COOKIE = fiobj_str_new("cookie", 6);
210
- HTTP_HEADER_DATE = fiobj_str_new("date", 4);
211
- HTTP_HEADER_ETAG = fiobj_str_new("etag", 4);
212
- HTTP_HEADER_HOST = fiobj_str_new("host", 4);
213
- HTTP_HEADER_LAST_MODIFIED = fiobj_str_new("last-modified", 13);
214
- HTTP_HEADER_ORIGIN = fiobj_str_new("origin", 6);
215
- HTTP_HEADER_SET_COOKIE = fiobj_str_new("set-cookie", 10);
216
- HTTP_HEADER_UPGRADE = fiobj_str_new("upgrade", 7);
217
- HTTP_HEADER_WS_SEC_CLIENT_KEY = fiobj_str_new("sec-websocket-key", 17);
218
- HTTP_HEADER_WS_SEC_KEY = fiobj_str_new("sec-websocket-accept", 20);
219
- HTTP_HVALUE_BYTES = fiobj_str_new("bytes", 5);
220
- HTTP_HVALUE_CLOSE = fiobj_str_new("close", 5);
221
- HTTP_HVALUE_CONTENT_TYPE_DEFAULT =
222
- fiobj_str_new("application/octet-stream", 24);
223
- HTTP_HVALUE_GZIP = fiobj_str_new("gzip", 4);
224
- HTTP_HVALUE_KEEP_ALIVE = fiobj_str_new("keep-alive", 10);
225
- HTTP_HVALUE_MAX_AGE = fiobj_str_new("max-age=3600", 12);
226
- HTTP_HVALUE_NO_CACHE = fiobj_str_new("no-cache, max-age=0", 19);
227
- HTTP_HVALUE_SSE_MIME = fiobj_str_new("text/event-stream", 17);
228
- HTTP_HVALUE_WEBSOCKET = fiobj_str_new("websocket", 9);
229
- HTTP_HVALUE_WS_SEC_VERSION = fiobj_str_new("sec-websocket-version", 21);
230
- HTTP_HVALUE_WS_UPGRADE = fiobj_str_new("Upgrade", 7);
231
- HTTP_HVALUE_WS_VERSION = fiobj_str_new("13", 2);
232
-
233
- fiobj_obj2hash(HTTP_HEADER_ACCEPT_RANGES);
234
- fiobj_obj2hash(HTTP_HEADER_CACHE_CONTROL);
235
- fiobj_obj2hash(HTTP_HEADER_CONNECTION);
236
- fiobj_obj2hash(HTTP_HEADER_CONTENT_ENCODING);
237
- fiobj_obj2hash(HTTP_HEADER_CONTENT_LENGTH);
238
- fiobj_obj2hash(HTTP_HEADER_CONTENT_RANGE);
239
- fiobj_obj2hash(HTTP_HEADER_CONTENT_TYPE);
240
- fiobj_obj2hash(HTTP_HEADER_COOKIE);
241
- fiobj_obj2hash(HTTP_HEADER_DATE);
242
- fiobj_obj2hash(HTTP_HEADER_ETAG);
243
- fiobj_obj2hash(HTTP_HEADER_HOST);
244
- fiobj_obj2hash(HTTP_HEADER_LAST_MODIFIED);
245
- fiobj_obj2hash(HTTP_HEADER_ORIGIN);
246
- fiobj_obj2hash(HTTP_HEADER_SET_COOKIE);
247
- fiobj_obj2hash(HTTP_HEADER_UPGRADE);
248
- fiobj_obj2hash(HTTP_HEADER_WS_SEC_CLIENT_KEY);
249
- fiobj_obj2hash(HTTP_HEADER_WS_SEC_KEY);
250
- fiobj_obj2hash(HTTP_HVALUE_BYTES);
251
- fiobj_obj2hash(HTTP_HVALUE_CLOSE);
252
- fiobj_obj2hash(HTTP_HVALUE_CONTENT_TYPE_DEFAULT);
253
- fiobj_obj2hash(HTTP_HVALUE_GZIP);
254
- fiobj_obj2hash(HTTP_HVALUE_KEEP_ALIVE);
255
- fiobj_obj2hash(HTTP_HVALUE_MAX_AGE);
256
- fiobj_obj2hash(HTTP_HVALUE_NO_CACHE);
257
- fiobj_obj2hash(HTTP_HVALUE_SSE_MIME);
258
- fiobj_obj2hash(HTTP_HVALUE_WEBSOCKET);
259
- fiobj_obj2hash(HTTP_HVALUE_WS_SEC_VERSION);
260
- fiobj_obj2hash(HTTP_HVALUE_WS_UPGRADE);
261
- fiobj_obj2hash(HTTP_HVALUE_WS_VERSION);
262
-
263
- #define REGISTER_MIME(ext, type) \
264
- http_mimetype_register((char *)ext, sizeof(ext) - 1, \
265
- fiobj_str_new((char *)type, sizeof(type) - 1))
266
-
267
- REGISTER_MIME("123", "application/vnd.lotus-1-2-3");
268
- REGISTER_MIME("3dml", "text/vnd.in3d.3dml");
269
- REGISTER_MIME("3ds", "image/x-3ds");
270
- REGISTER_MIME("3g2", "video/3gpp2");
271
- REGISTER_MIME("3gp", "video/3gpp");
272
- REGISTER_MIME("7z", "application/x-7z-compressed");
273
- REGISTER_MIME("aab", "application/x-authorware-bin");
274
- REGISTER_MIME("aac", "audio/x-aac");
275
- REGISTER_MIME("aam", "application/x-authorware-map");
276
- REGISTER_MIME("aas", "application/x-authorware-seg");
277
- REGISTER_MIME("abw", "application/x-abiword");
278
- REGISTER_MIME("ac", "application/pkix-attr-cert");
279
- REGISTER_MIME("acc", "application/vnd.americandynamics.acc");
280
- REGISTER_MIME("ace", "application/x-ace-compressed");
281
- REGISTER_MIME("acu", "application/vnd.acucobol");
282
- REGISTER_MIME("acutc", "application/vnd.acucorp");
283
- REGISTER_MIME("adp", "audio/adpcm");
284
- REGISTER_MIME("aep", "application/vnd.audiograph");
285
- REGISTER_MIME("afm", "application/x-font-type1");
286
- REGISTER_MIME("afp", "application/vnd.ibm.modcap");
287
- REGISTER_MIME("ahead", "application/vnd.ahead.space");
288
- REGISTER_MIME("ai", "application/postscript");
289
- REGISTER_MIME("aif", "audio/x-aiff");
290
- REGISTER_MIME("aifc", "audio/x-aiff");
291
- REGISTER_MIME("aiff", "audio/x-aiff");
292
- REGISTER_MIME("air",
293
- "application/vnd.adobe.air-application-installer-package+zip");
294
- REGISTER_MIME("ait", "application/vnd.dvb.ait");
295
- REGISTER_MIME("ami", "application/vnd.amiga.ami");
296
- REGISTER_MIME("apk", "application/vnd.android.package-archive");
297
- REGISTER_MIME("appcache", "text/cache-manifest");
298
- REGISTER_MIME("application", "application/x-ms-application");
299
- REGISTER_MIME("pptx", "application/"
300
- "vnd.openxmlformats-officedocument.presentationml."
301
- "presentation");
302
- REGISTER_MIME("apr", "application/vnd.lotus-approach");
303
- REGISTER_MIME("arc", "application/x-freearc");
304
- REGISTER_MIME("asc", "application/pgp-signature");
305
- REGISTER_MIME("asf", "video/x-ms-asf");
306
- REGISTER_MIME("asm", "text/x-asm");
307
- REGISTER_MIME("aso", "application/vnd.accpac.simply.aso");
308
- REGISTER_MIME("asx", "video/x-ms-asf");
309
- REGISTER_MIME("atc", "application/vnd.acucorp");
310
- REGISTER_MIME("atom", "application/atom+xml");
311
- REGISTER_MIME("atomcat", "application/atomcat+xml");
312
- REGISTER_MIME("atomsvc", "application/atomsvc+xml");
313
- REGISTER_MIME("atx", "application/vnd.antix.game-component");
314
- REGISTER_MIME("au", "audio/basic");
315
- REGISTER_MIME("avi", "video/x-msvideo");
316
- REGISTER_MIME("aw", "application/applixware");
317
- REGISTER_MIME("azf", "application/vnd.airzip.filesecure.azf");
318
- REGISTER_MIME("azs", "application/vnd.airzip.filesecure.azs");
319
- REGISTER_MIME("azw", "application/vnd.amazon.ebook");
320
- REGISTER_MIME("bat", "application/x-msdownload");
321
- REGISTER_MIME("bcpio", "application/x-bcpio");
322
- REGISTER_MIME("bdf", "application/x-font-bdf");
323
- REGISTER_MIME("bdm", "application/vnd.syncml.dm+wbxml");
324
- REGISTER_MIME("bed", "application/vnd.realvnc.bed");
325
- REGISTER_MIME("bh2", "application/vnd.fujitsu.oasysprs");
326
- REGISTER_MIME("bin", "application/octet-stream");
327
- REGISTER_MIME("blb", "application/x-blorb");
328
- REGISTER_MIME("blorb", "application/x-blorb");
329
- REGISTER_MIME("bmi", "application/vnd.bmi");
330
- REGISTER_MIME("bmp", "image/bmp");
331
- REGISTER_MIME("book", "application/vnd.framemaker");
332
- REGISTER_MIME("box", "application/vnd.previewsystems.box");
333
- REGISTER_MIME("boz", "application/x-bzip2");
334
- REGISTER_MIME("bpk", "application/octet-stream");
335
- REGISTER_MIME("btif", "image/prs.btif");
336
- REGISTER_MIME("bz", "application/x-bzip");
337
- REGISTER_MIME("bz2", "application/x-bzip2");
338
- REGISTER_MIME("c", "text/x-c");
339
- REGISTER_MIME("c11amc", "application/vnd.cluetrust.cartomobile-config");
340
- REGISTER_MIME("c11amz", "application/vnd.cluetrust.cartomobile-config-pkg");
341
- REGISTER_MIME("c4d", "application/vnd.clonk.c4group");
342
- REGISTER_MIME("c4f", "application/vnd.clonk.c4group");
343
- REGISTER_MIME("c4g", "application/vnd.clonk.c4group");
344
- REGISTER_MIME("c4p", "application/vnd.clonk.c4group");
345
- REGISTER_MIME("c4u", "application/vnd.clonk.c4group");
346
- REGISTER_MIME("cab", "application/vnd.ms-cab-compressed");
347
- REGISTER_MIME("caf", "audio/x-caf");
348
- REGISTER_MIME("cap", "application/vnd.tcpdump.pcap");
349
- REGISTER_MIME("car", "application/vnd.curl.car");
350
- REGISTER_MIME("cat", "application/vnd.ms-pki.seccat");
351
- REGISTER_MIME("cb7", "application/x-cbr");
352
- REGISTER_MIME("cba", "application/x-cbr");
353
- REGISTER_MIME("cbr", "application/x-cbr");
354
- REGISTER_MIME("cbt", "application/x-cbr");
355
- REGISTER_MIME("cbz", "application/x-cbr");
356
- REGISTER_MIME("cc", "text/x-c");
357
- REGISTER_MIME("cct", "application/x-director");
358
- REGISTER_MIME("ccxml", "application/ccxml+xml");
359
- REGISTER_MIME("cdbcmsg", "application/vnd.contact.cmsg");
360
- REGISTER_MIME("cdf", "application/x-netcdf");
361
- REGISTER_MIME("cdkey", "application/vnd.mediastation.cdkey");
362
- REGISTER_MIME("cdmia", "application/cdmi-capability");
363
- REGISTER_MIME("cdmic", "application/cdmi-container");
364
- REGISTER_MIME("cdmid", "application/cdmi-domain");
365
- REGISTER_MIME("cdmio", "application/cdmi-object");
366
- REGISTER_MIME("cdmiq", "application/cdmi-queue");
367
- REGISTER_MIME("cdx", "chemical/x-cdx");
368
- REGISTER_MIME("cdxml", "application/vnd.chemdraw+xml");
369
- REGISTER_MIME("cdy", "application/vnd.cinderella");
370
- REGISTER_MIME("cer", "application/pkix-cert");
371
- REGISTER_MIME("cfs", "application/x-cfs-compressed");
372
- REGISTER_MIME("cgm", "image/cgm");
373
- REGISTER_MIME("chat", "application/x-chat");
374
- REGISTER_MIME("chm", "application/vnd.ms-htmlhelp");
375
- REGISTER_MIME("chrt", "application/vnd.kde.kchart");
376
- REGISTER_MIME("cif", "chemical/x-cif");
377
- REGISTER_MIME("cii",
378
- "application/vnd.anser-web-certificate-issue-initiation");
379
- REGISTER_MIME("cil", "application/vnd.ms-artgalry");
380
- REGISTER_MIME("cla", "application/vnd.claymore");
381
- REGISTER_MIME("class", "application/java-vm");
382
- REGISTER_MIME("clkk", "application/vnd.crick.clicker.keyboard");
383
- REGISTER_MIME("clkp", "application/vnd.crick.clicker.palette");
384
- REGISTER_MIME("clkt", "application/vnd.crick.clicker.template");
385
- REGISTER_MIME("clkw", "application/vnd.crick.clicker.wordbank");
386
- REGISTER_MIME("clkx", "application/vnd.crick.clicker");
387
- REGISTER_MIME("clp", "application/x-msclip");
388
- REGISTER_MIME("cmc", "application/vnd.cosmocaller");
389
- REGISTER_MIME("cmdf", "chemical/x-cmdf");
390
- REGISTER_MIME("cml", "chemical/x-cml");
391
- REGISTER_MIME("cmp", "application/vnd.yellowriver-custom-menu");
392
- REGISTER_MIME("cmx", "image/x-cmx");
393
- REGISTER_MIME("cod", "application/vnd.rim.cod");
394
- REGISTER_MIME("com", "application/x-msdownload");
395
- REGISTER_MIME("conf", "text/plain");
396
- REGISTER_MIME("cpio", "application/x-cpio");
397
- REGISTER_MIME("cpp", "text/x-c");
398
- REGISTER_MIME("cpt", "application/mac-compactpro");
399
- REGISTER_MIME("crd", "application/x-mscardfile");
400
- REGISTER_MIME("crl", "application/pkix-crl");
401
- REGISTER_MIME("crt", "application/x-x509-ca-cert");
402
- REGISTER_MIME("cryptonote", "application/vnd.rig.cryptonote");
403
- REGISTER_MIME("csh", "application/x-csh");
404
- REGISTER_MIME("csml", "chemical/x-csml");
405
- REGISTER_MIME("csp", "application/vnd.commonspace");
406
- REGISTER_MIME("css", "text/css");
407
- REGISTER_MIME("cst", "application/x-director");
408
- REGISTER_MIME("csv", "text/csv");
409
- REGISTER_MIME("cu", "application/cu-seeme");
410
- REGISTER_MIME("curl", "text/vnd.curl");
411
- REGISTER_MIME("cww", "application/prs.cww");
412
- REGISTER_MIME("cxt", "application/x-director");
413
- REGISTER_MIME("cxx", "text/x-c");
414
- REGISTER_MIME("dae", "model/vnd.collada+xml");
415
- REGISTER_MIME("daf", "application/vnd.mobius.daf");
416
- REGISTER_MIME("dart", "application/vnd.dart");
417
- REGISTER_MIME("dataless", "application/vnd.fdsn.seed");
418
- REGISTER_MIME("davmount", "application/davmount+xml");
419
- REGISTER_MIME("dbk", "application/docbook+xml");
420
- REGISTER_MIME("dcr", "application/x-director");
421
- REGISTER_MIME("dcurl", "text/vnd.curl.dcurl");
422
- REGISTER_MIME("dd2", "application/vnd.oma.dd2+xml");
423
- REGISTER_MIME("ddd", "application/vnd.fujixerox.ddd");
424
- REGISTER_MIME("deb", "application/x-debian-package");
425
- REGISTER_MIME("def", "text/plain");
426
- REGISTER_MIME("deploy", "application/octet-stream");
427
- REGISTER_MIME("der", "application/x-x509-ca-cert");
428
- REGISTER_MIME("dfac", "application/vnd.dreamfactory");
429
- REGISTER_MIME("dgc", "application/x-dgc-compressed");
430
- REGISTER_MIME("dic", "text/x-c");
431
- REGISTER_MIME("dir", "application/x-director");
432
- REGISTER_MIME("dis", "application/vnd.mobius.dis");
433
- REGISTER_MIME("dist", "application/octet-stream");
434
- REGISTER_MIME("distz", "application/octet-stream");
435
- REGISTER_MIME("djv", "image/vnd.djvu");
436
- REGISTER_MIME("djvu", "image/vnd.djvu");
437
- REGISTER_MIME("dll", "application/x-msdownload");
438
- REGISTER_MIME("dmg", "application/x-apple-diskimage");
439
- REGISTER_MIME("dmp", "application/vnd.tcpdump.pcap");
440
- REGISTER_MIME("dms", "application/octet-stream");
441
- REGISTER_MIME("dna", "application/vnd.dna");
442
- REGISTER_MIME("doc", "application/msword");
443
- REGISTER_MIME("docm", "application/vnd.ms-word.document.macroenabled.12");
444
- REGISTER_MIME("docx", "application/"
445
- "vnd.openxmlformats-officedocument.wordprocessingml."
446
- "document");
447
- REGISTER_MIME("dot", "application/msword");
448
- REGISTER_MIME("dotm", "application/vnd.ms-word.template.macroenabled.12");
449
- REGISTER_MIME("dotx", "application/"
450
- "vnd.openxmlformats-officedocument.wordprocessingml."
451
- "template");
452
- REGISTER_MIME("dp", "application/vnd.osgi.dp");
453
- REGISTER_MIME("dpg", "application/vnd.dpgraph");
454
- REGISTER_MIME("dra", "audio/vnd.dra");
455
- REGISTER_MIME("dsc", "text/prs.lines.tag");
456
- REGISTER_MIME("dssc", "application/dssc+der");
457
- REGISTER_MIME("dtb", "application/x-dtbook+xml");
458
- REGISTER_MIME("dtd", "application/xml-dtd");
459
- REGISTER_MIME("dts", "audio/vnd.dts");
460
- REGISTER_MIME("dtshd", "audio/vnd.dts.hd");
461
- REGISTER_MIME("dump", "application/octet-stream");
462
- REGISTER_MIME("dvb", "video/vnd.dvb.file");
463
- REGISTER_MIME("dvi", "application/x-dvi");
464
- REGISTER_MIME("dwf", "model/vnd.dwf");
465
- REGISTER_MIME("dwg", "image/vnd.dwg");
466
- REGISTER_MIME("dxf", "image/vnd.dxf");
467
- REGISTER_MIME("dxp", "application/vnd.spotfire.dxp");
468
- REGISTER_MIME("dxr", "application/x-director");
469
- REGISTER_MIME("ecelp4800", "audio/vnd.nuera.ecelp4800");
470
- REGISTER_MIME("ecelp7470", "audio/vnd.nuera.ecelp7470");
471
- REGISTER_MIME("ecelp9600", "audio/vnd.nuera.ecelp9600");
472
- REGISTER_MIME("ecma", "application/ecmascript");
473
- REGISTER_MIME("edm", "application/vnd.novadigm.edm");
474
- REGISTER_MIME("edx", "application/vnd.novadigm.edx");
475
- REGISTER_MIME("efif", "application/vnd.picsel");
476
- REGISTER_MIME("ei6", "application/vnd.pg.osasli");
477
- REGISTER_MIME("elc", "application/octet-stream");
478
- REGISTER_MIME("emf", "application/x-msmetafile");
479
- REGISTER_MIME("eml", "message/rfc822");
480
- REGISTER_MIME("emma", "application/emma+xml");
481
- REGISTER_MIME("emz", "application/x-msmetafile");
482
- REGISTER_MIME("eol", "audio/vnd.digital-winds");
483
- REGISTER_MIME("eot", "application/vnd.ms-fontobject");
484
- REGISTER_MIME("eps", "application/postscript");
485
- REGISTER_MIME("epub", "application/epub+zip");
486
- REGISTER_MIME("es3", "application/vnd.eszigno3+xml");
487
- REGISTER_MIME("esa", "application/vnd.osgi.subsystem");
488
- REGISTER_MIME("esf", "application/vnd.epson.esf");
489
- REGISTER_MIME("et3", "application/vnd.eszigno3+xml");
490
- REGISTER_MIME("etx", "text/x-setext");
491
- REGISTER_MIME("eva", "application/x-eva");
492
- REGISTER_MIME("evy", "application/x-envoy");
493
- REGISTER_MIME("exe", "application/x-msdownload");
494
- REGISTER_MIME("exi", "application/exi");
495
- REGISTER_MIME("ext", "application/vnd.novadigm.ext");
496
- REGISTER_MIME("ez", "application/andrew-inset");
497
- REGISTER_MIME("ez2", "application/vnd.ezpix-album");
498
- REGISTER_MIME("ez3", "application/vnd.ezpix-package");
499
- REGISTER_MIME("f", "text/x-fortran");
500
- REGISTER_MIME("f4v", "video/x-f4v");
501
- REGISTER_MIME("f77", "text/x-fortran");
502
- REGISTER_MIME("f90", "text/x-fortran");
503
- REGISTER_MIME("fbs", "image/vnd.fastbidsheet");
504
- REGISTER_MIME("fcdt", "application/vnd.adobe.formscentral.fcdt");
505
- REGISTER_MIME("fcs", "application/vnd.isac.fcs");
506
- REGISTER_MIME("fdf", "application/vnd.fdf");
507
- REGISTER_MIME("fe_launch", "application/vnd.denovo.fcselayout-link");
508
- REGISTER_MIME("fg5", "application/vnd.fujitsu.oasysgp");
509
- REGISTER_MIME("fgd", "application/x-director");
510
- REGISTER_MIME("fh", "image/x-freehand");
511
- REGISTER_MIME("fh4", "image/x-freehand");
512
- REGISTER_MIME("fh5", "image/x-freehand");
513
- REGISTER_MIME("fh7", "image/x-freehand");
514
- REGISTER_MIME("fhc", "image/x-freehand");
515
- REGISTER_MIME("fig", "application/x-xfig");
516
- REGISTER_MIME("flac", "audio/x-flac");
517
- REGISTER_MIME("fli", "video/x-fli");
518
- REGISTER_MIME("flo", "application/vnd.micrografx.flo");
519
- REGISTER_MIME("flv", "video/x-flv");
520
- REGISTER_MIME("flw", "application/vnd.kde.kivio");
521
- REGISTER_MIME("flx", "text/vnd.fmi.flexstor");
522
- REGISTER_MIME("fly", "text/vnd.fly");
523
- REGISTER_MIME("fm", "application/vnd.framemaker");
524
- REGISTER_MIME("fnc", "application/vnd.frogans.fnc");
525
- REGISTER_MIME("for", "text/x-fortran");
526
- REGISTER_MIME("fpx", "image/vnd.fpx");
527
- REGISTER_MIME("frame", "application/vnd.framemaker");
528
- REGISTER_MIME("fsc", "application/vnd.fsc.weblaunch");
529
- REGISTER_MIME("fst", "image/vnd.fst");
530
- REGISTER_MIME("ftc", "application/vnd.fluxtime.clip");
531
- REGISTER_MIME("fti", "application/vnd.anser-web-funds-transfer-initiation");
532
- REGISTER_MIME("fvt", "video/vnd.fvt");
533
- REGISTER_MIME("fxp", "application/vnd.adobe.fxp");
534
- REGISTER_MIME("fxpl", "application/vnd.adobe.fxp");
535
- REGISTER_MIME("fzs", "application/vnd.fuzzysheet");
536
- REGISTER_MIME("g2w", "application/vnd.geoplan");
537
- REGISTER_MIME("g3", "image/g3fax");
538
- REGISTER_MIME("g3w", "application/vnd.geospace");
539
- REGISTER_MIME("gac", "application/vnd.groove-account");
540
- REGISTER_MIME("gam", "application/x-tads");
541
- REGISTER_MIME("gbr", "application/rpki-ghostbusters");
542
- REGISTER_MIME("gca", "application/x-gca-compressed");
543
- REGISTER_MIME("gdl", "model/vnd.gdl");
544
- REGISTER_MIME("geo", "application/vnd.dynageo");
545
- REGISTER_MIME("gex", "application/vnd.geometry-explorer");
546
- REGISTER_MIME("ggb", "application/vnd.geogebra.file");
547
- REGISTER_MIME("ggt", "application/vnd.geogebra.tool");
548
- REGISTER_MIME("ghf", "application/vnd.groove-help");
549
- REGISTER_MIME("gif", "image/gif");
550
- REGISTER_MIME("gim", "application/vnd.groove-identity-message");
551
- REGISTER_MIME("gml", "application/gml+xml");
552
- REGISTER_MIME("gmx", "application/vnd.gmx");
553
- REGISTER_MIME("gnumeric", "application/x-gnumeric");
554
- REGISTER_MIME("gph", "application/vnd.flographit");
555
- REGISTER_MIME("gpx", "application/gpx+xml");
556
- REGISTER_MIME("gqf", "application/vnd.grafeq");
557
- REGISTER_MIME("gqs", "application/vnd.grafeq");
558
- REGISTER_MIME("gram", "application/srgs");
559
- REGISTER_MIME("gramps", "application/x-gramps-xml");
560
- REGISTER_MIME("gre", "application/vnd.geometry-explorer");
561
- REGISTER_MIME("grv", "application/vnd.groove-injector");
562
- REGISTER_MIME("grxml", "application/srgs+xml");
563
- REGISTER_MIME("gsf", "application/x-font-ghostscript");
564
- REGISTER_MIME("gtar", "application/x-gtar");
565
- REGISTER_MIME("gtm", "application/vnd.groove-tool-message");
566
- REGISTER_MIME("gtw", "model/vnd.gtw");
567
- REGISTER_MIME("gv", "text/vnd.graphviz");
568
- REGISTER_MIME("gxf", "application/gxf");
569
- REGISTER_MIME("gxt", "application/vnd.geonext");
570
- REGISTER_MIME("h", "text/x-c");
571
- REGISTER_MIME("h261", "video/h261");
572
- REGISTER_MIME("h263", "video/h263");
573
- REGISTER_MIME("h264", "video/h264");
574
- REGISTER_MIME("hal", "application/vnd.hal+xml");
575
- REGISTER_MIME("hbci", "application/vnd.hbci");
576
- REGISTER_MIME("hdf", "application/x-hdf");
577
- REGISTER_MIME("hh", "text/x-c");
578
- REGISTER_MIME("hlp", "application/winhlp");
579
- REGISTER_MIME("hpgl", "application/vnd.hp-hpgl");
580
- REGISTER_MIME("hpid", "application/vnd.hp-hpid");
581
- REGISTER_MIME("hps", "application/vnd.hp-hps");
582
- REGISTER_MIME("hqx", "application/mac-binhex40");
583
- REGISTER_MIME("htke", "application/vnd.kenameaapp");
584
- REGISTER_MIME("htm", "text/html");
585
- REGISTER_MIME("html", "text/html");
586
- REGISTER_MIME("hvd", "application/vnd.yamaha.hv-dic");
587
- REGISTER_MIME("hvp", "application/vnd.yamaha.hv-voice");
588
- REGISTER_MIME("hvs", "application/vnd.yamaha.hv-script");
589
- REGISTER_MIME("i2g", "application/vnd.intergeo");
590
- REGISTER_MIME("icc", "application/vnd.iccprofile");
591
- REGISTER_MIME("ice", "x-conference/x-cooltalk");
592
- REGISTER_MIME("icm", "application/vnd.iccprofile");
593
- REGISTER_MIME("ico", "image/x-icon");
594
- REGISTER_MIME("ics", "text/calendar");
595
- REGISTER_MIME("ief", "image/ief");
596
- REGISTER_MIME("ifb", "text/calendar");
597
- REGISTER_MIME("ifm", "application/vnd.shana.informed.formdata");
598
- REGISTER_MIME("iges", "model/iges");
599
- REGISTER_MIME("igl", "application/vnd.igloader");
600
- REGISTER_MIME("igm", "application/vnd.insors.igm");
601
- REGISTER_MIME("igs", "model/iges");
602
- REGISTER_MIME("igx", "application/vnd.micrografx.igx");
603
- REGISTER_MIME("iif", "application/vnd.shana.informed.interchange");
604
- REGISTER_MIME("imp", "application/vnd.accpac.simply.imp");
605
- REGISTER_MIME("ims", "application/vnd.ms-ims");
606
- REGISTER_MIME("in", "text/plain");
607
- REGISTER_MIME("ink", "application/inkml+xml");
608
- REGISTER_MIME("inkml", "application/inkml+xml");
609
- REGISTER_MIME("install", "application/x-install-instructions");
610
- REGISTER_MIME("iota", "application/vnd.astraea-software.iota");
611
- REGISTER_MIME("ipfix", "application/ipfix");
612
- REGISTER_MIME("ipk", "application/vnd.shana.informed.package");
613
- REGISTER_MIME("irm", "application/vnd.ibm.rights-management");
614
- REGISTER_MIME("irp", "application/vnd.irepository.package+xml");
615
- REGISTER_MIME("iso", "application/x-iso9660-image");
616
- REGISTER_MIME("itp", "application/vnd.shana.informed.formtemplate");
617
- REGISTER_MIME("ivp", "application/vnd.immervision-ivp");
618
- REGISTER_MIME("ivu", "application/vnd.immervision-ivu");
619
- REGISTER_MIME("jad", "text/vnd.sun.j2me.app-descriptor");
620
- REGISTER_MIME("jam", "application/vnd.jam");
621
- REGISTER_MIME("jar", "application/java-archive");
622
- REGISTER_MIME("java", "text/x-java-source");
623
- REGISTER_MIME("jisp", "application/vnd.jisp");
624
- REGISTER_MIME("jlt", "application/vnd.hp-jlyt");
625
- REGISTER_MIME("jnlp", "application/x-java-jnlp-file");
626
- REGISTER_MIME("joda", "application/vnd.joost.joda-archive");
627
- REGISTER_MIME("jpe", "image/jpeg");
628
- REGISTER_MIME("jpeg", "image/jpeg");
629
- REGISTER_MIME("jpg", "image/jpeg");
630
- REGISTER_MIME("jpgm", "video/jpm");
631
- REGISTER_MIME("jpgv", "video/jpeg");
632
- REGISTER_MIME("jpm", "video/jpm");
633
- REGISTER_MIME("js", "application/javascript");
634
- REGISTER_MIME("json", "application/json");
635
- REGISTER_MIME("jsonml", "application/jsonml+json");
636
- REGISTER_MIME("kar", "audio/midi");
637
- REGISTER_MIME("karbon", "application/vnd.kde.karbon");
638
- REGISTER_MIME("kfo", "application/vnd.kde.kformula");
639
- REGISTER_MIME("kia", "application/vnd.kidspiration");
640
- REGISTER_MIME("kml", "application/vnd.google-earth.kml+xml");
641
- REGISTER_MIME("kmz", "application/vnd.google-earth.kmz");
642
- REGISTER_MIME("kne", "application/vnd.kinar");
643
- REGISTER_MIME("knp", "application/vnd.kinar");
644
- REGISTER_MIME("kon", "application/vnd.kde.kontour");
645
- REGISTER_MIME("kpr", "application/vnd.kde.kpresenter");
646
- REGISTER_MIME("kpt", "application/vnd.kde.kpresenter");
647
- REGISTER_MIME("kpxx", "application/vnd.ds-keypoint");
648
- REGISTER_MIME("ksp", "application/vnd.kde.kspread");
649
- REGISTER_MIME("ktr", "application/vnd.kahootz");
650
- REGISTER_MIME("ktx", "image/ktx");
651
- REGISTER_MIME("ktz", "application/vnd.kahootz");
652
- REGISTER_MIME("kwd", "application/vnd.kde.kword");
653
- REGISTER_MIME("kwt", "application/vnd.kde.kword");
654
- REGISTER_MIME("lasxml", "application/vnd.las.las+xml");
655
- REGISTER_MIME("latex", "application/x-latex");
656
- REGISTER_MIME("lbd", "application/vnd.llamagraphics.life-balance.desktop");
657
- REGISTER_MIME("lbe",
658
- "application/vnd.llamagraphics.life-balance.exchange+xml");
659
- REGISTER_MIME("les", "application/vnd.hhe.lesson-player");
660
- REGISTER_MIME("lha", "application/x-lzh-compressed");
661
- REGISTER_MIME("link66", "application/vnd.route66.link66+xml");
662
- REGISTER_MIME("list", "text/plain");
663
- REGISTER_MIME("list3820", "application/vnd.ibm.modcap");
664
- REGISTER_MIME("listafp", "application/vnd.ibm.modcap");
665
- REGISTER_MIME("lnk", "application/x-ms-shortcut");
666
- REGISTER_MIME("log", "text/plain");
667
- REGISTER_MIME("lostxml", "application/lost+xml");
668
- REGISTER_MIME("lrf", "application/octet-stream");
669
- REGISTER_MIME("lrm", "application/vnd.ms-lrm");
670
- REGISTER_MIME("ltf", "application/vnd.frogans.ltf");
671
- REGISTER_MIME("lvp", "audio/vnd.lucent.voice");
672
- REGISTER_MIME("lwp", "application/vnd.lotus-wordpro");
673
- REGISTER_MIME("lzh", "application/x-lzh-compressed");
674
- REGISTER_MIME("m13", "application/x-msmediaview");
675
- REGISTER_MIME("m14", "application/x-msmediaview");
676
- REGISTER_MIME("m1v", "video/mpeg");
677
- REGISTER_MIME("m21", "application/mp21");
678
- REGISTER_MIME("m2a", "audio/mpeg");
679
- REGISTER_MIME("m2v", "video/mpeg");
680
- REGISTER_MIME("m3a", "audio/mpeg");
681
- REGISTER_MIME("m3u", "audio/x-mpegurl");
682
- REGISTER_MIME("m3u8", "application/vnd.apple.mpegurl");
683
- REGISTER_MIME("m4a", "audio/mp4");
684
- REGISTER_MIME("m4u", "video/vnd.mpegurl");
685
- REGISTER_MIME("m4v", "video/x-m4v");
686
- REGISTER_MIME("ma", "application/mathematica");
687
- REGISTER_MIME("mads", "application/mads+xml");
688
- REGISTER_MIME("mag", "application/vnd.ecowin.chart");
689
- REGISTER_MIME("maker", "application/vnd.framemaker");
690
- REGISTER_MIME("man", "text/troff");
691
- REGISTER_MIME("mar", "application/octet-stream");
692
- REGISTER_MIME("markdown", "text/markdown");
693
- REGISTER_MIME("mathml", "application/mathml+xml");
694
- REGISTER_MIME("mb", "application/mathematica");
695
- REGISTER_MIME("mbk", "application/vnd.mobius.mbk");
696
- REGISTER_MIME("mbox", "application/mbox");
697
- REGISTER_MIME("mc1", "application/vnd.medcalcdata");
698
- REGISTER_MIME("mcd", "application/vnd.mcd");
699
- REGISTER_MIME("mcurl", "text/vnd.curl.mcurl");
700
- REGISTER_MIME("md", "text/markdown");
701
- REGISTER_MIME("mdb", "application/x-msaccess");
702
- REGISTER_MIME("mdi", "image/vnd.ms-modi");
703
- REGISTER_MIME("me", "text/troff");
704
- REGISTER_MIME("mesh", "model/mesh");
705
- REGISTER_MIME("meta4", "application/metalink4+xml");
706
- REGISTER_MIME("metalink", "application/metalink+xml");
707
- REGISTER_MIME("mets", "application/mets+xml");
708
- REGISTER_MIME("mfm", "application/vnd.mfmp");
709
- REGISTER_MIME("mft", "application/rpki-manifest");
710
- REGISTER_MIME("mgp", "application/vnd.osgeo.mapguide.package");
711
- REGISTER_MIME("mgz", "application/vnd.proteus.magazine");
712
- REGISTER_MIME("mid", "audio/midi");
713
- REGISTER_MIME("midi", "audio/midi");
714
- REGISTER_MIME("mie", "application/x-mie");
715
- REGISTER_MIME("mif", "application/vnd.mif");
716
- REGISTER_MIME("mime", "message/rfc822");
717
- REGISTER_MIME("mj2", "video/mj2");
718
- REGISTER_MIME("mjp2", "video/mj2");
719
- REGISTER_MIME("mk3d", "video/x-matroska");
720
- REGISTER_MIME("mka", "audio/x-matroska");
721
- REGISTER_MIME("mks", "video/x-matroska");
722
- REGISTER_MIME("mkv", "video/x-matroska");
723
- REGISTER_MIME("mlp", "application/vnd.dolby.mlp");
724
- REGISTER_MIME("mmd", "application/vnd.chipnuts.karaoke-mmd");
725
- REGISTER_MIME("mmf", "application/vnd.smaf");
726
- REGISTER_MIME("mmr", "image/vnd.fujixerox.edmics-mmr");
727
- REGISTER_MIME("mng", "video/x-mng");
728
- REGISTER_MIME("mny", "application/x-msmoney");
729
- REGISTER_MIME("mobi", "application/x-mobipocket-ebook");
730
- REGISTER_MIME("mods", "application/mods+xml");
731
- REGISTER_MIME("mov", "video/quicktime");
732
- REGISTER_MIME("movie", "video/x-sgi-movie");
733
- REGISTER_MIME("mp2", "audio/mpeg");
734
- REGISTER_MIME("mp21", "application/mp21");
735
- REGISTER_MIME("mp2a", "audio/mpeg");
736
- REGISTER_MIME("mp3", "audio/mpeg");
737
- REGISTER_MIME("mp4", "video/mp4");
738
- REGISTER_MIME("mp4a", "audio/mp4");
739
- REGISTER_MIME("mp4s", "application/mp4");
740
- REGISTER_MIME("mp4v", "video/mp4");
741
- REGISTER_MIME("mpc", "application/vnd.mophun.certificate");
742
- REGISTER_MIME("mpe", "video/mpeg");
743
- REGISTER_MIME("mpeg", "video/mpeg");
744
- REGISTER_MIME("mpg", "video/mpeg");
745
- REGISTER_MIME("mpg4", "video/mp4");
746
- REGISTER_MIME("mpga", "audio/mpeg");
747
- REGISTER_MIME("mpkg", "application/vnd.apple.installer+xml");
748
- REGISTER_MIME("mpm", "application/vnd.blueice.multipass");
749
- REGISTER_MIME("mpn", "application/vnd.mophun.application");
750
- REGISTER_MIME("mpp", "application/vnd.ms-project");
751
- REGISTER_MIME("mpt", "application/vnd.ms-project");
752
- REGISTER_MIME("mpy", "application/vnd.ibm.minipay");
753
- REGISTER_MIME("mqy", "application/vnd.mobius.mqy");
754
- REGISTER_MIME("mrc", "application/marc");
755
- REGISTER_MIME("mrcx", "application/marcxml+xml");
756
- REGISTER_MIME("ms", "text/troff");
757
- REGISTER_MIME("mscml", "application/mediaservercontrol+xml");
758
- REGISTER_MIME("mseed", "application/vnd.fdsn.mseed");
759
- REGISTER_MIME("mseq", "application/vnd.mseq");
760
- REGISTER_MIME("msf", "application/vnd.epson.msf");
761
- REGISTER_MIME("msh", "model/mesh");
762
- REGISTER_MIME("msi", "application/x-msdownload");
763
- REGISTER_MIME("msl", "application/vnd.mobius.msl");
764
- REGISTER_MIME("msty", "application/vnd.muvee.style");
765
- REGISTER_MIME("mts", "model/vnd.mts");
766
- REGISTER_MIME("mus", "application/vnd.musician");
767
- REGISTER_MIME("musicxml", "application/vnd.recordare.musicxml+xml");
768
- REGISTER_MIME("mvb", "application/x-msmediaview");
769
- REGISTER_MIME("mwf", "application/vnd.mfer");
770
- REGISTER_MIME("mxf", "application/mxf");
771
- REGISTER_MIME("mxl", "application/vnd.recordare.musicxml");
772
- REGISTER_MIME("mxml", "application/xv+xml");
773
- REGISTER_MIME("mxs", "application/vnd.triscape.mxs");
774
- REGISTER_MIME("mxu", "video/vnd.mpegurl");
775
- REGISTER_MIME("n-gage", "application/vnd.nokia.n-gage.symbian.install");
776
- REGISTER_MIME("n3", "text/n3");
777
- REGISTER_MIME("nb", "application/mathematica");
778
- REGISTER_MIME("nbp", "application/vnd.wolfram.player");
779
- REGISTER_MIME("nc", "application/x-netcdf");
780
- REGISTER_MIME("ncx", "application/x-dtbncx+xml");
781
- REGISTER_MIME("nfo", "text/x-nfo");
782
- REGISTER_MIME("ngdat", "application/vnd.nokia.n-gage.data");
783
- REGISTER_MIME("nitf", "application/vnd.nitf");
784
- REGISTER_MIME("nlu", "application/vnd.neurolanguage.nlu");
785
- REGISTER_MIME("nml", "application/vnd.enliven");
786
- REGISTER_MIME("nnd", "application/vnd.noblenet-directory");
787
- REGISTER_MIME("nns", "application/vnd.noblenet-sealer");
788
- REGISTER_MIME("nnw", "application/vnd.noblenet-web");
789
- REGISTER_MIME("npx", "image/vnd.net-fpx");
790
- REGISTER_MIME("nsc", "application/x-conference");
791
- REGISTER_MIME("nsf", "application/vnd.lotus-notes");
792
- REGISTER_MIME("ntf", "application/vnd.nitf");
793
- REGISTER_MIME("nzb", "application/x-nzb");
794
- REGISTER_MIME("oa2", "application/vnd.fujitsu.oasys2");
795
- REGISTER_MIME("oa3", "application/vnd.fujitsu.oasys3");
796
- REGISTER_MIME("oas", "application/vnd.fujitsu.oasys");
797
- REGISTER_MIME("obd", "application/x-msbinder");
798
- REGISTER_MIME("obj", "application/x-tgif");
799
- REGISTER_MIME("oda", "application/oda");
800
- REGISTER_MIME("odb", "application/vnd.oasis.opendocument.database");
801
- REGISTER_MIME("odc", "application/vnd.oasis.opendocument.chart");
802
- REGISTER_MIME("odf", "application/vnd.oasis.opendocument.formula");
803
- REGISTER_MIME("odft", "application/vnd.oasis.opendocument.formula-template");
804
- REGISTER_MIME("odg", "application/vnd.oasis.opendocument.graphics");
805
- REGISTER_MIME("odi", "application/vnd.oasis.opendocument.image");
806
- REGISTER_MIME("odm", "application/vnd.oasis.opendocument.text-master");
807
- REGISTER_MIME("odp", "application/vnd.oasis.opendocument.presentation");
808
- REGISTER_MIME("ods", "application/vnd.oasis.opendocument.spreadsheet");
809
- REGISTER_MIME("odt", "application/vnd.oasis.opendocument.text");
810
- REGISTER_MIME("oga", "audio/ogg");
811
- REGISTER_MIME("ogg", "audio/ogg");
812
- REGISTER_MIME("ogv", "video/ogg");
813
- REGISTER_MIME("ogx", "application/ogg");
814
- REGISTER_MIME("omdoc", "application/omdoc+xml");
815
- REGISTER_MIME("onepkg", "application/onenote");
816
- REGISTER_MIME("onetmp", "application/onenote");
817
- REGISTER_MIME("onetoc", "application/onenote");
818
- REGISTER_MIME("onetoc2", "application/onenote");
819
- REGISTER_MIME("opf", "application/oebps-package+xml");
820
- REGISTER_MIME("opml", "text/x-opml");
821
- REGISTER_MIME("oprc", "application/vnd.palm");
822
- REGISTER_MIME("org", "application/vnd.lotus-organizer");
823
- REGISTER_MIME("osf", "application/vnd.yamaha.openscoreformat");
824
- REGISTER_MIME("osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml");
825
- REGISTER_MIME("otc", "application/vnd.oasis.opendocument.chart-template");
826
- REGISTER_MIME("otf", "application/x-font-otf");
827
- REGISTER_MIME("otg", "application/vnd.oasis.opendocument.graphics-template");
828
- REGISTER_MIME("oth", "application/vnd.oasis.opendocument.text-web");
829
- REGISTER_MIME("oti", "application/vnd.oasis.opendocument.image-template");
830
- REGISTER_MIME("otp",
831
- "application/vnd.oasis.opendocument.presentation-template");
832
- REGISTER_MIME("ots",
833
- "application/vnd.oasis.opendocument.spreadsheet-template");
834
- REGISTER_MIME("ott", "application/vnd.oasis.opendocument.text-template");
835
- REGISTER_MIME("oxps", "application/oxps");
836
- REGISTER_MIME("oxt", "application/vnd.openofficeorg.extension");
837
- REGISTER_MIME("p", "text/x-pascal");
838
- REGISTER_MIME("p10", "application/pkcs10");
839
- REGISTER_MIME("p12", "application/x-pkcs12");
840
- REGISTER_MIME("p7b", "application/x-pkcs7-certificates");
841
- REGISTER_MIME("p7c", "application/pkcs7-mime");
842
- REGISTER_MIME("p7m", "application/pkcs7-mime");
843
- REGISTER_MIME("p7r", "application/x-pkcs7-certreqresp");
844
- REGISTER_MIME("p7s", "application/pkcs7-signature");
845
- REGISTER_MIME("p8", "application/pkcs8");
846
- REGISTER_MIME("pas", "text/x-pascal");
847
- REGISTER_MIME("paw", "application/vnd.pawaafile");
848
- REGISTER_MIME("pbd", "application/vnd.powerbuilder6");
849
- REGISTER_MIME("pbm", "image/x-portable-bitmap");
850
- REGISTER_MIME("pcap", "application/vnd.tcpdump.pcap");
851
- REGISTER_MIME("pcf", "application/x-font-pcf");
852
- REGISTER_MIME("pcl", "application/vnd.hp-pcl");
853
- REGISTER_MIME("pclxl", "application/vnd.hp-pclxl");
854
- REGISTER_MIME("pct", "image/x-pict");
855
- REGISTER_MIME("pcurl", "application/vnd.curl.pcurl");
856
- REGISTER_MIME("pcx", "image/x-pcx");
857
- REGISTER_MIME("pdb", "application/vnd.palm");
858
- REGISTER_MIME("pdf", "application/pdf");
859
- REGISTER_MIME("pfa", "application/x-font-type1");
860
- REGISTER_MIME("pfb", "application/x-font-type1");
861
- REGISTER_MIME("pfm", "application/x-font-type1");
862
- REGISTER_MIME("pfr", "application/font-tdpfr");
863
- REGISTER_MIME("pfx", "application/x-pkcs12");
864
- REGISTER_MIME("pgm", "image/x-portable-graymap");
865
- REGISTER_MIME("pgn", "application/x-chess-pgn");
866
- REGISTER_MIME("pgp", "application/pgp-encrypted");
867
- REGISTER_MIME("pic", "image/x-pict");
868
- REGISTER_MIME("pkg", "application/octet-stream");
869
- REGISTER_MIME("pki", "application/pkixcmp");
870
- REGISTER_MIME("pkipath", "application/pkix-pkipath");
871
- REGISTER_MIME("plb", "application/vnd.3gpp.pic-bw-large");
872
- REGISTER_MIME("plc", "application/vnd.mobius.plc");
873
- REGISTER_MIME("plf", "application/vnd.pocketlearn");
874
- REGISTER_MIME("pls", "application/pls+xml");
875
- REGISTER_MIME("pml", "application/vnd.ctc-posml");
876
- REGISTER_MIME("png", "image/png");
877
- REGISTER_MIME("pnm", "image/x-portable-anymap");
878
- REGISTER_MIME("portpkg", "application/vnd.macports.portpkg");
879
- REGISTER_MIME("pot", "application/vnd.ms-powerpoint");
880
- REGISTER_MIME("potm",
881
- "application/vnd.ms-powerpoint.template.macroenabled.12");
882
- REGISTER_MIME(
883
- "potx",
884
- "application/vnd.openxmlformats-officedocument.presentationml.template");
885
- REGISTER_MIME("ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12");
886
- REGISTER_MIME("ppd", "application/vnd.cups-ppd");
887
- REGISTER_MIME("ppm", "image/x-portable-pixmap");
888
- REGISTER_MIME("pps", "application/vnd.ms-powerpoint");
889
- REGISTER_MIME("ppsm",
890
- "application/vnd.ms-powerpoint.slideshow.macroenabled.12");
891
- REGISTER_MIME(
892
- "ppsx",
893
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow");
894
- REGISTER_MIME("ppt", "application/vnd.ms-powerpoint");
895
- REGISTER_MIME("pptm",
896
- "application/vnd.ms-powerpoint.presentation.macroenabled.12");
897
- REGISTER_MIME("pqa", "application/vnd.palm");
898
- REGISTER_MIME("prc", "application/x-mobipocket-ebook");
899
- REGISTER_MIME("pre", "application/vnd.lotus-freelance");
900
- REGISTER_MIME("prf", "application/pics-rules");
901
- REGISTER_MIME("ps", "application/postscript");
902
- REGISTER_MIME("psb", "application/vnd.3gpp.pic-bw-small");
903
- REGISTER_MIME("psd", "image/vnd.adobe.photoshop");
904
- REGISTER_MIME("psf", "application/x-font-linux-psf");
905
- REGISTER_MIME("pskcxml", "application/pskc+xml");
906
- REGISTER_MIME("ptid", "application/vnd.pvi.ptid1");
907
- REGISTER_MIME("pub", "application/x-mspublisher");
908
- REGISTER_MIME("pvb", "application/vnd.3gpp.pic-bw-var");
909
- REGISTER_MIME("pwn", "application/vnd.3m.post-it-notes");
910
- REGISTER_MIME("pya", "audio/vnd.ms-playready.media.pya");
911
- REGISTER_MIME("pyv", "video/vnd.ms-playready.media.pyv");
912
- REGISTER_MIME("qam", "application/vnd.epson.quickanime");
913
- REGISTER_MIME("qbo", "application/vnd.intu.qbo");
914
- REGISTER_MIME("qfx", "application/vnd.intu.qfx");
915
- REGISTER_MIME("qps", "application/vnd.publishare-delta-tree");
916
- REGISTER_MIME("qt", "video/quicktime");
917
- REGISTER_MIME("qwd", "application/vnd.quark.quarkxpress");
918
- REGISTER_MIME("qwt", "application/vnd.quark.quarkxpress");
919
- REGISTER_MIME("qxb", "application/vnd.quark.quarkxpress");
920
- REGISTER_MIME("qxd", "application/vnd.quark.quarkxpress");
921
- REGISTER_MIME("qxl", "application/vnd.quark.quarkxpress");
922
- REGISTER_MIME("qxt", "application/vnd.quark.quarkxpress");
923
- REGISTER_MIME("ra", "audio/x-pn-realaudio");
924
- REGISTER_MIME("ram", "audio/x-pn-realaudio");
925
- REGISTER_MIME("rar", "application/x-rar-compressed");
926
- REGISTER_MIME("ras", "image/x-cmu-raster");
927
- REGISTER_MIME("rcprofile", "application/vnd.ipunplugged.rcprofile");
928
- REGISTER_MIME("rdf", "application/rdf+xml");
929
- REGISTER_MIME("rdz", "application/vnd.data-vision.rdz");
930
- REGISTER_MIME("rep", "application/vnd.businessobjects");
931
- REGISTER_MIME("res", "application/x-dtbresource+xml");
932
- REGISTER_MIME("rgb", "image/x-rgb");
933
- REGISTER_MIME("rif", "application/reginfo+xml");
934
- REGISTER_MIME("rip", "audio/vnd.rip");
935
- REGISTER_MIME("ris", "application/x-research-info-systems");
936
- REGISTER_MIME("rl", "application/resource-lists+xml");
937
- REGISTER_MIME("rlc", "image/vnd.fujixerox.edmics-rlc");
938
- REGISTER_MIME("rld", "application/resource-lists-diff+xml");
939
- REGISTER_MIME("rm", "application/vnd.rn-realmedia");
940
- REGISTER_MIME("rmi", "audio/midi");
941
- REGISTER_MIME("rmp", "audio/x-pn-realaudio-plugin");
942
- REGISTER_MIME("rms", "application/vnd.jcp.javame.midlet-rms");
943
- REGISTER_MIME("rmvb", "application/vnd.rn-realmedia-vbr");
944
- REGISTER_MIME("rnc", "application/relax-ng-compact-syntax");
945
- REGISTER_MIME("roa", "application/rpki-roa");
946
- REGISTER_MIME("roff", "text/troff");
947
- REGISTER_MIME("rp9", "application/vnd.cloanto.rp9");
948
- REGISTER_MIME("rpss", "application/vnd.nokia.radio-presets");
949
- REGISTER_MIME("rpst", "application/vnd.nokia.radio-preset");
950
- REGISTER_MIME("rq", "application/sparql-query");
951
- REGISTER_MIME("rs", "application/rls-services+xml");
952
- REGISTER_MIME("rsd", "application/rsd+xml");
953
- REGISTER_MIME("rss", "application/rss+xml");
954
- REGISTER_MIME("rtf", "application/rtf");
955
- REGISTER_MIME("rtx", "text/richtext");
956
- REGISTER_MIME("s", "text/x-asm");
957
- REGISTER_MIME("s3m", "audio/s3m");
958
- REGISTER_MIME("saf", "application/vnd.yamaha.smaf-audio");
959
- REGISTER_MIME("sbml", "application/sbml+xml");
960
- REGISTER_MIME("sc", "application/vnd.ibm.secure-container");
961
- REGISTER_MIME("scd", "application/x-msschedule");
962
- REGISTER_MIME("scm", "application/vnd.lotus-screencam");
963
- REGISTER_MIME("scq", "application/scvp-cv-request");
964
- REGISTER_MIME("scs", "application/scvp-cv-response");
965
- REGISTER_MIME("scurl", "text/vnd.curl.scurl");
966
- REGISTER_MIME("sda", "application/vnd.stardivision.draw");
967
- REGISTER_MIME("sdc", "application/vnd.stardivision.calc");
968
- REGISTER_MIME("sdd", "application/vnd.stardivision.impress");
969
- REGISTER_MIME("sdkd", "application/vnd.solent.sdkm+xml");
970
- REGISTER_MIME("sdkm", "application/vnd.solent.sdkm+xml");
971
- REGISTER_MIME("sdp", "application/sdp");
972
- REGISTER_MIME("sdw", "application/vnd.stardivision.writer");
973
- REGISTER_MIME("see", "application/vnd.seemail");
974
- REGISTER_MIME("seed", "application/vnd.fdsn.seed");
975
- REGISTER_MIME("sema", "application/vnd.sema");
976
- REGISTER_MIME("semd", "application/vnd.semd");
977
- REGISTER_MIME("semf", "application/vnd.semf");
978
- REGISTER_MIME("ser", "application/java-serialized-object");
979
- REGISTER_MIME("setpay", "application/set-payment-initiation");
980
- REGISTER_MIME("setreg", "application/set-registration-initiation");
981
- REGISTER_MIME("sfd-hdstx", "application/vnd.hydrostatix.sof-data");
982
- REGISTER_MIME("sfs", "application/vnd.spotfire.sfs");
983
- REGISTER_MIME("sfv", "text/x-sfv");
984
- REGISTER_MIME("sgi", "image/sgi");
985
- REGISTER_MIME("sgl", "application/vnd.stardivision.writer-global");
986
- REGISTER_MIME("sgm", "text/sgml");
987
- REGISTER_MIME("sgml", "text/sgml");
988
- REGISTER_MIME("sh", "application/x-sh");
989
- REGISTER_MIME("shar", "application/x-shar");
990
- REGISTER_MIME("shf", "application/shf+xml");
991
- REGISTER_MIME("sid", "image/x-mrsid-image");
992
- REGISTER_MIME("sig", "application/pgp-signature");
993
- REGISTER_MIME("sil", "audio/silk");
994
- REGISTER_MIME("silo", "model/mesh");
995
- REGISTER_MIME("sis", "application/vnd.symbian.install");
996
- REGISTER_MIME("sisx", "application/vnd.symbian.install");
997
- REGISTER_MIME("sit", "application/x-stuffit");
998
- REGISTER_MIME("sitx", "application/x-stuffitx");
999
- REGISTER_MIME("skd", "application/vnd.koan");
1000
- REGISTER_MIME("skm", "application/vnd.koan");
1001
- REGISTER_MIME("skp", "application/vnd.koan");
1002
- REGISTER_MIME("skt", "application/vnd.koan");
1003
- REGISTER_MIME("sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12");
1004
- REGISTER_MIME(
1005
- "sldx",
1006
- "application/vnd.openxmlformats-officedocument.presentationml.slide");
1007
- REGISTER_MIME("slt", "application/vnd.epson.salt");
1008
- REGISTER_MIME("sm", "application/vnd.stepmania.stepchart");
1009
- REGISTER_MIME("smf", "application/vnd.stardivision.math");
1010
- REGISTER_MIME("smi", "application/smil+xml");
1011
- REGISTER_MIME("smil", "application/smil+xml");
1012
- REGISTER_MIME("smv", "video/x-smv");
1013
- REGISTER_MIME("smzip", "application/vnd.stepmania.package");
1014
- REGISTER_MIME("snd", "audio/basic");
1015
- REGISTER_MIME("snf", "application/x-font-snf");
1016
- REGISTER_MIME("so", "application/octet-stream");
1017
- REGISTER_MIME("spc", "application/x-pkcs7-certificates");
1018
- REGISTER_MIME("spf", "application/vnd.yamaha.smaf-phrase");
1019
- REGISTER_MIME("spl", "application/x-futuresplash");
1020
- REGISTER_MIME("spot", "text/vnd.in3d.spot");
1021
- REGISTER_MIME("spp", "application/scvp-vp-response");
1022
- REGISTER_MIME("spq", "application/scvp-vp-request");
1023
- REGISTER_MIME("spx", "audio/ogg");
1024
- REGISTER_MIME("sql", "application/x-sql");
1025
- REGISTER_MIME("src", "application/x-wais-source");
1026
- REGISTER_MIME("srt", "application/x-subrip");
1027
- REGISTER_MIME("sru", "application/sru+xml");
1028
- REGISTER_MIME("srx", "application/sparql-results+xml");
1029
- REGISTER_MIME("ssdl", "application/ssdl+xml");
1030
- REGISTER_MIME("sse", "application/vnd.kodak-descriptor");
1031
- REGISTER_MIME("ssf", "application/vnd.epson.ssf");
1032
- REGISTER_MIME("ssml", "application/ssml+xml");
1033
- REGISTER_MIME("st", "application/vnd.sailingtracker.track");
1034
- REGISTER_MIME("stc", "application/vnd.sun.xml.calc.template");
1035
- REGISTER_MIME("std", "application/vnd.sun.xml.draw.template");
1036
- REGISTER_MIME("stf", "application/vnd.wt.stf");
1037
- REGISTER_MIME("sti", "application/vnd.sun.xml.impress.template");
1038
- REGISTER_MIME("stk", "application/hyperstudio");
1039
- REGISTER_MIME("stl", "application/vnd.ms-pki.stl");
1040
- REGISTER_MIME("str", "application/vnd.pg.format");
1041
- REGISTER_MIME("stw", "application/vnd.sun.xml.writer.template");
1042
- REGISTER_MIME("sub", "text/vnd.dvb.subtitle");
1043
- REGISTER_MIME("sus", "application/vnd.sus-calendar");
1044
- REGISTER_MIME("susp", "application/vnd.sus-calendar");
1045
- REGISTER_MIME("sv4cpio", "application/x-sv4cpio");
1046
- REGISTER_MIME("sv4crc", "application/x-sv4crc");
1047
- REGISTER_MIME("svc", "application/vnd.dvb.service");
1048
- REGISTER_MIME("svd", "application/vnd.svd");
1049
- REGISTER_MIME("svg", "image/svg+xml");
1050
- REGISTER_MIME("svgz", "image/svg+xml");
1051
- REGISTER_MIME("swa", "application/x-director");
1052
- REGISTER_MIME("swf", "application/x-shockwave-flash");
1053
- REGISTER_MIME("swi", "application/vnd.aristanetworks.swi");
1054
- REGISTER_MIME("sxc", "application/vnd.sun.xml.calc");
1055
- REGISTER_MIME("sxd", "application/vnd.sun.xml.draw");
1056
- REGISTER_MIME("sxg", "application/vnd.sun.xml.writer.global");
1057
- REGISTER_MIME("sxi", "application/vnd.sun.xml.impress");
1058
- REGISTER_MIME("sxm", "application/vnd.sun.xml.math");
1059
- REGISTER_MIME("sxw", "application/vnd.sun.xml.writer");
1060
- REGISTER_MIME("t", "text/troff");
1061
- REGISTER_MIME("t3", "application/x-t3vm-image");
1062
- REGISTER_MIME("taglet", "application/vnd.mynfc");
1063
- REGISTER_MIME("tao", "application/vnd.tao.intent-module-archive");
1064
- REGISTER_MIME("tar", "application/x-tar");
1065
- REGISTER_MIME("tcap", "application/vnd.3gpp2.tcap");
1066
- REGISTER_MIME("tcl", "application/x-tcl");
1067
- REGISTER_MIME("teacher", "application/vnd.smart.teacher");
1068
- REGISTER_MIME("tei", "application/tei+xml");
1069
- REGISTER_MIME("teicorpus", "application/tei+xml");
1070
- REGISTER_MIME("tex", "application/x-tex");
1071
- REGISTER_MIME("texi", "application/x-texinfo");
1072
- REGISTER_MIME("texinfo", "application/x-texinfo");
1073
- REGISTER_MIME("text", "text/plain");
1074
- REGISTER_MIME("tfi", "application/thraud+xml");
1075
- REGISTER_MIME("tfm", "application/x-tex-tfm");
1076
- REGISTER_MIME("tga", "image/x-tga");
1077
- REGISTER_MIME("thmx", "application/vnd.ms-officetheme");
1078
- REGISTER_MIME("tif", "image/tiff");
1079
- REGISTER_MIME("tiff", "image/tiff");
1080
- REGISTER_MIME("tmo", "application/vnd.tmobile-livetv");
1081
- REGISTER_MIME("torrent", "application/x-bittorrent");
1082
- REGISTER_MIME("tpl", "application/vnd.groove-tool-template");
1083
- REGISTER_MIME("tpt", "application/vnd.trid.tpt");
1084
- REGISTER_MIME("tr", "text/troff");
1085
- REGISTER_MIME("tra", "application/vnd.trueapp");
1086
- REGISTER_MIME("trm", "application/x-msterminal");
1087
- REGISTER_MIME("tsd", "application/timestamped-data");
1088
- REGISTER_MIME("tsv", "text/tab-separated-values");
1089
- REGISTER_MIME("ttc", "application/x-font-ttf");
1090
- REGISTER_MIME("ttf", "application/x-font-ttf");
1091
- REGISTER_MIME("ttl", "text/turtle");
1092
- REGISTER_MIME("twd", "application/vnd.simtech-mindmapper");
1093
- REGISTER_MIME("twds", "application/vnd.simtech-mindmapper");
1094
- REGISTER_MIME("txd", "application/vnd.genomatix.tuxedo");
1095
- REGISTER_MIME("txf", "application/vnd.mobius.txf");
1096
- REGISTER_MIME("txt", "text/plain");
1097
- REGISTER_MIME("u32", "application/x-authorware-bin");
1098
- REGISTER_MIME("udeb", "application/x-debian-package");
1099
- REGISTER_MIME("ufd", "application/vnd.ufdl");
1100
- REGISTER_MIME("ufdl", "application/vnd.ufdl");
1101
- REGISTER_MIME("ulx", "application/x-glulx");
1102
- REGISTER_MIME("umj", "application/vnd.umajin");
1103
- REGISTER_MIME("unityweb", "application/vnd.unity");
1104
- REGISTER_MIME("uoml", "application/vnd.uoml+xml");
1105
- REGISTER_MIME("uri", "text/uri-list");
1106
- REGISTER_MIME("uris", "text/uri-list");
1107
- REGISTER_MIME("urls", "text/uri-list");
1108
- REGISTER_MIME("ustar", "application/x-ustar");
1109
- REGISTER_MIME("utz", "application/vnd.uiq.theme");
1110
- REGISTER_MIME("uu", "text/x-uuencode");
1111
- REGISTER_MIME("uva", "audio/vnd.dece.audio");
1112
- REGISTER_MIME("uvd", "application/vnd.dece.data");
1113
- REGISTER_MIME("uvf", "application/vnd.dece.data");
1114
- REGISTER_MIME("uvg", "image/vnd.dece.graphic");
1115
- REGISTER_MIME("uvh", "video/vnd.dece.hd");
1116
- REGISTER_MIME("uvi", "image/vnd.dece.graphic");
1117
- REGISTER_MIME("uvm", "video/vnd.dece.mobile");
1118
- REGISTER_MIME("uvp", "video/vnd.dece.pd");
1119
- REGISTER_MIME("uvs", "video/vnd.dece.sd");
1120
- REGISTER_MIME("uvt", "application/vnd.dece.ttml+xml");
1121
- REGISTER_MIME("uvu", "video/vnd.uvvu.mp4");
1122
- REGISTER_MIME("uvv", "video/vnd.dece.video");
1123
- REGISTER_MIME("uvva", "audio/vnd.dece.audio");
1124
- REGISTER_MIME("uvvd", "application/vnd.dece.data");
1125
- REGISTER_MIME("uvvf", "application/vnd.dece.data");
1126
- REGISTER_MIME("uvvg", "image/vnd.dece.graphic");
1127
- REGISTER_MIME("uvvh", "video/vnd.dece.hd");
1128
- REGISTER_MIME("uvvi", "image/vnd.dece.graphic");
1129
- REGISTER_MIME("uvvm", "video/vnd.dece.mobile");
1130
- REGISTER_MIME("uvvp", "video/vnd.dece.pd");
1131
- REGISTER_MIME("uvvs", "video/vnd.dece.sd");
1132
- REGISTER_MIME("uvvt", "application/vnd.dece.ttml+xml");
1133
- REGISTER_MIME("uvvu", "video/vnd.uvvu.mp4");
1134
- REGISTER_MIME("uvvv", "video/vnd.dece.video");
1135
- REGISTER_MIME("uvvx", "application/vnd.dece.unspecified");
1136
- REGISTER_MIME("uvvz", "application/vnd.dece.zip");
1137
- REGISTER_MIME("uvx", "application/vnd.dece.unspecified");
1138
- REGISTER_MIME("uvz", "application/vnd.dece.zip");
1139
- REGISTER_MIME("vcard", "text/vcard");
1140
- REGISTER_MIME("vcd", "application/x-cdlink");
1141
- REGISTER_MIME("vcf", "text/x-vcard");
1142
- REGISTER_MIME("vcg", "application/vnd.groove-vcard");
1143
- REGISTER_MIME("vcs", "text/x-vcalendar");
1144
- REGISTER_MIME("vcx", "application/vnd.vcx");
1145
- REGISTER_MIME("vis", "application/vnd.visionary");
1146
- REGISTER_MIME("viv", "video/vnd.vivo");
1147
- REGISTER_MIME("vob", "video/x-ms-vob");
1148
- REGISTER_MIME("vor", "application/vnd.stardivision.writer");
1149
- REGISTER_MIME("vox", "application/x-authorware-bin");
1150
- REGISTER_MIME("vrml", "model/vrml");
1151
- REGISTER_MIME("vsd", "application/vnd.visio");
1152
- REGISTER_MIME("vsf", "application/vnd.vsf");
1153
- REGISTER_MIME("vss", "application/vnd.visio");
1154
- REGISTER_MIME("vst", "application/vnd.visio");
1155
- REGISTER_MIME("vsw", "application/vnd.visio");
1156
- REGISTER_MIME("vtu", "model/vnd.vtu");
1157
- REGISTER_MIME("vxml", "application/voicexml+xml");
1158
- REGISTER_MIME("w3d", "application/x-director");
1159
- REGISTER_MIME("wad", "application/x-doom");
1160
- REGISTER_MIME("wav", "audio/x-wav");
1161
- REGISTER_MIME("wax", "audio/x-ms-wax");
1162
- REGISTER_MIME("wbmp", "image/vnd.wap.wbmp");
1163
- REGISTER_MIME("wbs", "application/vnd.criticaltools.wbs+xml");
1164
- REGISTER_MIME("wbxml", "application/vnd.wap.wbxml");
1165
- REGISTER_MIME("wcm", "application/vnd.ms-works");
1166
- REGISTER_MIME("wdb", "application/vnd.ms-works");
1167
- REGISTER_MIME("wdp", "image/vnd.ms-photo");
1168
- REGISTER_MIME("weba", "audio/webm");
1169
- REGISTER_MIME("webm", "video/webm");
1170
- REGISTER_MIME("webp", "image/webp");
1171
- REGISTER_MIME("wg", "application/vnd.pmi.widget");
1172
- REGISTER_MIME("wgt", "application/widget");
1173
- REGISTER_MIME("wks", "application/vnd.ms-works");
1174
- REGISTER_MIME("wm", "video/x-ms-wm");
1175
- REGISTER_MIME("wma", "audio/x-ms-wma");
1176
- REGISTER_MIME("wmd", "application/x-ms-wmd");
1177
- REGISTER_MIME("wmf", "application/x-msmetafile");
1178
- REGISTER_MIME("wml", "text/vnd.wap.wml");
1179
- REGISTER_MIME("wmlc", "application/vnd.wap.wmlc");
1180
- REGISTER_MIME("wmls", "text/vnd.wap.wmlscript");
1181
- REGISTER_MIME("wmlsc", "application/vnd.wap.wmlscriptc");
1182
- REGISTER_MIME("wmv", "video/x-ms-wmv");
1183
- REGISTER_MIME("wmx", "video/x-ms-wmx");
1184
- REGISTER_MIME("wmz", "application/x-ms-wmz");
1185
- // REGISTER_MIME("wmz", "application/x-msmetafile");
1186
- REGISTER_MIME("woff", "application/font-woff");
1187
- REGISTER_MIME("wpd", "application/vnd.wordperfect");
1188
- REGISTER_MIME("wpl", "application/vnd.ms-wpl");
1189
- REGISTER_MIME("wps", "application/vnd.ms-works");
1190
- REGISTER_MIME("wqd", "application/vnd.wqd");
1191
- REGISTER_MIME("wri", "application/x-mswrite");
1192
- REGISTER_MIME("wrl", "model/vrml");
1193
- REGISTER_MIME("wsdl", "application/wsdl+xml");
1194
- REGISTER_MIME("wspolicy", "application/wspolicy+xml");
1195
- REGISTER_MIME("wtb", "application/vnd.webturbo");
1196
- REGISTER_MIME("wvx", "video/x-ms-wvx");
1197
- REGISTER_MIME("x32", "application/x-authorware-bin");
1198
- REGISTER_MIME("x3d", "model/x3d+xml");
1199
- REGISTER_MIME("x3db", "model/x3d+binary");
1200
- REGISTER_MIME("x3dbz", "model/x3d+binary");
1201
- REGISTER_MIME("x3dv", "model/x3d+vrml");
1202
- REGISTER_MIME("x3dvz", "model/x3d+vrml");
1203
- REGISTER_MIME("x3dz", "model/x3d+xml");
1204
- REGISTER_MIME("xaml", "application/xaml+xml");
1205
- REGISTER_MIME("xap", "application/x-silverlight-app");
1206
- REGISTER_MIME("xar", "application/vnd.xara");
1207
- REGISTER_MIME("xbap", "application/x-ms-xbap");
1208
- REGISTER_MIME("xbd", "application/vnd.fujixerox.docuworks.binder");
1209
- REGISTER_MIME("xbm", "image/x-xbitmap");
1210
- REGISTER_MIME("xdf", "application/xcap-diff+xml");
1211
- REGISTER_MIME("xdm", "application/vnd.syncml.dm+xml");
1212
- REGISTER_MIME("xdp", "application/vnd.adobe.xdp+xml");
1213
- REGISTER_MIME("xdssc", "application/dssc+xml");
1214
- REGISTER_MIME("xdw", "application/vnd.fujixerox.docuworks");
1215
- REGISTER_MIME("xenc", "application/xenc+xml");
1216
- REGISTER_MIME("xer", "application/patch-ops-error+xml");
1217
- REGISTER_MIME("xfdf", "application/vnd.adobe.xfdf");
1218
- REGISTER_MIME("xfdl", "application/vnd.xfdl");
1219
- REGISTER_MIME("xht", "application/xhtml+xml");
1220
- REGISTER_MIME("xhtml", "application/xhtml+xml");
1221
- REGISTER_MIME("xhvml", "application/xv+xml");
1222
- REGISTER_MIME("xif", "image/vnd.xiff");
1223
- REGISTER_MIME("xla", "application/vnd.ms-excel");
1224
- REGISTER_MIME("xlam", "application/vnd.ms-excel.addin.macroenabled.12");
1225
- REGISTER_MIME("xlc", "application/vnd.ms-excel");
1226
- REGISTER_MIME("xlf", "application/x-xliff+xml");
1227
- REGISTER_MIME("xlm", "application/vnd.ms-excel");
1228
- REGISTER_MIME("xls", "application/vnd.ms-excel");
1229
- REGISTER_MIME("xlsb",
1230
- "application/vnd.ms-excel.sheet.binary.macroenabled.12");
1231
- REGISTER_MIME("xlsm", "application/vnd.ms-excel.sheet.macroenabled.12");
1232
- REGISTER_MIME(
1233
- "xlsx",
1234
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
1235
- REGISTER_MIME("xlt", "application/vnd.ms-excel");
1236
- REGISTER_MIME("xltm", "application/vnd.ms-excel.template.macroenabled.12");
1237
- REGISTER_MIME(
1238
- "xltx",
1239
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template");
1240
- REGISTER_MIME("xlw", "application/vnd.ms-excel");
1241
- REGISTER_MIME("xm", "audio/xm");
1242
- REGISTER_MIME("xml", "application/xml");
1243
- REGISTER_MIME("xo", "application/vnd.olpc-sugar");
1244
- REGISTER_MIME("xop", "application/xop+xml");
1245
- REGISTER_MIME("xpi", "application/x-xpinstall");
1246
- REGISTER_MIME("xpl", "application/xproc+xml");
1247
- REGISTER_MIME("xpm", "image/x-xpixmap");
1248
- REGISTER_MIME("xpr", "application/vnd.is-xpr");
1249
- REGISTER_MIME("xps", "application/vnd.ms-xpsdocument");
1250
- REGISTER_MIME("xpw", "application/vnd.intercon.formnet");
1251
- REGISTER_MIME("xpx", "application/vnd.intercon.formnet");
1252
- REGISTER_MIME("xsl", "application/xml");
1253
- REGISTER_MIME("xslt", "application/xslt+xml");
1254
- REGISTER_MIME("xsm", "application/vnd.syncml+xml");
1255
- REGISTER_MIME("xspf", "application/xspf+xml");
1256
- REGISTER_MIME("xul", "application/vnd.mozilla.xul+xml");
1257
- REGISTER_MIME("xvm", "application/xv+xml");
1258
- REGISTER_MIME("xvml", "application/xv+xml");
1259
- REGISTER_MIME("xwd", "image/x-xwindowdump");
1260
- REGISTER_MIME("xyz", "chemical/x-xyz");
1261
- REGISTER_MIME("xz", "application/x-xz");
1262
- REGISTER_MIME("yang", "application/yang");
1263
- REGISTER_MIME("yin", "application/yin+xml");
1264
- REGISTER_MIME("z1", "application/x-zmachine");
1265
- REGISTER_MIME("z2", "application/x-zmachine");
1266
- REGISTER_MIME("z3", "application/x-zmachine");
1267
- REGISTER_MIME("z4", "application/x-zmachine");
1268
- REGISTER_MIME("z5", "application/x-zmachine");
1269
- REGISTER_MIME("z6", "application/x-zmachine");
1270
- REGISTER_MIME("z7", "application/x-zmachine");
1271
- REGISTER_MIME("z8", "application/x-zmachine");
1272
- REGISTER_MIME("zaz", "application/vnd.zzazz.deck+xml");
1273
- REGISTER_MIME("zip", "application/zip");
1274
- REGISTER_MIME("zir", "application/vnd.zul");
1275
- REGISTER_MIME("zirz", "application/vnd.zul");
1276
- REGISTER_MIME("zmm", "application/vnd.handheld-entertainment+xml");
1277
- #undef REGISTER_MIME
1278
- http_mimetype_stats();
1279
- }