{
  "schemaVersion": 1,
  "channel": "stable",
  "version": "0.1.05",
  "notes": "# OpenStudio 0.1.05\n\nThis candidate combines the application work reviewed in\n[PR #27](https://github.com/sdevil7th/OpenStudio/pull/27), including\n[PR #26](https://github.com/sdevil7th/OpenStudio/pull/26), with the Windows\ninstaller follow-up. Review the\n[cumulative application comparison since the published v0.1.03](https://github.com/sdevil7th/OpenStudio/compare/v0.1.03...v0.1.05)\nand, separately, the\n[installer hotfix-only comparison since v0.1.04](https://github.com/sdevil7th/OpenStudio/compare/v0.1.04...v0.1.05).\nThe v0.1.04 tag was created, but its release was stopped after the Windows\nqualification uninstaller waited for an unattended confirmation dialog. No\n0.1.04 application release or Microsoft Store update was published.\n\n## Highlights\n\n- Drag FX grips to reorder track, input and master chains. Changes reach the\n  native processing chain and automation ownership, retain focus and support\n  Undo/Redo. Edge scrolling reaches plugins outside the visible list.\n- Browse NAM captures and IRs in a more compact TONE3000 library with a smaller\n  branded Browse control, more space for results and layouts that adapt to\n  compact rack windows. Selected capture details remain accessible.\n- Expand the built-in effects and instruments with dedicated editors, retained\n  engine settings, presets, Compare and Undo. These include dynamic/spectral\n  and Graphic EQ, compressor profiles, gate, limiter, preamp, saturator, Gain\n  Phase alignment, reverb/convolution, delay, chorus, synth, piano, guitar and\n  drums. See the [capability guide](../free-plugins.md) for supported controls.\n- Extend eligible plugin and FX-stage automation with Preview/Capture/Punch,\n  range Trim/Fill/thinning, Touch/Latch, Cross-Over and AutoJoin. Graphical Edit\n  Pitch sessions retain clip/session ownership and history; realtime Pitch\n  Correct remains a separate FX path.\n- Add Countdown and Stopwatch practice tools to Metronome Settings, including\n  Pause/Resume, Reset and transport status. Practice timing follows processed\n  audio and never stops a recording. Regular and accent click sounds can be\n  selected independently.\n- Expand integer export with explicit dither modes and 18/20/22-bit precision\n  stored in 24-bit files. Quantization follows normalization and sample-rate\n  conversion; render queue jobs retain the selected mode.\n- Add distribution-native Linux packages with desktop and project-file\n  associations, declared dependencies and package revisions. Preserve AppImage\n  download/updater names for compatible host systems.\n\n## Fixes\n\n- Respect explicit unattended Windows uninstall requests without waiting for a\n  confirmation dialog. Interactive uninstall still asks before removing\n  user-scoped settings, managed AI files and caches; project folders outside\n  AppData are retained.\n- Suppress installer error dialogs when suppression is requested, cancel failed\n  prerequisite retries and return a nonzero installer result when payload,\n  prerequisite or startup validation fails. Validation failures remain errors.\n- Exercise compiled unattended installer/uninstaller behavior before Windows\n  builds. Bound installed-release CI qualification and retain separate install,\n  lifecycle and uninstall evidence for diagnosing failures.\n- Avoid replaying a hidden macOS mixer's initial navigation when it is shown.\n  Preserve startup guards and teardown while requiring one frontend document\n  per window session, including reopened editors.\n- Preserve intentionally silent stereo channels, valid MIDI-only plugin\n  layouts and sample-rate preparation. Retain CLAP parameter automation/state\n  and Linux GUI/timer support, and preserve every URI in multi-plugin LV2\n  bundles during isolated scanning.\n- Keep project routing and track/clip state through save/reopen, restore sends\n  atomically and reject malformed MIDI before replacing the current project.\n  Audio Settings remain pending until Apply/OK and restore the previous setup\n  when switching fails.\n- Improve managed AI repair, checkpoint/cache validation and model-download\n  reporting. Windows DirectML fallback uses a separate verified runtime. The\n  release selects the published Python 3.11.15 Windows/macOS AI runtime 0.0.16\n  and retains the published Linux runtime 0.0.14; archive identity, downloaded\n  bytes and SHA-256 are checked before catalog publication.\n- Preserve live Store readiness before GitHub publication and submit the exact\n  run's MSIX independently of website dispatch. This candidate requests Store\n  publication after Microsoft certification through the reviewed v0.1.05 policy.\n\n## Known Issues\n\n- Automated checks do not establish physical audio-interface, long-session,\n  mixed-DPI, clean-machine upgrade or Store-delivered upgrade acceptance. The\n  installed 0.1.04 local startup logs passed normal and safe mode; visible UI\n  inspection was not asserted. The cancelled tag run passed installed Windows,\n  packaged macOS and Linux lifecycle checks, but those are 0.1.04 artifacts.\n- Native TONE3000 OAuth/account round trips and the original Windows/Arch\n  reporter reproductions remain unverified. Browser interaction/layout results\n  use fixtures and do not prove live account or catalog compatibility.\n- AmpliTube wet-export parity, Nekobi VST3 state restoration and the native\n  played-guitar Punch/AutoJoin timeout remain unresolved. The tested DPF 1.7\n  VST3 package leaks host-context references at shutdown; this does not establish\n  compatibility for all third-party plugins.\n- Managed macOS AI requires Apple Silicon and macOS 14 or later, while the base\n  app targets macOS 12 or later. GPU overlays require compatible drivers. Gated\n  model setup, NVIDIA INT8 and subjective pitch/effects/generated-audio quality\n  are not asserted.\n- AppImages depend on host GTK/WebKit and FFmpeg. Native package installation\n  and upgrade behavior varies by distribution. Production signing/reputation,\n  Microsoft certification and release-specific installed acceptance remain\n  separate checks; an accepted Store submission is not proof of publication.\n\n## Upgrade Notes\n\n- Upgrade from the published 0.1.03 application directly to this version once\n  published. The unpublished 0.1.04 tag does not require an intermediate upgrade.\n  Back up projects and presets. This follow-up does not bump a persistence or\n  DSP schema.\n- Install Windows updates in place. Uninstalling first is unnecessary and\n  removes user-scoped OpenStudio settings, optional AI runtime/model files and\n  caches. Explicit silent uninstall now honors that same cleanup intent.\n- Use the native Linux package matching the distribution and CPU. If a DEB\n  opens Archive Manager, select the distribution's package installer. For a\n  graphical upgrade failure, close OpenStudio and use the package manager.\n  Do not run the application as root.\n- AI Tools Setup installs or repairs optional runtimes separately from the base\n  app. Existing approved complete model caches can avoid another download;\n  model-license acceptance remains a separate user decision.\n",
  "publishedAt": "2026-10-08T14:38:19Z",
  "releasePageUrl": "https://github.com/sdevil7th/OpenStudio/releases/tag/v0.1.05",
  "platforms": {
    "windows": {
      "url": "https://github.com/sdevil7th/OpenStudio/releases/download/v0.1.05/OpenStudio-Setup-x64.exe",
      "sha256": "b86146f67c394fda39792f5072a8cc58c1f66e92677712c40628c2f143393bc6",
      "size": 265870425,
      "fileName": "OpenStudio-Setup-x64.exe",
      "installerArguments": "/SP- /NOICONS",
      "minimumSystemVersion": "10",
      "architectures": [
        "x86_64"
      ]
    },
    "macos": {
      "url": "https://github.com/sdevil7th/OpenStudio/releases/download/v0.1.05/OpenStudio-macOS.dmg",
      "sha256": "9d1d24340ab9a3362cb223d463e27fbe34ab139ea20eacdae1a2aa725a803d12",
      "size": 44256968,
      "fileName": "OpenStudio-macOS.dmg",
      "minimumSystemVersion": "12.0",
      "architectures": [
        "arm64",
        "x86_64"
      ]
    },
    "linux": {
      "url": "https://github.com/sdevil7th/OpenStudio/releases/download/v0.1.05/OpenStudio-0.1.05-linux-x86_64.AppImage",
      "sha256": "2f6cfd58086eecf68f2020c35f6a1f1f5d5ea051b00cf0d47c369229bd35c733",
      "size": 43665912,
      "fileName": "OpenStudio-0.1.05-linux-x86_64.AppImage",
      "architectures": [
        "x86_64"
      ],
      "minimumGlibcVersion": "2.35"
    }
  },
  "fullReleaseNotesUrl": "https://github.com/sdevil7th/OpenStudio/releases/tag/v0.1.05",
  "signedPayload": "eyJjaGFubmVsIjoic3RhYmxlIiwiZnVsbFJlbGVhc2VOb3Rlc1VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9zZGV2aWw3dGgvT3BlblN0dWRpby9yZWxlYXNlcy90YWcvdjAuMS4wNSIsIm5vdGVzIjoiIyBPcGVuU3R1ZGlvIDAuMS4wNVxuXG5UaGlzIGNhbmRpZGF0ZSBjb21iaW5lcyB0aGUgYXBwbGljYXRpb24gd29yayByZXZpZXdlZCBpblxuW1BSICMyN10oaHR0cHM6Ly9naXRodWIuY29tL3NkZXZpbDd0aC9PcGVuU3R1ZGlvL3B1bGwvMjcpLCBpbmNsdWRpbmdcbltQUiAjMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZGV2aWw3dGgvT3BlblN0dWRpby9wdWxsLzI2KSwgd2l0aCB0aGUgV2luZG93c1xuaW5zdGFsbGVyIGZvbGxvdy11cC4gUmV2aWV3IHRoZVxuW2N1bXVsYXRpdmUgYXBwbGljYXRpb24gY29tcGFyaXNvbiBzaW5jZSB0aGUgcHVibGlzaGVkIHYwLjEuMDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZGV2aWw3dGgvT3BlblN0dWRpby9jb21wYXJlL3YwLjEuMDMuLi52MC4xLjA1KVxuYW5kLCBzZXBhcmF0ZWx5LCB0aGVcbltpbnN0YWxsZXIgaG90Zml4LW9ubHkgY29tcGFyaXNvbiBzaW5jZSB2MC4xLjA0XShodHRwczovL2dpdGh1Yi5jb20vc2RldmlsN3RoL09wZW5TdHVkaW8vY29tcGFyZS92MC4xLjA0Li4udjAuMS4wNSkuXG5UaGUgdjAuMS4wNCB0YWcgd2FzIGNyZWF0ZWQsIGJ1dCBpdHMgcmVsZWFzZSB3YXMgc3RvcHBlZCBhZnRlciB0aGUgV2luZG93c1xucXVhbGlmaWNhdGlvbiB1bmluc3RhbGxlciB3YWl0ZWQgZm9yIGFuIHVuYXR0ZW5kZWQgY29uZmlybWF0aW9uIGRpYWxvZy4gTm9cbjAuMS4wNCBhcHBsaWNhdGlvbiByZWxlYXNlIG9yIE1pY3Jvc29mdCBTdG9yZSB1cGRhdGUgd2FzIHB1Ymxpc2hlZC5cblxuIyMgSGlnaGxpZ2h0c1xuXG4tIERyYWcgRlggZ3JpcHMgdG8gcmVvcmRlciB0cmFjaywgaW5wdXQgYW5kIG1hc3RlciBjaGFpbnMuIENoYW5nZXMgcmVhY2ggdGhlXG4gIG5hdGl2ZSBwcm9jZXNzaW5nIGNoYWluIGFuZCBhdXRvbWF0aW9uIG93bmVyc2hpcCwgcmV0YWluIGZvY3VzIGFuZCBzdXBwb3J0XG4gIFVuZG8vUmVkby4gRWRnZSBzY3JvbGxpbmcgcmVhY2hlcyBwbHVnaW5zIG91dHNpZGUgdGhlIHZpc2libGUgbGlzdC5cbi0gQnJvd3NlIE5BTSBjYXB0dXJlcyBhbmQgSVJzIGluIGEgbW9yZSBjb21wYWN0IFRPTkUzMDAwIGxpYnJhcnkgd2l0aCBhIHNtYWxsZXJcbiAgYnJhbmRlZCBCcm93c2UgY29udHJvbCwgbW9yZSBzcGFjZSBmb3IgcmVzdWx0cyBhbmQgbGF5b3V0cyB0aGF0IGFkYXB0IHRvXG4gIGNvbXBhY3QgcmFjayB3aW5kb3dzLiBTZWxlY3RlZCBjYXB0dXJlIGRldGFpbHMgcmVtYWluIGFjY2Vzc2libGUuXG4tIEV4cGFuZCB0aGUgYnVpbHQtaW4gZWZmZWN0cyBhbmQgaW5zdHJ1bWVudHMgd2l0aCBkZWRpY2F0ZWQgZWRpdG9ycywgcmV0YWluZWRcbiAgZW5naW5lIHNldHRpbmdzLCBwcmVzZXRzLCBDb21wYXJlIGFuZCBVbmRvLiBUaGVzZSBpbmNsdWRlIGR5bmFtaWMvc3BlY3RyYWxcbiAgYW5kIEdyYXBoaWMgRVEsIGNvbXByZXNzb3IgcHJvZmlsZXMsIGdhdGUsIGxpbWl0ZXIsIHByZWFtcCwgc2F0dXJhdG9yLCBHYWluXG4gIFBoYXNlIGFsaWdubWVudCwgcmV2ZXJiL2NvbnZvbHV0aW9uLCBkZWxheSwgY2hvcnVzLCBzeW50aCwgcGlhbm8sIGd1aXRhciBhbmRcbiAgZHJ1bXMuIFNlZSB0aGUgW2NhcGFiaWxpdHkgZ3VpZGVdKC4uL2ZyZWUtcGx1Z2lucy5tZCkgZm9yIHN1cHBvcnRlZCBjb250cm9scy5cbi0gRXh0ZW5kIGVsaWdpYmxlIHBsdWdpbiBhbmQgRlgtc3RhZ2UgYXV0b21hdGlvbiB3aXRoIFByZXZpZXcvQ2FwdHVyZS9QdW5jaCxcbiAgcmFuZ2UgVHJpbS9GaWxsL3RoaW5uaW5nLCBUb3VjaC9MYXRjaCwgQ3Jvc3MtT3ZlciBhbmQgQXV0b0pvaW4uIEdyYXBoaWNhbCBFZGl0XG4gIFBpdGNoIHNlc3Npb25zIHJldGFpbiBjbGlwL3Nlc3Npb24gb3duZXJzaGlwIGFuZCBoaXN0b3J5OyByZWFsdGltZSBQaXRjaFxuICBDb3JyZWN0IHJlbWFpbnMgYSBzZXBhcmF0ZSBGWCBwYXRoLlxuLSBBZGQgQ291bnRkb3duIGFuZCBTdG9wd2F0Y2ggcHJhY3RpY2UgdG9vbHMgdG8gTWV0cm9ub21lIFNldHRpbmdzLCBpbmNsdWRpbmdcbiAgUGF1c2UvUmVzdW1lLCBSZXNldCBhbmQgdHJhbnNwb3J0IHN0YXR1cy4gUHJhY3RpY2UgdGltaW5nIGZvbGxvd3MgcHJvY2Vzc2VkXG4gIGF1ZGlvIGFuZCBuZXZlciBzdG9wcyBhIHJlY29yZGluZy4gUmVndWxhciBhbmQgYWNjZW50IGNsaWNrIHNvdW5kcyBjYW4gYmVcbiAgc2VsZWN0ZWQgaW5kZXBlbmRlbnRseS5cbi0gRXhwYW5kIGludGVnZXIgZXhwb3J0IHdpdGggZXhwbGljaXQgZGl0aGVyIG1vZGVzIGFuZCAxOC8yMC8yMi1iaXQgcHJlY2lzaW9uXG4gIHN0b3JlZCBpbiAyNC1iaXQgZmlsZXMuIFF1YW50aXphdGlvbiBmb2xsb3dzIG5vcm1hbGl6YXRpb24gYW5kIHNhbXBsZS1yYXRlXG4gIGNvbnZlcnNpb247IHJlbmRlciBxdWV1ZSBqb2JzIHJldGFpbiB0aGUgc2VsZWN0ZWQgbW9kZS5cbi0gQWRkIGRpc3RyaWJ1dGlvbi1uYXRpdmUgTGludXggcGFja2FnZXMgd2l0aCBkZXNrdG9wIGFuZCBwcm9qZWN0LWZpbGVcbiAgYXNzb2NpYXRpb25zLCBkZWNsYXJlZCBkZXBlbmRlbmNpZXMgYW5kIHBhY2thZ2UgcmV2aXNpb25zLiBQcmVzZXJ2ZSBBcHBJbWFnZVxuICBkb3dubG9hZC91cGRhdGVyIG5hbWVzIGZvciBjb21wYXRpYmxlIGhvc3Qgc3lzdGVtcy5cblxuIyMgRml4ZXNcblxuLSBSZXNwZWN0IGV4cGxpY2l0IHVuYXR0ZW5kZWQgV2luZG93cyB1bmluc3RhbGwgcmVxdWVzdHMgd2l0aG91dCB3YWl0aW5nIGZvciBhXG4gIGNvbmZpcm1hdGlvbiBkaWFsb2cuIEludGVyYWN0aXZlIHVuaW5zdGFsbCBzdGlsbCBhc2tzIGJlZm9yZSByZW1vdmluZ1xuICB1c2VyLXNjb3BlZCBzZXR0aW5ncywgbWFuYWdlZCBBSSBmaWxlcyBhbmQgY2FjaGVzOyBwcm9qZWN0IGZvbGRlcnMgb3V0c2lkZVxuICBBcHBEYXRhIGFyZSByZXRhaW5lZC5cbi0gU3VwcHJlc3MgaW5zdGFsbGVyIGVycm9yIGRpYWxvZ3Mgd2hlbiBzdXBwcmVzc2lvbiBpcyByZXF1ZXN0ZWQsIGNhbmNlbCBmYWlsZWRcbiAgcHJlcmVxdWlzaXRlIHJldHJpZXMgYW5kIHJldHVybiBhIG5vbnplcm8gaW5zdGFsbGVyIHJlc3VsdCB3aGVuIHBheWxvYWQsXG4gIHByZXJlcXVpc2l0ZSBvciBzdGFydHVwIHZhbGlkYXRpb24gZmFpbHMuIFZhbGlkYXRpb24gZmFpbHVyZXMgcmVtYWluIGVycm9ycy5cbi0gRXhlcmNpc2UgY29tcGlsZWQgdW5hdHRlbmRlZCBpbnN0YWxsZXIvdW5pbnN0YWxsZXIgYmVoYXZpb3IgYmVmb3JlIFdpbmRvd3NcbiAgYnVpbGRzLiBCb3VuZCBpbnN0YWxsZWQtcmVsZWFzZSBDSSBxdWFsaWZpY2F0aW9uIGFuZCByZXRhaW4gc2VwYXJhdGUgaW5zdGFsbCxcbiAgbGlmZWN5Y2xlIGFuZCB1bmluc3RhbGwgZXZpZGVuY2UgZm9yIGRpYWdub3NpbmcgZmFpbHVyZXMuXG4tIEF2b2lkIHJlcGxheWluZyBhIGhpZGRlbiBtYWNPUyBtaXhlcidzIGluaXRpYWwgbmF2aWdhdGlvbiB3aGVuIGl0IGlzIHNob3duLlxuICBQcmVzZXJ2ZSBzdGFydHVwIGd1YXJkcyBhbmQgdGVhcmRvd24gd2hpbGUgcmVxdWlyaW5nIG9uZSBmcm9udGVuZCBkb2N1bWVudFxuICBwZXIgd2luZG93IHNlc3Npb24sIGluY2x1ZGluZyByZW9wZW5lZCBlZGl0b3JzLlxuLSBQcmVzZXJ2ZSBpbnRlbnRpb25hbGx5IHNpbGVudCBzdGVyZW8gY2hhbm5lbHMsIHZhbGlkIE1JREktb25seSBwbHVnaW5cbiAgbGF5b3V0cyBhbmQgc2FtcGxlLXJhdGUgcHJlcGFyYXRpb24uIFJldGFpbiBDTEFQIHBhcmFtZXRlciBhdXRvbWF0aW9uL3N0YXRlXG4gIGFuZCBMaW51eCBHVUkvdGltZXIgc3VwcG9ydCwgYW5kIHByZXNlcnZlIGV2ZXJ5IFVSSSBpbiBtdWx0aS1wbHVnaW4gTFYyXG4gIGJ1bmRsZXMgZHVyaW5nIGlzb2xhdGVkIHNjYW5uaW5nLlxuLSBLZWVwIHByb2plY3Qgcm91dGluZyBhbmQgdHJhY2svY2xpcCBzdGF0ZSB0aHJvdWdoIHNhdmUvcmVvcGVuLCByZXN0b3JlIHNlbmRzXG4gIGF0b21pY2FsbHkgYW5kIHJlamVjdCBtYWxmb3JtZWQgTUlESSBiZWZvcmUgcmVwbGFjaW5nIHRoZSBjdXJyZW50IHByb2plY3QuXG4gIEF1ZGlvIFNldHRpbmdzIHJlbWFpbiBwZW5kaW5nIHVudGlsIEFwcGx5L09LIGFuZCByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXR1cFxuICB3aGVuIHN3aXRjaGluZyBmYWlscy5cbi0gSW1wcm92ZSBtYW5hZ2VkIEFJIHJlcGFpciwgY2hlY2twb2ludC9jYWNoZSB2YWxpZGF0aW9uIGFuZCBtb2RlbC1kb3dubG9hZFxuICByZXBvcnRpbmcuIFdpbmRvd3MgRGlyZWN0TUwgZmFsbGJhY2sgdXNlcyBhIHNlcGFyYXRlIHZlcmlmaWVkIHJ1bnRpbWUuIFRoZVxuICByZWxlYXNlIHNlbGVjdHMgdGhlIHB1Ymxpc2hlZCBQeXRob24gMy4xMS4xNSBXaW5kb3dzL21hY09TIEFJIHJ1bnRpbWUgMC4wLjE2XG4gIGFuZCByZXRhaW5zIHRoZSBwdWJsaXNoZWQgTGludXggcnVudGltZSAwLjAuMTQ7IGFyY2hpdmUgaWRlbnRpdHksIGRvd25sb2FkZWRcbiAgYnl0ZXMgYW5kIFNIQS0yNTYgYXJlIGNoZWNrZWQgYmVmb3JlIGNhdGFsb2cgcHVibGljYXRpb24uXG4tIFByZXNlcnZlIGxpdmUgU3RvcmUgcmVhZGluZXNzIGJlZm9yZSBHaXRIdWIgcHVibGljYXRpb24gYW5kIHN1Ym1pdCB0aGUgZXhhY3RcbiAgcnVuJ3MgTVNJWCBpbmRlcGVuZGVudGx5IG9mIHdlYnNpdGUgZGlzcGF0Y2guIFRoaXMgY2FuZGlkYXRlIHJlcXVlc3RzIFN0b3JlXG4gIHB1YmxpY2F0aW9uIGFmdGVyIE1pY3Jvc29mdCBjZXJ0aWZpY2F0aW9uIHRocm91Z2ggdGhlIHJldmlld2VkIHYwLjEuMDUgcG9saWN5LlxuXG4jIyBLbm93biBJc3N1ZXNcblxuLSBBdXRvbWF0ZWQgY2hlY2tzIGRvIG5vdCBlc3RhYmxpc2ggcGh5c2ljYWwgYXVkaW8taW50ZXJmYWNlLCBsb25nLXNlc3Npb24sXG4gIG1peGVkLURQSSwgY2xlYW4tbWFjaGluZSB1cGdyYWRlIG9yIFN0b3JlLWRlbGl2ZXJlZCB1cGdyYWRlIGFjY2VwdGFuY2UuIFRoZVxuICBpbnN0YWxsZWQgMC4xLjA0IGxvY2FsIHN0YXJ0dXAgbG9ncyBwYXNzZWQgbm9ybWFsIGFuZCBzYWZlIG1vZGU7IHZpc2libGUgVUlcbiAgaW5zcGVjdGlvbiB3YXMgbm90IGFzc2VydGVkLiBUaGUgY2FuY2VsbGVkIHRhZyBydW4gcGFzc2VkIGluc3RhbGxlZCBXaW5kb3dzLFxuICBwYWNrYWdlZCBtYWNPUyBhbmQgTGludXggbGlmZWN5Y2xlIGNoZWNrcywgYnV0IHRob3NlIGFyZSAwLjEuMDQgYXJ0aWZhY3RzLlxuLSBOYXRpdmUgVE9ORTMwMDAgT0F1dGgvYWNjb3VudCByb3VuZCB0cmlwcyBhbmQgdGhlIG9yaWdpbmFsIFdpbmRvd3MvQXJjaFxuICByZXBvcnRlciByZXByb2R1Y3Rpb25zIHJlbWFpbiB1bnZlcmlmaWVkLiBCcm93c2VyIGludGVyYWN0aW9uL2xheW91dCByZXN1bHRzXG4gIHVzZSBmaXh0dXJlcyBhbmQgZG8gbm90IHByb3ZlIGxpdmUgYWNjb3VudCBvciBjYXRhbG9nIGNvbXBhdGliaWxpdHkuXG4tIEFtcGxpVHViZSB3ZXQtZXhwb3J0IHBhcml0eSwgTmVrb2JpIFZTVDMgc3RhdGUgcmVzdG9yYXRpb24gYW5kIHRoZSBuYXRpdmVcbiAgcGxheWVkLWd1aXRhciBQdW5jaC9BdXRvSm9pbiB0aW1lb3V0IHJlbWFpbiB1bnJlc29sdmVkLiBUaGUgdGVzdGVkIERQRiAxLjdcbiAgVlNUMyBwYWNrYWdlIGxlYWtzIGhvc3QtY29udGV4dCByZWZlcmVuY2VzIGF0IHNodXRkb3duOyB0aGlzIGRvZXMgbm90IGVzdGFibGlzaFxuICBjb21wYXRpYmlsaXR5IGZvciBhbGwgdGhpcmQtcGFydHkgcGx1Z2lucy5cbi0gTWFuYWdlZCBtYWNPUyBBSSByZXF1aXJlcyBBcHBsZSBTaWxpY29uIGFuZCBtYWNPUyAxNCBvciBsYXRlciwgd2hpbGUgdGhlIGJhc2VcbiAgYXBwIHRhcmdldHMgbWFjT1MgMTIgb3IgbGF0ZXIuIEdQVSBvdmVybGF5cyByZXF1aXJlIGNvbXBhdGlibGUgZHJpdmVycy4gR2F0ZWRcbiAgbW9kZWwgc2V0dXAsIE5WSURJQSBJTlQ4IGFuZCBzdWJqZWN0aXZlIHBpdGNoL2VmZmVjdHMvZ2VuZXJhdGVkLWF1ZGlvIHF1YWxpdHlcbiAgYXJlIG5vdCBhc3NlcnRlZC5cbi0gQXBwSW1hZ2VzIGRlcGVuZCBvbiBob3N0IEdUSy9XZWJLaXQgYW5kIEZGbXBlZy4gTmF0aXZlIHBhY2thZ2UgaW5zdGFsbGF0aW9uXG4gIGFuZCB1cGdyYWRlIGJlaGF2aW9yIHZhcmllcyBieSBkaXN0cmlidXRpb24uIFByb2R1Y3Rpb24gc2lnbmluZy9yZXB1dGF0aW9uLFxuICBNaWNyb3NvZnQgY2VydGlmaWNhdGlvbiBhbmQgcmVsZWFzZS1zcGVjaWZpYyBpbnN0YWxsZWQgYWNjZXB0YW5jZSByZW1haW5cbiAgc2VwYXJhdGUgY2hlY2tzOyBhbiBhY2NlcHRlZCBTdG9yZSBzdWJtaXNzaW9uIGlzIG5vdCBwcm9vZiBvZiBwdWJsaWNhdGlvbi5cblxuIyMgVXBncmFkZSBOb3Rlc1xuXG4tIFVwZ3JhZGUgZnJvbSB0aGUgcHVibGlzaGVkIDAuMS4wMyBhcHBsaWNhdGlvbiBkaXJlY3RseSB0byB0aGlzIHZlcnNpb24gb25jZVxuICBwdWJsaXNoZWQuIFRoZSB1bnB1Ymxpc2hlZCAwLjEuMDQgdGFnIGRvZXMgbm90IHJlcXVpcmUgYW4gaW50ZXJtZWRpYXRlIHVwZ3JhZGUuXG4gIEJhY2sgdXAgcHJvamVjdHMgYW5kIHByZXNldHMuIFRoaXMgZm9sbG93LXVwIGRvZXMgbm90IGJ1bXAgYSBwZXJzaXN0ZW5jZSBvclxuICBEU1Agc2NoZW1hLlxuLSBJbnN0YWxsIFdpbmRvd3MgdXBkYXRlcyBpbiBwbGFjZS4gVW5pbnN0YWxsaW5nIGZpcnN0IGlzIHVubmVjZXNzYXJ5IGFuZFxuICByZW1vdmVzIHVzZXItc2NvcGVkIE9wZW5TdHVkaW8gc2V0dGluZ3MsIG9wdGlvbmFsIEFJIHJ1bnRpbWUvbW9kZWwgZmlsZXMgYW5kXG4gIGNhY2hlcy4gRXhwbGljaXQgc2lsZW50IHVuaW5zdGFsbCBub3cgaG9ub3JzIHRoYXQgc2FtZSBjbGVhbnVwIGludGVudC5cbi0gVXNlIHRoZSBuYXRpdmUgTGludXggcGFja2FnZSBtYXRjaGluZyB0aGUgZGlzdHJpYnV0aW9uIGFuZCBDUFUuIElmIGEgREVCXG4gIG9wZW5zIEFyY2hpdmUgTWFuYWdlciwgc2VsZWN0IHRoZSBkaXN0cmlidXRpb24ncyBwYWNrYWdlIGluc3RhbGxlci4gRm9yIGFcbiAgZ3JhcGhpY2FsIHVwZ3JhZGUgZmFpbHVyZSwgY2xvc2UgT3BlblN0dWRpbyBhbmQgdXNlIHRoZSBwYWNrYWdlIG1hbmFnZXIuXG4gIERvIG5vdCBydW4gdGhlIGFwcGxpY2F0aW9uIGFzIHJvb3QuXG4tIEFJIFRvb2xzIFNldHVwIGluc3RhbGxzIG9yIHJlcGFpcnMgb3B0aW9uYWwgcnVudGltZXMgc2VwYXJhdGVseSBmcm9tIHRoZSBiYXNlXG4gIGFwcC4gRXhpc3RpbmcgYXBwcm92ZWQgY29tcGxldGUgbW9kZWwgY2FjaGVzIGNhbiBhdm9pZCBhbm90aGVyIGRvd25sb2FkO1xuICBtb2RlbC1saWNlbnNlIGFjY2VwdGFuY2UgcmVtYWlucyBhIHNlcGFyYXRlIHVzZXIgZGVjaXNpb24uXG4iLCJwbGF0Zm9ybXMiOnsibGludXgiOnsiYXJjaGl0ZWN0dXJlcyI6WyJ4ODZfNjQiXSwiZmlsZU5hbWUiOiJPcGVuU3R1ZGlvLTAuMS4wNS1saW51eC14ODZfNjQuQXBwSW1hZ2UiLCJtaW5pbXVtR2xpYmNWZXJzaW9uIjoiMi4zNSIsInNoYTI1NiI6IjJmNmNmZDU4MDg2ZWVjZjY4ZjIwMjBjMzVmNmExZjFmNWQ1ZWEwNTFiMDBjZjBkNDdjMzY5MjI5YmQzNWM3MzMiLCJzaXplIjo0MzY2NTkxMiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3NkZXZpbDd0aC9PcGVuU3R1ZGlvL3JlbGVhc2VzL2Rvd25sb2FkL3YwLjEuMDUvT3BlblN0dWRpby0wLjEuMDUtbGludXgteDg2XzY0LkFwcEltYWdlIn0sIm1hY29zIjp7ImFyY2hpdGVjdHVyZXMiOlsiYXJtNjQiLCJ4ODZfNjQiXSwiZmlsZU5hbWUiOiJPcGVuU3R1ZGlvLW1hY09TLmRtZyIsIm1pbmltdW1TeXN0ZW1WZXJzaW9uIjoiMTIuMCIsInNoYTI1NiI6IjlkMWQyNDM0MGFiOWEzMzYyY2IyMjNkNDYzZTI3ZmJlMzRhYjEzOWVhMjBlYWNkYWUxYTJhYTcyNWE4MDNkMTIiLCJzaXplIjo0NDI1Njk2OCwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3NkZXZpbDd0aC9PcGVuU3R1ZGlvL3JlbGVhc2VzL2Rvd25sb2FkL3YwLjEuMDUvT3BlblN0dWRpby1tYWNPUy5kbWcifSwid2luZG93cyI6eyJhcmNoaXRlY3R1cmVzIjpbIng4Nl82NCJdLCJmaWxlTmFtZSI6Ik9wZW5TdHVkaW8tU2V0dXAteDY0LmV4ZSIsImluc3RhbGxlckFyZ3VtZW50cyI6Ii9TUC0gL05PSUNPTlMiLCJtaW5pbXVtU3lzdGVtVmVyc2lvbiI6IjEwIiwic2hhMjU2IjoiYjg2MTQ2ZjY3YzM5NGZkYTM5NzkyZjUwNzJhOGNjNThjMWY2NmU5MjY3NzcxMmM0MDYyOGMyZjE0MzM5M2JjNiIsInNpemUiOjI2NTg3MDQyNSwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3NkZXZpbDd0aC9PcGVuU3R1ZGlvL3JlbGVhc2VzL2Rvd25sb2FkL3YwLjEuMDUvT3BlblN0dWRpby1TZXR1cC14NjQuZXhlIn19LCJwdWJsaXNoZWRBdCI6IjIwMjYtMTAtMDhUMTQ6Mzg6MTlaIiwicmVsZWFzZVBhZ2VVcmwiOiJodHRwczovL2dpdGh1Yi5jb20vc2RldmlsN3RoL09wZW5TdHVkaW8vcmVsZWFzZXMvdGFnL3YwLjEuMDUiLCJzY2hlbWFWZXJzaW9uIjoxLCJ2ZXJzaW9uIjoiMC4xLjA1In0=",
  "signature": "EDon9GTQr6kmQCh/I4k47Jzs6Axc/h8daRux6VWyfWZev5x05JCGHa4lo+hZCABx/ilQe1YPJ9QaNfbMAl7wDw=="
}
