qiushang преди 8 месеца
родител
ревизия
68f9977662
променени са 100 файла, в които са добавени 4688 реда и са изтрити 0 реда
  1. 32 0
      .babelrc
  2. 18 0
      .electron-vue/build.config.js
  3. 144 0
      .electron-vue/build.js
  4. 40 0
      .electron-vue/dev-client.js
  5. 190 0
      .electron-vue/dev-runner.js
  6. 72 0
      .electron-vue/webpack.main.config.js
  7. 179 0
      .electron-vue/webpack.renderer.config.js
  8. 140 0
      .electron-vue/webpack.web.config.js
  9. 12 0
      .gitignore
  10. BIN
      bin/cert/Qt5Core.dll
  11. BIN
      bin/cert/cert.exe
  12. BIN
      bin/cert/libgcc_s_dw2-1.dll
  13. BIN
      bin/cert/libstdc++-6.dll
  14. BIN
      bin/cert/libwinpthread-1.dll
  15. 28 0
      bin/convert/colors.xml
  16. 26 0
      bin/convert/configure.xml
  17. BIN
      bin/convert/convert.exe
  18. 102 0
      bin/convert/delegates.xml
  19. 1714 0
      bin/convert/english.xml
  20. BIN
      bin/convert/gsdll32.dll
  21. BIN
      bin/convert/gswin32.exe
  22. BIN
      bin/convert/gswin32c.exe
  23. BIN
      bin/convert/identify.exe
  24. 48 0
      bin/convert/locale.xml
  25. 80 0
      bin/convert/log.xml
  26. 1146 0
      bin/convert/mime.xml
  27. 74 0
      bin/convert/policy.xml
  28. 68 0
      bin/convert/quantization-table.xml
  29. 9 0
      bin/convert/readme_converter.txt
  30. 334 0
      bin/convert/thresholds.xml
  31. 55 0
      bin/convert/type-ghostscript.xml
  32. 21 0
      bin/convert/type.xml
  33. BIN
      bin/icon.png
  34. BIN
      bin/pdf-bg.png
  35. BIN
      bin/video/ffmpeg.exe
  36. BIN
      bin/video/ffplay.exe
  37. BIN
      bin/video/ffprobe.exe
  38. BIN
      build/icons/256x256.png
  39. BIN
      build/icons/icon.icns
  40. BIN
      build/icons/icon.ico
  41. BIN
      build/icons/icon1.ico
  42. 12 0
      nsis/.gitignore
  43. BIN
      nsis/7z/7z.dll
  44. BIN
      nsis/7z/7z.exe
  45. BIN
      nsis/NSIS/Bin/GenPat.exe
  46. BIN
      nsis/NSIS/Bin/LibraryLocal.exe
  47. BIN
      nsis/NSIS/Bin/MakeLangId.exe
  48. BIN
      nsis/NSIS/Bin/RegTool.bin
  49. BIN
      nsis/NSIS/Bin/makensis.exe
  50. BIN
      nsis/NSIS/Bin/zip2exe.exe
  51. BIN
      nsis/NSIS/Bin/zlib1.dll
  52. 144 0
      nsis/NSIS/COPYING
  53. BIN
      nsis/NSIS/Contrib/Graphics/Checks/big.bmp
  54. BIN
      nsis/NSIS/Contrib/Graphics/Checks/classic-cross.bmp
  55. BIN
      nsis/NSIS/Contrib/Graphics/Checks/classic.bmp
  56. BIN
      nsis/NSIS/Contrib/Graphics/Checks/colorful.bmp
  57. BIN
      nsis/NSIS/Contrib/Graphics/Checks/grey-cross.bmp
  58. BIN
      nsis/NSIS/Contrib/Graphics/Checks/grey.bmp
  59. BIN
      nsis/NSIS/Contrib/Graphics/Checks/modern.bmp
  60. BIN
      nsis/NSIS/Contrib/Graphics/Checks/red-round.bmp
  61. BIN
      nsis/NSIS/Contrib/Graphics/Checks/red.bmp
  62. BIN
      nsis/NSIS/Contrib/Graphics/Checks/simple-round.bmp
  63. BIN
      nsis/NSIS/Contrib/Graphics/Checks/simple-round2.bmp
  64. BIN
      nsis/NSIS/Contrib/Graphics/Checks/simple.bmp
  65. BIN
      nsis/NSIS/Contrib/Graphics/Header/nsis-r.bmp
  66. BIN
      nsis/NSIS/Contrib/Graphics/Header/nsis.bmp
  67. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-nsis.bmp
  68. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-r-nsis.bmp
  69. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-r.bmp
  70. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-nsis.bmp
  71. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-r-nsis.bmp
  72. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-r.bmp
  73. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange-uninstall.bmp
  74. BIN
      nsis/NSIS/Contrib/Graphics/Header/orange.bmp
  75. BIN
      nsis/NSIS/Contrib/Graphics/Header/win.bmp
  76. BIN
      nsis/NSIS/Contrib/Graphics/Icons/arrow-install.ico
  77. BIN
      nsis/NSIS/Contrib/Graphics/Icons/arrow-uninstall.ico
  78. BIN
      nsis/NSIS/Contrib/Graphics/Icons/arrow2-install.ico
  79. BIN
      nsis/NSIS/Contrib/Graphics/Icons/arrow2-uninstall.ico
  80. BIN
      nsis/NSIS/Contrib/Graphics/Icons/box-install.ico
  81. BIN
      nsis/NSIS/Contrib/Graphics/Icons/box-uninstall.ico
  82. BIN
      nsis/NSIS/Contrib/Graphics/Icons/classic-install.ico
  83. BIN
      nsis/NSIS/Contrib/Graphics/Icons/classic-uninstall.ico
  84. BIN
      nsis/NSIS/Contrib/Graphics/Icons/llama-blue.ico
  85. BIN
      nsis/NSIS/Contrib/Graphics/Icons/llama-grey.ico
  86. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-install-blue-full.ico
  87. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-install-blue.ico
  88. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-install-colorful.ico
  89. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-install-full.ico
  90. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-install.ico
  91. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-blue-full.ico
  92. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-blue.ico
  93. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-colorful.ico
  94. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-full.ico
  95. BIN
      nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall.ico
  96. BIN
      nsis/NSIS/Contrib/Graphics/Icons/nsis1-install.ico
  97. BIN
      nsis/NSIS/Contrib/Graphics/Icons/nsis1-uninstall.ico
  98. BIN
      nsis/NSIS/Contrib/Graphics/Icons/orange-install-nsis.ico
  99. BIN
      nsis/NSIS/Contrib/Graphics/Icons/orange-install.ico
  100. BIN
      nsis/NSIS/Contrib/Graphics/Icons/orange-uninstall-nsis.ico

+ 32 - 0
.babelrc

@@ -0,0 +1,32 @@
+{
+  "comments": false,
+  "env": {
+    "main": {
+      "presets": [
+        ["env", {
+          "targets": { "node": 7 }
+        }],
+        "stage-0"
+      ]
+    },
+    "renderer": {
+      "presets": [
+        ["env", {
+          "modules": false
+        }],
+        "stage-0"
+      ]
+    },
+    "web": {
+      "presets": [
+        ["env", {
+          "modules": false
+        }],
+        "stage-0"
+      ]
+    }
+  },
+  "plugins": [
+	  "transform-runtime"
+	  ]
+}

+ 18 - 0
.electron-vue/build.config.js

@@ -0,0 +1,18 @@
+const path = require('path')
+const dependencies = require('../package.json')
+
+/**
+ * `electron-packager` options
+ * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-packager.html
+ */
+module.exports = {
+  arch: 'ia32',
+  asar: { unpack: "**/bin/**"},
+  dir: path.join(__dirname, '../'),
+  icon: path.join(__dirname, '../build/icons/icon'),
+  ignore: /(^\/(src|test|\.[a-z]+|README|yarn|static|dist\/web))|\.gitkeep/,
+  out: path.join(__dirname, '../build'),
+  overwrite: true,
+  platform: process.env.BUILD_TARGET || 'all',
+  appCopyright: dependencies.softInfo.copyright
+}

+ 144 - 0
.electron-vue/build.js

@@ -0,0 +1,144 @@
+'use strict'
+
+process.env.NODE_ENV = 'production'
+
+const { say } = require('cfonts')
+const chalk = require('chalk')
+const del = require('del')
+const packager = require('electron-packager')
+const webpack = require('webpack')
+const Multispinner = require('multispinner')
+
+const buildConfig = require('./build.config')
+const mainConfig = require('./webpack.main.config')
+const rendererConfig = require('./webpack.renderer.config')
+const webConfig = require('./webpack.web.config')
+
+const doneLog = chalk.bgGreen.white(' DONE ') + ' '
+const errorLog = chalk.bgRed.white(' ERROR ') + ' '
+const okayLog = chalk.bgBlue.white(' OKAY ') + ' '
+const isCI = process.env.CI || false
+
+if (process.env.BUILD_TARGET === 'clean') clean()
+else if (process.env.BUILD_TARGET === 'web') web()
+else build()
+
+function clean () {
+  del.sync(['build/*', '!build/icons', '!build/icons/icon.*'])
+  console.log(`\n${doneLog}\n`)
+  process.exit()
+}
+
+function build () {
+  greeting()
+
+  del.sync(['dist/electron/*', '!.gitkeep'])
+
+  const tasks = ['main', 'renderer']
+  const m = new Multispinner(tasks, {
+    preText: 'building',
+    postText: 'process'
+  })
+
+  let results = ''
+
+  m.on('success', () => {
+    process.stdout.write('\x1B[2J\x1B[0f')
+    console.log(`\n\n${results}`)
+    console.log(`${okayLog}take it away ${chalk.yellow('`electron-packager`')}\n`)
+    bundleApp()
+  })
+
+  pack(mainConfig).then(result => {
+    results += result + '\n\n'
+    m.success('main')
+  }).catch(err => {
+    m.error('main')
+    console.log(`\n  ${errorLog}failed to build main process`)
+    console.error(`\n${err}\n`)
+    process.exit(1)
+  })
+
+  pack(rendererConfig).then(result => {
+    results += result + '\n\n'
+    m.success('renderer')
+  }).catch(err => {
+    m.error('renderer')
+    console.log(`\n  ${errorLog}failed to build renderer process`)
+    console.error(`\n${err}\n`)
+    process.exit(1)
+  })
+}
+
+function pack (config) {
+  return new Promise((resolve, reject) => {
+    config.mode = 'production'
+    webpack(config, (err, stats) => {
+      if (err) reject(err.stack || err)
+      else if (stats.hasErrors()) {
+        let err = ''
+
+        stats.toString({
+          chunks: false,
+          colors: true
+        })
+        .split(/\r?\n/)
+        .forEach(line => {
+          err += `    ${line}\n`
+        })
+
+        reject(err)
+      } else {
+        resolve(stats.toString({
+          chunks: false,
+          colors: true
+        }))
+      }
+    })
+  })
+}
+
+function bundleApp () {
+  buildConfig.mode = 'production'
+  packager(buildConfig, (err, appPaths) => {
+    if (err) {
+      console.log(`\n${errorLog}${chalk.yellow('`electron-packager`')} says...\n`)
+      console.log(err + '\n')
+    } else {
+      console.log(`\n${doneLog}\n`)
+    }
+  })
+}
+
+function web () {
+  del.sync(['dist/web/*', '!.gitkeep'])
+  webConfig.mode = 'production'
+  webpack(webConfig, (err, stats) => {
+    if (err || stats.hasErrors()) console.log(err)
+
+    console.log(stats.toString({
+      chunks: false,
+      colors: true
+    }))
+
+    process.exit()
+  })
+}
+
+function greeting () {
+  const cols = process.stdout.columns
+  let text = ''
+
+  if (cols > 85) text = 'lets-build'
+  else if (cols > 60) text = 'lets-|build'
+  else text = false
+
+  if (text && !isCI) {
+    say(text, {
+      colors: ['yellow'],
+      font: 'simple3d',
+      space: false
+    })
+  } else console.log(chalk.yellow.bold('\n  lets-build'))
+  console.log()
+}

+ 40 - 0
.electron-vue/dev-client.js

@@ -0,0 +1,40 @@
+const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
+
+hotClient.subscribe(event => {
+  /**
+   * Reload browser when HTMLWebpackPlugin emits a new index.html
+   *
+   * Currently disabled until jantimon/html-webpack-plugin#680 is resolved.
+   * https://github.com/SimulatedGREG/electron-vue/issues/437
+   * https://github.com/jantimon/html-webpack-plugin/issues/680
+   */
+  // if (event.action === 'reload') {
+  //   window.location.reload()
+  // }
+
+  /**
+   * Notify `mainWindow` when `main` process is compiling,
+   * giving notice for an expected reload of the `electron` process
+   */
+  if (event.action === 'compiling') {
+    document.body.innerHTML += `
+      <style>
+        #dev-client {
+          background: #4fc08d;
+          border-radius: 4px;
+          bottom: 20px;
+          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
+          color: #fff;
+          font-family: 'Source Sans Pro', sans-serif;
+          left: 20px;
+          padding: 8px 12px;
+          position: absolute;
+        }
+      </style>
+
+      <div id="dev-client">
+        Compiling Main Process...
+      </div>
+    `
+  }
+})

+ 190 - 0
.electron-vue/dev-runner.js

@@ -0,0 +1,190 @@
+'use strict'
+
+const chalk = require('chalk')
+const electron = require('electron')
+const path = require('path')
+const { say } = require('cfonts')
+const { spawn } = require('child_process')
+const webpack = require('webpack')
+const WebpackDevServer = require('webpack-dev-server')
+const webpackHotMiddleware = require('webpack-hot-middleware')
+
+const mainConfig = require('./webpack.main.config')
+const rendererConfig = require('./webpack.renderer.config')
+
+let electronProcess = null
+let manualRestart = false
+let hotMiddleware
+
+function logStats (proc, data) {
+  let log = ''
+
+  log += chalk.yellow.bold(`┏ ${proc} Process ${new Array((19 - proc.length) + 1).join('-')}`)
+  log += '\n\n'
+
+  if (typeof data === 'object') {
+    data.toString({
+      colors: true,
+      chunks: false
+    }).split(/\r?\n/).forEach(line => {
+      log += '  ' + line + '\n'
+    })
+  } else {
+    log += `  ${data}\n`
+  }
+
+  log += '\n' + chalk.yellow.bold(`┗ ${new Array(28 + 1).join('-')}`) + '\n'
+
+  console.log(log)
+}
+
+function startRenderer () {
+  return new Promise((resolve, reject) => {
+    rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer)
+    rendererConfig.mode = 'development'
+    const compiler = webpack(rendererConfig)
+    hotMiddleware = webpackHotMiddleware(compiler, {
+      log: false,
+      heartbeat: 2500
+    })
+
+    compiler.hooks.compilation.tap('compilation', compilation => {
+      compilation.hooks.htmlWebpackPluginAfterEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => {
+        hotMiddleware.publish({ action: 'reload' })
+        cb()
+      })
+    })
+
+    compiler.hooks.done.tap('done', stats => {
+      logStats('Renderer', stats)
+    })
+
+    const server = new WebpackDevServer(
+      compiler,
+      {
+        contentBase: path.join(__dirname, '../'),
+        quiet: true,
+        before (app, ctx) {
+          app.use(hotMiddleware)
+          ctx.middleware.waitUntilValid(() => {
+            resolve()
+          })
+        }
+      }
+    )
+
+    server.listen(9080)
+  })
+}
+
+function startMain () {
+  return new Promise((resolve, reject) => {
+    mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main)
+    mainConfig.mode = 'development'
+    const compiler = webpack(mainConfig)
+
+    compiler.hooks.watchRun.tapAsync('watch-run', (compilation, done) => {
+      logStats('Main', chalk.white.bold('compiling...'))
+      hotMiddleware.publish({ action: 'compiling' })
+      done()
+    })
+
+    compiler.watch({}, (err, stats) => {
+      if (err) {
+        console.log(err)
+        return
+      }
+
+      logStats('Main', stats)
+
+      if (electronProcess && electronProcess.kill) {
+        manualRestart = true
+        process.kill(electronProcess.pid)
+        electronProcess = null
+        startElectron()
+
+        setTimeout(() => {
+          manualRestart = false
+        }, 5000)
+      }
+
+      resolve()
+    })
+  })
+}
+
+function startElectron () {
+  var args = [
+    '--inspect=5858',
+    path.join(__dirname, '../dist/electron/main.js')
+  ]
+
+  // detect yarn or npm and process commandline args accordingly
+  if (process.env.npm_execpath.endsWith('yarn.js')) {
+    args = args.concat(process.argv.slice(3))
+  } else if (process.env.npm_execpath.endsWith('npm-cli.js')) {
+    args = args.concat(process.argv.slice(2))
+  }
+
+  electronProcess = spawn(electron, args)
+  
+  electronProcess.stdout.on('data', data => {
+    electronLog(data, 'blue')
+  })
+  electronProcess.stderr.on('data', data => {
+    electronLog(data, 'red')
+  })
+
+  electronProcess.on('close', () => {
+    if (!manualRestart) process.exit()
+  })
+}
+
+function electronLog (data, color) {
+  let log = ''
+  data = data.toString().split(/\r?\n/)
+  data.forEach(line => {
+    log += `  ${line}\n`
+  })
+  if (/[0-9A-z]+/.test(log)) {
+    console.log(
+      chalk[color].bold('┏ Electron -------------------') +
+      '\n\n' +
+      log +
+      chalk[color].bold('┗ ----------------------------') +
+      '\n'
+    )
+  }
+}
+
+function greeting () {
+  const cols = process.stdout.columns
+  let text = ''
+
+  if (cols > 104) text = 'electron-vue'
+  else if (cols > 76) text = 'electron-|vue'
+  else text = false
+
+  if (text) {
+    say(text, {
+      colors: ['yellow'],
+      font: 'simple3d',
+      space: false
+    })
+  } else console.log(chalk.yellow.bold('\n  electron-vue'))
+  console.log(chalk.blue('  getting ready...') + '\n')
+}
+
+function init () {
+  greeting()
+
+  Promise.all([startRenderer(), startMain()])
+    .then(() => {
+      startElectron()
+    })
+    .catch(err => {
+      console.error(err)
+    })
+}
+
+init()

+ 72 - 0
.electron-vue/webpack.main.config.js

@@ -0,0 +1,72 @@
+'use strict'
+
+process.env.BABEL_ENV = 'main'
+
+const path = require('path')
+const { dependencies } = require('../package.json')
+const webpack = require('webpack')
+
+const MinifyPlugin = require("babel-minify-webpack-plugin")
+
+let mainConfig = {
+  entry: {
+    main: path.join(__dirname, '../src/main/index.js')
+  },
+  externals: [
+    ...Object.keys(dependencies || {})
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.js$/,
+        use: 'babel-loader',
+        exclude: /node_modules/
+      },
+      {
+        test: /\.node$/,
+        use: 'node-loader'
+      }
+    ]
+  },
+  node: {
+    __dirname: process.env.NODE_ENV !== 'production',
+    __filename: process.env.NODE_ENV !== 'production'
+  },
+  output: {
+    filename: '[name].js',
+    libraryTarget: 'commonjs2',
+    path: path.join(__dirname, '../dist/electron')
+  },
+  plugins: [
+    new webpack.NoEmitOnErrorsPlugin()
+  ],
+  resolve: {
+    extensions: ['.js', '.json', '.node']
+  },
+  target: 'electron-main'
+}
+
+/**
+ * Adjust mainConfig for development settings
+ */
+if (process.env.NODE_ENV !== 'production') {
+  mainConfig.plugins.push(
+    new webpack.DefinePlugin({
+      '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"`
+    })
+  )
+}
+
+/**
+ * Adjust mainConfig for production settings
+ */
+if (process.env.NODE_ENV === 'production') {
+  mainConfig.plugins.push(
+    new MinifyPlugin(),
+    new webpack.DefinePlugin({
+      'process.env.NODE_ENV': '"production"'
+    })
+  )
+}
+
+module.exports = mainConfig

+ 179 - 0
.electron-vue/webpack.renderer.config.js

@@ -0,0 +1,179 @@
+'use strict'
+
+process.env.BABEL_ENV = 'renderer'
+
+const path = require('path')
+const { dependencies } = require('../package.json')
+const webpack = require('webpack')
+
+const MinifyPlugin = require("babel-minify-webpack-plugin")
+const CopyWebpackPlugin = require('copy-webpack-plugin')
+const MiniCssExtractPlugin = require('mini-css-extract-plugin')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const { VueLoaderPlugin } = require('vue-loader')
+
+/**
+ * List of node_modules to include in webpack bundle
+ *
+ * Required for specific packages like Vue UI libraries
+ * that provide pure *.vue files that need compiling
+ * https://simulatedgreg.gitbooks.io/electron-vue/content/en/webpack-configurations.html#white-listing-externals
+ */
+let whiteListedModules = ['vue']
+
+let rendererConfig = {
+  devtool: '#cheap-module-eval-source-map',
+  entry: {
+    renderer: path.join(__dirname, '../src/renderer/main.js')
+  },
+  externals: [
+    ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d))
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.scss$/,
+        use: ['vue-style-loader', 'css-loader', 'sass-loader']
+      },
+      {
+        test: /\.sass$/,
+        use: ['vue-style-loader', 'css-loader', 'sass-loader?indentedSyntax']
+      },
+      {
+        test: /\.less$/,
+        use: ['vue-style-loader', 'css-loader', 'less-loader']
+      },
+      {
+        test: /\.css$/,
+        use: ['vue-style-loader', 'css-loader']
+      },
+      {
+        test: /\.html$/,
+        use: 'vue-html-loader'
+      },
+      {
+        test: /\.js$/,
+        use: 'babel-loader',
+        exclude: /node_modules/
+      },
+      {
+        test: /\.node$/,
+        use: 'node-loader'
+      },
+      {
+        test: /\.vue$/,
+        use: {
+          loader: 'vue-loader',
+          options: {
+            extractCSS: process.env.NODE_ENV === 'production',
+            loaders: {
+              sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1',
+              scss: 'vue-style-loader!css-loader!sass-loader',
+              less: 'vue-style-loader!css-loader!less-loader'
+            }
+          }
+        }
+      },
+      {
+        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
+        use: {
+          loader: 'url-loader',
+          query: {
+            limit: 10000,
+            name: 'imgs/[name]--[folder].[ext]'
+          }
+        }
+      },
+      {
+        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
+        loader: 'url-loader',
+        options: {
+          limit: 10000,
+          name: 'media/[name]--[folder].[ext]'
+        }
+      },
+      {
+        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
+        use: {
+          loader: 'url-loader',
+          query: {
+            limit: 10000,
+            name: 'fonts/[name]--[folder].[ext]'
+          }
+        }
+      }
+    ]
+  },
+  node: {
+    __dirname: process.env.NODE_ENV !== 'production',
+    __filename: process.env.NODE_ENV !== 'production'
+  },
+  plugins: [
+    new VueLoaderPlugin(),
+    new MiniCssExtractPlugin({filename: 'styles.css'}),
+    new HtmlWebpackPlugin({
+      filename: 'index.html',
+      template: path.resolve(__dirname, '../src/index.ejs'),
+      minify: {
+        collapseWhitespace: true,
+        removeAttributeQuotes: true,
+        removeComments: true
+      },
+      nodeModules: process.env.NODE_ENV !== 'production'
+        ? path.resolve(__dirname, '../node_modules')
+        : false
+    }),
+    new webpack.HotModuleReplacementPlugin(),
+    new webpack.NoEmitOnErrorsPlugin()
+  ],
+  output: {
+    filename: '[name].js',
+    libraryTarget: 'commonjs2',
+    path: path.join(__dirname, '../dist/electron')
+  },
+  resolve: {
+    alias: {
+      '@': path.join(__dirname, '../src/renderer'),
+      'vue$': 'vue/dist/vue.esm.js'
+    },
+    extensions: ['.js', '.vue', '.json', '.css', '.node']
+  },
+  target: 'electron-renderer'
+}
+
+/**
+ * Adjust rendererConfig for development settings
+ */
+if (process.env.NODE_ENV !== 'production') {
+  rendererConfig.plugins.push(
+    new webpack.DefinePlugin({
+      '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"`
+    })
+  )
+}
+
+/**
+ * Adjust rendererConfig for production settings
+ */
+if (process.env.NODE_ENV === 'production') {
+  rendererConfig.devtool = ''
+
+  rendererConfig.plugins.push(
+    new MinifyPlugin(),
+    new CopyWebpackPlugin([
+      {
+        from: path.join(__dirname, '../static'),
+        to: path.join(__dirname, '../dist/electron/static'),
+        ignore: ['.*']
+      }
+    ]),
+    new webpack.DefinePlugin({
+      'process.env.NODE_ENV': '"production"'
+    }),
+    new webpack.LoaderOptionsPlugin({
+      minimize: true
+    })
+  )
+}
+
+module.exports = rendererConfig

+ 140 - 0
.electron-vue/webpack.web.config.js

@@ -0,0 +1,140 @@
+'use strict'
+
+process.env.BABEL_ENV = 'web'
+
+const path = require('path')
+const webpack = require('webpack')
+
+const MinifyPlugin = require("babel-minify-webpack-plugin")
+const CopyWebpackPlugin = require('copy-webpack-plugin')
+const MiniCssExtractPlugin = require('mini-css-extract-plugin')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const { VueLoaderPlugin } = require('vue-loader')
+
+let webConfig = {
+  devtool: '#cheap-module-eval-source-map',
+  entry: {
+    web: path.join(__dirname, '../src/renderer/main.js')
+  },
+  module: {
+    rules: [
+      {
+        test: /\.scss$/,
+        use: ['vue-style-loader', 'css-loader', 'sass-loader']
+      },
+      {
+        test: /\.sass$/,
+        use: ['vue-style-loader', 'css-loader', 'sass-loader?indentedSyntax']
+      },
+      {
+        test: /\.less$/,
+        use: ['vue-style-loader', 'css-loader', 'less-loader']
+      },
+      {
+        test: /\.css$/,
+        use: ['vue-style-loader', 'css-loader']
+      },
+      {
+        test: /\.html$/,
+        use: 'vue-html-loader'
+      },
+      {
+        test: /\.js$/,
+        use: 'babel-loader',
+        include: [ path.resolve(__dirname, '../src/renderer') ],
+        exclude: /node_modules/
+      },
+      {
+        test: /\.vue$/,
+        use: {
+          loader: 'vue-loader',
+          options: {
+            extractCSS: true,
+            loaders: {
+              sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1',
+              scss: 'vue-style-loader!css-loader!sass-loader',
+              less: 'vue-style-loader!css-loader!less-loader'
+            }
+          }
+        }
+      },
+      {
+        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
+        use: {
+          loader: 'url-loader',
+          query: {
+            limit: 10000,
+            name: 'imgs/[name].[ext]'
+          }
+        }
+      },
+      {
+        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
+        use: {
+          loader: 'url-loader',
+          query: {
+            limit: 10000,
+            name: 'fonts/[name].[ext]'
+          }
+        }
+      }
+    ]
+  },
+  plugins: [
+    new VueLoaderPlugin(),
+    new MiniCssExtractPlugin({filename: 'styles.css'}),
+    new HtmlWebpackPlugin({
+      filename: 'index.html',
+      template: path.resolve(__dirname, '../src/index.ejs'),
+      minify: {
+        collapseWhitespace: true,
+        removeAttributeQuotes: true,
+        removeComments: true
+      },
+      nodeModules: false
+    }),
+    new webpack.DefinePlugin({
+      'process.env.IS_WEB': 'true'
+    }),
+    new webpack.HotModuleReplacementPlugin(),
+    new webpack.NoEmitOnErrorsPlugin()
+  ],
+  output: {
+    filename: '[name].js',
+    path: path.join(__dirname, '../dist/web')
+  },
+  resolve: {
+    alias: {
+      '@': path.join(__dirname, '../src/renderer'),
+      'vue$': 'vue/dist/vue.esm.js'
+    },
+    extensions: ['.js', '.vue', '.json', '.css']
+  },
+  target: 'web'
+}
+
+/**
+ * Adjust webConfig for production settings
+ */
+if (process.env.NODE_ENV === 'production') {
+  webConfig.devtool = ''
+
+  webConfig.plugins.push(
+    new MinifyPlugin(),
+    new CopyWebpackPlugin([
+      {
+        from: path.join(__dirname, '../static'),
+        to: path.join(__dirname, '../dist/web/static'),
+        ignore: ['.*']
+      }
+    ]),
+    new webpack.DefinePlugin({
+      'process.env.NODE_ENV': '"production"'
+    }),
+    new webpack.LoaderOptionsPlugin({
+      minimize: true
+    })
+  )
+}
+
+module.exports = webConfig

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+.idea
+.DS_Store
+dist/electron/*
+dist/web/*
+build/*
+!build/icons
+node_modules/
+npm-debug.log
+npm-debug.log.*
+thumbs.db
+!.gitkeep
+file*.txt

BIN
bin/cert/Qt5Core.dll


BIN
bin/cert/cert.exe


BIN
bin/cert/libgcc_s_dw2-1.dll


BIN
bin/cert/libstdc++-6.dll


BIN
bin/cert/libwinpthread-1.dll


+ 28 - 0
bin/convert/colors.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE colormap [
+<!ELEMENT colormap (color)*>
+<!ELEMENT color (#PCDATA)>
+<!ATTLIST color name CDATA "0">
+<!ATTLIST color color CDATA "rgb(0,0,0)">
+<!ATTLIST color compliance CDATA "SVG">
+]>
+<!--
+  Associate a color name with its red, green, blue, and alpha intensities.
+
+  A number of methods and options require a color parameter. It is often
+  convenient to refer to a color by name (e.g. white) rather than by hex
+  value (e.g. #fff). This file maps a color name to its equivalent red,
+  green, blue, and alpha intensities (e.g. for white, red = 255, green =
+  255, blue = 255, and alpha = 0).
+-->
+<colormap>
+  <!-- <color name="none" color="rgba(0,0,0,0)" compliance="SVG, XPM"/> -->
+  <!-- <color name="black" color="rgb(0,0,0)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="red" color="rgb(255,0,0)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="magenta" color="rgb(255,0,255)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="green" color="rgb(0,128,0)" compliance="SVG"/> -->
+  <!-- <color name="cyan" color="rgb(0,255,255)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="blue" color="rgb(0,0,255)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="yellow" color="rgb(255,255,0)" compliance="SVG, X11, XPM"/> -->
+  <!-- <color name="white" color="rgb(255,255,255)" compliance="SVG, X11"/> -->
+</colormap>

+ 26 - 0
bin/convert/configure.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuremap [
+  <!ELEMENT configuremap (configure)+>
+  <!ATTLIST configuremap xmlns CDATA #FIXED ''>
+  <!ELEMENT configure EMPTY>
+  <!ATTLIST configure xmlns CDATA #FIXED '' name NMTOKEN #REQUIRED
+    value CDATA #REQUIRED>
+]>
+<!--
+  ImageMagick build configuration.
+-->
+<configuremap>
+  <configure name="CC" value="VS2019"/>
+  <configure name="COPYRIGHT" value="Copyright (C) 1999-2021 ImageMagick Studio LLC"/>
+  <configure name="CXX" value="VS2019"/>
+  <configure name="DOCUMENTATION_PATH" value="unavailable"/>
+  <configure name="LIB_VERSION_NUMBER" value="7,0,11,12"/>
+  <configure name="LIB_VERSION" value="0x70B"/>
+  <configure name="NAME" value="ImageMagick"/>
+  <configure name="QuantumDepth" value="1"/>
+  <configure name="RELEASE_DATE" value="2021-05-09"/>
+  <configure name="TARGET_CPU" value="x86"/>
+  <configure name="TARGET_OS" value="Windows"/>
+  <configure name="VERSION" value="7.0.11"/>
+  <configure name="WEBSITE" value="https://imagemagick.org"/>
+</configuremap>

BIN
bin/convert/convert.exe


+ 102 - 0
bin/convert/delegates.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!DOCTYPE delegatemap [
+<!ELEMENT delegatemap (delegate)+>
+<!ELEMENT delegate (#PCDATA)>
+<!ATTLIST delegate decode CDATA #IMPLIED>
+<!ATTLIST delegate encode CDATA #IMPLIED>
+<!ATTLIST delegate mode CDATA #IMPLIED>
+<!ATTLIST delegate spawn CDATA #IMPLIED>
+<!ATTLIST delegate stealth CDATA #IMPLIED>
+<!ATTLIST delegate thread-support CDATA #IMPLIED>
+<!ATTLIST delegate command CDATA #REQUIRED>
+]>
+<!--
+  Delegate command file.
+
+  Commands which specify
+
+    decode="in_format" encode="out_format"
+
+  specify the rules for converting from in_format to out_format These
+  rules may be used to translate directly between formats.
+
+  Commands which specify only
+
+    decode="in_format"
+
+  specify the rules for converting from in_format to some format that
+  ImageMagick will automatically recognize. These rules are used to
+  decode formats.
+
+  Commands which specify only
+
+   encode="out_format"
+
+  specify the rules for an "encoder" which may accept any input format.
+
+  For delegates other than ps:alpha, ps:color, ps:mono, and mpeg-encode the
+  substitution rules are as follows:
+
+    %i  input image filename
+    %o  output image filename
+    %u  unique temporary filename
+    %#  input image signature
+    %b  image file size
+    %c  input image comment
+    %g  image geometry
+    %h  image rows (height)
+    %k  input image number colors
+    %l  image label
+    %m  input image format
+    %p  page number
+    %q  input image depth
+    %s  scene number
+    %w  image columns (width)
+    %x  input image x resolution
+    %y  input image y resolution
+
+-->
+<delegatemap>
+  <delegate decode="bpg" command="cmd.exe /c (&quot;bpgdec&quot; -b 16 -o &quot;%o.png&quot; &quot;%i&quot;) &amp; (move &quot;%o.png&quot; &quot;%o&quot; >nul)"/>
+  <delegate decode="png" encode="bpg" command="&quot;bpgenc&quot; -b 12 -q %~ -o &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="browse" stealth="True" spawn="True" command="cmd.exe /c start &quot;&quot; https://imagemagick.org/"/>
+  <delegate decode="dng:decode" stealth="True" command="dcraw.exe -6 -W -O &quot;%u.ppm&quot; &quot;%i&quot;"/>
+  <delegate decode="dot" command="dot -Tps &quot;%i&quot; -o &quot;%o&quot;"/>
+  <delegate decode="dvi" command="dvips -q -o &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="edit" stealth="True" command="notepad &quot;%o&quot;"/>
+  <delegate decode="eps" encode="pdf" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=pdfwrite &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="eps" encode="ps" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="hpg" command="hp2xx -q -m eps -f &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="hpgl" command="hp2xx -q -m eps -f &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="htm" command="html2ps -U -o &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="html" command="html2ps -U -o &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="jxr" command="cmd.exe /c (move &quot;%i&quot; &quot;%i.jxr&quot; >nul) &amp; (&quot;JXRDecApp.exe&quot; -i &quot;%i.jxr&quot; -o &quot;%o.pnm&quot;) &amp; (move &quot;%i.jxr&quot; &quot;%i&quot; >nul) &amp; (move &quot;%o.pnm&quot; &quot;%o&quot; >nul)"/>
+  <delegate decode="pcl:cmyk" stealth="True" command="&quot;pcl6.exe&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pamcmyk32&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="pcl:color" stealth="True" command="&quot;pcl6.exe&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=ppmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="pcl:mono" stealth="True" command="&quot;pcl6.exe&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pbmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="pdf" encode="eps" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=eps2write &quot;-sPDFPassword=%a&quot; &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="pdf" encode="ps" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write -&quot;sPDFPassword=%a&quot; &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="pgp" command="pgpv -fq &quot;%i&quot;"/>
+  <delegate decode="png" encode="launch" spawn="True" mode="encode" command="imdisplay &quot;%i&quot;" />
+  <delegate decode="png" encode="show" spawn="True" mode="encode" command="imdisplay &quot;%i&quot;" />
+  <delegate decode="png" encode="win" spawn="True" mode="encode" command="imdisplay &quot;%i&quot;" />
+  <delegate decode="pnm" encode="ilbm" mode="encode" command="ppmtoilbm -24if &quot;%i&quot; &gt; &quot;%o&quot;"/>
+  <delegate decode="pnm" encode="jxr" command="cmd.exe /c (move &quot;%i&quot; &quot;%i.pnm&quot; >nul) &amp; (&quot;JXREncApp.exe&quot; -i &quot;%i.pnm&quot; -o &quot;%o.jxr&quot;) &amp; (move &quot;%i.pnm&quot; &quot;%i&quot; >nul) &amp; (move &quot;%o.jxr&quot; &quot;%o&quot; >nul)"/>
+  <delegate decode="pnm" encode="wdp" command="cmd.exe /c (move &quot;%i&quot; &quot;%i.pnm&quot; >nul) &amp; (&quot;JXREncApp.exe&quot; -i &quot;%i.pnm&quot; -o &quot;%o.jxr&quot;) &amp; (move &quot;%i.pnm&quot; &quot;%i&quot; >nul) &amp; (move &quot;%o.jxr&quot; &quot;%o&quot; >nul)"/>
+  <delegate decode="ps:alpha" stealth="True" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pngalpha&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;"/>
+  <delegate decode="ps:cmyk" stealth="True" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pamcmyk32&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;"/>
+  <delegate decode="ps:color" stealth="True" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pnmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;"/>
+  <delegate decode="ps" encode="eps" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=eps2write &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="ps" encode="pdf" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pdfwrite &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
+  <delegate decode="ps:mono" stealth="True" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pnmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;"/>
+  <delegate decode="shtml" command="html2ps -U -o &quot;%o&quot; &quot;%i&quot;"/>
+  <delegate decode="svg" command="&quot;rsvg-convert&quot; -o &quot;%o&quot; &quot;%i&quot;"/>
+  <!-- Remove the extra space in - -export in the line below when you want to use inkscape -->
+  <!--<delegate decode="svg:decode" stealth="True" command="&quot;inkscape&quot; &quot;%s&quot; - -export-eps=&quot;%s&quot; - -export-dpi=&quot;%s&quot; - -export-background=&quot;%s&quot; - -export-background-opacity=&quot;%s&quot; &gt; &quot;%s&quot; 2&gt;&amp;1"/>-->
+  <delegate decode="wdp" command="cmd.exe /c (move &quot;%i&quot; &quot;%i.jxr&quot; >nul) &amp; (&quot;JXRDecApp.exe&quot; -i &quot;%i.jxr&quot; -o &quot;%o.pnm&quot;) &amp; (move &quot;%i.jxr&quot; &quot;%i&quot; >nul) &amp; (move &quot;%o.pnm&quot; &quot;%o&quot; >nul)"/>
+  <delegate decode="xps:cmyk" stealth="True" command="&quot;gxps.exe&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pamcmyk32&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="xps:color" stealth="True" command="&quot;gxps.exe&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pnmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="xps:mono" stealth="True" command="&quot;gxps.exe&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pbmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
+  <delegate decode="video:decode" command="&quot;ffmpeg.exe&quot; -nostdin -v -1 -i &quot;%i&quot; -vframes %S -vcodec pam -an -f rawvideo -y &quot;%u.pam&quot;"/>
+  <delegate encode="video:encode" stealth="True" command="&quot;ffmpeg.exe&quot; -nostdin -loglevel error -i &quot;%s%%d.pam&quot; %s &quot;%s.%s&quot;"/>
+</delegatemap>

+ 1714 - 0
bin/convert/english.xml

@@ -0,0 +1,1714 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE locale [
+<!ELEMENT locale (exception)>
+<!ELEMENT exception (ANY)+>
+<!ELEMENT warning (message)+>
+<!ELEMENT error (message)+>
+<!ELEMENT fatalerror (message)+>
+<!ELEMENT message (#PCDATA)>
+<!ATTLIST locale name CDATA #REQUIRED>
+<!ATTLIST message name CDATA #REQUIRED>
+]>
+<locale name="english">
+  <exception>
+    <blob>
+      <error>
+        <message name="UnableToOpenBlob">
+          unable to open image
+        </message>
+        <message name="UnableToOpenFile">
+          unable to open file
+        </message>
+        <message name="UnableToReadBlob">
+          unable to read blob
+        </message>
+        <message name="UnableToWriteBlob">
+          unable to write blob
+        </message>
+        <message name="UnrecognizedImageFormat">
+          unrecognized image format
+        </message>
+        <message name="ZeroLengthBlobNotPermitted">
+          zero-length blob not permitted
+        </message>
+      </error>
+    </blob>
+    <cache>
+      <error>
+        <message name="CacheResourcesExhausted">
+          cache resources exhausted
+        </message>
+        <message name="IncompatibleAPI">
+          incompatible API
+        </message>
+        <message name="NoPixelsDefinedInCache">
+          no pixels defined in cache
+        </message>
+        <message name="PixelCacheIsNotOpen">
+          pixel cache is not open
+        </message>
+        <message name="PixelsAreNotAuthentic">
+          pixels are not authentic
+        </message>
+        <message name="UnableToCloneCache">
+          unable to clone cache
+        </message>
+        <message name="UnableToExtendCache">
+          unable to extend cache
+        </message>
+        <message name="UnableToGetCacheNexus">
+          unable to get cache nexus
+        </message>
+        <message name="UnableToOpenPixelCache">
+          unable to open pixel cache
+        </message>
+        <message name="UnableToPersistPixelCache">
+          unable to persist pixel cache
+        </message>
+        <message name="UnableToReadPixelCache">
+          unable to read pixel cache
+        </message>
+        <message name="UnableToWritePixelCache">
+          unable to write pixel cache
+        </message>
+      </error>
+      <fatalerror>
+        <message name="UnableToAcquireCacheView">
+          unable to acquire cache view
+        </message>
+        <message name="UnableToExtendPixelCache">
+          unable to extend pixel cache
+        </message>
+      </fatalerror>
+    </cache>
+    <coder>
+      <error>
+        <message name="ColormapTypeNotSupported">
+          colormap type not supported
+        </message>
+        <message name="ColorspaceModelIsNotSupported">
+          colorspace model is not supported
+        </message>
+        <message name="CompressNotSupported">
+          compression not supported
+        </message>
+        <message name="DataEncodingSchemeIsNotSupported">
+          data encoding scheme is not supported
+        </message>
+        <message name="DataStorageTypeIsNotSupported">
+          data storage type is not supported
+        </message>
+        <message name="DeltaPNGNotSupported">
+          delta-PNG is not supported
+        </message>
+        <message name="EncryptedWPGImageFileNotSupported">
+          encrypted WPG image file not supported
+        </message>
+        <message name="FractalCompressNotSupported">
+          fractal compression not supported
+        </message>
+        <message name="ImageColumnOrRowSizeIsNotSupported">
+          image column or row size is not supported
+        </message>
+        <message name="ImageDoesNotHaveAClipMask">
+          image does not have a clip mask
+        </message>
+        <message name="ImageDoesNotHaveAnAlphaChannel">
+          image does not have an alpha channel
+        </message>
+        <message name="ImageDoesNotHaveAThumbnail">
+          image does not have a EXIF thumbnail
+        </message>
+        <message name="ImageIsNotTiled">
+          image is not tiled
+        </message>
+        <message name="IrregularChannelGeometryNotSupported">
+          irregular channel geometry not supported
+        </message>
+        <message name="JNGCompressNotSupported">
+          JNG compression not supported
+        </message>
+        <message name="JPEGCompressNotSupported">
+          JPEG compression not supported
+        </message>
+        <message name="JPEGEmbeddingFailed">
+          JPEG embedding failed
+        </message>
+        <message name="LocationTypeIsNotSupported">
+          location type is not supported
+        </message>
+        <message name="MapStorageTypeIsNotSupported">
+          map storage type is not supported
+        </message>
+        <message name="MultidimensionalMatricesAreNotSupported">
+          multi-dimensional matrices are not supported
+        </message>
+        <message name="MultipleRecordListNotSupported">
+          multiple record list not supported
+        </message>
+        <message name="NoBitmapOnClipboard">
+          no bitmap on clipboard
+        </message>
+        <message name="NoAPP1DataIsAvailable">
+          no APP1 data is available
+        </message>
+        <message name="No8BIMDataIsAvailable">
+          no 8BIM data is available
+        </message>
+        <message name="NoColorProfileIsAvailable">
+          no color profile is available
+        </message>
+        <message name="NoDataReturned">
+          no data returned
+        </message>
+        <message name="NoImageVectorGraphics">
+          no image vector graphics; unable to generate SVG
+        </message>
+        <message name="NoIPTCProfileAvailable">
+          no IPTC profile available
+        </message>
+        <message name="NumberOfImagesIsNotSupported">
+          number of images is not supported
+        </message>
+        <message name="OnlyContinuousTonePictureSupported">
+          only continuous tone picture supported
+        </message>
+        <message name="OnlyLevelZerofilesSupported">
+          only level zero files Supported
+        </message>
+        <message name="PNGCompressNotSupported">
+          PNG compression not supported
+        </message>
+        <message name="RLECompressNotSupported">
+          RLE compression not supported
+        </message>
+        <message name="UnableToCopyProfile">
+          unable to copy profile
+        </message>
+        <message name="UnableToCreateBitmap">
+          unable to create bitmap
+        </message>
+        <message name="UnableToCreateADC">
+          unable to create a DC
+        </message>
+        <message name="UnableToDecompressImage">
+          unable to decompress image
+        </message>
+        <message name="UnableToWriteMPEGParameters">
+          unable to write MPEG parameters
+        </message>
+        <message name="UnableToZipCompressImage">
+          unable to zip-compress image
+        </message>
+        <message name="ZIPCompressNotSupported">
+          ZIP compression not supported
+        </message>
+      </error>
+      <warning>
+        <message name="ExifProfileSizeExceedsLimit">
+          exif profile size exceeds limit and will be truncated
+        </message>
+        <message name="LosslessToLossyJPEGConversion">
+          lossless to lossy JPEG conversion
+        </message>
+      </warning>
+    </coder>
+    <configure>
+      <error>
+        <message name="IncludeElementNestedTooDeeply">
+          include element nested too deeply
+        </message>
+      </error>
+      <warning>
+        <message name="UnableToOpenConfigureFile">
+          unable to access configure file
+        </message>
+        <message name="UnableToOpenModuleFile">
+          unable to open module file
+        </message>
+      </warning>
+    </configure>
+    <corrupt>
+      <image>
+        <error>
+          <message name="AnErrorHasOccurredReadingFromFile">
+            an error has occurred reading from file
+          </message>
+          <message name="AnErrorHasOccurredWritingToFile">
+            an error has occurred writing to file
+          </message>
+          <message name="CipherSupportNotEnabled">
+            cipher support not enabled
+          </message>
+          <message name="ColormapExceeds256Colors">
+            colormap exceeded 256 colors
+          </message>
+          <message name="CorruptImage">
+            corrupt image
+          </message>
+          <message name="FileFormatVersionMismatch">
+            file format version mismatch
+          </message>
+          <message name="ImageDepthNotSupported">
+            image depth not supported
+          </message>
+          <message name="ImageFileDoesNotContainAnyImageData">
+            image file does not contain any image data
+          </message>
+          <message name="ImageTypeNotSupported">
+            image type not supported
+          </message>
+          <message name="ImproperImageHeader">
+            improper image header
+          </message>
+          <message name="InsufficientImageDataInFile">
+            insufficient image data in file
+          </message>
+          <message name="InvalidColormapIndex">
+            invalid colormap index
+          </message>
+          <message name="InvalidPixel">
+            invalid pixel
+          </message>
+          <message name="LengthAndFilesizeDoNotMatch">
+            length and filesize do not match
+          </message>
+          <message name="MaximumChannelsExceeded">
+            maximum channels exceeded
+          </message>
+          <message name="MissingImageChannel">
+            missing image channel
+          </message>
+          <message name="NegativeOrZeroImageSize">
+            negative or zero image size
+          </message>
+          <message name="NonOS2HeaderSizeError">
+            non OS2 BMP header size less than 40
+          </message>
+          <message name="NotEnoughPixelData">
+            not enough pixel data
+          </message>
+          <message name="NotEnoughTiles">
+            not enough tiles found in level
+          </message>
+          <message name="TooMuchImageDataInFile">
+            too much image data in file
+          </message>
+          <message name="StaticPlanesValueNotEqualToOne">
+            static planes value not equal to 1
+          </message>
+          <message name="UnableToReadExtensionBlock">
+            unable to read extension block
+          </message>
+          <message name="UnableToReadImageHeader">
+            unable to read image header
+          </message>
+          <message name="UnableToReadImageData">
+            unable to read image data
+          </message>
+          <message name="UnableToRunlengthDecodeImage">
+            unable to runlength decode image
+          </message>
+          <message name="UnableToUncompressImage">
+            unable to uncompress image
+          </message>
+          <message name="UnexpectedEndOfFile">
+            unexpected end-of-file
+          </message>
+          <message name="UnexpectedSamplingFactor">
+            unexpected sampling factor
+          </message>
+          <message name="UnknownPatternType">
+            unknown pattern type
+          </message>
+          <message name="UnrecognizedAlphaChannelOption">
+            unrecognized alpha channel option
+          </message>
+          <message name="UnrecognizedImageCompression">
+            unrecognized compression
+          </message>
+          <message name="UnrecognizedNumberOfColors">
+            unrecognized number of colors
+          </message>
+          <message name="UnsupportedBitsPerPixel">
+            unsupported bits per pixel
+          </message>
+        </error>
+        <fatalerror>
+          <message name="UnableToPersistKey">
+            unable to persist key
+          </message>
+        </fatalerror>
+        <warning>
+          <message name="InsufficientImageDataInFile">
+            insufficient image data in file
+          </message>
+          <message name="LengthAndFilesizeDoNotMatch">
+            length and filesize do not match
+          </message>
+          <message name="SkipToSyncByte">
+            corrupt PCD image, skipping to sync byte
+          </message>
+        </warning>
+      </image>
+    </corrupt>
+    <delegate>
+      <error>
+        <message name="DelegateFailed">
+          delegate failed
+        </message>
+        <message name="FailedToComputeOutputSize">
+          failed to compute output size
+        </message>
+        <message name="FailedToRenderFile">
+          failed to render file
+        </message>
+        <message name="FailedToScanFile">
+          failed to scan file
+        </message>
+        <message name="NoTagFound">
+          no tag found
+        </message>
+        <message name="PCLDelegateFailed">
+          PCL delegate failed
+        </message>
+        <message name="PostscriptDelegateFailed">
+          Postscript delegate failed
+        </message>
+        <message name="UnableToCreateImage">
+          unable to create image
+        </message>
+        <message name="UnableToDecodeImageFile">
+          unable to decode image file
+        </message>
+        <message name="UnableToEncodeImageFile">
+          unable to encode image file
+        </message>
+        <message name="UnableToInitializeFPXLibrary">
+          unable to initialize FPX library
+        </message>
+        <message name="UnableToInitializeWMFLibrary">
+          unable to initialize WMF library
+        </message>
+        <message name="UnableToManageJP2Stream">
+          unable to manage JP2 stream
+        </message>
+        <message name="UnableToReadAspectRatio">
+          unable to read aspect ratio
+        </message>
+        <message name="UnableToReadSummaryInfo">
+          unable to read summary info
+        </message>
+        <message name="UnableToSetAffineMatrix">
+          unable to set affine matrix
+        </message>
+        <message name="UnableToSetAspectRatio">
+          unable to set aspect ratio
+        </message>
+        <message name="UnableToSetColorTwist">
+          unable to set color twist
+        </message>
+        <message name="UnableToSetContrast">
+          unable to set contrast
+        </message>
+        <message name="UnableToSetFilteringValue">
+          unable to set filtering value
+        </message>
+        <message name="UnableToSetImageTitle">
+          unable to set image title
+        </message>
+        <message name="UnableToSetJPEGLevel">
+          unable to set JPEG level
+        </message>
+        <message name="UnableToSetRegionOfInterest">
+          unable to set region of interest
+        </message>
+        <message name="UnableToSetSummaryInfo">
+          unable to set summary info
+        </message>
+        <message name="UnableToWriteSVGFormat">
+          unable to write SVG format
+        </message>
+        <message name="XPSDelegateFailed">
+          XPS delegate failed
+        </message>
+      </error>
+    </delegate>
+    <draw>
+      <error>
+        <message name="AlreadyPushingPatternDefinition">
+          already pushing pattern definition
+        </message>
+        <message name="NonconformingDrawingPrimitiveDefinition">
+          non-conforming drawing primitive definition
+        </message>
+        <message name="NotARelativeURL">
+          not a relative URL
+        </message>
+        <message name="NotCurrentlyPushingPatternDefinition">
+          not currently pushing pattern definition
+        </message>
+        <message name="SegmentStackOverflow">
+          segment stack overflow
+        </message>
+        <message name="TooManyBezierCoordinates">
+          too many bezier coordinates
+        </message>
+        <message name="UnableToPrint">
+          unable to print
+        </message>
+        <message name="UnbalancedGraphicContextPushPop">
+          unbalanced graphic context push-pop
+        </message>
+        <message name="URLNotFound">
+          URL not found
+        </message>
+        <message name="VectorGraphicsNestedTooDeeply">
+          vector graphics nested too deeply
+        </message>
+      </error>
+    </draw>
+    <file>
+      <open>
+        <error>
+          <message name="AnErrorHasOccurredReadingFromFile">
+            an error has occurred reading from file
+          </message>
+          <message name="UnableToCreateTemporaryFile">
+            unable to create temporary file
+          </message>
+          <message name="UnableToOpenFile">
+            unable to open file
+          </message>
+          <message name="UnableToWriteFile">
+            unable to write file
+          </message>
+        </error>
+      </open>
+    </file>
+    <image>
+      <error>
+        <message name="AngleIsDiscontinuous">
+          angle is discontinuous
+        </message>
+        <message name="ColormappedImageRequired">
+          colormapped image required
+        </message>
+        <message name="ColorSeparatedImageRequired">
+          color separated image required
+        </message>
+        <message name="ColorspaceColorProfileMismatch">
+          color profile operates on another colorspace
+        </message>
+        <message name="ImageDepthNotSupported">
+          image depth not supported
+        </message>
+        <message name="ImageSequenceRequired">
+          image sequence is required
+        </message>
+        <message name="ImageMorphologyDiffers">
+          image morphology differs
+        </message>
+        <message name="ImageListRequired">
+          image list is required
+        </message>
+        <message name="ImageSizeDiffers">
+          image size differs
+        </message>
+        <message name="ImagesTooDissimilar">
+          images too dissimilar
+        </message>
+        <message name="LeftAndRightImageSizesDiffer">
+          left and right image sizes differ
+        </message>
+        <message name="NegativeOrZeroImageSize">
+          negative or zero image size
+        </message>
+        <message name="NoImagesWereFound">
+          no images were found
+        </message>
+        <message name="NoImagesWereLoaded">
+          no images were loaded
+        </message>
+        <message name="TooManyClusters">
+          too many cluster
+        </message>
+        <message name="UnableToCreateColorTransform">
+          unable to create color transform
+        </message>
+        <message name="WidthOrHeightExceedsLimit">
+          width or height exceeds limit
+        </message>
+      </error>
+      <warning>
+        <message name="AssociateProfile">
+          associate profile with image, a source and destination color profile required for transform
+        </message>
+        <message name="UnableToTransformColorspace">
+          unable to transform colorspace
+        </message>
+      </warning>
+    </image>
+    <filter>
+      <error>
+        <message name="FilterFailed">
+          filter failed
+        </message>
+      </error>
+    </filter>
+    <missing>
+      <delegate>
+        <error>
+          <message name="DelegateLibrarySupportNotBuiltIn">
+            delegate library support not built-in
+          </message>
+          <message name="NoDecodeDelegateForThisImageFormat">
+            no decode delegate for this image format
+          </message>
+          <message name="NoEncodeDelegateForThisImageFormat">
+            no encode delegate for this image format
+          </message>
+        </error>
+        <warning>
+          <message name="DelegateLibrarySupportNotBuiltIn">
+            delegate library support not built-in
+          </message>
+          <message name="FreeTypeLibraryIsNotAvailable">
+            FreeType library is not available
+          </message>
+          <message name="LCMSLibraryIsNotAvailable">
+            LCMS color profile library is not available
+          </message>
+          <message name="NoEncodeDelegateForThisImageFormat">
+            no encode delegate for this image format
+          </message>
+        </warning>
+      </delegate>
+    </missing>
+    <module>
+      <error>
+        <message name="ImageCoderSignatureMismatch">
+          image coder signature mismatch
+        </message>
+        <message name="ImageFilterSignatureMismatch">
+          image filter signature mismatch
+        </message>
+        <message name="UnableToLoadModule">
+          unable to load module
+        </message>
+        <message name="UnableToRegisterImageFormat">
+          unable to register image format
+        </message>
+      </error>
+      <fatalerror>
+        <message name="UnableToInitializeModuleLoader">
+          unable to initialize module loader
+        </message>
+      </fatalerror>
+      <warning>
+        <message name="UnableToCloseModule">
+          unable to close module
+        </message>
+      </warning>
+    </module>
+    <option>
+      <error>
+        <message name="ClutImageRequired">
+          color lookup table image required
+        </message>
+        <message name="CompositeImageRequired">
+          composite image required
+        </message>
+        <message name="CurlyBracesNestedTooDeeply">
+          curly braces nested too deeply
+        </message>
+        <message name="DeprecatedOptionNoCode">
+          option deprecated, unable to execute
+        </message>
+        <message name="DivideByZero">
+          divide by zero
+        </message>
+        <message name="FrameIsLessThanImageSize">
+          frame is less than image size
+        </message>
+        <message name="GeometryDimensionsAreZero">
+          geometry dimensions are zero
+        </message>
+        <message name="GeometryDoesNotContainImage">
+          geometry does not contain image
+        </message>
+        <message name="ImageSequenceRequired">
+          image sequence is required
+        </message>
+        <message name="InterpretPropertyFailure">
+          failure to interpret image property escapes
+        </message>
+        <message name="InvalidArgument">
+          invalid argument for option
+        </message>
+        <message name="InvalidUseOfOption">
+          invalid use of option
+        </message>
+        <message name="InvalidGeometry">
+          invalid geometry
+        </message>
+        <message name="InvalidImageIndex">
+          invalid image index
+        </message>
+        <message name="InvalidNumberList">
+          invalid list of numbers
+        </message>
+        <message name="InvalidSetting">
+          invalid setting
+        </message>
+        <message name="ImagesAreNotTheSameSize">
+          images are not the same size
+        </message>
+        <message name="ImagePagesAreNotCoalesced">
+          image pages are not coalesced
+        </message>
+        <message name="ImageSizeMustExceedBevelWidth">
+          size must exceed bevel width
+        </message>
+        <message name="ImageWidthsOrHeightsDiffer">
+          image widths or heights differ
+        </message>
+        <message name="KernelWidthMustBeAnOddNumber">
+          kernel width must be an odd number
+        </message>
+        <message name="MapImageRequired">
+          map image required
+        </message>
+        <message name="MissingArgument">
+          missing required argument
+        </message>
+        <message name="MissingAnImageFilename">
+        <!-- FUTURE: Depreciate using MissingOutputFilename -->
+          missing an image filename
+        </message>
+        <message name="MissingExpression">
+          missing expression
+        </message>
+        <message name="MissingNullSeparator">
+          missing Null Image List Separator
+        </message>
+        <message name="MissingOutputFilename">
+          missing output filename
+        </message>
+        <message name="MustSpecifyAnImageName">
+          must specify an image name
+        </message>
+        <message name="MustSpecifyImageSize">
+          must specify image size
+        </message>
+        <message name="NoBlobDefined">
+          no Binary Large OBjects defined
+        </message>
+        <message name="NoClipPathDefined">
+          no clip path defined
+        </message>
+        <message name="NoImagesForWrite">
+          no images for write
+        </message>
+        <message name="NoImagesFound">
+          no images found for operation
+        </message>
+        <message name="NoImagesDefined">
+          no images defined
+        </message>
+        <message name="NoImageVectorGraphics">
+          no image vector graphics
+        </message>
+        <message name="NoSuchImage">
+          no such image
+        </message>
+        <message name="NoSuchImageChannel">
+          no such image channel
+        </message>
+        <message name="NoSuchOption">
+          no such option
+        </message>
+        <message name="NonZeroWidthAndHeightRequired">
+          non-zero width and height required
+        </message>
+        <message name="NotEnoughParameters">
+          not enough parameters
+        </message>
+        <message name="ParenthesisNestedTooDeeply">
+          parenthesis nested too deeply
+        </message>
+        <message name="ReferenceImageRequired">
+          reference image required
+        </message>
+        <message name="ReferenceIsNotMyType">
+          reference is not my type
+        </message>
+        <message name="SetReadOnlyProperty">
+          attempt to set read-only property
+        </message>
+        <message name="SteganoImageRequired">
+          stegano image required
+        </message>
+        <message name="StereoImageRequired">
+          stereo image required
+        </message>
+        <message name="SubimageSpecificationReturnsNoImages">
+          subimage specification returns no images
+        </message>
+        <message name="TwoOrMoreImagesRequired">
+          two or more images required
+        </message>
+        <message name="UnableToAccessPath">
+          unable to access file path
+        </message>
+        <message name="UnableToOpenFile">
+          unable to open file
+        </message>
+        <message name="UnableToParseExpression">
+          unable to parse expression
+        </message>
+        <message name="UnableToParseKernel">
+          unable to parse kernel string
+        </message>
+        <message name="UnbalancedBraces">
+          unbalanced braces
+        </message>
+        <message name="UnbalancedParenthesis">
+          unbalanced parenthesis
+        </message>
+        <message name="UndefinedVariable">
+          undefined variable
+        </message>
+        <message name="UnrecognizedAttribute">
+          unrecognized attribute
+        </message>
+        <message name="UnrecognizedChannelType">
+          unrecognized channel type
+        </message>
+        <message name="UnrecognizedColor">
+          unrecognized color
+        </message>
+        <message name="UnrecognizedColorspace">
+          unrecognized colorspace
+        </message>
+        <message name="UnrecognizedComposeOperator">
+          unrecognized compose operator
+        </message>
+        <message name="UnrecognizedCompressType">
+          unrecognized compress type
+        </message>
+        <message name="UnrecognizedDirectionType">
+          unrecognized direction type
+        </message>
+        <message name="UnrecognizedDisposeMethod">
+          unrecognized dispose method
+        </message>
+        <message name="UnrecognizedDistortMethod">
+          unrecognized distortion method
+        </message>
+        <message name="UnrecognizedDitherMethod">
+          unrecognized dither method
+        </message>
+        <message name="UnrecognizedEndianType">
+          unrecognized endian type
+        </message>
+        <message name="UnrecognizedElement">
+          unrecognized element
+        </message>
+        <message name="UnrecognizedEvaluateOperator">
+          unrecognized evaluate operator
+        </message>
+        <message name="UnrecognizedEventType">
+          unrecognized event type
+        </message>
+        <message name="UnrecognizedFunction">
+          unrecognized function
+        </message>
+        <message name="UnrecognizedGravityType">
+          unrecognized gravity type
+        </message>
+        <message name="UnrecognizedImageCompression">
+          unrecognized image compression
+        </message>
+        <message name="UnrecognizedImageFilter">
+          unrecognized image filter
+        </message>
+        <message name="UnrecognizedImageFormat">
+          unrecognized image format
+        </message>
+        <message name="UnrecognizedImageMode">
+          unrecognized image mode
+        </message>
+        <message name="UnrecognizedImageOrientation">
+          unrecognized image orientation
+        </message>
+        <message name="UnrecognizedImageType">
+          unrecognized image type
+        </message>
+        <message name="UnrecognizedIntentType">
+          unrecognized intent type
+        </message>
+        <message name="UnrecognizedInterlaceType">
+          unrecognized interlace type
+        </message>
+        <message name="UnrecognizedInterpolateMethod">
+          unrecognized interpolate method
+        </message>
+        <message name="UnrecognizedKernelType">
+          unrecognized kernel type
+        </message>
+        <message name="UnrecognizedListType">
+          unrecognized list type
+        </message>
+        <message name="UnrecognizedMetricType">
+          unrecognized metric type
+        </message>
+        <message name="UnrecognizedModeType">
+          unrecognized mode type
+        </message>
+        <message name="UnrecognizedMorphologyMethod">
+          unrecognized morphology method
+        </message>
+        <message name="UnrecognizedOption">
+          unrecognized option
+        </message>
+        <message name="UnrecognizedPerlMagickMethod">
+          unrecognized PerlMagick method
+        </message>
+        <message name="UnrecognizedPixelMap">
+          unrecognized pixel map
+        </message>
+        <message name="UnrecognizedPreviewType">
+          unrecognized preview type
+        </message>
+        <message name="UnrecognizedResourceType">
+          unrecognized resource type
+        </message>
+        <message name="UnrecognizedSparseColorMethod">
+          unrecognized sparse color method
+        </message>
+        <message name="UnrecognizedStorageType">
+          unrecognized storage type
+        </message>
+        <message name="UnrecognizedStretchType">
+          unrecognized stretch type
+        </message>
+        <message name="UnrecognizedStyleType">
+          unrecognized style type
+        </message>
+        <message name="UnrecognizedType">
+          unrecognized type
+        </message>
+        <message name="UnrecognizedUnitsType">
+          unrecognized units type
+        </message>
+        <message name="UnrecognizedValidateType">
+          unrecognized validate type
+        </message>
+        <message name="UnrecognizedVirtualPixelMethod">
+          unrecognized virtual pixel method
+        </message>
+        <message name="XmlInvalidAttribute">
+          XML invalid attribute
+        </message>
+        <message name="XmlInvalidContent">
+          XML invalid content
+        </message>
+        <message name="XmlMissingAttribute">
+          XML missing required attribute
+        </message>
+        <message name="XmlMissingContent">
+          XML missing required content
+        </message>
+        <message name="XmlMissingElement">
+          XML missing required element
+        </message>
+      </error>
+      <fatalerror>
+        <message name="FilenameTruncated">
+          image filename truncated
+        </message>
+        <message name="MissingAnImageFilename">
+          missing an image filename
+        </message>
+        <message name="ScriptIsBinary">
+          script is binary
+        </message>
+        <message name="ScriptTokenMemoryFailed">
+          script token too big
+        </message>
+        <message name="ScriptUnbalancedQuotes">
+          script token with unbalanced quotes
+        </message>
+        <message name="UnableToOpenScript">
+          unable to open script
+        </message>
+        <message name="UnrecognizedColormapType">
+          unrecognized colormap type
+        </message>
+        <message name="UnrecognizedColorspaceType">
+          unrecognized colorspace type
+        </message>
+        <message name="UnrecognizedEndianType">
+          unrecognized endian type
+        </message>
+        <message name="UnrecognizedImageCompressionType">
+          unrecognized compression type
+        </message>
+        <message name="UnrecognizedImageType">
+          unrecognized image type
+        </message>
+        <message name="UnrecognizedInterlaceType">
+          unrecognized interlace type
+        </message>
+        <message name="UnrecognizedListType">
+          unrecognized list type
+        </message>
+        <message name="UnrecognizedDisposeMethod">
+          unrecognized dispose method
+        </message>
+        <message name="UnrecognizedOption">
+          unrecognized option
+        </message>
+        <message name="UnrecognizedResourceType">
+          unrecognized resource type
+        </message>
+        <message name="UnrecognizedVirtualPixelMethod">
+          unrecognized virtual pixel method
+        </message>
+      </fatalerror>
+      <warning>
+        <message name="ReplacedOption">
+          option has been replaced
+        </message>
+        <message name="GeometryDoesNotContainImage">
+          geometry does not contain image
+        </message>
+        <message name="InterpretPropertyFailure">
+          failure in interpret image property escapes
+        </message>
+        <message name="InvalidSetting">
+          invalid setting
+        </message>
+        <message name="NoImageForProperty">
+          no image to apply a property
+        </message>
+        <message name="NoImageInfoForProperty">
+          no image info (wand) to apply a property
+        </message>
+        <message name="NoSuchElement">
+          no such element in list
+        </message>
+        <message name="SetReadOnlyProperty">
+          attempt to set read-only property
+        </message>
+        <message name="UnknownImageProperty">
+          unknown image property
+        </message>
+        <message name="UnrecognizedColor">
+          unrecognized color
+        </message>
+        <message name="ZeroTimeAnimation">
+          animation only contains zero time delays
+        </message>
+      </warning>
+    </option>
+    <policy>
+      <error>
+        <message name="NotAuthorized">
+          attempt to perform an operation not allowed by the security policy
+        </message>
+      </error>
+    </policy>
+    <registry>
+      <error>
+        <message name="UnableToGetRegistryID">
+          unable to get registry ID
+        </message>
+        <message name="UnableToSetRegistry">
+          unable to set registry
+        </message>
+      </error>
+    </registry>
+    <resource>
+      <limit>
+        <error>
+          <message name="ListLengthExceedsLimit">
+            list length exceeds limit
+          </message>
+          <message name="MemoryAllocationFailed">
+            memory allocation failed
+          </message>
+          <message name="PixelCacheAllocationFailed">
+            pixel cache allocation failed
+          </message>
+          <message name="TooManyExceptions">
+            too many exceptions
+          </message>
+          <message name="TooManyObjects">
+            too many objects
+          </message>
+          <message name="UnableToAcquireString">
+            unable to acquire string
+          </message>
+          <message name="UnableToAllocateColormap">
+            unable to allocate colormap
+          </message>
+          <message name="UnableToConvertFont">
+            unable to convert font
+          </message>
+          <message name="UnableToCreateColormap">
+            unable to create colormap
+          </message>
+          <message name="UnableToDitherImage">
+            unable to dither image
+          </message>
+          <message name="UnableToClonePackageInfo">
+            unable to clone package info
+          </message>
+          <message name="UnableToGetPackageInfo">
+            unable to get package info
+          </message>
+        </error>
+        <fatalerror>
+          <message name="TimeLimitExceeded">
+            time limit exceeded
+          </message>
+          <message name="UnableToAllocateDashPattern">
+            unable to allocate dash pattern
+          </message>
+          <message name="UnableToAllocateDerivatives">
+            unable to allocate derivates
+          </message>
+          <message name="UnableToAllocateGammaMap">
+            unable to allocate gamma map
+          </message>
+          <message name="UnableToAllocateImage">
+            unable to allocate image
+          </message>
+          <message name="UnableToAllocateImagePixels">
+            unable to allocate image pixels
+          </message>
+          <message name="UnableToDestroySemaphore">
+            unable to destroy semaphore
+          </message>
+          <message name="UnableToInstantiateSemaphore">
+            unable to instantiate semaphore
+          </message>
+          <message name="UnableToAcquireString">
+            unable to allocate string
+          </message>
+          <message name="MemoryAllocationFailed">
+            Memory allocation failed
+          </message>
+          <message name="UnableToConcatenateString">
+            unable to concatenate string
+          </message>
+          <message name="UnableToConvertText">
+            unable to convert text
+          </message>
+          <message name="UnableToCreateColormap">
+            unable to create colormap
+          </message>
+          <message name="UnableToCloneImage">
+            unable to clone image
+          </message>
+          <message name="UnableToDisplayImage">
+            unable to display image
+          </message>
+          <message name="UnableToEscapeString">
+            unable to escape string
+          </message>
+          <message name="UnableToInterpretMSLImage">
+            unable to interpret MSL image
+          </message>
+          <message name="UnableToLockSemaphore">
+            unable to lock semaphore
+          </message>
+          <message name="UnableToUnlockSemaphore">
+            unable to unlock semaphore
+          </message>
+        </fatalerror>
+        <warning>
+          <message name="MemoryAllocationFailed">
+            memory allocation failed
+          </message>
+        </warning>
+      </limit>
+    </resource>
+    <type>
+      <error>
+        <message name="FontSubstitutionRequired">
+          font substitution required
+        </message>
+        <message name="UnableToGetTypeMetrics">
+          unable to get type metrics
+        </message>
+        <message name="UnableToInitializeFreetypeLibrary">
+          unable to initialize freetype library
+        </message>
+        <message name="UnableToReadFont">
+          unable to read font
+        </message>
+        <message name="UnrecognizedFontEncoding">
+          unrecognized font encoding
+        </message>
+      </error>
+      <warning>
+        <message name="UnableToReadFont">
+          unable to read font
+        </message>
+      </warning>
+    </type>
+    <stream>
+      <error>
+        <message name="ImageDoesNotContainTheStreamGeometry">
+          image does not contain the stream geometry
+        </message>
+        <message name="NoStreamHandlerIsDefined">
+          no stream handler is defined
+        </message>
+        <message name="PixelCacheIsNotOpen">
+          pixel cache is not open
+        </message>
+      </error>
+    </stream>
+    <wand>
+      <error>
+        <message name="InvalidColormapIndex">
+          invalid colormap index
+        </message>
+        <message name="ZeroRegionSize">
+          zero region size
+        </message>
+        <message name="UnableToOpenFile">
+          unable to open file
+        </message>
+        <message name="QuantumDepthMismatch">
+          wand quantum depth does not match that of the core API
+        </message>
+        <message name="ContainsNoImages">
+          wand contains no images
+        </message>
+        <message name="ContainsNoIterators">
+          wand contains no iterators
+        </message>
+      </error>
+    </wand>
+    <xserver>
+      <error>
+        <message name="ColorIsNotKnownToServer">
+          color is not known to server
+        </message>
+        <message name="NoWindowWithSpecifiedIDExists">
+          no window with specified ID exists
+        </message>
+        <message name="StandardColormapIsNotInitialized">
+          standard Colormap is not initialized
+        </message>
+        <message name="UnableToConnectToRemoteDisplay">
+          unable to connect to remote display
+        </message>
+        <message name="UnableToCreateBitmap">
+          unable to create bitmap
+        </message>
+        <message name="UnableToCreateColormap">
+          unable to create colormap
+        </message>
+        <message name="UnableToCreatePixmap">
+          unable to create pixmap
+        </message>
+        <message name="UnableToCreateProperty">
+          unable to create property
+        </message>
+        <message name="UnableToCreateStandardColormap">
+          unable to create standard colormap
+        </message>
+        <message name="UnableToDisplayImageInfo">
+          unable to display image info
+        </message>
+        <message name="UnableToGetProperty">
+          unable to get property
+        </message>
+        <message name="UnableToGetStandardColormap">
+          unable to get Standard Colormap
+        </message>
+        <message name="UnableToGetVisual">
+          unable to get visual
+        </message>
+        <message name="UnableToGrabMouse">
+          unable to grab mouse
+        </message>
+        <message name="UnableToLoadFont">
+          unable to load font
+        </message>
+        <message name="UnableToMatchVisualToStandardColormap">
+          unable to match visual to Standard Colormap
+        </message>
+        <message name="UnableToOpenXServer">
+          unable to open X server
+        </message>
+        <message name="UnableToReadXWindowAttributes">
+          unable to read X window attributes
+        </message>
+        <message name="UnableToReadXWindowImage">
+          unable to read X window image
+        </message>
+        <message name="UnrecognizedColormapType">
+          unrecognized colormap type
+        </message>
+        <message name="UnrecognizedGravityType">
+          unrecognized gravity type
+        </message>
+        <message name="UnrecognizedVisualSpecifier">
+          unrecognized visual specifier
+        </message>
+      </error>
+      <fatalerror>
+        <message name="UnableToCreateCursor">
+          unable to create X cursor
+        </message>
+        <message name="UnableToCreateGraphicContext">
+          unable to create graphic context
+        </message>
+        <message name="UnableToCreateStandardColormap">
+          unable to create standard colormap
+        </message>
+        <message name="UnableToCreateTextProperty">
+          unable to create text property
+        </message>
+        <message name="UnableToCreateXWindow">
+          unable to create X window
+        </message>
+        <message name="UnableToCreateXImage">
+          unable to create X image
+        </message>
+        <message name="UnableToCreateXPixmap">
+          unable to create X pixmap
+        </message>
+        <message name="UnableToDisplayImage">
+          unable to display image
+        </message>
+        <message name="UnableToGetVisual">
+          unable to get visual
+        </message>
+        <message name="UnableToGetPixelInfo">
+          unable to get pixel info
+        </message>
+        <message name="UnableToLoadFont">
+          unable to load font
+        </message>
+        <message name="UnableToMakeXWindow">
+          unable to make X window
+        </message>
+        <message name="UnableToOpenXServer">
+          unable to open X server
+        </message>
+        <message name="UnableToViewFonts">
+          unable to view fonts
+        </message>
+      </fatalerror>
+      <warning>
+        <message name="UsingDefaultVisual">
+          using default visual
+        </message>
+        <message name="UnableToGetVisual">
+          unable to get visual
+        </message>
+      </warning>
+    </xserver>
+  </exception>
+  <monitor>
+    <AddNoise>
+      <message name="Image">
+        add noise to image
+      </message>
+    </AddNoise>
+    <Append>
+      <message name="Image">
+        append image sequence
+      </message>
+    </Append>
+    <assign>
+      <message name="Image">
+        assign image colors
+      </message>
+    </assign>
+    <Average>
+      <message name="Image">
+        average image sequence
+      </message>
+    </Average>
+    <Blur>
+      <message name="Image">
+        blur image
+      </message>
+    </Blur>
+    <Chop>
+      <message name="Image">
+        chop image
+      </message>
+    </Chop>
+    <Classify>
+      <message name="Image">
+        classify image colors
+      </message>
+    </Classify>
+    <ColorReplace>
+      <message name="Image">
+        replace color in image
+      </message>
+    </ColorReplace>
+    <Colorize>
+      <message name="Image">
+        colorize image
+      </message>
+    </Colorize>
+    <Combine>
+      <message name="Image">
+        combine image
+      </message>
+    </Combine>
+    <ContrastStretch>
+      <message name="Image">
+         contrast-stretch image
+      </message>
+    </ContrastStretch>
+    <Convolve>
+      <message name="Image">
+        convolve image
+      </message>
+    </Convolve>
+    <Crop>
+      <message name="Image">
+        crop image
+      </message>
+    </Crop>
+    <Decode>
+      <message name="Image">
+        decode image
+      </message>
+    </Decode>
+    <Despeckle>
+      <message name="Image">
+        despeckle image
+      </message>
+    </Despeckle>
+    <Distort>
+      <message name="Image">
+        distort image
+      </message>
+    </Distort>
+    <Dither>
+      <message name="Image">
+        dither image colors
+      </message>
+    </Dither>
+    <DullContrast>
+      <message name="Image">
+        dull image contrast
+      </message>
+    </DullContrast>
+    <Encode>
+      <message name="Image">
+        encode image
+      </message>
+    </Encode>
+    <Equalize>
+      <message name="Image">
+        equalize image
+      </message>
+    </Equalize>
+    <Flip>
+      <message name="Image">
+        flip image
+      </message>
+    </Flip>
+    <Flop>
+      <message name="Image">
+        flop image
+      </message>
+    </Flop>
+    <Frame>
+      <message name="Image">
+        add frame to image
+      </message>
+    </Frame>
+    <Fx>
+      <message name="Image">
+        fx image
+      </message>
+    </Fx>
+    <GammaCorrect>
+      <message name="Image">
+        gamma correct image
+      </message>
+    </GammaCorrect>
+    <Histogram>
+      <message name="Image">
+        compute image histogram
+      </message>
+    </Histogram>
+    <Implode>
+      <message name="Image">
+        implode image
+      </message>
+    </Implode>
+    <Level>
+      <message name="Image">
+        level image
+      </message>
+    </Level>
+    <Load>
+      <message name="Image">
+        load image
+      </message>
+      <message name="Images">
+        load images
+      </message>
+    </Load>
+    <Magnfiy>
+      <message name="Image">
+        magnfiy image
+      </message>
+    </Magnfiy>
+    <MedianFilter>
+      <message name="Image">
+        filter image with neighborhood ranking
+      </message>
+    </MedianFilter>
+    <Minify>
+      <message name="Image">
+        minify image
+      </message>
+    </Minify>
+    <Modulate>
+      <message name="Image">
+        modulate image
+      </message>
+    </Modulate>
+    <Mogrify>
+      <message name="Image">
+        mogrify image
+      </message>
+    </Mogrify>
+    <Montage>
+      <message name="Image">
+        montage image
+      </message>
+    </Montage>
+    <Morph>
+      <message name="Image">
+        morph image sequence
+      </message>
+    </Morph>
+    <Mosaic>
+      <message name="Image">
+        mosaic image
+      </message>
+    </Mosaic>
+    <Negate>
+      <message name="Image">
+        negate image
+      </message>
+    </Negate>
+    <OilPaint>
+      <message name="Image">
+        oil paint image
+      </message>
+    </OilPaint>
+    <Opaque>
+      <message name="Image">
+        set opaque color in image
+      </message>
+    </Opaque>
+    <Plasma>
+      <message name="Image">
+        plasma image
+      </message>
+    </Plasma>
+    <Preview>
+      <message name="Image">
+        preview image
+      </message>
+    </Preview>
+    <Raise>
+      <message name="Image">
+        raise image
+      </message>
+    </Raise>
+    <Recolor>
+      <message name="Image">
+        recolor color image
+      </message>
+    </Recolor>
+    <Reduce>
+      <message name="Image">
+        reduce image colors
+      </message>
+    </Reduce>
+    <ReduceNoise>
+      <message name="Image">
+        reduce the image noise
+      </message>
+    </ReduceNoise>
+    <Render>
+      <message name="Image">
+        render image
+      </message>
+    </Render>
+    <Resize>
+      <message name="Image">
+        resize image
+      </message>
+    </Resize>
+    <RGBTransform>
+      <message name="Image">
+        RGB transform image
+      </message>
+    </RGBTransform>
+    <Roll>
+      <message name="Image">
+        roll image
+      </message>
+    </Roll>
+    <Rotate>
+      <message name="Image">
+        rotate image
+      </message>
+    </Rotate>
+    <Sample>
+      <message name="Image">
+        sample image
+      </message>
+    </Sample>
+    <Save>
+      <message name="Image">
+        save image
+      </message>
+      <message name="Images">
+        save images
+      </message>
+    </Save>
+    <Scale>
+      <message name="Image">
+        scale image
+      </message>
+    </Scale>
+    <Segment>
+      <message name="Image">
+        segment image
+      </message>
+    </Segment>
+    <Separate>
+      <message name="Image">
+        extract a channel from image
+      </message>
+    </Separate>
+    <SepiaTone>
+      <message name="Image">
+        sepia-tone image
+      </message>
+    </SepiaTone>
+    <Shade>
+      <message name="Image">
+        shade image
+      </message>
+    </Shade>
+    <Sharpen>
+      <message name="Image">
+        sharpen image
+      </message>
+    </Sharpen>
+    <SharpenContrast>
+      <message name="Image">
+        sharpen image contrast
+      </message>
+    </SharpenContrast>
+    <SigmoidalContrast>
+      <message name="Image">
+        sigmoidal contrast image
+      </message>
+    </SigmoidalContrast>
+    <Solarize>
+      <message name="Image">
+        solarize image
+      </message>
+    </Solarize>
+    <Splice>
+      <message name="Image">
+        splice image
+      </message>
+    </Splice>
+    <Spread>
+      <message name="Image">
+        spread image
+      </message>
+    </Spread>
+    <Stegano>
+      <message name="Image">
+        stegano image
+      </message>
+    </Stegano>
+    <Stereo>
+      <message name="Image">
+        stereo image
+      </message>
+    </Stereo>
+    <Swirl>
+      <message name="Image">
+        swirl image
+      </message>
+    </Swirl>
+    <Texture>
+      <message name="Image">
+        texture image
+      </message>
+    </Texture>
+    <Threshold>
+      <message name="Image">
+        threshold image
+      </message>
+    </Threshold>
+    <Tile>
+      <message name="Image">
+        tile image
+      </message>
+    </Tile>
+    <Tint>
+      <message name="Image">
+        tint image
+      </message>
+    </Tint>
+    <TransformRGB>
+      <message name="Image">
+        transform RGB image
+      </message>
+    </TransformRGB>
+    <Transparent>
+      <message name="Image">
+        set transparent color in image
+      </message>
+    </Transparent>
+    <Wave>
+      <message name="Image">
+        wave image
+      </message>
+    </Wave>
+    <Write>
+      <message name="Image">
+        write image
+      </message>
+    </Write>
+    <XShear>
+      <message name="Image">
+        x shear image
+      </message>
+    </XShear>
+    <YShear>
+      <message name="Image">
+        y shear image
+      </message>
+    </YShear>
+  </monitor>
+</locale>

BIN
bin/convert/gsdll32.dll


BIN
bin/convert/gswin32.exe


BIN
bin/convert/gswin32c.exe


BIN
bin/convert/identify.exe


+ 48 - 0
bin/convert/locale.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE localemap [
+  <!ELEMENT localemap (include)+>
+  <!ATTLIST localemap xmlns CDATA #FIXED ''>
+  <!ELEMENT include EMPTY>
+  <!ATTLIST include xmlns CDATA #FIXED '' file NMTOKEN #REQUIRED
+    locale NMTOKEN #REQUIRED>
+]>
+<localemap>
+  <include locale="no_NO.ISO-8859-1" file="bokmal.xml"/>
+  <include locale="ca_ES.ISO-8859-1" file="catalan.xml"/>
+  <include locale="hr_HR.ISO-8859-2" file="croatian.xml"/>
+  <include locale="cs_CZ.ISO-8859-2" file="czech.xml"/>
+  <include locale="da_DK.ISO-8859-1" file="danish.xml"/>
+  <include locale="de_DE.ISO-8859-1" file="deutsch.xml"/>
+  <include locale="nl_NL.ISO-8859-1" file="dutch.xml"/>
+  <include locale="C" file="english.xml"/>
+  <include locale="et_EE.ISO-8859-1" file="estonian.xml"/>
+  <include locale="fi_FI.ISO-8859-1" file="finnish.xml"/>
+  <include locale="fr_FR.ISO-8859-1" file="francais.xml"/>
+  <include locale="fr_FR.ISO-8859-1" file="francais.xml"/>
+  <include locale="fr_FR.UTF-8" file="francais.xml"/>
+  <include locale="gl_ES.ISO-8859-1" file="galego.xml"/>
+  <include locale="gl_ES.ISO-8859-1" file="galician.xml"/>
+  <include locale="de_DE.ISO-8859-1" file="german.xml"/>
+  <include locale="el_GR.ISO-8859-7" file="greek.xml"/>
+  <include locale="en_US.UTF-8" file="english.xml"/>
+  <include locale="iw_IL.ISO-8859-8" file="hebrew.xml"/>
+  <include locale="hr_HR.ISO-8859-2" file="hrvatski.xml"/>
+  <include locale="hu_HU.ISO-8859-2" file="hungarian.xml"/>
+  <include locale="is_IS.ISO-8859-1" file="icelandic.xml"/>
+  <include locale="it_IT.ISO-8859-1" file="italian.xml"/>
+  <include locale="ja_JP.eucJP" file="japanese.xml"/>
+  <include locale="ko_KR.eucKR" file="korean.xml"/>
+  <include locale="lt_LT.ISO-8859-13" file="lithuanian.xml"/>
+  <include locale="no_NO.ISO-8859-1" file="norwegian.xml"/>
+  <include locale="nn_NO.ISO-8859-1" file="nynorsk.xml"/>
+  <include locale="pl_PL.ISO-8859-2" file="polish.xml"/>
+  <include locale="pt_PT.ISO-8859-1" file="portuguese.xml"/>
+  <include locale="ro_RO.ISO-8859-2" file="romanian.xml"/>
+  <include locale="ru_RU.ISO-8859-5" file="russian.xml"/>
+  <include locale="sk_SK.ISO-8859-2" file="slovak.xml"/>
+  <include locale="sl_SI.ISO-8859-2" file="slovene.xml"/>
+  <include locale="es_ES.ISO-8859-1" file="spanish.xml"/>
+  <include locale="sv_SE.ISO-8859-1" file="swedish.xml"/>
+  <include locale="th_TH.TIS-620" file="thai.xml"/>
+  <include locale="tr_TR.ISO-8859-9" file="turkish.xml"/>
+</localemap>

+ 80 - 0
bin/convert/log.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE logmap [
+<!ELEMENT logmap (log)+>
+<!ELEMENT log (#PCDATA)>
+<!ATTLIST log events CDATA #IMPLIED>
+<!ATTLIST log output CDATA #IMPLIED>
+<!ATTLIST log filename CDATA #IMPLIED>
+<!ATTLIST log generations CDATA #IMPLIED>
+<!ATTLIST log limit CDATA #IMPLIED>
+<!ATTLIST log format CDATA #IMPLIED>
+]>
+<!--
+  Configure ImageMagick logger.
+
+  Choose from one or more these events separated by a comma:
+    all
+    accelerate
+    annotate
+    blob
+    cache
+    coder
+    command
+    configure
+    deprecate
+    draw
+    exception
+    locale
+    module
+    none
+    pixel
+    policy
+    resource
+    trace
+    transform
+    user
+    wand
+    x11
+
+  Choose one output handler:
+    console
+    debug
+    event
+    file
+    none
+    stderr
+    stdout
+
+  When output is to a file, specify the filename.  Embed %g in the filename to
+  support log generations.  Generations is the number of log files to retain.
+  Limit is the number of logging events before generating a new log generation.
+
+  The format of the log is defined by embedding special format characters:
+
+    %c   client
+    %d   domain
+    %e   event
+    %f   function
+    %g   generation
+    %i   thread id
+    %l   line
+    %m   module
+    %n   log name
+    %p   process id
+    %r   real CPU time
+    %t   wall clock time
+    %u   user CPU time
+    %v   version
+    %%   percent sign
+    \n   newline
+    \r   carriage return
+    xml
+-->
+<logmap>
+  <log events="None"/>
+  <log output="console"/>
+  <log filename="Magick-%g.log"/>
+  <log generations="3"/>
+  <log limit="2000"/>
+  <log format="%t %r %u %v %d %c[%p]: %m/%f/%l/%d\n  %e"/>
+</logmap>

+ 1146 - 0
bin/convert/mime.xml

@@ -0,0 +1,1146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mimemap [
+  <!ELEMENT mimemap (mime+)>
+  <!ELEMENT mime (#PCDATA)>
+  <!ATTLIST mime type CDATA #REQUIRED>
+  <!ATTLIST mime acronym CDATA #IMPLIED>
+  <!ATTLIST mime description CDATA #IMPLIED>
+  <!ATTLIST mime pattern CDATA #IMPLIED>
+  <!ATTLIST mime offset CDATA #IMPLIED>
+  <!ATTLIST mime data-type (string|byte|short|long) #IMPLIED>
+  <!ATTLIST mime endian (lsb|msb) #IMPLIED>
+  <!ATTLIST mime magic CDATA #IMPLIED>
+  <!ATTLIST mime mask CDATA #IMPLIED>
+  <!ATTLIST mime priority CDATA #IMPLIED>
+]>
+<!--
+  Configure ImageMagick mime types.
+-->
+<mimemap>
+  <mime type="application/andrew-inset" acronym="ATK" description="Andrew Toolkit" priority="100" pattern="*.ez" />
+  <mime type="application/illustrator" description="Adobe Illustrator document" priority="100" pattern="*.ai" />
+  <mime type="application/mac-binhex40" description="Macintosh BinHex-encoded file" data-type="string" offset="11" magic="must be converted with BinHex" priority="50" />
+  <mime type="application/mathematica" description="Mathematica Notebook" data-type="string" offset="0" magic="(************** Content-type: application/mathematica" priority="50" />
+  <mime type="application/mathematica" description="Mathematica Notebook" data-type="string" offset="100:256" magic="This notebook can be used on any computer system with Mathematica" priority="50" />
+  <mime type="application/mathematica" description="Mathematica Notebook" data-type="string" offset="10:256" magic="This is a Mathematica Notebook file. It contains ASCII text" priority="50" />
+  <mime type="application/mathematica" description="Mathematica Notebook" priority="100" pattern="*.nb" />
+  <mime type="application/mbox" description="mailbox file" data-type="string" offset="0" magic="From " priority="20" />
+  <mime type="application/octet-stream" description="unknown" priority="100" pattern="*.bin" />
+  <mime type="application/oda" acronym="ODA" description="Office Document Architecture" priority="100" pattern="*.oda" />
+  <mime type="application/pdf" description="Portable Document Format" data-type="string" offset="0" magic="%PDF-" priority="50" />
+  <mime type="application/pdf" acronym="PDF" description="Portable Document Format" priority="100" pattern="*.pdf" />
+  <mime type="application/xspf+xml" description="XML Shareable Playlist Format" data-type="string" offset="0:64" magic="&lt;playlist version=&quot;1" priority="50" />
+  <mime type="application/xspf+xml" description="XML Shareable Playlist Format" priority="100" pattern="*.xspf" />
+  <mime type="audio/x-iriver-pla" description="iRiver Playlist" data-type="string" offset="4" magic="iriver UMS PLA" priority="50" />
+  <mime type="audio/x-iriver-pla" description="iRiver Playlist" priority="100" pattern="*.pla" />
+  <mime type="application/pgp-encrypted" description="PGP/MIME-encrypted message header" data-type="string" offset="0" magic="-----BEGIN PGP MESSAGE-----" priority="50" />
+  <mime type="application/pgp-encrypted" description="PGP/MIME-encrypted message header" priority="100" pattern="*.pgp" />
+  <mime type="application/pgp-encrypted" description="PGP/MIME-encrypted message header" priority="100" pattern="*.gpg" />
+  <mime type="application/pgp-encrypted" description="PGP/MIME-encrypted message header" priority="100" pattern="*.asc" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="string" offset="0" magic="-----BEGIN PGP PUBLIC KEY BLOCK-----" priority="50" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="string" offset="0" magic="-----BEGIN PGP PRIVATE KEY BLOCK-----" priority="50" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="short" endian="MSB" offset="0" magic="0x9501" priority="50" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="short" endian="MSB" offset="0" magic="0x9500" priority="50" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="short" endian="MSB" offset="0" magic="0x9900" priority="50" />
+  <mime type="application/pgp-keys" description="Pretty Good Privacy" data-type="short" endian="MSB" offset="0" magic="0x9901" priority="50" />
+  <mime type="application/pgp-keys" acronym="PGP" description="Pretty Good Privacy" priority="100" pattern="*.skr" />
+  <mime type="application/pgp-keys" acronym="PGP" description="Pretty Good Privacy" priority="100" pattern="*.pkr" />
+  <mime type="application/pgp-keys" acronym="PGP" description="Pretty Good Privacy" priority="100" pattern="*.asc" />
+  <mime type="application/pgp-signature" description="detached OpenPGP signature" data-type="string" offset="0" magic="-----BEGIN PGP SIGNED MESSAGE-----" priority="50" />
+  <mime type="application/pgp-signature" description="detached OpenPGP signature" data-type="string" offset="0" magic="-----BEGIN PGP SIGNATURE-----" priority="50" />
+  <mime type="application/pkcs7-signature" description="detached S/MIME signature" priority="100" pattern="*.p7s" />
+  <mime type="application/pkcs10" description="PKCS#10 certification request" priority="100" pattern="*.p10" />
+  <mime type="application/postscript" description="PostScript" data-type="string" offset="0" magic="\004%!" priority="50" />
+  <mime type="application/postscript" description="PostScript" data-type="string" offset="0" magic="%!" priority="50" />
+  <mime type="application/postscript" acronym="PS" description="PostScript" priority="100" pattern="*.ps" />
+  <mime type="application/prs.plucker" description="Plucker document" data-type="string" offset="60" magic="DataPlkr" priority="80" />
+  <mime type="application/rtf" description="Rich Text Format" data-type="string" offset="0" magic="{\\rtf" priority="50" />
+  <mime type="application/rtf" acronym="RTF" description="Rich Text Format" priority="100" pattern="*.rtf" />
+  <mime type="application/sieve" description="Sieve mail filter script" priority="100" pattern="*.siv" />
+  <mime type="application/smil" description="Synchronized Multimedia Integration Language" data-type="string" offset="0:256" magic="&lt;smil" priority="80" />
+  <mime type="application/smil" acronym="SMIL" description="Synchronized Multimedia Integration Language" priority="100" pattern="*.smil" />
+  <mime type="application/smil" acronym="SMIL" description="Synchronized Multimedia Integration Language" priority="100" pattern="*.smi" />
+  <mime type="application/smil" acronym="SMIL" description="Synchronized Multimedia Integration Language" priority="100" pattern="*.sml" />
+  <mime type="application/smil" acronym="SMIL" description="Synchronized Multimedia Integration Language" priority="100" pattern="*.kino" />
+  <mime type="application/x-sqlite2" description="SQLite2 database" data-type="string" offset="0" magic="** This file contains an SQLite" />
+  <mime type="application/x-sqlite3" description="SQLite3 database" data-type="string" offset="0" magic="SQLite format 3" />
+  <mime type="application/stuffit" description="StuffIt archive" data-type="string" offset="0" magic="StuffIt" priority="50" />
+  <mime type="application/stuffit" description="StuffIt archive" priority="100" pattern="*.sit" />
+  <mime type="application/x-gedcom" description="GEnealogical Data COMmunication" data-type="string" offset="0" magic="0 HEAD" priority="50" />
+  <mime type="application/x-gedcom" acronym="GEDCOM" description="GEnealogical Data COMmunication" priority="100" pattern="*.ged" />
+  <mime type="application/x-gedcom" acronym="GEDCOM" description="GEnealogical Data COMmunication" priority="100" pattern="*.gedcom" />
+  <mime type="application/x-flash-video" description="Flash video" data-type="string" offset="0" magic="FLV" priority="50" />
+  <mime type="application/x-flash-video" description="Flash video" priority="100" pattern="*.flv" />
+  <mime type="application/x-go-sgf" description="Smart Game Format" data-type="string" offset="0" magic="(;FF[3]" priority="50" />
+  <mime type="application/x-go-sgf" description="Smart Game Format" data-type="string" offset="0" magic="(;FF[4]" priority="50" />
+  <mime type="application/x-go-sgf" acronym="SGF" description="Smart Game Format" priority="100" pattern="*.sgf" />
+  <mime type="application/x-xliff" description="XML Localization Interchange File Format" data-type="string" offset="0:256" magic="&lt;xliff" priority="80" />
+  <mime type="application/x-xliff" acronym="XLIFF" description="XML Localization Interchange File Format" priority="100" pattern="*.xlf" />
+  <mime type="application/x-xliff" acronym="XLIFF" description="XML Localization Interchange File Format" priority="100" pattern="*.xliff" />
+  <mime type="application/vnd.corel-draw" description="Corel Draw drawing" data-type="string" offset="8" mask="0xffffff00ffffffff" magic="CDRXvrsn" priority="80" />
+  <mime type="application/vnd.corel-draw" description="Corel Draw drawing" priority="100" pattern="*.cdr" />
+  <mime type="application/vnd.hp-hpgl" acronym="HPGL" description="HP Graphics Language" priority="100" pattern="*.hpgl" />
+  <mime type="application/vnd.hp-pcl" acronym="PCL" description="HP Printer Control Language" priority="100" pattern="*.pcl" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" data-type="string" offset="0" magic="\x00\x00\x02\x00\x06\x04\x06\x00\x08\x00\x00\x00\x00\x00" priority="50" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" priority="100" pattern="*.123" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" priority="100" pattern="*.wk1" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" priority="100" pattern="*.wk3" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" priority="100" pattern="*.wk4" />
+  <mime type="application/vnd.lotus-1-2-3" description="Lotus 1-2-3 spreadsheet" priority="100" pattern="*.wks" />
+  <mime type="application/vnd.mozilla.xul+xml" acronym="XUL" description="XML User Interface Language" priority="100" pattern="*.xul" />
+  <mime type="application/vnd.ms-access" description="Joint Engine Technology" data-type="string" offset="0" magic="\x00\x01\x00\x00Standard Jet DB" priority="50" />
+  <mime type="application/vnd.ms-access" acronym="JET" description="Joint Engine Technology" priority="100" pattern="*.mdb" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" data-type="string" offset="2080" magic="Microsoft Excel 5.0 Worksheet" priority="50" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xls" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xlc" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xll" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xlm" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xlw" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xla" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xlt" />
+  <mime type="application/vnd.ms-excel" description="Excel spreadsheet" priority="100" pattern="*.xld" />
+  <mime type="application/vnd.ms-powerpoint" description="PowerPoint presentation" priority="100" pattern="*.ppz" />
+  <mime type="application/vnd.ms-powerpoint" description="PowerPoint presentation" priority="100" pattern="*.ppt" />
+  <mime type="application/vnd.ms-powerpoint" description="PowerPoint presentation" priority="100" pattern="*.pps" />
+  <mime type="application/vnd.ms-powerpoint" description="PowerPoint presentation" priority="100" pattern="*.pot" />
+  <mime type="application/vnd.ms-xpsdocument" acronym="XPS" description="XML Paper Specification" priority="100" pattern="*.xps" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="0" magic="\x31\xbe\x00\x00" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="0" magic="PO^Q`" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="0" magic="\376\067\0\043" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="0" magic="\333\245-\0\0\0" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="2112" magic="MSWordDoc" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="2108" magic="MSWordDoc" priority="50" />
+  <mime type="application/msword" description="Word document" data-type="string" offset="2112" magic="Microsoft Word document data" priority="50" />
+  <mime type="application/msword" description="Word document" priority="100" pattern="*.doc" />
+  <mime type="application/vnd.ms-tnef" description="Transport Neutral Encapsulation Format" data-type="long" endian="LSB" offset="0" magic="0x223e9f78" priority="50" />
+  <mime type="application/vnd.ms-tnef" acronym="TNEF" description="Transport Neutral Encapsulation Format" priority="100" pattern="*.tnef" />
+  <mime type="application/vnd.ms-tnef" acronym="TNEF" description="Transport Neutral Encapsulation Format" priority="100" pattern="*.tnf" />
+  <mime type="application/vnd.ms-tnef" acronym="TNEF" description="Transport Neutral Encapsulation Format" priority="100" pattern="winmail.dat" />
+  <mime type="application/vnd.stardivision.calc" description="StarCalc spreadsheet" priority="100" pattern="*.sdc" />
+  <mime type="application/vnd.stardivision.chart" description="StarChart chart" priority="100" pattern="*.sds" />
+  <mime type="application/vnd.stardivision.draw" description="StarDraw drawing" priority="100" pattern="*.sda" />
+  <mime type="application/vnd.stardivision.impress" description="StarImpress presentation" priority="100" pattern="*.sdd" />
+  <mime type="application/vnd.stardivision.impress" description="StarImpress presentation" priority="100" pattern="*.sdp" />
+  <mime type="application/vnd.stardivision.mail" description="StarMail email" priority="100" pattern="*.smd" />
+  <mime type="application/vnd.stardivision.math" description="StarMath formula" priority="100" pattern="*.smf" />
+  <mime type="application/vnd.stardivision.writer" description="StarWriter document" data-type="string" offset="2089" magic="StarWriter" priority="90" />
+  <mime type="application/vnd.stardivision.writer" description="StarWriter document" priority="100" pattern="*.sdw" />
+  <mime type="application/vnd.stardivision.writer" description="StarWriter document" priority="100" pattern="*.vor" />
+  <mime type="application/vnd.stardivision.writer" description="StarWriter document" priority="100" pattern="*.sgl" />
+  <mime type="application/vnd.sun.xml.calc" description="OpenOffice Calc spreadsheet" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.calc" description="OpenOffice Calc spreadsheet" priority="100" pattern="*.sxc" />
+  <mime type="application/vnd.sun.xml.calc.template" description="OpenOffice Calc template" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.calc.template" description="OpenOffice Calc template" priority="100" pattern="*.stc" />
+  <mime type="application/vnd.sun.xml.draw" description="OpenOffice Draw drawing" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.draw" description="OpenOffice Draw drawing" priority="100" pattern="*.sxd" />
+  <mime type="application/vnd.sun.xml.draw.template" description="OpenOffice Draw template" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.draw.template" description="OpenOffice Draw template" priority="100" pattern="*.std" />
+  <mime type="application/vnd.sun.xml.impress" description="OpenOffice Impress presentation" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.impress" description="OpenOffice Impress presentation" priority="100" pattern="*.sxi" />
+  <mime type="application/vnd.sun.xml.impress.template" description="OpenOffice Impress template" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.impress.template" description="OpenOffice Impress template" priority="100" pattern="*.sti" />
+  <mime type="application/vnd.sun.xml.math" description="OpenOffice Math formula" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.math" description="OpenOffice Math formula" priority="100" pattern="*.sxm" />
+  <mime type="application/vnd.sun.xml.writer" description="OpenOffice Writer document" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.writer" description="OpenOffice Writer document" priority="100" pattern="*.sxw" />
+  <mime type="application/vnd.sun.xml.writer.global" description="OpenOffice Writer global document" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.writer.global" description="OpenOffice Writer global document" priority="100" pattern="*.sxg" />
+  <mime type="application/vnd.sun.xml.writer.template" description="OpenOffice Writer template" data-type="string" offset="0" magic="PK\003\004" />
+  <mime type="application/vnd.sun.xml.writer.template" description="OpenOffice Writer template" priority="100" pattern="*.stw" />
+  <mime type="application/vnd.oasis.opendocument.text" description="OpenDocument Text" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.text" acronym="ODT" description="OpenDocument Text" priority="100" pattern="*.odt" />
+  <mime type="application/vnd.oasis.opendocument.text-template" description="OpenDocument Text Template" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.text-template" acronym="OTT" description="OpenDocument Text Template" priority="100" pattern="*.ott" />
+  <mime type="application/vnd.oasis.opendocument.text-web" description="OpenDocument HTML" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.text-web" acronym="OTH" description="OpenDocument HTML" priority="100" pattern="*.oth" />
+  <mime type="application/vnd.oasis.opendocument.text-master" description="OpenDocument Master" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.text-master" acronym="ODM" description="OpenDocument Master" priority="100" pattern="*.odm" />
+  <mime type="application/vnd.oasis.opendocument.graphics" description="OpenDocument Drawing" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.graphics" acronym="ODG" description="OpenDocument Drawing" priority="100" pattern="*.odg" />
+  <mime type="application/vnd.oasis.opendocument.graphics-template" description="OpenDocument Drawing Template" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.graphics-template" acronym="OTG" description="OpenDocument Drawing Template" priority="100" pattern="*.otg" />
+  <mime type="application/vnd.oasis.opendocument.presentation" description="OpenDocument Presentation" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.presentation" acronym="ODP" description="OpenDocument Presentation" priority="100" pattern="*.odp" />
+  <mime type="application/vnd.oasis.opendocument.presentation-template" description="OpenDocument Presentation Template" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.presentation-template" acronym="OTP" description="OpenDocument Presentation Template" priority="100" pattern="*.otp" />
+  <mime type="application/vnd.oasis.opendocument.spreadsheet" description="OpenDocument Spreadsheet" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.spreadsheet" acronym="ODS" description="OpenDocument Spreadsheet" priority="100" pattern="*.ods" />
+  <mime type="application/vnd.oasis.opendocument.spreadsheet-template" description="OpenDocument Spreadsheet Template" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.spreadsheet-template" acronym="OTS" description="OpenDocument Spreadsheet Template" priority="100" pattern="*.ots" />
+  <mime type="application/vnd.oasis.opendocument.chart" description="OpenDocument Chart" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.chart" acronym="ODC chart" description="OpenDocument Chart" priority="100" pattern="*.odc" />
+  <mime type="application/vnd.oasis.opendocument.formula" description="OpenDocument Formula" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.formula" acronym="ODF" description="OpenDocument Formula" priority="100" pattern="*.odf" />
+  <mime type="application/vnd.oasis.opendocument.database" acronym="ODB" description="OpenDocument Database" priority="100" pattern="*.odb" />
+  <mime type="application/vnd.oasis.opendocument.image" description="OpenDocument Image" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/vnd.oasis.opendocument.image" acronym="ODI" description="OpenDocument Image" priority="100" pattern="*.odi" />
+  <mime type="application/vnd.symbian.install" description="Symbian Installation File" data-type="long" endian="LSB" offset="8" magic="0x10000419" priority="50" />
+  <mime type="application/vnd.symbian.install" acronym="SIS" description="Symbian Installation File" priority="100" pattern="*.sis" />
+  <mime type="x-epoc/x-sisx-app" description="Symbian Installation File" data-type="long" endian="LSB" offset="0" magic="0x10201a7a" priority="50" />
+  <mime type="x-epoc/x-sisx-app" acronym="SIS" description="Symbian Installation File" priority="100" pattern="*.sisx" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" data-type="string" offset="1" magic="WPC" priority="50" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wp" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wp4" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wp5" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wp6" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wpd" />
+  <mime type="application/vnd.wordperfect" description="WordPerfect document" priority="100" pattern="*.wpp" />
+  <mime type="application/x-xbel" description="XML Bookmark Exchange Language" data-type="string" offset="0:256" magic="&lt;!DOCTYPE\ xbel" priority="50" />
+  <mime type="application/x-xbel" acronym="XBEL" description="XML Bookmark Exchange Language" priority="100" pattern="*.xbel" />
+  <mime type="application/x-7z-compressed" description="7-zip archive" priority="100" pattern="*.7z" />
+  <mime type="application/x-abiword" description="AbiWord document" data-type="string" offset="0:256" magic="&lt;abiword" priority="50" />
+  <mime type="application/x-abiword" description="AbiWord document" data-type="string" offset="0:256" magic="&lt;!DOCTYPE abiword" priority="50" />
+  <mime type="application/x-abiword" description="AbiWord document" priority="100" pattern="*.abw" />
+  <mime type="application/x-abiword" description="AbiWord document" priority="100" pattern="*.abw.CRASHED" />
+  <mime type="application/x-abiword" description="AbiWord document" priority="100" pattern="*.abw.gz" />
+  <mime type="application/x-abiword" description="AbiWord document" priority="100" pattern="*.zabw" />
+  <mime type="application/x-cue" description="CD image cuesheet" priority="100" pattern="*.cue" />
+  <mime type="application/x-amipro" description="Lotus AmiPro document" priority="100" pattern="*.sam" />
+  <mime type="application/x-applix-spreadsheet" description="Applix Spreadsheets spreadsheet" data-type="string" offset="0" magic="*BEGIN SPREADSHEETS" priority="50" />
+  <mime type="application/x-applix-spreadsheet" description="Applix Spreadsheets spreadsheet" data-type="string" offset="0" magic="*BEGIN" priority="50" />
+  <mime type="application/x-applix-spreadsheet" description="Applix Spreadsheets spreadsheet" priority="100" pattern="*.as" />
+  <mime type="application/x-applix-word" description="Applix Words document" data-type="string" offset="0" magic="*BEGIN" priority="50" />
+  <mime type="application/x-applix-word" description="Applix Words document" priority="100" pattern="*.aw" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000081a" priority="50" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000091a" priority="50" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000021a" priority="50" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000031a" priority="50" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000041a" priority="50" />
+  <mime type="application/x-arc" description="ARC archive" data-type="long" endian="LSB" offset="0" mask="0x8080ffff" magic="0x0000061a" priority="50" />
+  <mime type="application/x-archive" description="AR archive" data-type="string" offset="0" magic="&lt;ar&gt;" priority="45" />
+  <mime type="application/x-archive" description="AR archive" data-type="string" offset="0" magic="!&lt;arch&gt;" priority="45" />
+  <mime type="application/x-archive" acronym="AR" description="AR archive" priority="100" pattern="*.a" />
+  <mime type="application/x-arj" description="ARJ archive" data-type="short" endian="LSB" offset="0" magic="0xea60" priority="50" />
+  <mime type="application/x-arj" acronym="ARJ" description="ARJ archive" priority="100" pattern="*.arj" />
+  <mime type="application/x-asp" acronym="ASP" description="Active Server Page" priority="100" pattern="*.asp" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#!/bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#! /bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#!/usr/bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#! /usr/bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#!/usr/local/bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#! /usr/local/bin/gawk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#!/bin/awk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#! /bin/awk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#!/usr/bin/awk" priority="50" />
+  <mime type="application/x-awk" description="AWK script" data-type="string" offset="0" magic="#! /usr/bin/awk" priority="50" />
+  <mime type="application/x-bcpio" acronym="BCPIO" description="BCPIO document" priority="100" pattern="*.bcpio" />
+  <mime type="application/x-bittorrent" description="BitTorrent seed file" data-type="string" offset="0" magic="d8:announce" priority="50" />
+  <mime type="application/x-bittorrent" description="BitTorrent seed file" priority="100" pattern="*.torrent" />
+  <mime type="application/x-blender" description="Blender scene" data-type="string" offset="0" magic="BLENDER" priority="50" />
+  <mime type="application/x-blender" description="Blender scene" priority="100" pattern="*.blender" />
+  <mime type="application/x-blender" description="Blender scene" priority="100" pattern="*.blend" />
+  <mime type="application/x-blender" description="Blender scene" priority="100" pattern="*.BLEND" />
+  <mime type="application/x-bzdvi" description="TeX DVI document (bzip-compressed)" priority="100" pattern="*.dvi.bz2" />
+  <mime type="application/x-bzip" description="Bzip archive" data-type="string" offset="0" magic="BZh" priority="50" />
+  <mime type="application/x-bzip" description="Bzip archive" priority="100" pattern="*.bz" />
+  <mime type="application/x-bzip" description="Bzip archive" priority="100" pattern="*.bz2" />
+  <mime type="application/x-bzip-compressed-tar" description="Tar archive (bzip-compressed)" priority="100" pattern="*.tar.bz" />
+  <mime type="application/x-bzip-compressed-tar" description="Tar archive (bzip-compressed)" priority="100" pattern="*.tar.bz2" />
+  <mime type="application/x-bzip-compressed-tar" description="Tar archive (bzip-compressed)" priority="100" pattern="*.tbz" />
+  <mime type="application/x-bzip-compressed-tar" description="Tar archive (bzip-compressed)" priority="100" pattern="*.tbz2" />
+  <mime type="application/x-bzpdf" description="PDF document (bzip-compressed)" priority="100" pattern="*.pdf.bz2" />
+  <mime type="application/x-bzpostscript" description="PostScript document (bzip-compressed)" priority="100" pattern="*.ps.bz2" />
+  <mime type="application/x-cbr" description="comic book archive" priority="100" pattern="*.cbr" />
+  <mime type="application/x-cbz" description="comic book archive" priority="100" pattern="*.cbz" />
+  <mime type="application/x-cd-image" description="raw CD image" priority="100" pattern="*.iso" />
+  <mime type="application/x-cd-image" description="raw CD image" priority="100" pattern="*.iso9660" />
+  <mime type="application/x-cgi" description="CGI script" priority="100" pattern="*.cgi" />
+  <mime type="application/x-chess-pgn" description="PGN chess game notation" data-type="string" offset="0" magic="[Event " priority="50" />
+  <mime type="application/x-chess-pgn" description="PGN chess game notation" priority="100" pattern="*.pgn" />
+  <mime type="application/x-chm" acronym="CHM" description="Compiled Help Modules" priority="100" pattern="*.chm" />
+  <mime type="application/x-compress" description="UNIX-compressed file" data-type="string" offset="0" magic="\037\235" priority="50" />
+  <mime type="application/x-compress" description="UNIX-compressed file" priority="100" pattern="*.Z" />
+  <mime type="application/x-compressed-tar" description="Tar archive (gzip-compressed)" priority="100" pattern="*.tar.gz" />
+  <mime type="application/x-compressed-tar" description="Tar archive (gzip-compressed)" priority="100" pattern="*.tgz" />
+  <mime type="application/x-core" description="program crash data" data-type="string" offset="0" mask="0xffffffff000000000000000000000000ff" magic="\177ELF \004" priority="50" />
+  <mime type="application/x-core" description="program crash data" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-core" description="program crash data" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-core" description="program crash data" data-type="string" offset="0" magic="Core\001" priority="50" />
+  <mime type="application/x-core" description="program crash data" data-type="string" offset="0" magic="Core\002" priority="50" />
+  <mime type="application/x-core" description="program crash data" priority="100" pattern="core" />
+  <mime type="application/x-cpio" description="CPIO archive" data-type="short" offset="0" magic="070707" priority="50" />
+  <mime type="application/x-cpio" description="CPIO archive" data-type="string" offset="0" magic="070701" priority="50" />
+  <mime type="application/x-cpio" description="CPIO archive" data-type="string" offset="0" magic="070702" priority="50" />
+  <mime type="application/x-cpio" description="CPIO archive" data-type="short" offset="0" magic="0143561" priority="50" />
+  <mime type="application/x-cpio" description="CPIO archive" priority="100" pattern="*.cpio" />
+  <mime type="application/x-cpio-compressed" description="CPIO archive (gzip-compressed)" priority="100" pattern="*.cpio.gz" />
+  <mime type="application/x-csh" description="C shell script" data-type="string" offset="1:16" magic="/bin/tcsh" />
+  <mime type="application/x-csh" description="C shell script" data-type="string" offset="1:16" magic="/bin/csh" />
+  <mime type="application/x-csh" description="C shell script" data-type="string" offset="0" magic="#!/usr/bin/env csh" />
+  <mime type="application/x-csh" description="C shell script" data-type="string" offset="0" magic="#!/usr/bin/env tcsh" />
+  <mime type="application/x-csh" description="C shell script" priority="100" pattern="*.csh" />
+  <mime type="application/x-dbf" description="Xbase document" priority="100" pattern="*.dbf" />
+  <mime type="application/ecmascript" description="ECMAScript program" priority="100" pattern="*.es" />
+  <mime type="application/x-dbm" data-type="long" endian="MSB" offset="0" magic="0x061561" priority="50" />
+  <mime type="application/x-dc-rom" description="Dreamcast ROM" priority="100" pattern="*.dc" />
+  <mime type="application/x-nintendo-ds-rom" description="Nintendo DS ROM" priority="100" pattern="*.nds" />
+  <mime type="application/x-deb" description="Debian package" data-type="string" offset="0" magic="!&lt;arch&gt;" priority="50" />
+  <mime type="application/x-deb" description="Debian package" priority="100" pattern="*.deb" />
+  <mime type="application/x-designer" description="Qt Designer file" priority="100" pattern="*.ui" />
+  <mime type="application/x-desktop" description="desktop configuration file" data-type="string" offset="0:32" magic="[Desktop Entry]" priority="50" />
+  <mime type="application/x-desktop" description="desktop configuration file" data-type="string" offset="0" magic="[Desktop Action" priority="50" />
+  <mime type="application/x-desktop" description="desktop configuration file" data-type="string" offset="0" magic="[KDE Desktop Entry]" priority="50" />
+  <mime type="application/x-desktop" description="desktop configuration file" data-type="string" offset="0" magic="# Config File" priority="50" />
+  <mime type="application/x-desktop" description="desktop configuration file" data-type="string" offset="0" magic="# KDE Config File" priority="50" />
+  <mime type="application/x-desktop" description="desktop configuration file" priority="100" pattern="*.desktop" />
+  <mime type="application/x-desktop" description="desktop configuration file" priority="100" pattern="*.kdelnk" />
+  <mime type="application/x-dia-diagram" description="Dia diagram" data-type="string" offset="5:100" magic="&lt;dia:" priority="50" />
+  <mime type="application/x-dia-diagram" description="Dia diagram" priority="100" pattern="*.dia" />
+  <mime type="application/x-dvi" description="TeX DVI document" data-type="short" endian="LSB" offset="0" magic="0x02f7" priority="50" />
+  <mime type="application/x-dvi" description="TeX DVI document" priority="100" pattern="*.dvi" />
+  <mime type="application/x-e-theme" description="Enlightenment theme" priority="100" pattern="*.etheme" />
+  <mime type="application/x-egon" description="Egon Animator animation" priority="100" pattern="*.egon" />
+  <mime type="application/x-executable" description="executable" data-type="string" offset="0" magic="\177ELF" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="string" offset="0" magic="\177ELF" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="string" offset="0" magic="MZ" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="short" endian="LSB" offset="0" magic="0x521c" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="short" offset="0" magic="0420" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="short" offset="0" magic="0421" priority="40" />
+  <mime type="application/x-executable" description="executable" data-type="short" endian="LSB" offset="0" magic="0603" priority="40" />
+  <mime type="application/x-executable" description="executable" priority="100" pattern="*.exe" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="0" magic="LWFN" priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="65" magic="LWFN" priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="0" magic="%!PS-AdobeFont-1." priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="6" magic="%!PS-AdobeFont-1." priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="0" magic="%!FontType1-1." priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" data-type="string" offset="6" magic="%!FontType1-1." priority="60" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" priority="100" pattern="*.pfa" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" priority="100" pattern="*.pfb" />
+  <mime type="application/x-font-type1" description="Postscript type-1 font" priority="100" pattern="*.gsf" />
+  <mime type="application/x-font-afm" description="Adobe font metrics" priority="100" pattern="*.afm" />
+  <mime type="application/x-font-bdf" description="BDF font" data-type="string" offset="0" magic="STARTFONT\040" priority="50" />
+  <mime type="application/x-font-bdf" description="BDF font" priority="100" pattern="*.bdf" />
+  <mime type="application/x-font-dos" description="DOS font" data-type="string" offset="0" magic="\xff\x46\x4f\x4e" priority="50" />
+  <mime type="application/x-font-dos" description="DOS font" data-type="string" offset="7" magic="\x00\x45\x47\x41" priority="50" />
+  <mime type="application/x-font-dos" description="DOS font" data-type="string" offset="7" magic="\x00\x56\x49\x44" priority="50" />
+  <mime type="application/x-font-framemaker" description="Adobe FrameMaker font" data-type="string" offset="0" magic="&lt;MakerScreenFont" priority="50" />
+  <mime type="application/x-font-libgrx" description="LIBGRX font" data-type="string" offset="0" magic="\x14\x02\x59\x19" priority="50" />
+  <mime type="application/x-font-linux-psf" description="Linux PSF console font" data-type="string" offset="0" magic="\x36\x04" priority="50" />
+  <mime type="application/x-font-linux-psf" description="Linux PSF console font" priority="100" pattern="*.psf" />
+  <mime type="application/x-gz-font-linux-psf" description="Linux PSF console font (gzip-compressed)" priority="100" pattern="*.psf.gz" />
+  <mime type="application/x-font-pcf" description="PCF font" data-type="string" offset="0" magic="\001fcp" priority="50" />
+  <mime type="application/x-font-pcf" description="PCF font" priority="100" pattern="*.pcf" />
+  <mime type="application/x-font-pcf" description="PCF font" priority="100" pattern="*.pcf.Z" />
+  <mime type="application/x-font-pcf" description="PCF font" priority="100" pattern="*.pcf.gz" />
+  <mime type="application/x-font-otf" description="OpenType font" data-type="string" offset="0" magic="OTTO" priority="50" />
+  <mime type="application/x-font-speedo" description="Speedo font" data-type="string" offset="0" magic="D1.0\015" priority="50" />
+  <mime type="application/x-font-speedo" description="Speedo font" priority="100" pattern="*.spd" />
+  <mime type="application/x-font-sunos-news" description="SunOS News font" data-type="string" offset="0" magic="StartFont" priority="50" />
+  <mime type="application/x-font-sunos-news" description="SunOS News font" data-type="string" offset="0" magic="\x13\x7A\x29" priority="50" />
+  <mime type="application/x-font-sunos-news" description="SunOS News font" data-type="string" offset="8" magic="\x13\x7A\x2B" priority="50" />
+  <mime type="application/x-font-tex" description="TeX font" data-type="string" offset="0" magic="\367\203" priority="50" />
+  <mime type="application/x-font-tex" description="TeX font" data-type="string" offset="0" magic="\367\131" priority="50" />
+  <mime type="application/x-font-tex" description="TeX font" data-type="string" offset="0" magic="\367\312" priority="50" />
+  <mime type="application/x-font-tex-tfm" description="TeX font metrics" data-type="string" offset="2" magic="\000\021" priority="50" />
+  <mime type="application/x-font-tex-tfm" description="TeX font metrics" data-type="string" offset="2" magic="\000\022" priority="50" />
+  <mime type="application/x-font-ttf" description="TrueType font" data-type="string" offset="0" magic="FFIL" priority="50" />
+  <mime type="application/x-font-ttf" description="TrueType font" data-type="string" offset="65" magic="FFIL" priority="50" />
+  <mime type="application/x-font-ttf" description="TrueType font" data-type="string" offset="0" magic="\000\001\000\000\000" priority="50" />
+  <mime type="application/x-font-ttf" description="TrueType font" priority="100" pattern="*.ttf" />
+  <mime type="application/x-font-ttf" description="TrueType font" priority="100" pattern="*.ttc" />
+  <mime type="application/x-font-vfont" description="V font" data-type="string" offset="0" magic="FONT" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;MakerFile" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;MIFFile" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;MakerDictionary" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;MakerScreenFon" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;MML" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;Book" priority="50" />
+  <mime type="application/x-frame" description="Adobe FrameMaker document" data-type="string" offset="0" magic="&lt;Maker" priority="50" />
+  <mime type="application/x-gameboy-rom" description="Game Boy ROM" priority="100" pattern="*.gb" />
+  <mime type="application/x-gba-rom" description="Game Boy Advance ROM" priority="100" pattern="*.gba" />
+  <mime type="application/x-gdbm" description="GNU Database Manager" data-type="long" endian="MSB" offset="0" magic="0x13579ace" priority="50" />
+  <mime type="application/x-gdbm" description="GNU Database Manager" data-type="long" endian="LSB" offset="0" magic="0x13579ace" priority="50" />
+  <mime type="application/x-gdbm" description="GNU Database Manager" data-type="string" offset="0" magic="GDBM" priority="50" />
+  <mime type="application/x-genesis-rom" description="Genesis ROM" priority="100" pattern="*.gen" />
+  <mime type="application/x-genesis-rom" description="Genesis ROM" priority="100" pattern="*.md" />
+  <mime type="application/x-gettext-translation" description="translated messages (machine-readable)" priority="100" pattern="*.gmo" />
+  <mime type="application/x-gettext-translation" description="translated messages (machine-readable)" priority="100" pattern="*.mo" />
+  <mime type="application/x-glade" description="Glade project" data-type="string" offset="0:256" magic="&lt;glade-interface" priority="50" />
+  <mime type="application/x-glade" description="Glade project" priority="100" pattern="*.glade" />
+  <mime type="application/x-gmc-link" description="GMC link" data-type="string" offset="0:32" magic="URL:" priority="50" />
+  <mime type="application/x-gnucash" description="GnuCash spreadsheet" priority="100" pattern="*.gnucash" />
+  <mime type="application/x-gnucash" description="GnuCash spreadsheet" priority="100" pattern="*.gnc" />
+  <mime type="application/x-gnucash" description="GnuCash spreadsheet" priority="100" pattern="*.xac" />
+  <mime type="application/x-gnumeric" description="Gnumeric spreadsheet" data-type="string" offset="0:64" magic="gmr:Workbook" priority="50" />
+  <mime type="application/x-gnumeric" description="Gnumeric spreadsheet" data-type="string" offset="0:64" magic="gnm:Workbook" priority="50" />
+  <mime type="application/x-gnumeric" description="Gnumeric spreadsheet" priority="100" pattern="*.gnumeric" />
+  <mime type="application/x-gnuplot" description="Gnuplot document" priority="100" pattern="*.gp" />
+  <mime type="application/x-gnuplot" description="Gnuplot document" priority="100" pattern="*.gplt" />
+  <mime type="application/x-gnuplot" description="Gnuplot document" priority="100" pattern="*.gnuplot" />
+  <mime type="application/x-graphite" description="Graphite scientific graph" priority="100" pattern="*.gra" />
+  <mime type="application/x-gtktalog" description="GTKtalog catalog" data-type="string" offset="4" magic="gtktalog " priority="50" />
+  <mime type="application/x-gzdvi" description="TeX DVI document (gzip-compressed)" priority="100" pattern="*.dvi.gz" />
+  <mime type="application/x-gzip" description="Gzip archive" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-gzip" description="Gzip archive" priority="100" pattern="*.gz" />
+  <mime type="application/x-gzpdf" description="PDF document (gzip-compressed)" priority="100" pattern="*.pdf.gz" />
+  <mime type="application/x-gzpostscript" description="PostScript document (gzip-compressed)" priority="100" pattern="*.ps.gz" />
+  <mime type="application/x-hdf" description="HDF document" priority="100" pattern="*.hdf" />
+  <mime type="application/x-ipod-firmware" description="iPod firmware" data-type="string" offset="0" magic="S T O P" priority="50" />
+  <mime type="application/x-java-archive" description="Java archive" data-type="string" offset="0" magic="PK\003\004" priority="85" />
+  <mime type="application/x-java-archive" description="Java archive" priority="100" pattern="*.jar" />
+  <mime type="application/x-java" description="Java class" data-type="short" offset="0" magic="0xcafe" priority="50" />
+  <mime type="application/x-java" description="Java class" priority="100" pattern="*.class" />
+  <mime type="application/x-java-jnlp-file" description="Java Network Launching Protocol" data-type="string" offset="0:256" magic="&lt;jnlp" priority="50" />
+  <mime type="application/x-java-jnlp-file" acronym="JNLP" description="Java Network Launching Protocol" priority="100" pattern="*.jnlp" />
+  <mime type="application/javascript" description="JavaScript program" priority="100" pattern="*.js" />
+  <mime type="application/x-jbuilder-project" description="JBuilder project" priority="100" pattern="*.jpr" />
+  <mime type="application/x-jbuilder-project" description="JBuilder project" priority="100" pattern="*.jpx" />
+  <mime type="application/x-karbon" description="Karbon14 drawing" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-karbon" description="Karbon14 drawing" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-karbon" description="Karbon14 drawing" priority="100" pattern="*.karbon" />
+  <mime type="application/x-kchart" description="KChart chart" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kchart" description="KChart chart" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kchart" description="KChart chart" priority="100" pattern="*.chrt" />
+  <mime type="application/x-kformula" description="KFormula formula" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kformula" description="KFormula formula" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kformula" description="KFormula formula" priority="100" pattern="*.kfo" />
+  <mime type="application/x-killustrator" description="KIllustrator drawing" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-killustrator" description="KIllustrator drawing" priority="100" pattern="*.kil" />
+  <mime type="application/x-kivio" description="Kivio flowchart" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kivio" description="Kivio flowchart" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kivio" description="Kivio flowchart" priority="100" pattern="*.flw" />
+  <mime type="application/x-kontour" description="Kontour drawing" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kontour" description="Kontour drawing" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kontour" description="Kontour drawing" priority="100" pattern="*.kon" />
+  <mime type="application/x-kpovmodeler" description="KPovModeler scene" priority="100" pattern="*.kpm" />
+  <mime type="application/x-kpresenter" description="KPresenter presentation" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kpresenter" description="KPresenter presentation" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kpresenter" description="KPresenter presentation" priority="100" pattern="*.kpr" />
+  <mime type="application/x-kpresenter" description="KPresenter presentation" priority="100" pattern="*.kpt" />
+  <mime type="application/x-krita" description="Krita document" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-krita" description="Krita document" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-krita" description="Krita document" priority="100" pattern="*.kra" />
+  <mime type="application/x-kspread" description="KSpread spreadsheet" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kspread" description="KSpread spreadsheet" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kspread" description="KSpread spreadsheet" priority="100" pattern="*.ksp" />
+  <mime type="application/x-kspread-crypt" description="KSpread spreadsheet (encrypted)" data-type="long" endian="MSB" offset="0" magic="0x0d1a2702" priority="50" />
+  <mime type="application/x-ksysv-package" description="KSysV init package" data-type="string" offset="4" magic="KSysV" priority="50" />
+  <mime type="application/x-kugar" description="Kugar document" priority="100" pattern="*.kud" />
+  <mime type="application/x-kword" description="KWord document" data-type="string" offset="0" magic="\037\213" priority="50" />
+  <mime type="application/x-kword" description="KWord document" data-type="string" offset="0" magic="PK\003\004" priority="50" />
+  <mime type="application/x-kword" description="KWord document" priority="100" pattern="*.kwd" />
+  <mime type="application/x-kword" description="KWord document" priority="100" pattern="*.kwt" />
+  <mime type="application/x-kword-crypt" description="KWord document (encrypted)" data-type="long" endian="MSB" offset="0" magic="0x0d1a2701" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh -" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh0-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh1-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh2-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh3-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh4-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh5-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lh40-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lhd-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lz4-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lz5-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" data-type="string" offset="2" magic="-lzs-" priority="50" />
+  <mime type="application/x-lha" description="LHA archive" priority="100" pattern="*.lha" />
+  <mime type="application/x-lha" description="LHA archive" priority="100" pattern="*.lzh" />
+  <mime type="application/x-lhz" description="LHZ archive" priority="100" pattern="*.lhz" />
+  <mime type="application/x-linguist" description="message catalog" priority="100" pattern="*.ts" />
+  <mime type="application/x-lyx" description="LyX document" data-type="string" offset="0" magic="#LyX" priority="50" />
+  <mime type="application/x-lyx" description="LyX document" priority="100" pattern="*.lyx" />
+  <mime type="application/x-lzop" description="LZO archive" priority="100" pattern="*.lzo" />
+  <mime type="application/x-magicpoint" description="MagicPoint presentation" priority="100" pattern="*.mgp" />
+  <mime type="application/x-macbinary" description="Macintosh MacBinary file" data-type="string" offset="102" magic="mBIN" priority="50" />
+  <mime type="video/x-matroska" description="Matroska video" data-type="string" offset="8" magic="matroska" priority="50" />
+  <mime type="video/x-matroska" description="Matroska video" priority="100" pattern="*.mkv" />
+  <mime type="audio/x-matroska" description="Matroska audio" data-type="string" offset="8" magic="matroska" priority="50" />
+  <mime type="audio/x-matroska" description="Matroska audio" priority="100" pattern="*.mka" />
+  <mime type="text/x-ocl" acronym="OCL" description="Object Constraint Language" priority="100" pattern="*.ocl" />
+  <mime type="application/x-mif" description="Adobe FrameMaker MIF document" priority="100" pattern="*.mif" />
+  <mime type="application/x-mozilla-bookmarks" description="Mozilla bookmarks" data-type="string" offset="0:64" magic="&lt;!DOCTYPE NETSCAPE-Bookmark-file-1&gt;" priority="80" />
+  <mime type="application/x-ms-dos-executable" description="DOS/Windows executable" data-type="string" offset="0" magic="MZ" priority="50" />
+  <mime type="application/x-ms-dos-executable" description="DOS/Windows executable" priority="100" pattern="*.exe" />
+  <mime type="application/x-mswinurl" data-type="string" offset="1" magic="InternetShortcut" priority="50" />
+  <mime type="application/x-mswrite" description="WRI document" priority="100" pattern="*.wri" />
+  <mime type="application/x-msx-rom" description="MSX ROM" priority="100" pattern="*.msx" />
+  <mime type="application/x-m4" description="M4 macro" priority="100" pattern="*.m4" />
+  <mime type="application/x-n64-rom" description="Nintendo64 ROM" priority="100" pattern="*.n64" />
+  <mime type="application/x-nautilus-link" description="Nautilus link" data-type="string" offset="0:32" magic="&lt;nautilus_object nautilus_link" priority="50" />
+  <mime type="application/x-nes-rom" description="NES ROM" priority="100" pattern="*.nes" />
+  <mime type="application/x-netcdf" description="Unidata NetCDF document" priority="100" pattern="*.cdf" />
+  <mime type="application/x-netcdf" description="Unidata NetCDF document" priority="100" pattern="*.nc" />
+  <mime type="application/x-object" description="object code" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-object" description="object code" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-object" description="object code" priority="100" pattern="*.o" />
+  <mime type="application/ogg" description="Ogg multimedia" data-type="string" offset="0" magic="OggS" priority="50" />
+  <mime type="application/ogg" description="Ogg multimedia" priority="100" pattern="*.ogg" />
+  <mime type="application/ogg" description="Ogg multimedia" priority="100" pattern="*.ogx" />
+  <mime type="audio/ogg" description="Ogg Audio" data-type="string" offset="0" magic="OggS" priority="50" />
+  <mime type="audio/ogg" description="Ogg Audio" priority="100" pattern="*.oga" />
+  <mime type="video/ogg" description="Ogg Video" data-type="string" offset="0" magic="OggS" priority="50" />
+  <mime type="video/ogg" description="Ogg Video" priority="100" pattern="*.ogv" />
+  <mime type="audio/x-vorbis+ogg" description="Ogg Vorbis audio" data-type="string" offset="0" magic="OggS" priority="80" />
+  <mime type="audio/x-vorbis+ogg" description="Ogg Vorbis audio" priority="100" pattern="*.ogg" />
+  <mime type="audio/x-flac+ogg" description="Ogg FLAC audio" data-type="string" offset="0" magic="OggS" priority="80" />
+  <mime type="audio/x-flac+ogg" description="Ogg FLAC audio" priority="100" pattern="*.ogg" />
+  <mime type="audio/x-speex+ogg" description="Ogg Speex audio" data-type="string" offset="0" magic="OggS" priority="80" />
+  <mime type="audio/x-speex+ogg" description="Ogg Speex audio" priority="100" pattern="*.ogg" />
+  <mime type="audio/x-speex" description="Speex audio" data-type="string" offset="0" magic="Speex" priority="50" />
+  <mime type="audio/x-speex" description="Speex audio" priority="100" pattern="*.spx" />
+  <mime type="video/x-theora+ogg" description="Ogg Theora video" data-type="string" offset="0" magic="OggS" priority="80" />
+  <mime type="video/x-theora+ogg" description="Ogg Theora video" priority="100" pattern="*.ogg" />
+  <mime type="video/x-ogm+ogg" description="OGM video" data-type="string" offset="0" magic="OggS" priority="80" />
+  <mime type="video/x-ogm+ogg" description="OGM video" priority="100" pattern="*.ogm" />
+  <mime type="application/x-ole-storage" description="OLE2 compound document storage" data-type="string" offset="0" magic="\320\317\021\340\241\261\032\341" priority="50" />
+  <mime type="application/x-ole-storage" description="OLE2 compound document storage" data-type="long" endian="LSB" offset="0" magic="0xe011cfd0" priority="50" />
+  <mime type="application/x-oleo" description="GNU Oleo spreadsheet" data-type="string" offset="31" magic="Oleo" priority="50" />
+  <mime type="application/x-oleo" description="GNU Oleo spreadsheet" priority="100" pattern="*.oleo" />
+  <mime type="application/x-pak" description="PAK archive" data-type="string" offset="0" magic="PACK" priority="80" />
+  <mime type="application/x-pak" description="PAK archive" priority="100" pattern="*.pak" />
+  <mime type="application/x-palm-database" description="Palm OS database" priority="100" pattern="*.pdb" />
+  <mime type="application/x-palm-database" description="Palm OS database" priority="100" pattern="*.prc" />
+  <mime type="application/x-par2" description="PAR2 Parity File" data-type="string" offset="0" magic="PAR2" priority="50" />
+  <mime type="application/x-par2" description="PAR2 Parity File" priority="100" pattern="*.PAR2" />
+  <mime type="application/x-par2" description="PAR2 Parity File" priority="100" pattern="*.par2" />
+  <mime type="application/x-pef-executable" description="PEF executable" data-type="string" offset="0" magic="Joy!" priority="50" />
+  <mime type="application/x-perl" description="Perl script" data-type="string" offset="0" magic="eval \&quot;exec /usr/local/bin/perl" priority="50" />
+  <mime type="application/x-perl" description="Perl script" data-type="string" offset="1:16" magic="/bin/perl" priority="50" />
+  <mime type="application/x-perl" description="Perl script" data-type="string" offset="1:16" magic="/bin/env perl" priority="50" />
+  <mime type="application/x-perl" description="Perl script" priority="100" pattern="*.pl" />
+  <mime type="application/x-perl" description="Perl script" priority="100" pattern="*.pm" />
+  <mime type="application/x-perl" description="Perl script" priority="100" pattern="*.al" />
+  <mime type="application/x-perl" description="Perl script" priority="100" pattern="*.perl" />
+  <mime type="application/x-php" description="PHP script" data-type="string" offset="0:64" magic="&lt;?php" priority="80" />
+  <mime type="application/x-php" description="PHP script" priority="100" pattern="*.php" />
+  <mime type="application/x-php" description="PHP script" priority="100" pattern="*.php3" />
+  <mime type="application/x-php" description="PHP script" priority="100" pattern="*.php4" />
+  <mime type="application/x-pkcs12" description="PKCS#12 certificate bundle" priority="100" pattern="*.p12" />
+  <mime type="application/x-pkcs12" description="PKCS#12 certificate bundle" priority="100" pattern="*.pfx" />
+  <mime type="application/x-planperfect" description="PlanPerfect spreadsheet" priority="100" pattern="*.pln" />
+  <mime type="application/x-profile" description="profiler results" priority="100" pattern="gmon.out" />
+  <mime type="application/x-pw" description="Pathetic Writer document" priority="100" pattern="*.pw" />
+  <mime type="application/x-python-bytecode" description="Python bytecode" data-type="long" endian="MSB" offset="0" magic="0x994e0d0a" priority="50" />
+  <mime type="application/x-python-bytecode" description="Python bytecode" priority="100" pattern="*.pyc" />
+  <mime type="application/x-python-bytecode" description="Python bytecode" priority="100" pattern="*.pyo" />
+  <mime type="application/x-quattropro" description="Quattro Pro spreadsheet" priority="100" pattern="*.wb1" />
+  <mime type="application/x-quattropro" description="Quattro Pro spreadsheet" priority="100" pattern="*.wb2" />
+  <mime type="application/x-quattropro" description="Quattro Pro spreadsheet" priority="100" pattern="*.wb3" />
+  <mime type="application/x-quicktime-media-link" description="QuickTime metalink playlist" data-type="string" offset="0" magic="&lt;?xml" priority="60" />
+  <mime type="application/x-quicktime-media-link" description="QuickTime metalink playlist" data-type="string" offset="0" magic="RTSPtext" priority="60" />
+  <mime type="application/x-quicktime-media-link" description="QuickTime metalink playlist" data-type="string" offset="0" magic="rtsptext" priority="60" />
+  <mime type="application/x-quicktime-media-link" description="QuickTime metalink playlist" data-type="string" offset="0" magic="SMILtext" priority="60" />
+  <mime type="application/x-quicktime-media-link" description="QuickTime metalink playlist" priority="100" pattern="*.qtl" />
+  <mime type="application/x-qw" description="Quicken document" priority="100" pattern="*.qif" />
+  <mime type="application/x-rar" description="RAR archive" data-type="string" offset="0" magic="Rar!" priority="50" />
+  <mime type="application/x-rar" description="RAR archive" priority="100" pattern="*.rar" />
+  <mime type="application/x-dar" description="DAR archive" data-type="long" endian="MSB" offset="0" magic="123" />
+  <mime type="application/x-dar" description="DAR archive" priority="100" pattern="*.dar" />
+  <mime type="application/x-reject" description="rejected patch" priority="100" pattern="*.rej" />
+  <mime type="application/x-rpm" description="RPM package" data-type="string" offset="0" magic="\xed\xab\xee\xdb" priority="50" />
+  <mime type="application/x-rpm" description="RPM package" priority="100" pattern="*.rpm" />
+  <mime type="application/x-ruby" description="Ruby script" data-type="string" offset="1:16" magic="/bin/env ruby" />
+  <mime type="application/x-ruby" description="Ruby script" data-type="string" offset="1:16" magic="/bin/ruby" />
+  <mime type="application/x-ruby" description="Ruby script" priority="100" pattern="*.rb" />
+  <mime type="application/x-markaby" description="Markaby script" priority="100" pattern="*.mab" />
+  <mime type="application/x-sc" description="SC/Xspread spreadsheet" data-type="string" offset="38" magic="Spreadsheet" priority="50" />
+  <mime type="application/x-shar" description="shell archive" priority="100" pattern="*.shar" />
+  <mime type="application/x-shared-library-la" description="shared library (la)" priority="100" pattern="*.la" />
+  <mime type="application/x-sharedlib" description="shared library" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-sharedlib" description="shared library" data-type="string" offset="0" magic="\177ELF" priority="50" />
+  <mime type="application/x-sharedlib" description="shared library" data-type="short" endian="LSB" offset="0" magic="0603" priority="50" />
+  <mime type="application/x-sharedlib" description="shared library" data-type="string" offset="0" mask="0xffffffff000000000000000000000000ff" magic="\177ELF \003" priority="50" />
+  <mime type="application/x-sharedlib" description="shared library" priority="100" pattern="*.so" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="10" magic="# This is a shell archive" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="1:16" magic="/bin/bash" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="1:16" magic="/bin/nawk" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="1:16" magic="/bin/zsh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="1:16" magic="/bin/sh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="1:16" magic="/bin/ksh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="0" magic="#!/usr/bin/env sh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="0" magic="#!/usr/bin/env bash" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="0" magic="#!/usr/bin/env zsh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" data-type="string" offset="0" magic="#!/usr/bin/env ksh" priority="50" />
+  <mime type="application/x-shellscript" description="shell script" priority="100" pattern="*.sh" />
+  <mime type="application/x-shockwave-flash" description="Shockwave Flash file" data-type="string" offset="0" magic="FWS" priority="50" />
+  <mime type="application/x-shockwave-flash" description="Shockwave Flash file" data-type="string" offset="0" magic="CWS" priority="50" />
+  <mime type="application/x-shockwave-flash" description="Shockwave Flash file" priority="100" pattern="*.swf" />
+  <mime type="application/x-shockwave-flash" description="Shockwave Flash file" priority="100" pattern="*.spl" />
+  <mime type="application/x-shorten" description="Shorten audio" data-type="string" offset="0" magic="ajkg" priority="50" />
+  <mime type="application/x-shorten" description="Shorten audio" priority="100" pattern="*.shn" />
+  <mime type="application/x-siag" description="Siag spreadsheet" priority="100" pattern="*.siag" />
+  <mime type="application/x-sms-rom" description="Sega Master System/Game Gear ROM" priority="100" pattern="*.sms" />
+  <mime type="application/x-sms-rom" description="Sega Master System/Game Gear ROM" priority="100" pattern="*.gg" />
+  <mime type="application/x-snes-rom" description="Super NES ROM" priority="100" pattern="*.smc" />
+  <mime type="application/x-stuffit" description="Macintosh StuffIt archive" data-type="string" offset="0" magic="StuffIt " priority="50" />
+  <mime type="application/x-stuffit" description="Macintosh StuffIt archive" data-type="string" offset="0" magic="SIT!" priority="50" />
+  <mime type="application/x-subrip" description="SubRip subtitles" data-type="string" offset="0" magic="1" priority="50" />
+  <mime type="application/x-subrip" description="SubRip subtitles" priority="100" pattern="*.srt" />
+  <mime type="application/x-sami" description="Synchronized Accessible Media Interchange" data-type="string" offset="0:256" magic="&lt;SAMI&gt;" priority="50" />
+  <mime type="application/x-sami" acronym="SAMI" description="Synchronized Accessible Media Interchange" priority="100" pattern="*.smi" />
+  <mime type="application/x-sami" acronym="SAMI" description="Synchronized Accessible Media Interchange" priority="100" pattern="*.sami" />
+  <mime type="text/x-microdvd" description="MicroDVD subtitles" data-type="string" offset="0" magic="{1}" priority="50" />
+  <mime type="text/x-microdvd" description="MicroDVD subtitles" data-type="string" offset="0" magic="{0}" priority="50" />
+  <mime type="text/x-microdvd" description="MicroDVD subtitles" data-type="string" offset="0:6" magic="}{" priority="50" />
+  <mime type="text/x-microdvd" description="MicroDVD subtitles" priority="100" pattern="*.sub" />
+  <mime type="text/x-mpsub" description="MPlayer Subtitle" data-type="string" offset="0:256" magic="FORMAT=" priority="50" />
+  <mime type="text/x-mpsub" acronym="MPSub" description="MPlayer Subtitle" priority="100" pattern="*.sub" />
+  <mime type="text/x-ssa" description="SubStation Alpha" data-type="string" offset="0:256" magic="[Script Info]" priority="50" />
+  <mime type="text/x-ssa" description="SubStation Alpha" data-type="string" offset="0:256" magic="Dialogue: " priority="50" />
+  <mime type="text/x-ssa" acronym="SSA" description="SubStation Alpha" priority="100" pattern="*.ssa" />
+  <mime type="text/x-ssa" acronym="SSA" description="SubStation Alpha" priority="100" pattern="*.ass" />
+  <mime type="application/x-sv4cpio" description="SV4 CPIO archive" priority="100" pattern="*.sv4cpio" />
+  <mime type="application/x-sv4crc" description="SV4 CPIO archive (with CRC)" priority="100" pattern="*.sv4crc" />
+  <mime type="application/x-tar" description="Tar archive" data-type="string" offset="257" magic="ustar\0" priority="50" />
+  <mime type="application/x-tar" description="Tar archive" data-type="string" offset="257" magic="ustar\040\040\0" priority="50" />
+  <mime type="application/x-tar" description="Tar archive" priority="100" pattern="*.tar" />
+  <mime type="application/x-tar" description="Tar archive" priority="100" pattern="*.gtar" />
+  <mime type="application/x-tarz" description="Tar archive (compressed)" priority="100" pattern="*.tar.Z" />
+  <mime type="application/x-tex-gf" description="generic font file" priority="100" pattern="*.gf" />
+  <mime type="application/x-tex-pk" description="packed font file" priority="100" pattern="*.pk" />
+  <mime type="application/x-tgif" description="TGIF document" data-type="string" offset="0" magic="%TGIF" priority="50" />
+  <mime type="application/x-tgif" description="TGIF document" priority="100" pattern="*.obj" />
+  <mime type="application/x-theme" description="theme" priority="100" pattern="*.theme" />
+  <mime type="application/x-trash" description="backup file" priority="100" pattern="*~" />
+  <mime type="application/x-trash" description="backup file" priority="100" pattern="*%" />
+  <mime type="application/x-trash" description="backup file" priority="100" pattern="*.bak" />
+  <mime type="application/x-trash" description="backup file" priority="100" pattern="*.old" />
+  <mime type="application/x-trash" description="backup file" priority="100" pattern="*.sik" />
+  <mime type="text/troff" description="Troff document" data-type="string" offset="0" magic=".\\\&quot;" priority="50" />
+  <mime type="text/troff" description="Troff document" data-type="string" offset="0" magic="'\\\&quot;" priority="50" />
+  <mime type="text/troff" description="Troff document" data-type="string" offset="0" magic="'.\\\&quot;" priority="50" />
+  <mime type="text/troff" description="Troff document" data-type="string" offset="0" magic="\\\&quot;" priority="50" />
+  <mime type="text/troff" description="Troff document" priority="100" pattern="*.tr" />
+  <mime type="text/troff" description="Troff document" priority="100" pattern="*.roff" />
+  <mime type="text/troff" description="Troff document" priority="100" pattern="*.t" />
+  <mime type="application/x-troff-man" description="Troff document (with manpage macros)" priority="100" pattern="*.man" />
+  <mime type="application/x-tzo" description="Tar archive (LZO-compressed)" priority="100" pattern="*.tar.lzo" />
+  <mime type="application/x-tzo" description="Tar archive (LZO-compressed)" priority="100" pattern="*.tzo" />
+  <mime type="application/x-ustar" description="Ustar archive" priority="100" pattern="*.ustar" />
+  <mime type="application/x-wais-source" description="WAIS source code" priority="100" pattern="*.src" />
+  <mime type="application/x-wpg" description="WordPerfect/Drawperfect image" priority="100" pattern="*.wpg" />
+  <mime type="application/x-x509-ca-cert" description="DER/PEM/Netscape-encoded X.509 certificate" priority="100" pattern="*.der" />
+  <mime type="application/x-x509-ca-cert" description="DER/PEM/Netscape-encoded X.509 certificate" priority="100" pattern="*.cer" />
+  <mime type="application/x-x509-ca-cert" description="DER/PEM/Netscape-encoded X.509 certificate" priority="100" pattern="*.crt" />
+  <mime type="application/x-x509-ca-cert" description="DER/PEM/Netscape-encoded X.509 certificate" priority="100" pattern="*.cert" />
+  <mime type="application/x-x509-ca-cert" description="DER/PEM/Netscape-encoded X.509 certificate" priority="100" pattern="*.pem" />
+  <mime type="application/x-zoo" description="Zoo archive" data-type="long" endian="LSB" offset="20" magic="0xfdc4a7dc" priority="50" />
+  <mime type="application/x-zoo" description="Zoo archive" priority="100" pattern="*.zoo" />
+  <mime type="application/xhtml+xml" acronym="XHTML" description="Extensible HyperText Markup Language" priority="100" pattern="*.xhtml" />
+  <mime type="application/zip" description="Zip archive" data-type="string" offset="0" magic="PK\003\004" priority="40" />
+  <mime type="application/zip" description="Zip archive" priority="100" pattern="*.zip" />
+  <mime type="audio/ac3" description="Dolby Digital audio" data-type="short" endian="MSB" offset="0" magic="0x0b77" priority="50" />
+  <mime type="audio/ac3" description="Dolby Digital audio" priority="100" pattern="*.ac3" />
+  <mime type="audio/AMR" description="Adaptive Multi-Rate" data-type="string" offset="0" magic="#!AMR\n" priority="50" />
+  <mime type="audio/AMR" description="Adaptive Multi-Rate" data-type="string" offset="0" magic="#!AMR_MC1.0\n" priority="50" />
+  <mime type="audio/AMR" acronym="AMR" description="Adaptive Multi-Rate" priority="100" pattern="*.amr" />
+  <mime type="audio/AMR-WB" description="Adaptive Multi-Rate Wideband" data-type="string" offset="0" magic="#!AMR-WB\n" priority="50" />
+  <mime type="audio/AMR-WB" description="Adaptive Multi-Rate Wideband" data-type="string" offset="0" magic="#!AMR-WB_MC1.0\n" priority="50" />
+  <mime type="audio/AMR-WB" description="Adaptive Multi-Rate Wideband" priority="100" pattern="*.awb" />
+  <mime type="audio/basic" description="ULAW (Sun) audio" data-type="string" offset="0" magic=".snd" priority="40" />
+  <mime type="audio/basic" description="ULAW (Sun) audio" priority="100" pattern="*.au" />
+  <mime type="audio/basic" description="ULAW (Sun) audio" priority="100" pattern="*.snd" />
+  <mime type="audio/prs.sid" description="Commodore 64 audio" data-type="string" offset="0" magic="PSID" priority="50" />
+  <mime type="audio/prs.sid" description="Commodore 64 audio" priority="100" pattern="*.sid" />
+  <mime type="audio/prs.sid" description="Commodore 64 audio" priority="100" pattern="*.psid" />
+  <mime type="audio/x-adpcm" description="PCM audio" data-type="string" offset="0" magic=".snd" priority="50" />
+  <mime type="audio/x-adpcm" description="PCM audio" data-type="long" endian="LSB" offset="0" magic="0x0064732E" priority="50" />
+  <mime type="audio/x-aifc" description="AIFC audio" data-type="string" offset="8" magic="AIFC" priority="50" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" data-type="string" offset="8" magic="AIFF" priority="50" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" data-type="string" offset="8" magic="AIFC" priority="50" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" data-type="string" offset="8" magic="8SVX" priority="50" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" priority="100" pattern="*.aiff" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" priority="100" pattern="*.aif" />
+  <mime type="audio/x-aiff" description="AIFF/Amiga/Mac audio" priority="100" pattern="*.aifc" />
+  <mime type="audio/x-ape" description="Monkey's audio" data-type="string" offset="0" magic="MAC " priority="50" />
+  <mime type="audio/x-ape" description="Monkey's audio" priority="100" pattern="*.ape" />
+  <mime type="audio/x-it" description="Impulse Tracker audio" data-type="string" offset="0" magic="IMPM" priority="50" />
+  <mime type="audio/x-it" description="Impulse Tracker audio" priority="100" pattern="*.it" />
+  <mime type="audio/x-flac" description="FLAC audio" priority="100" pattern="*.flac" />
+  <mime type="audio/x-wavpack" description="WavPack audio" data-type="string" offset="0" magic="wvpk" priority="50" />
+  <mime type="audio/x-wavpack" description="WavPack audio" priority="100" pattern="*.wv" />
+  <mime type="audio/x-wavpack" description="WavPack audio" priority="100" pattern="*.wvp" />
+  <mime type="audio/x-wavpack-correction" description="WavPack audio correction file" data-type="string" offset="0" magic="wvpk" priority="50" />
+  <mime type="audio/x-wavpack-correction" description="WavPack audio correction file" priority="100" pattern="*.wvc" />
+  <mime type="audio/midi" description="MIDI audio" data-type="string" offset="0" magic="MThd" priority="50" />
+  <mime type="audio/midi" description="MIDI audio" priority="100" pattern="*.mid" />
+  <mime type="audio/midi" description="MIDI audio" priority="100" pattern="*.midi" />
+  <mime type="audio/midi" description="MIDI audio" priority="100" pattern="*.kar" />
+  <mime type="audio/mp4" description="MPEG-4 audio" data-type="string" offset="4" magic="ftypM4A" priority="50" />
+  <mime type="audio/mp4" description="MPEG-4 audio" priority="100" pattern="*.m4a" />
+  <mime type="audio/mp4" description="MPEG-4 audio" priority="100" pattern="*.aac" />
+  <mime type="video/mp4" description="MPEG-4 video" data-type="string" offset="4" magic="ftypisom" priority="50" />
+  <mime type="video/mp4" description="MPEG-4 video" data-type="string" offset="4" magic="ftypmp42" priority="50" />
+  <mime type="video/mp4" description="MPEG-4 video" priority="100" pattern="*.mp4" />
+  <mime type="video/mp4" description="MPEG-4 video" priority="100" pattern="*.m4v" />
+  <mime type="audio/x-m4b" description="MPEG-4 audio book" data-type="string" offset="4" magic="ftypM4B" priority="50" />
+  <mime type="audio/x-m4b" description="MPEG-4 audio book" priority="100" pattern="*.m4b" />
+  <mime type="video/3gpp" description="3GPP multimedia" data-type="string" offset="4" magic="ftyp3gp" priority="50" />
+  <mime type="video/3gpp" description="3GPP multimedia" priority="100" pattern="*.3gp" />
+  <mime type="video/3gpp" description="3GPP multimedia" priority="100" pattern="*.3gpp" />
+  <mime type="video/3gpp" description="3GPP multimedia" priority="100" pattern="*.amr" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.mod" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.ult" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.uni" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.m15" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.mtm" />
+  <mime type="audio/x-mod" description="Amiga SoundTracker audio" priority="100" pattern="*.669" />
+  <mime type="audio/mp2" description="MP2 audio" priority="100" pattern="*.mp2" />
+  <mime type="audio/mpeg" description="MP3 audio" data-type="long" endian="MSB" offset="0" magic="0xfffb" priority="50" />
+  <mime type="audio/mpeg" description="MP3 audio" data-type="string" offset="0" magic="ID3" priority="50" />
+  <mime type="audio/mpeg" description="MP3 audio" priority="100" pattern="*.mp3" />
+  <mime type="audio/mpeg" description="MP3 audio" priority="100" pattern="*.mpga" />
+  <mime type="audio/x-mpegurl" description="MP3 audio (streamed)" data-type="string" offset="0" magic="#EXTM3U" priority="50" />
+  <mime type="audio/x-mpegurl" description="MP3 audio (streamed)" priority="100" pattern="*.m3u" />
+  <mime type="audio/x-mpegurl" description="MP3 audio (streamed)" priority="100" pattern="*.vlc" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" data-type="string" offset="0" magic="ASF " priority="51" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" data-type="string" offset="0:64" magic="&lt;ASX" priority="51" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" data-type="string" offset="0:64" magic="&lt;asx" priority="51" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" priority="100" pattern="*.asx" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" priority="100" pattern="*.wax" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" priority="100" pattern="*.wvx" />
+  <mime type="audio/x-ms-asx" description="Microsoft ASX playlist" priority="100" pattern="*.wmx" />
+  <mime type="audio/x-psf" description="PSF audio" data-type="string" offset="0" magic="PSF" priority="50" />
+  <mime type="audio/x-psf" acronym="PSF" description="PSF audio" priority="100" pattern="*.psf" />
+  <mime type="audio/x-minipsf" acronym="MiniPSF" description="Miniature Portable Sound Format" priority="100" pattern="*.minipsf" />
+  <mime type="audio/x-psflib" acronym="PSFlib" description="Portable Sound Format Library" priority="100" pattern="*.psflib" />
+  <mime type="audio/x-ms-wma" description="Windows Media audio" priority="100" pattern="*.wma" />
+  <mime type="audio/x-musepack" description="Musepack audio" data-type="string" offset="0" magic="MP+" priority="50" />
+  <mime type="audio/x-musepack" description="Musepack audio" priority="100" pattern="*.mpc" />
+  <mime type="audio/x-musepack" description="Musepack audio" priority="100" pattern="*.mpp" />
+  <mime type="audio/x-musepack" description="Musepack audio" priority="100" pattern="*.mp+" />
+  <mime type="audio/vnd.rn-realaudio" description="RealAudio document" priority="100" pattern="*.ra" />
+  <mime type="audio/vnd.rn-realaudio" description="RealAudio document" priority="100" pattern="*.rax" />
+  <mime type="application/ram" description="RealMedia Metafile" priority="100" pattern="*.ram" />
+  <mime type="video/vnd.rn-realvideo" description="RealVideo document" priority="100" pattern="*.rv" />
+  <mime type="video/vnd.rn-realvideo" description="RealVideo document" priority="100" pattern="*.rvx" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rm" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rmj" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rmm" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rms" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rmx" />
+  <mime type="application/vnd.rn-realmedia" description="RealMedia document" priority="100" pattern="*.rmvb" />
+  <mime type="image/vnd.rn-realpix" description="RealPix document" priority="100" pattern="*.rp" />
+  <mime type="text/vnd.rn-realtext" description="RealText document" priority="100" pattern="*.rt" />
+  <mime type="audio/x-riff" description="RIFF audio" data-type="string" offset="0" magic="RIFF" priority="45" />
+  <mime type="audio/x-s3m" description="Scream Tracker 3 audio" data-type="string" offset="44" magic="SCRM" priority="50" />
+  <mime type="audio/x-s3m" description="Scream Tracker 3 audio" priority="100" pattern="*.s3m" />
+  <mime type="audio/x-scpls" description="MP3 ShoutCast playlist" data-type="string" offset="0" magic="[playlist]" priority="50" />
+  <mime type="audio/x-scpls" description="MP3 ShoutCast playlist" data-type="string" offset="0" magic="[Playlist]" priority="50" />
+  <mime type="audio/x-scpls" description="MP3 ShoutCast playlist" data-type="string" offset="0" magic="[PLAYLIST]" priority="50" />
+  <mime type="audio/x-scpls" description="MP3 ShoutCast playlist" priority="100" pattern="*.pls" />
+  <mime type="audio/x-stm" description="Scream Tracker audio" priority="100" pattern="*.stm" />
+  <mime type="audio/x-voc" description="VOC audio" priority="100" pattern="*.voc" />
+  <mime type="audio/x-wav" description="WAV audio" data-type="string" offset="8" magic="WAVE" priority="50" />
+  <mime type="audio/x-wav" description="WAV audio" data-type="string" offset="8" magic="WAV " priority="50" />
+  <mime type="audio/x-wav" description="WAV audio" priority="100" pattern="*.wav" />
+  <mime type="audio/x-xi" description="Scream Tracker instrument" data-type="string" offset="0" magic="Extended Intrument:" priority="50" />
+  <mime type="audio/x-xi" description="Scream Tracker instrument" priority="100" pattern="*.xi" />
+  <mime type="audio/x-xm" description="FastTracker II audio" data-type="string" offset="0" magic="Extended Module:" priority="50" />
+  <mime type="audio/x-xm" description="FastTracker II audio" priority="100" pattern="*.xm" />
+  <mime type="audio/x-tta" description="TrueAudio audio" data-type="string" offset="0" magic="TTA1" priority="50" />
+  <mime type="audio/x-tta" description="TrueAudio audio" priority="100" pattern="*.tta" />
+  <mime type="image/bmp" description="Windows BMP image" data-type="string" offset="0" mask="0xffff00000000ffff" magic="BMxxxx\000\000" priority="50" />
+  <mime type="image/bmp" description="Windows BMP image" data-type="string" offset="0" magic="BM" priority="50" />
+  <mime type="image/bmp" description="Windows BMP image" priority="100" pattern="*.bmp" />
+  <mime type="image/vnd.wap.wbmp" acronym="WBMP" description="WAP bitmap" priority="100" pattern="*.wbmp" />
+  <mime type="image/cgm" description="Computer Graphics Metafile" priority="100" pattern="*.cgm" />
+  <mime type="image/fax-g3" description="CCITT G3 fax" priority="100" pattern="*.g3" />
+  <mime type="image/gif" description="GIF image" data-type="string" offset="0" magic="GIF" priority="50" />
+  <mime type="image/gif" description="GIF image" priority="100" pattern="*.gif" />
+  <mime type="image/ief" description="IEF image" priority="100" pattern="*.ief" />
+  <mime type="image/jpeg" description="JPEG image" data-type="string" offset="0" magic="\377\330\377" priority="50" />
+  <mime type="image/jpeg" description="JPEG image" data-type="short" endian="MSB" offset="0" magic="0xffd8" priority="50" />
+  <mime type="image/jpeg" description="JPEG image" priority="100" pattern="*.jpeg" />
+  <mime type="image/jpeg" description="JPEG image" priority="100" pattern="*.jpg" />
+  <mime type="image/jpeg" description="JPEG image" priority="100" pattern="*.jpe" />
+  <mime type="image/jp2" description="JPEG-2000 image" data-type="string" offset="4" magic="jP" priority="50" />
+  <mime type="image/jp2" description="JPEG-2000 image" data-type="string" offset="0" magic="\xFF\x4F\xFF\x51\x00" priority="50" />
+  <mime type="image/jp2" description="JPEG-2000 image" data-type="long" endian="MSB" offset="3" magic="0x0c6a5020" priority="50" />
+  <mime type="image/jp2" description="JPEG-2000 image" priority="100" pattern="*.jp2" />
+  <mime type="image/jp2" description="JPEG-2000 image" priority="100" pattern="*.jpc" />
+  <mime type="image/jp2" description="JPEG-2000 image" priority="100" pattern="*.jpx" />
+  <mime type="image/jp2" description="JPEG-2000 image" priority="100" pattern="*.j2k" />
+  <mime type="image/jp2" description="JPEG-2000 image" priority="100" pattern="*.jpf" />
+  <mime type="image/x-dds" description="DirectDraw surface" data-type="string" offset="0" magic="DDS" priority="50" />
+  <mime type="image/x-dds" description="DirectDraw surface" priority="100" pattern="*.dds" />
+  <mime type="image/x-xcursor" description="X11 cursor" data-type="string" offset="0" magic="Xcur" priority="50" />
+  <mime type="image/x-pict" description="Macintosh Quickdraw/PICT drawing" priority="100" pattern="*.pict" />
+  <mime type="image/x-pict" description="Macintosh Quickdraw/PICT drawing" priority="100" pattern="*.pict1" />
+  <mime type="image/x-pict" description="Macintosh Quickdraw/PICT drawing" priority="100" pattern="*.pict2" />
+  <mime type="image/x-pict" description="Macintosh Quickdraw/PICT drawing" data-type="string" offset="0" magic="PICT" priority="50" />
+  <mime type="application/x-ufraw" acronym="UFRaw" description="Unidentified Flying Raw" priority="100" pattern="*.ufraw" />
+  <mime type="image/x-adobe-dng" acronym="DNG" description="Digital Negative" priority="100" pattern="*.dng" />
+  <mime type="image/x-canon-crw" description="Canon RaW" data-type="string" offset="0" magic="II\x1a\x00\x00\x00HEAPCCDR" priority="50" />
+  <mime type="image/x-canon-crw" acronym="CRW" description="Canon RaW" priority="100" pattern="*.crw" />
+  <mime type="image/x-canon-cr2" acronym="CR2" description="Canon Raw 2" priority="100" pattern="*.cr2" />
+  <mime type="image/x-fuji-raf" description="RAw Format" data-type="string" offset="0" magic="FUJIFILMCCD-RAW " priority="50" />
+  <mime type="image/x-fuji-raf" acronym="RAF" description="RAw Format" priority="100" pattern="*.raf" />
+  <mime type="image/x-kodak-dcr" acronym="DCR" description="Digital Camera Raw" priority="100" pattern="*.dcr" />
+  <mime type="image/x-kodak-k25" acronym="K25" description="Kodak DC25" priority="100" pattern="*.k25" />
+  <mime type="image/x-kodak-kdc" acronym="KDC" description="Kodak Digital Camera" priority="100" pattern="*.kdc" />
+  <mime type="image/x-minolta-mrw" description="Minolta RaW" data-type="string" offset="0" magic="\x00MRM" priority="50" />
+  <mime type="image/x-minolta-mrw" acronym="MRW" description="Minolta RaW" priority="100" pattern="*.mrw" />
+  <mime type="image/x-nikon-nef" acronym="NEF" description="Nikon Electronic Format" priority="100" pattern="*.nef" />
+  <mime type="image/x-olympus-orf" description="Olympus Raw Format" data-type="string" offset="0" magic="IIRO\x08\x00\x00\x00" priority="50" />
+  <mime type="image/x-olympus-orf" acronym="ORF" description="Olympus Raw Format" priority="100" pattern="*.orf" />
+  <mime type="image/x-panasonic-raw" description="Panasonic raw image" data-type="string" offset="0" magic="IIU\x00\x08\x00\x00\x00" priority="50" />
+  <mime type="image/x-panasonic-raw" description="Panasonic raw image" priority="100" pattern="*.raw" />
+  <mime type="image/x-pentax-pef" acronym="PEF" description="Pentax Electronic Format" priority="100" pattern="*.pef" />
+  <mime type="image/x-sigma-x3f" description="X3 Foveon" data-type="string" offset="0" magic="FOVb" priority="50" />
+  <mime type="image/x-sigma-x3f" acronym="X3F" description="X3 Foveon" priority="100" pattern="*.x3f" />
+  <mime type="image/x-sony-srf" acronym="SRF" description="Sony Raw Format" priority="100" pattern="*.srf" />
+  <mime type="image/x-sony-sr2" acronym="SR2" description="Sony Raw format 2" priority="100" pattern="*.sr2" />
+  <mime type="image/x-sony-arw" acronym="ARW" description="Alpha Raw format" priority="100" pattern="*.arw" />
+  <mime type="image/png" description="PNG image" data-type="string" offset="0" magic="\x89PNG" priority="50" />
+  <mime type="image/png" description="PNG image" priority="100" pattern="*.png" />
+  <mime type="image/rle" description="Run Length Encoded bitmap image" priority="100" pattern="*.rle" />
+  <mime type="image/svg+xml" description="Scalable Vector Graphics" data-type="string" offset="0:256" magic="&lt;!DOCTYPE svg" priority="80" />
+  <mime type="image/svg+xml" description="Scalable Vector Graphics" data-type="string" offset="0:256" magic="&lt;svg" priority="80" />
+  <mime type="image/svg+xml" acronym="SVG" description="Scalable Vector Graphics" priority="100" pattern="*.svg" />
+  <mime type="image/svg+xml-compressed" acronym="SVG" description="Scalable Vector Graphics" priority="100" pattern="*.svgz" />
+  <mime type="image/tiff" description="Tagged Image File Format" data-type="string" offset="0" magic="MM\x00\x2a" priority="50" />
+  <mime type="image/tiff" description="Tagged Image File Format" data-type="string" offset="0" magic="II\x2a\x00" priority="50" />
+  <mime type="image/tiff" acronym="TIFF" description="Tagged Image File Format" priority="100" pattern="*.tif" />
+  <mime type="image/tiff" acronym="TIFF" description="Tagged Image File Format" priority="100" pattern="*.tiff" />
+  <mime type="image/vnd.dwg" description="AutoCAD image" priority="100" pattern="*.dwg" />
+  <mime type="image/vnd.dxf" description="DXF vector image" data-type="string" offset="0:64" magic="\nHEADER\n" priority="50" />
+  <mime type="image/vnd.dxf" description="DXF vector image" data-type="string" offset="0:64" magic="\x0d\nHEADER\x0d\n" priority="50" />
+  <mime type="image/vnd.dxf" description="DXF vector image" priority="100" pattern="*.dxf" />
+  <mime type="image/x-3ds" description="3D Studio image" priority="100" pattern="*.3ds" />
+  <mime type="image/x-applix-graphics" description="Applix Graphics image" data-type="string" offset="0" magic="*BEGIN" priority="50" />
+  <mime type="image/x-applix-graphics" description="Applix Graphics image" priority="100" pattern="*.ag" />
+  <mime type="image/x-bzeps" description="EPS image (bzip-compressed)" priority="100" pattern="*.eps.bz2" />
+  <mime type="image/x-bzeps" description="EPS image (bzip-compressed)" priority="100" pattern="*.epsi.bz2" />
+  <mime type="image/x-bzeps" description="EPS image (bzip-compressed)" priority="100" pattern="*.epsf.bz2" />
+  <mime type="image/x-cmu-raster" description="CMU raster image" priority="100" pattern="*.ras" />
+  <mime type="image/x-compressed-xcf" description="compressed GIMP image" priority="100" pattern="*.xcf.gz" />
+  <mime type="image/x-compressed-xcf" description="compressed GIMP image" priority="100" pattern="*.xcf.bz2" />
+  <mime type="application/dicom" description="Digital Imaging and Communications in Medicine" data-type="string" offset="128" magic="DICM" priority="50" />
+  <mime type="application/dicom" acronym="DICOM" description="Digital Imaging and Communications in Medicine" priority="100" pattern="*.dcm" />
+  <mime type="application/docbook+xml" description="DocBook document" data-type="string" offset="0" magic="&lt;?xml" priority="90" />
+  <mime type="application/docbook+xml" description="DocBook document" priority="100" pattern="*.docbook" />
+  <mime type="image/x-dib" description="Device Independant Bitmap" data-type="string" offset="0" magic="\x28\00\00\00" priority="50" />
+  <mime type="image/vnd.djvu" description="DjVu image" data-type="string" offset="4" magic="FORM" priority="50" />
+  <mime type="image/vnd.djvu" description="DjVu image" priority="100" pattern="*.djvu" />
+  <mime type="image/vnd.djvu" description="DjVu image" priority="100" pattern="*.djv" />
+  <mime type="image/dpx" description="Digital Moving Picture Exchange" data-type="long" endian="MSB" offset="0" magic="0x53445058" priority="50" />
+  <mime type="image/x-eps" description="Encapsulated PostScript" data-type="string" offset="0" magic="%!" priority="90" />
+  <mime type="image/x-eps" description="Encapsulated PostScript" data-type="string" offset="0" magic="\004%!" priority="90" />
+  <mime type="image/x-eps" acronym="EPS" description="Encapsulated PostScript" priority="100" pattern="*.eps" />
+  <mime type="image/x-eps" acronym="EPS" description="Encapsulated PostScript" priority="100" pattern="*.epsi" />
+  <mime type="image/x-eps" acronym="EPS" description="Encapsulated PostScript" priority="100" pattern="*.epsf" />
+  <mime type="image/x-fits" description="Flexible Image Transport System" data-type="string" offset="0" magic="SIMPLE =" priority="50" />
+  <mime type="image/x-fits" acronym="FITS" description="Flexible Image Transport System" priority="100" pattern="*.fits" />
+  <mime type="image/x-fpx" description="FlashPiX" data-type="long" endian="MSB" offset="0" magic="0x46506978" priority="50" />
+  <mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.eps.gz" />
+  <mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsi.gz" />
+  <mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsf.gz" />
+  <mime type="image/x-ico" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
+  <mime type="image/x-icon" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
+  <mime type="image/x-icns" description="MacOS X icon" data-type="string" offset="0" magic="icns" priority="50" />
+  <mime type="image/x-icns" description="MacOS X icon" priority="100" pattern="*.icns" />
+  <mime type="image/x-iff" description="IFF image" priority="100" pattern="*.iff" />
+  <mime type="image/x-ilbm" acronym="ILBM image" description="InterLeaved BitMap" priority="100" pattern="*.ilbm" />
+  <mime type="image/x-jng" acronym="JNG" description="JPEG Network Graphics" priority="100" pattern="*.jng" />
+  <mime type="image/x-lwo" description="LightWave object" priority="100" pattern="*.lwo" />
+  <mime type="image/x-lwo" description="LightWave object" priority="100" pattern="*.lwob" />
+  <mime type="image/x-lws" description="LightWave scene" priority="100" pattern="*.lws" />
+  <mime type="image/x-macpaint" description="MacPaint Bitmap image" priority="100" pattern="*.pntg" />
+  <mime type="image/x-msod" description="Office drawing" priority="100" pattern="*.msod" />
+  <mime type="image/x-niff" description="NIFF image" data-type="string" offset="0" magic="IIN1" priority="80" />
+  <mime type="image/x-pcx" description="PiCture eXchange" data-type="byte" offset="0" magic="10" priority="50" />
+  <mime type="image/x-photo-cd" acronym="PCD" description="PhotoCD" priority="100" pattern="*.pcd" />
+  <mime type="image/x-portable-anymap" description="PNM image" priority="100" pattern="*.pnm" />
+  <mime type="image/x-portable-bitmap" description="Portable BitMap" data-type="string" offset="0" magic="P1" priority="50" />
+  <mime type="image/x-portable-bitmap" description="Portable BitMap" data-type="string" offset="0" magic="P4" priority="50" />
+  <mime type="image/x-portable-bitmap" acronym="PBM" description="Portable BitMap" priority="100" pattern="*.pbm" />
+  <mime type="image/x-portable-graymap" description="Portable GrayMap" data-type="string" offset="0" magic="P2" priority="50" />
+  <mime type="image/x-portable-graymap" description="Portable GrayMap" data-type="string" offset="0" magic="P5" priority="50" />
+  <mime type="image/x-portable-graymap" acronym="PGM" description="Portable GrayMap" priority="100" pattern="*.pgm" />
+  <mime type="image/x-portable-pixmap" description="Portable PixMap" data-type="string" offset="0" magic="P3" priority="50" />
+  <mime type="image/x-portable-pixmap" description="Portable PixMap" data-type="string" offset="0" magic="P6" priority="50" />
+  <mime type="image/x-portable-pixmap" acronym="PPM" description="Portable PixMap" priority="100" pattern="*.ppm" />
+  <mime type="image/x-psd" description="PhotoShop Document" data-type="string" offset="0" mask="0xffffffff0000ffffffff" magic="8BPS \000\000\000\000" priority="50" />
+  <mime type="image/x-psd" acronym="PSD" description="PhotoShop Document" priority="100" pattern="*.psd" />
+  <mime type="image/x-rgb" description="RGB image" priority="100" pattern="*.rgb" />
+  <mime type="image/x-sgi" description="SGI image" priority="100" pattern="*.sgi" />
+  <mime type="image/x-sun-raster" description="Sun raster image" data-type="long" endian="MSB" offset="0" magic="0x59a66a95" priority="50" />
+  <mime type="image/x-sun-raster" description="Sun raster image" priority="100" pattern="*.sun" />
+  <mime type="image/x-tga" acronym="TGA" description="TGA image" priority="100" pattern="*.icb" />
+  <mime type="image/x-tga" acronym="TGA" description="TGA image" priority="100" pattern="*.tga" />
+  <mime type="image/x-tga" acronym="TGA" description="TGA image" priority="100" pattern="*.tpic" />
+  <mime type="image/x-tga" acronym="TGA" description="TGA image" priority="100" pattern="*.vda" />
+  <mime type="image/x-tga" acronym="TGA" description="TGA image" priority="100" pattern="*.vst" />
+  <mime type="image/x-win-bitmap" description="Windows cursor" priority="100" pattern="*.cur" />
+  <mime type="image/x-emf" description="Enhanced MetaFile" data-type="long" endian="LSB" offset="0" magic="0x00000001" priority="50" />
+  <mime type="image/x-emf" acronym="EMF" description="Enhanced MetaFile" priority="100" pattern="*.emf" />
+  <mime type="image/x-wmf" description="Windows Metafile" data-type="long" endian="LSB" offset="0" magic="0x9AC6CDD7" priority="50" />
+  <mime type="image/x-wmf" description="Windows Metafile" data-type="short" endian="LSB" offset="0" magic="0x0001" priority="50" />
+  <mime type="image/x-wmf" acronym="WMF" description="Windows Metafile" priority="100" pattern="*.wmf" />
+  <mime type="image/x-xbitmap" acronym="XBM" description="X BitMap" priority="100" pattern="*.xbm" />
+  <mime type="image/x-xcf" description="GIMP image" priority="100" pattern="*.xcf" />
+  <mime type="image/x-xfig" description="XFig image" data-type="string" offset="0" magic="#FIG" priority="50" />
+  <mime type="image/x-xfig" description="XFig image" priority="100" pattern="*.fig" />
+  <mime type="image/x-xpixmap" description="X PixMap" data-type="string" offset="0" magic="/* XPM" priority="50" />
+  <mime type="image/x-xpixmap" acronym="XPM" description="X PixMap" priority="100" pattern="*.xpm" />
+  <mime type="image/x-xwindowdump" description="X window image" priority="100" pattern="*.xwd" />
+  <mime type="message/news" description="Usenet news message" data-type="string" offset="0" magic="Article" priority="50" />
+  <mime type="message/news" description="Usenet news message" data-type="string" offset="0" magic="Path:" priority="50" />
+  <mime type="message/news" description="Usenet news message" data-type="string" offset="0" magic="Xref:" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="#! rnews" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Forward to" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="From:" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="N#! rnews" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Pipe to" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Received:" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Relay-Version:" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Return-Path:" priority="50" />
+  <mime type="message/rfc822" description="email message" data-type="string" offset="0" magic="Return-path:" priority="50" />
+  <mime type="message/x-gnu-rmail" description="GNU mail message" priority="100" pattern="RMAIL" />
+  <mime type="model/vrml" description="VRML document" priority="100" pattern="*.wrl" />
+  <mime type="text/calendar" description="vCalendar/iCalendar" data-type="string" offset="0" magic="BEGIN:VCALENDAR" priority="50" />
+  <mime type="text/calendar" description="vCalendar/iCalendar" data-type="string" offset="0" magic="begin:vcalendar" priority="50" />
+  <mime type="text/calendar" acronym="VCS/ICS" description="vCalendar/iCalendar" priority="100" pattern="*.vcs" />
+  <mime type="text/calendar" acronym="VCS/ICS" description="vCalendar/iCalendar" priority="100" pattern="*.ics" />
+  <mime type="text/css" acronym="CSS" description="Cascading Style Sheets" priority="100" pattern="*.css" />
+  <mime type="text/css" acronym="CSS" description="Cascading Style Sheets" priority="100" pattern="*.CSSL" />
+  <mime type="text/directory" description="Electronic Business Card" data-type="string" offset="0" magic="BEGIN:VCARD" priority="50" />
+  <mime type="text/directory" description="Electronic Business Card" data-type="string" offset="0" magic="begin:vcard" priority="50" />
+  <mime type="text/directory" description="Electronic Business Card" priority="100" pattern="*.vcf" />
+  <mime type="text/directory" description="Electronic Business Card" priority="100" pattern="*.vct" />
+  <mime type="text/directory" description="Electronic Business Card" priority="100" pattern="*.gcrd" />
+  <mime type="text/x-txt2tags" description="txt2tags document" data-type="string" offset="0" magic="%!postproc" priority="60" />
+  <mime type="text/x-txt2tags" description="txt2tags document" data-type="string" offset="0" magic="%!encoding" priority="60" />
+  <mime type="text/x-txt2tags" description="txt2tags document" priority="100" pattern="*.t2t" />
+  <mime type="text/x-vhdl" description="Very-High-Speed Integrated Circuit Hardware Description Language" data-type="string" offset="0" magic="--" priority="20" />
+  <mime type="text/x-vhdl" acronym="VHDL" description="Very-High-Speed Integrated Circuit Hardware Description Language" priority="100" pattern="*.vhd" />
+  <mime type="text/x-vhdl" acronym="VHDL" description="Very-High-Speed Integrated Circuit Hardware Description Language" priority="100" pattern="*.vhdl" />
+  <mime type="text/mathml" description="MathML document" priority="100" pattern="*.mml" />
+  <mime type="text/plain" description="plain text document" data-type="string" offset="0" magic="This is TeX," priority="50" />
+  <mime type="text/plain" description="plain text document" data-type="string" offset="0" magic="This is METAFONT," priority="50" />
+  <mime type="text/plain" description="plain text document" priority="100" pattern="*.txt" />
+  <mime type="text/plain" description="plain text document" priority="100" pattern="*.asc" />
+  <mime type="text/rdf" acronym="RDF" description="Resource Description Framework" priority="100" pattern="*.rdf" />
+  <mime type="text/rdf" acronym="RDF" description="Resource Description Framework" priority="100" pattern="*.rdfs" />
+  <mime type="text/rdf" acronym="RDF" description="Resource Description Framework" priority="100" pattern="*.owl" />
+  <mime type="text/richtext" description="rich text document" priority="100" pattern="*.rtx" />
+  <mime type="application/rss+xml" description="RDF Site Summary" data-type="string" offset="0:256" magic="&lt;rss " priority="70" />
+  <mime type="application/rss+xml" description="RDF Site Summary" data-type="string" offset="0:256" magic="&lt;RSS " priority="70" />
+  <mime type="application/rss+xml" acronym="RSS" description="RDF Site Summary" priority="100" pattern="*.rss" />
+  <mime type="application/atom+xml" description="Atom syndication feed" data-type="string" offset="0:256" magic="&lt;feed " priority="70" />
+  <mime type="application/atom+xml" description="Atom syndication feed" priority="100" pattern="*.atom" />
+  <mime type="text/x-opml+xml" description="OPML syndication feed" data-type="string" offset="0:256" magic="&lt;opml " priority="70" />
+  <mime type="text/x-opml+xml" description="OPML syndication feed" priority="100" pattern="*.opml" />
+  <mime type="text/sgml" acronym="SGML" description="Standard Generalized Markup Language" priority="100" pattern="*.sgml" />
+  <mime type="text/sgml" acronym="SGML" description="Standard Generalized Markup Language" priority="100" pattern="*.sgm" />
+  <mime type="text/spreadsheet" description="spreadsheet interchange document" data-type="string" offset="0" magic="ID;" priority="50" />
+  <mime type="text/spreadsheet" description="spreadsheet interchange document" priority="100" pattern="*.sylk" />
+  <mime type="text/spreadsheet" description="spreadsheet interchange document" priority="100" pattern="*.slk" />
+  <mime type="text/tab-separated-values" description="TSV document" priority="100" pattern="*.tsv" />
+  <mime type="text/vnd.sun.j2me.app-descriptor" description="Java Application Descriptor" data-type="string" offset="0" magic="MIDlet-" priority="50" />
+  <mime type="text/vnd.sun.j2me.app-descriptor" acronym="JAD" description="Java Application Descriptor" priority="100" pattern="*.jad" />
+  <mime type="text/vnd.wap.wml" acronym="WML" description="Wireless Markup Language" priority="100" pattern="*.wml" />
+  <mime type="text/vnd.wap.wmlscript" description="WMLScript program" priority="100" pattern="*.wmls" />
+  <mime type="application/x-ace" description="ACE archive" data-type="string" offset="7" magic="**ACE**" priority="50" />
+  <mime type="application/x-ace" description="ACE archive" priority="100" pattern="*.ace" />
+  <mime type="text/x-adasrc" description="Ada source code" priority="100" pattern="*.adb" />
+  <mime type="text/x-adasrc" description="Ada source code" priority="100" pattern="*.ads" />
+  <mime type="text/x-authors" description="author list" priority="100" pattern="AUTHORS" />
+  <mime type="text/x-bibtex" description="BibTeX document" priority="100" pattern="*.bib" />
+  <mime type="text/x-c++hdr" description="C++ header" priority="100" pattern="*.hh" />
+  <mime type="text/x-c++hdr" description="C++ header" priority="100" pattern="*.hp" />
+  <mime type="text/x-c++hdr" description="C++ header" priority="100" pattern="*.hpp" />
+  <mime type="text/x-c++hdr" description="C++ header" priority="100" pattern="*.h++" />
+  <mime type="text/x-c++hdr" description="C++ header" priority="100" pattern="*.hxx" />
+  <mime type="text/x-c++src" description="C++ source code" priority="100" pattern="*.cpp" />
+  <mime type="text/x-c++src" description="C++ source code" priority="100" pattern="*.cxx" />
+  <mime type="text/x-c++src" description="C++ source code" priority="100" pattern="*.cc" />
+  <mime type="text/x-c++src" description="C++ source code" priority="100" pattern="*.C" />
+  <mime type="text/x-c++src" description="C++ source code" priority="100" pattern="*.c++" />
+  <mime type="text/x-changelog" description="ChangeLog document" priority="100" pattern="ChangeLog" />
+  <mime type="text/x-chdr" description="C header" priority="100" pattern="*.h" />
+  <mime type="text/csv" description="CSV document" priority="100" pattern="*.csv" />
+  <mime type="text/x-copying" description="license terms" priority="100" pattern="COPYING" />
+  <mime type="text/x-credits" description="author credits" priority="100" pattern="CREDITS" />
+  <mime type="text/x-csrc" description="C source code" data-type="string" offset="0" magic="/*" priority="30" />
+  <mime type="text/x-csrc" description="C source code" data-type="string" offset="0" magic="//" priority="30" />
+  <mime type="text/x-csrc" description="C source code" data-type="string" offset="0" magic="#include" priority="30" />
+  <mime type="text/x-csrc" description="C source code" priority="100" pattern="*.c" />
+  <mime type="text/x-csharp" description="C# source code" priority="100" pattern="*.cs" />
+  <mime type="text/x-vala" description="Vala source code" priority="100" pattern="*.vala" />
+  <mime type="text/x-dcl" acronym="DCL" description="Data Conversion Laboratory" priority="100" pattern="*.dcl" />
+  <mime type="text/x-dsl" acronym="DSSSL" description="Document Style Semantics and Specification Language" priority="100" pattern="*.dsl" />
+  <mime type="text/x-dsrc" description="D source code" priority="100" pattern="*.d" />
+  <mime type="text/x-dtd" acronym="DTD" description="Document Type Definition" priority="100" pattern="*.dtd" />
+  <mime type="text/x-emacs-lisp" description="Emacs Lisp source code" data-type="string" offset="0" magic="\012(" priority="50" />
+  <mime type="text/x-emacs-lisp" description="Emacs Lisp source code" data-type="string" offset="0" magic=";ELC\023\000\000\000" priority="50" />
+  <mime type="text/x-emacs-lisp" description="Emacs Lisp source code" priority="100" pattern="*.el" />
+  <mime type="text/x-erlang" description="Erlang source code" priority="100" pattern="*.erl" />
+  <mime type="text/x-fortran" description="Fortran source code" priority="100" pattern="*.[fF]" />
+  <mime type="text/x-fortran" description="Fortran source code" priority="100" pattern="*.[fF]9[05]" />
+  <mime type="text/x-fortran" description="Fortran source code" priority="100" pattern="*.for" />
+  <mime type="text/x-gettext-translation" description="translation file" priority="100" pattern="*.po" />
+  <mime type="text/x-gettext-translation-template" description="translation template" priority="100" pattern="*.pot" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;!DOCTYPE HTML" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;!doctype html" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;HEAD" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;head" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;TITLE" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;title" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;HTML" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;html" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;SCRIPT" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0:256" magic="&lt;script" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;BODY" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;body" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;!--" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;h1" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;H1" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;!doctype HTML" priority="50" />
+  <mime type="text/html" description="HyperText Markup Language" data-type="string" offset="0" magic="&lt;!DOCTYPE html" priority="50" />
+  <mime type="text/html" acronym="HTML" description="HyperText Markup Language" priority="100" pattern="*.html" />
+  <mime type="text/html" acronym="HTML" description="HyperText Markup Language" priority="100" pattern="*.htm" />
+  <mime type="text/x-gtkrc" description="GTK+ configuration" priority="100" pattern="gtkrc" />
+  <mime type="text/x-gtkrc" description="GTK+ configuration" priority="100" pattern=".gtkrc" />
+  <mime type="text/x-google-video-pointer" description="Google Video Pointer" data-type="string" offset="0" magic="#.download.the.free.Google.Video.Player" priority="50" />
+  <mime type="text/x-google-video-pointer" description="Google Video Pointer" data-type="string" offset="0" magic="# download the free Google Video Player" priority="50" />
+  <mime type="text/x-google-video-pointer" description="Google Video Pointer" priority="100" pattern="*.gvp" />
+  <mime type="text/x-haskell" description="Haskell source code" priority="100" pattern="*.hs" />
+  <mime type="text/x-idl" acronym="IDL" description="Interface Definition Language" priority="100" pattern="*.idl" />
+  <mime type="text/x-install" description="installation instructions" priority="100" pattern="INSTALL" />
+  <mime type="text/x-java" description="Java source code" priority="100" pattern="*.java" />
+  <mime type="text/x-ksysv-log" data-type="string" offset="0" magic="KDE System V Init Editor" priority="50" />
+  <mime type="text/x-ldif" description="LDAP Data Interchange Format" data-type="string" offset="0" magic="dn: cn=" priority="50" />
+  <mime type="text/x-ldif" description="LDAP Data Interchange Format" data-type="string" offset="0" magic="dn: mail=" priority="50" />
+  <mime type="text/x-ldif" acronym="LDIF" description="LDAP Data Interchange Format" priority="100" pattern="*.ldif" />
+  <mime type="text/x-literate-haskell" description="Literate Haskell source code" priority="100" pattern="*.lhs" />
+  <mime type="text/x-log" description="application log" priority="100" pattern="*.log" />
+  <mime type="text/x-makefile" description="Makefile" data-type="string" offset="0" magic="#!/usr/bin/make" priority="50" />
+  <mime type="text/x-makefile" description="Makefile" data-type="string" offset="0" magic="#! /usr/bin/make" priority="50" />
+  <mime type="text/x-makefile" description="Makefile" priority="100" pattern="[Mm]akefile" />
+  <mime type="text/x-makefile" description="Makefile" priority="100" pattern="GNUmakefile" />
+  <mime type="text/x-moc" acronym="Qt MOC" description="Qt Meta Object Compiler" priority="100" pattern="*.moc" />
+  <mime type="text/x-mup" description="Mup publication" data-type="string" offset="0" magic="//!Mup" priority="50" />
+  <mime type="text/x-mup" description="Mup publication" priority="100" pattern="*.mup" />
+  <mime type="text/x-mup" description="Mup publication" priority="100" pattern="*.not" />
+  <mime type="text/x-objcsrc" description="Objective-C source code" data-type="string" offset="0" magic="#import" priority="30" />
+  <mime type="text/x-objcsrc" description="Objective-C source code" priority="100" pattern="*.m" />
+  <mime type="text/x-ocaml" description="OCaml source code" priority="100" pattern="*.ml" />
+  <mime type="text/x-ocaml" description="OCaml source code" priority="100" pattern="*.mli" />
+  <mime type="text/x-matlab" description="MATLAB script/function" data-type="string" offset="0" magic="%" priority="10" />
+  <mime type="text/x-matlab" description="MATLAB script/function" priority="100" pattern="*.m" />
+  <mime type="text/x-pascal" description="Pascal source code" priority="100" pattern="*.p" />
+  <mime type="text/x-pascal" description="Pascal source code" priority="100" pattern="*.pas" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="diff\t" priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="diff " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="***\t" priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="*** " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="=== " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="--- " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="Only in\t" priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="Only in " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="Common subdirectories: " priority="50" />
+  <mime type="text/x-patch" description="differences between files" data-type="string" offset="0" magic="Index:" priority="50" />
+  <mime type="text/x-patch" description="differences between files" priority="100" pattern="*.diff" />
+  <mime type="text/x-patch" description="differences between files" priority="100" pattern="*.patch" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#!/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#! /bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="eval \&quot;exec /bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#!/usr/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#! /usr/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="eval \&quot;exec /usr/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#!/usr/local/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="#! /usr/local/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="0" magic="eval \&quot;exec /usr/local/bin/python" priority="50" />
+  <mime type="text/x-python" description="Python script" data-type="string" offset="1:16" magic="/bin/env python" priority="50" />
+  <mime type="text/x-python" description="Python script" priority="100" pattern="*.py" />
+  <mime type="text/x-lua" description="Lua script" data-type="string" offset="0" magic="/bin/lua" priority="50" />
+  <mime type="text/x-lua" description="Lua script" data-type="string" offset="0" magic="/bin/env lua" priority="50" />
+  <mime type="text/x-lua" description="Lua script" priority="100" pattern="*.lua" />
+  <mime type="text/x-readme" description="README document" priority="100" pattern="README*" />
+  <mime type="text/x-readme" description="README document" priority="100" pattern="*.nfo" />
+  <mime type="text/x-rpm-spec" description="Red Hat Package Manager" data-type="string" offset="0" magic="Summary: " priority="50" />
+  <mime type="text/x-rpm-spec" description="Red Hat Package Manager" data-type="string" offset="0" magic="%define " priority="50" />
+  <mime type="text/x-rpm-spec" acronym="RPM" description="Red Hat Package Manager" priority="100" pattern="*.spec" />
+  <mime type="text/x-scheme" description="Scheme source code" priority="100" pattern="*.scm" />
+  <mime type="text/x-setext" description="Setext document" priority="100" pattern="*.etx" />
+  <mime type="text/x-sql" description="SQL code" priority="100" pattern="*.sql" />
+  <mime type="text/x-tcl" description="Tcl script" priority="100" pattern="*.tcl" />
+  <mime type="text/x-tcl" description="Tcl script" priority="100" pattern="*.tk" />
+  <mime type="text/x-tex" description="TeX document" data-type="string" offset="0" magic="%" priority="10" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.tex" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.ltx" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.sty" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.cls" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.dtx" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.ins" />
+  <mime type="text/x-tex" description="TeX document" priority="100" pattern="*.latex" />
+  <mime type="text/x-texinfo" description="TeXInfo document" priority="100" pattern="*.texi" />
+  <mime type="text/x-texinfo" description="TeXInfo document" priority="100" pattern="*.texinfo" />
+  <mime type="text/x-troff-me" description="Troff ME input document" priority="100" pattern="*.me" />
+  <mime type="text/x-troff-mm" description="Troff MM input document" priority="100" pattern="*.mm" />
+  <mime type="text/x-troff-ms" description="Troff MS input document" priority="100" pattern="*.ms" />
+  <mime type="text/x-uil" description="X-Motif UIL table" priority="100" pattern="*.uil" />
+  <mime type="text/x-uri" description="resource location" priority="100" pattern="*.uri" />
+  <mime type="text/x-uri" description="resource location" priority="100" pattern="*.url" />
+  <mime type="text/x-xmi" acronym="XMI" description="XML Metadata Interchange" priority="100" pattern="*.xmi" />
+  <mime type="text/x-xslfo" acronym="XSL FO" description="XSL Formatting Objects" priority="100" pattern="*.fo" />
+  <mime type="text/x-xslfo" acronym="XSL FO" description="XSL Formatting Objects" priority="100" pattern="*.xslfo" />
+  <mime type="text/xmcd" description="XMCD CD database" data-type="string" offset="0" magic="# xmcd" priority="50" />
+  <mime type="application/xml" description="eXtensible Markup Language" data-type="string" offset="0" magic="&lt;?xml" priority="50" />
+  <mime type="application/xml" description="eXtensible Markup Language" data-type="string" offset="0" magic="&lt;!--" priority="50" />
+  <mime type="application/xml" acronym="XML" description="eXtensible Markup Language" priority="100" pattern="*.xml" />
+  <mime type="application/xml" acronym="XML" description="eXtensible Markup Language" priority="100" pattern="*.xsl" />
+  <mime type="application/xml" acronym="XML" description="eXtensible Markup Language" priority="100" pattern="*.xslt" />
+  <mime type="application/xml" acronym="XML" description="eXtensible Markup Language" priority="100" pattern="*.xbl" />
+  <mime type="video/dv" description="Digital Video" data-type="long" endian="MSB" offset="0" mask="0xffffff00" magic="0x1f070000" priority="50" />
+  <mime type="video/dv" acronym="DV" description="Digital Video" priority="100" pattern="*.dv" />
+  <mime type="video/mpeg" description="Moving Picture Experts Group" data-type="string" offset="0" magic="\x47\x3f\xff\x10" priority="50" />
+  <mime type="video/mpeg" description="Moving Picture Experts Group" data-type="long" endian="MSB" offset="0" magic="0x000001b3" priority="50" />
+  <mime type="video/mpeg" description="Moving Picture Experts Group" data-type="long" endian="MSB" offset="0" magic="0x000001ba" priority="50" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.mpeg" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.mpg" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.mp2" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.mpe" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.vob" />
+  <mime type="video/mpeg" acronym="MPEG" description="Moving Picture Experts Group" priority="100" pattern="*.m2t" />
+  <mime type="video/quicktime" description="QuickTime video" data-type="string" offset="12" magic="mdat" priority="50" />
+  <mime type="video/quicktime" description="QuickTime video" data-type="string" offset="4" magic="mdat" priority="50" />
+  <mime type="video/quicktime" description="QuickTime video" data-type="string" offset="4" magic="moov" priority="50" />
+  <mime type="video/quicktime" description="QuickTime video" data-type="string" offset="4" magic="ftypqt" priority="50" />
+  <mime type="video/quicktime" description="QuickTime video" priority="100" pattern="*.qt" />
+  <mime type="video/quicktime" description="QuickTime video" priority="100" pattern="*.mov" />
+  <mime type="video/quicktime" description="QuickTime video" priority="100" pattern="*.moov" />
+  <mime type="video/quicktime" description="QuickTime video" priority="100" pattern="*.qtvr" />
+  <mime type="image/x-quicktime" description="QuickTime image" data-type="string" offset="4" magic="idat" priority="50" />
+  <mime type="image/x-quicktime" description="QuickTime image" priority="100" pattern="*.qtif" />
+  <mime type="image/x-quicktime" description="QuickTime image" priority="100" pattern="*.qif" />
+  <mime type="video/vivo" description="Vivo video" priority="100" pattern="*.viv" />
+  <mime type="video/vivo" description="Vivo video" priority="100" pattern="*.vivo" />
+  <mime type="video/x-anim" description="ANIM animation" priority="100" pattern="*.anim[1-9j]" />
+  <mime type="video/x-flic" description="FLIC animation" data-type="short" endian="LSB" offset="0" magic="0xAF11" priority="50" />
+  <mime type="video/x-flic" description="FLIC animation" data-type="short" endian="LSB" offset="0" magic="0xAF12" priority="50" />
+  <mime type="video/x-flic" description="FLIC animation" priority="100" pattern="*.fli" />
+  <mime type="video/x-flic" description="FLIC animation" priority="100" pattern="*.flc" />
+  <mime type="application/x-hwp" description="Haansoft Hangul document" data-type="string" offset="0" magic="HWP Document File" priority="50" />
+  <mime type="application/x-hwp" description="Haansoft Hangul document" priority="100" pattern="*.hwp" />
+  <mime type="application/x-hwt" description="Haansoft Hangul document template" priority="100" pattern="*.hwt" />
+  <mime type="video/x-mng" acronym="MNG" description="Multiple-Image Network Graphics" priority="100" pattern="*.mng" />
+  <mime type="video/x-ms-asf" description="Advanced Streaming Format" data-type="long" endian="MSB" offset="0" magic="0x3026b275" priority="50" />
+  <mime type="video/x-ms-asf" description="Advanced Streaming Format" data-type="string" offset="0" magic="[Reference]" priority="50" />
+  <mime type="video/x-ms-asf" acronym="ASF" description="Advanced Streaming Format" priority="100" pattern="*.asf" />
+  <mime type="application/x-netshow-channel" description="Windows Media Station file" data-type="string" offset="0" magic="[Address]" priority="50" />
+  <mime type="application/x-netshow-channel" description="Windows Media Station file" priority="100" pattern="*.nsc" />
+  <mime type="video/x-ms-wmv" description="Windows Media video" priority="100" pattern="*.wmv" />
+  <mime type="video/x-msvideo" description="Audio Video Interleave" data-type="string" offset="8" magic="AVI " priority="50" />
+  <mime type="video/x-msvideo" description="Audio Video Interleave" data-type="string" offset="0" magic="RIFF" priority="50" />
+  <mime type="video/x-msvideo" acronym="AVI" description="Audio Video Interleave" priority="100" pattern="*.avi" />
+  <mime type="video/x-msvideo" acronym="AVI" description="Audio Video Interleave" priority="100" pattern="*.divx" />
+  <mime type="video/x-nsv" description="NullSoft video" data-type="string" offset="0" magic="NSVf" priority="50" />
+  <mime type="video/x-nsv" description="NullSoft video" priority="100" pattern="*.nsv" />
+  <mime type="application/sdp" description="Session Description Protocol" data-type="string" offset="0" magic="v=" priority="50" />
+  <mime type="application/sdp" acronym="SDP" description="Session Description Protocol" priority="100" pattern="*.sdp" />
+  <mime type="video/x-sgi-movie" description="SGI video" data-type="string" offset="0" magic="MOVI" priority="50" />
+  <mime type="video/x-sgi-movie" description="SGI video" priority="100" pattern="*.movie" />
+  <mime type="application/vnd.emusic-emusic_package" description="eMusic download package" data-type="string" offset="0" magic="nF7YLao" priority="50" />
+  <mime type="application/vnd.emusic-emusic_package" description="eMusic download package" priority="100" pattern="*.emp" />
+  <mime type="application/x-ica" acronym="ICA" description="Independent Computing Architecture" priority="100" pattern="*.ica" />
+  <mime type="application/vnd.mozilla.xul+xml" acronym="XUL" description="XML User interface markup Language" priority="100" pattern="*.xul" />
+  <mime type="application/x-t602" description="T602 document" data-type="string" offset="0" magic="@CT 0" priority="50" />
+  <mime type="application/x-t602" description="T602 document" data-type="string" offset="0" magic="@CT 1" priority="50" />
+  <mime type="application/x-t602" description="T602 document" data-type="string" offset="0" magic="@CT 2" priority="50" />
+  <mime type="application/x-t602" description="T602 document" priority="100" pattern="*.602" />
+  <mime type="application/x-cisco-vpn-settings" description="Cisco VPN Settings" data-type="string" offset="0" magic="[main]" priority="50" />
+  <mime type="application/x-cisco-vpn-settings" description="Cisco VPN Settings" priority="100" pattern="*.pcf" />
+</mimemap>

+ 74 - 0
bin/convert/policy.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policymap [
+  <!ELEMENT policymap (policy)+>
+  <!ATTLIST policymap xmlns CDATA #FIXED ''>
+  <!ELEMENT policy EMPTY>
+  <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
+    name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights CDATA #IMPLIED
+    stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
+]>
+<!--
+  Configure ImageMagick policies.
+
+  Domains include system, delegate, coder, filter, path, or resource.
+
+  Rights include none, read, write, execute, and all.  Use | to combine them,
+  for example: "read | write" to permit read from, or write to, a path.
+
+  Use a glob expression as a pattern.
+
+  Suppose we do not want users to process MPEG video images:
+
+    <policy domain="delegate" rights="none" pattern="mpeg:decode" />
+
+  Here we do not want users reading images from HTTP:
+
+    <policy domain="coder" rights="none" pattern="HTTP" />
+
+  Lets prevent users from executing any image filters:
+
+    <policy domain="filter" rights="none" pattern="*" />
+
+  The /repository file system is restricted to read only.  We use a glob
+  expression to match all paths that start with /repository:
+
+    <policy domain="path" rights="read" pattern="/repository/*" />
+
+  Lets prevent users from executing any image filters:
+
+    <policy domain="filter" rights="none" pattern="*" />
+
+  Any large image is cached to disk rather than memory:
+
+    <policy domain="resource" name="area" value="1GB"/>
+
+  Define arguments for the memory, map, area, width, height and disk resources
+  with SI prefixes (.e.g 100MB).  In addition, resource policies are maximums
+  for each instance of ImageMagick (e.g. policy memory limit 1GB, -limit 2GB
+  exceeds policy maximum so memory limit is 1GB).
+
+  Rules are processed in order.  Here we want to restrict ImageMagick to only
+  read or write a small subset of proven web-safe image types:
+
+    <policy domain="delegate" rights="none" pattern="*" />
+    <policy domain="coder" rights="none" pattern="*" />
+    <policy domain="coder" rights="read|write" pattern="{GIF,JPEG,PNG,WEBP}" />
+-->
+<policymap>
+  <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
+  <!-- <policy domain="resource" name="memory" value="2GiB"/> -->
+  <!-- <policy domain="resource" name="map" value="4GiB"/> -->
+  <!-- <policy domain="resource" name="width" value="10MP"/> -->
+  <!-- <policy domain="resource" name="height" value="10MP"/> -->
+  <!-- <policy domain="resource" name="area" value="1GB"/> -->
+  <!-- <policy domain="resource" name="disk" value="16EB"/> -->
+  <!-- <policy domain="resource" name="file" value="768"/> -->
+  <!-- <policy domain="resource" name="thread" value="4"/> -->
+  <!-- <policy domain="resource" name="throttle" value="0"/> -->
+  <!-- <policy domain="resource" name="time" value="3600"/> -->
+  <!-- <policy domain="system" name="precision" value="6"/> -->
+  <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
+  <!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
+  <!-- <policy domain="path" rights="none" pattern="@*" /> -->
+  <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/>
+</policymap>

+ 68 - 0
bin/convert/quantization-table.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE quantization-tables [
+  <!ELEMENT quantization-tables (table)>
+  <!ATTLIST quantization-tables xmlns CDATA #FIXED "">
+  <!ELEMENT table (description , levels)>
+  <!ATTLIST table xmlns CDATA #FIXED "">
+  <!ATTLIST table alias NMTOKEN #REQUIRED>
+  <!ATTLIST table slot CDATA #REQUIRED>
+  <!ELEMENT description (#PCDATA)>
+  <!ATTLIST description xmlns CDATA #FIXED "">
+  <!ELEMENT levels (#PCDATA)>
+  <!ATTLIST levels xmlns CDATA #FIXED "">
+  <!ATTLIST levels divisor CDATA #REQUIRED>
+  <!ATTLIST levels height CDATA #REQUIRED>
+  <!ATTLIST levels width CDATA #REQUIRED>
+]>
+<!--
+  JPEG quantization table created by Dr. Nicolas Robidoux, Senior Research
+  Scientist at Phase One (www.phaseone.com) for use with 2x2 Chroma
+  subsampling and (IJG-style, hence ImageMagick-style) quality level
+  around 75.
+
+  It is based on the one recommended in
+
+    Relevance of human vision to JPEG-DCT compression by Stanley A. Klein,
+    Amnon D. Silverstein and Thom Carney. In Human Vision, Visual
+    Processing and Digital Display III, 1992.
+
+  for 1 minute per pixel viewing.
+
+  Specifying only one table in this xml file has two effects when used with
+  the ImageMagick option
+  
+    -define jpeg:q-table=PATH/TO/THIS/FILE
+  
+  1) This quantization table is automatically used for all three channels;
+
+  2) Only one copy is embedded in the JPG file, which saves a few bits
+     (only worthwhile for very small thumbnails).
+-->
+<quantization-tables>
+  <table slot="0" alias="luma">
+    <description>Luma Quantization Table</description>
+    <levels width="8" height="8" divisor="1">
+      16,  16,  16,  18,  25,  37,  56,  85,
+      16,  17,  20,  27,  34,  40,  53,  75,
+      16,  20,  24,  31,  43,  62,  91,  135,
+      18,  27,  31,  40,  53,  74,  106, 156,
+      25,  34,  43,  53,  69,  94,  131, 189,
+      37,  40,  62,  74,  94,  124, 169, 238,
+      56,  53,  91,  106, 131, 169, 226, 311,
+      85,  75,  135, 156, 189, 238, 311, 418
+    </levels>
+  </table>
+  <!--
+    If you want to use a different quantization table for Chroma, for example,
+    just add:
+
+    <table slot="1" alias="chroma">
+      <description>Chroma Quantization Table</description>
+      INSERT 64 POSITIVE INTEGERS HERE, COMMA-SEPARATED
+      </levels>
+    </table>
+
+    here (but outside of these comments).
+  -->
+</quantization-tables>
+

+ 9 - 0
bin/convert/readme_converter.txt

@@ -0,0 +1,9 @@
+convert.exe 是imagemagick公司提供的自由软件,用于实现图片类型转换和压缩等功能。
+
+它的转换参数很多,用于图片压缩的命令行格式如下
+convert.exe -resize 目标图片宽度x高度 -quality 压缩质量(0~100) 源图片路径 目标图片路径
+例如:
+convert.exe -resize 800x600 -quality 50 E:\aaa\Images\006.jpg e:\aaa\images\my006_800X600_50-223.png
+
+//PNG转JPG 白色背景
+convert -resize 800x600 -quality 50 10.png -background white -flatten -alpha off kk10.jpg

+ 334 - 0
bin/convert/thresholds.xml

@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE thresholds [
+<!ELEMENT thresholds (threshold)+>
+<!ELEMENT threshold (description , levels)>
+<!ELEMENT description (CDATA)>
+<!ELEMENT levels (CDATA)>
+<!ATTLIST threshold map ID #REQUIRED>
+<!ATTLIST levels width CDATA #REQUIRED>
+<!ATTLIST levels height CDATA #REQUIRED>
+<!ATTLIST levels divisor CDATA #REQUIRED>
+]>
+<!--
+  Threshold Maps for Ordered Posterized Dither
+
+  Each "<threshold>" element defines the map name, description, and an array
+  of "levels" used to provide the threshold map for ordered dithering and
+  digital halftoning.
+
+  The "alias" attribute provides a backward compatible name for this threshold
+  map (pre-dating IM v6.2.9-6), and are deprecated.
+
+  The description is a english description of what the threshold map achieves
+  and is only used for 'listing' the maps.
+
+  The map itself is a rectangular array of integers or threshold "levels"
+  of the given "width" and "height" declared within the enclosing <levels>
+  element.  That is "width*height" integers or "levels" *must* be provided
+  within each map.
+
+  Each of the "levels" integer values (each value representing the threshold
+  intensity "level/divisor" at which that pixel is turned on.  The "levels"
+  integers given can be any postive integers between "0" and the "divisor",
+  excluding those limits.
+
+  The "divisor" not only defines the upper limit and threshold divisor for each
+  "level" but also the total number of pseudo-levels the threshold mapping
+  creates and fills with a dither pattern.  That is a ordered bitmap dither
+  of a pure greyscale gradient will use a maximum of "divisor" ordered bitmap
+  patterns, including the patterns with all the pixels 'on' and all the pixel
+  'off'. It may define less patterns than that, but the color channels will
+  be thresholded in units based on "divisor".
+
+  Alternatively for a multi-level posterization, ImageMagick inserts
+  "divisor-2" dither patterns (as defined by the threshold map) between each of
+  channel color level produced.
+
+  For example the map "o2x2" has a divisor of 5, which will define 3 bitmap
+  patterns plus the patterns with all pixels 'on' and 'off'.  A greyscale
+  gradient will thus have 5 distinct areas.
+-->
+<thresholds>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  Minimal Dither and Non-Dither Threshold Maps
+-->
+  <threshold map="threshold" alias="1x1">
+    <description>Threshold 1x1 (non-dither)</description>
+    <levels width="1" height="1" divisor="2">
+        1
+    </levels>
+  </threshold>
+
+  <threshold map="checks" alias="2x1">
+    <description>Checkerboard 2x1 (dither)</description>
+    <levels width="2" height="2" divisor="3">
+       1 2
+       2 1
+    </levels>
+  </threshold>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  (dispersed) Ordered Dither Patterns
+-->
+  <threshold map="o2x2" alias="2x2">
+    <description>Ordered 2x2 (dispersed)</description>
+    <levels width="2" height="2" divisor="5">
+       1  3
+       4  2
+    </levels>
+  </threshold>
+
+  <threshold map="o3x3" alias="3x3">
+    <description>Ordered 3x3 (dispersed)</description>
+    <levels width="3" height="3" divisor="10">
+        3  7  4
+        6  1  9
+        2  8  5
+    </levels>
+  </threshold>
+
+  <threshold map="o4x4" alias="4x4">
+    <!--
+       From "Dithering Algorithms"
+       https://efg2.com/Lab/Library/ImageProcessing/DHALF.TXT
+     -->
+    <description>Ordered 4x4 (dispersed)</description>
+    <levels width="4" height="4" divisor="17">
+       1   9   3  11
+      13   5  15   7
+       4  12   2  10
+      16   8  14   6
+    </levels>
+  </threshold>
+
+  <threshold map="o8x8" alias="8x8">
+    <!-- Extracted from original 'OrderedDither()' Function -->
+    <description>Ordered 8x8 (dispersed)</description>
+    <levels width="8" height="8" divisor="65">
+         1  49  13  61   4  52  16  64
+        33  17  45  29  36  20  48  32
+         9  57   5  53  12  60   8  56
+        41  25  37  21  44  28  40  24
+         3  51  15  63   2  50  14  62
+        35  19  47  31  34  18  46  30
+        11  59   7  55  10  58   6  54
+        43  27  39  23  42  26  38  22
+    </levels>
+  </threshold>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  Halftones - Angled 45 degrees
+
+  Initially added to ImageMagick by Glenn Randers-Pehrson, IM v6.2.8-6,
+  modified to be more symmetrical with intensity by Anthony, IM v6.2.9-7
+
+  These patterns initially start as circles, but then form diamonds
+  pattern at the 50% threshold level, before forming negated circles,
+  as it approached the other threshold extereme.
+-->
+  <threshold map="h4x4a" alias="4x1">
+    <description>Halftone 4x4 (angled)</description>
+    <levels width="4" height="4" divisor="9">
+       4  2  7  5
+       3  1  8  6
+       7  5  4  2
+       8  6  3  1
+    </levels>
+  </threshold>
+
+  <threshold map="h6x6a" alias="6x1">
+    <description>Halftone 6x6 (angled)</description>
+    <levels width="6" height="6" divisor="19">
+       14  13  10   8   2   3
+       16  18  12   7   1   4
+       15  17  11   9   6   5
+        8   2   3  14  13  10
+        7   1   4  16  18  12
+        9   6   5  15  17  11
+    </levels>
+  </threshold>
+
+  <threshold map="h8x8a" alias="8x1">
+    <description>Halftone 8x8 (angled)</description>
+    <levels width="8" height="8" divisor="33">
+       13   7   8  14  17  21  22  18
+        6   1   3   9  28  31  29  23
+        5   2   4  10  27  32  30  24
+       16  12  11  15  20  26  25  19
+       17  21  22  18  13   7   8  14
+       28  31  29  23   6   1   3   9
+       27  32  30  24   5   2   4  10
+       20  26  25  19  16  12  11  15
+    </levels>
+  </threshold>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  Halftones - Orthogonally Aligned, or Un-angled
+
+  Initially added by Anthony Thyssen, IM v6.2.9-5 using techniques from
+  "Dithering & Halftoning" by Gernot Haffmann
+  https://fho-emden.de/~hoffmann/hilb010101.pdf
+
+  These patterns initially start as circles, but then form square
+  pattern at the 50% threshold level, before forming negated circles,
+  as it approached the other threshold extereme.
+-->
+  <threshold map="h4x4o">
+    <description>Halftone 4x4 (orthogonal)</description>
+    <levels width="4" height="4" divisor="17">
+        7  13  11   4
+       12  16  14   8
+       10  15   6   2
+        5   9   3   1
+    </levels>
+  </threshold>
+
+  <threshold map="h6x6o">
+    <description>Halftone 6x6 (orthogonal)</description>
+    <levels width="6" height="6" divisor="37">
+        7  17  27  14   9   4
+       21  29  33  31  18  11
+       24  32  36  34  25  22
+       19  30  35  28  20  10
+        8  15  26  16   6   2
+        5  13  23  12   3   1
+    </levels>
+  </threshold>
+
+  <threshold map="h8x8o">
+    <description>Halftone 8x8 (orthogonal)</description>
+    <levels width="8" height="8" divisor="65">
+        7  21  33  43  36  19   9   4
+       16  27  51  55  49  29  14  11
+       31  47  57  61  59  45  35  23
+       41  53  60  64  62  52  40  38
+       37  44  58  63  56  46  30  22
+       15  28  48  54  50  26  17  10
+        8  18  34  42  32  20   6   2
+        5  13  25  39  24  12   3   1
+    </levels>
+  </threshold>
+
+  <threshold map="h16x16o">
+    <!--
+       Direct extract from "Dithering & Halftoning" by Gernot Haffmann.
+       This may need some fine tuning for symmetry of the halftone dots,
+       as it was a mathematically formulated pattern.
+    -->
+    <description>Halftone 16x16 (orthogonal)</description>
+    <levels width="16" height="16" divisor="257">
+        4  12  24  44  72 100 136 152 150 134  98  70  42  23  11   3
+        7  16  32  52  76 104 144 160 158 142 102  74  50  31  15   6
+       19  27  40  60  92 132 168 180 178 166 130  90  58  39  26  18
+       36  48  56  80 124 176 188 204 203 187 175 122  79  55  47  35
+       64  68  84 116 164 200 212 224 223 211 199 162 114  83  67  63
+       88  96 112 156 192 216 232 240 239 231 214 190 154 111  95  87
+      108 120 148 184 208 228 244 252 251 243 226 206 182 147 119 107
+      128 140 172 196 219 235 247 256 255 246 234 218 194 171 139 127
+      126 138 170 195 220 236 248 253 254 245 233 217 193 169 137 125
+      106 118 146 183 207 227 242 249 250 241 225 205 181 145 117 105
+       86  94 110 155 191 215 229 238 237 230 213 189 153 109  93  85
+       62  66  82 115 163 198 210 221 222 209 197 161 113  81  65  61
+       34  46  54  78 123 174 186 202 201 185 173 121  77  53  45  33
+       20  28  37  59  91 131 167 179 177 165 129  89  57  38  25  17
+        8  13  29  51  75 103 143 159 157 141 101  73  49  30  14   5
+        1   9  21  43  71  99 135 151 149 133  97  69  41  22  10   2
+    </levels>
+  </threshold>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  Halftones - Orthogonally Expanding Circle Patterns
+
+  Added by Glenn Randers-Pehrson, 4 Nov 2010, ImageMagick 6.6.5-6
+
+  Rather than producing a diamond 50% threshold pattern, these
+  continue to generate larger (overlapping) circles.  They are
+  more like a true halftone pattern formed by covering a surface
+  with either pure white or pure black circular dots.
+
+  WARNING: true halftone patterns only use true circles even in
+  areas of highly varying intensity.  Threshold dither patterns
+  can generate distorted circles in such areas.
+-->
+
+  <threshold map="c5x5b" alias="c5x5">
+    <description>Circles 5x5 (black)</description>
+    <levels width="5" height="5" divisor="26">
+         1 21 16 15  4
+         5 17 20 19 14
+         6 21 25 24 12
+         7 18 22 23 11
+         2  8  9 10  3
+    </levels>
+  </threshold>
+
+
+  <threshold map="c5x5w">
+    <description>Circles 5x5 (white)</description>
+    <levels width="5" height="5" divisor="26">
+        25 21 10 11 22
+        20  9  6  7 12
+        19  5  1  2 13
+        18  8  4  3 14
+        24 17 16 15 23
+    </levels>
+  </threshold>
+
+  <threshold map="c6x6b" alias="c6x6">
+    <description>Circles 6x6 (black)</description>
+    <levels width="6" height="6" divisor="37">
+         1  5 14 13 12  4
+         6 22 28 27 21 11
+        15 29 35 34 26 20
+        16 30 36 33 25 19
+         7 23 31 32 24 10
+         2  8 17 18  9  3
+    </levels>
+  </threshold>
+
+  <threshold map="c6x6w">
+    <description>Circles 6x6 (white)</description>
+    <levels width="6" height="6" divisor="37">
+        36 32 23 24 25 33
+        31 15  9 10 16 26
+        22  8  2  3 11 17
+        21  7  1  4 12 18
+        30 14  6  5 13 27
+        35 29 20 19 28 34
+    </levels>
+  </threshold>
+
+  <threshold map="c7x7b" alias="c7x7">
+    <description>Circles 7x7 (black)</description>
+    <levels width="7" height="7" divisor="50">
+        3  9 18 28 17  8  2
+       10 24 33 39 32 23  7
+       19 34 44 48 43 31 16
+       25 40 45 49 47 38 27
+       20 35 41 46 42 29 15
+       11 21 36 37 28 22  6
+        4 12 13 26 14  5  1
+    </levels>
+  </threshold>
+
+
+  <threshold map="c7x7w">
+    <description>Circles 7x7 (white)</description>
+    <levels width="7" height="7" divisor="50">
+       47 41 32 22 33 42 48
+       40 26 17 11 18 27 43
+       31 16  6  2  7 19 34
+       25 10  5  1  3 12 23
+       30 15  9  4  8 20 35
+       39 29 14 13 21 28 44
+       46 38 37 24 36 45 49
+    </levels>
+  </threshold>
+
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+  Special Purpose Dithers
+-->
+
+</thresholds>

+ 55 - 0
bin/convert/type-ghostscript.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE typemap [
+<!ELEMENT typemap (type)+>
+<!ELEMENT type (#PCDATA)>
+<!ELEMENT include (#PCDATA)>
+<!ATTLIST type name CDATA #REQUIRED>
+<!ATTLIST type fullname CDATA #IMPLIED>
+<!ATTLIST type family CDATA #IMPLIED>
+<!ATTLIST type foundry CDATA #IMPLIED>
+<!ATTLIST type weight CDATA #IMPLIED>
+<!ATTLIST type style CDATA #IMPLIED>
+<!ATTLIST type stretch CDATA #IMPLIED>
+<!ATTLIST type format CDATA #IMPLIED>
+<!ATTLIST type metrics CDATA #IMPLIED>
+<!ATTLIST type glyphs CDATA #REQUIRED>
+<!ATTLIST type version CDATA #IMPLIED>
+<!ATTLIST include file CDATA #REQUIRED>
+]>
+<typemap>
+  <type name="AvantGarde-Book" fullname="AvantGarde Book" family="AvantGarde" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@a010013l.afm" glyphs="@ghostscript_font_path@a010013l.pfb"/>
+  <type name="AvantGarde-BookOblique" fullname="AvantGarde Book Oblique" family="AvantGarde" foundry="URW" weight="400" style="oblique" stretch="normal" format="type1" metrics="@ghostscript_font_path@a010033l.afm" glyphs="@ghostscript_font_path@a010033l.pfb"/>
+  <type name="AvantGarde-Demi" fullname="AvantGarde DemiBold" family="AvantGarde" foundry="URW" weight="600" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@a010015l.afm" glyphs="@ghostscript_font_path@a010015l.pfb"/>
+  <type name="AvantGarde-DemiOblique" fullname="AvantGarde DemiOblique" family="AvantGarde" foundry="URW" weight="600" style="oblique" stretch="normal" format="type1" metrics="@ghostscript_font_path@a010035l.afm" glyphs="@ghostscript_font_path@a010035l.pfb"/>
+  <type name="Bookman-Demi" fullname="Bookman DemiBold" family="Bookman" foundry="URW" weight="600" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@b018015l.afm" glyphs="@ghostscript_font_path@b018015l.pfb"/>
+  <type name="Bookman-DemiItalic" fullname="Bookman DemiBold Italic" family="Bookman" foundry="URW" weight="600" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@b018035l.afm" glyphs="@ghostscript_font_path@b018035l.pfb"/>
+  <type name="Bookman-Light" fullname="Bookman Light" family="Bookman" foundry="URW" weight="300" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@b018012l.afm" glyphs="@ghostscript_font_path@b018012l.pfb"/>
+  <type name="Bookman-LightItalic" fullname="Bookman Light Italic" family="Bookman" foundry="URW" weight="300" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@b018032l.afm" glyphs="@ghostscript_font_path@b018032l.pfb"/>
+  <type name="Fixed" fullname="Courier Regular" family="Courier" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n022003l.afm" glyphs="@ghostscript_font_path@n022003l.pfb"/>
+  <type name="Courier" fullname="Courier Regular" family="Courier" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n022003l.afm" glyphs="@ghostscript_font_path@n022003l.pfb"/>
+  <type name="Courier-Bold" fullname="Courier Bold" family="Courier" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n022004l.afm" glyphs="@ghostscript_font_path@n022004l.pfb"/>
+  <type name="Courier-Oblique" fullname="Courier Regular Oblique" family="Courier" foundry="URW" weight="400" style="oblique" stretch="normal" format="type1" metrics="@ghostscript_font_path@n022023l.afm" glyphs="@ghostscript_font_path@n022023l.pfb"/>
+  <type name="Courier-BoldOblique" fullname="Courier Bold Oblique" family="Courier" foundry="URW" weight="700" style="oblique" stretch="normal" format="type1" metrics="@ghostscript_font_path@n022024l.afm" glyphs="@ghostscript_font_path@n022024l.pfb"/>
+  <type name="fixed" fullname="Helvetica Regular" family="Helvetica" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n019003l.afm" glyphs="@ghostscript_font_path@n019003l.pfb"/>
+  <type name="Helvetica" fullname="Helvetica Regular" family="Helvetica" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n019003l.afm" glyphs="@ghostscript_font_path@n019003l.pfb"/>
+  <type name="Helvetica-Bold" fullname="Helvetica Bold" family="Helvetica" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n019004l.afm" glyphs="@ghostscript_font_path@n019004l.pfb"/>
+  <type name="Helvetica-Oblique" fullname="Helvetica Regular Italic" family="Helvetica" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@n019023l.afm" glyphs="@ghostscript_font_path@n019023l.pfb"/>
+  <type name="Helvetica-BoldOblique" fullname="Helvetica Bold Italic" family="Helvetica" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@n019024l.afm" glyphs="@ghostscript_font_path@n019024l.pfb"/>
+  <type name="Helvetica-Narrow" fullname="Helvetica Narrow" family="Helvetica Narrow" foundry="URW" weight="400" style="normal" stretch="condensed" format="type1" metrics="@ghostscript_font_path@n019043l.afm" glyphs="@ghostscript_font_path@n019043l.pfb"/>
+  <type name="Helvetica-Narrow-Oblique" fullname="Helvetica Narrow Oblique" family="Helvetica Narrow" foundry="URW" weight="400" style="oblique" stretch="condensed" format="type1" metrics="@ghostscript_font_path@n019063l.afm" glyphs="@ghostscript_font_path@n019063l.pfb"/>
+  <type name="Helvetica-Narrow-Bold" fullname="Helvetica Narrow Bold" family="Helvetica Narrow" foundry="URW" weight="700" style="normal" stretch="condensed" format="type1" metrics="@ghostscript_font_path@n019044l.afm" glyphs="@ghostscript_font_path@n019044l.pfb"/>
+  <type name="Helvetica-Narrow-BoldOblique" fullname="Helvetica Narrow Bold Oblique" family="Helvetica Narrow" foundry="URW" weight="700" style="oblique" stretch="condensed" format="type1" metrics="@ghostscript_font_path@n019064l.afm" glyphs="@ghostscript_font_path@n019064l.pfb"/>
+  <type name="NewCenturySchlbk-Roman" fullname="New Century Schoolbook" family="NewCenturySchlbk" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@c059013l.afm" glyphs="@ghostscript_font_path@c059013l.pfb"/>
+  <type name="NewCenturySchlbk-Italic" fullname="New Century Schoolbook Italic" family="NewCenturySchlbk" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@c059033l.afm" glyphs="@ghostscript_font_path@c059033l.pfb"/>
+  <type name="NewCenturySchlbk-Bold" fullname="New Century Schoolbook Bold" family="NewCenturySchlbk" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@c059016l.afm" glyphs="@ghostscript_font_path@c059016l.pfb"/>
+  <type name="NewCenturySchlbk-BoldItalic" fullname="New Century Schoolbook Bold Italic" family="NewCenturySchlbk" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@c059036l.afm" glyphs="@ghostscript_font_path@c059036l.pfb"/>
+  <type name="Palatino-Roman" fullname="Palatino Regular" family="Palatino" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@p052003l.afm" glyphs="@ghostscript_font_path@p052003l.pfb"/>
+  <type name="Palatino-Italic" fullname="Palatino Italic" family="Palatino" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@p052023l.afm" glyphs="@ghostscript_font_path@p052023l.pfb"/>
+  <type name="Palatino-Bold" fullname="Palatino Bold" family="Palatino" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@p052004l.afm" glyphs="@ghostscript_font_path@p052004l.pfb"/>
+  <type name="Palatino-BoldItalic" fullname="Palatino Bold Italic" family="Palatino" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@p052024l.afm" glyphs="@ghostscript_font_path@p052024l.pfb"/>
+  <type name="Times-Roman" fullname="Times Regular" family="Times" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n021003l.afm" glyphs="@ghostscript_font_path@n021003l.pfb"/>
+  <type name="Times-Bold" fullname="Times Medium" family="Times" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@n021004l.afm" glyphs="@ghostscript_font_path@n021004l.pfb"/>
+  <type name="Times-Italic" fullname="Times Regular Italic" family="Times" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@n021023l.afm" glyphs="@ghostscript_font_path@n021023l.pfb"/>
+  <type name="Times-BoldItalic" fullname="Times Medium Italic" family="Times" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="@ghostscript_font_path@n021024l.afm" glyphs="@ghostscript_font_path@n021024l.pfb"/>
+  <type name="Symbol" fullname="Symbol" family="Symbol" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="@ghostscript_font_path@s050000l.afm" glyphs="@ghostscript_font_path@s050000l.pfb" version="0.1" encoding="AdobeCustom"/>
+</typemap>

+ 21 - 0
bin/convert/type.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE typemap [
+<!ELEMENT typemap (type)+>
+<!ELEMENT type (#PCDATA)>
+<!ELEMENT include (#PCDATA)>
+<!ATTLIST type name CDATA #REQUIRED>
+<!ATTLIST type fullname CDATA #IMPLIED>
+<!ATTLIST type family CDATA #IMPLIED>
+<!ATTLIST type foundry CDATA #IMPLIED>
+<!ATTLIST type weight CDATA #IMPLIED>
+<!ATTLIST type style CDATA #IMPLIED>
+<!ATTLIST type stretch CDATA #IMPLIED>
+<!ATTLIST type format CDATA #IMPLIED>
+<!ATTLIST type metrics CDATA #IMPLIED>
+<!ATTLIST type glyphs CDATA #REQUIRED>
+<!ATTLIST type version CDATA #IMPLIED>
+<!ATTLIST include file CDATA #REQUIRED>
+]>
+<typemap>
+   <include file="type-ghostscript.xml"/>
+</typemap>

BIN
bin/icon.png


BIN
bin/pdf-bg.png


BIN
bin/video/ffmpeg.exe


BIN
bin/video/ffplay.exe


BIN
bin/video/ffprobe.exe


BIN
build/icons/256x256.png


BIN
build/icons/icon.icns


BIN
build/icons/icon.ico


BIN
build/icons/icon1.ico


+ 12 - 0
nsis/.gitignore

@@ -0,0 +1,12 @@
+.idea
+.DS_Store
+dist/electron/*
+dist/web/*
+build/*
+!build/icons
+node_modules/
+npm-debug.log
+npm-debug.log.*
+thumbs.db
+!.gitkeep
+output

BIN
nsis/7z/7z.dll


BIN
nsis/7z/7z.exe


BIN
nsis/NSIS/Bin/GenPat.exe


BIN
nsis/NSIS/Bin/LibraryLocal.exe


BIN
nsis/NSIS/Bin/MakeLangId.exe


BIN
nsis/NSIS/Bin/RegTool.bin


BIN
nsis/NSIS/Bin/makensis.exe


BIN
nsis/NSIS/Bin/zip2exe.exe


BIN
nsis/NSIS/Bin/zlib1.dll


+ 144 - 0
nsis/NSIS/COPYING

@@ -0,0 +1,144 @@
+COPYRIGHT
+---------
+
+Copyright (C) 1999-2017 Contributors
+
+More detailed copyright information can be found in the individual source code files.
+
+APPLICABLE LICENSES
+-------------------
+
+* All NSIS source code, plug-ins, documentation, examples, header files and graphics, with the exception of the compression modules and where otherwise noted, are licensed under the zlib/libpng license.
+
+* The zlib compression module for NSIS is licensed under the zlib/libpng license.
+
+* The bzip2 compression module for NSIS is licensed under the bzip2 license.
+
+* The LZMA compression module for NSIS is licensed under the Common Public License version 1.0.
+
+ZLIB/LIBPNG LICENSE
+-------------------
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+      1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+      2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+      3. This notice may not be removed or altered from any source distribution.
+
+BZIP2 LICENSE
+-------------
+
+This program, "bzip2" and associated library "libbzip2", are copyright (C) 1996-2000 Julian R Seward. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+      1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+    
+      2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+      3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+      4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Julian Seward, Cambridge, UK.
+
+jseward@acm.org
+
+COMMON PUBLIC LICENSE VERSION 1.0
+---------------------------------
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+      a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+      b) in the case of each subsequent Contributor:
+
+      i) changes to the Program, and
+
+      ii) additions to the Program;
+
+      where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. 
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+      a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+      b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. 
+
+      c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+      d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+      a) it complies with the terms and conditions of this Agreement; and
+
+      b) its license agreement:
+
+      i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; 
+
+      ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; 
+
+      iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+      iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+      a) it must be made available under this Agreement; and 
+
+      b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. 
+
+SPECIAL EXCEPTION FOR LZMA COMPRESSION MODULE
+---------------------------------------------
+
+Igor Pavlov and Amir Szekely, the authors of the LZMA compression module for NSIS, expressly permit you to statically or dynamically link your code (or bind by name) to the files from the LZMA compression module for NSIS without subjecting your linked code to the terms of the Common Public license version 1.0. Any modifications or additions to files from the LZMA compression module for NSIS, however, are subject to the terms of the Common Public License version 1.0.

BIN
nsis/NSIS/Contrib/Graphics/Checks/big.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/classic-cross.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/classic.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/colorful.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/grey-cross.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/grey.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/modern.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/red-round.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/red.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/simple-round.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/simple-round2.bmp


BIN
nsis/NSIS/Contrib/Graphics/Checks/simple.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/nsis-r.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/nsis.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-nsis.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-r-nsis.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-r.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-nsis.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-r-nsis.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-uninstall-r.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange-uninstall.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/orange.bmp


BIN
nsis/NSIS/Contrib/Graphics/Header/win.bmp


BIN
nsis/NSIS/Contrib/Graphics/Icons/arrow-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/arrow-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/arrow2-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/arrow2-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/box-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/box-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/classic-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/classic-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/llama-blue.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/llama-grey.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-install-blue-full.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-install-blue.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-install-colorful.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-install-full.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-blue-full.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-blue.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-colorful.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall-full.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/modern-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/nsis1-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/nsis1-uninstall.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/orange-install-nsis.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/orange-install.ico


BIN
nsis/NSIS/Contrib/Graphics/Icons/orange-uninstall-nsis.ico


Някои файлове не бяха показани, защото твърде много файлове са промени