diff --git a/.gitignore b/.gitignore index e09a007..e9e68e4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ node_modules # Don't include the compiled main.js file in the repo. # They should be uploaded to GitHub releases instead. main.js +dist # Exclude sourcemaps *.map diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..b4a79d2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,11 @@ +.DS_Store +package.json +/dist +.eslintignore +.editorconfig +.gitignore +.prettierignore +LICENSE +.eslintcache +*.lock +yarn-error.log diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..6bd2473 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "printWidth": 120, + "tabWidth": 2, + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/README.md b/README.md index bb0348e..92ffe5b 100644 --- a/README.md +++ b/README.md @@ -1,96 +1 @@ -# Obsidian Sample Plugin - -This is a sample plugin for Obsidian (https://obsidian.md). - -This project uses Typescript to provide type checking and documentation. -The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does. - -**Note:** The Obsidian API is still in early alpha and is subject to change at any time! - -This sample plugin demonstrates some of the basic functionality the plugin API can do. -- Adds a ribbon icon, which shows a Notice when clicked. -- Adds a command "Open Sample Modal" which opens a Modal. -- Adds a plugin setting tab to the settings page. -- Registers a global click event and output 'click' to the console. -- Registers a global interval which logs 'setInterval' to the console. - -## First time developing plugins? - -Quick starting guide for new plugin devs: - -- Check if [someone already developed a plugin for what you want](https://obsidian.md/plugins)! There might be an existing plugin similar enough that you can partner up with. -- Make a copy of this repo as a template with the "Use this template" button (login to GitHub if you don't see it). -- Clone your repo to a local development folder. For convenience, you can place this folder in your `.obsidian/plugins/your-plugin-name` folder. -- Install NodeJS, then run `npm i` in the command line under your repo folder. -- Run `npm run dev` to compile your plugin from `main.ts` to `main.js`. -- Make changes to `main.ts` (or create new `.ts` files). Those changes should be automatically compiled into `main.js`. -- Reload Obsidian to load the new version of your plugin. -- Enable plugin in settings window. -- For updates to the Obsidian API run `npm update` in the command line under your repo folder. - -## Releasing new releases - -- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release. -- Update your `versions.json` file with `"new-plugin-version": "minimum-obsidian-version"` so older versions of Obsidian can download an older version of your plugin that's compatible. -- Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix `v`. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases -- Upload the files `manifest.json`, `main.js`, `styles.css` as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release. -- Publish the release. - -> You can simplify the version bump process by running `npm version patch`, `npm version minor` or `npm version major` after updating `minAppVersion` manually in `manifest.json`. -> The command will bump version in `manifest.json` and `package.json`, and add the entry for the new version to `versions.json` - -## Adding your plugin to the community plugin list - -- Check https://github.com/obsidianmd/obsidian-releases/blob/master/plugin-review.md -- Publish an initial version. -- Make sure you have a `README.md` file in the root of your repo. -- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin. - -## How to use - -- Clone this repo. -- Make sure your NodeJS is at least v16 (`node --version`). -- `npm i` or `yarn` to install dependencies. -- `npm run dev` to start compilation in watch mode. - -## Manually installing the plugin - -- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`. - -## Improve code quality with eslint (optional) -- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code. -- To use eslint with this project, make sure to install eslint from terminal: - - `npm install -g eslint` -- To use eslint to analyze this project use this command: - - `eslint main.ts` - - eslint will then create a report with suggestions for code improvement by file and line number. -- If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder: - - `eslint .\src\` - -## Funding URL - -You can include funding URLs where people who use your plugin can financially support it. - -The simple way is to set the `fundingUrl` field to your link in your `manifest.json` file: - -```json -{ - "fundingUrl": "https://buymeacoffee.com" -} -``` - -If you have multiple URLs, you can also do: - -```json -{ - "fundingUrl": { - "Buy Me a Coffee": "https://buymeacoffee.com", - "GitHub Sponsor": "https://github.com/sponsors", - "Patreon": "https://www.patreon.com/" - } -} -``` - -## API Documentation - -See https://github.com/obsidianmd/obsidian-api +# Obsidian Code Editor diff --git a/esbuild.config.mjs b/esbuild.config.mjs index b13282b..1fb9904 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,43 +1,45 @@ -import esbuild from "esbuild"; -import process from "process"; -import builtins from "builtin-modules"; +import esbuild from 'esbuild'; +import process from 'process'; +import builtins from 'builtin-modules'; +import { lessLoader } from 'esbuild-plugin-less'; -const banner = -`/* +const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ `; -const prod = (process.argv[2] === "production"); +const prod = process.argv[2] === 'production'; const context = await esbuild.context({ banner: { js: banner, }, - entryPoints: ["main.ts"], + entryPoints: ['src/main.ts'], bundle: true, external: [ - "obsidian", - "electron", - "@codemirror/autocomplete", - "@codemirror/collab", - "@codemirror/commands", - "@codemirror/language", - "@codemirror/lint", - "@codemirror/search", - "@codemirror/state", - "@codemirror/view", - "@lezer/common", - "@lezer/highlight", - "@lezer/lr", - ...builtins], - format: "cjs", - target: "es2018", - logLevel: "info", - sourcemap: prod ? false : "inline", + 'obsidian', + 'electron', + '@codemirror/autocomplete', + '@codemirror/collab', + '@codemirror/commands', + '@codemirror/language', + '@codemirror/lint', + '@codemirror/search', + '@codemirror/state', + '@codemirror/view', + '@lezer/common', + '@lezer/highlight', + '@lezer/lr', + ...builtins, + ], + format: 'cjs', + target: 'es2018', + logLevel: 'info', + sourcemap: prod ? false : 'inline', treeShaking: true, - outfile: "main.js", + outfile: 'main.js', + plugins: [lessLoader()], }); if (prod) { @@ -45,4 +47,4 @@ if (prod) { process.exit(0); } else { await context.watch(); -} \ No newline at end of file +} diff --git a/main.css b/main.css new file mode 100644 index 0000000..ab9b136 --- /dev/null +++ b/main.css @@ -0,0 +1,2395 @@ +/* src/components/App/index.less */ +.app-main { + color: red; +} + +/* node_modules/monaco-editor/esm/vs/editor/standalone/browser/standalone-tokens.css */ +.monaco-editor { + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe WPC", + "Segoe UI", + "HelveticaNeue-Light", + system-ui, + "Ubuntu", + "Droid Sans", + sans-serif; + --monaco-monospace-font: + "SF Mono", + Monaco, + Menlo, + Consolas, + "Ubuntu Mono", + "Liberation Mono", + "DejaVu Sans Mono", + "Courier New", + monospace; +} +.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label { + stroke-width: 1.2px; +} +.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label, +.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label, +.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label { + stroke-width: 1.2px; +} +.monaco-hover p { + margin: 0; +} +.monaco-aria-container { + position: absolute !important; + top: 0; + height: 1px; + width: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css */ +.monaco-aria-container { + position: absolute; + left: -999em; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/media/editor.css */ +::-ms-clear { + display: none; +} +.monaco-editor .editor-widget input { + color: inherit; +} +.monaco-editor { + position: relative; + overflow: visible; + -webkit-text-size-adjust: 100%; + color: var(--vscode-editor-foreground); + background-color: var(--vscode-editor-background); +} +.monaco-editor-background { + background-color: var(--vscode-editor-background); +} +.monaco-editor .rangeHighlight { + background-color: var(--vscode-editor-rangeHighlightBackground); + box-sizing: border-box; + border: 1px solid var(--vscode-editor-rangeHighlightBorder); +} +.monaco-editor.hc-black .rangeHighlight, +.monaco-editor.hc-light .rangeHighlight { + border-style: dotted; +} +.monaco-editor .symbolHighlight { + background-color: var(--vscode-editor-symbolHighlightBackground); + box-sizing: border-box; + border: 1px solid var(--vscode-editor-symbolHighlightBorder); +} +.monaco-editor.hc-black .symbolHighlight, +.monaco-editor.hc-light .symbolHighlight { + border-style: dotted; +} +.monaco-editor .overflow-guard { + position: relative; + overflow: hidden; +} +.monaco-editor .view-overlays { + position: absolute; + top: 0; +} +.monaco-editor .squiggly-error { + border-bottom: 4px double var(--vscode-editorError-border); +} +.monaco-editor .squiggly-error::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorError-background); +} +.monaco-editor .squiggly-warning { + border-bottom: 4px double var(--vscode-editorWarning-border); +} +.monaco-editor .squiggly-warning::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorWarning-background); +} +.monaco-editor .squiggly-info { + border-bottom: 4px double var(--vscode-editorInfo-border); +} +.monaco-editor .squiggly-info::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorInfo-background); +} +.monaco-editor .squiggly-hint { + border-bottom: 2px dotted var(--vscode-editorHint-border); +} +.monaco-editor.showUnused .squiggly-unnecessary { + border-bottom: 2px dashed var(--vscode-editorUnnecessaryCode-border); +} +.monaco-editor.showDeprecated .squiggly-inline-deprecated { + text-decoration: line-through; + text-decoration-color: var(--vscode-editor-foreground, inherit); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/media/scrollbars.css */ +.monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; +} +.monaco-scrollable-element > .visible { + opacity: 1; + background: rgba(0, 0, 0, 0); + transition: opacity 100ms linear; + z-index: 11; +} +.monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; +} +.monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; +} +.monaco-scrollable-element > .shadow { + position: absolute; + display: none; +} +.monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset; +} +.monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset; +} +.monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; +} +.monaco-scrollable-element > .shadow.top.left { + box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset; +} +.monaco-scrollable-element > .scrollbar > .slider { + background: var(--vscode-scrollbarSlider-background); +} +.monaco-scrollable-element > .scrollbar > .slider:hover { + background: var(--vscode-scrollbarSlider-hoverBackground); +} +.monaco-scrollable-element > .scrollbar > .slider.active { + background: var(--vscode-scrollbarSlider-activeBackground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaHandler.css */ +.monaco-editor .inputarea { + min-width: 0; + min-height: 0; + margin: 0; + padding: 0; + position: absolute; + outline: none !important; + resize: none; + border: none; + overflow: hidden; + color: transparent; + background-color: transparent; + z-index: -10; +} +.monaco-editor .inputarea.ime-input { + z-index: 10; + caret-color: var(--vscode-editorCursor-foreground); + color: var(--vscode-editor-foreground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.css */ +.monaco-editor .margin-view-overlays .line-numbers { + font-variant-numeric: tabular-nums; + position: absolute; + text-align: right; + display: inline-block; + vertical-align: middle; + box-sizing: border-box; + cursor: default; + height: 100%; +} +.monaco-editor .relative-current-line-number { + text-align: left; + display: inline-block; + width: 100%; +} +.monaco-editor .margin-view-overlays .line-numbers.lh-odd { + margin-top: 1px; +} +.monaco-editor .line-numbers { + color: var(--vscode-editorLineNumber-foreground); +} +.monaco-editor .line-numbers.active-line-number { + color: var(--vscode-editorLineNumber-activeForeground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/margin/margin.css */ +.monaco-editor .margin { + background-color: var(--vscode-editorGutter-background); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/mouseCursor/mouseCursor.css */ +.monaco-mouse-cursor-text { + cursor: text; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.css */ +.monaco-editor .view-overlays .current-line { + display: block; + position: absolute; + left: 0; + top: 0; + box-sizing: border-box; +} +.monaco-editor .margin-view-overlays .current-line { + display: block; + position: absolute; + left: 0; + top: 0; + box-sizing: border-box; +} +.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both { + border-right: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/decorations/decorations.css */ +.monaco-editor .lines-content .cdr { + position: absolute; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.css */ +.monaco-editor .lines-content .core-guide { + position: absolute; + box-sizing: border-box; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLines.css */ +.mtkcontrol { + color: rgb(255, 255, 255) !important; + background: rgb(150, 0, 0) !important; +} +.mtkoverflow { + background-color: var(--vscode-button-background, var(--vscode-editor-background)); + color: var(--vscode-button-foreground, var(--vscode-editor-foreground)); + border-width: 1px; + border-style: solid; + border-color: var(--vscode-contrastBorder); + border-radius: 2px; + padding: 4px; + cursor: pointer; +} +.mtkoverflow:hover { + background-color: var(--vscode-button-hoverBackground); +} +.monaco-editor.no-user-select .lines-content, +.monaco-editor.no-user-select .view-line, +.monaco-editor.no-user-select .view-lines { + user-select: none; + -webkit-user-select: none; +} +.monaco-editor.mac .lines-content:hover, +.monaco-editor.mac .view-line:hover, +.monaco-editor.mac .view-lines:hover { + user-select: text; + -webkit-user-select: text; + -ms-user-select: text; +} +.monaco-editor.enable-user-select { + user-select: initial; + -webkit-user-select: initial; +} +.monaco-editor .view-lines { + white-space: nowrap; +} +.monaco-editor .view-line { + position: absolute; + width: 100%; +} +.monaco-editor .mtkw { + color: var(--vscode-editorWhitespace-foreground) !important; +} +.monaco-editor .mtkz { + display: inline-block; + color: var(--vscode-editorWhitespace-foreground) !important; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css */ +.monaco-editor .lines-decorations { + position: absolute; + top: 0; + background: white; +} +.monaco-editor .margin-view-overlays .cldr { + position: absolute; + height: 100%; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.css */ +.monaco-editor .glyph-margin { + position: absolute; + top: 0; +} +.monaco-editor .glyph-margin-widgets .cgmr { + position: absolute; + display: flex; + align-items: center; + justify-content: center; +} +.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin::before { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.css */ +.monaco-editor .margin-view-overlays .cmdr { + position: absolute; + left: 0; + width: 100%; + height: 100%; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimap.css */ +.monaco-editor .minimap.slider-mouseover .minimap-slider { + opacity: 0; + transition: opacity 100ms linear; +} +.monaco-editor .minimap.slider-mouseover:hover .minimap-slider { + opacity: 1; +} +.monaco-editor .minimap.slider-mouseover .minimap-slider.active { + opacity: 1; +} +.monaco-editor .minimap-slider .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-background); +} +.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-hoverBackground); +} +.monaco-editor .minimap-slider.active .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-activeBackground); +} +.monaco-editor .minimap-shadow-visible { + box-shadow: var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset; +} +.monaco-editor .minimap-shadow-hidden { + position: absolute; + width: 0; +} +.monaco-editor .minimap-shadow-visible { + position: absolute; + left: -6px; + width: 6px; +} +.monaco-editor.no-minimap-shadow .minimap-shadow-visible { + position: absolute; + left: -1px; + width: 1px; +} +.minimap.autohide { + opacity: 0; + transition: opacity 0.5s; +} +.minimap.autohide:hover { + opacity: 1; +} +.monaco-editor .minimap { + z-index: 5; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.css */ +.monaco-editor .overlayWidgets { + position: absolute; + top: 0; + left: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.css */ +.monaco-editor .view-ruler { + position: absolute; + top: 0; + box-shadow: 1px 0 0 0 var(--vscode-editorRuler-foreground) inset; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.css */ +.monaco-editor .scroll-decoration { + position: absolute; + top: 0; + left: 0; + height: 6px; + box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/selections/selections.css */ +.monaco-editor .lines-content .cslr { + position: absolute; +} +.monaco-editor .focused .selected-text { + background-color: var(--vscode-editor-selectionBackground); +} +.monaco-editor .selected-text { + background-color: var(--vscode-editor-inactiveSelectionBackground); +} +.monaco-editor .top-left-radius { + border-top-left-radius: 3px; +} +.monaco-editor .bottom-left-radius { + border-bottom-left-radius: 3px; +} +.monaco-editor .top-right-radius { + border-top-right-radius: 3px; +} +.monaco-editor .bottom-right-radius { + border-bottom-right-radius: 3px; +} +.monaco-editor.hc-black .top-left-radius { + border-top-left-radius: 0; +} +.monaco-editor.hc-black .bottom-left-radius { + border-bottom-left-radius: 0; +} +.monaco-editor.hc-black .top-right-radius { + border-top-right-radius: 0; +} +.monaco-editor.hc-black .bottom-right-radius { + border-bottom-right-radius: 0; +} +.monaco-editor.hc-light .top-left-radius { + border-top-left-radius: 0; +} +.monaco-editor.hc-light .bottom-left-radius { + border-bottom-left-radius: 0; +} +.monaco-editor.hc-light .top-right-radius { + border-top-right-radius: 0; +} +.monaco-editor.hc-light .bottom-right-radius { + border-bottom-right-radius: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.css */ +.monaco-editor .cursors-layer { + position: absolute; + top: 0; +} +.monaco-editor .cursors-layer > .cursor { + position: absolute; + overflow: hidden; + box-sizing: border-box; +} +.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor { + transition: all 80ms; +} +.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor { + background: transparent !important; + border-style: solid; + border-width: 1px; +} +.monaco-editor .cursors-layer.cursor-underline-style > .cursor { + border-bottom-width: 2px; + border-bottom-style: solid; + background: transparent !important; +} +.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor { + border-bottom-width: 1px; + border-bottom-style: solid; + background: transparent !important; +} +@keyframes monaco-cursor-smooth { + 0%, 20% { + opacity: 1; + } + 60%, 100% { + opacity: 0; + } +} +@keyframes monaco-cursor-phase { + 0%, 20% { + opacity: 1; + } + 90%, 100% { + opacity: 0; + } +} +@keyframes monaco-cursor-expand { + 0%, 20% { + transform: scaleY(1); + } + 80%, 100% { + transform: scaleY(0); + } +} +.cursor-smooth { + animation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate; +} +.cursor-phase { + animation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate; +} +.cursor-expand > .cursor { + animation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.css */ +.monaco-editor .blockDecorations-container { + position: absolute; + top: 0; + pointer-events: none; +} +.monaco-editor .blockDecorations-block { + position: absolute; + box-sizing: border-box; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/whitespace/whitespace.css */ +.monaco-editor .mwh { + position: absolute; + color: var(--vscode-editorWhitespace-foreground) !important; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.css */ +.context-view { + position: absolute; +} +.context-view.fixed { + all: initial; + font-family: inherit; + font-size: 13px; + position: fixed; + color: inherit; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/list/list.css */ +.monaco-list { + position: relative; + height: 100%; + width: 100%; + white-space: nowrap; +} +.monaco-list.mouse-support { + user-select: none; + -webkit-user-select: none; +} +.monaco-list > .monaco-scrollable-element { + height: 100%; +} +.monaco-list-rows { + position: relative; + width: 100%; + height: 100%; +} +.monaco-list.horizontal-scrolling .monaco-list-rows { + width: auto; + min-width: 100%; +} +.monaco-list-row { + position: absolute; + box-sizing: border-box; + overflow: hidden; + width: 100%; +} +.monaco-list.mouse-support .monaco-list-row { + cursor: pointer; + touch-action: none; +} +.monaco-list-row.scrolling { + display: none !important; +} +.monaco-list.element-focused, +.monaco-list.selection-single, +.monaco-list.selection-multiple { + outline: 0 !important; +} +.monaco-drag-image { + display: inline-block; + padding: 1px 7px; + border-radius: 10px; + font-size: 12px; + position: absolute; + z-index: 1000; +} +.monaco-list-type-filter-message { + position: absolute; + box-sizing: border-box; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 40px 1em 1em 1em; + text-align: center; + white-space: normal; + opacity: 0.7; + pointer-events: none; +} +.monaco-list-type-filter-message:empty { + display: none; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css */ +.monaco-select-box-dropdown-padding { + --dropdown-padding-top: 1px; + --dropdown-padding-bottom: 1px; +} +.hc-black .monaco-select-box-dropdown-padding, +.hc-light .monaco-select-box-dropdown-padding { + --dropdown-padding-top: 3px; + --dropdown-padding-bottom: 4px; +} +.monaco-select-box-dropdown-container { + display: none; + box-sizing: border-box; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown * { + margin: 0; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:focus { + outline: 1px solid -webkit-focus-ring-color; + outline-offset: -1px; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown code { + line-height: 15px; + font-family: var(--monaco-monospace-font); +} +.monaco-select-box-dropdown-container.visible { + display: flex; + flex-direction: column; + text-align: left; + width: 1px; + overflow: hidden; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container { + flex: 0 0 auto; + align-self: flex-start; + padding-top: var(--dropdown-padding-top); + padding-bottom: var(--dropdown-padding-bottom); + padding-left: 1px; + padding-right: 1px; + width: 100%; + overflow: hidden; + box-sizing: border-box; +} +.monaco-select-box-dropdown-container > .select-box-details-pane { + padding: 5px; +} +.hc-black .monaco-select-box-dropdown-container > .select-box-dropdown-list-container { + padding-top: var(--dropdown-padding-top); + padding-bottom: var(--dropdown-padding-bottom); +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row { + cursor: pointer; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text { + text-overflow: ellipsis; + overflow: hidden; + padding-left: 3.5px; + white-space: nowrap; + float: left; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-detail { + text-overflow: ellipsis; + overflow: hidden; + padding-left: 3.5px; + white-space: nowrap; + float: left; + opacity: 0.7; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-decorator-right { + text-overflow: ellipsis; + overflow: hidden; + padding-right: 10px; + white-space: nowrap; + float: right; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .visually-hidden { + position: absolute; + left: -10000px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control { + flex: 1 1 auto; + align-self: flex-start; + opacity: 0; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div { + overflow: hidden; + max-height: 0px; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div > .option-text-width-control { + padding-left: 4px; + padding-right: 8px; + white-space: nowrap; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBox.css */ +.monaco-select-box { + width: 100%; + cursor: pointer; + border-radius: 2px; +} +.monaco-select-box-dropdown-container { + font-size: 13px; + font-weight: normal; + text-transform: none; +} +.monaco-action-bar .action-item.select-container { + cursor: default; +} +.monaco-action-bar .action-item .monaco-select-box { + cursor: pointer; + min-width: 100px; + min-height: 18px; + padding: 2px 23px 2px 8px; +} +.mac .monaco-action-bar .action-item .monaco-select-box { + font-size: 11px; + border-radius: 5px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.css */ +.monaco-action-bar { + white-space: nowrap; + height: 100%; +} +.monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + height: 100%; + width: 100%; + align-items: center; +} +.monaco-action-bar.vertical .actions-container { + display: inline-block; +} +.monaco-action-bar .action-item { + display: block; + align-items: center; + justify-content: center; + cursor: pointer; + position: relative; +} +.monaco-action-bar .action-item.disabled { + cursor: default; +} +.monaco-action-bar .action-item .icon, +.monaco-action-bar .action-item .codicon { + display: block; +} +.monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; + width: 16px; + height: 16px; +} +.monaco-action-bar .action-label { + display: flex; + font-size: 11px; + padding: 3px; + border-radius: 5px; +} +.monaco-action-bar .action-item.disabled .action-label, +.monaco-action-bar .action-item.disabled .action-label::before, +.monaco-action-bar .action-item.disabled .action-label:hover { + opacity: 0.6; +} +.monaco-action-bar.vertical { + text-align: left; +} +.monaco-action-bar.vertical .action-item { + display: block; +} +.monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid #bbb; + padding-top: 1px; + margin-left: .8em; + margin-right: .8em; +} +.monaco-action-bar .action-item .action-label.separator { + width: 1px; + height: 16px; + margin: 5px 4px !important; + cursor: default; + min-width: 1px; + padding: 0; + background-color: #bbb; +} +.secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} +.monaco-action-bar .action-item.select-container { + overflow: hidden; + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} +.monaco-action-bar .action-item.action-dropdown-item { + display: flex; +} +.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator { + display: flex; + align-items: center; + cursor: default; +} +.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator > div { + width: 1px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.css */ +.monaco-dropdown { + height: 100%; + padding: 0; +} +.monaco-dropdown > .dropdown-label { + cursor: pointer; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.monaco-dropdown > .dropdown-label > .action-label.disabled { + cursor: default; +} +.monaco-dropdown-with-primary { + display: flex !important; + flex-direction: row; + border-radius: 5px; +} +.monaco-dropdown-with-primary > .action-container > .action-label { + margin-right: 0; +} +.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] { + font-size: 12px; + padding-left: 0px; + padding-right: 0px; + line-height: 16px; + margin-left: -3px; +} +.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label { + display: block; + background-size: 16px; + background-position: center center; + background-repeat: no-repeat; +} + +/* node_modules/monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.css */ +.monaco-action-bar .action-item.menu-entry .action-label.icon { + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 16px; +} +.monaco-dropdown-with-default { + display: flex !important; + flex-direction: row; + border-radius: 5px; +} +.monaco-dropdown-with-default > .action-container > .action-label { + margin-right: 0; +} +.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon { + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 16px; +} +.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] { + font-size: 12px; + padding-left: 0px; + padding-right: 0px; + line-height: 16px; + margin-left: -3px; +} +.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label { + display: block; + background-size: 16px; + background-position: center center; + background-repeat: no-repeat; +} + +/* node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInput.css */ +.quick-input-widget { + font-size: 13px; +} +.quick-input-widget .monaco-highlighted-label .highlight, +.quick-input-widget .monaco-highlighted-label .highlight { + color: #0066BF; +} +.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight, +.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight { + color: #9DDDFF; +} +.vs-dark .quick-input-widget .monaco-highlighted-label .highlight, +.vs-dark .quick-input-widget .monaco-highlighted-label .highlight { + color: #0097fb; +} +.hc-black .quick-input-widget .monaco-highlighted-label .highlight, +.hc-black .quick-input-widget .monaco-highlighted-label .highlight { + color: #F38518; +} +.hc-light .quick-input-widget .monaco-highlighted-label .highlight, +.hc-light .quick-input-widget .monaco-highlighted-label .highlight { + color: #0F4A85; +} +.monaco-keybinding > .monaco-keybinding-key { + background-color: rgba(221, 221, 221, 0.4); + border: solid 1px rgba(204, 204, 204, 0.4); + border-bottom-color: rgba(187, 187, 187, 0.4); + box-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4); + color: #555; +} +.hc-black .monaco-keybinding > .monaco-keybinding-key { + background-color: transparent; + border: solid 1px rgb(111, 195, 223); + box-shadow: none; + color: #fff; +} +.hc-light .monaco-keybinding > .monaco-keybinding-key { + background-color: transparent; + border: solid 1px #0F4A85; + box-shadow: none; + color: #292929; +} +.vs-dark .monaco-keybinding > .monaco-keybinding-key { + background-color: rgba(128, 128, 128, 0.17); + border: solid 1px rgba(51, 51, 51, 0.6); + border-bottom-color: rgba(68, 68, 68, 0.6); + box-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6); + color: #ccc; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/sash/sash.css */ +:root { + --vscode-sash-size: 4px; + --vscode-sash-hover-size: 4px; +} +.monaco-sash { + position: absolute; + z-index: 35; + touch-action: none; +} +.monaco-sash.disabled { + pointer-events: none; +} +.monaco-sash.mac.vertical { + cursor: col-resize; +} +.monaco-sash.vertical.minimum { + cursor: e-resize; +} +.monaco-sash.vertical.maximum { + cursor: w-resize; +} +.monaco-sash.mac.horizontal { + cursor: row-resize; +} +.monaco-sash.horizontal.minimum { + cursor: s-resize; +} +.monaco-sash.horizontal.maximum { + cursor: n-resize; +} +.monaco-sash.disabled { + cursor: default !important; + pointer-events: none !important; +} +.monaco-sash.vertical { + cursor: ew-resize; + top: 0; + width: var(--vscode-sash-size); + height: 100%; +} +.monaco-sash.horizontal { + cursor: ns-resize; + left: 0; + width: 100%; + height: var(--vscode-sash-size); +} +.monaco-sash:not(.disabled) > .orthogonal-drag-handle { + content: " "; + height: calc(var(--vscode-sash-size) * 2); + width: calc(var(--vscode-sash-size) * 2); + z-index: 100; + display: block; + cursor: all-scroll; + position: absolute; +} +.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.start, +.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.end { + cursor: nwse-resize; +} +.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.end, +.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.start { + cursor: nesw-resize; +} +.monaco-sash.vertical > .orthogonal-drag-handle.start { + left: calc(var(--vscode-sash-size) * -0.5); + top: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.vertical > .orthogonal-drag-handle.end { + left: calc(var(--vscode-sash-size) * -0.5); + bottom: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.horizontal > .orthogonal-drag-handle.start { + top: calc(var(--vscode-sash-size) * -0.5); + left: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.horizontal > .orthogonal-drag-handle.end { + top: calc(var(--vscode-sash-size) * -0.5); + right: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash:before { + content: ""; + pointer-events: none; + position: absolute; + width: 100%; + height: 100%; + background: transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-sash:before { + transition: background-color 0.1s ease-out; +} +.monaco-sash.hover:before, +.monaco-sash.active:before { + background: var(--vscode-sash-hoverBorder); +} +.monaco-sash.vertical:before { + width: var(--vscode-sash-hover-size); + left: calc(50% - (var(--vscode-sash-hover-size) / 2)); +} +.monaco-sash.horizontal:before { + height: var(--vscode-sash-hover-size); + top: calc(50% - (var(--vscode-sash-hover-size) / 2)); +} +.pointer-events-disabled { + pointer-events: none !important; +} +.monaco-sash.debug { + background: cyan; +} +.monaco-sash.debug.disabled { + background: rgba(0, 255, 255, 0.2); +} +.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle { + background: red; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/splitview/splitview.css */ +.monaco-split-view2 { + position: relative; + width: 100%; + height: 100%; +} +.monaco-split-view2 > .sash-container { + position: absolute; + width: 100%; + height: 100%; + pointer-events: none; +} +.monaco-split-view2 > .sash-container > .monaco-sash { + pointer-events: initial; +} +.monaco-split-view2 > .monaco-scrollable-element { + width: 100%; + height: 100%; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container { + width: 100%; + height: 100%; + white-space: nowrap; + position: relative; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view { + white-space: initial; + position: absolute; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) { + display: none; +} +.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view { + width: 100%; +} +.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view { + height: 100%; +} +.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + content: " "; + position: absolute; + top: 0; + left: 0; + z-index: 5; + pointer-events: none; + background-color: var(--separator-border); +} +.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + height: 100%; + width: 1px; +} +.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + height: 1px; + width: 100%; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/table/table.css */ +.monaco-table { + display: flex; + flex-direction: column; + position: relative; + height: 100%; + width: 100%; + white-space: nowrap; + overflow: hidden; +} +.monaco-table > .monaco-split-view2 { + border-bottom: 1px solid transparent; +} +.monaco-table > .monaco-list { + flex: 1; +} +.monaco-table-tr { + display: flex; + height: 100%; +} +.monaco-table-th { + width: 100%; + height: 100%; + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; +} +.monaco-table-th, +.monaco-table-td { + box-sizing: border-box; + flex-shrink: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + content: ""; + position: absolute; + left: calc(var(--vscode-sash-size) / 2); + width: 0; + border-left: 1px solid transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, +.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + transition: border-color 0.2s ease-out; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/toggle/toggle.css */ +.monaco-custom-toggle { + margin-left: 2px; + float: left; + cursor: pointer; + overflow: hidden; + width: 20px; + height: 20px; + border-radius: 3px; + border: 1px solid transparent; + padding: 1px; + box-sizing: border-box; + user-select: none; + -webkit-user-select: none; +} +.monaco-custom-toggle:hover { + background-color: var(--vscode-inputOption-hoverBackground); +} +.hc-black .monaco-custom-toggle:hover, +.hc-light .monaco-custom-toggle:hover { + border: 1px dashed var(--vscode-focusBorder); +} +.hc-black .monaco-custom-toggle, +.hc-light .monaco-custom-toggle { + background: none; +} +.hc-black .monaco-custom-toggle:hover, +.hc-light .monaco-custom-toggle:hover { + background: none; +} +.monaco-custom-toggle.monaco-checkbox { + height: 18px; + width: 18px; + border: 1px solid transparent; + border-radius: 3px; + margin-right: 9px; + margin-left: 0px; + padding: 0px; + opacity: 1; + background-size: 16px !important; +} +.monaco-custom-toggle.monaco-checkbox:not(.checked)::before { + visibility: hidden; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.css */ +.monaco-inputbox { + position: relative; + display: block; + padding: 0; + box-sizing: border-box; + border-radius: 2px; + font-size: inherit; +} +.monaco-inputbox > .ibwrapper > .input, +.monaco-inputbox > .ibwrapper > .mirror { + padding: 4px 6px; +} +.monaco-inputbox > .ibwrapper { + position: relative; + width: 100%; + height: 100%; +} +.monaco-inputbox > .ibwrapper > .input { + display: inline-block; + box-sizing: border-box; + width: 100%; + height: 100%; + line-height: inherit; + border: none; + font-family: inherit; + font-size: inherit; + resize: none; + color: inherit; +} +.monaco-inputbox > .ibwrapper > input { + text-overflow: ellipsis; +} +.monaco-inputbox > .ibwrapper > textarea.input { + display: block; + scrollbar-width: none; + outline: none; +} +.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar { + display: none; +} +.monaco-inputbox > .ibwrapper > textarea.input.empty { + white-space: nowrap; +} +.monaco-inputbox > .ibwrapper > .mirror { + position: absolute; + display: inline-block; + width: 100%; + top: 0; + left: 0; + box-sizing: border-box; + white-space: pre-wrap; + visibility: hidden; + word-wrap: break-word; +} +.monaco-inputbox-container { + text-align: right; +} +.monaco-inputbox-container .monaco-inputbox-message { + display: inline-block; + overflow: hidden; + text-align: left; + width: 100%; + box-sizing: border-box; + padding: 0.4em; + font-size: 12px; + line-height: 17px; + margin-top: -1px; + word-wrap: break-word; +} +.monaco-inputbox .monaco-action-bar { + position: absolute; + right: 2px; + top: 4px; +} +.monaco-inputbox .monaco-action-bar .action-item { + margin-left: 2px; +} +.monaco-inputbox .monaco-action-bar .action-item .codicon { + background-repeat: no-repeat; + width: 16px; + height: 16px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.css */ +.monaco-findInput { + position: relative; +} +.monaco-findInput .monaco-inputbox { + font-size: 13px; + width: 100%; +} +.monaco-findInput > .controls { + position: absolute; + top: 3px; + right: 2px; +} +.vs .monaco-findInput.disabled { + background-color: #E1E1E1; +} +.vs-dark .monaco-findInput.disabled { + background-color: #333; +} +.monaco-findInput.highlight-0 .controls, +.hc-light .monaco-findInput.highlight-0 .controls { + animation: monaco-findInput-highlight-0 100ms linear 0s; +} +.monaco-findInput.highlight-1 .controls, +.hc-light .monaco-findInput.highlight-1 .controls { + animation: monaco-findInput-highlight-1 100ms linear 0s; +} +.hc-black .monaco-findInput.highlight-0 .controls, +.vs-dark .monaco-findInput.highlight-0 .controls { + animation: monaco-findInput-highlight-dark-0 100ms linear 0s; +} +.hc-black .monaco-findInput.highlight-1 .controls, +.vs-dark .monaco-findInput.highlight-1 .controls { + animation: monaco-findInput-highlight-dark-1 100ms linear 0s; +} +@keyframes monaco-findInput-highlight-0 { + 0% { + background: rgba(253, 255, 0, 0.8); + } + 100% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-1 { + 0% { + background: rgba(253, 255, 0, 0.8); + } + 99% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-dark-0 { + 0% { + background: rgba(255, 255, 255, 0.44); + } + 100% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-dark-1 { + 0% { + background: rgba(255, 255, 255, 0.44); + } + 99% { + background: transparent; + } +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/tree/media/tree.css */ +.monaco-tl-row { + display: flex; + height: 100%; + align-items: center; + position: relative; +} +.monaco-tl-row.disabled { + cursor: default; +} +.monaco-tl-indent { + height: 100%; + position: absolute; + top: 0; + left: 16px; + pointer-events: none; +} +.hide-arrows .monaco-tl-indent { + left: 12px; +} +.monaco-tl-indent > .indent-guide { + display: inline-block; + box-sizing: border-box; + height: 100%; + border-left: 1px solid transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-tl-indent > .indent-guide { + transition: border-color 0.1s linear; +} +.monaco-tl-twistie, +.monaco-tl-contents { + height: 100%; +} +.monaco-tl-twistie { + font-size: 10px; + text-align: right; + padding-right: 6px; + flex-shrink: 0; + width: 16px; + display: flex !important; + align-items: center; + justify-content: center; + transform: translateX(3px); +} +.monaco-tl-contents { + flex: 1; + overflow: hidden; +} +.monaco-tl-twistie::before { + border-radius: 20px; +} +.monaco-tl-twistie.collapsed::before { + transform: rotate(-90deg); +} +.monaco-tl-twistie.codicon-tree-item-loading::before { + animation: codicon-spin 1.25s steps(30) infinite; +} +.monaco-tree-type-filter { + position: absolute; + top: 0; + display: flex; + padding: 3px; + max-width: 200px; + z-index: 100; + margin: 0 6px; + border: 1px solid var(--vscode-widget-border); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} +.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter { + transition: top 0.3s; +} +.monaco-tree-type-filter.disabled { + top: -40px !important; +} +.monaco-tree-type-filter-grab { + display: flex !important; + align-items: center; + justify-content: center; + cursor: grab; + margin-right: 2px; +} +.monaco-tree-type-filter-grab.grabbing { + cursor: grabbing; +} +.monaco-tree-type-filter-input { + flex: 1; +} +.monaco-tree-type-filter-input .monaco-inputbox { + height: 23px; +} +.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .input, +.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .mirror { + padding: 2px 4px; +} +.monaco-tree-type-filter-input .monaco-findInput > .controls { + top: 2px; +} +.monaco-tree-type-filter-actionbar { + margin-left: 4px; +} +.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label { + padding: 2px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.css */ +.monaco-text-button { + box-sizing: border-box; + display: flex; + width: 100%; + padding: 4px; + border-radius: 2px; + text-align: center; + cursor: pointer; + justify-content: center; + align-items: center; + border: 1px solid var(--vscode-button-border, transparent); + line-height: 18px; +} +.monaco-text-button:focus { + outline-offset: 2px !important; +} +.monaco-text-button:hover { + text-decoration: none !important; +} +.monaco-button.disabled:focus, +.monaco-button.disabled { + opacity: 0.4 !important; + cursor: default; +} +.monaco-text-button .codicon { + margin: 0 0.2em; + color: inherit !important; +} +.monaco-text-button.monaco-text-button-with-short-label { + flex-direction: row; + flex-wrap: wrap; + padding: 0 4px; + overflow: hidden; + height: 28px; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label { + flex-basis: 100%; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short { + flex-grow: 1; + width: 0; + overflow: hidden; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label, +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short { + display: flex; + justify-content: center; + align-items: center; + font-weight: normal; + font-style: inherit; + padding: 4px 0; +} +.monaco-button-dropdown { + display: flex; + cursor: pointer; +} +.monaco-button-dropdown.disabled { + cursor: default; +} +.monaco-button-dropdown > .monaco-button:focus { + outline-offset: -1px !important; +} +.monaco-button-dropdown.disabled > .monaco-button.disabled, +.monaco-button-dropdown.disabled > .monaco-button.disabled:focus, +.monaco-button-dropdown.disabled > .monaco-button-dropdown-separator { + opacity: 0.4 !important; +} +.monaco-button-dropdown > .monaco-button.monaco-text-button { + border-right-width: 0 !important; +} +.monaco-button-dropdown .monaco-button-dropdown-separator { + padding: 4px 0; + cursor: default; +} +.monaco-button-dropdown .monaco-button-dropdown-separator > div { + height: 100%; + width: 1px; +} +.monaco-button-dropdown > .monaco-button.monaco-dropdown-button { + border: 1px solid var(--vscode-button-border, transparent); + border-left-width: 0 !important; + border-radius: 0 2px 2px 0; +} +.monaco-button-dropdown > .monaco-button.monaco-text-button { + border-radius: 2px 0 0 2px; +} +.monaco-description-button { + display: flex; + flex-direction: column; + align-items: center; + margin: 4px 5px; +} +.monaco-description-button .monaco-button-description { + font-style: italic; + font-size: 11px; + padding: 4px 20px; +} +.monaco-description-button .monaco-button-label, +.monaco-description-button .monaco-button-description { + display: flex; + justify-content: center; + align-items: center; +} +.monaco-description-button .monaco-button-label > .codicon, +.monaco-description-button .monaco-button-description > .codicon { + margin: 0 0.2em; + color: inherit !important; +} +.monaco-button.default-colors, +.monaco-button-dropdown.default-colors > .monaco-button { + color: var(--vscode-button-foreground); + background-color: var(--vscode-button-background); +} +.monaco-button.default-colors:hover, +.monaco-button-dropdown.default-colors > .monaco-button:hover { + background-color: var(--vscode-button-hoverBackground); +} +.monaco-button.default-colors.secondary, +.monaco-button-dropdown.default-colors > .monaco-button.secondary { + color: var(--vscode-button-secondaryForeground); + background-color: var(--vscode-button-secondaryBackground); +} +.monaco-button.default-colors.secondary:hover, +.monaco-button-dropdown.default-colors > .monaco-button.secondary:hover { + background-color: var(--vscode-button-secondaryHoverBackground); +} +.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator { + background-color: var(--vscode-button-background); + border-top: 1px solid var(--vscode-button-border); + border-bottom: 1px solid var(--vscode-button-border); +} +.monaco-button-dropdown.default-colors .monaco-button.secondary + .monaco-button-dropdown-separator { + background-color: var(--vscode-button-secondaryBackground); +} +.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator > div { + background-color: var(--vscode-button-separator); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.css */ +.monaco-count-badge { + padding: 3px 6px; + border-radius: 11px; + font-size: 11px; + min-width: 18px; + min-height: 18px; + line-height: 11px; + font-weight: normal; + text-align: center; + display: inline-block; + box-sizing: border-box; +} +.monaco-count-badge.long { + padding: 2px 3px; + border-radius: 2px; + min-height: auto; + line-height: normal; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/progressbar/progressbar.css */ +.monaco-progress-container { + width: 100%; + height: 5px; + overflow: hidden; +} +.monaco-progress-container .progress-bit { + width: 2%; + height: 5px; + position: absolute; + left: 0; + display: none; +} +.monaco-progress-container.active .progress-bit { + display: inherit; +} +.monaco-progress-container.discrete .progress-bit { + left: 0; + transition: width 100ms linear; +} +.monaco-progress-container.discrete.done .progress-bit { + width: 100%; +} +.monaco-progress-container.infinite .progress-bit { + animation-name: progress; + animation-duration: 4s; + animation-iteration-count: infinite; + transform: translate3d(0px, 0px, 0px); + animation-timing-function: linear; +} +.monaco-progress-container.infinite.infinite-long-running .progress-bit { + animation-timing-function: steps(100); +} +@keyframes progress { + from { + transform: translateX(0%) scaleX(1); + } + 50% { + transform: translateX(2500%) scaleX(3); + } + to { + transform: translateX(4900%) scaleX(1); + } +} + +/* node_modules/monaco-editor/esm/vs/platform/quickinput/browser/media/quickInput.css */ +.quick-input-widget { + position: absolute; + width: 600px; + z-index: 2550; + left: 50%; + margin-left: -300px; + -webkit-app-region: no-drag; + border-radius: 6px; +} +.quick-input-titlebar { + display: flex; + align-items: center; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.quick-input-left-action-bar { + display: flex; + margin-left: 4px; + flex: 1; +} +.quick-input-title { + padding: 3px 0px; + text-align: center; + text-overflow: ellipsis; + overflow: hidden; +} +.quick-input-right-action-bar { + display: flex; + margin-right: 4px; + flex: 1; +} +.quick-input-right-action-bar > .actions-container { + justify-content: flex-end; +} +.quick-input-titlebar .monaco-action-bar .action-label.codicon { + background-position: center; + background-repeat: no-repeat; + padding: 2px; +} +.quick-input-description { + margin: 6px 6px 6px 11px; +} +.quick-input-header .quick-input-description { + margin: 4px 2px; + flex: 1; +} +.quick-input-header { + display: flex; + padding: 8px 6px 6px 6px; +} +.quick-input-widget.hidden-input .quick-input-header { + padding: 0; + margin-bottom: 0; +} +.quick-input-and-message { + display: flex; + flex-direction: column; + flex-grow: 1; + min-width: 0; + position: relative; +} +.quick-input-check-all { + align-self: center; + margin: 0; +} +.quick-input-filter { + flex-grow: 1; + display: flex; + position: relative; +} +.quick-input-box { + flex-grow: 1; +} +.quick-input-widget.show-checkboxes .quick-input-box, +.quick-input-widget.show-checkboxes .quick-input-message { + margin-left: 5px; +} +.quick-input-visible-count { + position: absolute; + left: -10000px; +} +.quick-input-count { + align-self: center; + position: absolute; + right: 4px; + display: flex; + align-items: center; +} +.quick-input-count .monaco-count-badge { + vertical-align: middle; + padding: 2px 4px; + border-radius: 2px; + min-height: auto; + line-height: normal; +} +.quick-input-action { + margin-left: 6px; +} +.quick-input-action .monaco-text-button { + font-size: 11px; + padding: 0 6px; + display: flex; + height: 25px; + align-items: center; +} +.quick-input-message { + margin-top: -1px; + padding: 5px; + overflow-wrap: break-word; +} +.quick-input-message > .codicon { + margin: 0 0.2em; + vertical-align: text-bottom; +} +.quick-input-message a { + color: inherit; +} +.quick-input-progress.monaco-progress-container { + position: relative; +} +.quick-input-progress.monaco-progress-container, +.quick-input-progress.monaco-progress-container .progress-bit { + height: 2px; +} +.quick-input-list { + line-height: 22px; +} +.quick-input-widget.hidden-input .quick-input-list { + margin-top: 4px; + padding-bottom: 4px; +} +.quick-input-list .monaco-list { + overflow: hidden; + max-height: calc(20 * 22px); + padding-bottom: 5px; +} +.quick-input-list .monaco-scrollable-element { + padding: 0px 5px; +} +.quick-input-list .quick-input-list-entry { + box-sizing: border-box; + overflow: hidden; + display: flex; + height: 100%; + padding: 0 6px; +} +.quick-input-list .quick-input-list-entry.quick-input-list-separator-border { + border-top-width: 1px; + border-top-style: solid; +} +.quick-input-list .monaco-list-row { + border-radius: 3px; +} +.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border { + border-top-style: none; +} +.quick-input-list .quick-input-list-label { + overflow: hidden; + display: flex; + height: 100%; + flex: 1; +} +.quick-input-list .quick-input-list-checkbox { + align-self: center; + margin: 0; +} +.quick-input-list .quick-input-list-icon { + background-size: 16px; + background-position: left center; + background-repeat: no-repeat; + padding-right: 6px; + width: 16px; + height: 22px; + display: flex; + align-items: center; + justify-content: center; +} +.quick-input-list .quick-input-list-rows { + overflow: hidden; + text-overflow: ellipsis; + display: flex; + flex-direction: column; + height: 100%; + flex: 1; + margin-left: 5px; +} +.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows { + margin-left: 10px; +} +.quick-input-widget .quick-input-list .quick-input-list-checkbox { + display: none; +} +.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox { + display: inline; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row { + display: flex; + align-items: center; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label, +.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container { + flex: 1; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*=codicon-] { + vertical-align: text-bottom; +} +.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span { + opacity: 1; +} +.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding { + margin-right: 8px; +} +.quick-input-list .quick-input-list-label-meta { + opacity: 0.7; + line-height: normal; + text-overflow: ellipsis; + overflow: hidden; +} +.quick-input-list .monaco-highlighted-label .highlight { + font-weight: bold; +} +.quick-input-list .quick-input-list-entry .quick-input-list-separator { + margin-right: 4px; +} +.quick-input-list .quick-input-list-entry-action-bar { + display: flex; + flex: 0; + overflow: visible; +} +.quick-input-list .quick-input-list-entry-action-bar .action-label { + display: none; +} +.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon { + margin-right: 4px; + padding: 0px 2px 2px 2px; +} +.quick-input-list .quick-input-list-entry-action-bar { + margin-top: 1px; +} +.quick-input-list .quick-input-list-entry-action-bar { + margin-right: 4px; +} +.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible, +.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label, +.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label { + display: flex; +} +.quick-input-list .monaco-list-row.focused .monaco-keybinding-key, +.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator { + color: inherit; +} +.quick-input-list .monaco-list-row.focused .monaco-keybinding-key { + background: none; +} +.quick-input-list .quick-input-list-separator-as-item { + font-weight: 600; + font-size: 12px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconlabel.css */ +.monaco-icon-label { + display: flex; + overflow: hidden; + text-overflow: ellipsis; +} +.monaco-icon-label::before { + background-size: 16px; + background-position: left center; + background-repeat: no-repeat; + padding-right: 6px; + width: 16px; + height: 22px; + line-height: inherit !important; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; + flex-shrink: 0; +} +.monaco-icon-label-container.disabled { + color: var(--vscode-disabledForeground); +} +.monaco-icon-label > .monaco-icon-label-container { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name { + color: inherit; + white-space: pre; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator { + margin: 0 2px; + opacity: 0.5; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + opacity: .7; + margin-left: 0.5em; + font-size: 0.9em; + white-space: pre; +} +.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + white-space: nowrap; +} +.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + opacity: .95; +} +.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name, +.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + font-style: italic; +} +.monaco-icon-label.deprecated { + text-decoration: line-through; + opacity: 0.66; +} +.monaco-icon-label.italic::after { + font-style: italic; +} +.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name, +.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + text-decoration: line-through; +} +.monaco-icon-label::after { + opacity: 0.75; + font-size: 90%; + font-weight: 600; + margin: auto 16px 0 5px; + text-align: center; +} +.monaco-list:focus .selected .monaco-icon-label, +.monaco-list:focus .selected .monaco-icon-label::after { + color: inherit !important; +} +.monaco-list-row.focused.selected .label-description, +.monaco-list-row.selected .label-description { + opacity: .8; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css */ +.monaco-keybinding { + display: flex; + align-items: center; + line-height: 10px; +} +.monaco-keybinding > .monaco-keybinding-key { + display: inline-block; + border-style: solid; + border-width: 1px; + border-radius: 3px; + vertical-align: middle; + font-size: 11px; + padding: 3px 5px; + margin: 0 2px; +} +.monaco-keybinding > .monaco-keybinding-key:first-child { + margin-left: 0; +} +.monaco-keybinding > .monaco-keybinding-key:last-child { + margin-right: 0; +} +.monaco-keybinding > .monaco-keybinding-key-separator { + display: inline-block; +} +.monaco-keybinding > .monaco-keybinding-key-chord-separator { + width: 6px; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/style.css */ +.monaco-editor .diff-hidden-lines-widget { + width: 100%; +} +.monaco-editor .diff-hidden-lines { + height: 0px; + transform: translate(0px, -10px); + font-size: 13px; + line-height: 14px; +} +.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover, +.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover, +.monaco-editor .diff-hidden-lines .top.dragging, +.monaco-editor .diff-hidden-lines .bottom.dragging { + background-color: var(--vscode-focusBorder); +} +.monaco-editor .diff-hidden-lines .top, +.monaco-editor .diff-hidden-lines .bottom { + transition: background-color 0.1s ease-out; + height: 4px; + background-color: transparent; + background-clip: padding-box; + border-bottom: 2px solid transparent; + border-top: 4px solid transparent; + cursor: ns-resize; +} +.monaco-editor .diff-hidden-lines .top { + transform: translate(0px, 4px); +} +.monaco-editor .diff-hidden-lines .bottom { + transform: translate(0px, -6px); +} +.monaco-editor .diff-unchanged-lines { + background: var(--vscode-diffEditor-unchangedCodeBackground); +} +.monaco-editor .noModificationsOverlay { + z-index: 1; + background: var(--vscode-editor-background); + display: flex; + justify-content: center; + align-items: center; +} +.monaco-editor .diff-hidden-lines .center { + background: var(--vscode-diffEditor-unchangedRegionBackground); + color: var(--vscode-diffEditor-unchangedRegionForeground); + overflow: hidden; + display: block; + text-overflow: ellipsis; + white-space: nowrap; + height: 24px; +} +.monaco-editor .diff-hidden-lines .center span.codicon { + vertical-align: middle; +} +.monaco-editor .diff-hidden-lines .center a:hover .codicon { + cursor: pointer; + color: var(--vscode-editorLink-activeForeground) !important; +} +.monaco-editor .diff-hidden-lines div.breadcrumb-item { + cursor: pointer; +} +.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover { + color: var(--vscode-editorLink-activeForeground); +} +.monaco-editor .movedOriginal { + border: 2px solid var(--vscode-diffEditor-move-border); +} +.monaco-editor .movedModified { + border: 2px solid var(--vscode-diffEditor-move-border); +} +.monaco-editor .movedOriginal.currentMove, +.monaco-editor .movedModified.currentMove { + border: 2px solid var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines path.currentMove { + stroke: var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines path { + pointer-events: visiblestroke; +} +.monaco-diff-editor .moved-blocks-lines .arrow { + fill: var(--vscode-diffEditor-move-border); +} +.monaco-diff-editor .moved-blocks-lines .arrow.currentMove { + fill: var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines .arrow-rectangle { + fill: var(--vscode-editor-background); +} +.monaco-diff-editor .moved-blocks-lines { + position: absolute; + pointer-events: none; +} +.monaco-diff-editor .moved-blocks-lines path { + fill: none; + stroke: var(--vscode-diffEditor-move-border); + stroke-width: 2; +} +.monaco-editor .char-delete.diff-range-empty { + margin-left: -1px; + border-left: solid var(--vscode-diffEditor-removedTextBackground) 3px; +} +.monaco-editor .char-insert.diff-range-empty { + border-left: solid var(--vscode-diffEditor-insertedTextBackground) 3px; +} +.monaco-editor .fold-unchanged { + cursor: pointer; +} +.monaco-diff-editor .diff-moved-code-block { + display: flex; + justify-content: flex-end; + margin-top: -4px; +} +.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon { + width: 12px; + height: 12px; + font-size: 12px; +} +.monaco-diff-editor .diffOverview { + z-index: 9; +} +.monaco-diff-editor .diffOverview .diffViewport { + z-index: 10; +} +.monaco-diff-editor.vs .diffOverview { + background: rgba(0, 0, 0, 0.03); +} +.monaco-diff-editor.vs-dark .diffOverview { + background: rgba(255, 255, 255, 0.01); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar { + background: rgba(0, 0, 0, 0); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar { + background: rgba(0, 0, 0, 0); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar { + background: none; +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar { + background: none; +} +.monaco-scrollable-element.modified-in-monaco-diff-editor .slider { + z-index: 10; +} +.modified-in-monaco-diff-editor .slider.active { + background: rgba(171, 171, 171, .4); +} +.modified-in-monaco-diff-editor.hc-black .slider.active { + background: none; +} +.modified-in-monaco-diff-editor.hc-light .slider.active { + background: none; +} +.monaco-editor .insert-sign, +.monaco-diff-editor .insert-sign, +.monaco-editor .delete-sign, +.monaco-diff-editor .delete-sign { + font-size: 11px !important; + opacity: 0.7 !important; + display: flex !important; + align-items: center; +} +.monaco-editor.hc-black .insert-sign, +.monaco-diff-editor.hc-black .insert-sign, +.monaco-editor.hc-black .delete-sign, +.monaco-diff-editor.hc-black .delete-sign, +.monaco-editor.hc-light .insert-sign, +.monaco-diff-editor.hc-light .insert-sign, +.monaco-editor.hc-light .delete-sign, +.monaco-diff-editor.hc-light .delete-sign { + opacity: 1; +} +.monaco-editor .inline-deleted-margin-view-zone { + text-align: right; +} +.monaco-editor .inline-added-margin-view-zone { + text-align: right; +} +.monaco-editor .arrow-revert-change { + z-index: 10; + position: absolute; +} +.monaco-editor .arrow-revert-change:hover { + cursor: pointer; +} +.monaco-editor .view-zones .view-lines .view-line span { + display: inline-block; +} +.monaco-editor .margin-view-zones .lightbulb-glyph:hover { + cursor: pointer; +} +.monaco-editor .char-insert, +.monaco-diff-editor .char-insert { + background-color: var(--vscode-diffEditor-insertedTextBackground); +} +.monaco-editor .line-insert, +.monaco-diff-editor .line-insert { + background-color: var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground)); +} +.monaco-editor .line-insert, +.monaco-editor .char-insert { + box-sizing: border-box; + border: 1px solid var(--vscode-diffEditor-insertedTextBorder); +} +.monaco-editor.hc-black .line-insert, +.monaco-editor.hc-light .line-insert, +.monaco-editor.hc-black .char-insert, +.monaco-editor.hc-light .char-insert { + border-style: dashed; +} +.monaco-editor .line-delete, +.monaco-editor .char-delete { + box-sizing: border-box; + border: 1px solid var(--vscode-diffEditor-removedTextBorder); +} +.monaco-editor.hc-black .line-delete, +.monaco-editor.hc-light .line-delete, +.monaco-editor.hc-black .char-delete, +.monaco-editor.hc-light .char-delete { + border-style: dashed; +} +.monaco-editor .inline-added-margin-view-zone, +.monaco-editor .gutter-insert, +.monaco-diff-editor .gutter-insert { + background-color: var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground)); +} +.monaco-editor .char-delete, +.monaco-diff-editor .char-delete { + background-color: var(--vscode-diffEditor-removedTextBackground); +} +.monaco-editor .line-delete, +.monaco-diff-editor .line-delete { + background-color: var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground)); +} +.monaco-editor .inline-deleted-margin-view-zone, +.monaco-editor .gutter-delete, +.monaco-diff-editor .gutter-delete { + background-color: var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground)); +} +.monaco-diff-editor.side-by-side .editor.modified { + box-shadow: -6px 0 5px -5px var(--vscode-scrollbar-shadow); + border-left: 1px solid var(--vscode-diffEditor-border); +} +.monaco-diff-editor .diffViewport { + background: var(--vscode-scrollbarSlider-background); +} +.monaco-diff-editor .diffViewport:hover { + background: var(--vscode-scrollbarSlider-hoverBackground); +} +.monaco-diff-editor .diffViewport:active { + background: var(--vscode-scrollbarSlider-activeBackground); +} +.monaco-editor .diagonal-fill { + background-image: linear-gradient(-45deg, var(--vscode-diffEditor-diagonalFill) 12.5%, #0000 12.5%, #0000 50%, var(--vscode-diffEditor-diagonalFill) 50%, var(--vscode-diffEditor-diagonalFill) 62.5%, #0000 62.5%, #0000 100%); + background-size: 8px 8px; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/accessibleDiffViewer.css */ +.monaco-diff-editor .diff-review-line-number { + text-align: right; + display: inline-block; + color: var(--vscode-editorLineNumber-foreground); +} +.monaco-diff-editor .diff-review { + position: absolute; + user-select: none; + -webkit-user-select: none; + z-index: 99; +} +.monaco-diff-editor .diff-review-summary { + padding-left: 10px; +} +.monaco-diff-editor .diff-review-shadow { + position: absolute; + box-shadow: var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset; +} +.monaco-diff-editor .diff-review-row { + white-space: pre; +} +.monaco-diff-editor .diff-review-table { + display: table; + min-width: 100%; +} +.monaco-diff-editor .diff-review-row { + display: table-row; + width: 100%; +} +.monaco-diff-editor .diff-review-spacer { + display: inline-block; + width: 10px; + vertical-align: middle; +} +.monaco-diff-editor .diff-review-spacer > .codicon { + font-size: 9px !important; +} +.monaco-diff-editor .diff-review-actions { + display: inline-block; + position: absolute; + right: 10px; + top: 2px; + z-index: 100; +} +.monaco-diff-editor .diff-review-actions .action-label { + width: 16px; + height: 16px; + margin: 2px 0; +} +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NvbXBvbmVudHMvQXBwL2luZGV4Lmxlc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9zdGFuZGFsb25lL2Jyb3dzZXIvc3RhbmRhbG9uZS10b2tlbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvYXJpYS9hcmlhLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvd2lkZ2V0L21lZGlhL2VkaXRvci5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9zY3JvbGxiYXIvbWVkaWEvc2Nyb2xsYmFycy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL2NvbnRyb2xsZXIvdGV4dEFyZWFIYW5kbGVyLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL2xpbmVOdW1iZXJzL2xpbmVOdW1iZXJzLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21hcmdpbi9tYXJnaW4uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvbW91c2VDdXJzb3IvbW91c2VDdXJzb3IuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvY3VycmVudExpbmVIaWdobGlnaHQvY3VycmVudExpbmVIaWdobGlnaHQuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvZGVjb3JhdGlvbnMvZGVjb3JhdGlvbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvaW5kZW50R3VpZGVzL2luZGVudEd1aWRlcy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9saW5lcy92aWV3TGluZXMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvbGluZXNEZWNvcmF0aW9ucy9saW5lc0RlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL2dseXBoTWFyZ2luL2dseXBoTWFyZ2luLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21hcmdpbkRlY29yYXRpb25zL21hcmdpbkRlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21pbmltYXAvbWluaW1hcC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9vdmVybGF5V2lkZ2V0cy9vdmVybGF5V2lkZ2V0cy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9ydWxlcnMvcnVsZXJzLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL3Njcm9sbERlY29yYXRpb24vc2Nyb2xsRGVjb3JhdGlvbi5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9zZWxlY3Rpb25zL3NlbGVjdGlvbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvdmlld0N1cnNvcnMvdmlld0N1cnNvcnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvYmxvY2tEZWNvcmF0aW9ucy9ibG9ja0RlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL3doaXRlc3BhY2Uvd2hpdGVzcGFjZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9jb250ZXh0dmlldy9jb250ZXh0dmlldy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9saXN0L2xpc3QuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvc2VsZWN0Qm94L3NlbGVjdEJveEN1c3RvbS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9zZWxlY3RCb3gvc2VsZWN0Qm94LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2FjdGlvbmJhci9hY3Rpb25iYXIuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvZHJvcGRvd24vZHJvcGRvd24uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9wbGF0Zm9ybS9hY3Rpb25zL2Jyb3dzZXIvbWVudUVudHJ5QWN0aW9uVmlld0l0ZW0uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3Ivc3RhbmRhbG9uZS9icm93c2VyL3F1aWNrSW5wdXQvc3RhbmRhbG9uZVF1aWNrSW5wdXQuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvc2FzaC9zYXNoLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL3NwbGl0dmlldy9zcGxpdHZpZXcuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvdGFibGUvdGFibGUuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvdG9nZ2xlL3RvZ2dsZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9pbnB1dGJveC9pbnB1dEJveC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9maW5kaW5wdXQvZmluZElucHV0LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL3RyZWUvbWVkaWEvdHJlZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9idXR0b24vYnV0dG9uLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2NvdW50QmFkZ2UvY291bnRCYWRnZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL3BsYXRmb3JtL3F1aWNraW5wdXQvYnJvd3Nlci9tZWRpYS9xdWlja0lucHV0LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2ljb25MYWJlbC9pY29ubGFiZWwuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkva2V5YmluZGluZ0xhYmVsL2tleWJpbmRpbmdMYWJlbC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3dpZGdldC9kaWZmRWRpdG9yL3N0eWxlLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvd2lkZ2V0L2RpZmZFZGl0b3IvYWNjZXNzaWJsZURpZmZWaWV3ZXIuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIuYXBwLW1haW4ge1xuICBjb2xvcjogcmVkO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qIERlZmF1bHQgc3RhbmRhbG9uZSBlZGl0b3IgZm9udHMgKi9cbi5tb25hY28tZWRpdG9yIHtcblx0Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBXUENcIiwgXCJTZWdvZSBVSVwiLCBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgc3lzdGVtLXVpLCBcIlVidW50dVwiLCBcIkRyb2lkIFNhbnNcIiwgc2Fucy1zZXJpZjtcblx0LS1tb25hY28tbW9ub3NwYWNlLWZvbnQ6IFwiU0YgTW9ub1wiLCBNb25hY28sIE1lbmxvLCBDb25zb2xhcywgXCJVYnVudHUgTW9ub1wiLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG59XG5cbi5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1pdGVtIC5hY3Rpb24tbWVudS1pdGVtOmZvY3VzIC5hY3Rpb24tbGFiZWwge1xuXHRzdHJva2Utd2lkdGg6IDEuMnB4O1xufVxuXG4ubW9uYWNvLWVkaXRvci52cy1kYXJrIC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCxcbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCxcbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCB7XG5cdHN0cm9rZS13aWR0aDogMS4ycHg7XG59XG5cbi5tb25hY28taG92ZXIgcCB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvbW9uYWNvLWVkaXRvci9pc3N1ZXMvMjE2OCNpc3N1ZWNvbW1lbnQtNzgwMDc4NjAwICovXG4ubW9uYWNvLWFyaWEtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHRvcDogMDsgLyogYXZvaWQgYmVpbmcgcGxhY2VkIHVuZGVybmVhdGggYSBzaWJsaW5nIGVsZW1lbnQgKi9cblx0aGVpZ2h0OiAxcHg7XG5cdHdpZHRoOiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuXHRjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG59XG5cbi8qLm1vbmFjby1lZGl0b3IudnMgW3RhYmluZGV4PVwiMFwiXTpmb2N1cyB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDAsIDEyMiwgMjA0LCAwLjQpO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWVkaXRvci52cy1kYXJrIFt0YWJpbmRleD1cIjBcIl06Zm9jdXMge1xuXHRvdXRsaW5lOiAxcHggc29saWQgcmdiYSgxNCwgOTksIDE1NiwgMC42KTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cdG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn0qL1xuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWFyaWEtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlOyAvKiB0cnkgdG8gaGlkZSBmcm9tIHdpbmRvdyBidXQgbm90IGZyb20gc2NyZWVuIHJlYWRlcnMgKi9cblx0bGVmdDotOTk5ZW07XG59IiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBJRTEwIHJlbW92ZSBhdXRvIGNsZWFyIGJ1dHRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG46Oi1tcy1jbGVhciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEFsbCB3aWRnZXRzICovXG4vKiBJIGFtIG5vdCBhIGJpZyBmYW4gb2YgdGhpcyBydWxlICovXG4ubW9uYWNvLWVkaXRvciAuZWRpdG9yLXdpZGdldCBpbnB1dCB7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBFZGl0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vbmFjby1lZGl0b3Ige1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWZvcmVncm91bmQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3ItYmFja2dyb3VuZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAucmFuZ2VIaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXJhbmdlSGlnaGxpZ2h0QmFja2dyb3VuZCk7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1lZGl0b3ItcmFuZ2VIaWdobGlnaHRCb3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLnJhbmdlSGlnaGxpZ2h0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAucmFuZ2VIaWdobGlnaHQge1xuXHRib3JkZXItc3R5bGU6IGRvdHRlZDtcbn1cbi5tb25hY28tZWRpdG9yIC5zeW1ib2xIaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXN5bWJvbEhpZ2hsaWdodEJhY2tncm91bmQpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12c2NvZGUtZWRpdG9yLXN5bWJvbEhpZ2hsaWdodEJvcmRlcik7XG59XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuc3ltYm9sSGlnaGxpZ2h0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAuc3ltYm9sSGlnaGxpZ2h0IHtcblx0Ym9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIE1pc2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vbmFjby1lZGl0b3IgLm92ZXJmbG93LWd1YXJkIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLWVkaXRvciAudmlldy1vdmVybGF5cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4vKlxuLm1vbmFjby1lZGl0b3IgLmF1dG8tY2xvc2VkLWNoYXJhY3RlciB7XG5cdG9wYWNpdHk6IDAuMztcbn1cbiovXG5cblxuLm1vbmFjby1lZGl0b3IgLnNxdWlnZ2x5LWVycm9yIHtcblx0Ym9yZGVyLWJvdHRvbTogNHB4IGRvdWJsZSB2YXIoLS12c2NvZGUtZWRpdG9yRXJyb3ItYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS1lcnJvcjo6YmVmb3JlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9yRXJyb3ItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAuc3F1aWdnbHktd2FybmluZyB7XG5cdGJvcmRlci1ib3R0b206IDRweCBkb3VibGUgdmFyKC0tdnNjb2RlLWVkaXRvcldhcm5pbmctYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS13YXJuaW5nOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y29udGVudDogJyc7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1lZGl0b3JXYXJuaW5nLWJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLnNxdWlnZ2x5LWluZm8ge1xuXHRib3JkZXItYm90dG9tOiA0cHggZG91YmxlIHZhcigtLXZzY29kZS1lZGl0b3JJbmZvLWJvcmRlcik7XG59XG4ubW9uYWNvLWVkaXRvciAuc3F1aWdnbHktaW5mbzo6YmVmb3JlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9ySW5mby1iYWNrZ3JvdW5kKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS1oaW50IHtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCB2YXIoLS12c2NvZGUtZWRpdG9ySGludC1ib3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3Iuc2hvd1VudXNlZCAuc3F1aWdnbHktdW5uZWNlc3Nhcnkge1xuXHRib3JkZXItYm90dG9tOiAycHggZGFzaGVkIHZhcigtLXZzY29kZS1lZGl0b3JVbm5lY2Vzc2FyeUNvZGUtYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yLnNob3dEZXByZWNhdGVkIC5zcXVpZ2dseS1pbmxpbmUtZGVwcmVjYXRlZCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuXHR0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItZm9yZWdyb3VuZCwgaW5oZXJpdCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEFycm93cyAqL1xuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2Nyb2xsYmFyID4gLnNjcmEge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC52aXNpYmxlIHtcblx0b3BhY2l0eTogMTtcblxuXHQvKiBCYWNrZ3JvdW5kIHJ1bGUgYWRkZWQgZm9yIElFOSAtIHRvIGFsbG93IGNsaWNrcyBvbiBkb20gbm9kZSAqL1xuXHRiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7XG5cblx0dHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBsaW5lYXI7XG5cdC8qIEluIGZyb250IG9mIHBlZWsgdmlldyAqL1xuXHR6LWluZGV4OiAxMTtcbn1cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLmludmlzaWJsZSB7XG5cdG9wYWNpdHk6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuaW52aXNpYmxlLmZhZGUge1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDgwMG1zIGxpbmVhcjtcbn1cblxuLyogU2Nyb2xsYWJsZSBDb250ZW50IEluc2V0IFNoYWRvdyAqL1xuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2hhZG93LnRvcCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDNweDtcblx0aGVpZ2h0OiAzcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgMCA2cHggNnB4IC02cHggaW5zZXQ7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cubGVmdCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3A6IDNweDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogM3B4O1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgNnB4IDAgNnB4IC02cHggaW5zZXQ7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cudG9wLWxlZnQtY29ybmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAzcHg7XG5cdHdpZHRoOiAzcHg7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cudG9wLmxlZnQge1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgNnB4IDAgNnB4IC02cHggaW5zZXQ7XG59XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNjcm9sbGJhciA+IC5zbGlkZXIge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyU2xpZGVyLWJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zY3JvbGxiYXIgPiAuc2xpZGVyOmhvdmVyIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLXNjcm9sbGJhclNsaWRlci1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zY3JvbGxiYXIgPiAuc2xpZGVyLmFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYWN0aXZlQmFja2dyb3VuZCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC5pbnB1dGFyZWEge1xuXHRtaW4td2lkdGg6IDA7XG5cdG1pbi1oZWlnaHQ6IDA7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdHJlc2l6ZTogbm9uZTtcblx0Ym9yZGVyOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR6LWluZGV4OiAtMTA7XG59XG4vKi5tb25hY28tZWRpdG9yIC5pbnB1dGFyZWEge1xuXHRwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcblx0d2lkdGg6IDgwMHB4ICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogNTAwcHggIWltcG9ydGFudDtcblx0dG9wOiBpbml0aWFsICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcblx0Ym90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRsaW5lLWhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcblx0ei1pbmRleDogMTAgIWltcG9ydGFudDtcbn0qL1xuLm1vbmFjby1lZGl0b3IgLmlucHV0YXJlYS5pbWUtaW5wdXQge1xuXHR6LWluZGV4OiAxMDtcblx0Y2FyZXQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JDdXJzb3ItZm9yZWdyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWZvcmVncm91bmQpO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAubWFyZ2luLXZpZXctb3ZlcmxheXMgLmxpbmUtbnVtYmVycyB7XG5cdGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tZWRpdG9yIC5yZWxhdGl2ZS1jdXJyZW50LWxpbmUtbnVtYmVyIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbi12aWV3LW92ZXJsYXlzIC5saW5lLW51bWJlcnMubGgtb2RkIHtcblx0bWFyZ2luLXRvcDogMXB4O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1udW1iZXJzIHtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JMaW5lTnVtYmVyLWZvcmVncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1udW1iZXJzLmFjdGl2ZS1saW5lLW51bWJlciB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluZU51bWJlci1hY3RpdmVGb3JlZ3JvdW5kKTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbiB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JHdXR0ZXItYmFja2dyb3VuZCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tbW91c2UtY3Vyc29yLXRleHQge1xuXHRjdXJzb3I6IHRleHQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC52aWV3LW92ZXJsYXlzIC5jdXJyZW50LWxpbmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY3VycmVudC1saW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubWFyZ2luLXZpZXctb3ZlcmxheXMgLmN1cnJlbnQtbGluZS5jdXJyZW50LWxpbmUtbWFyZ2luLmN1cnJlbnQtbGluZS1tYXJnaW4tYm90aCB7XG5cdGJvcmRlci1yaWdodDogMDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y2RyID0gY29yZSBkZWNvcmF0aW9ucyByZW5kZXJpbmcgKGRpdilcbiovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtY29udGVudCAuY2RyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufSIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmxpbmVzLWNvbnRlbnQgLmNvcmUtZ3VpZGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFVuY29tbWVudCB0byBzZWUgbGluZXMgZmxhc2hpbmcgd2hlbiB0aGV5J3JlIHBhaW50ZWQgKi9cbi8qLm1vbmFjby1lZGl0b3IgLnZpZXctbGluZXMgPiAudmlldy1saW5lIHtcblx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcblx0YW5pbWF0aW9uLW5hbWU6IGZsYXNoLWJhY2tncm91bmQ7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogODAwbXM7XG59XG5Aa2V5ZnJhbWVzIGZsYXNoLWJhY2tncm91bmQge1xuXHQwJSAgIHsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsgfVxuXHQxMDAlIHsgYmFja2dyb3VuZC1jb2xvcjogbm9uZSB9XG59Ki9cblxuLm10a2NvbnRyb2wge1xuXHRjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHJnYigxNTAsIDAsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5tdGtvdmVyZmxvdyB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1idXR0b24tYmFja2dyb3VuZCwgdmFyKC0tdnNjb2RlLWVkaXRvci1iYWNrZ3JvdW5kKSk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLWZvcmVncm91bmQsIHZhcigtLXZzY29kZS1lZGl0b3ItZm9yZWdyb3VuZCkpO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS12c2NvZGUtY29udHJhc3RCb3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdHBhZGRpbmc6IDRweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuLm10a292ZXJmbG93OmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvci5uby11c2VyLXNlbGVjdCAubGluZXMtY29udGVudCxcbi5tb25hY28tZWRpdG9yLm5vLXVzZXItc2VsZWN0IC52aWV3LWxpbmUsXG4ubW9uYWNvLWVkaXRvci5uby11c2VyLXNlbGVjdCAudmlldy1saW5lcyB7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xufVxuLyogVXNlIHVzZXItc2VsZWN0OiB0ZXh0IGZvciBsb29rdXAgZmVhdHVyZSBvbiBtYWNPUyAqL1xuLyogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC92c2NvZGUvaXNzdWVzLzg1NjMyICovXG4ubW9uYWNvLWVkaXRvci5tYWMgLmxpbmVzLWNvbnRlbnQ6aG92ZXIsXG4ubW9uYWNvLWVkaXRvci5tYWMgLnZpZXctbGluZTpob3Zlcixcbi5tb25hY28tZWRpdG9yLm1hYyAudmlldy1saW5lczpob3ZlciB7XG5cdHVzZXItc2VsZWN0OiB0ZXh0O1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xuXHQtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XG59XG5cbi5tb25hY28tZWRpdG9yLmVuYWJsZS11c2VyLXNlbGVjdCB7XG5cdHVzZXItc2VsZWN0OiBpbml0aWFsO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBpbml0aWFsO1xufVxuXG4ubW9uYWNvLWVkaXRvciAudmlldy1saW5lcyB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tb25hY28tZWRpdG9yIC52aWV3LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubXRrdyB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yV2hpdGVzcGFjZS1mb3JlZ3JvdW5kKSAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubXRreiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JXaGl0ZXNwYWNlLWZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRPRE9AdG9rZW5pemF0aW9uIGJvb3RzdHJhcCBmaXggKi9cbi8qLm1vbmFjby1lZGl0b3IgLnZpZXctbGluZSA+IHNwYW4gPiBzcGFuIHtcblx0ZmxvYXQ6IG5vbmU7XG5cdG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG5cdG1hcmdpbi1sZWZ0OiBpbmhlcml0O1xufSovXG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtZGVjb3JhdGlvbnMge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0YmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi8qXG5cdEtlZXBpbmcgbmFtZSBzaG9ydCBmb3IgZmFzdGVyIHBhcnNpbmcuXG5cdGNsZHIgPSBjb3JlIGxpbmVzIGRlY29yYXRpb25zIHJlbmRlcmluZyAoZGl2KVxuKi9cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY2xkciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aGVpZ2h0OiAxMDAlO1xufSIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmdseXBoLW1hcmdpbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4vKlxuXHRLZWVwaW5nIG5hbWUgc2hvcnQgZm9yIGZhc3RlciBwYXJzaW5nLlxuXHRjZ21yID0gY29yZSBnbHlwaCBtYXJnaW4gcmVuZGVyaW5nIChkaXYpXG4qL1xuLm1vbmFjby1lZGl0b3IgLmdseXBoLW1hcmdpbi13aWRnZXRzIC5jZ21yIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLypcblx0RW5zdXJlIHNwaW5uaW5nIGljb25zIGFyZSBwaXhlbC1wZXJmZWN0bHkgY2VudGVyZWQgYW5kIGF2b2lkIHdvYmJsZS5cblx0VGhpcyBpcyBvbmx5IGFwcGxpZWQgdG8gaWNvbnMgdGhhdCBzcGluIHRvIGF2b2lkIHVubmVjZXNzYXJ5XG5cdEdQVSBsYXllcnMgYW5kIGJsdXJyeSBzdWJwaXhlbCBBQS5cbiovXG4ubW9uYWNvLWVkaXRvciAuZ2x5cGgtbWFyZ2luLXdpZGdldHMgLmNnbXIuY29kaWNvbi1tb2RpZmllci1zcGluOjpiZWZvcmUgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y21kciA9IGNvcmUgbWFyZ2luIGRlY29yYXRpb25zIHJlbmRlcmluZyAoZGl2KVxuKi9cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY21kciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFNUQVJUIGNvdmVyIHRoZSBjYXNlIHRoYXQgc2xpZGVyIGlzIHZpc2libGUgb24gbW91c2VvdmVyICovXG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC5zbGlkZXItbW91c2VvdmVyIC5taW5pbWFwLXNsaWRlciB7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgbGluZWFyO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAuc2xpZGVyLW1vdXNlb3Zlcjpob3ZlciAubWluaW1hcC1zbGlkZXIge1xuXHRvcGFjaXR5OiAxO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAuc2xpZGVyLW1vdXNlb3ZlciAubWluaW1hcC1zbGlkZXIuYWN0aXZlIHtcblx0b3BhY2l0eTogMTtcbn1cbi8qIEVORCBjb3ZlciB0aGUgY2FzZSB0aGF0IHNsaWRlciBpcyB2aXNpYmxlIG9uIG1vdXNlb3ZlciAqL1xuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2xpZGVyIC5taW5pbWFwLXNsaWRlci1ob3Jpem9udGFsIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLW1pbmltYXBTbGlkZXItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC1zbGlkZXI6aG92ZXIgLm1pbmltYXAtc2xpZGVyLWhvcml6b250YWwge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtbWluaW1hcFNsaWRlci1ob3ZlckJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2xpZGVyLmFjdGl2ZSAubWluaW1hcC1zbGlkZXItaG9yaXpvbnRhbCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1taW5pbWFwU2xpZGVyLWFjdGl2ZUJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2hhZG93LXZpc2libGUge1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgLTZweCAwIDZweCAtNnB4IGluc2V0O1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2hhZG93LWhpZGRlbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDA7XG59XG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC1zaGFkb3ctdmlzaWJsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTZweDtcblx0d2lkdGg6IDZweDtcbn1cbi5tb25hY28tZWRpdG9yLm5vLW1pbmltYXAtc2hhZG93IC5taW5pbWFwLXNoYWRvdy12aXNpYmxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiAwLjVzIGZhZGUgaW4vb3V0IGZvciB0aGUgbWluaW1hcCAqL1xuLm1pbmltYXAuYXV0b2hpZGUge1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG59XG4ubWluaW1hcC5hdXRvaGlkZTpob3ZlciB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5tb25hY28tZWRpdG9yIC5taW5pbWFwIHtcblx0ei1pbmRleDogNTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5tb25hY28tZWRpdG9yIC5vdmVybGF5V2lkZ2V0cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OjA7XG59IiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAudmlldy1ydWxlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3gtc2hhZG93OiAxcHggMCAwIDAgdmFyKC0tdnNjb2RlLWVkaXRvclJ1bGVyLWZvcmVncm91bmQpIGluc2V0O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAuc2Nyb2xsLWRlY29yYXRpb24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiA2cHg7XG5cdGJveC1zaGFkb3c6IHZhcigtLXZzY29kZS1zY3JvbGxiYXItc2hhZG93KSAwIDZweCA2cHggLTZweCBpbnNldDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y3NsciA9IGNvcmUgc2VsZWN0aW9ucyBsYXllciByZW5kZXJpbmcgKGRpdilcbiovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtY29udGVudCAuY3NsciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmZvY3VzZWQgLnNlbGVjdGVkLXRleHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXNlbGVjdGlvbkJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuc2VsZWN0ZWQtdGV4dCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3JcdFx0XHQudG9wLWxlZnQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyB9XG4ubW9uYWNvLWVkaXRvclx0XHRcdC5ib3R0b20tbGVmdC1yYWRpdXNcdFx0eyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cbi5tb25hY28tZWRpdG9yXHRcdFx0LnRvcC1yaWdodC1yYWRpdXNcdFx0eyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyB9XG4ubW9uYWNvLWVkaXRvclx0XHRcdC5ib3R0b20tcmlnaHQtcmFkaXVzXHR7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IH1cblxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLnRvcC1sZWZ0LXJhZGl1c1x0XHR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5ib3R0b20tbGVmdC1yYWRpdXNcdFx0eyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAudG9wLXJpZ2h0LXJhZGl1c1x0XHR7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuYm90dG9tLXJpZ2h0LXJhZGl1c1x0eyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxuXG4ubW9uYWNvLWVkaXRvci5oYy1saWdodCAudG9wLWxlZnQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmJvdHRvbS1sZWZ0LXJhZGl1c1x0XHR7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC50b3AtcmlnaHQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5ib3R0b20tcmlnaHQtcmFkaXVzXHR7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllciA+IC5jdXJzb3Ige1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIC0tIHNtb290aC1jYXJldC1hbmltYXRpb24gLS0gKi9cbi5tb25hY28tZWRpdG9yIC5jdXJzb3JzLWxheWVyLmN1cnNvci1zbW9vdGgtY2FyZXQtYW5pbWF0aW9uID4gLmN1cnNvciB7XG5cdHRyYW5zaXRpb246IGFsbCA4MG1zO1xufVxuXG4vKiAtLSBibG9jay1vdXRsaW5lLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItYmxvY2stb3V0bGluZS1zdHlsZSA+IC5jdXJzb3Ige1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLyogLS0gdW5kZXJsaW5lLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItdW5kZXJsaW5lLXN0eWxlID4gLmN1cnNvciB7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tIHVuZGVybGluZS10aGluLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItdW5kZXJsaW5lLXRoaW4tc3R5bGUgPiAuY3Vyc29yIHtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuXHRib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBtb25hY28tY3Vyc29yLXNtb290aCB7XG5cdDAlLFxuXHQyMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NjAlLFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgbW9uYWNvLWN1cnNvci1waGFzZSB7XG5cdDAlLFxuXHQyMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0OTAlLFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgbW9uYWNvLWN1cnNvci1leHBhbmQge1xuXHQwJSxcblx0MjAlIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlWSgxKTtcblx0fVxuXHQ4MCUsXG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogc2NhbGVZKDApO1xuXHR9XG59XG5cbi5jdXJzb3Itc21vb3RoIHtcblx0YW5pbWF0aW9uOiBtb25hY28tY3Vyc29yLXNtb290aCAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cblxuLmN1cnNvci1waGFzZSB7XG5cdGFuaW1hdGlvbjogbW9uYWNvLWN1cnNvci1waGFzZSAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cblxuLmN1cnNvci1leHBhbmQgPiAuY3Vyc29yIHtcblx0YW5pbWF0aW9uOiBtb25hY28tY3Vyc29yLWV4cGFuZCAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmJsb2NrRGVjb3JhdGlvbnMtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuYmxvY2tEZWNvcmF0aW9ucy1ibG9jayB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLm13aCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JXaGl0ZXNwYWNlLWZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jb250ZXh0LXZpZXcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jb250ZXh0LXZpZXcuZml4ZWQge1xuXHRhbGw6IGluaXRpYWw7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IDEzcHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Y29sb3I6IGluaGVyaXQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tbGlzdCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1vbmFjby1saXN0Lm1vdXNlLXN1cHBvcnQge1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1vbmFjby1saXN0ID4gLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tbGlzdC1yb3dzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLWxpc3QuaG9yaXpvbnRhbC1zY3JvbGxpbmcgLm1vbmFjby1saXN0LXJvd3Mge1xuXHR3aWR0aDogYXV0bztcblx0bWluLXdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLWxpc3Qtcm93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1saXN0Lm1vdXNlLXN1cHBvcnQgLm1vbmFjby1saXN0LXJvdyB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vKiBmb3IgT1MgWCBiYWxsaXN0aWMgc2Nyb2xsaW5nICovXG4ubW9uYWNvLWxpc3Qtcm93LnNjcm9sbGluZyB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogRm9jdXMgKi9cbi5tb25hY28tbGlzdC5lbGVtZW50LWZvY3VzZWQsXG4ubW9uYWNvLWxpc3Quc2VsZWN0aW9uLXNpbmdsZSxcbi5tb25hY28tbGlzdC5zZWxlY3Rpb24tbXVsdGlwbGUge1xuXHRvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIERuZCAqL1xuLm1vbmFjby1kcmFnLWltYWdlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAxcHggN3B4O1xuXHRib3JkZXItcmFkaXVzOiAxMHB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTAwMDtcbn1cblxuLyogRmlsdGVyICovXG5cbi5tb25hY28tbGlzdC10eXBlLWZpbHRlci1tZXNzYWdlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHBhZGRpbmc6IDQwcHggMWVtIDFlbSAxZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0b3BhY2l0eTogMC43O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1vbmFjby1saXN0LXR5cGUtZmlsdGVyLW1lc3NhZ2U6ZW1wdHkge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBVc2UgY3VzdG9tIENTUyB2YXJzIHRvIGV4cG9zZSBwYWRkaW5nIGludG8gcGFyZW50IHNlbGVjdCBmb3IgcGFkZGluZyBjYWxjdWxhdGlvbiAqL1xuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLXBhZGRpbmcge1xuXHQtLWRyb3Bkb3duLXBhZGRpbmctdG9wOiAxcHg7XG5cdC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b206IDFweDtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1wYWRkaW5nLFxuLmhjLWxpZ2h0IC5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1wYWRkaW5nIHtcblx0LS1kcm9wZG93bi1wYWRkaW5nLXRvcDogM3B4O1xuXHQtLWRyb3Bkb3duLXBhZGRpbmctYm90dG9tOiA0cHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRldGFpbHMtcGFuZSA+IC5zZWxlY3QtYm94LWRlc2NyaXB0aW9uLW1hcmtkb3duICoge1xuXHRtYXJnaW46IDA7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUgPiAuc2VsZWN0LWJveC1kZXNjcmlwdGlvbi1tYXJrZG93biBhOmZvY3VzIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUgPiAuc2VsZWN0LWJveC1kZXNjcmlwdGlvbi1tYXJrZG93biBjb2RlIHtcblx0bGluZS1oZWlnaHQ6IDE1cHg7IC8qKiBGb3Igc29tZSByZWFzb24sIHRoaXMgaXMgbmVlZGVkLCBvdGhlcndpc2UgPGNvZGU+IHdpbGwgdGFrZSB1cCAyMHB4IGhlaWdodCAqL1xuXHRmb250LWZhbWlseTogdmFyKC0tbW9uYWNvLW1vbm9zcGFjZS1mb250KTtcbn1cblxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLnZpc2libGUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aWR0aDogMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciB7XG5cdGZsZXg6IDAgMCBhdXRvO1xuXHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tZHJvcGRvd24tcGFkZGluZy10b3ApO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b20pO1xuXHRwYWRkaW5nLWxlZnQ6IDFweDtcblx0cGFkZGluZy1yaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym94LXNpemluZzpcdGJvcmRlci1ib3g7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUge1xuXHRwYWRkaW5nOiA1cHg7XG59XG5cbi5oYy1ibGFjayAubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tbGlzdC1jb250YWluZXIge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tZHJvcGRvd24tcGFkZGluZy10b3ApO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b20pO1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tbGlzdC1jb250YWluZXIgLm1vbmFjby1saXN0IC5tb25hY28tbGlzdC1yb3cge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciAubW9uYWNvLWxpc3QgLm1vbmFjby1saXN0LXJvdyA+IC5vcHRpb24tdGV4dCB7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nLWxlZnQ6IDMuNXB4O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWxpc3QtY29udGFpbmVyIC5tb25hY28tbGlzdCAubW9uYWNvLWxpc3Qtcm93ID4gLm9wdGlvbi1kZXRhaWwge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZy1sZWZ0OiAzLjVweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG9wYWNpdHk6IDAuNztcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWxpc3QtY29udGFpbmVyIC5tb25hY28tbGlzdCAubW9uYWNvLWxpc3Qtcm93ID4gLm9wdGlvbi1kZWNvcmF0b3ItcmlnaHQge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZy1yaWdodDogMTBweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG5cbi8qIEFjY2VwdGVkIENTUyBoaWRpbmcgdGVjaG5pcXVlIGZvciBhY2Nlc3NpYmlsaXR5IHJlYWRlciB0ZXh0ICAqL1xuLyogaHR0cHM6Ly93ZWJhaW0ub3JnL3RlY2huaXF1ZXMvY3NzL2ludmlzaWJsZWNvbnRlbnQvICovXG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciAubW9uYWNvLWxpc3QgLm1vbmFjby1saXN0LXJvdyA+IC52aXN1YWxseS1oaWRkZW4ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAtMTAwMDBweDtcblx0XHR0b3A6IGF1dG87XG5cdFx0d2lkdGg6IDFweDtcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLXdpZHRoLWNvbnRyb2wge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblx0b3BhY2l0eTogMDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lci13aWR0aC1jb250cm9sID4gLndpZHRoLWNvbnRyb2wtZGl2IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWF4LWhlaWdodDogMHB4O1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLXdpZHRoLWNvbnRyb2wgPiAud2lkdGgtY29udHJvbC1kaXYgPiAub3B0aW9uLXRleHQtd2lkdGgtY29udHJvbCB7XG5cdHBhZGRpbmctbGVmdDogNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tc2VsZWN0LWJveCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKiBBY3Rpb25zICovXG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uc2VsZWN0LWNvbnRhaW5lciB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAubW9uYWNvLXNlbGVjdC1ib3gge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG1pbi13aWR0aDogMTAwcHg7XG5cdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdHBhZGRpbmc6IDJweCAyM3B4IDJweCA4cHg7XG59XG5cbi5tYWMgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAubW9uYWNvLXNlbGVjdC1ib3gge1xuXHRmb250LXNpemU6IDExcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbnMtY29udGFpbmVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHBhZGRpbmc6IDA7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhci52ZXJ0aWNhbCAuYWN0aW9ucy1jb250YWluZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlOyAgLyogRE8gTk9UIFJFTU9WRSAtIHRoaXMgaXMgdGhlIGtleSB0byBwcmV2ZW50aW5nIHRoZSBnaG9zdGluZyBpY29uIGJ1ZyBpbiBDaHJvbWUgNDIgKi9cbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuaWNvbixcbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0gLmNvZGljb24ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuY29kaWNvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0ZGlzcGxheTogZmxleDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRwYWRkaW5nOiAzcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCAuYWN0aW9uLWxhYmVsLFxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCAuYWN0aW9uLWxhYmVsOjpiZWZvcmUsXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbi1pdGVtLmRpc2FibGVkIC5hY3Rpb24tbGFiZWw6aG92ZXIge1xuXHRvcGFjaXR5OiAwLjY7XG59XG5cbi8qIFZlcnRpY2FsIGFjdGlvbnMgKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyLnZlcnRpY2FsIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyLnZlcnRpY2FsIC5hY3Rpb24taXRlbSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1sYWJlbC5zZXBhcmF0b3Ige1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG5cdHBhZGRpbmctdG9wOiAxcHg7XG5cdG1hcmdpbi1sZWZ0OiAuOGVtO1xuXHRtYXJnaW4tcmlnaHQ6IC44ZW07XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0gLmFjdGlvbi1sYWJlbC5zZXBhcmF0b3Ige1xuXHR3aWR0aDogMXB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdG1hcmdpbjogNXB4IDRweCAhaW1wb3J0YW50O1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdG1pbi13aWR0aDogMXB4O1xuXHRwYWRkaW5nOiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xufVxuXG4uc2Vjb25kYXJ5LWFjdGlvbnMgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwge1xuXHRtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4vKiBBY3Rpb24gSXRlbXMgKi9cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uc2VsZWN0LWNvbnRhaW5lciB7XG5cdG92ZXJmbG93OiBoaWRkZW47IC8qIHNvbWVob3cgdGhlIGRyb3Bkb3duIG92ZXJmbG93cyBpdHMgY29udGFpbmVyLCB3ZSBwcmV2ZW50IGl0IGhlcmUgdG8gbm90IHB1c2ggKi9cblx0ZmxleDogMTtcblx0bWF4LXdpZHRoOiAxNzBweDtcblx0bWluLXdpZHRoOiA2MHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbi1pdGVtLmFjdGlvbi1kcm9wZG93bi1pdGVtIHtcblx0ZGlzcGxheTogZmxleDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5hY3Rpb24tZHJvcGRvd24taXRlbSA+IC5hY3Rpb24tZHJvcGRvd24taXRlbS1zZXBhcmF0b3Ige1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uYWN0aW9uLWRyb3Bkb3duLWl0ZW0gPiAuYWN0aW9uLWRyb3Bkb3duLWl0ZW0tc2VwYXJhdG9yID4gZGl2IHtcblx0d2lkdGg6IDFweDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1kcm9wZG93biB7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMDtcbn1cblxuLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCA+IC5hY3Rpb24tbGFiZWwuZGlzYWJsZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1wcmltYXJ5IHtcblx0ZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1wcmltYXJ5ID4gLmFjdGlvbi1jb250YWluZXIgPiAuYWN0aW9uLWxhYmVsIHtcblx0bWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtcHJpbWFyeSA+IC5kcm9wZG93bi1hY3Rpb24tY29udGFpbmVyID4gLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCAuY29kaWNvbltjbGFzcyo9J2NvZGljb24tJ10ge1xuXHRmb250LXNpemU6IDEycHg7XG5cdHBhZGRpbmctbGVmdDogMHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHg7XG5cdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXHRtYXJnaW4tbGVmdDogLTNweDtcbn1cblxuLm1vbmFjby1kcm9wZG93bi13aXRoLXByaW1hcnkgPiAuZHJvcGRvd24tYWN0aW9uLWNvbnRhaW5lciA+IC5tb25hY28tZHJvcGRvd24gPiAuZHJvcGRvd24tbGFiZWwgPiAuYWN0aW9uLWxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGJhY2tncm91bmQtc2l6ZTogMTZweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5tZW51LWVudHJ5IC5hY3Rpb24tbGFiZWwuaWNvbiB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCB7XG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCA+IC5hY3Rpb24tY29udGFpbmVyID4gLmFjdGlvbi1sYWJlbCB7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1vbmFjby1kcm9wZG93bi13aXRoLWRlZmF1bHQgPiAuYWN0aW9uLWNvbnRhaW5lci5tZW51LWVudHJ5ID4gLmFjdGlvbi1sYWJlbC5pY29uIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDE2cHg7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1kZWZhdWx0ID4gLmRyb3Bkb3duLWFjdGlvbi1jb250YWluZXIgPiAubW9uYWNvLWRyb3Bkb3duID4gLmRyb3Bkb3duLWxhYmVsIC5jb2RpY29uW2NsYXNzKj0nY29kaWNvbi0nXSB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDBweDtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdG1hcmdpbi1sZWZ0OiAtM3B4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCA+IC5kcm9wZG93bi1hY3Rpb24tY29udGFpbmVyID4gLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCA+IC5hY3Rpb24tbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucXVpY2staW5wdXQtd2lkZ2V0IHtcblx0Zm9udC1zaXplOiAxM3B4O1xufVxuXG4ucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCxcbi5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICMwMDY2QkY7XG59XG5cbi52cyAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsIC5oaWdobGlnaHQsXG4udnMgLnF1aWNrLWlucHV0LXdpZGdldCAubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICM5RERERkY7XG59XG5cbi52cy1kYXJrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0LFxuLnZzLWRhcmsgLnF1aWNrLWlucHV0LXdpZGdldCAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsIC5oaWdobGlnaHQge1xuXHRjb2xvcjogIzAwOTdmYjtcbn1cblxuLmhjLWJsYWNrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0LFxuLmhjLWJsYWNrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICNGMzg1MTg7XG59XG5cbi5oYy1saWdodCAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCxcbi5oYy1saWdodCAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCB7XG5cdGNvbG9yOiAjMEY0QTg1O1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5IHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjEsIDIyMSwgMjIxLCAwLjQpO1xuXHRib3JkZXI6IHNvbGlkIDFweCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNCk7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMTg3LCAxODcsIDE4NywgMC40KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgxODcsIDE4NywgMTg3LCAwLjQpO1xuXHRjb2xvcjogIzU1NTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBzb2xpZCAxcHggcmdiKDExMSwgMTk1LCAyMjMpO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLmhjLWxpZ2h0IC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBzb2xpZCAxcHggIzBGNEE4NTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6ICMyOTI5Mjk7XG59XG5cbi52cy1kYXJrIC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTcpO1xuXHRib3JkZXI6IHNvbGlkIDFweCByZ2JhKDUxLCA1MSwgNTEsIDAuNik7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoNjgsIDY4LCA2OCwgMC42KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSg2OCwgNjgsIDY4LCAwLjYpO1xuXHRjb2xvcjogI2NjYztcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuOnJvb3Qge1xuXHQtLXZzY29kZS1zYXNoLXNpemU6IDRweDtcblx0LS12c2NvZGUtc2FzaC1ob3Zlci1zaXplOiA0cHg7XG59XG5cbi5tb25hY28tc2FzaCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMzU7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLm1vbmFjby1zYXNoLmRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb25hY28tc2FzaC5tYWMudmVydGljYWwge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC52ZXJ0aWNhbC5taW5pbXVtIHtcblx0Y3Vyc29yOiBlLXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLnZlcnRpY2FsLm1heGltdW0ge1xuXHRjdXJzb3I6IHctcmVzaXplO1xufVxuXG4ubW9uYWNvLXNhc2gubWFjLmhvcml6b250YWwge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm1pbmltdW0ge1xuXHRjdXJzb3I6IHMtcmVzaXplO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbC5tYXhpbXVtIHtcblx0Y3Vyc29yOiBuLXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLmRpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tc2FzaC52ZXJ0aWNhbCB7XG5cdGN1cnNvcjogZXctcmVzaXplO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiB2YXIoLS12c2NvZGUtc2FzaC1zaXplKTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbCB7XG5cdGN1cnNvcjogbnMtcmVzaXplO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiB2YXIoLS12c2NvZGUtc2FzaC1zaXplKTtcbn1cblxuLm1vbmFjby1zYXNoOm5vdCguZGlzYWJsZWQpID4gLm9ydGhvZ29uYWwtZHJhZy1oYW5kbGUge1xuXHRjb250ZW50OiBcIiBcIjtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogMik7XG5cdHdpZHRoOiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogMik7XG5cdHotaW5kZXg6IDEwMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGN1cnNvcjogYWxsLXNjcm9sbDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbC5vcnRob2dvbmFsLWVkZ2Utbm9ydGg6bm90KC5kaXNhYmxlZClcblx0PiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5zdGFydCxcbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1zb3V0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCB7XG5cdGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1ub3J0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCxcbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1zb3V0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLnN0YXJ0IHtcblx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLnZlcnRpY2FsID4gLm9ydGhvZ29uYWwtZHJhZy1oYW5kbGUuc3RhcnQge1xuXHRsZWZ0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTAuNSk7XG5cdHRvcDogY2FsYyh2YXIoLS12c2NvZGUtc2FzaC1zaXplKSAqIC0xKTtcbn1cbi5tb25hY28tc2FzaC52ZXJ0aWNhbCA+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCB7XG5cdGxlZnQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMC41KTtcblx0Ym90dG9tOiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTEpO1xufVxuLm1vbmFjby1zYXNoLmhvcml6b250YWwgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5zdGFydCB7XG5cdHRvcDogY2FsYyh2YXIoLS12c2NvZGUtc2FzaC1zaXplKSAqIC0wLjUpO1xuXHRsZWZ0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTEpO1xufVxuLm1vbmFjby1zYXNoLmhvcml6b250YWwgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5lbmQge1xuXHR0b3A6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMC41KTtcblx0cmlnaHQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMSk7XG59XG5cbi5tb25hY28tc2FzaDpiZWZvcmUge1xuXHRjb250ZW50OiAnJztcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby1zYXNoOmJlZm9yZSB7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dDtcbn1cblxuLm1vbmFjby1zYXNoLmhvdmVyOmJlZm9yZSxcbi5tb25hY28tc2FzaC5hY3RpdmU6YmVmb3JlIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLXNhc2gtaG92ZXJCb3JkZXIpO1xufVxuXG4ubW9uYWNvLXNhc2gudmVydGljYWw6YmVmb3JlIHtcblx0d2lkdGg6IHZhcigtLXZzY29kZS1zYXNoLWhvdmVyLXNpemUpO1xuXHRsZWZ0OiBjYWxjKDUwJSAtICh2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKSAvIDIpKTtcbn1cblxuLm1vbmFjby1zYXNoLmhvcml6b250YWw6YmVmb3JlIHtcblx0aGVpZ2h0OiB2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKTtcblx0dG9wOiBjYWxjKDUwJSAtICh2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKSAvIDIpKTtcbn1cblxuLnBvaW50ZXItZXZlbnRzLWRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIERlYnVnICoqL1xuXG4ubW9uYWNvLXNhc2guZGVidWcge1xuXHRiYWNrZ3JvdW5kOiBjeWFuO1xufVxuXG4ubW9uYWNvLXNhc2guZGVidWcuZGlzYWJsZWQge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4ubW9uYWNvLXNhc2guZGVidWc6bm90KC5kaXNhYmxlZCkgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZSB7XG5cdGJhY2tncm91bmQ6IHJlZDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1zcGxpdC12aWV3MiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5zYXNoLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb25hY28tc3BsaXQtdmlldzIgPiAuc2FzaC1jb250YWluZXIgPiAubW9uYWNvLXNhc2gge1xuXHRwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50IHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyID4gLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc3BsaXQtdmlldy1jb250YWluZXIgPiAuc3BsaXQtdmlldy12aWV3IHtcblx0d2hpdGUtc3BhY2U6IGluaXRpYWw7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoLnZpc2libGUpIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3Mi52ZXJ0aWNhbCA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldyB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLmhvcml6b250YWwgPiAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zcGxpdC12aWV3LWNvbnRhaW5lciA+IC5zcGxpdC12aWV3LXZpZXcge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tc3BsaXQtdmlldzIuc2VwYXJhdG9yLWJvcmRlciA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcblx0Y29udGVudDogJyAnO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogNTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlcGFyYXRvci1ib3JkZXIpO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLnNlcGFyYXRvci1ib3JkZXIuaG9yaXpvbnRhbCA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLnNlcGFyYXRvci1ib3JkZXIudmVydGljYWwgPiAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zcGxpdC12aWV3LWNvbnRhaW5lciA+IC5zcGxpdC12aWV3LXZpZXc6bm90KDpmaXJzdC1jaGlsZCk6OmJlZm9yZSB7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby10YWJsZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28tdGFibGUgPiAubW9uYWNvLWxpc3Qge1xuXHRmbGV4OiAxO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRyIHtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRoIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRoLFxuLm1vbmFjby10YWJsZS10ZCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGZsZXgtc2hyaW5rOiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIgLm1vbmFjby1zYXNoLnZlcnRpY2FsOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgLyAyKTtcblx0d2lkdGg6IDA7XG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIsXG4ubW9uYWNvLXdvcmtiZW5jaDpub3QoLnJlZHVjZS1tb3Rpb24pIC5tb25hY28tdGFibGUgPiAubW9uYWNvLXNwbGl0LXZpZXcyIC5tb25hY28tc2FzaC52ZXJ0aWNhbDo6YmVmb3JlIHtcblx0dHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1vdXQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tY3VzdG9tLXRvZ2dsZSB7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG5cdGZsb2F0OiBsZWZ0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdHBhZGRpbmc6IDFweDtcblx0Ym94LXNpemluZzpcdGJvcmRlci1ib3g7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubW9uYWNvLWN1c3RvbS10b2dnbGU6aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtaW5wdXRPcHRpb24taG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tY3VzdG9tLXRvZ2dsZTpob3Zlcixcbi5oYy1saWdodCAubW9uYWNvLWN1c3RvbS10b2dnbGU6aG92ZXIge1xuXHRib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tdnNjb2RlLWZvY3VzQm9yZGVyKTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tY3VzdG9tLXRvZ2dsZSxcbi5oYy1saWdodCAubW9uYWNvLWN1c3RvbS10b2dnbGUge1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uaGMtYmxhY2sgLm1vbmFjby1jdXN0b20tdG9nZ2xlOmhvdmVyLFxuLmhjLWxpZ2h0IC5tb25hY28tY3VzdG9tLXRvZ2dsZTpob3ZlciB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5tb25hY28tY3VzdG9tLXRvZ2dsZS5tb25hY28tY2hlY2tib3gge1xuXHRoZWlnaHQ6IDE4cHg7XG5cdHdpZHRoOiAxOHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRtYXJnaW4tcmlnaHQ6IDlweDtcblx0bWFyZ2luLWxlZnQ6IDBweDtcblx0cGFkZGluZzogMHB4O1xuXHRvcGFjaXR5OiAxO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggIWltcG9ydGFudDtcbn1cblxuLyogaGlkZSBjaGVjayB3aGVuIHVuY2hlY2tlZCAqL1xuLm1vbmFjby1jdXN0b20tdG9nZ2xlLm1vbmFjby1jaGVja2JveDpub3QoLmNoZWNrZWQpOjpiZWZvcmUge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28taW5wdXRib3gge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXG5cdC8qIEN1c3RvbWl6YWJsZSAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gLmlucHV0LFxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblxuXHQvKiBDdXN0b21pemFibGUgKi9cblx0cGFkZGluZzogNHB4IDZweDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gLmlucHV0IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0cmVzaXplOiBub25lO1xuXHRjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiBpbnB1dCB7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubW9uYWNvLWlucHV0Ym94ID4gLmlid3JhcHBlciA+IHRleHRhcmVhLmlucHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveDogaGlkZSBzY3JvbGxiYXJzICovXG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gdGV4dGFyZWEuaW5wdXQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0ZGlzcGxheTogbm9uZTsgLyogQ2hyb21lICsgU2FmYXJpOiBoaWRlIHNjcm9sbGJhciAqL1xufVxuXG4ubW9uYWNvLWlucHV0Ym94ID4gLmlid3JhcHBlciA+IHRleHRhcmVhLmlucHV0LmVtcHR5IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIENvbnRleHQgdmlldyAqL1xuXG4ubW9uYWNvLWlucHV0Ym94LWNvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubW9uYWNvLWlucHV0Ym94LWNvbnRhaW5lciAubW9uYWNvLWlucHV0Ym94LW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0cGFkZGluZzogMC40ZW07XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE3cHg7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyogQWN0aW9uIGJhciBzdXBwb3J0ICovXG4ubW9uYWNvLWlucHV0Ym94IC5tb25hY28tYWN0aW9uLWJhciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDJweDtcblx0dG9wOiA0cHg7XG59XG5cbi5tb25hY28taW5wdXRib3ggLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSB7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5tb25hY28taW5wdXRib3ggLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuY29kaWNvbiB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAtLS0tLS0tLS0tIEZpbmQgaW5wdXQgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWZpbmRJbnB1dCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vbmFjby1maW5kSW5wdXQgLm1vbmFjby1pbnB1dGJveCB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZmluZElucHV0ID4gLmNvbnRyb2xzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDNweDtcblx0cmlnaHQ6IDJweDtcbn1cblxuLnZzIC5tb25hY28tZmluZElucHV0LmRpc2FibGVkIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI0UxRTFFMTtcbn1cblxuLyogVGhlbWluZyAqL1xuLnZzLWRhcmsgLm1vbmFjby1maW5kSW5wdXQuZGlzYWJsZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuXG4vKiBIaWdobGlnaHRpbmcgKi9cbi5tb25hY28tZmluZElucHV0LmhpZ2hsaWdodC0wIC5jb250cm9scyxcbi5oYy1saWdodCAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMCAuY29udHJvbHMge1xuXHRhbmltYXRpb246IG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTAgMTAwbXMgbGluZWFyIDBzO1xufVxuXG4ubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMSAuY29udHJvbHMsXG4uaGMtbGlnaHQgLm1vbmFjby1maW5kSW5wdXQuaGlnaGxpZ2h0LTEgLmNvbnRyb2xzIHtcblx0YW5pbWF0aW9uOiBtb25hY28tZmluZElucHV0LWhpZ2hsaWdodC0xIDEwMG1zIGxpbmVhciAwcztcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tZmluZElucHV0LmhpZ2hsaWdodC0wIC5jb250cm9scyxcbi52cy1kYXJrICAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMCAuY29udHJvbHMge1xuXHRhbmltYXRpb246IG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LWRhcmstMCAxMDBtcyBsaW5lYXIgMHM7XG59XG5cbi5oYy1ibGFjayAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMSAuY29udHJvbHMsXG4udnMtZGFyayAgLm1vbmFjby1maW5kSW5wdXQuaGlnaGxpZ2h0LTEgLmNvbnRyb2xzIHtcblx0YW5pbWF0aW9uOiBtb25hY28tZmluZElucHV0LWhpZ2hsaWdodC1kYXJrLTEgMTAwbXMgbGluZWFyIDBzO1xufVxuXG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTAge1xuXHQwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjUzLCAyNTUsIDAsIDAuOCk7IH1cblx0MTAwJSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG59XG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTEge1xuXHQwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjUzLCAyNTUsIDAsIDAuOCk7IH1cblx0LyogTWFkZSBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCBzdWNoIHRoYXQgdGhlIENTUyBtaW5pZmllciBkb2VzIG5vdCBjb2xsYXBzZSB0aGUgdHdvIGFuaW1hdGlvbnMgaW50byBhIHNpbmdsZSBvbmUqL1xuXHQ5OSUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LWRhcmstMCB7XG5cdDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ0KTsgfVxuXHQxMDAlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbn1cbkBrZXlmcmFtZXMgbW9uYWNvLWZpbmRJbnB1dC1oaWdobGlnaHQtZGFyay0xIHtcblx0MCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQpOyB9XG5cdC8qIE1hZGUgaW50ZW50aW9uYWxseSBkaWZmZXJlbnQgc3VjaCB0aGF0IHRoZSBDU1MgbWluaWZpZXIgZG9lcyBub3QgY29sbGFwc2UgdGhlIHR3byBhbmltYXRpb25zIGludG8gYSBzaW5nbGUgb25lKi9cblx0OTklIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby10bC1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vbmFjby10bC1yb3cuZGlzYWJsZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubW9uYWNvLXRsLWluZGVudCB7XG5cdGhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDE2cHg7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaGlkZS1hcnJvd3MgLm1vbmFjby10bC1pbmRlbnQge1xuXHRsZWZ0OiAxMnB4O1xufVxuXG4ubW9uYWNvLXRsLWluZGVudCA+IC5pbmRlbnQtZ3VpZGUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1vbmFjby13b3JrYmVuY2g6bm90KC5yZWR1Y2UtbW90aW9uKSAubW9uYWNvLXRsLWluZGVudCA+IC5pbmRlbnQtZ3VpZGUge1xuXHR0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBsaW5lYXI7XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZSxcbi5tb25hY28tdGwtY29udGVudHMge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZSB7XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0ZmxleC1zaHJpbms6IDA7XG5cdHdpZHRoOiAxNnB4O1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcbn1cblxuLm1vbmFjby10bC1jb250ZW50cyB7XG5cdGZsZXg6IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZTo6YmVmb3JlIHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcbn1cblxuLm1vbmFjby10bC10d2lzdGllLmNvbGxhcHNlZDo6YmVmb3JlIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLm1vbmFjby10bC10d2lzdGllLmNvZGljb24tdHJlZS1pdGVtLWxvYWRpbmc6OmJlZm9yZSB7XG5cdC8qIFVzZSBzdGVwcyB0byB0aHJvdHRsZSBGUFMgdG8gcmVkdWNlIENQVSB1c2FnZSAqL1xuXHRhbmltYXRpb246IGNvZGljb24tc3BpbiAxLjI1cyBzdGVwcygzMCkgaW5maW5pdGU7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiAzcHg7XG5cdG1heC13aWR0aDogMjAwcHg7XG5cdHotaW5kZXg6IDEwMDtcblx0bWFyZ2luOiAwIDZweDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLXdpZGdldC1ib3JkZXIpO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyIHtcblx0dHJhbnNpdGlvbjogdG9wIDAuM3M7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci5kaXNhYmxlZCB7XG5cdHRvcDogLTQwcHggIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyLWdyYWIge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRjdXJzb3I6IGdyYWI7XG5cdG1hcmdpbi1yaWdodDogMnB4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItZ3JhYi5ncmFiYmluZyB7XG5cdGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1pbnB1dCB7XG5cdGZsZXg6IDE7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1pbnB1dCAubW9uYWNvLWlucHV0Ym94IHtcblx0aGVpZ2h0OiAyM3B4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItaW5wdXQgLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAuaW5wdXQsXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItaW5wdXQgLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblx0cGFkZGluZzogMnB4IDRweDtcbn1cblxuLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyLWlucHV0IC5tb25hY28tZmluZElucHV0ID4gLmNvbnRyb2xzIHtcblx0dG9wOiAycHg7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1hY3Rpb25iYXIge1xuXHRtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItYWN0aW9uYmFyIC5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0cGFkZGluZzogMnB4O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLXRleHQtYnV0dG9uIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0ZGlzcGxheTogZmxleDtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDRweDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyLCB0cmFuc3BhcmVudCk7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uOmZvY3VzIHtcblx0b3V0bGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uOmhvdmVyIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tYnV0dG9uLmRpc2FibGVkOmZvY3VzLFxuLm1vbmFjby1idXR0b24uZGlzYWJsZWQge1xuXHRvcGFjaXR5OiAwLjQgIWltcG9ydGFudDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uIC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsIHtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRwYWRkaW5nOiAwIDRweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0aGVpZ2h0OiAyOHB4O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwge1xuXHRmbGV4LWJhc2lzOiAxMDAlO1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwtc2hvcnQge1xuXHRmbGV4LWdyb3c6IDE7XG5cdHdpZHRoOiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwsXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwtc2hvcnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogaW5oZXJpdDtcblx0cGFkZGluZzogNHB4IDA7XG59XG5cbi5tb25hY28tYnV0dG9uLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogZmxleDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kaXNhYmxlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbjpmb2N1cyB7XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tYnV0dG9uLWRyb3Bkb3duLmRpc2FibGVkID4gLm1vbmFjby1idXR0b24uZGlzYWJsZWQsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kaXNhYmxlZCA+IC5tb25hY28tYnV0dG9uLmRpc2FibGVkOmZvY3VzLFxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGlzYWJsZWQgPiAubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi1zZXBhcmF0b3Ige1xuXHRvcGFjaXR5OiAwLjQgIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbi5tb25hY28tdGV4dC1idXR0b24ge1xuXHRib3JkZXItcmlnaHQtd2lkdGg6IDAgIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0cGFkZGluZzogNHB4IDA7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yID4gZGl2IHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93biA+IC5tb25hY28tYnV0dG9uLm1vbmFjby1kcm9wZG93bi1idXR0b24ge1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12c2NvZGUtYnV0dG9uLWJvcmRlciwgdHJhbnNwYXJlbnQpO1xuXHRib3JkZXItbGVmdC13aWR0aDogMCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbi5tb25hY28tdGV4dC1idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAycHggMCAwIDJweDtcbn1cblxuLm1vbmFjby1kZXNjcmlwdGlvbi1idXR0b24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW46IDRweCA1cHg7IC8qIGFsbG93cyBidXR0b24gZm9jdXMgb3V0bGluZSB0byBiZSB2aXNpYmxlICovXG59XG5cbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXNpemU6IDExcHg7XG5cdHBhZGRpbmc6IDRweCAyMHB4O1xufVxuXG4ubW9uYWNvLWRlc2NyaXB0aW9uLWJ1dHRvbiAubW9uYWNvLWJ1dHRvbi1sYWJlbCxcbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWRlc2NyaXB0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWxhYmVsID4gLmNvZGljb24sXG4ubW9uYWNvLWRlc2NyaXB0aW9uLWJ1dHRvbiAubW9uYWNvLWJ1dHRvbi1kZXNjcmlwdGlvbiA+IC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4vKiBkZWZhdWx0IGNvbG9yIHN0eWxlcyAtIGJhc2VkIG9uIENTUyB2YXJpYWJsZXMgKi9cblxuLm1vbmFjby1idXR0b24uZGVmYXVsdC1jb2xvcnMsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9ue1xuXHRjb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1mb3JlZ3JvdW5kKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24uZGVmYXVsdC1jb2xvcnM6aG92ZXIsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi5kZWZhdWx0LWNvbG9ycy5zZWNvbmRhcnksXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uLnNlY29uZGFyeSB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLXNlY29uZGFyeUZvcmVncm91bmQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLXNlY29uZGFyeUJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi5kZWZhdWx0LWNvbG9ycy5zZWNvbmRhcnk6aG92ZXIsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1idXR0b24tc2Vjb25kYXJ5SG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24uc2Vjb25kYXJ5ICsgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1zZWNvbmRhcnlCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yID4gZGl2IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1zZXBhcmF0b3IpO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWNvdW50LWJhZGdlIHtcblx0cGFkZGluZzogM3B4IDZweDtcblx0Ym9yZGVyLXJhZGl1czogMTFweDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRtaW4td2lkdGg6IDE4cHg7XG5cdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdGxpbmUtaGVpZ2h0OiAxMXB4O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1vbmFjby1jb3VudC1iYWRnZS5sb25nIHtcblx0cGFkZGluZzogMnB4IDNweDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRtaW4taGVpZ2h0OiBhdXRvO1xuXHRsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLXByb2dyZXNzLWNvbnRhaW5lciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDVweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyoga2VlcCBwcm9ncmVzcyBiaXQgaW4gYm91bmRzICovXG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iaXQge1xuXHR3aWR0aDogMiU7XG5cdGhlaWdodDogNXB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmFjdGl2ZSAucHJvZ3Jlc3MtYml0IHtcblx0ZGlzcGxheTogaW5oZXJpdDtcbn1cblxuLm1vbmFjby1wcm9ncmVzcy1jb250YWluZXIuZGlzY3JldGUgLnByb2dyZXNzLWJpdCB7XG5cdGxlZnQ6IDA7XG5cdHRyYW5zaXRpb246IHdpZHRoIDEwMG1zIGxpbmVhcjtcbn1cblxuLm1vbmFjby1wcm9ncmVzcy1jb250YWluZXIuZGlzY3JldGUuZG9uZSAucHJvZ3Jlc3MtYml0IHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmluZmluaXRlIC5wcm9ncmVzcy1iaXQge1xuXHRhbmltYXRpb24tbmFtZTogcHJvZ3Jlc3M7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNHM7XG5cdGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmluZmluaXRlLmluZmluaXRlLWxvbmctcnVubmluZyAucHJvZ3Jlc3MtYml0IHtcblx0Lypcblx0XHRUaGUgbW9yZSBzbW9vdGggYGxpbmVhcmAgdGltaW5nIGZ1bmN0aW9uIGNhbiBjYXVzZVxuXHRcdGhpZ2hlciBHUFUgY29uc3VtcHRpb24gYXMgaW5kaWNhdGVkIGluXG5cdFx0aHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC92c2NvZGUvaXNzdWVzLzk3OTAwICZcblx0XHRodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9pc3N1ZXMvMTM4Mzk2XG5cdCovXG5cdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDEwMCk7XG59XG5cbi8qKlxuICogVGhlIHByb2dyZXNzIGJpdCBoYXMgYSB3aWR0aDogMiUgKDEvNTApIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLiBUaGUgYW5pbWF0aW9uIG1vdmVzIGl0IGZyb20gMCUgdG8gMTAwJSBvZlxuICogdGhhdCBjb250YWluZXIuIFNpbmNlIHRyYW5zbGF0ZVggaXMgcmVsYXRpdmUgdG8gdGhlIHByb2dyZXNzIGJpdCBzaXplLCB3ZSBoYXZlIHRvIG11bHRpcGxlIGl0IHdpdGhcbiAqIGl0cyByZWxhdGl2ZSBzaXplIHRvIHRoZSBwYXJlbnQgY29udGFpbmVyOlxuICogcGFyZW50IHdpZHRoOiA1MDAwJVxuICogICAgYml0IHdpZHRoOiAxMDAlXG4gKiB0cmFuc2xhdGVYIHNob3VsZCBiZSBhcyBmb2xsb3c6XG4gKiAgNTAlOiA1MDAwJSAqIDUwJSAtIDUwJSAoc2V0IHRvIGNlbnRlcikgPSAyNDUwJVxuICogMTAwJTogNTAwMCUgKiAxMDAlIC0gMTAwJSAoZG8gbm90IG92ZXJmbG93KSA9IDQ5MDAlXG4gKi9cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MgeyBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBzY2FsZVgoMSkgfSA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwMCUpIHNjYWxlWCgzKSB9IHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ5MDAlKSBzY2FsZVgoMSkgfSB9XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5xdWljay1pbnB1dC13aWRnZXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA2MDBweDtcblx0ei1pbmRleDogMjU1MDtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tbGVmdDogLTMwMHB4O1xuXHQtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLnF1aWNrLWlucHV0LXRpdGxlYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4OyAvKiBtYXRjaCBib3JkZXIgcmFkaXVzIG9mIHF1aWNrIGlucHV0IHdpZGdldCAqL1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xufVxuXG4ucXVpY2staW5wdXQtbGVmdC1hY3Rpb24tYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWFyZ2luLWxlZnQ6IDRweDtcblx0ZmxleDogMTtcbn1cblxuLnF1aWNrLWlucHV0LXRpdGxlIHtcblx0cGFkZGluZzogM3B4IDBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnF1aWNrLWlucHV0LXJpZ2h0LWFjdGlvbi1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0ZmxleDogMTtcbn1cblxuLnF1aWNrLWlucHV0LXJpZ2h0LWFjdGlvbi1iYXIgPiAuYWN0aW9ucy1jb250YWluZXIge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ucXVpY2staW5wdXQtdGl0bGViYXIgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwuY29kaWNvbiB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZzogMnB4O1xufVxuXG4ucXVpY2staW5wdXQtZGVzY3JpcHRpb24ge1xuXHRtYXJnaW46IDZweCA2cHggNnB4IDExcHg7XG59XG5cbi5xdWljay1pbnB1dC1oZWFkZXIgLnF1aWNrLWlucHV0LWRlc2NyaXB0aW9uIHtcblx0bWFyZ2luOiA0cHggMnB4O1xuXHRmbGV4OiAxO1xufVxuXG4ucXVpY2staW5wdXQtaGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0cGFkZGluZzogOHB4IDZweCA2cHggNnB4O1xufVxuXG4ucXVpY2staW5wdXQtd2lkZ2V0LmhpZGRlbi1pbnB1dCAucXVpY2staW5wdXQtaGVhZGVyIHtcblx0LyogcmVkdWNlIG1hcmdpbnMgYW5kIHBhZGRpbmdzIHdoZW4gaW5wdXQgYm94IGhpZGRlbiAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucXVpY2staW5wdXQtYW5kLW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRmbGV4LWdyb3c6IDE7XG5cdG1pbi13aWR0aDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucXVpY2staW5wdXQtY2hlY2stYWxsIHtcblx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRtYXJnaW46IDA7XG59XG5cbi5xdWljay1pbnB1dC1maWx0ZXIge1xuXHRmbGV4LWdyb3c6IDE7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnF1aWNrLWlucHV0LWJveCB7XG5cdGZsZXgtZ3JvdzogMTtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldC5zaG93LWNoZWNrYm94ZXMgLnF1aWNrLWlucHV0LWJveCxcbi5xdWljay1pbnB1dC13aWRnZXQuc2hvdy1jaGVja2JveGVzIC5xdWljay1pbnB1dC1tZXNzYWdlIHtcblx0bWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLnF1aWNrLWlucHV0LXZpc2libGUtY291bnQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xMDAwMHB4O1xufVxuXG4ucXVpY2staW5wdXQtY291bnQge1xuXHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDRweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnF1aWNrLWlucHV0LWNvdW50IC5tb25hY28tY291bnQtYmFkZ2Uge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiAycHggNHB4O1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdG1pbi1oZWlnaHQ6IGF1dG87XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5xdWljay1pbnB1dC1hY3Rpb24ge1xuXHRtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4ucXVpY2staW5wdXQtYWN0aW9uIC5tb25hY28tdGV4dC1idXR0b24ge1xuXHRmb250LXNpemU6IDExcHg7XG5cdHBhZGRpbmc6IDAgNnB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDI1cHg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xdWljay1pbnB1dC1tZXNzYWdlIHtcblx0bWFyZ2luLXRvcDogLTFweDtcblx0cGFkZGluZzogNXB4O1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4ucXVpY2staW5wdXQtbWVzc2FnZSA+IC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG59XG5cbi8qIExpbmtzIGluIGRlc2NyaXB0aW9ucyAmIHZhbGlkYXRpb25zICovXG4ucXVpY2staW5wdXQtbWVzc2FnZSBhIHtcblx0Y29sb3I6IGluaGVyaXQ7XG59XG5cbi5xdWljay1pbnB1dC1wcm9ncmVzcy5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucXVpY2staW5wdXQtcHJvZ3Jlc3MubW9uYWNvLXByb2dyZXNzLWNvbnRhaW5lcixcbi5xdWljay1pbnB1dC1wcm9ncmVzcy5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iaXQge1xuXHRoZWlnaHQ6IDJweDtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3Qge1xuXHRsaW5lLWhlaWdodDogMjJweDtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldC5oaWRkZW4taW5wdXQgLnF1aWNrLWlucHV0LWxpc3Qge1xuXHRtYXJnaW4tdG9wOiA0cHg7IC8qIHJlZHVjZSBtYXJnaW5zIHdoZW4gaW5wdXQgYm94IGhpZGRlbiAqL1xuXHRwYWRkaW5nLWJvdHRvbTogNHB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDIwICogMjJweCk7XG5cdHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50IHtcblx0cGFkZGluZzogMHB4IDVweDtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBhZGRpbmc6IDAgNnB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS5xdWljay1pbnB1dC1saXN0LXNlcGFyYXRvci1ib3JkZXIge1xuXHRib3JkZXItdG9wLXdpZHRoOiAxcHg7XG5cdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93IHtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93W2RhdGEtaW5kZXg9XCIwXCJdIC5xdWljay1pbnB1dC1saXN0LWVudHJ5LnF1aWNrLWlucHV0LWxpc3Qtc2VwYXJhdG9yLWJvcmRlciB7XG5cdGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWxhYmVsIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4OiAxO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0bWFyZ2luOiAwO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1pY29uIHtcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZy1yaWdodDogNnB4O1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAyMnB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGZsZXg6IDE7XG5cdG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5xdWljay1pbnB1dC13aWRnZXQuc2hvdy1jaGVja2JveGVzIC5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LXJvd3Mge1xuXHRtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldCAucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ucXVpY2staW5wdXQtd2lkZ2V0LnNob3ctY2hlY2tib3hlcyAucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGRpc3BsYXk6IGlubGluZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyA+IC5xdWljay1pbnB1dC1saXN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LXJvd3MgPiAucXVpY2staW5wdXQtbGlzdC1yb3cgLm1vbmFjby1pY29uLWxhYmVsLFxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyA+IC5xdWljay1pbnB1dC1saXN0LXJvdyAubW9uYWNvLWljb24tbGFiZWwgLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciB7XG5cdGZsZXg6IDE7IC8qIG1ha2Ugc3VyZSB0aGUgaWNvbiBsYWJlbCBncm93cyB3aXRoaW4gdGhlIHJvdyAqL1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1yb3dzID4gLnF1aWNrLWlucHV0LWxpc3Qtcm93IC5jb2RpY29uW2NsYXNzKj0nY29kaWNvbi0nXSB7XG5cdHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsID4gc3BhbiB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWtleWJpbmRpbmcge1xuXHRtYXJnaW4tcmlnaHQ6IDhweDsgLyogc2VwYXJhdGUgZnJvbSB0aGUgc2VwYXJhdG9yIGxhYmVsIG9yIHNjcm9sbGJhciBpZiBhbnkgKi9cbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtbGFiZWwtbWV0YSB7XG5cdG9wYWNpdHk6IDAuNztcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeSAucXVpY2staW5wdXQtbGlzdC1zZXBhcmF0b3Ige1xuXHRtYXJnaW4tcmlnaHQ6IDRweDsgLyogc2VwYXJhdGUgZnJvbSBrZXliaW5kaW5ncyBvciBhY3Rpb25zICovXG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4OiAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnktYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0Lypcblx0ICogQnkgZGVmYXVsdCwgYWN0aW9ucyBpbiB0aGUgcXVpY2sgaW5wdXQgYWN0aW9uIGJhciBhcmUgaGlkZGVuXG5cdCAqIHVudGlsIGhvdmVyZWQgb3ZlciB0aGVtIG9yIHNlbGVjdGVkLlxuXHQgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnktYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsLmNvZGljb24ge1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0cGFkZGluZzogMHB4IDJweCAycHggMnB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIHtcblx0bWFyZ2luLXRvcDogMXB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIHtcblx0bWFyZ2luLXJpZ2h0OiA0cHg7IC8qIHNlcGFyYXRlIGZyb20gc2Nyb2xsYmFyICovXG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbC5hbHdheXMtdmlzaWJsZSxcbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5OmhvdmVyIC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbCxcbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwge1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuXG4vKiBmb2N1c2VkIGl0ZW1zIGluIHF1aWNrIHBpY2sgKi9cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAubW9uYWNvLWtleWJpbmRpbmcta2V5LFxuLnF1aWNrLWlucHV0LWxpc3QgLm1vbmFjby1saXN0LXJvdy5mb2N1c2VkIC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LXNlcGFyYXRvciB7XG5cdGNvbG9yOiBpbmhlcml0XG59XG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQgLm1vbmFjby1rZXliaW5kaW5nLWtleSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi8qIFF1aWNrIGlucHV0IHNlcGFyYXRvcnMgYXMgZnVsbC1yb3cgaXRlbSAqL1xuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtc2VwYXJhdG9yLWFzLWl0ZW0ge1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IDEycHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIC0tLS0tLS0tLS0gSWNvbiBsYWJlbCAtLS0tLS0tLS0tICovXG5cbi5tb25hY28taWNvbi1sYWJlbCB7XG5cdGRpc3BsYXk6IGZsZXg7IC8qIHJlcXVpcmVkIGZvciBpY29ucyBzdXBwb3J0IDpiZWZvcmUgcnVsZSAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm1vbmFjby1pY29uLWxhYmVsOjpiZWZvcmUge1xuXG5cdC8qIHN2ZyBpY29ucyByZW5kZXJlZCBhcyBiYWNrZ3JvdW5kIGltYWdlICovXG5cdGJhY2tncm91bmQtc2l6ZTogMTZweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMjJweDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qIGZvbnRzIGljb25zICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdGZsZXgtc2hyaW5rOiAwOyAvKiBmaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdnNjb2RlL2lzc3Vlcy8xMzc4NyAqL1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwtY29udGFpbmVyLmRpc2FibGVkIHtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1kaXNhYmxlZEZvcmVncm91bmQpO1xufVxuLm1vbmFjby1pY29uLWxhYmVsID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciB7XG5cdG1pbi13aWR0aDogMDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdGZsZXg6IDE7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tbmFtZS1jb250YWluZXIgPiAubGFiZWwtbmFtZSB7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR3aGl0ZS1zcGFjZTogcHJlOyAvKiBlbmFibGUgdG8gc2hvdyBsYWJlbHMgdGhhdCBpbmNsdWRlIG11bHRpcGxlIHdoaXRlc3BhY2VzICovXG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tbmFtZS1jb250YWluZXIgPiAubGFiZWwtbmFtZSA+IC5sYWJlbC1zZXBhcmF0b3Ige1xuXHRtYXJnaW46IDAgMnB4O1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0b3BhY2l0eTogLjc7XG5cdG1hcmdpbi1sZWZ0OiAwLjVlbTtcblx0Zm9udC1zaXplOiAwLjllbTtcblx0d2hpdGUtc3BhY2U6IHByZTsgLyogZW5hYmxlIHRvIHNob3cgbGFiZWxzIHRoYXQgaW5jbHVkZSBtdWx0aXBsZSB3aGl0ZXNwYWNlcyAqL1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwubm93cmFwID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1kZXNjcmlwdGlvbi1jb250YWluZXIgPiAubGFiZWwtZGVzY3JpcHRpb257XG5cdHdoaXRlLXNwYWNlOiBub3dyYXBcbn1cblxuLnZzIC5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0b3BhY2l0eTogLjk1O1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwuaXRhbGljID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciA+IC5sYWJlbC1uYW1lLFxuLm1vbmFjby1pY29uLWxhYmVsLml0YWxpYyA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwuZGVwcmVjYXRlZCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuXHRvcGFjaXR5OiAwLjY2O1xufVxuXG4vKiBtYWtlIHN1cmUgYXBwbHkgaXRhbGljIGZvbnQgc3R5bGUgdG8gZGVjb3JhdGlvbnMgYXMgd2VsbCAqL1xuLm1vbmFjby1pY29uLWxhYmVsLml0YWxpYzo6YWZ0ZXIge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbC5zdHJpa2V0aHJvdWdoID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciA+IC5sYWJlbC1uYW1lLFxuLm1vbmFjby1pY29uLWxhYmVsLnN0cmlrZXRocm91Z2ggPiAubW9uYWNvLWljb24tbGFiZWwtY29udGFpbmVyID4gLm1vbmFjby1pY29uLWRlc2NyaXB0aW9uLWNvbnRhaW5lciA+IC5sYWJlbC1kZXNjcmlwdGlvbiB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWw6OmFmdGVyIHtcblx0b3BhY2l0eTogMC43NTtcblx0Zm9udC1zaXplOiA5MCU7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdG1hcmdpbjogYXV0byAxNnB4IDAgNXB4OyAvKiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9pc3N1ZXMvMTEzMjIzICovXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogbWFrZSBzdXJlIHNlbGVjdGlvbiBjb2xvciB3aW5zIHdoZW4gYSBsYWJlbCBpcyBiZWluZyBzZWxlY3RlZCAqL1xuLm1vbmFjby1saXN0OmZvY3VzIC5zZWxlY3RlZCAubW9uYWNvLWljb24tbGFiZWwsIC8qIGxpc3QgKi9cbi5tb25hY28tbGlzdDpmb2N1cyAuc2VsZWN0ZWQgLm1vbmFjby1pY29uLWxhYmVsOjphZnRlclxue1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQuc2VsZWN0ZWQgLmxhYmVsLWRlc2NyaXB0aW9uLFxuLm1vbmFjby1saXN0LXJvdy5zZWxlY3RlZCAubGFiZWwtZGVzY3JpcHRpb24ge1xuXHRvcGFjaXR5OiAuODtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1rZXliaW5kaW5nIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0cGFkZGluZzogM3B4IDVweDtcblx0bWFyZ2luOiAwIDJweDtcbn1cblxuLm1vbmFjby1rZXliaW5kaW5nID4gLm1vbmFjby1rZXliaW5kaW5nLWtleTpmaXJzdC1jaGlsZCB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5Omxhc3QtY2hpbGQge1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXktc2VwYXJhdG9yIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5LWNob3JkLXNlcGFyYXRvciB7XG5cdHdpZHRoOiA2cHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcy13aWRnZXQge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIHtcblx0aGVpZ2h0OiAwcHg7IC8qIFRoZSBjaGlsZHJlbiBlYWNoIGhhdmUgYSBmaXhlZCBoZWlnaHQsIHRoZSB0cmFuc2Zvcm0gY29uZnVzZXMgdGhlIGJyb3dzZXIgKi9cblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTBweCk7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lczpub3QoLmRyYWdnaW5nKSAudG9wOmhvdmVyLFxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzOm5vdCguZHJhZ2dpbmcpIC5ib3R0b206aG92ZXIsXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLnRvcC5kcmFnZ2luZyxcbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAuYm90dG9tLmRyYWdnaW5nIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWZvY3VzQm9yZGVyKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC50b3AsXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLmJvdHRvbSB7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dDtcblx0aGVpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXHRib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Y3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAudG9wIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCA0cHgpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLmJvdHRvbSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTZweCk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLXVuY2hhbmdlZC1saW5lcyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLXVuY2hhbmdlZENvZGVCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm5vTW9kaWZpY2F0aW9uc092ZXJsYXkge1xuXHR6LWluZGV4OiAxO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9yLWJhY2tncm91bmQpO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAuY2VudGVyIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItdW5jaGFuZ2VkUmVnaW9uQmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci11bmNoYW5nZWRSZWdpb25Gb3JlZ3JvdW5kKTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdGhlaWdodDogMjRweDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC5jZW50ZXIgc3Bhbi5jb2RpY29uIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC5jZW50ZXIgYTpob3ZlciAuY29kaWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JMaW5rLWFjdGl2ZUZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyBkaXYuYnJlYWRjcnVtYi1pdGVtIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgZGl2LmJyZWFkY3J1bWItaXRlbTpob3ZlciB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluay1hY3RpdmVGb3JlZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1vdmVkT3JpZ2luYWwge1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZWRpdG9yIC5tb3ZlZE1vZGlmaWVkIHtcblx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItbW92ZS1ib3JkZXIpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubW92ZWRPcmlnaW5hbC5jdXJyZW50TW92ZSwgLm1vbmFjby1lZGl0b3IgLm1vdmVkTW9kaWZpZWQuY3VycmVudE1vdmUge1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyBwYXRoLmN1cnJlbnRNb3ZlIHtcblx0c3Ryb2tlOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyBwYXRoIHtcblx0cG9pbnRlci1ldmVudHM6IHZpc2libGVzdHJva2U7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3cge1xuXHRmaWxsOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3cuY3VycmVudE1vdmUge1xuXHRmaWxsOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3ctcmVjdGFuZ2xlIHtcblx0ZmlsbDogdmFyKC0tdnNjb2RlLWVkaXRvci1iYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAubW92ZWQtYmxvY2tzLWxpbmVzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAubW92ZWQtYmxvY2tzLWxpbmVzIHBhdGgge1xuXHRmaWxsOiBub25lO1xuXHRzdHJva2U6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLW1vdmUtYm9yZGVyKTtcblx0c3Ryb2tlLXdpZHRoOiAyO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuY2hhci1kZWxldGUuZGlmZi1yYW5nZS1lbXB0eSB7XG5cdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXHRib3JkZXItbGVmdDogc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCYWNrZ3JvdW5kKSAzcHg7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWluc2VydC5kaWZmLXJhbmdlLWVtcHR5IHtcblx0Ym9yZGVyLWxlZnQ6IHNvbGlkIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkVGV4dEJhY2tncm91bmQpIDNweDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmZvbGQtdW5jaGFuZ2VkIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLW1vdmVkLWNvZGUtYmxvY2sge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRtYXJnaW4tdG9wOiAtNHB4O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLW1vdmVkLWNvZGUtYmxvY2sgLmFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbC5jb2RpY29uIHtcblx0d2lkdGg6IDEycHg7XG5cdGhlaWdodDogMTJweDtcblx0Zm9udC1zaXplOiAxMnB4O1xufVxuXG4vKiAtLS0tLS0tLS0tIERpZmZFZGl0b3IgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmT3ZlcnZpZXcge1xuXHR6LWluZGV4OiA5O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmT3ZlcnZpZXcgLmRpZmZWaWV3cG9ydCB7XG5cdHotaW5kZXg6IDEwO1xufVxuXG4vKiBjb2xvcnMgbm90IGV4dGVybmFsaXplZDogdXNpbmcgdHJhbnNwYXJhbmN5IG9uIGJhY2tncm91bmQgKi9cbi5tb25hY28tZGlmZi1lZGl0b3IudnNcdFx0XHQuZGlmZk92ZXJ2aWV3IHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTsgfVxuLm1vbmFjby1kaWZmLWVkaXRvci52cy1kYXJrXHRcdC5kaWZmT3ZlcnZpZXcgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpOyB9XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50Lm1vZGlmaWVkLWluLW1vbmFjby1kaWZmLWVkaXRvci52c1x0XHQuc2Nyb2xsYmFyIHsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTsgfVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yLnZzLWRhcmtcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApOyB9XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudC5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtYmxhY2tcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudC5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtbGlnaHRcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50Lm1vZGlmaWVkLWluLW1vbmFjby1kaWZmLWVkaXRvciAuc2xpZGVyIHtcblx0ei1pbmRleDogMTA7XG59XG4ubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yXHRcdFx0XHQuc2xpZGVyLmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoMTcxLCAxNzEsIDE3MSwgLjQpOyB9XG4ubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yLmhjLWJsYWNrXHQuc2xpZGVyLmFjdGl2ZSB7IGJhY2tncm91bmQ6IG5vbmU7IH1cbi5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtbGlnaHRcdC5zbGlkZXIuYWN0aXZlIHsgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4vKiAtLS0tLS0tLS0tIERpZmYgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWVkaXRvciAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5pbnNlcnQtc2lnbixcbi5tb25hY28tZWRpdG9yIC5kZWxldGUtc2lnbixcbi5tb25hY28tZGlmZi1lZGl0b3IgLmRlbGV0ZS1zaWduIHtcblx0Zm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG5cdG9wYWNpdHk6IDAuNyAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yLmhjLWJsYWNrIC5pbnNlcnQtc2lnbixcbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5kZWxldGUtc2lnbixcbi5tb25hY28tZGlmZi1lZGl0b3IuaGMtYmxhY2sgLmRlbGV0ZS1zaWduLFxuLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmluc2VydC1zaWduLFxuLm1vbmFjby1kaWZmLWVkaXRvci5oYy1saWdodCAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWVkaXRvci5oYy1saWdodCAuZGVsZXRlLXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yLmhjLWxpZ2h0IC5kZWxldGUtc2lnbiB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5tb25hY28tZWRpdG9yIC5pbmxpbmUtZGVsZXRlZC1tYXJnaW4tdmlldy16b25lIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubW9uYWNvLWVkaXRvciAuaW5saW5lLWFkZGVkLW1hcmdpbi12aWV3LXpvbmUge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmFycm93LXJldmVydC1jaGFuZ2Uge1xuXHR6LWluZGV4OiAxMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuYXJyb3ctcmV2ZXJ0LWNoYW5nZTpob3ZlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogLS0tLS0tLS0tLSBJbmxpbmUgRGlmZiAtLS0tLS0tLS0tICovXG5cbi5tb25hY28tZWRpdG9yIC52aWV3LXpvbmVzIC52aWV3LWxpbmVzIC52aWV3LWxpbmUgc3BhbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbi12aWV3LXpvbmVzIC5saWdodGJ1bGItZ2x5cGg6aG92ZXIge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWluc2VydCwgLm1vbmFjby1kaWZmLWVkaXRvciAuY2hhci1pbnNlcnQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1pbnNlcnRlZFRleHRCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtaW5zZXJ0LCAubW9uYWNvLWRpZmYtZWRpdG9yIC5saW5lLWluc2VydCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkTGluZUJhY2tncm91bmQsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkVGV4dEJhY2tncm91bmQpKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtaW5zZXJ0LFxuLm1vbmFjby1lZGl0b3IgLmNoYXItaW5zZXJ0IHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItaW5zZXJ0ZWRUZXh0Qm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5saW5lLWluc2VydCwgLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmxpbmUtaW5zZXJ0LFxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLmNoYXItaW5zZXJ0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAuY2hhci1pbnNlcnQge1xuXHRib3JkZXItc3R5bGU6IGRhc2hlZDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtZGVsZXRlLFxuLm1vbmFjby1lZGl0b3IgLmNoYXItZGVsZXRlIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCb3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLmxpbmUtZGVsZXRlLCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAubGluZS1kZWxldGUsXG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuY2hhci1kZWxldGUsIC5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5jaGFyLWRlbGV0ZSB7XG5cdGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuaW5saW5lLWFkZGVkLW1hcmdpbi12aWV3LXpvbmUsXG4ubW9uYWNvLWVkaXRvciAuZ3V0dGVyLWluc2VydCwgLm1vbmFjby1kaWZmLWVkaXRvciAuZ3V0dGVyLWluc2VydCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yR3V0dGVyLWluc2VydGVkTGluZUJhY2tncm91bmQsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkTGluZUJhY2tncm91bmQpLCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1pbnNlcnRlZFRleHRCYWNrZ3JvdW5kKSk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWRlbGV0ZSwgLm1vbmFjby1kaWZmLWVkaXRvciAuY2hhci1kZWxldGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1yZW1vdmVkVGV4dEJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1kZWxldGUsIC5tb25hY28tZGlmZi1lZGl0b3IgLmxpbmUtZGVsZXRlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZExpbmVCYWNrZ3JvdW5kLCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1yZW1vdmVkVGV4dEJhY2tncm91bmQpKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmlubGluZS1kZWxldGVkLW1hcmdpbi12aWV3LXpvbmUsXG4ubW9uYWNvLWVkaXRvciAuZ3V0dGVyLWRlbGV0ZSwgLm1vbmFjby1kaWZmLWVkaXRvciAuZ3V0dGVyLWRlbGV0ZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yR3V0dGVyLXJlbW92ZWRMaW5lQmFja2dyb3VuZCwgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZExpbmVCYWNrZ3JvdW5kKSwgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCYWNrZ3JvdW5kKSk7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3Iuc2lkZS1ieS1zaWRlIC5lZGl0b3IubW9kaWZpZWQge1xuXHRib3gtc2hhZG93OiAtNnB4IDAgNXB4IC01cHggdmFyKC0tdnNjb2RlLXNjcm9sbGJhci1zaGFkb3cpO1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmZWaWV3cG9ydCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYmFja2dyb3VuZCk7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmZWaWV3cG9ydDpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItaG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZlZpZXdwb3J0OmFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYWN0aXZlQmFja2dyb3VuZCk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWFnb25hbC1maWxsIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdC00NWRlZyxcblx0XHR2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1kaWFnb25hbEZpbGwpIDEyLjUlLFxuXHRcdCMwMDAwIDEyLjUlLCAjMDAwMCA1MCUsXG5cdFx0dmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItZGlhZ29uYWxGaWxsKSA1MCUsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWRpYWdvbmFsRmlsbCkgNjIuNSUsXG5cdFx0IzAwMDAgNjIuNSUsICMwMDAwIDEwMCVcblx0KTtcblx0YmFja2dyb3VuZC1zaXplOiA4cHggOHB4O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy1saW5lLW51bWJlciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluZU51bWJlci1mb3JlZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiA5OTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctc3VtbWFyeSB7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgMCAtNnB4IDZweCAtNnB4IGluc2V0O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy1yb3cge1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy10YWJsZSB7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXJvdyB7XG5cdGRpc3BsYXk6IHRhYmxlLXJvdztcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXNwYWNlciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDEwcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXNwYWNlciA+IC5jb2RpY29uIHtcblx0Zm9udC1zaXplOiA5cHggIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTBweDtcblx0dG9wOiAycHg7XG5cdHotaW5kZXg6IDEwMDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctYWN0aW9ucyAuYWN0aW9uLWxhYmVsIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0bWFyZ2luOiAycHggMDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBQTtBQUNFO0FBQUE7OztBQ01GO0FBQ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQy9CRDtBQUNDO0FBQ0E7QUFBQTs7O0FDQUQ7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBVUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7OztBQ2pHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFHQTtBQUVBO0FBRUE7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNqRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQWdCRDtBQUNDO0FBQ0E7QUFDQTtBQUFBOzs7QUMvQkQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUMxQkQ7QUFDQztBQUFBOzs7QUNERDtBQUNDO0FBQUE7OztBQ0REO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQ2JEO0FBQ0M7QUFBQTs7O0FDTEQ7QUFDQztBQUNBO0FBQUE7OztBQ1NEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFJRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTs7O0FDbkVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFPRDtBQUNDO0FBQ0E7QUFBQTs7O0FDWEQ7QUFDQztBQUNBO0FBQUE7QUFPRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFRRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3JCRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ1BEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNsREQ7QUFDQztBQUNBO0FBQ0E7QUFBQTs7O0FDRkQ7QUFDQztBQUNBO0FBQ0E7QUFBQTs7O0FDSEQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ0REO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQXFDO0FBQUE7QUFDckM7QUFBd0M7QUFBQTtBQUN4QztBQUFzQztBQUFBO0FBQ3RDO0FBQXdDO0FBQUE7QUFFeEM7QUFBNEM7QUFBQTtBQUM1QztBQUErQztBQUFBO0FBQy9DO0FBQTZDO0FBQUE7QUFDN0M7QUFBK0M7QUFBQTtBQUUvQztBQUE0QztBQUFBO0FBQzVDO0FBQStDO0FBQUE7QUFDL0M7QUFBNkM7QUFBQTtBQUM3QztBQUErQztBQUFBOzs7QUM5Qi9DO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDOUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTs7O0FDUkQ7QUFDQztBQUNBO0FBQUE7OztBQ0ZEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUNURDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUFBO0FBSUQ7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDN0VEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBT0Q7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7OztBQ3ZIRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBOzs7QUMzQkQ7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDOUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3ZDRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUN0Q0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3hERDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFJQztBQUFBO0FBR0Q7QUFBQTtBQUlDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQzlJRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7OztBQy9ERDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7OztBQ2xERDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTs7O0FDaEREO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQUE7QUFHRDtBQUFBO0FBSUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBOzs7QUNuR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUFBO0FBSUQ7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBQ007QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBO0FBRVI7QUFBQTtBQUNNO0FBQUE7QUFBQTtBQUVDO0FBQUE7QUFBQTtBQUdQO0FBQUE7QUFDTTtBQUFBO0FBQUE7QUFDRTtBQUFBO0FBQUE7QUFFUjtBQUFBO0FBQ007QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUFBOzs7QUMvRFA7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQzNIRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQUE7QUFLRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNyS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUNqQkQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBT0M7QUFBQTtBQWFEO0FBQUE7QUFBNkI7QUFBQTtBQUFBO0FBQTRDO0FBQUE7QUFBQTtBQUE4QztBQUFBO0FBQUE7OztBQ3ZEdkg7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUtDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFJRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUFBOzs7QUM3VEQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBR0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBOzs7QUNwR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUM5QkQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBSUQ7QUFBeUM7QUFBQTtBQUN6QztBQUE2QztBQUFBO0FBRTdDO0FBQTJFO0FBQUE7QUFDM0U7QUFBK0U7QUFBQTtBQUMvRTtBQUFnRjtBQUFBO0FBQ2hGO0FBQWdGO0FBQUE7QUFFaEY7QUFDQztBQUFBO0FBRUQ7QUFBb0Q7QUFBQTtBQUNwRDtBQUEwRDtBQUFBO0FBQzFEO0FBQTBEO0FBQUE7QUFJMUQ7QUFBQTtBQUFBO0FBQUE7QUFJQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQU9BO0FBQUE7OztBQ3BTRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/manifest.json b/manifest.json index dfa940e..7ff292c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,11 +1,11 @@ { - "id": "sample-plugin", - "name": "Sample Plugin", + "id": "code-editor", + "name": "Code Editor", "version": "1.0.0", "minAppVersion": "0.15.0", "description": "Demonstrates some of the capabilities of the Obsidian API.", - "author": "Obsidian", - "authorUrl": "https://obsidian.md", - "fundingUrl": "https://obsidian.md/pricing", + "author": "Allen7D", + "authorUrl": "https://github.com/Allen7D", + "fundingUrl": "https://github.com/Allen7D/obsidian-code-editor", "isDesktopOnly": false -} +} \ No newline at end of file diff --git a/package.json b/package.json index 6a00766..360caa7 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "obsidian-sample-plugin", + "name": "obsidian-code-editor", "version": "1.0.0", "description": "This is a sample plugin for Obsidian (https://obsidian.md)", "main": "main.js", @@ -13,12 +13,22 @@ "license": "MIT", "devDependencies": { "@types/node": "^16.11.6", + "@types/react": "^18.2.69", + "@types/react-dom": "^18.2.22", "@typescript-eslint/eslint-plugin": "5.29.0", "@typescript-eslint/parser": "5.29.0", "builtin-modules": "3.3.0", "esbuild": "0.17.3", + "esbuild-plugin-less": "^1.3.3", + "less": "^4.2.0", "obsidian": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0", "tslib": "2.4.0", "typescript": "4.7.4" + }, + "dependencies": { + "monaco-editor": "^0.44.0", + "react-monaco-editor": "^0.55.0" } -} +} \ No newline at end of file diff --git a/src/SettingTab.ts b/src/SettingTab.ts new file mode 100644 index 0000000..9300738 --- /dev/null +++ b/src/SettingTab.ts @@ -0,0 +1,31 @@ +import { App, PluginSettingTab, Setting } from 'obsidian'; +import ExamplePlugin from './main'; + +// 属性设置页 +export class SettingTab extends PluginSettingTab { + plugin: ExamplePlugin; + + constructor(app: App, plugin: ExamplePlugin) { + super(app, plugin); + this.plugin = plugin; + } + + display(): void { + const { containerEl } = this; + + containerEl.empty(); + + new Setting(containerEl) + .setName('Setting #1') + .setDesc("It's a secret") + .addText((text) => + text + .setPlaceholder('Enter your secret') + .setValue(this.plugin.settings.mySetting) + .onChange(async (value) => { + this.plugin.settings.mySetting = value; + await this.plugin.saveSettings(); + }), + ); + } +} diff --git a/src/components/App/index.less b/src/components/App/index.less new file mode 100644 index 0000000..f26861a --- /dev/null +++ b/src/components/App/index.less @@ -0,0 +1,3 @@ +.app-main { + color: red; +} \ No newline at end of file diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx new file mode 100644 index 0000000..c450cdb --- /dev/null +++ b/src/components/App/index.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +import './index.less'; + +const App: React.FC = () => { + return ( +
+

App Home

+
+ ); +}; + +export default App; diff --git a/src/components/CodeEditorModal/CodeEditor.tsx b/src/components/CodeEditorModal/CodeEditor.tsx new file mode 100644 index 0000000..2225369 --- /dev/null +++ b/src/components/CodeEditorModal/CodeEditor.tsx @@ -0,0 +1,133 @@ +import React from 'react'; +import { Editor, Plugin } from 'obsidian'; +import MonacoEditor from 'react-monaco-editor'; + +import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'; +import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution'; +import 'monaco-editor/esm/vs/basic-languages/html/html.contribution'; +import 'monaco-editor/esm/vs/basic-languages/css/css.contribution'; + +interface CodeEditorProps { + plugin: Plugin; +} + +const options = { + selectOnLineNumbers: true, // 显示行号(默认true) + roundedSelection: false, // + readOnly: false, // 是否切换只读(默认false) + // cursorStyle: 'line', // 光标样式 + automaticLayout: true, // 自适应布局(默认为true) + fontSize: 14, // 字体大小 + tabSize: 2, // tab 缩进长度(包括回车换行后的自动缩进) + scrollBeyondLastLine: false, // 取消代码后面一大段空白(为true时,editor的高度会大于父容器) + contextmenu: true, // 编辑器原生的右键菜单 +}; + +const CodeEditor = (props: CodeEditorProps) => { + const { plugin } = props; + const [value, setValue] = React.useState(''); + const [language, setLanguage] = React.useState(''); + + return ( + { + const obsidianEditor = plugin.app.workspace.activeEditor?.editor!; + + const [startLine, endLine, language] = getBoundaryLines(obsidianEditor, '```'); + const textContent = getEditorContent(obsidianEditor, startLine + 1, endLine - 1); + + setLanguage(language); + setValue(textContent); + }} + editorWillUnmount={(monacoEditor) => { + const obsidianEditor = plugin.app.workspace.activeEditor?.editor!; + const [startLine, endLine, language] = getBoundaryLines(obsidianEditor, '```'); + const editorValue = monacoEditor.getValue(); + obsidianEditor?.replaceRange( + `${editorValue}\n`, + { line: startLine + 1, ch: 0 }, // 替换代码块内容的起始位置 + { line: endLine, ch: 0 }, // 替换代码块内容的结束位置 + ); + + monacoEditor.dispose(); + }} + /> + ); +}; + +export default CodeEditor; + +function getBoundaryLines(editor: Editor, target: string): [number, number, string] { + const cursor = editor.getCursor(); + let startLine = cursor.line; + let endLine = cursor.line; + + // Find the upper boundary line + for (let i = startLine; i >= 0; i--) { + if (editor.getLine(i).includes(target)) { + startLine = i; + break; + } + } + + // Find the lower boundary line + const lineCount = editor.lineCount(); + for (let i = endLine; i < lineCount; i++) { + if (editor.getLine(i).includes(target)) { + endLine = i; + break; + } + } + + const languageKey = editor.getLine(startLine).split('```')[1].trim(); + const language = matchLanguage(languageKey)!; + + return [startLine, endLine, language]; +} + +function matchLanguage(languageKey: string) { + switch (languageKey) { + case 'js': + case 'es6': + case 'jsx': + case 'cjs': + case 'mjs': + return 'javascript'; + case 'ts': + case 'tsx': + case 'cts': + case 'mts': + return 'typescript'; + case 'css': + return 'css'; + case 'html': + case 'htm': + case 'shtml': + case 'xhtml': + case 'mdoc': + case 'jsp': + case 'asp': + case 'aspx': + case 'jshtm': + return 'html'; + case 'json': + return 'json'; + } +} + +function getEditorContent(editor: Editor, startLine: number, endLine: number): string { + const editorContent = editor.getRange({ line: startLine, ch: 0 }, { line: endLine + 1, ch: 0 }); + return editorContent.trimEnd(); + // 优化以下的代码 + // const lines = []; + // for (let i = startLine; i <= endLine; i++) { + // lines.push(editor.getLine(i)); + // } + // return lines.join('\n'); +} diff --git a/src/components/CodeEditorModal/index.tsx b/src/components/CodeEditorModal/index.tsx new file mode 100644 index 0000000..cd4aa49 --- /dev/null +++ b/src/components/CodeEditorModal/index.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { Plugin, Modal } from 'obsidian'; +import CodeEditor from './CodeEditor'; + +class CodeEditorModal extends Modal { + plugin: Plugin; + + constructor(plugin: Plugin) { + super(plugin.app); + this.plugin = plugin; + } + + // 调用 Modal 的 open 方法是触发的回调函数 + onOpen() { + // 设置 Modal 的宽高 + this.modalEl.setCssProps({ + '--dialog-width': '80vw', + '--dialog-height': '80vh', + }); + // 将 CodeEditor 组件挂载到 Modal 的 contentEl + ReactDOM.render(, this.contentEl); + } + // 调用 Modal 的 close 方法是触发的回调函数 + onClose() { + ReactDOM.unmountComponentAtNode(this.contentEl); + this.contentEl.empty(); + } +} + +export default CodeEditorModal; diff --git a/main.ts b/src/main.ts similarity index 63% rename from main.ts rename to src/main.ts index 2d07212..e672cd2 100644 --- a/main.ts +++ b/src/main.ts @@ -1,23 +1,43 @@ -import { App, Editor, MarkdownView, Modal, Notice, Plugin, PluginSettingTab, Setting } from 'obsidian'; +import { App, Editor, MarkdownView, Menu, MenuItem, Modal, Notice, Plugin } from 'obsidian'; +import { SettingTab } from './SettingTab'; +import { View } from './view'; +import CodeEditorModal from './components/CodeEditorModal'; // Remember to rename these classes and interfaces! -interface MyPluginSettings { +interface ExamplePluginSettings { mySetting: string; } -const DEFAULT_SETTINGS: MyPluginSettings = { - mySetting: 'default' -} +const DEFAULT_SETTINGS: ExamplePluginSettings = { + mySetting: 'default', +}; -export default class MyPlugin extends Plugin { - settings: MyPluginSettings; +export default class ExamplePlugin extends Plugin { + settings: ExamplePluginSettings; async onload() { + this.registerView('exapmle', (leaf) => new View(leaf)); + await this.loadSettings(); + this.registerCommands(); + + this.registerEvent( + this.app.workspace.on('editor-menu', (menu: Menu) => { + menu.addItem((item: MenuItem) => { + item + .setTitle('在编辑器中编辑代码') + .setIcon('code') + .onClick(() => { + new CodeEditorModal(this).open(); + }); + }); + }), + ); + // This creates an icon in the left ribbon. - const ribbonIconEl = this.addRibbonIcon('dice', 'Sample Plugin', (evt: MouseEvent) => { + const ribbonIconEl = this.addRibbonIcon('dice', 'Sample Plugin1', (evt: MouseEvent) => { // Called when the user clicks the icon. new Notice('This is a notice!'); }); @@ -28,45 +48,8 @@ export default class MyPlugin extends Plugin { const statusBarItemEl = this.addStatusBarItem(); statusBarItemEl.setText('Status Bar Text'); - // This adds a simple command that can be triggered anywhere - this.addCommand({ - id: 'open-sample-modal-simple', - name: 'Open sample modal (simple)', - callback: () => { - new SampleModal(this.app).open(); - } - }); - // This adds an editor command that can perform some operation on the current editor instance - this.addCommand({ - id: 'sample-editor-command', - name: 'Sample editor command', - editorCallback: (editor: Editor, view: MarkdownView) => { - console.log(editor.getSelection()); - editor.replaceSelection('Sample Editor Command'); - } - }); - // This adds a complex command that can check whether the current state of the app allows execution of the command - this.addCommand({ - id: 'open-sample-modal-complex', - name: 'Open sample modal (complex)', - checkCallback: (checking: boolean) => { - // Conditions to check - const markdownView = this.app.workspace.getActiveViewOfType(MarkdownView); - if (markdownView) { - // If checking is true, we're simply "checking" if the command can be run. - // If checking is false, then we want to actually perform the operation. - if (!checking) { - new SampleModal(this.app).open(); - } - - // This command will only show up in Command Palette when the check function returns true - return true; - } - } - }); - // This adds a settings tab so the user can configure various aspects of the plugin - this.addSettingTab(new SampleSettingTab(this.app, this)); + this.addSettingTab(new SettingTab(this.app, this)); // If the plugin hooks up any global DOM events (on parts of the app that doesn't belong to this plugin) // Using this function will automatically remove the event listener when this plugin is disabled. @@ -78,12 +61,54 @@ export default class MyPlugin extends Plugin { this.registerInterval(window.setInterval(() => console.log('setInterval'), 5 * 60 * 1000)); } - onunload() { + onunload() {} + // 注册快捷命令 + registerCommands() { + // This adds a simple command that can be triggered anywhere + this.addCommand({ + id: 'open-sample-modal-simple', + name: 'Open sample modal (simple)', + callback: () => { + new CommandModal(this.app).open(); + }, + }); + // This adds an editor command that can perform some operation on the current editor instance + this.addCommand({ + id: 'sample-editor-command', + name: 'Sample editor command', + // 对当前的编辑器内容进行处理 + editorCallback: (editor: Editor, view: MarkdownView) => { + console.log(editor.getSelection()); + editor.replaceSelection('Sample Editor Command'); + }, + }); + // This adds a complex command that can check whether the current state of the app allows execution of the command + this.addCommand({ + id: 'open-sample-modal-complex', + name: 'Open sample modal (complex)', + // checkCallback 允许命令行执行前进行校验 + checkCallback: (checking: boolean) => { + // Conditions to check + // markdownView 为当前的 markdown 文件,如果当前没有 markdown 文件(即激活的 Tab 为空),则返回 null + const markdownView = this.app.workspace.getActiveViewOfType(MarkdownView); + if (markdownView) { + // If checking is true, we're simply "checking" if the command can be run. + // If checking is false, then we want to actually perform the operation. + if (!checking) { + new CommandModal(this.app).open(); + } + + // This command will only show up in Command Palette when the check function returns true + return true; + } + }, + }); } async loadSettings() { - this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); + const localSettings = await this.loadData(); // 加载 data.json 配置 + this.settings = Object.assign({}, DEFAULT_SETTINGS, localSettings); } async saveSettings() { @@ -91,44 +116,19 @@ export default class MyPlugin extends Plugin { } } -class SampleModal extends Modal { +// 弹窗 +class CommandModal extends Modal { constructor(app: App) { super(app); } onOpen() { - const {contentEl} = this; + const { contentEl } = this; contentEl.setText('Woah!'); } onClose() { - const {contentEl} = this; + const { contentEl } = this; contentEl.empty(); } } - -class SampleSettingTab extends PluginSettingTab { - plugin: MyPlugin; - - constructor(app: App, plugin: MyPlugin) { - super(app, plugin); - this.plugin = plugin; - } - - display(): void { - const {containerEl} = this; - - containerEl.empty(); - - new Setting(containerEl) - .setName('Setting #1') - .setDesc('It\'s a secret') - .addText(text => text - .setPlaceholder('Enter your secret') - .setValue(this.plugin.settings.mySetting) - .onChange(async (value) => { - this.plugin.settings.mySetting = value; - await this.plugin.saveSettings(); - })); - } -} diff --git a/src/view.tsx b/src/view.tsx new file mode 100644 index 0000000..31a0047 --- /dev/null +++ b/src/view.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { createRoot, Root } from 'react-dom/client'; +import { TextFileView, TFile, WorkspaceLeaf } from 'obsidian'; +import App from './components/App'; + +export class View extends TextFileView { + root: Root; + + constructor(leaf: WorkspaceLeaf) { + super(leaf); + } + + getViewData(): string { + throw new Error('Method not implemented.'); + } + setViewData(data: string, clear: boolean): void { + throw new Error('Method not implemented.'); + } + clear(): void { + throw new Error('Method not implemented.'); + } + getViewType(): string { + throw new Error('Method not implemented.'); + } + + async render(file: TFile) { + this.root = this.root || createRoot(this.containerEl.children[1]); + + let fileData = await this.app.vault.read(file); + + console.log('fileData', fileData); + + this.root?.render( + + + , + ); + } +} diff --git a/tsconfig.json b/tsconfig.json index 2d6fbdf..d43cbfb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,19 @@ { - "compilerOptions": { - "baseUrl": ".", - "inlineSourceMap": true, - "inlineSources": true, - "module": "ESNext", - "target": "ES6", - "allowJs": true, - "noImplicitAny": true, - "moduleResolution": "node", - "importHelpers": true, - "isolatedModules": true, - "strictNullChecks": true, - "lib": [ - "DOM", - "ES5", - "ES6", - "ES7" - ] - }, - "include": [ - "**/*.ts" - ] + "compilerOptions": { + "baseUrl": ".", + "inlineSourceMap": true, + "inlineSources": true, + "module": "ESNext", + "target": "ES6", + "allowJs": true, + "noImplicitAny": true, + "moduleResolution": "node", + "importHelpers": true, + "isolatedModules": true, + "strictNullChecks": true, + "lib": ["DOM", "ES5", "ES6", "ES7"], + "jsx": "react", + "allowSyntheticDefaultImports": true + }, + "include": ["**/*.ts", "**/*.tsx"] } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..26f5915 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1717 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@esbuild/android-arm64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz#35d045f69c9b4cf3f8efcd1ced24a560213d3346" + integrity sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ== + +"@esbuild/android-arm@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/android-arm/-/android-arm-0.17.3.tgz#4986d26306a7440078d42b3bf580d186ef714286" + integrity sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg== + +"@esbuild/android-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/android-x64/-/android-x64-0.17.3.tgz#a1928cd681e4055103384103c8bd34df7b9c7b19" + integrity sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A== + +"@esbuild/darwin-arm64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz#e4af2b392e5606a4808d3a78a99d38c27af39f1d" + integrity sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw== + +"@esbuild/darwin-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz#cbcbfb32c8d5c86953f215b48384287530c5a38e" + integrity sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA== + +"@esbuild/freebsd-arm64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz#90ec1755abca4c3ffe1ad10819cd9d31deddcb89" + integrity sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w== + +"@esbuild/freebsd-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz#8760eedc466af253c3ed0dfa2940d0e59b8b0895" + integrity sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg== + +"@esbuild/linux-arm64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz#13916fc8873115d7d546656e19037267b12d4567" + integrity sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g== + +"@esbuild/linux-arm@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz#15f876d127b244635ddc09eaaa65ae97bc472a63" + integrity sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ== + +"@esbuild/linux-ia32@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz#6691f02555d45b698195c81c9070ab4e521ef005" + integrity sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA== + +"@esbuild/linux-loong64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz#f77ef657f222d8b3a8fbd530a09e40976c458d48" + integrity sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA== + +"@esbuild/linux-mips64el@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz#fa38833cfc8bfaadaa12b243257fe6d19d0f6f79" + integrity sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ== + +"@esbuild/linux-ppc64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz#c157a602b627c90d174743e4b0dfb7630b101dbf" + integrity sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ== + +"@esbuild/linux-riscv64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz#7bf79614bd544bd932839b1fcff6cf1f8f6bdf1a" + integrity sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow== + +"@esbuild/linux-s390x@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz#6bb50c5a2613d31ce1137fe5c249ecadbecccdea" + integrity sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug== + +"@esbuild/linux-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz#aa140d99f0d9e0af388024823bfe4558d73fbbf9" + integrity sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg== + +"@esbuild/netbsd-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz#b6ae9948b03e4c95dc581c68358fb61d9d12a625" + integrity sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg== + +"@esbuild/openbsd-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz#cda007233e211fc9154324bfa460540cfc469408" + integrity sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA== + +"@esbuild/sunos-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz#f1385b092000c662d360775f3fad80943d2169c4" + integrity sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q== + +"@esbuild/win32-arm64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz#14e9dd9b1b55aa991f80c120fef0c4492d918801" + integrity sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A== + +"@esbuild/win32-ia32@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz#de584423513d13304a6925e01233499a37a4e075" + integrity sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg== + +"@esbuild/win32-x64@0.17.3": + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz#2f69ea6b37031b0d1715dd2da832a8ae5eb36e74" + integrity sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "http://192.168.25.57:8081/repository/npm-group/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "http://192.168.25.57:8081/repository/npm-group/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "http://192.168.25.57:8081/repository/npm-group/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@types/codemirror@5.60.8": + version "5.60.8" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/codemirror/-/codemirror-5.60.8.tgz#b647d04b470e8e1836dd84b2879988fc55c9de68" + integrity sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw== + dependencies: + "@types/tern" "*" + +"@types/css-tree@^1.0.5": + version "1.0.7" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/css-tree/-/css-tree-1.0.7.tgz#4483b824a7923d9a7819408a33144014b0c5124c" + integrity sha512-Pz+DfVODpQTAV6PwPBK6kzyy7+f6EyPbr1+mYkc1YolJfl2NAJ4wbg0TC/AJPBsqn9jWfyiO19A/sgpvFLfqnw== + +"@types/estree@*": + version "1.0.5" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/json-schema@^7.0.9": + version "7.0.15" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/less@^3.0.6": + version "3.0.6" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/less/-/less-3.0.6.tgz#279b51245ba787c810a0d286226c5900cd5e6765" + integrity sha512-PecSzorDGdabF57OBeQO/xFbAkYWo88g4Xvnsx7LRwqLC17I7OoKtA3bQB9uXkY6UkMWCOsA8HSVpaoitscdXw== + +"@types/node@*": + version "20.11.30" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" + integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== + dependencies: + undici-types "~5.26.4" + +"@types/node@^16.11.6": + version "16.18.91" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/node/-/node-16.18.91.tgz#3e7b3b3d28f740e3e2d4ceb7ad9d16e6b9277c91" + integrity sha512-h8Q4klc8xzc9kJKr7UYNtJde5TU2qEePVyH3WyzJaUC+3ptyc5kPQbWOIUcn8ZsG5+KSkq+P0py0kC0VqxgAXw== + +"@types/prop-types@*": + version "15.7.12" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@^18.2.22": + version "18.2.22" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/react-dom/-/react-dom-18.2.22.tgz#d332febf0815403de6da8a97e5fe282cbe609bae" + integrity sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.69": + version "18.2.70" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/react/-/react-18.2.70.tgz#89a37f9e0a6a4931f4259c598f40fd44dd6abf71" + integrity sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.8" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/tern@*": + version "0.23.9" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/tern/-/tern-0.23.9.tgz#6f6093a4a9af3e6bb8dde528e024924d196b367c" + integrity sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw== + dependencies: + "@types/estree" "*" + +"@types/tmp@^0.2.0": + version "0.2.6" + resolved "http://192.168.25.57:8081/repository/npm-group/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" + integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== + +"@typescript-eslint/eslint-plugin@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz#c67794d2b0fd0b4a47f50266088acdc52a08aab6" + integrity sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w== + dependencies: + "@typescript-eslint/scope-manager" "5.29.0" + "@typescript-eslint/type-utils" "5.29.0" + "@typescript-eslint/utils" "5.29.0" + debug "^4.3.4" + functional-red-black-tree "^1.0.1" + ignore "^5.2.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/parser/-/parser-5.29.0.tgz#41314b195b34d44ff38220caa55f3f93cfca43cf" + integrity sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw== + dependencies: + "@typescript-eslint/scope-manager" "5.29.0" + "@typescript-eslint/types" "5.29.0" + "@typescript-eslint/typescript-estree" "5.29.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz#2a6a32e3416cb133e9af8dcf54bf077a916aeed3" + integrity sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA== + dependencies: + "@typescript-eslint/types" "5.29.0" + "@typescript-eslint/visitor-keys" "5.29.0" + +"@typescript-eslint/type-utils@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz#241918001d164044020b37d26d5b9f4e37cc3d5d" + integrity sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg== + dependencies: + "@typescript-eslint/utils" "5.29.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/types/-/types-5.29.0.tgz#7861d3d288c031703b2d97bc113696b4d8c19aab" + integrity sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg== + +"@typescript-eslint/typescript-estree@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz#e83d19aa7fd2e74616aab2f25dfbe4de4f0b5577" + integrity sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ== + dependencies: + "@typescript-eslint/types" "5.29.0" + "@typescript-eslint/visitor-keys" "5.29.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/utils/-/utils-5.29.0.tgz#775046effd5019667bd086bcf326acbe32cd0082" + integrity sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.29.0" + "@typescript-eslint/types" "5.29.0" + "@typescript-eslint/typescript-estree" "5.29.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/visitor-keys@5.29.0": + version "5.29.0" + resolved "http://192.168.25.57:8081/repository/npm-group/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz#7a4749fa7ef5160c44a451bf060ac1dc6dfb77ee" + integrity sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ== + dependencies: + "@typescript-eslint/types" "5.29.0" + eslint-visitor-keys "^3.3.0" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "http://192.168.25.57:8081/repository/npm-group/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +assert@*: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== + dependencies: + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" + +assertion-error@^2.0.1: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "http://192.168.25.57:8081/repository/npm-group/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +builtin-modules@3.3.0: + version "3.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.7: + version "1.0.7" + resolved "http://192.168.25.57:8081/repository/npm-group/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +camelcase@^6.0.0: + version "6.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chai-as-promised@*: + version "7.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai@*: + version "5.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/chai/-/chai-5.1.0.tgz#648cf2d8b5d16f32646612e22ffd12dc617ef960" + integrity sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw== + dependencies: + assertion-error "^2.0.1" + check-error "^2.0.0" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^1.0.2: + version "1.0.3" + resolved "http://192.168.25.57:8081/repository/npm-group/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +check-error@^2.0.0: + version "2.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/check-error/-/check-error-2.0.0.tgz#589a4f201b6256fd93a2d165089fe43d2676d8c6" + integrity sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog== + +chokidar@3.5.3: + version "3.5.3" + resolved "http://192.168.25.57:8081/repository/npm-group/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cliui@^7.0.2: + version "7.0.4" + resolved "http://192.168.25.57:8081/repository/npm-group/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "http://192.168.25.57:8081/repository/npm-group/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "http://192.168.25.57:8081/repository/npm-group/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "http://192.168.25.57:8081/repository/npm-group/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +csstype@^3.0.2: + version "3.1.3" + resolved "http://192.168.25.57:8081/repository/npm-group/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +date-format@^4.0.14: + version "4.0.14" + resolved "http://192.168.25.57:8081/repository/npm-group/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== + +debug@4.3.4, debug@^4.1.0, debug@^4.3.4: + version "4.3.4" + resolved "http://192.168.25.57:8081/repository/npm-group/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^5.0.1: + version "5.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/deep-eql/-/deep-eql-5.0.1.tgz#21ea2c0d561a4d08cdd99c417ac584e0fb121385" + integrity sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw== + +deep-grep@>=0.4.0: + version "0.4.2" + resolved "http://192.168.25.57:8081/repository/npm-group/deep-grep/-/deep-grep-0.4.2.tgz#01cfb10561934b6f65a64ae4f5a52d675754e74f" + integrity sha512-BKSt03t5gTp+wK3rZl6VnUlVKS7+9pCuxms85/t+JefiuyKf9EkXN6oXDoB3uLN39gqnk6kaZpdxi/er1i7KYg== + dependencies: + chai "*" + log4js "*" + mocha "*" + q "*" + xact-id-tiny ">=0.0.6" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "http://192.168.25.57:8081/repository/npm-group/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.3, define-properties@^1.2.1: + version "1.2.1" + resolved "http://192.168.25.57:8081/repository/npm-group/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +diff@5.0.0: + version "5.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +errno@^0.1.1: + version "0.1.8" + resolved "http://192.168.25.57:8081/repository/npm-group/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +esbuild-plugin-css-modules@^0.3.0: + version "0.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/esbuild-plugin-css-modules/-/esbuild-plugin-css-modules-0.3.0.tgz#57f3ddb2b85ba493b0d5658802fc186a3a383a8f" + integrity sha512-PZmizvhwZxX3WAQVMYSHiBbHPI+aZdFrkEgnzPlMYMdd8r6EaWQne7fU6hEt0tyCZCOU0gDllVdCUMAAOUAXFQ== + dependencies: + "@types/css-tree" "^1.0.5" + "@types/fs-extra" "^9.0.11" + "@types/tmp" "^0.2.0" + css-tree "^1.1.2" + fs-extra "^9.0.1" + rm "^0.1.8" + tmp "^0.2.1" + typescript "^4.2.4" + +esbuild-plugin-less@^1.3.3: + version "1.3.3" + resolved "http://192.168.25.57:8081/repository/npm-group/esbuild-plugin-less/-/esbuild-plugin-less-1.3.3.tgz#cf886d8822b2b61f56f5f5ac6e17a29712a63510" + integrity sha512-dYXuCtLh0Jm0Uci45w4Hlel4ajkawIQva1MxrLyaarcrEtSxUZWoaZuiLzr/dDzT/p+wRKobbop5Tp8yALSfGw== + dependencies: + "@types/less" "^3.0.6" + less "^4.2.0" + +esbuild@0.17.3: + version "0.17.3" + resolved "http://192.168.25.57:8081/repository/npm-group/esbuild/-/esbuild-0.17.3.tgz#d9aa02a3bc441ed35f9569cd9505812ae3fcae61" + integrity sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g== + optionalDependencies: + "@esbuild/android-arm" "0.17.3" + "@esbuild/android-arm64" "0.17.3" + "@esbuild/android-x64" "0.17.3" + "@esbuild/darwin-arm64" "0.17.3" + "@esbuild/darwin-x64" "0.17.3" + "@esbuild/freebsd-arm64" "0.17.3" + "@esbuild/freebsd-x64" "0.17.3" + "@esbuild/linux-arm" "0.17.3" + "@esbuild/linux-arm64" "0.17.3" + "@esbuild/linux-ia32" "0.17.3" + "@esbuild/linux-loong64" "0.17.3" + "@esbuild/linux-mips64el" "0.17.3" + "@esbuild/linux-ppc64" "0.17.3" + "@esbuild/linux-riscv64" "0.17.3" + "@esbuild/linux-s390x" "0.17.3" + "@esbuild/linux-x64" "0.17.3" + "@esbuild/netbsd-x64" "0.17.3" + "@esbuild/openbsd-x64" "0.17.3" + "@esbuild/sunos-x64" "0.17.3" + "@esbuild/win32-arm64" "0.17.3" + "@esbuild/win32-ia32" "0.17.3" + "@esbuild/win32-x64" "0.17.3" + +escalade@^3.1.1: + version "3.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.4.3" + resolved "http://192.168.25.57:8081/repository/npm-group/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "http://192.168.25.57:8081/repository/npm-group/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.17.1" + resolved "http://192.168.25.57:8081/repository/npm-group/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.7: + version "3.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +for-each@^0.3.3: + version "0.3.3" + resolved "http://192.168.25.57:8081/repository/npm-group/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "http://192.168.25.57:8081/repository/npm-group/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "http://192.168.25.57:8081/repository/npm-group/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "http://192.168.25.57:8081/repository/npm-group/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@8.1.0: + version "8.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globby@^11.1.0: + version "11.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + resolved "http://192.168.25.57:8081/repository/npm-group/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +has-flag@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "http://192.168.25.57:8081/repository/npm-group/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "http://192.168.25.57:8081/repository/npm-group/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0: + version "2.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "http://192.168.25.57:8081/repository/npm-group/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ignore@^5.2.0: + version "5.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@~0.5.0: + version "0.5.5" + resolved "http://192.168.25.57:8081/repository/npm-group/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "http://192.168.25.57:8081/repository/npm-group/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3: + version "2.0.4" + resolved "http://192.168.25.57:8081/repository/npm-group/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-callable@^1.1.3: + version "1.2.7" + resolved "http://192.168.25.57:8081/repository/npm-group/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "http://192.168.25.57:8081/repository/npm-group/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "http://192.168.25.57:8081/repository/npm-group/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-nan@^1.3.2: + version "1.3.2" + resolved "http://192.168.25.57:8081/repository/npm-group/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-number@^7.0.0: + version "7.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-typed-array@^1.1.3: + version "1.1.13" + resolved "http://192.168.25.57:8081/repository/npm-group/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-what@^3.14.1: + version "3.14.1" + resolved "http://192.168.25.57:8081/repository/npm-group/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +less@^4.2.0: + version "4.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== + dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" + tslib "^2.3.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + needle "^3.1.0" + source-map "~0.6.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +log-symbols@4.1.0: + version "4.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log4js@*: + version "6.9.1" + resolved "http://192.168.25.57:8081/repository/npm-group/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" + rfdc "^1.3.0" + streamroller "^3.1.5" + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "http://192.168.25.57:8081/repository/npm-group/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^3.1.0: + version "3.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/loupe/-/loupe-3.1.0.tgz#46ef1a4ffee73145f5c0a627536d754787c1ea2a" + integrity sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg== + dependencies: + get-func-name "^2.0.1" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "http://192.168.25.57:8081/repository/npm-group/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "http://192.168.25.57:8081/repository/npm-group/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "http://192.168.25.57:8081/repository/npm-group/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime@^1.4.1: + version "1.6.0" + resolved "http://192.168.25.57:8081/repository/npm-group/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@5.0.1: + version "5.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^5.0.1: + version "5.1.6" + resolved "http://192.168.25.57:8081/repository/npm-group/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@*: + version "1.2.8" + resolved "http://192.168.25.57:8081/repository/npm-group/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mocha@*: + version "10.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "8.1.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +moment@2.29.4: + version "2.29.4" + resolved "http://192.168.25.57:8081/repository/npm-group/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +moment@>=2.0.0, moment@>=2.4.0: + version "2.30.1" + resolved "http://192.168.25.57:8081/repository/npm-group/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +monaco-editor@^0.44.0: + version "0.44.0" + resolved "http://192.168.25.57:8081/repository/npm-group/monaco-editor/-/monaco-editor-0.44.0.tgz#3c0fe3655923bbf7dd647057302070b5095b6c59" + integrity sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q== + +ms@2.1.2: + version "2.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "http://192.168.25.57:8081/repository/npm-group/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +needle@^3.1.0: + version "3.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" + integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== + dependencies: + iconv-lite "^0.6.3" + sax "^1.2.4" + +nock@*: + version "13.5.4" + resolved "http://192.168.25.57:8081/repository/npm-group/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +object-assign@^4.1.1: + version "4.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-is@^1.1.5: + version "1.1.6" + resolved "http://192.168.25.57:8081/repository/npm-group/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.5" + resolved "http://192.168.25.57:8081/repository/npm-group/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obsidian@latest: + version "1.5.7-1" + resolved "http://192.168.25.57:8081/repository/npm-group/obsidian/-/obsidian-1.5.7-1.tgz#6e367f015f6a1b6b13204135434bbe3c04d4dfc3" + integrity sha512-T5ZRuQ1FnfXqEoakTTHVDYvzUEEoT8zSPnQCW31PVgYwG4D4tZCQfKHN2hTz1ifnCe8upvwa6mBTAP2WUA5Vng== + dependencies: + "@types/codemirror" "5.60.8" + moment "2.29.4" + +once@^1.3.0: + version "1.4.0" + resolved "http://192.168.25.57:8081/repository/npm-group/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parse-node-version@^1.0.1: + version "1.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +path-exists@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-type@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^2.0.0: + version "2.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +prop-types@^15.8.1: + version "15.8.1" + resolved "http://192.168.25.57:8081/repository/npm-group/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +propagate@^2.0.0: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +prr@~1.0.1: + version "1.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +q@*: + version "1.5.1" + resolved "http://192.168.25.57:8081/repository/npm-group/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "http://192.168.25.57:8081/repository/npm-group/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-dom@^18.2.0: + version "18.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-is@^16.13.1: + version "16.13.1" + resolved "http://192.168.25.57:8081/repository/npm-group/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-monaco-editor@^0.55.0: + version "0.55.0" + resolved "http://192.168.25.57:8081/repository/npm-group/react-monaco-editor/-/react-monaco-editor-0.55.0.tgz#8933e8acc28e177b8b2aaf23593716b8cebf27a8" + integrity sha512-GdEP0Q3Rn1dczfKEEyY08Nes5plWwIYU4sWRBQO0+jsQWQsKMHKCC6+hPRwR7G/4aA3V/iU9jSmWPzVJYMVFSQ== + dependencies: + prop-types "^15.8.1" + +react@^18.2.0: + version "18.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "http://192.168.25.57:8081/repository/npm-group/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regexpp@^3.2.0: + version "3.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +reusify@^1.0.4: + version "1.0.4" + resolved "http://192.168.25.57:8081/repository/npm-group/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.1" + resolved "http://192.168.25.57:8081/repository/npm-group/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +riak-dc@>=0.3.1: + version "0.3.2" + resolved "http://192.168.25.57:8081/repository/npm-group/riak-dc/-/riak-dc-0.3.2.tgz#093cbbe1ced1a3a4244545499204cc68a909b454" + integrity sha512-hRWJ4C54YL/ik9IUcufMp+dBdIh1VPSRKb5Sy2sFQICpfUChvRiXazp+xhNKtG10Pg6ldIMNPhcu8mMr6I0I0g== + dependencies: + chai "*" + chai-as-promised "*" + log4js "*" + minimist "*" + mocha "*" + nock "*" + q "*" + sendak-usage ">=0.0.3" + xact-id-tiny ">=0.0.5" + +rm@^0.1.8: + version "0.1.8" + resolved "http://192.168.25.57:8081/repository/npm-group/rm/-/rm-0.1.8.tgz#06d2fadbf661390f697d73b05e0be8c239bfbc7e" + integrity sha512-5nCVLbXx/Qio6tDxQX8mGI1Ugrh9TQqurQx/eEqHLU8fIi+80P56IrmFD+KrJ2g4FPuQWskD6Q2674BuHPt4Bg== + dependencies: + chai "*" + chai-as-promised "*" + deep-grep ">=0.4.0" + log4js "*" + mocha "*" + moment ">=2.0.0" + nock "*" + q "*" + riak-dc ">=0.3.1" + sendak-usage ">=0.0.6" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.1.0: + version "5.2.1" + resolved "http://192.168.25.57:8081/repository/npm-group/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.3.0" + resolved "http://192.168.25.57:8081/repository/npm-group/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +scheduler@^0.23.0: + version "0.23.0" + resolved "http://192.168.25.57:8081/repository/npm-group/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semver@^5.6.0: + version "5.7.2" + resolved "http://192.168.25.57:8081/repository/npm-group/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^7.3.7: + version "7.6.0" + resolved "http://192.168.25.57:8081/repository/npm-group/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +sendak-usage@>=0.0.3, sendak-usage@>=0.0.6: + version "0.0.10" + resolved "http://192.168.25.57:8081/repository/npm-group/sendak-usage/-/sendak-usage-0.0.10.tgz#43c496f55fd11077741fd6aba1876d482fe3e116" + integrity sha512-1FnIG0SEfwKnHqgNYTvhuVV5gMTWVvexkSqgCXBsIMnEV/rPX/vD149PSIoE8laRSC57G3aE46KB0xEGlYGUtQ== + dependencies: + chai "*" + log4js "*" + minimist "*" + mocha "*" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "http://192.168.25.57:8081/repository/npm-group/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +singleton@*: + version "1.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/singleton/-/singleton-1.0.0.tgz#e5f1ab11b5d0b77a171ef9ffd5d93483d1356cde" + integrity sha512-3VmDrfrealF6VSMFLvnbgDwKXmPwggjRDH6Yi7Dyetl5FJ6hQpjvmBJ/mGxNJnubSp0M8aKq513vEakacImcOw== + +slash@^3.0.0: + version "3.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "http://192.168.25.57:8081/repository/npm-group/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +streamroller@^3.1.5: + version "3.1.5" + resolved "http://192.168.25.57:8081/repository/npm-group/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "http://192.168.25.57:8081/repository/npm-group/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@8.1.1: + version "8.1.1" + resolved "http://192.168.25.57:8081/repository/npm-group/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +tmp@^0.2.1: + version "0.2.3" + resolved "http://192.168.25.57:8081/repository/npm-group/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@2.4.0: + version "2.4.0" + resolved "http://192.168.25.57:8081/repository/npm-group/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^1.8.1: + version "1.14.1" + resolved "http://192.168.25.57:8081/repository/npm-group/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.3.0: + version "2.6.2" + resolved "http://192.168.25.57:8081/repository/npm-group/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "http://192.168.25.57:8081/repository/npm-group/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +typescript@4.7.4: + version "4.7.4" + resolved "http://192.168.25.57:8081/repository/npm-group/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +typescript@^4.2.4: + version "4.9.5" + resolved "http://192.168.25.57:8081/repository/npm-group/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +undici-types@~5.26.4: + version "5.26.5" + resolved "http://192.168.25.57:8081/repository/npm-group/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +universalify@^0.1.0: + version "0.1.2" + resolved "http://192.168.25.57:8081/repository/npm-group/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.1" + resolved "http://192.168.25.57:8081/repository/npm-group/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +util@^0.12.5: + version "0.12.5" + resolved "http://192.168.25.57:8081/repository/npm-group/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +which-typed-array@^1.1.14, which-typed-array@^1.1.2: + version "1.1.15" + resolved "http://192.168.25.57:8081/repository/npm-group/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +workerpool@6.2.1: + version "6.2.1" + resolved "http://192.168.25.57:8081/repository/npm-group/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "http://192.168.25.57:8081/repository/npm-group/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xact-id-tiny@>=0.0.5, xact-id-tiny@>=0.0.6: + version "0.0.7" + resolved "http://192.168.25.57:8081/repository/npm-group/xact-id-tiny/-/xact-id-tiny-0.0.7.tgz#4c305e0680d8ca7a472b904a3b407063adb1d12c" + integrity sha512-bWLzZoTn1yjlNYFMLvZKcCCWH/cRpNJo2nXaEDuWbafmI3hNx2zIGEOjHypcxYShlmDUrKX7oHQ4DwkT+sCrHg== + dependencies: + assert "*" + log4js "*" + mocha "*" + moment ">=2.4.0" + singleton "*" + +y18n@^5.0.5: + version "5.0.8" + resolved "http://192.168.25.57:8081/repository/npm-group/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "http://192.168.25.57:8081/repository/npm-group/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "http://192.168.25.57:8081/repository/npm-group/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "http://192.168.25.57:8081/repository/npm-group/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "http://192.168.25.57:8081/repository/npm-group/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "http://192.168.25.57:8081/repository/npm-group/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==