mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at uiwork 1293 lines 43 kB view raw
1import {BskyAgent} from '@atproto/api' 2import {isBskyAppUrl} from '../strings/url-helpers' 3import {extractBskyMeta} from './bsky' 4import {LINK_META_PROXY} from 'lib/constants' 5 6export enum LikelyType { 7 HTML, 8 Text, 9 Image, 10 Video, 11 Audio, 12 AtpData, 13 Other, 14} 15 16export interface LinkMeta { 17 error?: string 18 likelyType: LikelyType 19 url: string 20 title?: string 21 description?: string 22 image?: string 23} 24 25export async function getLinkMeta( 26 agent: BskyAgent, 27 url: string, 28 timeout = 5e3, 29): Promise<LinkMeta> { 30 if (isBskyAppUrl(url)) { 31 return extractBskyMeta(agent, url) 32 } 33 34 let urlp 35 try { 36 urlp = new URL(url) 37 } catch (e) { 38 return { 39 error: 'Invalid URL', 40 likelyType: LikelyType.Other, 41 url, 42 } 43 } 44 const likelyType = getLikelyType(urlp) 45 const meta: LinkMeta = { 46 likelyType, 47 url, 48 } 49 if (likelyType !== LikelyType.HTML) { 50 return meta 51 } 52 53 try { 54 const controller = new AbortController() 55 const to = setTimeout(() => controller.abort(), timeout || 5e3) 56 57 const response = await fetch( 58 `${LINK_META_PROXY(agent.service.toString() || '')}${encodeURIComponent( 59 url, 60 )}`, 61 {signal: controller.signal}, 62 ) 63 64 const body = await response.json() 65 clearTimeout(to) 66 67 const {description, error, image, title} = body 68 69 if (error !== '') { 70 throw new Error(error) 71 } 72 73 meta.description = description 74 meta.image = image 75 meta.title = title 76 } catch (e) { 77 // failed 78 console.error(e) 79 meta.error = e instanceof Error ? e.toString() : 'Failed to fetch link' 80 } 81 82 return meta 83} 84 85export function getLikelyType(url: URL | string): LikelyType { 86 if (typeof url === 'string') { 87 try { 88 url = new URL(url) 89 } catch (e) { 90 return LikelyType.Other 91 } 92 } 93 94 const ext = url.pathname.split('.').pop() || '' 95 if (ext === 'html' || ext === 'htm' || ext === 'php') { 96 return LikelyType.HTML 97 } 98 const mimeType = EXT_MIME_TYPES[ext] 99 if (!mimeType) { 100 return LikelyType.HTML 101 } 102 if (mimeType.startsWith('text/')) { 103 return LikelyType.Text 104 } 105 if (mimeType.startsWith('image/')) { 106 return LikelyType.Image 107 } 108 if (mimeType.startsWith('video/')) { 109 return LikelyType.Video 110 } 111 if (mimeType.startsWith('audio/')) { 112 return LikelyType.Audio 113 } 114 return LikelyType.Other 115} 116 117const EXT_MIME_TYPES: Record<string, string> = { 118 '123': 'application/vnd.lotus-1-2-3', 119 '1km': 'application/vnd.1000minds.decision-model+xml', 120 '3dml': 'text/vnd.in3d.3dml', 121 '3ds': 'image/x-3ds', 122 '3g2': 'video/3gpp2', 123 '3gp': 'video/3gpp', 124 '3gpp': 'video/3gpp', 125 '3mf': 'model/3mf', 126 '7z': 'application/x-7z-compressed', 127 aab: 'application/x-authorware-bin', 128 aac: 'audio/x-aac', 129 aam: 'application/x-authorware-map', 130 aas: 'application/x-authorware-seg', 131 abw: 'application/x-abiword', 132 ac: 'application/vnd.nokia.n-gage.ac+xml', 133 acc: 'application/vnd.americandynamics.acc', 134 ace: 'application/x-ace-compressed', 135 acu: 'application/vnd.acucobol', 136 acutc: 'application/vnd.acucorp', 137 adp: 'audio/adpcm', 138 aep: 'application/vnd.audiograph', 139 afm: 'application/x-font-type1', 140 afp: 'application/vnd.ibm.modcap', 141 age: 'application/vnd.age', 142 ahead: 'application/vnd.ahead.space', 143 ai: 'application/postscript', 144 aif: 'audio/x-aiff', 145 aifc: 'audio/x-aiff', 146 aiff: 'audio/x-aiff', 147 air: 'application/vnd.adobe.air-application-installer-package+zip', 148 ait: 'application/vnd.dvb.ait', 149 ami: 'application/vnd.amiga.ami', 150 amr: 'audio/amr', 151 apk: 'application/vnd.android.package-archive', 152 apng: 'image/apng', 153 appcache: 'text/cache-manifest', 154 application: 'application/x-ms-application', 155 apr: 'application/vnd.lotus-approach', 156 arc: 'application/x-freearc', 157 arj: 'application/x-arj', 158 asc: 'application/pgp-signature', 159 asf: 'video/x-ms-asf', 160 asm: 'text/x-asm', 161 aso: 'application/vnd.accpac.simply.aso', 162 asx: 'video/x-ms-asf', 163 atc: 'application/vnd.acucorp', 164 atom: 'application/atom+xml', 165 atomcat: 'application/atomcat+xml', 166 atomdeleted: 'application/atomdeleted+xml', 167 atomsvc: 'application/atomsvc+xml', 168 atx: 'application/vnd.antix.game-component', 169 au: 'audio/basic', 170 avi: 'video/x-msvideo', 171 avif: 'image/avif', 172 aw: 'application/applixware', 173 azf: 'application/vnd.airzip.filesecure.azf', 174 azs: 'application/vnd.airzip.filesecure.azs', 175 azv: 'image/vnd.airzip.accelerator.azv', 176 azw: 'application/vnd.amazon.ebook', 177 b16: 'image/vnd.pco.b16', 178 bat: 'application/x-msdownload', 179 bcpio: 'application/x-bcpio', 180 bdf: 'application/x-font-bdf', 181 bdm: 'application/vnd.syncml.dm+wbxml', 182 bdoc: 'application/x-bdoc', 183 bed: 'application/vnd.realvnc.bed', 184 bh2: 'application/vnd.fujitsu.oasysprs', 185 bin: 'application/octet-stream', 186 blb: 'application/x-blorb', 187 blorb: 'application/x-blorb', 188 bmi: 'application/vnd.bmi', 189 bmml: 'application/vnd.balsamiq.bmml+xml', 190 bmp: 'image/x-ms-bmp', 191 book: 'application/vnd.framemaker', 192 box: 'application/vnd.previewsystems.box', 193 boz: 'application/x-bzip2', 194 bpk: 'application/octet-stream', 195 bsp: 'model/vnd.valve.source.compiled-map', 196 btif: 'image/prs.btif', 197 buffer: 'application/octet-stream', 198 bz: 'application/x-bzip', 199 bz2: 'application/x-bzip2', 200 c: 'text/x-c', 201 c11amc: 'application/vnd.cluetrust.cartomobile-config', 202 c11amz: 'application/vnd.cluetrust.cartomobile-config-pkg', 203 c4d: 'application/vnd.clonk.c4group', 204 c4f: 'application/vnd.clonk.c4group', 205 c4g: 'application/vnd.clonk.c4group', 206 c4p: 'application/vnd.clonk.c4group', 207 c4u: 'application/vnd.clonk.c4group', 208 cab: 'application/vnd.ms-cab-compressed', 209 caf: 'audio/x-caf', 210 cap: 'application/vnd.tcpdump.pcap', 211 car: 'application/vnd.curl.car', 212 cat: 'application/vnd.ms-pki.seccat', 213 cb7: 'application/x-cbr', 214 cba: 'application/x-cbr', 215 cbr: 'application/x-cbr', 216 cbt: 'application/x-cbr', 217 cbz: 'application/x-cbr', 218 cc: 'text/x-c', 219 cco: 'application/x-cocoa', 220 cct: 'application/x-director', 221 ccxml: 'application/ccxml+xml', 222 cdbcmsg: 'application/vnd.contact.cmsg', 223 cdf: 'application/x-netcdf', 224 cdfx: 'application/cdfx+xml', 225 cdkey: 'application/vnd.mediastation.cdkey', 226 cdmia: 'application/cdmi-capability', 227 cdmic: 'application/cdmi-container', 228 cdmid: 'application/cdmi-domain', 229 cdmio: 'application/cdmi-object', 230 cdmiq: 'application/cdmi-queue', 231 cdx: 'chemical/x-cdx', 232 cdxml: 'application/vnd.chemdraw+xml', 233 cdy: 'application/vnd.cinderella', 234 cer: 'application/pkix-cert', 235 cfs: 'application/x-cfs-compressed', 236 cgm: 'image/cgm', 237 chat: 'application/x-chat', 238 chm: 'application/vnd.ms-htmlhelp', 239 chrt: 'application/vnd.kde.kchart', 240 cif: 'chemical/x-cif', 241 cii: 'application/vnd.anser-web-certificate-issue-initiation', 242 cil: 'application/vnd.ms-artgalry', 243 cjs: 'application/node', 244 cla: 'application/vnd.claymore', 245 class: 'application/java-vm', 246 clkk: 'application/vnd.crick.clicker.keyboard', 247 clkp: 'application/vnd.crick.clicker.palette', 248 clkt: 'application/vnd.crick.clicker.template', 249 clkw: 'application/vnd.crick.clicker.wordbank', 250 clkx: 'application/vnd.crick.clicker', 251 clp: 'application/x-msclip', 252 cmc: 'application/vnd.cosmocaller', 253 cmdf: 'chemical/x-cmdf', 254 cml: 'chemical/x-cml', 255 cmp: 'application/vnd.yellowriver-custom-menu', 256 cmx: 'image/x-cmx', 257 cod: 'application/vnd.rim.cod', 258 coffee: 'text/coffeescript', 259 com: 'application/x-msdownload', 260 conf: 'text/plain', 261 cpio: 'application/x-cpio', 262 cpp: 'text/x-c', 263 cpt: 'application/mac-compactpro', 264 crd: 'application/x-mscardfile', 265 crl: 'application/pkix-crl', 266 crt: 'application/x-x509-ca-cert', 267 crx: 'application/x-chrome-extension', 268 cryptonote: 'application/vnd.rig.cryptonote', 269 csh: 'application/x-csh', 270 csl: 'application/vnd.citationstyles.style+xml', 271 csml: 'chemical/x-csml', 272 csp: 'application/vnd.commonspace', 273 css: 'text/css', 274 cst: 'application/x-director', 275 csv: 'text/csv', 276 cu: 'application/cu-seeme', 277 curl: 'text/vnd.curl', 278 cww: 'application/prs.cww', 279 cxt: 'application/x-director', 280 cxx: 'text/x-c', 281 dae: 'model/vnd.collada+xml', 282 daf: 'application/vnd.mobius.daf', 283 dart: 'application/vnd.dart', 284 dataless: 'application/vnd.fdsn.seed', 285 davmount: 'application/davmount+xml', 286 dbf: 'application/vnd.dbf', 287 dbk: 'application/docbook+xml', 288 dcr: 'application/x-director', 289 dcurl: 'text/vnd.curl.dcurl', 290 dd2: 'application/vnd.oma.dd2+xml', 291 ddd: 'application/vnd.fujixerox.ddd', 292 ddf: 'application/vnd.syncml.dmddf+xml', 293 dds: 'image/vnd.ms-dds', 294 deb: 'application/x-debian-package', 295 def: 'text/plain', 296 deploy: 'application/octet-stream', 297 der: 'application/x-x509-ca-cert', 298 dfac: 'application/vnd.dreamfactory', 299 dgc: 'application/x-dgc-compressed', 300 dic: 'text/x-c', 301 dir: 'application/x-director', 302 dis: 'application/vnd.mobius.dis', 303 'disposition-notification': 'message/disposition-notification', 304 dist: 'application/octet-stream', 305 distz: 'application/octet-stream', 306 djv: 'image/vnd.djvu', 307 djvu: 'image/vnd.djvu', 308 dll: 'application/x-msdownload', 309 dmg: 'application/x-apple-diskimage', 310 dmp: 'application/vnd.tcpdump.pcap', 311 dms: 'application/octet-stream', 312 dna: 'application/vnd.dna', 313 doc: 'application/msword', 314 docm: 'application/vnd.ms-word.document.macroenabled.12', 315 docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 316 dot: 'application/msword', 317 dotm: 'application/vnd.ms-word.template.macroenabled.12', 318 dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', 319 dp: 'application/vnd.osgi.dp', 320 dpg: 'application/vnd.dpgraph', 321 dra: 'audio/vnd.dra', 322 drle: 'image/dicom-rle', 323 dsc: 'text/prs.lines.tag', 324 dssc: 'application/dssc+der', 325 dtb: 'application/x-dtbook+xml', 326 dtd: 'application/xml-dtd', 327 dts: 'audio/vnd.dts', 328 dtshd: 'audio/vnd.dts.hd', 329 dump: 'application/octet-stream', 330 dvb: 'video/vnd.dvb.file', 331 dvi: 'application/x-dvi', 332 dwd: 'application/atsc-dwd+xml', 333 dwf: 'model/vnd.dwf', 334 dwg: 'image/vnd.dwg', 335 dxf: 'image/vnd.dxf', 336 dxp: 'application/vnd.spotfire.dxp', 337 dxr: 'application/x-director', 338 ear: 'application/java-archive', 339 ecelp4800: 'audio/vnd.nuera.ecelp4800', 340 ecelp7470: 'audio/vnd.nuera.ecelp7470', 341 ecelp9600: 'audio/vnd.nuera.ecelp9600', 342 ecma: 'application/ecmascript', 343 edm: 'application/vnd.novadigm.edm', 344 edx: 'application/vnd.novadigm.edx', 345 efif: 'application/vnd.picsel', 346 ei6: 'application/vnd.pg.osasli', 347 elc: 'application/octet-stream', 348 emf: 'image/emf', 349 eml: 'message/rfc822', 350 emma: 'application/emma+xml', 351 emotionml: 'application/emotionml+xml', 352 emz: 'application/x-msmetafile', 353 eol: 'audio/vnd.digital-winds', 354 eot: 'application/vnd.ms-fontobject', 355 eps: 'application/postscript', 356 epub: 'application/epub+zip', 357 es: 'application/ecmascript', 358 es3: 'application/vnd.eszigno3+xml', 359 esa: 'application/vnd.osgi.subsystem', 360 esf: 'application/vnd.epson.esf', 361 et3: 'application/vnd.eszigno3+xml', 362 etx: 'text/x-setext', 363 eva: 'application/x-eva', 364 evy: 'application/x-envoy', 365 exe: 'application/x-msdownload', 366 exi: 'application/exi', 367 exp: 'application/express', 368 exr: 'image/aces', 369 ext: 'application/vnd.novadigm.ext', 370 ez: 'application/andrew-inset', 371 ez2: 'application/vnd.ezpix-album', 372 ez3: 'application/vnd.ezpix-package', 373 f: 'text/x-fortran', 374 f4v: 'video/x-f4v', 375 f77: 'text/x-fortran', 376 f90: 'text/x-fortran', 377 fbs: 'image/vnd.fastbidsheet', 378 fcdt: 'application/vnd.adobe.formscentral.fcdt', 379 fcs: 'application/vnd.isac.fcs', 380 fdf: 'application/vnd.fdf', 381 fdt: 'application/fdt+xml', 382 fe_launch: 'application/vnd.denovo.fcselayout-link', 383 fg5: 'application/vnd.fujitsu.oasysgp', 384 fgd: 'application/x-director', 385 fh: 'image/x-freehand', 386 fh4: 'image/x-freehand', 387 fh5: 'image/x-freehand', 388 fh7: 'image/x-freehand', 389 fhc: 'image/x-freehand', 390 fig: 'application/x-xfig', 391 fits: 'image/fits', 392 flac: 'audio/x-flac', 393 fli: 'video/x-fli', 394 flo: 'application/vnd.micrografx.flo', 395 flv: 'video/x-flv', 396 flw: 'application/vnd.kde.kivio', 397 flx: 'text/vnd.fmi.flexstor', 398 fly: 'text/vnd.fly', 399 fm: 'application/vnd.framemaker', 400 fnc: 'application/vnd.frogans.fnc', 401 fo: 'application/vnd.software602.filler.form+xml', 402 for: 'text/x-fortran', 403 fpx: 'image/vnd.fpx', 404 frame: 'application/vnd.framemaker', 405 fsc: 'application/vnd.fsc.weblaunch', 406 fst: 'image/vnd.fst', 407 ftc: 'application/vnd.fluxtime.clip', 408 fti: 'application/vnd.anser-web-funds-transfer-initiation', 409 fvt: 'video/vnd.fvt', 410 fxp: 'application/vnd.adobe.fxp', 411 fxpl: 'application/vnd.adobe.fxp', 412 fzs: 'application/vnd.fuzzysheet', 413 g2w: 'application/vnd.geoplan', 414 g3: 'image/g3fax', 415 g3w: 'application/vnd.geospace', 416 gac: 'application/vnd.groove-account', 417 gam: 'application/x-tads', 418 gbr: 'application/rpki-ghostbusters', 419 gca: 'application/x-gca-compressed', 420 gdl: 'model/vnd.gdl', 421 gdoc: 'application/vnd.google-apps.document', 422 ged: 'text/vnd.familysearch.gedcom', 423 geo: 'application/vnd.dynageo', 424 geojson: 'application/geo+json', 425 gex: 'application/vnd.geometry-explorer', 426 ggb: 'application/vnd.geogebra.file', 427 ggt: 'application/vnd.geogebra.tool', 428 ghf: 'application/vnd.groove-help', 429 gif: 'image/gif', 430 gim: 'application/vnd.groove-identity-message', 431 glb: 'model/gltf-binary', 432 gltf: 'model/gltf+json', 433 gml: 'application/gml+xml', 434 gmx: 'application/vnd.gmx', 435 gnumeric: 'application/x-gnumeric', 436 gph: 'application/vnd.flographit', 437 gpx: 'application/gpx+xml', 438 gqf: 'application/vnd.grafeq', 439 gqs: 'application/vnd.grafeq', 440 gram: 'application/srgs', 441 gramps: 'application/x-gramps-xml', 442 gre: 'application/vnd.geometry-explorer', 443 grv: 'application/vnd.groove-injector', 444 grxml: 'application/srgs+xml', 445 gsf: 'application/x-font-ghostscript', 446 gsheet: 'application/vnd.google-apps.spreadsheet', 447 gslides: 'application/vnd.google-apps.presentation', 448 gtar: 'application/x-gtar', 449 gtm: 'application/vnd.groove-tool-message', 450 gtw: 'model/vnd.gtw', 451 gv: 'text/vnd.graphviz', 452 gxf: 'application/gxf', 453 gxt: 'application/vnd.geonext', 454 gz: 'application/gzip', 455 h: 'text/x-c', 456 h261: 'video/h261', 457 h263: 'video/h263', 458 h264: 'video/h264', 459 hal: 'application/vnd.hal+xml', 460 hbci: 'application/vnd.hbci', 461 hbs: 'text/x-handlebars-template', 462 hdd: 'application/x-virtualbox-hdd', 463 hdf: 'application/x-hdf', 464 heic: 'image/heic', 465 heics: 'image/heic-sequence', 466 heif: 'image/heif', 467 heifs: 'image/heif-sequence', 468 hej2: 'image/hej2k', 469 held: 'application/atsc-held+xml', 470 hh: 'text/x-c', 471 hjson: 'application/hjson', 472 hlp: 'application/winhlp', 473 hpgl: 'application/vnd.hp-hpgl', 474 hpid: 'application/vnd.hp-hpid', 475 hps: 'application/vnd.hp-hps', 476 hqx: 'application/mac-binhex40', 477 hsj2: 'image/hsj2', 478 htc: 'text/x-component', 479 htke: 'application/vnd.kenameaapp', 480 htm: 'text/html', 481 html: 'text/html', 482 hvd: 'application/vnd.yamaha.hv-dic', 483 hvp: 'application/vnd.yamaha.hv-voice', 484 hvs: 'application/vnd.yamaha.hv-script', 485 i2g: 'application/vnd.intergeo', 486 icc: 'application/vnd.iccprofile', 487 ice: 'x-conference/x-cooltalk', 488 icm: 'application/vnd.iccprofile', 489 ico: 'image/x-icon', 490 ics: 'text/calendar', 491 ief: 'image/ief', 492 ifb: 'text/calendar', 493 ifm: 'application/vnd.shana.informed.formdata', 494 iges: 'model/iges', 495 igl: 'application/vnd.igloader', 496 igm: 'application/vnd.insors.igm', 497 igs: 'model/iges', 498 igx: 'application/vnd.micrografx.igx', 499 iif: 'application/vnd.shana.informed.interchange', 500 img: 'application/octet-stream', 501 imp: 'application/vnd.accpac.simply.imp', 502 ims: 'application/vnd.ms-ims', 503 in: 'text/plain', 504 ini: 'text/plain', 505 ink: 'application/inkml+xml', 506 inkml: 'application/inkml+xml', 507 install: 'application/x-install-instructions', 508 iota: 'application/vnd.astraea-software.iota', 509 ipfix: 'application/ipfix', 510 ipk: 'application/vnd.shana.informed.package', 511 irm: 'application/vnd.ibm.rights-management', 512 irp: 'application/vnd.irepository.package+xml', 513 iso: 'application/x-iso9660-image', 514 itp: 'application/vnd.shana.informed.formtemplate', 515 its: 'application/its+xml', 516 ivp: 'application/vnd.immervision-ivp', 517 ivu: 'application/vnd.immervision-ivu', 518 jad: 'text/vnd.sun.j2me.app-descriptor', 519 jade: 'text/jade', 520 jam: 'application/vnd.jam', 521 jar: 'application/java-archive', 522 jardiff: 'application/x-java-archive-diff', 523 java: 'text/x-java-source', 524 jhc: 'image/jphc', 525 jisp: 'application/vnd.jisp', 526 jls: 'image/jls', 527 jlt: 'application/vnd.hp-jlyt', 528 jng: 'image/x-jng', 529 jnlp: 'application/x-java-jnlp-file', 530 joda: 'application/vnd.joost.joda-archive', 531 jp2: 'image/jp2', 532 jpe: 'image/jpeg', 533 jpeg: 'image/jpeg', 534 jpf: 'image/jpx', 535 jpg: 'image/jpeg', 536 jpg2: 'image/jp2', 537 jpgm: 'video/jpm', 538 jpgv: 'video/jpeg', 539 jph: 'image/jph', 540 jpm: 'video/jpm', 541 jpx: 'image/jpx', 542 js: 'application/javascript', 543 json: 'application/json', 544 json5: 'application/json5', 545 jsonld: 'application/ld+json', 546 jsonml: 'application/jsonml+json', 547 jsx: 'text/jsx', 548 jxr: 'image/jxr', 549 jxra: 'image/jxra', 550 jxrs: 'image/jxrs', 551 jxs: 'image/jxs', 552 jxsc: 'image/jxsc', 553 jxsi: 'image/jxsi', 554 jxss: 'image/jxss', 555 kar: 'audio/midi', 556 karbon: 'application/vnd.kde.karbon', 557 kdbx: 'application/x-keepass2', 558 key: 'application/x-iwork-keynote-sffkey', 559 kfo: 'application/vnd.kde.kformula', 560 kia: 'application/vnd.kidspiration', 561 kml: 'application/vnd.google-earth.kml+xml', 562 kmz: 'application/vnd.google-earth.kmz', 563 kne: 'application/vnd.kinar', 564 knp: 'application/vnd.kinar', 565 kon: 'application/vnd.kde.kontour', 566 kpr: 'application/vnd.kde.kpresenter', 567 kpt: 'application/vnd.kde.kpresenter', 568 kpxx: 'application/vnd.ds-keypoint', 569 ksp: 'application/vnd.kde.kspread', 570 ktr: 'application/vnd.kahootz', 571 ktx: 'image/ktx', 572 ktx2: 'image/ktx2', 573 ktz: 'application/vnd.kahootz', 574 kwd: 'application/vnd.kde.kword', 575 kwt: 'application/vnd.kde.kword', 576 lasxml: 'application/vnd.las.las+xml', 577 latex: 'application/x-latex', 578 lbd: 'application/vnd.llamagraphics.life-balance.desktop', 579 lbe: 'application/vnd.llamagraphics.life-balance.exchange+xml', 580 les: 'application/vnd.hhe.lesson-player', 581 less: 'text/less', 582 lgr: 'application/lgr+xml', 583 lha: 'application/x-lzh-compressed', 584 link66: 'application/vnd.route66.link66+xml', 585 list: 'text/plain', 586 list3820: 'application/vnd.ibm.modcap', 587 listafp: 'application/vnd.ibm.modcap', 588 litcoffee: 'text/coffeescript', 589 lnk: 'application/x-ms-shortcut', 590 log: 'text/plain', 591 lostxml: 'application/lost+xml', 592 lrf: 'application/octet-stream', 593 lrm: 'application/vnd.ms-lrm', 594 ltf: 'application/vnd.frogans.ltf', 595 lua: 'text/x-lua', 596 luac: 'application/x-lua-bytecode', 597 lvp: 'audio/vnd.lucent.voice', 598 lwp: 'application/vnd.lotus-wordpro', 599 lzh: 'application/x-lzh-compressed', 600 m13: 'application/x-msmediaview', 601 m14: 'application/x-msmediaview', 602 m1v: 'video/mpeg', 603 m21: 'application/mp21', 604 m2a: 'audio/mpeg', 605 m2v: 'video/mpeg', 606 m3a: 'audio/mpeg', 607 m3u: 'audio/x-mpegurl', 608 m3u8: 'application/vnd.apple.mpegurl', 609 m4a: 'audio/x-m4a', 610 m4p: 'application/mp4', 611 m4s: 'video/iso.segment', 612 m4u: 'video/vnd.mpegurl', 613 m4v: 'video/x-m4v', 614 ma: 'application/mathematica', 615 mads: 'application/mads+xml', 616 maei: 'application/mmt-aei+xml', 617 mag: 'application/vnd.ecowin.chart', 618 maker: 'application/vnd.framemaker', 619 man: 'text/troff', 620 manifest: 'text/cache-manifest', 621 map: 'application/json', 622 mar: 'application/octet-stream', 623 markdown: 'text/markdown', 624 mathml: 'application/mathml+xml', 625 mb: 'application/mathematica', 626 mbk: 'application/vnd.mobius.mbk', 627 mbox: 'application/mbox', 628 mc1: 'application/vnd.medcalcdata', 629 mcd: 'application/vnd.mcd', 630 mcurl: 'text/vnd.curl.mcurl', 631 md: 'text/markdown', 632 mdb: 'application/x-msaccess', 633 mdi: 'image/vnd.ms-modi', 634 mdx: 'text/mdx', 635 me: 'text/troff', 636 mesh: 'model/mesh', 637 meta4: 'application/metalink4+xml', 638 metalink: 'application/metalink+xml', 639 mets: 'application/mets+xml', 640 mfm: 'application/vnd.mfmp', 641 mft: 'application/rpki-manifest', 642 mgp: 'application/vnd.osgeo.mapguide.package', 643 mgz: 'application/vnd.proteus.magazine', 644 mid: 'audio/midi', 645 midi: 'audio/midi', 646 mie: 'application/x-mie', 647 mif: 'application/vnd.mif', 648 mime: 'message/rfc822', 649 mj2: 'video/mj2', 650 mjp2: 'video/mj2', 651 mjs: 'application/javascript', 652 mk3d: 'video/x-matroska', 653 mka: 'audio/x-matroska', 654 mkd: 'text/x-markdown', 655 mks: 'video/x-matroska', 656 mkv: 'video/x-matroska', 657 mlp: 'application/vnd.dolby.mlp', 658 mmd: 'application/vnd.chipnuts.karaoke-mmd', 659 mmf: 'application/vnd.smaf', 660 mml: 'text/mathml', 661 mmr: 'image/vnd.fujixerox.edmics-mmr', 662 mng: 'video/x-mng', 663 mny: 'application/x-msmoney', 664 mobi: 'application/x-mobipocket-ebook', 665 mods: 'application/mods+xml', 666 mov: 'video/quicktime', 667 movie: 'video/x-sgi-movie', 668 mp2: 'audio/mpeg', 669 mp21: 'application/mp21', 670 mp2a: 'audio/mpeg', 671 mp3: 'audio/mpeg', 672 mp4: 'video/mp4', 673 mp4a: 'audio/mp4', 674 mp4s: 'application/mp4', 675 mp4v: 'video/mp4', 676 mpc: 'application/vnd.mophun.certificate', 677 mpd: 'application/dash+xml', 678 mpe: 'video/mpeg', 679 mpeg: 'video/mpeg', 680 mpg: 'video/mpeg', 681 mpg4: 'video/mp4', 682 mpga: 'audio/mpeg', 683 mpkg: 'application/vnd.apple.installer+xml', 684 mpm: 'application/vnd.blueice.multipass', 685 mpn: 'application/vnd.mophun.application', 686 mpp: 'application/vnd.ms-project', 687 mpt: 'application/vnd.ms-project', 688 mpy: 'application/vnd.ibm.minipay', 689 mqy: 'application/vnd.mobius.mqy', 690 mrc: 'application/marc', 691 mrcx: 'application/marcxml+xml', 692 ms: 'text/troff', 693 mscml: 'application/mediaservercontrol+xml', 694 mseed: 'application/vnd.fdsn.mseed', 695 mseq: 'application/vnd.mseq', 696 msf: 'application/vnd.epson.msf', 697 msg: 'application/vnd.ms-outlook', 698 msh: 'model/mesh', 699 msi: 'application/x-msdownload', 700 msl: 'application/vnd.mobius.msl', 701 msm: 'application/octet-stream', 702 msp: 'application/octet-stream', 703 msty: 'application/vnd.muvee.style', 704 mtl: 'model/mtl', 705 mts: 'model/vnd.mts', 706 mus: 'application/vnd.musician', 707 musd: 'application/mmt-usd+xml', 708 musicxml: 'application/vnd.recordare.musicxml+xml', 709 mvb: 'application/x-msmediaview', 710 mvt: 'application/vnd.mapbox-vector-tile', 711 mwf: 'application/vnd.mfer', 712 mxf: 'application/mxf', 713 mxl: 'application/vnd.recordare.musicxml', 714 mxmf: 'audio/mobile-xmf', 715 mxml: 'application/xv+xml', 716 mxs: 'application/vnd.triscape.mxs', 717 mxu: 'video/vnd.mpegurl', 718 'n-gage': 'application/vnd.nokia.n-gage.symbian.install', 719 n3: 'text/n3', 720 nb: 'application/mathematica', 721 nbp: 'application/vnd.wolfram.player', 722 nc: 'application/x-netcdf', 723 ncx: 'application/x-dtbncx+xml', 724 nfo: 'text/x-nfo', 725 ngdat: 'application/vnd.nokia.n-gage.data', 726 nitf: 'application/vnd.nitf', 727 nlu: 'application/vnd.neurolanguage.nlu', 728 nml: 'application/vnd.enliven', 729 nnd: 'application/vnd.noblenet-directory', 730 nns: 'application/vnd.noblenet-sealer', 731 nnw: 'application/vnd.noblenet-web', 732 npx: 'image/vnd.net-fpx', 733 nq: 'application/n-quads', 734 nsc: 'application/x-conference', 735 nsf: 'application/vnd.lotus-notes', 736 nt: 'application/n-triples', 737 ntf: 'application/vnd.nitf', 738 numbers: 'application/x-iwork-numbers-sffnumbers', 739 nzb: 'application/x-nzb', 740 oa2: 'application/vnd.fujitsu.oasys2', 741 oa3: 'application/vnd.fujitsu.oasys3', 742 oas: 'application/vnd.fujitsu.oasys', 743 obd: 'application/x-msbinder', 744 obgx: 'application/vnd.openblox.game+xml', 745 obj: 'model/obj', 746 oda: 'application/oda', 747 odb: 'application/vnd.oasis.opendocument.database', 748 odc: 'application/vnd.oasis.opendocument.chart', 749 odf: 'application/vnd.oasis.opendocument.formula', 750 odft: 'application/vnd.oasis.opendocument.formula-template', 751 odg: 'application/vnd.oasis.opendocument.graphics', 752 odi: 'application/vnd.oasis.opendocument.image', 753 odm: 'application/vnd.oasis.opendocument.text-master', 754 odp: 'application/vnd.oasis.opendocument.presentation', 755 ods: 'application/vnd.oasis.opendocument.spreadsheet', 756 odt: 'application/vnd.oasis.opendocument.text', 757 oga: 'audio/ogg', 758 ogex: 'model/vnd.opengex', 759 ogg: 'audio/ogg', 760 ogv: 'video/ogg', 761 ogx: 'application/ogg', 762 omdoc: 'application/omdoc+xml', 763 onepkg: 'application/onenote', 764 onetmp: 'application/onenote', 765 onetoc: 'application/onenote', 766 onetoc2: 'application/onenote', 767 opf: 'application/oebps-package+xml', 768 opml: 'text/x-opml', 769 oprc: 'application/vnd.palm', 770 opus: 'audio/ogg', 771 org: 'text/x-org', 772 osf: 'application/vnd.yamaha.openscoreformat', 773 osfpvg: 'application/vnd.yamaha.openscoreformat.osfpvg+xml', 774 osm: 'application/vnd.openstreetmap.data+xml', 775 otc: 'application/vnd.oasis.opendocument.chart-template', 776 otf: 'font/otf', 777 otg: 'application/vnd.oasis.opendocument.graphics-template', 778 oth: 'application/vnd.oasis.opendocument.text-web', 779 oti: 'application/vnd.oasis.opendocument.image-template', 780 otp: 'application/vnd.oasis.opendocument.presentation-template', 781 ots: 'application/vnd.oasis.opendocument.spreadsheet-template', 782 ott: 'application/vnd.oasis.opendocument.text-template', 783 ova: 'application/x-virtualbox-ova', 784 ovf: 'application/x-virtualbox-ovf', 785 owl: 'application/rdf+xml', 786 oxps: 'application/oxps', 787 oxt: 'application/vnd.openofficeorg.extension', 788 p: 'text/x-pascal', 789 p10: 'application/pkcs10', 790 p12: 'application/x-pkcs12', 791 p7b: 'application/x-pkcs7-certificates', 792 p7c: 'application/pkcs7-mime', 793 p7m: 'application/pkcs7-mime', 794 p7r: 'application/x-pkcs7-certreqresp', 795 p7s: 'application/pkcs7-signature', 796 p8: 'application/pkcs8', 797 pac: 'application/x-ns-proxy-autoconfig', 798 pages: 'application/x-iwork-pages-sffpages', 799 pas: 'text/x-pascal', 800 paw: 'application/vnd.pawaafile', 801 pbd: 'application/vnd.powerbuilder6', 802 pbm: 'image/x-portable-bitmap', 803 pcap: 'application/vnd.tcpdump.pcap', 804 pcf: 'application/x-font-pcf', 805 pcl: 'application/vnd.hp-pcl', 806 pclxl: 'application/vnd.hp-pclxl', 807 pct: 'image/x-pict', 808 pcurl: 'application/vnd.curl.pcurl', 809 pcx: 'image/x-pcx', 810 pdb: 'application/x-pilot', 811 pde: 'text/x-processing', 812 pdf: 'application/pdf', 813 pem: 'application/x-x509-ca-cert', 814 pfa: 'application/x-font-type1', 815 pfb: 'application/x-font-type1', 816 pfm: 'application/x-font-type1', 817 pfr: 'application/font-tdpfr', 818 pfx: 'application/x-pkcs12', 819 pgm: 'image/x-portable-graymap', 820 pgn: 'application/x-chess-pgn', 821 pgp: 'application/pgp-encrypted', 822 php: 'application/x-httpd-php', 823 pic: 'image/x-pict', 824 pkg: 'application/octet-stream', 825 pki: 'application/pkixcmp', 826 pkipath: 'application/pkix-pkipath', 827 pkpass: 'application/vnd.apple.pkpass', 828 pl: 'application/x-perl', 829 plb: 'application/vnd.3gpp.pic-bw-large', 830 plc: 'application/vnd.mobius.plc', 831 plf: 'application/vnd.pocketlearn', 832 pls: 'application/pls+xml', 833 pm: 'application/x-perl', 834 pml: 'application/vnd.ctc-posml', 835 png: 'image/png', 836 pnm: 'image/x-portable-anymap', 837 portpkg: 'application/vnd.macports.portpkg', 838 pot: 'application/vnd.ms-powerpoint', 839 potm: 'application/vnd.ms-powerpoint.template.macroenabled.12', 840 potx: 'application/vnd.openxmlformats-officedocument.presentationml.template', 841 ppam: 'application/vnd.ms-powerpoint.addin.macroenabled.12', 842 ppd: 'application/vnd.cups-ppd', 843 ppm: 'image/x-portable-pixmap', 844 pps: 'application/vnd.ms-powerpoint', 845 ppsm: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', 846 ppsx: 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 847 ppt: 'application/vnd.ms-powerpoint', 848 pptm: 'application/vnd.ms-powerpoint.presentation.macroenabled.12', 849 pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 850 pqa: 'application/vnd.palm', 851 prc: 'application/x-pilot', 852 pre: 'application/vnd.lotus-freelance', 853 prf: 'application/pics-rules', 854 provx: 'application/provenance+xml', 855 ps: 'application/postscript', 856 psb: 'application/vnd.3gpp.pic-bw-small', 857 psd: 'image/vnd.adobe.photoshop', 858 psf: 'application/x-font-linux-psf', 859 pskcxml: 'application/pskc+xml', 860 pti: 'image/prs.pti', 861 ptid: 'application/vnd.pvi.ptid1', 862 pub: 'application/x-mspublisher', 863 pvb: 'application/vnd.3gpp.pic-bw-var', 864 pwn: 'application/vnd.3m.post-it-notes', 865 pya: 'audio/vnd.ms-playready.media.pya', 866 pyv: 'video/vnd.ms-playready.media.pyv', 867 qam: 'application/vnd.epson.quickanime', 868 qbo: 'application/vnd.intu.qbo', 869 qfx: 'application/vnd.intu.qfx', 870 qps: 'application/vnd.publishare-delta-tree', 871 qt: 'video/quicktime', 872 qwd: 'application/vnd.quark.quarkxpress', 873 qwt: 'application/vnd.quark.quarkxpress', 874 qxb: 'application/vnd.quark.quarkxpress', 875 qxd: 'application/vnd.quark.quarkxpress', 876 qxl: 'application/vnd.quark.quarkxpress', 877 qxt: 'application/vnd.quark.quarkxpress', 878 ra: 'audio/x-realaudio', 879 ram: 'audio/x-pn-realaudio', 880 raml: 'application/raml+yaml', 881 rapd: 'application/route-apd+xml', 882 rar: 'application/x-rar-compressed', 883 ras: 'image/x-cmu-raster', 884 rcprofile: 'application/vnd.ipunplugged.rcprofile', 885 rdf: 'application/rdf+xml', 886 rdz: 'application/vnd.data-vision.rdz', 887 relo: 'application/p2p-overlay+xml', 888 rep: 'application/vnd.businessobjects', 889 res: 'application/x-dtbresource+xml', 890 rgb: 'image/x-rgb', 891 rif: 'application/reginfo+xml', 892 rip: 'audio/vnd.rip', 893 ris: 'application/x-research-info-systems', 894 rl: 'application/resource-lists+xml', 895 rlc: 'image/vnd.fujixerox.edmics-rlc', 896 rld: 'application/resource-lists-diff+xml', 897 rm: 'application/vnd.rn-realmedia', 898 rmi: 'audio/midi', 899 rmp: 'audio/x-pn-realaudio-plugin', 900 rms: 'application/vnd.jcp.javame.midlet-rms', 901 rmvb: 'application/vnd.rn-realmedia-vbr', 902 rnc: 'application/relax-ng-compact-syntax', 903 rng: 'application/xml', 904 roa: 'application/rpki-roa', 905 roff: 'text/troff', 906 rp9: 'application/vnd.cloanto.rp9', 907 rpm: 'application/x-redhat-package-manager', 908 rpss: 'application/vnd.nokia.radio-presets', 909 rpst: 'application/vnd.nokia.radio-preset', 910 rq: 'application/sparql-query', 911 rs: 'application/rls-services+xml', 912 rsat: 'application/atsc-rsat+xml', 913 rsd: 'application/rsd+xml', 914 rsheet: 'application/urc-ressheet+xml', 915 rss: 'application/rss+xml', 916 rtf: 'text/rtf', 917 rtx: 'text/richtext', 918 run: 'application/x-makeself', 919 rusd: 'application/route-usd+xml', 920 s: 'text/x-asm', 921 s3m: 'audio/s3m', 922 saf: 'application/vnd.yamaha.smaf-audio', 923 sass: 'text/x-sass', 924 sbml: 'application/sbml+xml', 925 sc: 'application/vnd.ibm.secure-container', 926 scd: 'application/x-msschedule', 927 scm: 'application/vnd.lotus-screencam', 928 scq: 'application/scvp-cv-request', 929 scs: 'application/scvp-cv-response', 930 scss: 'text/x-scss', 931 scurl: 'text/vnd.curl.scurl', 932 sda: 'application/vnd.stardivision.draw', 933 sdc: 'application/vnd.stardivision.calc', 934 sdd: 'application/vnd.stardivision.impress', 935 sdkd: 'application/vnd.solent.sdkm+xml', 936 sdkm: 'application/vnd.solent.sdkm+xml', 937 sdp: 'application/sdp', 938 sdw: 'application/vnd.stardivision.writer', 939 sea: 'application/x-sea', 940 see: 'application/vnd.seemail', 941 seed: 'application/vnd.fdsn.seed', 942 sema: 'application/vnd.sema', 943 semd: 'application/vnd.semd', 944 semf: 'application/vnd.semf', 945 senmlx: 'application/senml+xml', 946 sensmlx: 'application/sensml+xml', 947 ser: 'application/java-serialized-object', 948 setpay: 'application/set-payment-initiation', 949 setreg: 'application/set-registration-initiation', 950 'sfd-hdstx': 'application/vnd.hydrostatix.sof-data', 951 sfs: 'application/vnd.spotfire.sfs', 952 sfv: 'text/x-sfv', 953 sgi: 'image/sgi', 954 sgl: 'application/vnd.stardivision.writer-global', 955 sgm: 'text/sgml', 956 sgml: 'text/sgml', 957 sh: 'application/x-sh', 958 shar: 'application/x-shar', 959 shex: 'text/shex', 960 shf: 'application/shf+xml', 961 shtml: 'text/html', 962 sid: 'image/x-mrsid-image', 963 sieve: 'application/sieve', 964 sig: 'application/pgp-signature', 965 sil: 'audio/silk', 966 silo: 'model/mesh', 967 sis: 'application/vnd.symbian.install', 968 sisx: 'application/vnd.symbian.install', 969 sit: 'application/x-stuffit', 970 sitx: 'application/x-stuffitx', 971 siv: 'application/sieve', 972 skd: 'application/vnd.koan', 973 skm: 'application/vnd.koan', 974 skp: 'application/vnd.koan', 975 skt: 'application/vnd.koan', 976 sldm: 'application/vnd.ms-powerpoint.slide.macroenabled.12', 977 sldx: 'application/vnd.openxmlformats-officedocument.presentationml.slide', 978 slim: 'text/slim', 979 slm: 'text/slim', 980 sls: 'application/route-s-tsid+xml', 981 slt: 'application/vnd.epson.salt', 982 sm: 'application/vnd.stepmania.stepchart', 983 smf: 'application/vnd.stardivision.math', 984 smi: 'application/smil+xml', 985 smil: 'application/smil+xml', 986 smv: 'video/x-smv', 987 smzip: 'application/vnd.stepmania.package', 988 snd: 'audio/basic', 989 snf: 'application/x-font-snf', 990 so: 'application/octet-stream', 991 spc: 'application/x-pkcs7-certificates', 992 spdx: 'text/spdx', 993 spf: 'application/vnd.yamaha.smaf-phrase', 994 spl: 'application/x-futuresplash', 995 spot: 'text/vnd.in3d.spot', 996 spp: 'application/scvp-vp-response', 997 spq: 'application/scvp-vp-request', 998 spx: 'audio/ogg', 999 sql: 'application/x-sql', 1000 src: 'application/x-wais-source', 1001 srt: 'application/x-subrip', 1002 sru: 'application/sru+xml', 1003 srx: 'application/sparql-results+xml', 1004 ssdl: 'application/ssdl+xml', 1005 sse: 'application/vnd.kodak-descriptor', 1006 ssf: 'application/vnd.epson.ssf', 1007 ssml: 'application/ssml+xml', 1008 st: 'application/vnd.sailingtracker.track', 1009 stc: 'application/vnd.sun.xml.calc.template', 1010 std: 'application/vnd.sun.xml.draw.template', 1011 stf: 'application/vnd.wt.stf', 1012 sti: 'application/vnd.sun.xml.impress.template', 1013 stk: 'application/hyperstudio', 1014 stl: 'model/stl', 1015 stpx: 'model/step+xml', 1016 stpxz: 'model/step-xml+zip', 1017 stpz: 'model/step+zip', 1018 str: 'application/vnd.pg.format', 1019 stw: 'application/vnd.sun.xml.writer.template', 1020 styl: 'text/stylus', 1021 stylus: 'text/stylus', 1022 sub: 'text/vnd.dvb.subtitle', 1023 sus: 'application/vnd.sus-calendar', 1024 susp: 'application/vnd.sus-calendar', 1025 sv4cpio: 'application/x-sv4cpio', 1026 sv4crc: 'application/x-sv4crc', 1027 svc: 'application/vnd.dvb.service', 1028 svd: 'application/vnd.svd', 1029 svg: 'image/svg+xml', 1030 svgz: 'image/svg+xml', 1031 swa: 'application/x-director', 1032 swf: 'application/x-shockwave-flash', 1033 swi: 'application/vnd.aristanetworks.swi', 1034 swidtag: 'application/swid+xml', 1035 sxc: 'application/vnd.sun.xml.calc', 1036 sxd: 'application/vnd.sun.xml.draw', 1037 sxg: 'application/vnd.sun.xml.writer.global', 1038 sxi: 'application/vnd.sun.xml.impress', 1039 sxm: 'application/vnd.sun.xml.math', 1040 sxw: 'application/vnd.sun.xml.writer', 1041 t: 'text/troff', 1042 t3: 'application/x-t3vm-image', 1043 t38: 'image/t38', 1044 taglet: 'application/vnd.mynfc', 1045 tao: 'application/vnd.tao.intent-module-archive', 1046 tap: 'image/vnd.tencent.tap', 1047 tar: 'application/x-tar', 1048 tcap: 'application/vnd.3gpp2.tcap', 1049 tcl: 'application/x-tcl', 1050 td: 'application/urc-targetdesc+xml', 1051 teacher: 'application/vnd.smart.teacher', 1052 tei: 'application/tei+xml', 1053 teicorpus: 'application/tei+xml', 1054 tex: 'application/x-tex', 1055 texi: 'application/x-texinfo', 1056 texinfo: 'application/x-texinfo', 1057 text: 'text/plain', 1058 tfi: 'application/thraud+xml', 1059 tfm: 'application/x-tex-tfm', 1060 tfx: 'image/tiff-fx', 1061 tga: 'image/x-tga', 1062 thmx: 'application/vnd.ms-officetheme', 1063 tif: 'image/tiff', 1064 tiff: 'image/tiff', 1065 tk: 'application/x-tcl', 1066 tmo: 'application/vnd.tmobile-livetv', 1067 toml: 'application/toml', 1068 torrent: 'application/x-bittorrent', 1069 tpl: 'application/vnd.groove-tool-template', 1070 tpt: 'application/vnd.trid.tpt', 1071 tr: 'text/troff', 1072 tra: 'application/vnd.trueapp', 1073 trig: 'application/trig', 1074 trm: 'application/x-msterminal', 1075 ts: 'video/mp2t', 1076 tsd: 'application/timestamped-data', 1077 tsv: 'text/tab-separated-values', 1078 ttc: 'font/collection', 1079 ttf: 'font/ttf', 1080 ttl: 'text/turtle', 1081 ttml: 'application/ttml+xml', 1082 twd: 'application/vnd.simtech-mindmapper', 1083 twds: 'application/vnd.simtech-mindmapper', 1084 txd: 'application/vnd.genomatix.tuxedo', 1085 txf: 'application/vnd.mobius.txf', 1086 txt: 'text/plain', 1087 u32: 'application/x-authorware-bin', 1088 u8dsn: 'message/global-delivery-status', 1089 u8hdr: 'message/global-headers', 1090 u8mdn: 'message/global-disposition-notification', 1091 u8msg: 'message/global', 1092 ubj: 'application/ubjson', 1093 udeb: 'application/x-debian-package', 1094 ufd: 'application/vnd.ufdl', 1095 ufdl: 'application/vnd.ufdl', 1096 ulx: 'application/x-glulx', 1097 umj: 'application/vnd.umajin', 1098 unityweb: 'application/vnd.unity', 1099 uoml: 'application/vnd.uoml+xml', 1100 uri: 'text/uri-list', 1101 uris: 'text/uri-list', 1102 urls: 'text/uri-list', 1103 usdz: 'model/vnd.usdz+zip', 1104 ustar: 'application/x-ustar', 1105 utz: 'application/vnd.uiq.theme', 1106 uu: 'text/x-uuencode', 1107 uva: 'audio/vnd.dece.audio', 1108 uvd: 'application/vnd.dece.data', 1109 uvf: 'application/vnd.dece.data', 1110 uvg: 'image/vnd.dece.graphic', 1111 uvh: 'video/vnd.dece.hd', 1112 uvi: 'image/vnd.dece.graphic', 1113 uvm: 'video/vnd.dece.mobile', 1114 uvp: 'video/vnd.dece.pd', 1115 uvs: 'video/vnd.dece.sd', 1116 uvt: 'application/vnd.dece.ttml+xml', 1117 uvu: 'video/vnd.uvvu.mp4', 1118 uvv: 'video/vnd.dece.video', 1119 uvva: 'audio/vnd.dece.audio', 1120 uvvd: 'application/vnd.dece.data', 1121 uvvf: 'application/vnd.dece.data', 1122 uvvg: 'image/vnd.dece.graphic', 1123 uvvh: 'video/vnd.dece.hd', 1124 uvvi: 'image/vnd.dece.graphic', 1125 uvvm: 'video/vnd.dece.mobile', 1126 uvvp: 'video/vnd.dece.pd', 1127 uvvs: 'video/vnd.dece.sd', 1128 uvvt: 'application/vnd.dece.ttml+xml', 1129 uvvu: 'video/vnd.uvvu.mp4', 1130 uvvv: 'video/vnd.dece.video', 1131 uvvx: 'application/vnd.dece.unspecified', 1132 uvvz: 'application/vnd.dece.zip', 1133 uvx: 'application/vnd.dece.unspecified', 1134 uvz: 'application/vnd.dece.zip', 1135 vbox: 'application/x-virtualbox-vbox', 1136 'vbox-extpack': 'application/x-virtualbox-vbox-extpack', 1137 vcard: 'text/vcard', 1138 vcd: 'application/x-cdlink', 1139 vcf: 'text/x-vcard', 1140 vcg: 'application/vnd.groove-vcard', 1141 vcs: 'text/x-vcalendar', 1142 vcx: 'application/vnd.vcx', 1143 vdi: 'application/x-virtualbox-vdi', 1144 vds: 'model/vnd.sap.vds', 1145 vhd: 'application/x-virtualbox-vhd', 1146 vis: 'application/vnd.visionary', 1147 viv: 'video/vnd.vivo', 1148 vmdk: 'application/x-virtualbox-vmdk', 1149 vob: 'video/x-ms-vob', 1150 vor: 'application/vnd.stardivision.writer', 1151 vox: 'application/x-authorware-bin', 1152 vrml: 'model/vrml', 1153 vsd: 'application/vnd.visio', 1154 vsf: 'application/vnd.vsf', 1155 vss: 'application/vnd.visio', 1156 vst: 'application/vnd.visio', 1157 vsw: 'application/vnd.visio', 1158 vtf: 'image/vnd.valve.source.texture', 1159 vtt: 'text/vtt', 1160 vtu: 'model/vnd.vtu', 1161 vxml: 'application/voicexml+xml', 1162 w3d: 'application/x-director', 1163 wad: 'application/x-doom', 1164 wadl: 'application/vnd.sun.wadl+xml', 1165 war: 'application/java-archive', 1166 wasm: 'application/wasm', 1167 wav: 'audio/x-wav', 1168 wax: 'audio/x-ms-wax', 1169 wbmp: 'image/vnd.wap.wbmp', 1170 wbs: 'application/vnd.criticaltools.wbs+xml', 1171 wbxml: 'application/vnd.wap.wbxml', 1172 wcm: 'application/vnd.ms-works', 1173 wdb: 'application/vnd.ms-works', 1174 wdp: 'image/vnd.ms-photo', 1175 weba: 'audio/webm', 1176 webapp: 'application/x-web-app-manifest+json', 1177 webm: 'video/webm', 1178 webmanifest: 'application/manifest+json', 1179 webp: 'image/webp', 1180 wg: 'application/vnd.pmi.widget', 1181 wgt: 'application/widget', 1182 wks: 'application/vnd.ms-works', 1183 wm: 'video/x-ms-wm', 1184 wma: 'audio/x-ms-wma', 1185 wmd: 'application/x-ms-wmd', 1186 wmf: 'image/wmf', 1187 wml: 'text/vnd.wap.wml', 1188 wmlc: 'application/vnd.wap.wmlc', 1189 wmls: 'text/vnd.wap.wmlscript', 1190 wmlsc: 'application/vnd.wap.wmlscriptc', 1191 wmv: 'video/x-ms-wmv', 1192 wmx: 'video/x-ms-wmx', 1193 wmz: 'application/x-msmetafile', 1194 woff: 'font/woff', 1195 woff2: 'font/woff2', 1196 wpd: 'application/vnd.wordperfect', 1197 wpl: 'application/vnd.ms-wpl', 1198 wps: 'application/vnd.ms-works', 1199 wqd: 'application/vnd.wqd', 1200 wri: 'application/x-mswrite', 1201 wrl: 'model/vrml', 1202 wsc: 'message/vnd.wfa.wsc', 1203 wsdl: 'application/wsdl+xml', 1204 wspolicy: 'application/wspolicy+xml', 1205 wtb: 'application/vnd.webturbo', 1206 wvx: 'video/x-ms-wvx', 1207 x32: 'application/x-authorware-bin', 1208 x3d: 'model/x3d+xml', 1209 x3db: 'model/x3d+fastinfoset', 1210 x3dbz: 'model/x3d+binary', 1211 x3dv: 'model/x3d-vrml', 1212 x3dvz: 'model/x3d+vrml', 1213 x3dz: 'model/x3d+xml', 1214 x_b: 'model/vnd.parasolid.transmit.binary', 1215 x_t: 'model/vnd.parasolid.transmit.text', 1216 xaml: 'application/xaml+xml', 1217 xap: 'application/x-silverlight-app', 1218 xar: 'application/vnd.xara', 1219 xav: 'application/xcap-att+xml', 1220 xbap: 'application/x-ms-xbap', 1221 xbd: 'application/vnd.fujixerox.docuworks.binder', 1222 xbm: 'image/x-xbitmap', 1223 xca: 'application/xcap-caps+xml', 1224 xcs: 'application/calendar+xml', 1225 xdf: 'application/xcap-diff+xml', 1226 xdm: 'application/vnd.syncml.dm+xml', 1227 xdp: 'application/vnd.adobe.xdp+xml', 1228 xdssc: 'application/dssc+xml', 1229 xdw: 'application/vnd.fujixerox.docuworks', 1230 xel: 'application/xcap-el+xml', 1231 xenc: 'application/xenc+xml', 1232 xer: 'application/patch-ops-error+xml', 1233 xfdf: 'application/vnd.adobe.xfdf', 1234 xfdl: 'application/vnd.xfdl', 1235 xht: 'application/xhtml+xml', 1236 xhtml: 'application/xhtml+xml', 1237 xhvml: 'application/xv+xml', 1238 xif: 'image/vnd.xiff', 1239 xla: 'application/vnd.ms-excel', 1240 xlam: 'application/vnd.ms-excel.addin.macroenabled.12', 1241 xlc: 'application/vnd.ms-excel', 1242 xlf: 'application/xliff+xml', 1243 xlm: 'application/vnd.ms-excel', 1244 xls: 'application/vnd.ms-excel', 1245 xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12', 1246 xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12', 1247 xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 1248 xlt: 'application/vnd.ms-excel', 1249 xltm: 'application/vnd.ms-excel.template.macroenabled.12', 1250 xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 1251 xlw: 'application/vnd.ms-excel', 1252 xm: 'audio/xm', 1253 xml: 'text/xml', 1254 xns: 'application/xcap-ns+xml', 1255 xo: 'application/vnd.olpc-sugar', 1256 xop: 'application/xop+xml', 1257 xpi: 'application/x-xpinstall', 1258 xpl: 'application/xproc+xml', 1259 xpm: 'image/x-xpixmap', 1260 xpr: 'application/vnd.is-xpr', 1261 xps: 'application/vnd.ms-xpsdocument', 1262 xpw: 'application/vnd.intercon.formnet', 1263 xpx: 'application/vnd.intercon.formnet', 1264 xsd: 'application/xml', 1265 xsl: 'application/xslt+xml', 1266 xslt: 'application/xslt+xml', 1267 xsm: 'application/vnd.syncml+xml', 1268 xspf: 'application/xspf+xml', 1269 xul: 'application/vnd.mozilla.xul+xml', 1270 xvm: 'application/xv+xml', 1271 xvml: 'application/xv+xml', 1272 xwd: 'image/x-xwindowdump', 1273 xyz: 'chemical/x-xyz', 1274 xz: 'application/x-xz', 1275 yaml: 'text/yaml', 1276 yang: 'application/yang', 1277 yin: 'application/yin+xml', 1278 yml: 'text/yaml', 1279 ymp: 'text/x-suse-ymp', 1280 z1: 'application/x-zmachine', 1281 z2: 'application/x-zmachine', 1282 z3: 'application/x-zmachine', 1283 z4: 'application/x-zmachine', 1284 z5: 'application/x-zmachine', 1285 z6: 'application/x-zmachine', 1286 z7: 'application/x-zmachine', 1287 z8: 'application/x-zmachine', 1288 zaz: 'application/vnd.zzazz.deck+xml', 1289 zip: 'application/zip', 1290 zir: 'application/vnd.zul', 1291 zirz: 'application/vnd.zul', 1292 zmm: 'application/vnd.handheld-entertainment+xml', 1293}