From 67eeeb830a7998ba65a6de38814c13c8629a34b1 Mon Sep 17 00:00:00 2001 From: deepinthought Date: Sat, 28 Dec 2019 23:44:54 -0600 Subject: [PATCH] Version 0.3.0 - Fixed bug where extension would always be disabled. - Changed snippets to new JSON files to match usage. - Added extension TypeScript file for future usage. - Removed useless dependencies in the package.json file. - Improved all of the entries in the snippets files. They now pass shellcheck and work as intended. - Improved description and choices for entries. --- CHANGELOG.md | 14 +- DBC_Snippet_Project_Board.md | 74 - Jakefile.js | 874 --- LICENSE.md | 2 +- README.deepIT.md | 5 - README.md | 23 +- TODO | 6 +- azure-pipeline.yml | 0 dialog.sh | 89 - docker-builder.sh.sh | 10 - git-build.sh | 112 - out/extension.js | 26 + out/extension.js.map | 1 + out/test/runTest.js | 33 + out/test/runTest.js.map | 1 + out/test/suite/extension.test.js | 15 + out/test/suite/extension.test.js.map | 1 + out/test/suite/index.js | 38 + out/test/suite/index.js.map | 1 + package-lock.json | 7358 +++----------------------- package.json | 132 +- snippets/bulk-snippets.json | 27 + snippets/frequently-used.json | 27 - snippets/shellscript.json | 206 +- snippets/tests.json | 102 + src/extension.ts | 26 + src/test/runTest.ts | 23 + src/test/suite/extension.test.ts | 15 + src/test/suite/index.ts | 37 + tsconfig-orig.json | 25 - tsconfig.json | 145 +- tslint.json | 15 + vscode-shell-snippets-0.2.0.vsix | Bin 72016 -> 0 bytes vscode-shell-snippets-0.3.0.vsix | Bin 0 -> 23640 bytes 34 files changed, 1202 insertions(+), 8261 deletions(-) delete mode 100644 DBC_Snippet_Project_Board.md delete mode 100644 Jakefile.js delete mode 100644 azure-pipeline.yml delete mode 100755 dialog.sh delete mode 100755 docker-builder.sh.sh delete mode 100755 git-build.sh create mode 100644 out/extension.js create mode 100644 out/extension.js.map create mode 100644 out/test/runTest.js create mode 100644 out/test/runTest.js.map create mode 100644 out/test/suite/extension.test.js create mode 100644 out/test/suite/extension.test.js.map create mode 100644 out/test/suite/index.js create mode 100644 out/test/suite/index.js.map create mode 100644 snippets/bulk-snippets.json delete mode 100644 snippets/frequently-used.json create mode 100644 snippets/tests.json create mode 100644 src/extension.ts create mode 100644 src/test/runTest.ts create mode 100644 src/test/suite/extension.test.ts create mode 100644 src/test/suite/index.ts delete mode 100644 tsconfig-orig.json create mode 100644 tslint.json delete mode 100644 vscode-shell-snippets-0.2.0.vsix create mode 100644 vscode-shell-snippets-0.3.0.vsix diff --git a/CHANGELOG.md b/CHANGELOG.md index 245f3d1..fe12ac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,17 @@ [CHANGELOG.md](https://raw.githubusercontent.com/DeepInThought/vscode-shell-snippets/master/CHANGELOG.md). +## Version 0.3.0 + +- Fixed bug where extension would always be disabled. +- Changed snippets to new JSON files to match usage. +- Added extension TypeScript file for future usage. +- Removed useless dependencies in the package.json file. +- Improved all of the entries in the snippets files. + They now pass shellcheck and work as intended. +- Improved description and choices for entries. + ## Version 0.2.0 -+ [Vulnerabilies] Security vulnerabilities detected in dependencies. - + Dependency event-stream associated with [flatmap-stream](https://github.com/dominictarr/event-stream/issues/116) was found malicious. \ No newline at end of file +- [Vulnerabilies] Security vulnerabilities detected in dependencies. + - Dependency event-stream associated with [flatmap-stream](https://github.com/dominictarr/event-stream/issues/116) was found malicious. diff --git a/DBC_Snippet_Project_Board.md b/DBC_Snippet_Project_Board.md deleted file mode 100644 index 01a5fca..0000000 --- a/DBC_Snippet_Project_Board.md +++ /dev/null @@ -1,74 +0,0 @@ -# DBC Snippet Project Board - -[DeepBrainChain](https://www.deepbrainchain.org) - Import vendor information and details. - -![DeepBrainChain_Logo](https://deepit-space.nyc3.digitaloceanspaces.com/deepinthought/public/deepbrainchain/imgs/DeepBrain_Chain_logo.png) - ---- - -+ [X] [DeepBrainChain](https://www.deepbrainchain.org) - Import vendor information. -+ [ ] Completed First: [DBC_Snippet_Project_Card](https://github.com/DeepInThought/vscode-shell-snippets/projects/1#card-13428103) -+ [ ] Add Ubuntu 16.04 Compatible Snippets. - + [ ] Run unit tests and automate reports. -+ [ ] Add Ubuntu 18.04 Compatible Snippets. -+ [ ] Custom DeepIT installer for DBC. - + [ ] Auto-patcher with logging. - + [ ] Optional reporter to the DeepIT monitors. -+ [ ] DeepInThought mining snippets for docs.thedeep.network mining pool infrastructure. -+ [ ] API construction. - + [ ] GraphQL - + [ ] Docker Compose - + [ ] Serverless backend. - + [ ] Kubernetes - + [ ] Docker Swarm - + [ ] Continuous Integration - + [ ] Continuous Building - + [ ] Security, Info and Container Scanning. - + [ ] Continuous Tagging - + [ ] Continuous Deployment - ---- - -## GitHub DBC Project Cards - ---- - -### DBC Snippet Card - -[DeepBrainChain](https://www.deepbrainchain.org) - Import vendor information and details. - -+ [ ] Create vendor folder in Git repositories. -+ [ ] Create vendor/vendor.json of directory. - + [ ] vendor/vendor.json should adhere to JSON formating. - + [ ] vendor/vendor.json key/value examples: - -```json -{ - "comment": "Examples of vendor input in vendor/vendor.json file.", - "ignore": "test appengine", - "package": [ - { - "path": "github.com/DeepBrainChain/deepbrainchain-release", - "checksumSHA1": "2f28e09662bde11b545b3ada640ce6e34d80804f", - "revision": "afa832c948baee6584da53a36639af99d3e5383d", - "revisionTime": "2018-08-07" - }, - { - "path": "golang.org/x/crypto/ed25519/internal/edwards25519", - "checksumSHA1": "0JTAFXPkankmWcZGQJGScLDiaN8=", - "revision": "2d027ae1dddd4694d54f7a8b6cbe78dca8720226", - "revisionTime": "2018-05-09T20:48:04Z" - }, - { -``` - ---- - -### DBC Ubuntu Snippets - -First release will be for 16.04 with a repository tag and release section. - -+ [ ] Verify completion [DBC_Snippet_Project_Card](https://github.com/DeepInThought/vscode-shell-snippets/projects/1#card-13428103) -+ [ ] Add Ubuntu 16.04 Compatible Snippets. - + [ ] Run unit tests and automate reports. -+ [ ] Add Ubuntu 18.04 Compatible Snippets. \ No newline at end of file diff --git a/Jakefile.js b/Jakefile.js deleted file mode 100644 index 6ecb67a..0000000 --- a/Jakefile.js +++ /dev/null @@ -1,874 +0,0 @@ -// This file contains the build logic for the public repo -// @ts-check -/// - -const fs = require("fs"); -const os = require("os"); -const path = require("path"); -const fold = require("travis-fold"); -const ts = require("./lib/typescript"); -const del = require("del"); -const getDirSize = require("./scripts/build/getDirSize"); -const { base64VLQFormatEncode } = require("./scripts/build/sourcemaps"); -const needsUpdate = require("./scripts/build/needsUpdate"); -const { flatten } = require("./scripts/build/project"); - -// add node_modules to path so we don't need global modules, prefer the modules by adding them first -var nodeModulesPathPrefix = path.resolve("./node_modules/.bin/") + path.delimiter; -if (process.env.path !== undefined) { - process.env.path = nodeModulesPathPrefix + process.env.path; -} -else if (process.env.PATH !== undefined) { - process.env.PATH = nodeModulesPathPrefix + process.env.PATH; -} - -const host = process.env.TYPESCRIPT_HOST || process.env.host || "node"; - -const locales = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-BR", "ru", "tr", "zh-CN", "zh-TW"]; - -const defaultTestTimeout = 40000; - -let useDebugMode = true; - -const TaskNames = { - local: "local", - runtests: "runtests", - runtestsParallel: "runtests-parallel", - buildRules: "build-rules", - clean: "clean", - lib: "lib", - buildFoldStart: "build-fold-start", - buildFoldEnd: "build-fold-end", - generateDiagnostics: "generate-diagnostics", - coreBuild: "core-build", - tsc: "tsc", - lkg: "LKG", - release: "release", - lssl: "lssl", - lint: "lint", - scripts: "scripts", - localize: "localize", - configureInsiders: "configure-insiders", - publishInsiders: "publish-insiders", - configureNightly: "configure-nightly", - publishNightly: "publish-nightly", - help: "help" -}; - -const Paths = {}; -Paths.lkg = "lib"; -Paths.lkgCompiler = "lib/tsc.js"; -Paths.built = "built"; -Paths.builtLocal = "built/local"; -Paths.builtLocalCompiler = "built/local/tsc.js"; -Paths.builtLocalTSServer = "built/local/tsserver.js"; -Paths.builtLocalRun = "built/local/run.js"; -Paths.releaseCompiler = "built/local/tsc.release.js"; -Paths.typesMapOutput = "built/local/typesMap.json"; -Paths.typescriptFile = "built/local/typescript.js"; -Paths.servicesFile = "built/local/typescriptServices.js"; -Paths.servicesDefinitionFile = "built/local/typescriptServices.d.ts"; -Paths.servicesOutFile = "built/local/typescriptServices.out.js"; -Paths.servicesDefinitionOutFile = "built/local/typescriptServices.out.d.ts"; -Paths.typescriptDefinitionFile = "built/local/typescript.d.ts"; -Paths.typescriptStandaloneDefinitionFile = "built/local/typescript_standalone.d.ts"; -Paths.tsserverLibraryFile = "built/local/tsserverlibrary.js"; -Paths.tsserverLibraryDefinitionFile = "built/local/tsserverlibrary.d.ts"; -Paths.tsserverLibraryOutFile = "built/local/tsserverlibrary.out.js"; -Paths.tsserverLibraryDefinitionOutFile = "built/local/tsserverlibrary.out.d.ts"; -Paths.baselines = {}; -Paths.baselines.local = "tests/baselines/local"; -Paths.baselines.localTest262 = "tests/baselines/test262/local"; -Paths.baselines.localRwc = "internal/baselines/rwc/local"; -Paths.baselines.reference = "tests/baselines/reference"; -Paths.baselines.referenceTest262 = "tests/baselines/test262/reference"; -Paths.baselines.referenceRwc = "internal/baselines/rwc/reference"; -Paths.copyright = "CopyrightNotice.txt"; -Paths.thirdParty = "ThirdPartyNoticeText.txt"; -Paths.processDiagnosticMessagesJs = "scripts/processDiagnosticMessages.js"; -Paths.diagnosticInformationMap = "src/compiler/diagnosticInformationMap.generated.ts"; -Paths.diagnosticMessagesJson = "src/compiler/diagnosticMessages.json"; -Paths.diagnosticGeneratedJson = "src/compiler/diagnosticMessages.generated.json"; -Paths.builtDiagnosticGeneratedJson = "built/local/diagnosticMessages.generated.json"; -Paths.lcl = "src/loc/lcl" -Paths.locLcg = "built/local/enu/diagnosticMessages.generated.json.lcg"; -Paths.generatedLCGFile = path.join(Paths.builtLocal, "enu", "diagnosticMessages.generated.json.lcg"); -Paths.library = "src/lib"; -Paths.srcServer = "src/server"; -Paths.scripts = {}; -Paths.scripts.generateLocalizedDiagnosticMessages = "scripts/generateLocalizedDiagnosticMessages.js"; -Paths.scripts.processDiagnosticMessages = "scripts/processDiagnosticMessages.js"; -Paths.scripts.produceLKG = "scripts/produceLKG.js"; -Paths.scripts.configurePrerelease = "scripts/configurePrerelease.js"; -Paths.packageJson = "package.json"; -Paths.versionFile = "src/compiler/core.ts"; - -const ConfigFileFor = { - tsc: "src/tsc", - tscRelease: "src/tsc/tsconfig.release.json", - tsserver: "src/tsserver", - runjs: "src/testRunner", - lint: "scripts/tslint", - scripts: "scripts", - all: "src", - typescriptServices: "built/local/typescriptServices.tsconfig.json", - tsserverLibrary: "built/local/tsserverlibrary.tsconfig.json", -}; - -const ExpectedLKGFiles = [ - "tsc.js", - "tsserver.js", - "typescriptServices.js", - "typescriptServices.d.ts", - "typescript.js", - "typescript.d.ts", - "cancellationToken.js", - "typingsInstaller.js", - "protocol.d.ts", - "watchGuard.js" -]; - -directory(Paths.builtLocal); - -// Local target to build the compiler and services -desc("Builds the full compiler and services"); -task(TaskNames.local, [ - TaskNames.buildFoldStart, - TaskNames.coreBuild, - Paths.servicesDefinitionFile, - Paths.typescriptFile, - Paths.typescriptDefinitionFile, - Paths.typescriptStandaloneDefinitionFile, - Paths.tsserverLibraryDefinitionFile, - TaskNames.localize, - TaskNames.buildFoldEnd -]); - -task("default", [TaskNames.local]); - -const RunTestsPrereqs = [TaskNames.lib, Paths.servicesDefinitionFile, Paths.typescriptDefinitionFile, Paths.tsserverLibraryDefinitionFile]; -desc("Runs all the tests in parallel using the built run.js file. Optional arguments are: t[ests]=category1|category2|... d[ebug]=true."); -task(TaskNames.runtestsParallel, RunTestsPrereqs, function () { - tsbuild([ConfigFileFor.runjs], true, () => { - runConsoleTests("min", /*parallel*/ true); - }); -}, { async: true }); - -desc("Runs all the tests in parallel using the built run.js file. Optional arguments are: t[ests]=category1|category2|... d[ebug]=true."); -task(TaskNames.runtests, RunTestsPrereqs, function () { - tsbuild([ConfigFileFor.runjs], true, () => { - runConsoleTests('mocha-fivemat-progress-reporter', /*runInParallel*/ false); - }); -}, { async: true }); - -desc("Generates a diagnostic file in TypeScript based on an input JSON file"); -task(TaskNames.generateDiagnostics, [Paths.diagnosticInformationMap]); - -const libraryTargets = getLibraryTargets(); -desc("Builds the library targets"); -task(TaskNames.lib, libraryTargets); - -desc("Builds internal scripts"); -task(TaskNames.scripts, [TaskNames.coreBuild], function() { - tsbuild([ConfigFileFor.scripts], true, () => { - complete(); - }); -}, { async: true }); - -task(Paths.releaseCompiler, function () { - tsbuild([ConfigFileFor.tscRelease], true, () => { - complete(); - }); -}, { async: true }); - -// Makes a new LKG. This target does not build anything, but errors if not all the outputs are present in the built/local directory -desc("Makes a new LKG out of the built js files"); -task(TaskNames.lkg, [ - TaskNames.scripts, - TaskNames.release, - TaskNames.local, - Paths.servicesDefinitionFile, - Paths.typescriptFile, - Paths.typescriptDefinitionFile, - Paths.typescriptStandaloneDefinitionFile, - Paths.tsserverLibraryDefinitionFile, - Paths.releaseCompiler, - ...libraryTargets -], () => { - const sizeBefore = getDirSize(Paths.lkg); - - exec(`${host} ${Paths.scripts.produceLKG}`, () => { - const sizeAfter = getDirSize(Paths.lkg); - if (sizeAfter > (sizeBefore * 1.10)) { - throw new Error("The lib folder increased by 10% or more. This likely indicates a bug."); - } - - complete(); - }); -}, { async: true }); - -desc("Makes the most recent test results the new baseline, overwriting the old baseline"); -task("baseline-accept", function () { - acceptBaseline(Paths.baselines.local, Paths.baselines.reference); -}); - -desc("Makes the most recent rwc test results the new baseline, overwriting the old baseline"); -task("baseline-accept-rwc", function () { - acceptBaseline(Paths.baselines.localRwc, Paths.baselines.referenceRwc); -}); - -desc("Makes the most recent test262 test results the new baseline, overwriting the old baseline"); -task("baseline-accept-test262", function () { - acceptBaseline(Paths.baselines.localTest262, Paths.baselines.referenceTest262); -}); - -desc("Runs tslint on the compiler sources. Optional arguments are: f[iles]=regex"); -task(TaskNames.lint, [TaskNames.buildRules], () => { - if (fold.isTravis()) console.log(fold.start("lint")); - function lint(project, cb) { - const fix = process.env.fix || process.env.f; - const cmd = `node node_modules/tslint/bin/tslint --project ${project} --formatters-dir ./built/local/tslint/formatters --format autolinkableStylish${fix ? " --fix" : ""}`; - exec(cmd, cb); - } - lint("scripts/tslint/tsconfig.json", () => lint("src/tsconfig-base.json", () => { - if (fold.isTravis()) console.log(fold.end("lint")); - complete(); - })); -}, { async: true }); - -desc("Diffs the compiler baselines using the diff tool specified by the 'DIFF' environment variable"); -task('diff', function () { - var cmd = `"${getDiffTool()}" ${Paths.baselines.reference} ${Paths.baselines.local}`; - exec(cmd); -}, { async: true }); - -desc("Diffs the RWC baselines using the diff tool specified by the 'DIFF' environment variable"); -task('diff-rwc', function () { - var cmd = `"${getDiffTool()}" ${Paths.baselines.referenceRwc} ${Paths.baselines.localRwc}`; - exec(cmd); -}, { async: true }); - -task(TaskNames.configureNightly, [TaskNames.scripts], function () { - const cmd = `${host} ${Paths.scripts.configurePrerelease} dev ${Paths.packageJson} ${Paths.versionFile}`; - exec(cmd, () => complete()); -}, { async: true }); - -desc("Configure, build, test, and publish the nightly release."); -task(TaskNames.publishNightly, [TaskNames.coreBuild, TaskNames.configureNightly, TaskNames.lkg, "setDebugMode", "runtests-parallel"], function () { - var cmd = "npm publish --tag next"; - exec(cmd, () => complete()); -}, { async: true }); - -task(TaskNames.help, function() { - var cmd = "jake --tasks"; - exec(cmd, () => complete()); -}) - -task(TaskNames.configureInsiders, [TaskNames.scripts], function () { - const cmd = `${host} ${Paths.scripts.configurePrerelease} insiders ${Paths.packageJson} ${Paths.versionFile}`; - exec(cmd, () => complete()); -}, { async: true }); - -desc("Configure, build, test, and publish the insiders release."); -task(TaskNames.publishInsiders, [TaskNames.coreBuild, TaskNames.configureInsiders, TaskNames.lkg, "setDebugMode", "runtests-parallel"], function () { - var cmd = "npm publish --tag insiders"; - exec(cmd, () => complete()); -}, { async: true }); - -desc("Sets the release mode flag"); -task("release", function () { - useDebugMode = false; -}); - -desc("Clears the release mode flag"); -task("setDebugMode", function () { - useDebugMode = true; -}); - -desc("Generates localized diagnostic messages"); -task(TaskNames.localize, [Paths.generatedLCGFile]); - -desc("Emit the start of the build fold"); -task(TaskNames.buildFoldStart, [], function () { - if (fold.isTravis()) console.log(fold.start("build")); -}); - -desc("Emit the end of the build fold"); -task(TaskNames.buildFoldEnd, [], function () { - if (fold.isTravis()) console.log(fold.end("build")); -}); - -desc("Compiles tslint rules to js"); -task(TaskNames.buildRules, [], function () { - tsbuild(ConfigFileFor.lint, false, () => complete()); -}, { async: true }); - -desc("Cleans the compiler output, declare files, and tests"); -task(TaskNames.clean, function () { - jake.rmRf(Paths.built); -}); - -desc("Generates the LCG file for localization"); -task("localize", [Paths.generatedLCGFile]); - -task(TaskNames.tsc, [Paths.diagnosticInformationMap, TaskNames.lib], function () { - tsbuild(ConfigFileFor.tsc, true, () => { - complete(); - }); -}, { async: true }); - -task(TaskNames.coreBuild, [Paths.diagnosticInformationMap, TaskNames.lib], function () { - tsbuild(ConfigFileFor.all, true, () => { - complete(); - }); -}, { async: true }); - -file(Paths.diagnosticMessagesJson); - -file(Paths.typesMapOutput, /** @type {*} */(function () { - var content = readFileSync(path.join(Paths.srcServer, 'typesMap.json')); - // Validate that it's valid JSON - try { - JSON.parse(content); - } catch (e) { - console.log("Parse error in typesMap.json: " + e); - } - fs.writeFileSync(Paths.typesMapOutput, content); -})); - -file(Paths.builtDiagnosticGeneratedJson, [Paths.diagnosticGeneratedJson], function () { - if (fs.existsSync(Paths.builtLocal)) { - jake.cpR(Paths.diagnosticGeneratedJson, Paths.builtDiagnosticGeneratedJson); - } -}); - -// Localized diagnostics -file(Paths.generatedLCGFile, [TaskNames.scripts, Paths.diagnosticInformationMap, Paths.diagnosticGeneratedJson], function () { - const cmd = `${host} ${Paths.scripts.generateLocalizedDiagnosticMessages} ${Paths.lcl} ${Paths.builtLocal} ${Paths.diagnosticGeneratedJson}` - exec(cmd, complete); -}, { async: true }); - - -// The generated diagnostics map; built for the compiler and for the 'generate-diagnostics' task -file(Paths.diagnosticInformationMap, [Paths.diagnosticMessagesJson], function () { - tsbuild(ConfigFileFor.scripts, true, () => { - const cmd = `${host} ${Paths.scripts.processDiagnosticMessages} ${Paths.diagnosticMessagesJson}`; - exec(cmd, complete); - }); -}, { async: true }); - -file(ConfigFileFor.tsserverLibrary, [], function () { - flatten("src/tsserver/tsconfig.json", ConfigFileFor.tsserverLibrary, { - exclude: ["src/tsserver/server.ts"], - compilerOptions: { - "removeComments": false, - "stripInternal": true, - "declarationMap": false, - "outFile": "tsserverlibrary.out.js" - } - }) -}); - -// tsserverlibrary.js -// tsserverlibrary.d.ts -file(Paths.tsserverLibraryFile, [TaskNames.coreBuild, ConfigFileFor.tsserverLibrary], function() { - tsbuild(ConfigFileFor.tsserverLibrary, false, () => { - if (needsUpdate([Paths.tsserverLibraryOutFile, Paths.tsserverLibraryDefinitionOutFile], [Paths.tsserverLibraryFile, Paths.tsserverLibraryDefinitionFile])) { - const copyright = readFileSync(Paths.copyright); - - let libraryDefinitionContent = readFileSync(Paths.tsserverLibraryDefinitionOutFile); - libraryDefinitionContent = copyright + removeConstModifierFromEnumDeclarations(libraryDefinitionContent); - libraryDefinitionContent += "\nexport = ts;\nexport as namespace ts;"; - fs.writeFileSync(Paths.tsserverLibraryDefinitionFile, libraryDefinitionContent, "utf8"); - - let libraryContent = readFileSync(Paths.tsserverLibraryOutFile); - libraryContent = copyright + libraryContent; - fs.writeFileSync(Paths.tsserverLibraryFile, libraryContent, "utf8"); - - // adjust source map for tsserverlibrary.js - let libraryMapContent = readFileSync(Paths.tsserverLibraryOutFile + ".map"); - const map = JSON.parse(libraryMapContent); - const lineStarts = /**@type {*}*/(ts).computeLineStarts(copyright); - let prependMappings = ""; - for (let i = 1; i < lineStarts.length; i++) { - prependMappings += ";"; - } - - const offset = copyright.length - lineStarts[lineStarts.length - 1]; - if (offset > 0) { - prependMappings += base64VLQFormatEncode(offset) + ","; - } - - const outputMap = { - version: map.version, - file: map.file, - sources: map.sources, - sourceRoot: map.sourceRoot, - mappings: prependMappings + map.mappings, - names: map.names, - sourcesContent: map.sourcesContent - }; - - libraryMapContent = JSON.stringify(outputMap); - fs.writeFileSync(Paths.tsserverLibraryFile + ".map", libraryMapContent); - } - complete(); - }); -}, { async: true }); -task(Paths.tsserverLibraryDefinitionFile, [Paths.tsserverLibraryFile]); - -file(ConfigFileFor.typescriptServices, [], function () { - flatten("src/services/tsconfig.json", ConfigFileFor.typescriptServices, { - compilerOptions: { - "removeComments": false, - "stripInternal": true, - "declarationMap": false, - "outFile": "typescriptServices.out.js" - } - }); -}); - -// typescriptServices.js -// typescriptServices.d.ts -file(Paths.servicesFile, [TaskNames.coreBuild, ConfigFileFor.typescriptServices], function() { - tsbuild(ConfigFileFor.typescriptServices, false, () => { - if (needsUpdate([Paths.servicesOutFile, Paths.servicesDefinitionOutFile], [Paths.servicesFile, Paths.servicesDefinitionFile])) { - const copyright = readFileSync(Paths.copyright); - - let servicesDefinitionContent = readFileSync(Paths.servicesDefinitionOutFile); - servicesDefinitionContent = copyright + removeConstModifierFromEnumDeclarations(servicesDefinitionContent); - fs.writeFileSync(Paths.servicesDefinitionFile, servicesDefinitionContent, "utf8"); - - let servicesContent = readFileSync(Paths.servicesOutFile); - servicesContent = copyright + servicesContent; - fs.writeFileSync(Paths.servicesFile, servicesContent, "utf8"); - - // adjust source map for typescriptServices.js - let servicesMapContent = readFileSync(Paths.servicesOutFile + ".map"); - const map = JSON.parse(servicesMapContent); - const lineStarts = /**@type {*}*/(ts).computeLineStarts(copyright); - let prependMappings = ""; - for (let i = 1; i < lineStarts.length; i++) { - prependMappings += ";"; - } - - const offset = copyright.length - lineStarts[lineStarts.length - 1]; - if (offset > 0) { - prependMappings += base64VLQFormatEncode(offset) + ","; - } - - const outputMap = { - version: map.version, - file: map.file, - sources: map.sources, - sourceRoot: map.sourceRoot, - mappings: prependMappings + map.mappings, - names: map.names, - sourcesContent: map.sourcesContent - }; - - servicesMapContent = JSON.stringify(outputMap); - fs.writeFileSync(Paths.servicesFile + ".map", servicesMapContent); - } - - complete(); - }); -}, { async: true }); -task(Paths.servicesDefinitionFile, [Paths.servicesFile]); - -// typescript.js -// typescript.d.ts -file(Paths.typescriptFile, [Paths.servicesFile], function() { - if (needsUpdate([Paths.servicesFile, Paths.servicesDefinitionFile], [Paths.typescriptFile, Paths.typescriptDefinitionFile])) { - jake.cpR(Paths.servicesFile, Paths.typescriptFile); - if (fs.existsSync(Paths.servicesFile + ".map")) { - jake.cpR(Paths.servicesFile + ".map", Paths.typescriptFile + ".map"); - } - const content = readFileSync(Paths.servicesDefinitionFile); - fs.writeFileSync(Paths.typescriptDefinitionFile, content + "\r\nexport = ts;", { encoding: "utf-8" }); - } -}); -task(Paths.typescriptDefinitionFile, [Paths.typescriptFile]); - -// typescript_standalone.d.ts -file(Paths.typescriptStandaloneDefinitionFile, [Paths.servicesDefinitionFile], function() { - if (needsUpdate(Paths.servicesDefinitionFile, Paths.typescriptStandaloneDefinitionFile)) { - const content = readFileSync(Paths.servicesDefinitionFile); - fs.writeFileSync(Paths.typescriptStandaloneDefinitionFile, content.replace(/declare (namespace|module) ts(\..+)? \{/g, 'declare module "typescript" {'), { encoding: "utf-8"}); - } -}); - -function getLibraryTargets() { - /** @type {{ libs: string[], paths?: Record, sources?: Record }} */ - const libraries = readJson("./src/lib/libs.json"); - return libraries.libs.map(function (lib) { - const relativeSources = ["header.d.ts"].concat(libraries.sources && libraries.sources[lib] || [lib + ".d.ts"]); - const relativeTarget = libraries.paths && libraries.paths[lib] || ("lib." + lib + ".d.ts"); - const sources = [Paths.copyright].concat(relativeSources.map(s => path.join(Paths.library, s))); - const target = path.join(Paths.builtLocal, relativeTarget); - file(target, [Paths.builtLocal].concat(sources), function () { - concatenateFiles(target, sources); - }); - return target; - }); -} - -function runConsoleTests(defaultReporter, runInParallel) { - var dirty = process.env.dirty; - if (!dirty) { - cleanTestDirs(); - } - - let testTimeout = process.env.timeout || defaultTestTimeout; - const debug = process.env.debug || process.env["debug-brk"] || process.env.d; - const inspect = process.env.inspect || process.env["inspect-brk"] || process.env.i; - const runners = process.env.runners || process.env.runner || process.env.ru; - const tests = process.env.test || process.env.tests || process.env.t; - const light = process.env.light === undefined || process.env.light !== "false"; - const failed = process.env.failed; - const keepFailed = process.env.keepFailed || failed; - const stackTraceLimit = process.env.stackTraceLimit; - const colorsFlag = process.env.color || process.env.colors; - const colors = colorsFlag !== "false" && colorsFlag !== "0"; - const reporter = process.env.reporter || process.env.r || defaultReporter; - const bail = process.env.bail || process.env.b; - const lintFlag = process.env.lint !== 'false'; - const testConfigFile = 'test.config'; - - if (fs.existsSync(testConfigFile)) { - fs.unlinkSync(testConfigFile); - } - - let workerCount, taskConfigsFolder; - if (runInParallel) { - // generate name to store task configuration files - const prefix = os.tmpdir() + "/ts-tests"; - let i = 1; - do { - taskConfigsFolder = prefix + i; - i++; - } while (fs.existsSync(taskConfigsFolder)); - fs.mkdirSync(taskConfigsFolder); - - workerCount = process.env.workerCount || process.env.p || os.cpus().length; - } - - if (tests && tests.toLocaleLowerCase() === "rwc") { - testTimeout = 800000; - } - - if (tests || runners || light || testTimeout || taskConfigsFolder || keepFailed) { - writeTestConfigFile(tests, runners, light, taskConfigsFolder, workerCount, stackTraceLimit, colors, testTimeout, keepFailed); - } - - // timeout normally isn't necessary but Travis-CI has been timing out on compiler baselines occasionally - // default timeout is 2sec which really should be enough, but maybe we just need a small amount longer - if (!runInParallel) { - var startTime = Travis.mark(); - var args = []; - args.push("-R", "scripts/failed-tests"); - args.push("-O", '"reporter=' + reporter + (keepFailed ? ",keepFailed=true" : "") + '"'); - if (tests) args.push("-g", `"${tests}"`); - args.push(colors ? "--colors" : "--no-colors"); - if (bail) args.push("--bail"); - if (inspect) { - args.unshift("--inspect-brk"); - } else { - args.push("-t", testTimeout); - } - args.push(Paths.builtLocalRun); - - var cmd; - if (failed) { - args.unshift("scripts/run-failed-tests.js"); - cmd = host + " " + args.join(" "); - } - else { - cmd = "mocha " + args.join(" "); - } - var savedNodeEnv = process.env.NODE_ENV; - process.env.NODE_ENV = "development"; - exec(cmd, function () { - process.env.NODE_ENV = savedNodeEnv; - Travis.measure(startTime); - runLinterAndComplete(); - }, function (e, status) { - process.env.NODE_ENV = savedNodeEnv; - Travis.measure(startTime); - finish(status); - }); - } - else { - var savedNodeEnv = process.env.NODE_ENV; - process.env.NODE_ENV = "development"; - var startTime = Travis.mark(); - const cmd = `${host} ${Paths.builtLocalRun}`; - exec(cmd, function () { - // Tests succeeded; run 'lint' task - process.env.NODE_ENV = savedNodeEnv; - Travis.measure(startTime); - runLinterAndComplete(); - }, function (e, status) { - // Tests failed - process.env.NODE_ENV = savedNodeEnv; - Travis.measure(startTime); - finish(status); - }); - } - - function finish(errorStatus) { - deleteTemporaryProjectOutput(); - if (errorStatus !== undefined) { - fail("Process exited with code " + errorStatus); - } - else { - complete(); - } - } - - function runLinterAndComplete() { - if (!lintFlag || dirty) { - return finish(); - } - var lint = jake.Task['lint']; - lint.once('complete', function () { - finish(); - }); - lint.invoke(); - } - - function deleteTemporaryProjectOutput() { - if (fs.existsSync(path.join(Paths.baselines.local, "projectOutput/"))) { - jake.rmRf(path.join(Paths.baselines.local, "projectOutput/")); - } - } -} - -// used to pass data from jake command line directly to run.js -function writeTestConfigFile(tests, runners, light, taskConfigsFolder, workerCount, stackTraceLimit, colors, testTimeout, keepFailed) { - var testConfigContents = JSON.stringify({ - runners: runners ? runners.split(",") : undefined, - test: tests ? [tests] : undefined, - light: light, - workerCount: workerCount, - taskConfigsFolder: taskConfigsFolder, - stackTraceLimit: stackTraceLimit, - noColor: !colors, - timeout: testTimeout, - keepFailed: keepFailed - }); - fs.writeFileSync('test.config', testConfigContents, { encoding: "utf-8" }); -} - -function cleanTestDirs() { - // Clean the local baselines directory - if (fs.existsSync(Paths.baselines.local)) { - del.sync(Paths.baselines.local); - } - - // Clean the local Rwc baselines directory - if (fs.existsSync(Paths.baselines.localRwc)) { - del.sync(Paths.baselines.localRwc); - } - - jake.mkdirP(Paths.baselines.local); - jake.mkdirP(Paths.baselines.localTest262); -} - -function tsbuild(tsconfigPath, useLkg = true, done = undefined) { - const startCompileTime = Travis.mark(); - const compilerPath = useLkg ? Paths.lkgCompiler : Paths.builtLocalCompiler; - const cmd = `${host} ${compilerPath} -b ${Array.isArray(tsconfigPath) ? tsconfigPath.join(" ") : tsconfigPath}`; - - exec(cmd, () => { - // Success - Travis.measure(startCompileTime); - done ? done() : complete(); - }, () => { - // Fail - Travis.measure(startCompileTime); - fail(`Compilation of ${tsconfigPath} unsuccessful`); - }); -} - -const Travis = { - mark() { - if (!fold.isTravis()) return; - var stamp = process.hrtime(); - var id = Math.floor(Math.random() * 0xFFFFFFFF).toString(16); - console.log("travis_time:start:" + id + "\r"); - return { - stamp: stamp, - id: id - }; - }, - measure(marker) { - if (!fold.isTravis()) return; - var diff = process.hrtime(marker.stamp); - var total = [marker.stamp[0] + diff[0], marker.stamp[1] + diff[1]]; - console.log("travis_time:end:" + marker.id + ":start=" + toNs(marker.stamp) + ",finish=" + toNs(total) + ",duration=" + toNs(diff) + "\r"); - } -}; - -function buildLocalizedTargets() { - /** - * The localization target produces the two following transformations: - * 1. 'src\loc\lcl\\diagnosticMessages.generated.json.lcl' => 'built\local\\diagnosticMessages.generated.json' - * convert localized resources into a .json file the compiler can understand - * 2. 'src\compiler\diagnosticMessages.generated.json' => 'built\local\ENU\diagnosticMessages.generated.json.lcg' - * generate the lcg file (source of messages to localize) from the diagnosticMessages.generated.json - */ - const localizationTargets = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"] - .map(f => path.join(Paths.builtLocal,f)) - .concat(path.dirname(Paths.generatedLCGFile)); -} - -function toNs(diff) { - return diff[0] * 1e9 + diff[1]; -} - -function exec(cmd, successHandler, errorHandler) { - var ex = jake.createExec([cmd], /** @type {jake.ExecOptions} */({ windowsVerbatimArguments: true, interactive: true })); - // Add listeners for output and error - ex.addListener("stdout", function (output) { - process.stdout.write(output); - }); - ex.addListener("stderr", function (error) { - process.stderr.write(error); - }); - ex.addListener("cmdEnd", function () { - if (successHandler) { - successHandler(); - } - }); - ex.addListener("error", function (e, status) { - if (errorHandler) { - errorHandler(e, status); - } - else { - fail("Process exited with code " + status); - } - }); - - console.log(cmd); - ex.run(); -} - -function acceptBaseline(sourceFolder, targetFolder) { - console.log('Accept baselines from ' + sourceFolder + ' to ' + targetFolder); - var deleteEnding = '.delete'; - - jake.mkdirP(targetFolder); - acceptBaselineFolder(sourceFolder, targetFolder); - - function acceptBaselineFolder(sourceFolder, targetFolder) { - var files = fs.readdirSync(sourceFolder); - - for (var i in files) { - var filename = files[i]; - var fullLocalPath = path.join(sourceFolder, filename); - var stat = fs.statSync(fullLocalPath); - if (stat.isFile()) { - if (filename.substr(filename.length - deleteEnding.length) === deleteEnding) { - filename = filename.substr(0, filename.length - deleteEnding.length); - fs.unlinkSync(path.join(targetFolder, filename)); - } - else { - var target = path.join(targetFolder, filename); - if (fs.existsSync(target)) { - fs.unlinkSync(target); - } - jake.mkdirP(path.dirname(target)); - fs.renameSync(path.join(sourceFolder, filename), target); - } - } - else if (stat.isDirectory()) { - acceptBaselineFolder(fullLocalPath, path.join(targetFolder, filename)); - } - } - } -} - -/** @param jsonPath {string} */ -function readJson(jsonPath) { - const jsonText = readFileSync(jsonPath); - const result = ts.parseConfigFileTextToJson(jsonPath, jsonText); - if (result.error) { - reportDiagnostics([result.error]); - throw new Error("An error occurred during parse."); - } - return result.config; -} - -/** @param diagnostics {ts.Diagnostic[]} */ -function reportDiagnostics(diagnostics) { - console.log(diagnosticsToString(diagnostics, process.stdout.isTTY)); -} - -/** - * @param diagnostics {ts.Diagnostic[]} - * @param [pretty] {boolean} - */ -function diagnosticsToString(diagnostics, pretty) { - const host = { - getCurrentDirectory() { return process.cwd(); }, - getCanonicalFileName(fileName) { return fileName; }, - getNewLine() { return os.EOL; } - }; - return pretty ? ts.formatDiagnosticsWithColorAndContext(diagnostics, host) : - ts.formatDiagnostics(diagnostics, host); -} - -/** - * Concatenate a list of sourceFiles to a destinationFile - * @param {string} destinationFile - * @param {string[]} sourceFiles - * @param {string=} extraContent - */ -function concatenateFiles(destinationFile, sourceFiles, extraContent) { - var temp = "temptemp"; - // append all files in sequence - var text = ""; - for (var i = 0; i < sourceFiles.length; i++) { - if (!fs.existsSync(sourceFiles[i])) { - fail(sourceFiles[i] + " does not exist!"); - } - if (i > 0) { text += "\n\n"; } - text += readFileSync(sourceFiles[i]).replace(/\r?\n/g, "\n"); - } - if (extraContent) { - text += extraContent; - } - fs.writeFileSync(temp, text); - // Move the file to the final destination - fs.renameSync(temp, destinationFile); -} - -function appendToFile(path, content) { - fs.writeFileSync(path, readFileSync(path) + "\r\n" + content); -} - -/** - * - * @param {string} path - * @returns string - */ -function readFileSync(path) { - return fs.readFileSync(path, { encoding: "utf-8" }); -} - -function getDiffTool() { - var program = process.env['DIFF']; - if (!program) { - fail("Add the 'DIFF' environment variable to the path of the program you want to use."); - } - return program; -} - -/** - * Replaces const enum declarations with non-const enums - * @param {string} text - */ -function removeConstModifierFromEnumDeclarations(text) { - return text.replace(/^(\s*)(export )?const enum (\S+) {(\s*)$/gm, '$1$2enum $3 {$4'); -} \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index db86c6f..0aaed00 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -5,4 +5,4 @@ + The snippets directory contains [snippets/frequently-used.json](snippets/frequently-used.json) and [snippets/shellscript.json](snippets/shellscript.json). + These were pulled originally from: [https://github.com/cdsama/shell-snippets](https://github.com/cdsama/shell-snippets) - + Please see original license information at [LICENSE.MIT](LICENSE.MIT). \ No newline at end of file + + Please see original license information at [LICENSE.MIT](LICENSE.MIT). diff --git a/README.deepIT.md b/README.deepIT.md index 0e1d99e..98adb98 100644 --- a/README.deepIT.md +++ b/README.deepIT.md @@ -2,8 +2,6 @@ By [@DeepInThought](https://github.com/DeepInThought). -We're in the early stages of some amazing stuff! Please stay tuned for more. - --- ## Contact DeepInThought @@ -13,7 +11,4 @@ We're in the early stages of some amazing stuff! Please stay tuned for more. * Official Website - [https://www.deepinthought.io](https://www.deepinthought.io) * Email - [support@deepinthought.io](mailto:support@deepinthought.io). * LinkedIn - [LinkedIn](https://www.linkedin.com/company/deepinthought_io/) -* Twitter - [Twitter](https://twitter.com/deepinthoughtio) * GitHub - [Github](https://github.com/DeepInThought) - -![DeepIT](https://raw.githubusercontent.com/DeepInThought/deep-www/master/docs/images/deep_main.png) diff --git a/README.md b/README.md index 9a6a417..bbd49ab 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,18 @@ [README.md](https://raw.githubusercontent.com/DeepInThought/vscode-shell-snippets/master/README.md). -Code snippets of shell commands, functions and scripts for visual studio code. +Code snippets of bash shell commands, functions and scripts for visual studio code. -1. [Visual Studio Code Shell Snippets](#visual-studio-code-shell-snippets) - 1. [Source Code](#source-code) - 2. [Snippets](#snippets) - 1. [Basic code](#basic-code) - 2. [Frequently used snippets](#frequently-used-snippets) - 3. [Installation](#installation) - 4. [About Us](#about-us) - 1. [Licensing Information](#licensing-information) +[Visual Studio Code Shell Snippets](#visual-studio-code-shell-snippets) + + 1. [Source Code](#source-code) + 2. [Snippets](#snippets) + 1. [Common](#common) + 2. [Frequently used snippets](#frequently-used-snippets) + 3. [Installation](#installation) + 4. [About Us](#about-us) + 1. [Licensing Information](#licensing-information) @@ -22,7 +23,7 @@ Repository Home: [https://github.com/DeepInThought/vscode-shell-snippets.git](ht ## Snippets -### Basic code +### Common JSON File: [snippets/shellscript.json](snippets/shellscript.json) @@ -61,4 +62,4 @@ Visit [README.deepIT.md](README.deepIT.md) for more information on [@DeepInThoug ### Licensing Information -* Please visit: [LICENSE.md](LICENSE.md). \ No newline at end of file +* Please visit: [LICENSE.md](LICENSE.md). diff --git a/TODO b/TODO index 65af9d6..31126df 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ # todo: [x] Add snippets: https://code.visualstudio.com/docs/editor/userdefinedsnippets [x] Publish to marketplace: https://marketplace.visualstudio.com/manage/publishers/deepinthought -[] Follow guildlines: https://code.visualstudio.com/docs/extensionAPI/extension-manifest -[] Add colors: https://misc.flogisoft.com/bash/tip_colors_and_formatting -[] Add flags: https://codeburst.io/13-tips-tricks-for-writing-shell-scripts-with-awesome-ux-19a525ae05ae +[x] Follow guildlines: https://code.visualstudio.com/docs/extensionAPI/extension-manifest +[-] Add colors: https://misc.flogisoft.com/bash/tip_colors_and_formatting +[-] Add flags: https://codeburst.io/13-tips-tricks-for-writing-shell-scripts-with-awesome-ux-19a525ae05ae diff --git a/azure-pipeline.yml b/azure-pipeline.yml deleted file mode 100644 index e69de29..0000000 diff --git a/dialog.sh b/dialog.sh deleted file mode 100755 index e81860b..0000000 --- a/dialog.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -### @File : dialog.sh -### @Author : Luke Penrod - support@deepinthought.io -### @Company : DeepInThought -### @Link : https://deepinthought.io -### @Created : Sunday,September 30 2018 02:19:25 -### @Modified : -###- - -#? References Used: https://misc.flogisoft.com/bash/tip_colors_and_formatting & https://ryanstutorials.net/bash-scripting-tutorial/bash-functions.php - -test -n "${BASH}" || echo "${BASH}" || exit 1 - -function exec_welcome_message() { - test -rn "$1" || echo -e "\\033[0;32m$1\\033[0m" || exit 1 - -} - -function exec_colors_and_formating() { - #* @Function exec_colors_and_formating() - #* @Desc: Test to see if colors are being passed. - #* @Source: https://misc.flogisoft.com/_export/code/bash/tip_colors_and_formatting?codeblock=55 - - for clbg in {40..47} {100..107} 49; do - #Foreground - for clfg in {30..37} {90..97} 39; do - #Formatting - for attr in 0 1 2 4 5 7; do - #Print the result - echo -en "\e[${attr};${clbg};${clfg}m ^[${attr};${clbg};${clfg}m \e[0m" - done - echo #Newline - done - done - - exit 0 -} - -function exec_256_colors() { - #* @Function exec_colors_and_formating() - #* @Desc: Test to see if colors are being passed. - #* @Source: https://misc.flogisoft.com/_export/code/bash/tip_colors_and_formatting?codeblock=56 - for fgbg in 38 48; do # Foreground / Background - for color in {0..255}; do # Colors - # Display the color - printf "\e[${fgbg};5;%sm %3s \e[0m" $color $color - # Display 6 colors per lines - if [ $(((color + 1) % 6)) == 4 ]; then - echo # New line - fi - done - echo # New line - done - - return 0 -} - -function exec_256_color_prompt() { - #* @Function exec_256_color_prompt() - #* @Desc: Test to see if colors are being passed. est to see if colors are being passed. - test -n "$1" || pickColor=$1 || exit 2 - echo "\$1 is $1" - test -n "$2" || pickForegroundValue=$2 || exit 2 - echo "\$2 is $2" - printf -- '\x1b[48;5;%sm%3d\e[0m\n' "${pickColor:-85}" "${pickForegroundValue:-21}" - - #* Executes a test on the terminal to see if 256 (0-255) are present through a list array {0.255} - for i in {0..255}; do - printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i" - if ((i == 15)) || ((i > 15)) && (((i - 15) % 6 == 0)); then - printf "\\n" - fi - done -} - -if [ "$(echo -n)" = "-n" ]; then - n="" - c="\\c" -else - n="-n" - c="" -fi - -echo $n Please enter first name: $c -test -n ${firstName} && read -r "${firstName}" || firstName="Mista" || exit 3 -echo $n Please enter last name: $c -read -r ${lastName} || lastName="Robot" || exit 4 -exec_welcome_message "Welcome, ${firstName} ${lastName}" - diff --git a/docker-builder.sh.sh b/docker-builder.sh.sh deleted file mode 100755 index 66ab2d7..0000000 --- a/docker-builder.sh.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -### @File : docker-builder.sh.sh -### @Author : Luke Penrod - support@deepinthought.io -### @Company : DeepInThought -### @Link : https://deepinthought.io -### @Date : Saturday,September 29 2018 01:53:45 -###- - -docker build . -t deepinthought/vscode-shell-snippets:latest -docker push deepinthought/vscode-shell-snippets:latest \ No newline at end of file diff --git a/git-build.sh b/git-build.sh deleted file mode 100755 index 66c9d16..0000000 --- a/git-build.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env bash -### @File : git-build.sh -### @Author : Luke Penrod - support@deepinthought.io -### @Company : DeepInThought -### @Link : https://deepinthought.io -### @Created : Saturday,September 29 2018 11:26:22 -### @Modified : Saturday,September 29 2018 15:21:16 -###- - -echo -e "\\033[0;32mDeploying updates to GitHub...\\033[0m" -export ROOT_PATH="${HOME}/Documents" -export GIT_LOCAL_PATH="${ROOT_PATH}/vscode-shell-snippets" -export GIT_REPOSITORY="https://github.com/DeepInThought/vscode-shell-snippets.git" -export GIT_RAW_TEST="https://raw.githubusercontent.com/DeepInThought/vscode-shell-snippets/master/README.md" -export ERROR_CODE= - -__username="$(whoami)" -__dir="$(cd "$(dirname "${HOME}"/"${__username}")" && pwd)" -__file="${__dir}/$(basename "${BASH_SOURCE[0]}")" -__base="$(basename "${__file}" .sh)" -__with_extension="${__base}.sh" - -# todo: create a functions file. -handle_exit_code() { - ERROR_CODE="$?" - if [ "${ERROR_CODE}" = "0" ]; then - printf -- '\033[32m [SUCCESS]: %s \033[0m\n' "${deepMsg:-${__with_extension}}" - printf -- '\033[32m [FINISHED] without errors. \033[0m\n' - printf -- '\033[32m [EXIT] with status code %s.\033[0m\n' "${ERROR_CODE}" - exit ${ERROR_CODE} - fi - if [ "${ERROR_CODE}" = "1" ]; then - printf -- '\033[31m [ERROR CODE %s]: ERROR_CODE %s is related to Git repositories.\033[0m\n' ${ERROR_CODE} ${ERROR_CODE} - printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' "${ERROR_CODE}" - exit ${ERROR_CODE} - fi - if [ "${ERROR_CODE}" = "2" ]; then - printf -- '\033[31m [ERROR CODE %s]: ERROR_CODE %s primary to echo call failed.\033[0m\n' ${ERROR_CODE} ${ERROR_CODE} - printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' "${ERROR_CODE}" - exit ${ERROR_CODE} - fi - # ... - if [ "${ERROR_CODE}" != "0" ]; then - printf -- '\033[31m [ERROR CODE %s]: ERROR_CODE %s is not defined yet.\033[0m\n' ${ERROR_CODE} ${ERROR_CODE} - printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' "${ERROR_CODE}" - exit ${ERROR_CODE} - fi - printf -- '\033[31m [ERROR] occurred. Cleaning up now...\033[0m\n' - ### Cleanup - printf -- '\033[33m [CLEAN]: Cleaning exit properly.\n\033[31m [EXIT] with error code %s.\n' "${ERROR_CODE}" - exit "${ERROR_CODE}" -} -trap "handle_exit_code" EXIT - -# todo: Setup git credential fill -### $(git credential fill \ -### protocol=https \ -### host="$GIT_REPOSITORY" \ -### username=deepinthought \ -### password="$GITHUB_PASSWORD" \ -### ) - -if [ ! "${GIT_RAW_TEST}" ]; then - echo "[Testing]: ${GIT_RAW_TEST} exists." - curl "${GIT_RAW_TEST}" || echo || exit 2 - printf -- '\033[32m [SUCCESS]: %s \033[0m\n' ${GIT_RAW_TEST} - sleep 1 -fi -if [ ! -d "${GIT_LOCAL_PATH}" ]; then - echo "[GIT_RAW_TEST]: Not Setup! ${GIT_RAW_TEST}" - git clone "${GIT_REPOSITORY}" || echo || exit 2 - printf -- '\033[32m [SUCCESS]: %s \033[0m\n' "${GIT_LOCAL_PATH}" - sleep 1 -fi -if [ $# -eq 1 ]; then - GIT_COMMIT_MSG=$1 - ${GIT_REPOSITORY:-'https://github.com/DeepInThought/vscode-shell-snippets.git'} - echo "[Git Comment]: ${GIT-GIT_COMMIT_MSG}" - echo "[Git Repository]: ${GIT_REPOSITORY}" - git commit -m "${GIT_COMMIT_MSG}" || printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' ${ERROR_CODE:-1} || exit 1 - printf -- '\033[32m [Git Commit]: [FINISHED] without errors. \033[0m\n' -fi -if [ $# -eq 2 ]; then - GIT_COMMIT_MSG="[Git Commit]: at $(date --rfc-3339=seconds)" - echo "[Git Comment]: ${GIT_COMMIT_MSG}" - echo "[Git Commit]: at $(date --rfc-3339=seconds)" - git commit -m "${GIT_COMMIT_MSG}" || printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' ${ERROR_CODE:-2} || exit 1 - printf -- '\033[32m [Git Commit]: [FINISHED] without errors. \033[0m\n' -else - GIT_COMMIT_MSG="[Git Commit]: at $(date --rfc-3339=seconds)" - echo "[Auto]: Setting GIT_COMMIT_MSG to ${GIT_COMMIT_MSG}" - printf -- '\033[32m [Git Commit]: [FINISHED] without errors. \033[0m\n' -fi - - -if [ -d "${GIT_LOCAL_PATH}" ]; then - cd "${GIT_LOCAL_PATH}" || echo "Current Dir: $PWD" || exit 2 - printf -- '\033[32m [SUCCESS]: %s \033[0m\n' "${GIT_LOCAL_PATH}" - - ### Setup for commit. - git add . || echo || exit 1 - printf -- '\033[32m [SUCCESS]: git add . \033[0m\n' - - ### Commit changes. - git commit -m "${GIT_COMMIT_MSG}" || printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' ${ERROR_CODE:-1} || exit 1 - printf -- '\033[32m [SUCCESS]: git commit -m \033[0m\n' - - ### Push code to Repository - git push origin master || printf -- '\033[31m [EXIT] with status code %s.\033[0m\n' ${ERROR_CODE:-1} || exit 1 - printf -- '\033[32m [SUCCESS]: git push origin master \033[0m\n' - -fi diff --git a/out/extension.js b/out/extension.js new file mode 100644 index 0000000..43c97b7 --- /dev/null +++ b/out/extension.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below +const vscode = require("vscode"); +// this method is called when your extension is activated +// your extension is activated the very first time the command is executed +function activate(context) { + // Use the console to output diagnostic information (console.log) and errors (console.error) + // This line of code will only be executed once when your extension is activated + console.log('VSCode Shell Snippets has been loaded successfully!'); + // The command has been defined in the package.json file + // Now provide the implementation of the command with registerCommand + // The commandId parameter must match the command field in package.json + let disposable = vscode.commands.registerCommand('extension.vscodeShellSnippets', () => { + // The code you place here will be executed every time your command is executed + // Display a message box to the user + vscode.window.showInformationMessage('Shell Snippets for VSCode will be picked up in language: "shellscript" files.'); + }); + context.subscriptions.push(disposable); +} +exports.activate = activate; +// this method is called when your extension is deactivated +function deactivate() { } +exports.deactivate = deactivate; +//# sourceMappingURL=extension.js.map \ No newline at end of file diff --git a/out/extension.js.map b/out/extension.js.map new file mode 100644 index 0000000..7fdb6b4 --- /dev/null +++ b/out/extension.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;AAAA,6DAA6D;AAC7D,8EAA8E;AAC9E,iCAAiC;AAEjC,yDAAyD;AACzD,0EAA0E;AAC1E,SAAgB,QAAQ,CAAC,OAAgC;IACxD,4FAA4F;IAC5F,gFAAgF;IAChF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,wDAAwD;IACxD,qEAAqE;IACrE,uEAAuE;IACvE,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACtF,+EAA+E;QAE/E,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,+EAA+E,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAhBD,4BAgBC;AAED,2DAA2D;AAC3D,SAAgB,UAAU,KAAI,CAAC;AAA/B,gCAA+B"} \ No newline at end of file diff --git a/out/test/runTest.js b/out/test/runTest.js new file mode 100644 index 0000000..e5fc9b7 --- /dev/null +++ b/out/test/runTest.js @@ -0,0 +1,33 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const vscode_test_1 = require("vscode-test"); +function main() { + return __awaiter(this, void 0, void 0, function* () { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + // The path to test runner + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + // Download VS Code, unzip it and run the integration test + yield vscode_test_1.runTests({ extensionDevelopmentPath, extensionTestsPath }); + } + catch (err) { + console.error('Failed to run tests'); + process.exit(1); + } + }); +} +main(); +//# sourceMappingURL=runTest.js.map \ No newline at end of file diff --git a/out/test/runTest.js.map b/out/test/runTest.js.map new file mode 100644 index 0000000..9583dd6 --- /dev/null +++ b/out/test/runTest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"runTest.js","sourceRoot":"","sources":["../../src/test/runTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA6B;AAE7B,6CAAuC;AAEvC,SAAe,IAAI;;QAClB,IAAI;YACH,4DAA4D;YAC5D,yCAAyC;YACzC,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEnE,0BAA0B;YAC1B,iCAAiC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAEpE,0DAA0D;YAC1D,MAAM,sBAAQ,CAAC,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;IACF,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"} \ No newline at end of file diff --git a/out/test/suite/extension.test.js b/out/test/suite/extension.test.js new file mode 100644 index 0000000..c391117 --- /dev/null +++ b/out/test/suite/extension.test.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert = require("assert"); +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +const vscode = require("vscode"); +// import * as myExtension from '../extension'; +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + test('Sample test', () => { + assert.equal(-1, [1, 2, 3].indexOf(5)); + assert.equal(-1, [1, 2, 3].indexOf(0)); + }); +}); +//# sourceMappingURL=extension.test.js.map \ No newline at end of file diff --git a/out/test/suite/extension.test.js.map b/out/test/suite/extension.test.js.map new file mode 100644 index 0000000..399ac70 --- /dev/null +++ b/out/test/suite/extension.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.test.js","sourceRoot":"","sources":["../../../src/test/suite/extension.test.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AAEjC,0DAA0D;AAC1D,8CAA8C;AAC9C,iCAAiC;AACjC,+CAA+C;AAE/C,KAAK,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/out/test/suite/index.js b/out/test/suite/index.js new file mode 100644 index 0000000..ad7cc97 --- /dev/null +++ b/out/test/suite/index.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const Mocha = require("mocha"); +const glob = require("glob"); +function run() { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd', + }); + mocha.useColors(true); + const testsRoot = path.resolve(__dirname, '..'); + return new Promise((c, e) => { + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } + // Add files to the test suite + files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + try { + // Run the mocha test + mocha.run(failures => { + if (failures > 0) { + e(new Error(`${failures} tests failed.`)); + } + else { + c(); + } + }); + } + catch (err) { + e(err); + } + }); + }); +} +exports.run = run; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/out/test/suite/index.js.map b/out/test/suite/index.js.map new file mode 100644 index 0000000..9dcec31 --- /dev/null +++ b/out/test/suite/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/suite/index.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAE7B,SAAgB,GAAG;IAClB,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACvB,EAAE,EAAE,KAAK;KACT,CAAC,CAAC;IACH,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE;gBACR,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;aACd;YAED,8BAA8B;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,IAAI;gBACH,qBAAqB;gBACrB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpB,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC;qBAC1C;yBAAM;wBACN,CAAC,EAAE,CAAC;qBACJ;gBACF,CAAC,CAAC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;gBACb,CAAC,CAAC,GAAG,CAAC,CAAC;aACP;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAhCD,kBAgCC"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 61fdc9a..dfee776 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,145 +1,33 @@ { "name": "vscode-shell-snippets", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@gulp-sourcemaps/identity-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", - "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", - "dev": true, - "requires": { - "acorn": "^5.0.3", - "css": "^2.2.1", - "normalize-path": "^2.1.1", - "source-map": "^0.6.0", - "through2": "^2.0.3" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "@octokit/endpoint": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.0.tgz", - "integrity": "sha512-ANAOhyEY40qzOjQPEYXqg3GDGLYTjLDjqQqcG1wgqRoE7qFLnvx5a0upzxpes83UK/YHUu6qTymZl/yTu4GvKg==", - "dev": true, - "requires": { - "deepmerge": "2.2.1", - "is-plain-object": "^2.0.4", - "universal-user-agent": "^2.0.1", - "url-template": "^2.0.8" - } - }, - "@octokit/request": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.2.0.tgz", - "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==", - "dev": true, - "requires": { - "@octokit/endpoint": "^3.0.0", - "is-plain-object": "^2.0.4", - "node-fetch": "^2.3.0", - "universal-user-agent": "^2.0.1" - } - }, - "@octokit/rest": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.1.0.tgz", - "integrity": "sha512-/D1XokSycOE+prxxI2r9cxssiLMqcr+BsEUjdruC67puEEjNJjJoRIkuA1b20jOkX5Ue3Rz99Mu9rTnNmjetUA==", - "dev": true, - "requires": { - "@octokit/request": "2.2.0", - "before-after-hook": "^1.2.0", - "btoa-lite": "^1.0.0", - "lodash.get": "^4.4.2", - "lodash.pick": "^4.4.0", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "universal-user-agent": "^2.0.0", - "url-template": "^2.0.8" - } - }, - "@types/browserify": { - "version": "12.0.36", - "resolved": "https://registry.npmjs.org/@types/browserify/-/browserify-12.0.36.tgz", - "integrity": "sha512-hYXvPod5upkYTC7auziOATFsu/0MGxozbzNI80sZV044JTF7UtstHeNOM52b+bg7/taZ3fheK7oeb+jpm4C0/w==", + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, "requires": { - "@types/insert-module-globals": "*", - "@types/node": "*" + "@babel/highlight": "^7.0.0" } }, - "@types/chai": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", - "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", - "dev": true - }, - "@types/convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha512-laiDIXqqthjJlyAMYAXOtN3N8+UlbM+KvZi4BaY5ZOekmVkBs/UxfK5O0HWeJVG2eW8F+Mu2ww13fTX+kY1FlQ==", - "dev": true - }, - "@types/del": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/@types/del/-/del-3.0.1.tgz", - "integrity": "sha512-y6qRq6raBuu965clKgx6FHuiPu3oHdtmzMPXi8Uahsjdq1L6DL5fS/aY5/s71YwM7k6K1QIWvem5vNwlnNGIkQ==", + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { - "@types/glob": "*" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "@types/events": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", - "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, "@types/glob": { @@ -153,293 +41,49 @@ "@types/node": "*" } }, - "@types/gulp": { - "version": "3.8.36", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.36.tgz", - "integrity": "sha512-u6/zWPzYRNPAtvyFJ3/RSXjmBaBM1dVs5kW22/jU6J786ZGLfSndhLoNOpFI6FGQvqTA+QzFHjSMhpkAN+wxcQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/orchestrator": "*", - "@types/vinyl": "*" - } - }, - "@types/gulp-concat": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/gulp-concat/-/gulp-concat-0.0.32.tgz", - "integrity": "sha512-CUCFADlITzzBfBa2bdGzhKtvBr4eFh+evb+4igVbvPoO5RyPfHifmyQlZl6lM7q19+OKncRlFXDU7B4X9Ayo2g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/gulp-help": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/gulp-help/-/gulp-help-0.0.34.tgz", - "integrity": "sha512-MkW7psZznxxJg2MBk2P2qHE+T8jEZVFz3FG/qGjUYazkyJt7hBJWx5Nuewmay5RVNtUvSWPrdZLr/WTXY3T/6A==", - "dev": true, - "requires": { - "@types/gulp": "*", - "@types/node": "*", - "@types/orchestrator": "*" - } - }, - "@types/gulp-if": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/gulp-if/-/gulp-if-0.0.33.tgz", - "integrity": "sha512-J5lzff21X7r1x/4hSzn02GgIUEyjCqYIXZ9GgGBLhbsD3RiBdqwnkFWgF16/0jO5rcVZ52Zp+6MQMQdvIsWuKg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/vinyl": "*" - } - }, - "@types/gulp-newer": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/gulp-newer/-/gulp-newer-0.0.31.tgz", - "integrity": "sha512-e7J/Zv5Wd7CC0WpuA2syWVitgwrkG0u221e41w7r07XUR6hMH6kHPkq9tUrusHkbeW8QbuLbis5fODOwQCyggQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/gulp-rename": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/gulp-rename/-/gulp-rename-0.0.33.tgz", - "integrity": "sha512-FIZQvbZJj6V1gHPTzO+g/BCWpDur7fJrroae4gwV3LaoHBQ+MrR9sB+2HssK8fHv4WdY6hVNxkcft9bYatuPIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/gulp-sourcemaps": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/gulp-sourcemaps/-/gulp-sourcemaps-0.0.32.tgz", - "integrity": "sha512-+7BAmptW2bxyJnJcCEuie7vLoop3FwWgCdBMzyv7MYXED/HeNMeQuX7uPCkp4vfU1TTu4CYFH0IckNPvo0VePA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/insert-module-globals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/insert-module-globals/-/insert-module-globals-7.0.0.tgz", - "integrity": "sha512-zudCJPwluh1VUDB6Gl/OQdRp+fYy3+47huJB/JMQubMS2p+sH18MCVK4WUz3FqaWLB12yh5ELxVR/+tqwlm/qA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jake": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/jake/-/jake-0.0.30.tgz", - "integrity": "sha512-F5txkK3aW+fAi4YExGq4Q0W+jJXIhjUvqwMNFPh8kmM+ZU90S/KdDcEV4H+Ug9fHFPAVHG+veaHE8ZHmJJxHCw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/merge2": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/merge2/-/merge2-1.1.4.tgz", - "integrity": "sha512-GjaXY4OultxbaOOk7lCLO7xvEcFpdjExC605YmfI6X29vhHKpJfMWKCDZd3x+BITrZaXKg97DgV/SdGVSwdzxA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, - "@types/minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", - "dev": true - }, - "@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/mocha": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", - "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", "dev": true }, "@types/node": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.5.5.tgz", - "integrity": "sha512-JRnfoh0Ll4ElmIXKxbUfcOodkGvcNHljct6mO1X9hE/mlrMzAx0hYCLAD7sgT53YAY1HdlpzUcV0CkmDqUqTuA==", - "dev": true - }, - "@types/orchestrator": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@types/orchestrator/-/orchestrator-0.3.2.tgz", - "integrity": "sha512-cKB4yTX0wGaRCSkdHDX2fkGQbMAA8UOshC2U7DQky1CE5o+5q2iQQ8VkbPbE/88uaTtsusvBPMcCX7dgmjxBhQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/q": "*" - } - }, - "@types/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz", - "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", - "dev": true - }, - "@types/run-sequence": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/run-sequence/-/run-sequence-0.0.30.tgz", - "integrity": "sha512-XwGr1b4yCGUILKeBkzmeWcxmGHQ0vFFFpA6D6y1yLO6gKmYorF+PHqdU5KG+nWt38OvtrkDptmrSmlHX/XtpLw==", - "dev": true, - "requires": { - "@types/gulp": "*", - "@types/node": "*" - } - }, - "@types/source-map-support": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.4.1.tgz", - "integrity": "sha512-eoyZxYGwaeHq5zCVeoNgY1dQy6dVdm1b7K9k1FRnWkf997Tji3NLBoLAjK5WCobeh1Qs6Q5KUV1rZCmHvzaDBw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/through2": { - "version": "2.0.34", - "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.34.tgz", - "integrity": "sha512-nhRG8+RuG/L+0fAZBQYaRflXKjTrHOKH8MFTChnf+dNVMxA3wHYYrfj0tztK0W51ABXjGfRCDc0vRkecCOrsow==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/travis-fold": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@types/travis-fold/-/travis-fold-0.1.0.tgz", - "integrity": "sha512-qrXB0Div8vIzA8P809JRlh9lD4mSOYwRBJbU1zcj0BWhULP15Zx0oQyJtjaOnkNR5RZcYQDbgimj40M1GDmhcQ==", - "dev": true - }, - "@types/vinyl": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz", - "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/xml2js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.3.tgz", - "integrity": "sha512-Pv2HGRE4gWLs31In7nsyXEH4uVVsd0HNV9i2dyASvtDIlOtSTr1eczPLDpdEuyv5LWH5LT20GIXwPjkshKWI1g==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/node": "*" - } - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.1.tgz", + "integrity": "sha512-hx6zWtudh3Arsbl3cXay+JnkvVgCKzCWKv42C9J01N2T2np4h8w5X8u6Tpz5mj38kE3M9FM0Pazx8vKFFMnjLQ==", "dev": true }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "@types/vscode": { + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.41.0.tgz", + "integrity": "sha512-7SfeY5u9jgiELwxyLB3z7l6l/GbN9CqpCQGkcRlB7tKRFBxzbz2PoBfGrLxI1vRfUCIq5+hg5vtDHExwq5j3+A==", "dev": true }, - "acorn-node": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", - "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.0", - "xtend": "^4.0.1" + "es6-promisify": "^5.0.0" } }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "optional": true - }, "ansi-colors": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.1.tgz", - "integrity": "sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -451,37 +95,6 @@ "color-convert": "^1.9.0" } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -491,6357 +104,783 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-done": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", - "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^1.0.7", - "stream-exhaust": "^1.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - } - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "before-after-hook": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.2.0.tgz", - "integrity": "sha512-wI3QtdLppHNkmM1VgRVLCrlWCKk/YexlPicYbXPs4eYdd1InrUCTFsx5bX1iUQzzMsoRXXPpM1r+p7JEJJydag==", - "dev": true - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", - "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - }, - "dependencies": { - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "requires": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "detective": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", - "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "filelist": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-0.0.6.tgz", - "integrity": "sha1-WKZBrR9XV0on/oekQO8xiDS1Vxk=", - "dev": true, - "requires": { - "minimatch": "^3.0.3", - "utilities": "^0.0.37" - }, - "dependencies": { - "utilities": { - "version": "0.0.37", - "resolved": "https://registry.npmjs.org/utilities/-/utilities-0.0.37.tgz", - "integrity": "sha1-o0cNCn9ogULZ6KV87hEo8S4Z4ZY=", - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "fork-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", - "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz", - "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==", - "dev": true, - "requires": { - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "http://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", - "dev": true, - "requires": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "gulp-cli": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", - "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^2.5.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "gulp-clone": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-clone/-/gulp-clone-2.0.1.tgz", - "integrity": "sha512-SLg/KsHBbinR/pCX3PF5l1YlR28hLp0X+bcpf77PtMJ6zvAQ5kRjtCPV5Wt1wHXsXWZN0eTUZ15R8ZYpi/CdCA==", - "dev": true, - "requires": { - "plugin-error": "^0.1.2", - "through2": "^2.0.3" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-help": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/gulp-help/-/gulp-help-1.6.1.tgz", - "integrity": "sha1-Jh2xhuGDl/7z9qLCLpwxW/qIrgw=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "object-assign": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "gulp-if": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", - "integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=", - "dev": true, - "requires": { - "gulp-match": "^1.0.3", - "ternary-stream": "^2.0.1", - "through2": "^2.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-insert": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/gulp-insert/-/gulp-insert-0.5.0.tgz", - "integrity": "sha1-MjE/E+SiPPWsylzl8MCAkjx3hgI=", - "dev": true, - "requires": { - "readable-stream": "^1.0.26-4", - "streamqueue": "0.0.6" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "gulp-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", - "integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=", - "dev": true, - "requires": { - "minimatch": "^3.0.3" - } - }, - "gulp-newer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-newer/-/gulp-newer-1.4.0.tgz", - "integrity": "sha512-h79fGO55S/P9eAADbLAP9aTtVYpLSR1ONj08VPaSdVVNVYhTS8p1CO1TW7kEMu+hC+sytmCqcUr5LesvZEtDoQ==", - "dev": true, - "requires": { - "glob": "^7.0.3", - "kew": "^0.7.0", - "plugin-error": "^0.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - } - } - }, - "gulp-rename": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", - "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", - "dev": true - }, - "gulp-sourcemaps": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", - "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "1.X", - "@gulp-sourcemaps/map-sources": "1.X", - "acorn": "5.X", - "convert-source-map": "1.X", - "css": "2.X", - "debug-fabulous": "1.X", - "detect-newline": "2.X", - "graceful-fs": "4.X", - "source-map": "~0.6.0", - "strip-bom-string": "1.X", - "through2": "2.X" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-typescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.0.tgz", - "integrity": "sha512-lMj2U+Ni6HyFaY2nr1sSQ6D014eHil5L1i52XWBaAQUR9UAUUp9btnm4yRBT2Jb8xhrwqmhMssZf/g2B7cinCA==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.5", - "plugin-error": "^1.0.1", - "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "handlebars": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", - "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", - "dev": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "jake": { - "version": "8.0.19", - "resolved": "https://registry.npmjs.org/jake/-/jake-8.0.19.tgz", - "integrity": "sha512-iilJduYCUwxRqH3fJ3b4cP5rqeh43pGM8OS62LDwoKCRoeYAj4t/KJAtBJ4jcsVKEOPJ1jNg4o1sKibk3ZnVUw==", - "dev": true, - "requires": { - "async": "0.9.x", - "chalk": "0.4.x", - "filelist": "0.0.x", - "minimatch": "3.x", - "utilities": "1.0.x" - }, - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "chalk": { - "version": "0.4.0", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } - }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true - } - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } - } - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, - "kew": { - "version": "0.7.0", - "resolved": "http://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", - "dev": true - } - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "~0.10.2" - } - }, - "macos-release": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz", - "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==", - "dev": true - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "memoizee": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", - "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.45", - "es6-weak-map": "^2.0.2", - "event-emitter": "^0.3.5", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "^0.1.5" - } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "mocha-fivemat-progress-reporter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/mocha-fivemat-progress-reporter/-/mocha-fivemat-progress-reporter-0.1.0.tgz", - "integrity": "sha1-zK/w4ckc9Vf+d+B535lUuRt0d1Y=", - "dev": true - }, - "module-deps": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", - "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "os-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz", - "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", - "dev": true, - "requires": { - "macos-release": "^2.0.0", - "windows-release": "^3.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", - "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", - "dev": true - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.0.tgz", - "integrity": "sha512-02GTVHD1u0nWc20n2G7WX/PgdhNFG04j5fi1OkaJzPWLTcf6vh6229Lta1wTmXG/7Dg42tCssgkccVt7qvd8Kg==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "prex": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/prex/-/prex-0.4.3.tgz", - "integrity": "sha512-ObhEpO8fViLgPulYCe/ZFZV56wQLNKpaLKrCwNNx4NkBuhDwORK8f1VTbi902UB82EdyBhgwG9NyLRVNSN8t+A==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "remove-internal": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/remove-internal/-/remove-internal-2.9.3.tgz", - "integrity": "sha512-mUMTsHx6SAFWUXYqkOsR1BlVRQJW/oQdmFFDyVVuPLri6MLpeqtwt15TyYG55GcyysMVpul8nYGxIRyGjuEJxA==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1", - "typescript": "^2.9.1", - "yargs": "^11.0.0" - }, - "dependencies": { - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-sequence": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-2.2.1.tgz", - "integrity": "sha512-qkzZnQWMZjcKbh3CNly2srtrkaO/2H/SI5f2eliMCapdRD3UhMrwjfOAZJAnZ2H8Ju4aBzFZkBGXUqFs9V0yxw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "fancy-log": "^1.3.2", - "plugin-error": "^0.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - }, - "dependencies": { - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.1.tgz", - "integrity": "sha512-hxSPZbRZvSDuOvADntOElzJpenIR7wXJkuoUcUtS0erbgt2fgeaoPIYretfKpslMhfFDY4k0MZ2F5CUzhBsSvQ==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "streamqueue": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/streamqueue/-/streamqueue-0.0.6.tgz", - "integrity": "sha1-ZvX17JTpuK8knkrsLdH3Qb/pTeM=", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "readable-stream": "^1.0.26-2" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "color-name": "1.1.3" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ms": "^2.1.1" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "object-keys": "^1.0.12" } }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "diff": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", + "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", "dev": true }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "es-abstract": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", "dev": true, "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "acorn-node": "^1.2.0" + "es6-promise": "^4.0.3" } }, - "ternary-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz", - "integrity": "sha1-Bk5Im0tb9gumpre8fy9cJ07Pgmk=", - "dev": true, - "requires": { - "duplexify": "^3.5.0", - "fork-stream": "^0.0.4", - "merge-stream": "^1.0.0", - "through2": "^2.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "through2": { + "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.0.tgz", - "integrity": "sha512-8B+sevlqP4OiCjonI1Zw03Sf8PuV1eRsYQgLad5eonILOdyeRsY27A/2Ze8IlvlMvq31OH+3fz/styI7Ya62yQ==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "readable-stream": "2 || 3", - "xtend": "~4.0.1" + "locate-path": "^3.0.0" } }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "is-buffer": "~2.0.3" } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" + "function-bind": "^1.1.1" } }, - "to-arraybuffer": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "agent-base": "4", + "debug": "3.1.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "agent-base": "^4.3.0", + "debug": "^3.1.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true }, - "travis-fold": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/travis-fold/-/travis-fold-0.1.2.tgz", - "integrity": "sha1-/sAF+dyqJZo/lFnOWmkGq6TFRdo=", + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.27.2" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "tslib": "^1.8.1" + "has": "^1.0.3" } }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "has-symbols": "^1.0.1" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.1.tgz", - "integrity": "sha512-jw7P2z/h6aPT4AENXDGjcfHTu5CSqzsbZc6YlUIebTyBAq8XaKp78x7VcSh30xwSCcsu5irZkYZUSFP1MrAMbg==", + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "typescript-tools": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/typescript-tools/-/typescript-tools-0.3.1.tgz", - "integrity": "sha1-MlhSu+lFwwIQpjbOdjMHcHpTxEk=", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, - "optional": true, "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, - "undeclared-identifiers": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", - "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "acorn-node": "^1.3.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" + "chalk": "^2.0.1" } }, - "undertaker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", - "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "brace-expansion": "^1.1.7" } }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "has-flag": "^3.0.0" } } } }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dev": true, "requires": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" } }, - "universal-user-agent": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.2.tgz", - "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "os-name": "^3.0.0" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "p-limit": "^2.0.0" } }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "resolve": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", "dev": true, "requires": { - "inherits": "2.0.3" + "path-parse": "^1.0.6" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "utilities": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/utilities/-/utilities-1.0.5.tgz", - "integrity": "sha1-8rd6iPNRBzP8chW1xIalBKdaskU=", + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "v8flags": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", - "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "homedir-polyfill": "^1.0.1" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "ansi-regex": "^3.0.0" } }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "has-flag": "^3.0.0" } }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" } }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "source-map": "^0.5.1" + "tslib": "^1.8.1" } }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "typescript": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", + "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", "dev": true }, + "vscode-test": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz", + "integrity": "sha512-LddukcBiSU2FVTDr3c1D8lwkiOvwlJdDL2hqVbn6gIz+rpTqUCkMZSKYm94Y1v0WXlHSDQBsXyY+tchWQgGVsw==", + "dev": true, + "requires": { + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.4", + "rimraf": "^2.6.3" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -6857,79 +896,50 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "windows-release": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", - "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "execa": "^0.10.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } + "string-width": "^1.0.2 || 2" } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "ansi-regex": "^4.1.0" } } } @@ -6940,67 +950,77 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yargs": { - "version": "11.1.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" } } } diff --git a/package.json b/package.json index bd67970..3ba6e71 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "vscode-shell-snippets", "displayName": "Visual Studio Code Shell Snippets", - "description": "This extension adds shell script snippets for fast scripting.", - "version": "0.2.0", + "description": "This extension adds Bash shell script snippets for fast scripting.", + "version": "0.3.0", "publisher": "DeepInThought", "icon": "images/bash-128x128.png", "galleryBanner": { @@ -10,13 +10,13 @@ "theme": "dark" }, "author": { - "name": "Luke Penrod", + "name": "DeepInThought", "email": "support@deepinthought.io", - "url": "https://deepinthought.io" + "url": "https://www.deepinthought.io" }, - "license": "SEE LICENSE IN DEEPLICENSE", + "license": "SEE LICENSE.md", "engines": { - "vscode": "^1.18.0", + "vscode": "^1.30.0", "node": ">=4.2.0" }, "categories": [ @@ -31,7 +31,17 @@ }, { "language": "shellscript", - "path": "./snippets/frequently-used.json" + "path": "./snippets/bulk-snippets.json" + }, + { + "language": "shellscript", + "path": "./snippets/tests.json" + } + ], + "commands": [ + { + "command": "extension.vscodeShellSnippets", + "title": "ShellSnippets: Info" } ] }, @@ -39,99 +49,39 @@ "type": "git", "url": "https://github.com/DeepInThought/vscode-shell-snippets.git" }, + "bugs": { + "email": "support@deepinthought.io", + "url": "https://github.com/DeepInThought/vscode-shell-snippets/issues" + }, + "homepage": "https://github.com/DeepInThought/vscode-shell-snippets/blob/master/README.md", "config": { "configFileName": "tsconfig.json" }, - "main": "./lib/typescript.js", - "typings": "./lib/typescript.d.ts", + "activationEvents": [ + "onCommand:extension.vscodeShellSnippets" + ], + "main": "./out/extension.js", + "typings": "./out/extension.d.ts", "bin": { "tsc": "./bin/tsc", "tsserver": "./bin/tsserver" }, "scripts": { - "pretest": "jake tests", - "test": "jake runtests-parallel light=false", - "build": "npm run build:compiler && npm run build:tests", - "build:compiler": "jake local", - "build:tests": "jake tests", - "start": "node lib/tsc", - "clean": "jake clean", - "gulp": "gulp", - "jake": "jake", - "lint": "jake lint", - "setup-hooks": "node scripts/link-hooks.js" + "vscode:prepublish": "npm run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "pretest": "npm run compile", + "test": "node ./out/test/runTest.js" }, "devDependencies": { - "@octokit/rest": "latest", - "@types/browserify": "latest", - "@types/chai": "latest", - "@types/convert-source-map": "latest", - "@types/del": "latest", - "@types/glob": "latest", - "@types/gulp": "3.X", - "@types/gulp-concat": "latest", - "@types/gulp-help": "latest", - "@types/gulp-if": "0.0.33", - "@types/gulp-newer": "latest", - "@types/gulp-rename": "0.0.33", - "@types/gulp-sourcemaps": "0.0.32", - "@types/jake": "latest", - "@types/merge2": "latest", - "@types/minimatch": "latest", - "@types/minimist": "latest", - "@types/mkdirp": "latest", - "@types/mocha": "latest", - "@types/node": "8.5.5", - "@types/q": "latest", - "@types/run-sequence": "latest", - "@types/source-map-support": "latest", - "@types/through2": "latest", - "@types/travis-fold": "latest", - "@types/xml2js": "^0.4.0", - "browser-resolve": "^1.11.2", - "browserify": "latest", - "chai": "latest", - "chalk": "latest", - "convert-source-map": "latest", - "del": "latest", - "fancy-log": "latest", - "fs-extra": "^6.0.1", - "gulp": "^4.0.0", - "gulp-clone": "latest", - "gulp-concat": "latest", - "gulp-help": "latest", - "gulp-if": "latest", - "gulp-insert": "latest", - "gulp-newer": "latest", - "gulp-rename": "latest", - "gulp-sourcemaps": "latest", - "gulp-typescript": "latest", - "istanbul": "latest", - "jake": "^8.0.19", - "lodash": "4.17.10", - "merge2": "latest", - "minimist": "latest", - "mkdirp": "latest", - "mocha": "latest", - "mocha-fivemat-progress-reporter": "latest", - "plugin-error": "latest", - "prex": "^0.4.3", - "q": "latest", - "remove-internal": "^2.9.2", - "run-sequence": "latest", - "source-map-support": "latest", - "through2": "latest", - "travis-fold": "latest", - "tslint": "latest", - "typescript": "^3.2.1", - "typescript-tools": "^0.3.1", - "vinyl": "latest", - "vinyl-sourcemaps-apply": "latest", - "xml2js": "^0.4.19" - }, - "browser": { - "fs": false, - "os": false, - "path": false + "@types/glob": "^7.1.1", + "@types/mocha": "^5.2.7", + "@types/node": "^13.1.1", + "@types/vscode": "^1.30.0", + "glob": "^7.1.6", + "mocha": "^6.2.2", + "typescript": "^3.7.4", + "tslint": "^5.20.1", + "vscode-test": "^1.3.0" } } diff --git a/snippets/bulk-snippets.json b/snippets/bulk-snippets.json new file mode 100644 index 0000000..2f768d6 --- /dev/null +++ b/snippets/bulk-snippets.json @@ -0,0 +1,27 @@ +{ + "file_read_by_line":{ + "prefix": "file_read_by_line", + "body": "{\nwhile IFS= read -r \"lineNum\"\ndo\n\techo \"\\${lineNum}\"\ndone\n} < \"${0:FILE_NAME}\"", + "description": "Read a text file line by line." + }, + "file_batch_rename":{ + "prefix": "file_batch_rename", + "body": "ls | xargs -i mv {} {}.${1:old}", + "description": "Rename all files in a directory." + }, + "awk_substr":{ + "prefix": "awk_substr", + "body": "echo \"${1:VAR_OR_STRING}\" | awk '{print substr(\\$0,0,length(\\$0)-${2|AMOUNT_TO_CUT_BY,1,2,3|}'", + "description": "A sub string with awk. Change AMOUNT_TO_CUT_BY to a valid integer." + }, + "awk_printf":{ + "prefix": "awk_printf", + "body": "awk -F ':' '{printf(\"filename:%10s,linenumber:%s,columns:%s,linecontent:%s\\n\",FILENAME,NR,NF,\\$0)\\}' /etc/passwd", + "description": "A printf example inside of awk." + }, + "awk_for_loop":{ + "prefix": "awk_for_loop", + "body": "awk -F ':' 'BEGIN {count=0;} {name[count] = \\$1;count++;\\}; END{for (i = 0; i < NR; i++) print i, name[i]\\}' /etc/passwd", + "description": "A loop example in awk to show all users in /etc/passwd" + } +} \ No newline at end of file diff --git a/snippets/frequently-used.json b/snippets/frequently-used.json deleted file mode 100644 index bfa882d..0000000 --- a/snippets/frequently-used.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "file_read_by_line":{ - "prefix": "file_read_by_line", - "body": "cat $${0:FILE_NAME} | while read ${1:LINE}\ndo\n\techo $${1:LINE}\ndone\n", - "description": "read a text file line by line" - }, - "file_batch_rename":{ - "prefix": "file_batch_rename", - "body": "ls | xargs -i mv {} {}.old", - "description": "batch rename files" - }, - "awk_substr":{ - "prefix": "awk_substr", - "body": "echo $VAR | awk '\\{print substr(\\$0,0,length(\\$0)-2)\\}'", - "description": "sub string by awk" - }, - "awk_printf":{ - "prefix": "awk_printf", - "body": "awk -F ':' '\\{printf(\"filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n\",FILENAME,NR,NF,\\$0)\\}' /etc/passwd", - "description": "printf example of awk" - }, - "awk_for_loop":{ - "prefix": "awk_for_loop", - "body": "awk -F ':' 'BEGIN \\{count=0;} \\{name[count] = \\$1;count++;\\}; END{for (i = 0; i < NR; i++) print i, name[i]\\}' /etc/passwd", - "description": "for loop example of awk, show all users" - } -} \ No newline at end of file diff --git a/snippets/shellscript.json b/snippets/shellscript.json index 7983f7a..fb37b53 100644 --- a/snippets/shellscript.json +++ b/snippets/shellscript.json @@ -1,173 +1,97 @@ { - "bash":{ - "prefix": "bash", - "body": "#!/bin/bash\n", - "description": "executer" - }, - "echo":{ + "bash": { + "prefix": [ + "bash", + "#!", + "shebang" + ], + "body": "${1|#!/bin/bash,#!/usr/bin/env bash|}\n", + "description": [ + "Option 1:\n", + "#!/bin/bash\n", + "Description: Shebang Bash executor.\n", + "Option 2:\n", + "#!/usr/bin/env bash\n", + "Description: Shell searchs for the first match of bash in the $PATH environment variable.\n", + "It can be useful if you aren't aware of the absolute path or don't want to search for it.\n" + ] + }, + "echo": { "prefix": "echo", - "body": "echo ${0:message}", - "description": "echo message" + "body": "echo \"${0:message}\"", + "description": "Echo a message." }, - "read":{ + "read": { "prefix": "read", - "body": "read ${0:VAR}", - "description": "read input" + "body": "read -r ${0:VAR}", + "description": "Read input of ${VAR}." }, - "if" : { + "if": { "prefix": "if", - "body": "if ${0:condition} \nthen\n\t${1}\nfi", - "description": "if" + "body": "if [[ ${0:condition} ]]; then\n\t${1}\nfi", + "description": "An IF statement." }, - "elseif" : { + "elseif": { "prefix": "elseif", - "body": "elif ${0:condition} \nthen\n\t${1}", - "description": "elseif" + "body": "elif [[ ${0:condition} ]]; then\n\t${1}", + "description": "Add an elseif to an if statement." }, - "else" : { + "else": { "prefix": "else", - "body": "else\n\t${0}", + "body": "else\n\t${0:command}", "description": "else" }, - "test_string_empty" : { - "prefix": "test_string_empty", - "body": "test -z $${0:VAR}", - "description": "test string empty" - }, - "test_string_equal" : { - "prefix": "test_string_equal", - "body": "test $${0:VAR1} = $${1:VAR2}", - "description": "test string equal" - }, - "test_string_not_empty" : { - "prefix": "test_string_not_empty", - "body": "test -n $${0:VAR}", - "description": "test string not empty" - }, - "test_string_not_equal" : { - "prefix": "test_string_not_equal", - "body": "test $${0:VAR1} != $${1:VAR2}", - "description": "test string not equal" - }, - "test_int_equal" : { - "prefix": "test_int_equal", - "body": "test $${0:VAR1} -eq $${1:VAR2}", - "description": "test int equal" - }, - "test_int_great_equal" : { - "prefix": "test_int_great_equal", - "body": "test $${0:VAR1} -ge $${1:VAR2}", - "description": "test int great equal" - }, - "test_int_great_than" : { - "prefix": "test_int_great_than", - "body": "test $${0:VAR1} -gt $${1:VAR2}", - "description": "test int great than" - }, - "test_int_less_equal" : { - "prefix": "test_int_less_equal", - "body": "test $${0:VAR1} -le $${1:VAR2}", - "description": "test int less equal" - }, - "test_int_less_than" : { - "prefix": "test_int_less_than", - "body": "test $${0:VAR1} -lt $${1:VAR2}", - "description": "test int less than" - }, - "test_int_not_equal" : { - "prefix": "test_int_not_equal", - "body": "test $${0:VAR1} -ne $${1:VAR2}", - "description": "test int not equal" - }, - "test_exist" : { - "prefix": "test_exist", - "body": "test -e $${0:VAR}", - "description": "test exist" - }, - "test_exist_file" : { - "prefix": "test_exist_file", - "body": "test -f $${0:VAR}", - "description": "test exist file" - }, - "test_exist_directory" : { - "prefix": "test_exist_directory", - "body": "test -d $${0:VAR}", - "description": "test exist directory" - }, - "test_exist_readable" : { - "prefix": "test_exist_readable", - "body": "test -r $${0:VAR}", - "description": "test exist readable" - }, - "test_exist_writeable" : { - "prefix": "test_exist_writeable", - "body": "test -w $${0:VAR}", - "description": "test exist writeable" - }, - "test_exist_executable" : { - "prefix": "test_exist_executable", - "body": "test -x $${0:VAR}", - "description": "test exist executable" - }, - "test_exist_link" : { - "prefix": "test_exist_link", - "body": "test -h $${0:VAR}", - "description": "test exist link" - }, - "test_file_equal" : { - "prefix": "test_file_equal", - "body": "test $${0:VAR} -ef $${1:VAR}", - "description": "test file equal" - }, - "test_file_new_than" : { - "prefix": "test_file_new_than", - "body": "test $${0:VAR} -nt $${1:VAR}", - "description": "test file new than" - }, - "test_file_old_than" : { - "prefix": "test_file_old_than", - "body": "test $${0:VAR} -ot $${1:VAR}", - "description": "test file old than" - }, - - "for_in" : { + "for_in": { "prefix": "for_in", - "body": "for ${0:VAR} in $${1:LIST}\ndo\n\techo $${0:VAR}\ndone\n", + "body": "for ${0:VAR} in $${1:LIST}\ndo\n\techo \"$${0:VAR}\"\ndone\n", "description": "for loop in list" }, - "for_i" : { + "for_i": { "prefix": "for_i", - "body": "for((${0:i}=0;${0:i}<${1:10};${0:i}++));\ndo\n\techo $${0:i}\ndone\n", - "description": "for loop by index" + "body": "for ((${0:i} = 0; ${0:i} < ${1:10}; ${0:i}++)); do\n\techo \"$${0:i}\"\ndone\n", + "description": "An index-based iteration for loop." }, - "while" : { + "while": { "prefix": "while", - "body": "while ${0:condition} \ndo\n\t${1}\ndone\n", - "description": "while loop by condition" + "body": "while [[ ${1:condition} ]]; do\n\t${0}\ndone\n", + "description": "A while loop by condition." }, - "until" : { + "until": { "prefix": "until", - "body": "until ${0:condition} \ndo\n\t${1}\ndone\n", + "body": "until [[ ${1:condition} ]]; do\n\t${0}\ndone\n", "description": "until loop by condition" }, - "function" : { + "function": { "prefix": "function", - "body": "function ${0:name}()\n{\n\t${1}\n}", - "description": "define a function" - }, - "case" : { + "body": "${1:name} ()\n{\n\t${0}\n}", + "description": [ + "This defines a function named name.\n", + "The reserved word function is optional.\n", + "If the function reserved word is supplied, the parentheses are optional.\n", + "1. Recommended way:\n", + "name() {}\n", + "2. C-like-way:\nfunction name [()] {}" + ] + }, + "case": { "prefix": "case", - "body": "case $${0:VAR} in\n\t${1:1}) echo 1\n\t;;\n\t${2:2|3}) echo 2 or 3\n\t;;\n\t*) echo default\n\t;;\nesac\n", - "description": "switch case" + "body": "case \"$${0:VAR}\" in\n\t${1:1}) echo 1\n\t;;\n\t${2:2|3}) echo 2 or 3\n\t;;\n\t*) echo default\n\t;;\nesac\n", + "description": [ + "case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac\n", + "A case command first expands word, and tries to match it against each pattern in turn." + ] }, - "break" : { + "break": { "prefix": "break", "body": "break ${0}", - "description": "break loop or (n) loops" + "description": [ + "The break command tells Bash to leave the loop straight away.\n", + "Enter the break or break (n) where n=number of loops." + ] }, - "expr" : { + "expr": { "prefix": "expr", "body": "expr ${0:1 + 1}", - "description": "calculate numbers" + "description": "Calculate numbers with Bash." } } \ No newline at end of file diff --git a/snippets/tests.json b/snippets/tests.json new file mode 100644 index 0000000..a830093 --- /dev/null +++ b/snippets/tests.json @@ -0,0 +1,102 @@ +{ + "test_string_empty": { + "prefix": "test_string_empty", + "body": "test -z \"$${0:VAR}\"", + "description": "A test to check the lengh of VAR is zero (i.e. it is empty) and returns TRUE if so." + }, + "test_string_equal": { + "prefix": "test_string_equal", + "body": "test \"$${0:VAR1}\" = \"$${1:VAR2}\"", + "description": "A test to compare two different STRINGS and returns TRUE if they are of equal value." + }, + "test_string_not_empty": { + "prefix": "test_string_not_empty", + "body": "test -n \"$${0:VAR}\"", + "description": "A test that checks the length of a STRING is greater than zero and returns TRUE if so." + }, + "test_string_not_equal": { + "prefix": "test_string_not_equal", + "body": "test \"$${0:VAR1}\" != \"$${1:VAR2}\"", + "description": "A test to compare two different STRINGS. Returns TRUE if they are NOT of equal value." + }, + "test_int_equal": { + "prefix": "test_int_equal", + "body": "test \"$${0:VAR1}\" -eq \"$${1:VAR2}\"", + "description": "A test to compare two different INTEGERS. Returns TRUE if they are of equal value." + }, + "test_int_great_equal": { + "prefix": "test_int_great_equal", + "body": "test \"$${0:VAR1}\" -ge \"$${1:VAR2}\"", + "description": "A test to compare two different INTEGERS. Returns TRUE if INTEGER1 is of equal or greater value than INTEGER2." + }, + "test_int_great_than": { + "prefix": "test_int_great_than", + "body": "test \"$${0:VAR1}\" -gt \"$${1:VAR2}\"", + "description": "A test to compare two different INTEGERS. Returns TRUE if INTEGER1 is greater than INTEGER2 in value." + }, + "test_int_less_equal": { + "prefix": "test_int_less_equal", + "body": "test \"$${0:VAR1}\" -le \"$${1:VAR2}\"", + "description": "A test to compare two different INTEGERS. Returns TRUE if INTEGER1 is less than or equal to INTEGER2 in value." + }, + "test_int_less_than": { + "prefix": "test_int_less_than", + "body": "test \"$${0:VAR1}\" -lt \"$${1:VAR2}\"", + "description": "A test to compare two different INTEGERS. Returns TRUE if INTEGER1 is less than INTEGER2 in value." + }, + "test_int_not_equal": { + "prefix": "test_int_not_equal", + "body": "test \"$${0:VAR1}\" -ne \"$${1:VAR2}", + "description": "A test to compare two different INTEGERS. Returns TRUE if INTEGER1 is NOT equal to INTEGER2 in value." + }, + "test_exist": { + "prefix": "test_exist_file", + "body": "test -e \"$${0:VAR}\"", + "description": "A test to check if FILE exists." + }, + "test_exist_file": { + "prefix": "test_exist_regular_file", + "body": "test -f \"$${0:VAR}\"", + "description": "A test to check if FILE exists and is a regular file." + }, + "test_exist_directory": { + "prefix": "test_exist_directory", + "body": "test -d \"$${0:VAR}\"", + "description": "A test to check if a FILE exists and is a directory." + }, + "test_exist_readable": { + "prefix": "test_exist_readable", + "body": "test -r \"$${0:VAR}\"", + "description": "A test to check if FILE exists and read permission is granted." + }, + "test_exist_writeable": { + "prefix": "test_exist_writeable", + "body": "test -w \"$${0:VAR}\"", + "description": "A test to check if FILE exists and write permission is granted." + }, + "test_exist_executable": { + "prefix": "test_exist_executable", + "body": "test -x \"$${0:VAR}\"", + "description": "A test to check if FILE exists and execute (or search) permission is granted." + }, + "test_exist_link": { + "prefix": "test_exist_link", + "body": "test -h \"$${0:VAR}\"", + "description": "A test to check if FILE exists and is a symbolic link (same as -L)." + }, + "test_file_equal": { + "prefix": "test_file_equal", + "body": "test \"$${0:VAR}\" -ef \"$${1:VAR}\"", + "description": "A test to check if FILE1 and FILE2 have the same device and inode numbers." + }, + "test_file_new_than": { + "prefix": "test_file_new_than", + "body": "test \"$${0:VAR}\" -nt \"$${1:VAR}\"", + "description": "A test to check if FILE1 is newer (modification date) than FILE2." + }, + "test_file_old_than": { + "prefix": "test_file_old_than", + "body": "test \"$${0:VAR}\" -ot \"$${1:VAR}\"", + "description": "A test to check if FILE1 is older than FILE2." + } +} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts new file mode 100644 index 0000000..e48ccd8 --- /dev/null +++ b/src/extension.ts @@ -0,0 +1,26 @@ +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below +import * as vscode from 'vscode'; + +// this method is called when your extension is activated +// your extension is activated the very first time the command is executed +export function activate(context: vscode.ExtensionContext) { + // Use the console to output diagnostic information (console.log) and errors (console.error) + // This line of code will only be executed once when your extension is activated + console.log('VSCode Shell Snippets has been loaded successfully!'); + + // The command has been defined in the package.json file + // Now provide the implementation of the command with registerCommand + // The commandId parameter must match the command field in package.json + let disposable = vscode.commands.registerCommand('extension.vscodeShellSnippets', () => { + // The code you place here will be executed every time your command is executed + + // Display a message box to the user + vscode.window.showInformationMessage('Shell Snippets for VSCode will be picked up in language: "shellscript" files.'); + }); + + context.subscriptions.push(disposable); +} + +// this method is called when your extension is deactivated +export function deactivate() {} \ No newline at end of file diff --git a/src/test/runTest.ts b/src/test/runTest.ts new file mode 100644 index 0000000..1eabfa3 --- /dev/null +++ b/src/test/runTest.ts @@ -0,0 +1,23 @@ +import * as path from 'path'; + +import { runTests } from 'vscode-test'; + +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + + // The path to test runner + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + + // Download VS Code, unzip it and run the integration test + await runTests({ extensionDevelopmentPath, extensionTestsPath }); + } catch (err) { + console.error('Failed to run tests'); + process.exit(1); + } +} + +main(); diff --git a/src/test/suite/extension.test.ts b/src/test/suite/extension.test.ts new file mode 100644 index 0000000..d59ba91 --- /dev/null +++ b/src/test/suite/extension.test.ts @@ -0,0 +1,15 @@ +import * as assert from 'assert'; + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +import * as vscode from 'vscode'; +// import * as myExtension from '../extension'; + +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + + test('Sample test', () => { + assert.equal(-1, [1, 2, 3].indexOf(5)); + assert.equal(-1, [1, 2, 3].indexOf(0)); + }); +}); diff --git a/src/test/suite/index.ts b/src/test/suite/index.ts new file mode 100644 index 0000000..2cd152c --- /dev/null +++ b/src/test/suite/index.ts @@ -0,0 +1,37 @@ +import * as path from 'path'; +import * as Mocha from 'mocha'; +import * as glob from 'glob'; + +export function run(): Promise { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd', + }); + mocha.useColors(true); + + const testsRoot = path.resolve(__dirname, '..'); + + return new Promise((c, e) => { + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } + + // Add files to the test suite + files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + + try { + // Run the mocha test + mocha.run(failures => { + if (failures > 0) { + e(new Error(`${failures} tests failed.`)); + } else { + c(); + } + }); + } catch (err) { + e(err); + } + }); + }); +} diff --git a/tsconfig-orig.json b/tsconfig-orig.json deleted file mode 100644 index 8048acb..0000000 --- a/tsconfig-orig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "outDir": "out", - "noEmitOnError": true, - "noImplicitAny": false, - "lib": [ - "es6" - ], - "sourceMap": true, - "rootDir": "src", - }, - "exclude": [ - "node_modules", - ".vscode-test" - ], - "include": [ - "src/**/*.ts", - "spec/**/*.ts" - ], - "files": [ - "src/srv/config.json" - ] -} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 40c955d..a7c086a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,130 +1,21 @@ { - "extends": "tslint:latest", - "rulesDirectory": "built/local/tslint/rules", - "rules": { - "no-unnecessary-type-assertion": true, - - "array-type": [true, "array"], - "ban-types": { - "options": [ - ["Object", "Avoid using the `Object` type. Did you mean `object`?"], - ["Function", "Avoid using the `Function` type. Prefer a specific function type, like `() => void`, or use `ts.AnyFunction`."], - ["Boolean", "Avoid using the `Boolean` type. Did you mean `boolean`?"], - ["Number", "Avoid using the `Number` type. Did you mean `number`?"], - ["String", "Avoid using the `String` type. Did you mean `string`?"] - ] - }, - "boolean-trivia": true, - "class-name": true, - "comment-format": [true, - "check-space" + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "outDir": "out", + "lib": [ + "es6" ], - "curly":[true, "ignore-same-line"], - "debug-assert": true, - "indent": [true, - "spaces" - ], - "interface-name": [true, "never-prefix"], - "interface-over-type-literal": true, - "jsdoc-format": true, - "linebreak-style": [true, "CRLF"], - "next-line": [true, - "check-catch", - "check-else" - ], - "no-bom": true, - "no-double-space": true, - "no-in-operator": true, - "no-increment-decrement": true, - "no-inferrable-types": true, - "no-internal-module": true, - "no-null-keyword": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": [true, "ignore-template-strings"], - "no-type-assertion-whitespace": true, - "no-unnecessary-qualifier": true, - "no-var-keyword": true, - "object-literal-shorthand": true, - "object-literal-surrounding-space": true, - "one-line": [true, - "check-open-brace", - "check-whitespace" - ], - "prefer-const": true, - "quotemark": [true, - "double", - "avoid-escape" - ], - "semicolon": [true, "always", "ignore-bound-class-methods"], - "space-within-parens": true, - "triple-equals": true, - "type-operator-spacing": true, - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "onespace", - "index-signature": "onespace", - "parameter": "onespace", - "property-declaration": "onespace", - "variable-declaration": "onespace" - } - ], - "whitespace": [true, - "check-branch", - "check-decl", - "check-operator", - "check-module", - "check-separator", - "check-type" - ], - - // Config different from tslint:latest - "no-implicit-dependencies": [true, "dev"], - "object-literal-key-quotes": [true, "consistent-as-needed"], - "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"], - - // TODO - "arrow-parens": false, // [true, "ban-single-arg-parens"] - "arrow-return-shorthand": false, - "forin": false, - "member-access": false, // [true, "no-public"] - "no-conditional-assignment": false, - "no-console": false, - "no-debugger": false, - "no-empty-interface": false, - "no-eval": false, - "no-object-literal-type-assertion": false, - "no-shadowed-variable": false, - "no-submodule-imports": false, - "no-var-requires": false, - "ordered-imports": false, - "prefer-conditional-expression": false, - "radix": false, - "trailing-comma": false, - - // These should be done automatically by a formatter. https://github.com/Microsoft/TypeScript/issues/18340 - "align": false, - "eofline": false, - "max-line-length": false, - "no-consecutive-blank-lines": false, - "space-before-function-paren": false, - - // Not doing - "ban-comma-operator": false, - "max-classes-per-file": false, - "member-ordering": false, - "no-angle-bracket-type-assertion": false, - "no-bitwise": false, - "no-namespace": false, - "no-reference": false, - "object-literal-sort-keys": false, - "one-variable-per-declaration": false - } + "sourceMap": true, + "rootDir": "src", + "strict": true /* enable all strict type-checking options */ + /* Additional Checks */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + }, + "exclude": [ + "node_modules", + ".vscode-test" + ] } \ No newline at end of file diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..c791efd --- /dev/null +++ b/tslint.json @@ -0,0 +1,15 @@ +{ + "rules": { + "no-string-throw": true, + "no-unused-expression": true, + "no-duplicate-variable": true, + "curly": true, + "class-name": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": true + }, + "defaultSeverity": "warning" +} \ No newline at end of file diff --git a/vscode-shell-snippets-0.2.0.vsix b/vscode-shell-snippets-0.2.0.vsix deleted file mode 100644 index 35bb02cf0df4140269a91e312cf83e2147499aa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72016 zcmafaV~}OdwryEmwr$(CZQHhOyQ<4Jx@=dMZQHi->YN*K&;4$^cyGtbSo_!BGsnz1 z#>}yD$x8u)AOiqEKmZ`O2Fe(qyhte8s13(jhxL8EWlKOb7Hdhd z5er{z_&jgg?M1odk3dx=iNY1)UW$S^TLv$z(pP-cGlkP8HoT;kK63|AEIUF@C3R$r z=DG&K7MQa|J6?}F4QXcx_2JMMTgEU+$tfw(15(MCfQ+l!ZkC&<_pG0@oE`6h_{Rc} zG3o3Rn*|Rl-DulS4*Rp}f&Y^SgCV5;6*SQH6C24j<+z4_j!Y?&vhS z)k?khb*)?G6GN>UFoThkdFEtNj{6K^QW>2}{$dk0% zW8_M{1>i4LP0gbTGt2HqB9~xk(HEd2kUZgZ3Q@&#(i?40fW10L+C;coM_wfC`w_vuJma*$YVStX+Ii!`#$}L!aZUFPIqYzuT4>(4Nn#c+vxp{0fOV7|rvy>gP3Z@wAetZYf3n4s)I(@YVVG^!Fx=&?)8D=41Y z6=;FB#)w?N=x@m*?tzL#3U*JT$F4#qrB!FV z@tIKAclspWTGaI;FZt&S^KE%#K741)q&SF!wnzLgmdvMJVZ%AU3e@k2h1uNYy3Ts- zu(}wQ!e|?hZY-Gg7Z00Vo{;SQ)=jnWou@D33C?789Mz$~bi!nMK9{IV8&J7l9k}Qh zw}a*--jPn#*|E~7`BE!^9i8*%a7!=6#Z!jODZjJ=acUym3+j%N_rUjWZ!D*5z`pE! zH0gjFZy~68u_>D-ik;M1v3soV1OqJ50K=PvOkyBhv(Tmh8Rr zafk0nO4f*DqD8&shSAB(HHPdH*wOTb+@rDPUNu-riTyl zk~L@pPeN8e2Gp{44ARy&2D_pCO5l;2xHMXU{mV?jW7qwBLB^I=X4aesHB`;J~C6tuh=LwS>>x&F~fFp`r>+(rj z#1b4TxyJ3TM!)2}2N3srMNN8)sl6R^s%CnTruuMaql#EQ@h=Q2#2l5Fwll^?22+sC zR9}tI}*?PE|xj34>d~!}u^AcyO$o}{fb+zmw zNoP6%r|+(0Z(APc7_{F9`$Tx#i&u|QzCf-3xq{x3PX>hMF5qserSSveS#k_T0oFHA zyqw@D$pi*N55Hn6Hgl^*b7y-mU`X>IcdwqtGgR&4UfA-)fX=B%OYHe&;sx>1g@9W0 zTc>6nevbj`Dt=x`Lg08GfihlbEKjeJS|6sHxH**%29(%T4}Mp0+FE(mPkEb}VBUxJ z4-*yATA*z5ix6Bqd&QHTZ}%kK01_7_^I}3SKk98kFih#DaUq9lnPO&H>C8N`;(VY^ z_D}mx#JUH^QV#DPT<3P$wv~p}&e8hZY3X5N`YKV98Ly;?=a=cJy;XHLJr-GqZhgT3{?t-=cMKb{Cd| z7kv^S!H%vgx74?8LExO4()l2d;{-YXRia1Xsqgm?w+pyP0Io+}COFitS)#3>mJ!mv ziv9duwMlsbCocsKK|F^(mj(y`5CaSV@Shx41^zR~X#dQyv7M2XiKB&?t(~I@ON;)$Ge@L8caS+6@D%j}fMBNdsdQ$z%Cw!r2KSd&CY>ZVSuu|zn1-T^wOgD5&%@bQ zr?1cf)X7@Ye4{yStQ&-`vk5<5^RKuDYblvk5ase=*m?H;{jY zD@=dyYWWk4-_Q6@xXwxc4EIOb{^yc3vvB^eSc_HqV%OQByWXix>Dho&{W&fS;x3W@ z8gi`z!Fp24k02sdCXfgekTUT+tV^vrSd-m4N9j_ZCKQ<8C3JR_1KMf|<9#1_m)6O^ zB-L=)-WRwnf$qdOz+4LpLwxXDhV16LNcS(KC%f8Z1G&z1Q>-W@gWT4);leB{mFaAJM%>#4Z;44Z zc$_MX?-Z;P;$>CI%Bm_jZ}Dq)@_5DaEa+KHaGiHZ3M9EswCdDZC@l+@WE32vQu|(J zNv^_X>j>uHtaiGWnatqoJzLCa-5b6FY2juT!6vlCpd!%v21Dc{eSlon{w`iJ zrjr61G>$JI{dl{s`Ccl*-UxurYQ%r4DvvA3%0?%~Yfy{rO&6_c#1|A?iGZGh}=C(5v!+geV8cPKyz1pCLG+Z_j53q5NHwVdykH6USwinoRtB_koIP<$xG7WY%rJbRjh$A#O7t9hGxTokXXld3#yY3THj#L9r&e&Vs11J@;5lEbW4 z*pvO5_d^>dqukM_*Wr|3(H*<_0)C*imv78i?L*bp%dIJgwxMPKxo#QN%t_+AubKeF zU;+0S`eFe+m^3b!H3uG}n7hOx4{n3eRH0`aq z+z)sBf&8BZ$%@GP4~@Y2XF<9;8QB?|&{-R}*czGt=!2cDO{|O*umE)E^(TtKZJxYa z6puQpFgyZJ6xl6($K(Z=8RsYmd4x4d@snF5g&foKBmP?1x!OrZ

7imF0U~7%5TY!KOq7zZ!@PH3MqsSLTIz+331B3!K-PeK63K#Yk={EHIYdC9 zw3(9y=u5;&s8Oh2qnB@XyFz+aS}*))HH{R_?*>yufKA3Co48UNw8 zHt&DJN&J6>^S@A~u`;kVG_d_Qs+C8I^753Ua-(YXis7+~fVYhI&c7n>=A#s&q7VW} z%Kwu5_Be$INdD+lrjM&c{rN|5h?)MRHTs|57ycRli6Eje@E-}q{zn7`o-U3iH1-zu zCe{|VCbS+l){_Z!vcL?`q0ihQEwU+^kPOCx^70+{Acuf+gI!Uc$H9ZRSC^xQt%qv? zpb^ruc7Au?>yS?I#tc@)OY!tzFc=*Tih6;8BB1#5g`qwp(XhO7g4BPywl^qLlGzii z??eV@SALa*O^S2m8kvPIL)GH`b%TWtxRwd3tm{)ko^k>5hZ!6~DhZC6&H}^T8{wJc z?EFTC;v%Sl%{-hFH(v#(TsQ!Jatvg-fZq>@wTUk|1pVCO%CgBF_p9-&&u0H9>)^;B zwb~(W@=kH}%5H}DLw)$I4W0Ai#$a>eC1ksMDjJE!=9RSZRhsm>&CSBvbNgTDp}^FiadySezQDr)BJLB-pHMV;@T1!rZI>FtBZEuKf;i?@$Esaz*v#SrKK8$wq=dkoV^R2a$U0Gx?&p&M8xqo za73puM=30nQO9BTlo-^^Dq@-10Kz1usCO-{Q;zauIK-Tia@#+Hv~*G|@6&&Gb1V#( z%cV=)w%%-2Z5{?hc-LG~&ye`y0tJRiRTeiZaRZBqDK5*Fy}$-QvpM8r|6ZW1%xC~v zpm^_1cqtw{VRvB>gK-%RhuT)0sXdzEm-gxiO^(LIK}tPeMU%#f7iGl(tKzyabKd5a z;EsN}0GXfRdWEqGixCj4H_y}?VPth=Vo;)Z;21}NK zj<|%>0xP24kZTsu#Ok%l7h;9U?}a8`JUG;HV;l?{m4YEBT+;}D3IF^C1#-w6M_NYdr0$TTte>U_S?)F^@Aye+j7;NSvvCyoUbj=!cn^OboR^BOCB8 z6U@Lk{jI4x70L>n`o2nf$0he-aj6qvEGu>IOcbzj0HEoSZGC~aY;4QO^b>V5LYiGK zoG{nMac&Rhcpnv>uB1xkc}7a0(`S)@GA(tf_`p;{NU}Q>5Ia~r1^`JR1OJ`>4w9E z{SduZ;Tl~$1=B>$i5QsnWZXGw{%!|Hozj^!YAF7ot@3<)S>(2_=&h_<+9+;_vM?CI zn_g%o>VIOS8yH2ZMmj~6E&&(F6C+^V)5UXY`S`HpX=t^pDchqW>;>(8HFnU87>QNI zuZ?Bblr}^gIS+MwIrk%AbAYFYZ&hYVyXHd%hkMz~c~Wqvk}Go!;Hsb&<1r($X#|9K zVjr+Zw>w@Wq^OZ1mnGI^i_bc(})lf4S8(0D9V}qBX^Bx^A|A)_=a;b#`~|G1%>pKY%T2VO`P@Q9qlYl zjGXlZ?F<}^f9Uj3Wm{>V72fw*FTY>v_a0td_743#I0O%DY}NaI%r)jTNpfWlZ z6i4O(y*R$g(6B z%rApNvhC-o-b+EJD>HG}^XR_z+M+wy9VdEaV}ivd^&lovStL>4Imn(F$}x%`pH(7z z{ki5LP_{z{w9RC;Oi$1^M`diTyEP2b|L6v!|8bjuAHF8B$a*X|C@Qq? z<9H>qE3y%{gBP|Khm<%Xsj`X_AuvAt^dgcV3L!y_X0h2dH$pK56%HC-0s;4LU<=^F z!3@GLnluX(#Gp2V%*fNPfo!>@qfd_`w+>wbr4;z19uog|=}_qsxx{1`{IiPC70l{E zlEAN+tC6hsk>b=YWzE>DU+^Z=QMcw5lh+;L_Ebb@!xUBIP@1DnDk z#9G;CB&JdRr1^WsyLY!9fn>NyS7W#rljhjVRIrlHVms#1YML-T9DQD`fX`kQQ>R*GTcV?0Hb%l z2{1^v5}VFM+c6IxA6MaXA+qt9zq+wR3&5tG6xjbyX)j?RQMcJX4%Jp+1e?qmuHW zYdTL@nw%jF;ekHLr+=m`qHEnWruV z2=YyJT$3|rL?;&F#DVny`XrWmF$j(*(^S|iOM6B5%EGbP_~PX$8?>TPmZ%$Csn~sv zKQ*yYf#AM+_8Ne1!Ql1O-0SP-iGFep8wBJiSReh{LHF!LdAz81asGI`e$LR*f%stb zbpExuOgP9LIZgh+?mO2&QONUbw1({r7fGr^7o?_i z8hiP=%0)@gze0b^srj?ywM%o3x?WY@vx83i@_Vv4yYH!Td|cKxomaPSSeEK2MS z0iC_xeZ1DL=OdrsK0)_CMG91PJ2pen?9>DF`H)7`6~j&JS|00{s0cQf*5AN(5!;Y4 zg7eNQ5EXky;HicvDs^j|;~>MlXvQda-B8^GFnVs|Xa{V1Og>E29Ex3vNk6~T!ih;S znKC_8?y1|nJVR2390L$Tfy2RPDWLZxoLM7=Vee#(sm;Kc7y@SQ*QR%YkH`~B%XZvC zG?bc+DK8J5r==sbpA{9>rXE--kIKn|mG6Vi?zKl4XESa|u&?XxXm=%-HO0>|&Kwp{ zu_~17#|}a}WYDIqax6((&r~YM?wKiJ2*CN&dptcJ&xgXMa{=d5TG84}FbSvE^C|pK zKafzJRkPB{lS#-pu?7f?hUlTW?dC20sv8ls?p~<3jaaG4WlX7M{4GeTKCi zC2k>W*X0i@Nanr1P3)!b{b5OPPfxc9J>sgpNnl}1p>@x&9B2a|TFbWXIH$qQ49M+^ z@%qAd*8`dCtM_R#UQYkXLK%RKxpOFQr{r8Foe0~6s>>WFZXBD|f|b^+BrKY=iio3` zN#iT2HipT4b#Temk+-*Rk)(fNeqgmQJo}eEoYjh~>tu!b3C5~5%h@gqNVe=SpkH9w zFERVM%YJ9cqqp;otUxwaOW+7ttwk-4b*pcCuXC`7_7aIZ8omiCi9%h!NffyIuOOlw zub6pgWwtlU)Gc+F5`o5Cr@G^-4Bka1v@CYL+C-nZL zRh!0EQZ0?&aiPCc+=p`0`?~oSh`Dj*gSSJkR5F7d8gF^ltM$r~ShC>}**44DhV(E^ zM%@*$8$;J%vIWGCF4n%3nI&grQ7m*Th2`l9#fym55@KSaHurn4u-3V5E{)uPj}9h$ zJeH!fVVS0)h7R~GlQq6BRELKf3rx&YhYCsUW-eJ_H`6j4223X`c*KVqSf7Jpu|hh} z2arGF-(&h-7s%u}Nu1BT)X5v`;ycQ&5wgv80mH_DkV5!%^35pB64&~Y5=mv^uk=P9 zk~3nSk+;(a=KbK`#))E-Cqo}ceK{Vt70i;3TsXZu4HK|YHxR(BklY@_^;^>4@CF4> zLY)tIp02>Z<Q zKZNshrNm8I0uvyIJl`X?Of<*7hAgQ_3gO3#5cmL+=~hH5-0A{*yswF)2H4i~9&_=1 zMo}jpo&*ls2Ph<6zIBI9PI-U;fRg5rP8d>8VNC$9?%KYRTN~A+3jK!frav&}2S`aa zJc<#Jrd5`Dt>bQ8$(weU<UG1?wNS$8MHhL6Mx!vI#8&`18kV$&XJE z7$2eq8Ix%!)(Y`0MW$2{8?V$>*S1{6{g59);yeMDf+HOtiZn|8}ldYZ}%n ze(c0k$Awk z;$~nOJ7nzq78e2nfN3qAYnL)dU#ToqB`l5JpY^zl=p~6@|J4hWFvzff=ff{9O@u6Q zRXSHftzy}raUtTgaJKWR!7M#JKj4JvGdEPCI8>leebu`&m_$62SVM+{>wd4NgDAz= zL4<92o#%S+0UJAC)@8F`S*{od>MW>m?vcHX$x^!8slu6R0Pi=}OQ^rKg}ZppCN})I zRwc9-KWX6%CxM-Z2Sgl%L@AfVwceZ-$TW{17YT;`@IG*BV&%TZOrpQo`M3#>T}{#|yP8#sxg+ zOMm0atzBjSJr2e7U=qU7{)XOUD;hWBg*{K3=N7p4`$Z_CH&VVKa+`56#KXKllMS8^ zMAI#hWMcubthG!P_D}mL)Q-?N4^GEtr9g+56SHDPSw2W|Tc>_x13lom-Y*_}G^4w4 zYKXCd1%E~LJbw#x6Y3~`mfq#RP`J{GBWdIm{D7-N3sHgb_&_N}e^>elycr}pI48#N zN)!r^S{0refFJT9j}jmYjpCIMF^Ux@Zd0Xu>-F`P@lq)^TGcLHmtDkQUPOB9sqG4V zKufMv2U7w%Yjkifk(W~1wdi) zG)3bX4~tNb#3AQqkwj|GL^;+_#Xbz511Js{O2~v3m=y-KM?AYq+_L<@U=kqNPe%5p zS=n-S2s_0a5V+KH^rvKsn??a_|9;g)?;ji}fbpdT8uN#71Bdh4?j)q63=Nln7zq|t zhj$|Mt9fw?V+J~UhdfSa@OKsOB+phupAN!QY&)+AEld^PqX~Brw$63aLKC0D6njT< zLPf%zx?DH6@^5D`zP0%!y>HE{gP!Qcke+!t3j$j6Rx#!Fx3BGkEj^VaTzZds-h}+L zg2hhTCGYB{%%Ea;B^GZUacJCUv~87%Z@S*;Pm`dIVqFtu=ts1~{Xie#4rP7Q3y(#`9~ zo5JH9W~x|)HRl?GOTTZ}mY$K;{xbV@)un&W71BJ38=AKhdG z?0>-y=D%Vecf9&CyuclHJ>}lW3JT~(7dT3(3&R{!x!U_^T4K1pFn0R$J6JImMJPNh$ zLZYD&j7>+Jm6c@-EJf^}QXBH=%+;caMYDe~o^1bI-`u>kzurMXEq#Bq$tA*8=bC~T z_|n*j*I^dMR2%*HSUK9)E(QDJumNfa{%DimW7b0sHm&HPXeiTM&M`Jlo8L&3hhs8%kOlJnu) zH}xx7&gW5v(lh*1R$}2cS4PW9W_w zjSNL`y}6tJTs=>7ge|-T_jVN+nfdhvM>bAfwE3yD4(D(%@=*G{Hm`mamGtqf$L$j= zn1QnqRiksFeu3QjPp>JiX0YNxV?8&Y3SKD^sHQA;a&%B_BQXYi`G^R zyychK4n_7J8giC2=as7Yxm&07%D_!t%Cw=jOjm0yd(x49UT0E%pDZ7su` zFgcHk#5LwrPBtsMuW!8OR*fK2!5k52@_9}+rgELOaZU2UA5*L0`eigQ5Lcu8hR**>8tXliKL;4O!>OmE=ZMw6=FV{7ybFgzKAsIl7EPR7 zQvy!NY&PXJmDBV9g2dHvbl#tyS%!bgg*g0-zYV75rKqwfq4D}-aR(<72p7{Ci29+8vD21pH1~UIH~$q`Z2^!c!eQaq1?x z&}}-lY(cjUa%v=qXz+VkImfQzy(GoMJyVARNr|{h!tczN%e7qFdTk_uR9ES!Uv;z< z9mf7zO%LxuI-;*#dDUgDFUJeiN#I=?Y*LH8cf?zpON)z-*G2S&@fH$0 zqmsAs`TO;+{r!Q7APe=Um2va4Pa7~8K#eP3qYo{8eFB&fGZ+%vDqWVdO6USoe|+>} zt;k3FtfgM4Oh}5Q78VxfL6ozy97u>N>1T51Z4~wyZJE>slKU%D?x&1O#7R$jL1T;8 zejYwVD4_e8HEO-N(sE`fH&|h4IIGFT)HTz?_O!evJ<3Ro)-#h+QJsr-7&M$(I4b+R z%MBmi3fL5=*Nmr?54WDtWC+5FkPx52rpvs7f;_OAW@NYuq*{}QDRh0qhAQ|O8yhp4 z`=uO<Fbzrsmc|TOc(^q##R&% z8Y(Ilb51-!hB^cAhl}G>%Dr=1-p|;-pc{Zs? zXQkC&Vw0t^?L=%+2gQ^t*ng*6N^UF04ybEik<-bB{d1(@j)PTI{ zv4$2Z6d_I*y$eF(>5&0uMcZmmBmibR;fAIWw;43pSP+mX5Pr7`Sk(;A@XKMsj2NM} zlNbyjuw+KZcLtd&* z8F)iNn8YeboovlIJG11fhz60jdMX>ee`bShgoB$1%FW5yf-?O$Bw2|)J3Eu?<1Fhl z!}}xdIg#=B@E|NuIJfJpyIlu_D{0@zS>YM45NV0i{=)R4iYHV=FXaJ*IY5>>ouhLFnh2w zwU^7@8S%ng1lFSMtbnopMV&VxnivyBPa5M@MDB(o6Xfv?5ExQ6)BZ{O2)ej>dYr6& zfU?19k>Xh|Bod7pZn2ZnHFkgLn8yB%DD6wS?;IA?EdWVVJc2vD%;~D|8WS$QbhvG~ z72%X5N!z6R_c|Y)o#yBs3dZxw7H@f*S6W@jgjbzO$PJBPEZkLHtL-4Mcc4n!It&`b zP_nWpD^kdpk*3a~qLkeeKq?octMUgJ8UtsjSQGA_Wt0<-1)#WTnj%rCu@y;*CB626 zb*IaZkRiv!KanD`0dz~TGtmZ$Pl*Eq91>`bzxg;ziab*Qq>>D~h+^81zt0gMYqIED zs-m;h-jXBUWq!JKGR52gLjl$x@J2$1s3=SHT8h6%0)$bmJw*HHxm`Dxv+dQXzh~hi z?>%l)lkdfh6_B(3lr>AyQnllG zdhoZUdIFs`_H+?pqRLs?PI=oQF<5y%+oDYYCwOs>?DxD`SkMZ`foNi&=x}-H7=^|X z6xhEG;sfPrR^&9dWD&DXaY2Dkm+Ybd#}*-Q^{i)W{WbrL>o|dNi-Vkx1($gZwM)V$ z>K>b&9nGCM+N}wBQ^W*|oE|m-9-5E_LchX2sl@`~(;n<;4R6Rufy7jq!s;^Ma(Qy= z-9JRt?Vj=>5iPQL-a$3re;`9;tiJi|u+`W9^H|gAec!m|RL-W=M=)R`x;C=W$sorO z8w6$_b0AKn)^J3tDy|uSktvE_u+eB>c!0QvB5b=zmS!Jc!U=u7QB_UEPHttq34tob#ismnwB zPW8ipSJg&<_owmgR6e9H%k#I>OKLcoP{R~o@CHu00bQ^q2axCK=0%$s4m?P(s;d}VlXg5YLLZ%qnlL{`%^ zzr@+1O6|{-2^&dkj?&Kzh&)04XCOPJRvQ=r@a}aKL-sa0{X+aXu1CV92@05=;|@Io zCRg>ku5T7z5$J??6}0Z+;&sn2JA&Ck;-L~8s&nbSNis~m85GlVs#r^$&J~PQL>VJB zRvgs!M2|5O*%bgFthijrQQ;l3aRhYDKalgpCm0gg z*^EAfKJj-v{T>rE>?XeM#kDYD{C5$){WqJ&wb2DOzR%aSR`V;`!PT=b2c|cilOi8z zrlG)pq(cN#U$y#HG?NiQB(3wbmXKWsqPlxsb+4{|y2;W_$b^}wxpoYOt2#z?c8!Mj zeO26B1>zL0=uImQ3TE*T{BbTu!(%{@AsT!p3Q`) z6wrl6XnN=+AVMo_G3!A};}sS89xUTMMWM_Kt?!~eEidzE-wQlJcPDUFQ-a@O=)?~27sbY^PAVVSTiW(& z9@+p8_E6mAuO&^uSf{Ted@VP$dZVxr^C3{G9v&VFWK;11%ga@`TwGo#TWLt}rR`G8O9A0a4s+lFSdLjk(c>tCT8poX6v%1Vwu2AGiTaTQKd$ zjDP9IbT?mw=8}M`Wi@JssR>sxQebqEm=oa1VJ}g$EL??JqcShaUTbvHUhWf?Wz768 zm1&l?RA$ALE`8XuN01VPE`yp9)d5={kzodD57A@*a@%d=E0xBV)FNWiAM#(5L-3|> zMHR=s?yVJhzd_~T!;@R{#y`z9lEW^kub!6R2ZU|2pdHzb2o~Xf#!`gbIXE}~|6LYQ z*W`^|@8K6g_of-*unGhYgEff9fZQ!lDMbl$*+tcp8Hx-l=;0lJXp{b&XkACB?H-2* zTTuC0t4AfjKZwNj>6+6wHecr$gLU5VNxuF)zsc)bQ1 zK0h@k>69?Z4WBOvi3vWwm~Li{t#b>RE;|ninhMV$M9li7L=7SZ*)_;x2s zWK)$13j8=JDWA6fO6ia&ZiIJ%p8yL}a-aqecufM$7JABsrxM*ldZvFslyjvBuK6-v zN4HM=u@}MkPW*7?7ABNj{TLrx4os9ZDpErOlh!3US?7N7(F%29zjGb#?kv1hRrDKv zUUJj+3N^WpD6C!BU0`&}Ix|dVzeua|W^r zd%%nZx4?r+=prKAHhYsW4Ygt-AP5xH*4oWB_nhy$em7Zj9dUgmS%h;Pg(MPqr;^T9 z^pTUKql!1gxu>$Reo=*X7I>+-wG5t&h~Gg&9Z-+zlBOQJ+X}HjSw2F;NcnmWfdNP|L{*UH@q}9EIT$d4%-f3FaaYWFd-wb zo9W3GTpTP?9Q^l{0i6PxG#hF4(T}sWeVvmR;^mu*dYnyrqSt$NH|HHVH%wL66~OA; z)+S8VrK!GUzNw)e=H{ZY!yOPpIfWTz{E%kg>))pa?z)#2YSIp6ueeMN%* zpRf3DM^OV@SxKj%D?b>qToAt4EoCc;KhPh4PC)Ql#WP8_7{WYWx41$)VJkD7IRO@E zE(#(atVrA^?YjE=dt2+gD zur{0V=yL~j8nrwU#9xy6Vgnn`d)m0Xs2B>s7kj524Zz;B%NGZr^92yV2n-<60)T%% zW3lKJ-~-4q|4tmYwcYoi*;gFIU+Zn`P8=sUcYU>+S2+xgC(D_r#1T&AQm}=+qy-GT z1+2KZ$nz+(bT#^5@NksMalp`-C3kTOYk}7`#zQlZQe{Os=cdv`94e~BL4L-3W71gB zb1o{&E)8XI`d8G1<(1WFosUTkd&hO4q9PrGJ=uzbFOh#)G zmBIuev2eZvRj-A~0=sT$vU_lV4JS3QBEk=XXIK>d%&73 zB5%<|aKgSR?C6U9QIQpWb&t@6>{>)-=27(N71!N-dCco41G1Fzk`o7!57D+OTQfV* zPYwx6gI|j>XQw+FFJSr+m11MQ%xLpjeCJM#&6BlraOusPF!h zn%kT=b;xi{kxYNmjr&(5_QSico|s;Q2Gt;~o%0B9J$7^%y)lm;;f>Ad_U0$jIQc$E zII`7o{qGWfc!thT|L4-(20RmWS@&jj<&Dk{i&w?o($xGG1C4<0Vmw&03zYIOkgO-@S# ze@(B{D#LJnpzUelrjL zy8-z`cC(cYw><0WSYXzA0(S#x2L2rN-mV@FDgXOQQ&^deZuxI1KxJt0%WKl`EKjte zV_hPHQ(&=WQN%Sk?{%f#(3$ktN{&P34dVGp>$pmIDFT>CA`kM*9#GmC<4A&q3aGB% zNP8!HRK)GqNH5p@`3cD21n(zIn_KqEDyR~Nl+=>K;byauc#9=ix)4rKSIt-=4G!;W z5_4&GZo)1IhX0@R`BMb1)IU$}Wrv%<;DRhgg64+FyJhRrPY$*!D2JjB#>5Zri_!3W z<8(8h?uCc#+9#3u(~ZcL$;u75n3k-a?zRe3&%Mg@d}-Objb9kZ(Y+Ue+pm~wvX zQv_5cPhdQLt{d|1uH2+S2T(heo42owg5sq&I>=(26`v+$rLi+80CVTt*KV=WX78wU z-vH;dV|tSk%5M zT(2M7RhO{3FXN)+Lx{-ER+bwON#mSXm5HfiXGheaecS)8SK=Pv;`xMr-7=MmJR>BR z@K#kpPw-OgC12?G%SnC->r+C!dHf60k1fiM$B)+{@huHs_d>hvShsF+-~T7Pc5-JC zY|>vyWp`W~^bLg9P&L~}uIM%M%&p>j(f;?qU+T!fJQ8W1~jDkWxBmLb>K z3^`1FP=-C~su`))M4oWKf+~yMB^cG?=A_5H8347YBuTDcX!Yei7c5QC5wjza^^g{V z`~@VX@PT-LJFq^is;bKJz^_bp_aPUfKn+~GuxDu{Quy)O$3Lif8pf

XBuU5q=>w z*bP+g5D5gQQ3$JJyuKNGPCzAbaUsdlg!>TN2c2(1kT;%8=!)}mzNa+ovrH3wQ$}3D zgQK+ccE<7i5MZ5_HxBsBE^TWq2~Gqy6Wvi$V63JUE5q2({tV+ZYe!1Y-a`Z9y=4Te z&gixF5ZCX>i;vivD*wjpINHI(X2{j#yw}v@-2b`qw$6E^C5nk!y{k9ya1C69g6&Nf znT+cZNLN>HdDFIiL6s>ldB=RUhXoOQsQ9ctG~dlHvnayO?{XwAG-$Wm9~7YDn2{ku{qm__i_INpV8j6W4mk$|N^}&vNLS4)+uRsra`$q! zLB`IPvWLnO^5rg3{_8i&H&3HIdx{R@(zb!DOyQpE@ln=RM9Z79#^= z;#%SGEe!K7-g@R&gCOubhPZt`9R3`|@16m4m3+`$=_g3}$5WNLbwd%~gr^$9AKq8! zts$fXYF11`E`1StPxtDE5`y!^s5UR{!n-s(47yFp|hpl%C4mH}gbz|F3W^CKGZQD*}Y}>YN+qP}n&Y5dh-MV|7I#2)0c>1fi zs!^l0_H}jNl^*m!^8Ek;|6e@w{DD$Iy57|r^9}T%s>bsRnG9H7;ZPj@>8`EDOOIdz zNd&w=%8HpBvalBWuXFi$)j8nL#?^J$PfRyk(Q!6k8A7mZLh_obB6(kXakWB+)J)|i z4;1Z@c3##e=Xw-sj4PxA@@Kobzg=5b#s-t4bapRRQnwBOn zD&I6h_4;&p(qZzk8h6Yu>3$>9e{%;9Mw5Q-Gzt1Z%lq`t@< z_=f=cjRFpd2mTTicD%`cb_rk|cXHps0h(SRHQJ6w3Dh()wLrJk?-Rzkm;n?^XILJ& zx?8WIt7zA|2!!x-9~$rCJ?eL6gR`|gf?G2$`OiA4z=j4+hjWmanCRSRP-#AL$FL6;_038K&zec53KV8w0x|i9hu4I_$8Q4xv?Gg zD2P2#sv`;W8un``%S{He9bfa32qr5d9j5`Au0jER z{Y;@PT-k|{gT4Qd->dZA2)fGda&5W{tp`$dSSPFZ!rZ)wb=AXB1eAQN>p2^q(c@s@ z)oRY<R=0ynLANu<)HyIwq-Ykq#L8 z!pXIywMhioad$K(;Mp5##N$w`bKr#uOw36k`|!mAgcc0hSmWBXYVeX5$~R(iM5cik zTqLrzvjoX0xR3`6%pZL+98(`D+gsNxaf>ukC7KhXXa7SU2VO5KKQUVPj)s`hI@A%FI4G*Tx_eynX~(W2|Ho7AG9r z{iKCyJRxIG((^(thY6W2iGSqwlCm52s>OaDXfq3%I3u~>0qtzdxNO#=S<9e(=OP7- zBIrxZ6IFXPMFFlNmwXn;z+%3d{v64tc1RLw`oj7#cJItzc`fHe>Hwf{5^t?J9 zXf{b40PdB?iCI$kC(n%zVntS(K76k^VdSR%x#JA$vbUM_^2(Am9Tg)9RwE&45IdG` z>(ZapsOmI%4|20T8!Sk=3Ul7C4iI|DDwq>8r}g={-ygvsvw@@t3QuO~B6PqZsa{S= zJm3(KiiDr&_yakT<)`%Rpu_(KYmqA8@te@TR4YDI_!RS=)Od=$L&K7L5fdg^f6GCu+*swrAa| zs~NTz4zb@LKsD3ny&j#uHU}w z<+QafHg0Tg=Kz2KhLVa(bFWr_XAVZiMe+$pBFK-PqWLDu`@8Fhopa;IW@-G9W&X9Q zHU`Ye^Hef)lEhM?W#lOMkH#5U%>i+N1K3TX=309|i5y}(qwUl4^Kq0y>;Nt;ENo~3 zPqdctmsp+?`yju4sTI6y7Q;gYHjwrhMBJYks?F3^RKt3V_260A*;Bprj1Miv8)g;> z(&Mqd*gYDYcr@ZcMJT2*J=zI$)AXV(WxP8vqZSsiDkZjLF zJt--veVyP9gwE2Por0-ED@T2h**q3Lfd zt{*zfC@yuofGP>L47sO`?+9bToZwp+;0o0%eDLR(oI1#f zDc}?)FVjnnr<&bj0?rOem~f?7fLEJV+p4UrE8*CG>s1TWyEj<_G&broOGBo?R}A zV}HjSr_q{Z?P9l+CSotkN?Hgv1ezsq!HnDbx(bn+fm6&;)E!_(SdNUSu-2o2el7|& zrfKF8;(oMo$Bc~S!a2h^m#^_z%Xa}86BZYfS+cUF_P0KCeA;S0UnSS|#n)JVQBly* zXZK)Qna_ibw6s*UKsh*k$+~5=Bm!tzx#(9(;JpltH~aACE@S(SX%oH`yGtwWo;sz24t;<$N@9+we`7w3!}r z277~lmcd)=fx@<9JI~MQ80{!`Jd}!Ws2Y^DGxXCKDET#2KkPH%b7n^Q>@n z!7R(0s}f4-IF!9L5l@reI7Gzpa^o~h#i&~xI$j3|JXe`|C962R)zh|l>?gI<-_zoO zdJ!AEU;JfA&!`7b+=$@4$K|iy!3YCK$C64HT-rPAer0%Z?m7Ual)`5mZ;xx#0k3{FXD4WNEOWyp= z_>f>cRJkn)B@!X~gsB{$e8%Z+#+lgdB@`4#Ex(=V9ix3>rukB8nY4*5ELve;Xh#5d zI2 zt{r@Aw?npWi=sUi`Cb7EsyQgGIQPS)bej@`%*+q#xFfjDxE zyDR8G*Nwxh^Nulxd1)+P7M{Wcfc>=<5>4z9cwbzIOuB)nIxHw>ieM7J6dkK=AF^Ie z!vRu4y@P3z&3#z_=|MhWXl|m(K07#0FRjZZJwMDo>O^+iUi%Zw@G#APyC-`wFUZ7Y zPwPoS8KN^_B4T zbsqJ$`?Cs0hEC;)z5DAs*r8p?*5?1>5!ezLed^@oW(8nzY-liDbY*O7Rc&HpdwjWK z=KXyOo>!Ge`YSO*ebxIvO(*u-bFZ0y4ul!z|29WXlKwk%jrw2ah@^p)$$#2B|9B-&her#v>@@MC4q&YQLYG zIsn7~0SQ^G-fniZOcKQU_3G4Uk=w&SSh4HpCX{Q`)9jIvT@ee~br%VZ=akb(DX5Rk zri}$f4ab%l{i_Ldk#xNnvFrGh3{iA{y@Gc~t~wKD-Nzr(8ZTVOhkfq;bQ}O;^L;=3 zI|gu7V93<}0@%N+W-&gfPa5!(Q$tx*F;Jx`x?HRgz8ig^0a%2!tb(aiY8W;Qrfjm0 zAKmE8Ny>T1sG|y|Kfr{H)Pt4mq}we%nfQdiH9}e+#&B=5#g8d-yT*+4wQ1+W{c)Qr z(jHbZ$W4nhvyw?4Zm2Tig-9dgbCgAPKsQNT!K!HBr(rzRP*&mI(|%~8;k8$P1U>DV zL`)6t;j4)>)2Jka^{#Z5Sy9o9Bjj-RV2Kv)Eb+&8y_RZi!uJ&dp()ZhjgV&{iFZ+w7 zjo}T*SD>Pr?WmAl0O|AA9G&>A3ft0U9<+gxvf-wh^V6d2Sv95_R#=#aKq6bFmtK{-9N{mB! z{x> z`%cm0BxPsw+)2Y!{|3Kh5!@EZY>Is3FKC@Oti>>>OhQEPlL^RFFi-+q<5iwIwSg3^ z$~H!c(USl(0lQI~syHcS=@&%0np(`U;GJJuHb&mhOxf`HI3!)IHw{R#8#9;gu`RT^ zAzEERkqj{fLM7()Zf)W5rb@H6O0{YQS_Vq{VwmtPNd`}ksIt{_5U{j>r>(7HL0*@P zUfzpbWz(3Oa6%L%JQl`f%(XzS?Vlr`Hfs;8JRR_rZ~zp89AS<4M;(Q4;tNt*Rgy@t z^QNc?EjldF1PKJKf~ym)GY15lqN2!EI5@WjPRI^$-b~siL4iL`VyMf*h0;_A8=#{u zB2vj~H1^oPADgw_uvGuZF8%j1QPBpqdnRx~78|K-4sM$x*LP3aYPQzxz~`NRHn>6H zW7^brQri6W8-c%%WdN~R@m26)w{>+&On_7+T_W>JpV=TiC-_uZyBc1wI`>$-B2Tox zAjx#?dJbjjrJ%5x4pexFPCM0x-#1+vQ*vHkF! z`8o+LAsQ7H3OwecSGApA`7?*pOQ1Gl_O0aAQ12DE-5eghnsNE^ve~?sT*Scn$Z-XH z=0gdmh1}dkH+jiCy<2rZrsazw%0rE?806>Hpwy|F695U0XIBI&>TX`d*Zn25xMeVR z0JnA^RM@f`e1Aa=^Q2W7z@66n^Ci2ZEi;j~cuY>xs(F^tGE7kP00lJZm(|2>{N4xF zMygc&b^SC`HdJ}?co9EL6j*nXpWy21_y6>b9&V7yyS$~!W4LO?v(Xf>FWpIU{!4xb z&bj3I_WMm`Y91?@-zXcB-2&logx8nkn;c2EXbL>%c?BwPHAN1u$7+#F!|&f6CXBY( z{z_k_blI;<cI2lxJ9O^sPK3k|t&KE9Eqz)z3_F!7WXyuH>!W_m zqQ%#tR1nfKVsFbR52x}~6(FI)k_-R4{w*M_DI~Sh6sw387c~OwK4z(5#3wjN!LV4I zo9dG@+I#@XV#s2|{ZbKSH>#w(`%5gV#J53RvIjCNgL$ZCIBu5Xw=Fl%R$H?E1w#wF zu5wnsUh0_~Yw2f8@2ys_VCz;f5T(^;Jhnz814e!H|2~-#DC#?s^ds?=G{98;>suPE z?^n9mZ;EDXG*3Gyf|;}cGz6hcKul*$(7s*(vNrP)JZv z2|Al^qa09BHG?oa>;v<;f+PGjKKrq_$`>n2l#*qzc4>%Dq)U`b+~Hs8KiLQv=89)@ zOMS%#m32bO-H7rP#(XpEcVGn!vg=!+MIH=uS1>lFh-OeHF5p&wFEkw(YGfH72&%;f)W2T?zWB<;ZbtfhuPkNI79d zl4}r*q?L4gShMl)XL3#(@Zkwn9q1Bx74F9APQ#Cel*$2tQ=3H}bZkHd5-HEsfZK4j zd0GPRlqa4J+FI({Cd4?GeTjB8|^mf0XS$q+Z}U zW>CptY?fI#_dik z({{#Q=R4>UKlPd%wKPcpX}}}4xEw4nYf_RkANDxhRIhd*!$KXWVksOjvh=$}Qt=#S zM1wnpee|)Br&Xh?4=452UE8kMpzLiFgNXnIJyb{p@J#yI0ycO71bCY?q)w_~ehp3u zAqA|&wy!`%h5uNEdHPMlCDJSh{wD6kjGDjf$*7N%8e-)Zwm`xSczOt=x-#QU<}Ao= zL{?pRItqv;(|*BzV<=%m(zli3=HzRK-zWh$K~j42OIB#ud@j+jZrmMus}D1^t(a<~MOBzpk3ThsWoY3ZEGnjZLb z&ACRLl^hAA5Kp`Z((Pc#VK1H+FI*nwPjWi|R$C&Xx*NVOd&lTBZQYanA*8#g5zRX- z@E9_hZex(%s-LKKn}yAgzn0M=RfPuRrr8g_5<}d`m!E4HAn1Z}NYGXZF}(9j*y?wS z67|>4il2>Polyrk5Qso2{P++tTk|L%U^F}EyQ2cUF?&@3$5q=y*7c&sX%x1Th?i`U z0BDJ#;_HFr)tZ}cqWHy8+O8m}%gQugss75+H9@*=jSbp#$+#V1rc20TZC^ifjkL5k zX*2(!QHqGuU_zBspH~s*x+hAr<8?2vxt{Iq=>E#fjB0Cc4Kfo>i#(ZUw!d$b z%jH>$=a`3qt8<$;6&6x@q-ozD0~g(f#XzT^zL~E@Upgk0l9y*KQ8yX{g(LXMk%#Gj-{hq6$CUmcPqDQa9;wU;|<#hrk(^Po?z4;Nd@yKVA zTS>L*fT;Zy@8lH}A47-Tai#=!9CMrTAa@LeFeyvu>m)GP3$GBZV#JbSX+<$G_MiE` zx0uZ1e{zQ}Wh4af-Wx91%B1Z-_)7Brz;r}4+D1Ybp&cAMNQvTTwk%rRl|pXf|9ufL zsP9`wu=oqPw$)yPo6jZcqH3-(eHQ1A!1(C`3H z+E1s4yyiYBq@cK8IGqzNsZ1Y9w;Xwn|6wFJ{v--5msUDhS`3a<#x@~w!5Y_MES-Tx zj*DtjE6PIXWlZo>i{MORMRu9|<+NjkaBVXepAKO#tg{b5hF9bM-U<7kA)uf(% zN-YvSnjo?cdV6M@7wGqs`xKu+3V2(lUd=ZWWK!WJ1#u@B)zd$)aS~8!DkSRI}X6Uhgdor6}g?=`sllpU09S`rGI=AiA*B(&|lD`Q%Px`d$i5 z`OVrK!G4tptTJD_eFr~Dtf8SIS3bR#6-~0E#6-6!D!Jmfo0VtkBmg`IPIAc+py#r&45b! z;BL#$1GSQ-x_Qgdqq8ga%9h(|-wkJ}?rflIs4QW~k2`+q&e;4$!Ct4^bEK_RbMkU` zW`6}!TnlCu-jl5PVeSglbr-@pgYYZ0)KaS0uF7JA*mPzA7ghmH)oZ;750kT;(^9*} zMz-cQBmZ^1?S##zG^trGtMX`J?TJ>+evdS>>UtFo4k#Z9(58}>gmwd~Z!03n}I z*2ZV_0^TMaJ?J-ddnESel)x+43(s|*E88zC$gd4VhyK4WPe`6y@QoX31V10Y-N zf}HFKOI07O&ds_K9XG4QCffbb(AALxon>x#{V@NUL8e`mdT7ve`6W6wJcrl!=G!*6 z?QVF4+rXyjct{T{!#(2uHUf3602cQvqx{yq4d=+ij`QL-pu=e~ZXJ}oG6yBMx)Ab) zUT80TQ6J@o7Ok`y-_GAx$huEgvCtz|T`l|Kb`t;1;}0J<@J{mc))+Fr-z!%qk!Nlo z&>Rs4_)$*SKUGHYe3M!Gyi?xpyjVOJd`72khwpyR%vB)t*`{Kd*}RiBsvIY=yK~=vt853Lg!1R z+GP^`jYJ-|vOOApzRONX9{eP=swO+kIEWBc)`#S{5!{Ph?85~RcBaRP+9^e%)mmATyWd45;z3%eL9EK#UImsx&y8HZo%*Ueb5+5_5++vl zr!s++TUN`uYs>o3RHirvW^{{+A)-~N`SOV5HRK-B->6ie92b3h>}IvyAW09~mlV>y z*Y~OO7WSLEplG)u5yFERry2fkkw~O=n5(qoJ6QgqJr9Q5Cs-+#Rnpj^ZKj`~nufb= zvoFVyU~jdbRn=$YHWVyleAJLY4+rT_B?E?n07YBS02#H4g>qx|9piMRrml)2GS1>S{ z7FO%i5f5a|xV*3}obqwK21H#pjD%t!4)@)LB$OU!VSY*aHJ?Nxa@kYLg_42wENazZ z23#78m+lGN**=8nuzq8B#r3jx00nUi(2Qdec>0gZ%@Wf`QxEWlOs7_ddL|#sRLHKN zDAzxb4_{c3SDl29%I3#`gcCU37IW87#1i|W`tUh=@pm-_&JRoIQW6ymUz+%>nFUsU zjhwjBx1m&yCLVT~2)?4!|7w(|3|K1;H=9LX(pW!%jsDzzG~6c+OC)B#1cvSx>fN4E z7LwQ8Pi@cS;puJ(U&NFbHCakGQ1IN?H9slNw}TT~&6 zZXQb%YRII1z^Wh(R=4UT^#SXLup>ADdxpG05}r#;nqZn*GmhLJo$<8Tz|xt{v`Lkm z1h*Z;kN_NF#o#Y$#zTy~K3#mcMaXNNH3*>xCYX?ifw~@k(&tRwc@4mcG ziBHI2*WB)Qk9}`lCzhcCv}`&LjZlhajiW>Q45hVohFA*X_HQ{lP8WQ0{=@$34IiAn5%vcBjWkF)fyPNR9alTFW@d0*nv@K zho6vL>s3^ks(|x!BAdtn{G*kaOz+>%gS*l}Ha@Iq@8vbSf!e>S)c4BETSFPtW3X^C z;IfJIp>`h458_plcq`EB$8=Nuh&-ha+;VVRd*t^6#8HWY)v5<Kq1aTF5xu+#1 zli826ye^%VW6>PVD@d1PvD*ZgX}Qv!b?U0%L z@A-JamO^e=vKxgG><@cMboz%tT>IHwYjm|VK{t5%1m|zp{uzpUQW#x{SpW7UUbc5e%MGmCJ zTTPsG`pQQP@SYybKbxmBO>QAU5C$1~=xSZKZsqs3Ip-^$;3-`55vlF7RUlHx+w5m< zS$=cVjdFb_*;mb+AnN;4>`$G42&^QOMXXiPpf3=PP5fVR5PCgEAgz@EQsjCu5gUJ{ zB6nbVS$yg^DNwGJBm$cwS|qObxEFIp4bzMDCt>=gvY4%w*(HZ-NGVI6qO#{hBjMDs zK7<|mF7afkNin+Hwldr?*8I4pGMn1g{Z57f8C?f@6k%97leKfysqHGTcjTgGMVXUR zVmz%4L3zM((l_iMOhV1F^)0+37)+f(m3u_Q z?r0wLB$0dMoZ%amoJ7$~ie$*c?rk5{TYxg?AT*qcm=2w3iCXaT8aN7aSL0d}69~mR zE4qOXYqKSHTVr<$jnlcVRFPp9x!tl5JLPE9bk zV-y8`wT!NXR!?3>;QfE5p%@{P{V%y;^u=~$=KxSdg{RHlFt!+%c^N)1ztIT+ubClz zbK4sD%7qvWb|xh;;iygf=&bhWZv|s4S|%)WyEJYcv5ZS)eqypdQcxE<4rrreT3CA3 zv3v$h!YgV}Z^Ru=^bV`08w$vUKGX+f)v5C?L$B^fQ!nIvl~Ku>8iV9|T)YE5Osl@0 z8*}SwAsuW2SaF^NApugXDy&J&KFK=B9{9*I$v{c6utc9aaukN?ShU92bbTlf&&u=A zc8O;Y_uX!`2Xe%ufMxJv<~Ft+&&BfYQU>`#XjwE zuyl!i=17EOm00Pjj!@yfP1--$V@Y2Hh(v9Sk0Ml6HZfeqw}B@m1sfiGYr@I}-tenh ziHF+#G$6B`+=N{e!fo^(wijt<%NO!4+9l?RRE2J*o-}&tT1l05@NuyWAjF)2?#O-Y zw_2RP@3*q6;a6nt6=;|+CJ&^d>f_wbes~uKbJml&*CE{TmmTtY>>A-SS4veQ6~8Ar z_MP&)`?6r=2j{I*FOxoq#o>CGqg4Bv zW8d@vf`9uG`5Yaikec0V_j;7wh>nRx7GgBwUr-AjvV@#Mekc?i9GU5R)K0||MIH$^ zumXuHB;Zht(Icn;`K>&1HslviG#jSOEj+B)pNwqG13%e4^FKMe03=rcL$<*3(Z3=1 z;?zz`m5S+Bb6B_cx;C?U%`bD!V_3&ZFaOD)#hQ`?9=(}Q#U0?xW?z-D-`Rp+K6JC( z+Up3pPCnsArCd&Z={mkCjG>je)Owxsl%0mH4SvGTSxrm3BL`b1NYP?{%{V4AA}4@q zE5B~s5l3SN-z#a|7cz_$Ua`TN)uoDZ(u1*WOP^`FU#9k|M)0Lk$pOm5xKcuqJS0m* z$`#H(q3K@;I~VrW1IjM8CFK#QZir&8cXY&3v56HhauUj$0I4~GxI>P&%XitFy8scd zL!_u!jFGV*-@X*DDk-4MynTKKPy$je=PqES>Us-LWsRMx!DBPp+1k_vx1>rhFsP(} z0n_p}U%4jCMWQbqNK{yzHvnJHi9$?wTOA*K(XUi3*-25@$9F2${OrBy&738P9@}>c zeY;q01MbbPeV+ZHocC7vwT{kZ(;e2Yj_iNYa2(feU2co%ENJ$(gQCU23TVo@H4aiN znP3%g&&I9X&%%I2JA|KZU!P`aLtTuERaPo#?*d#7vO*lUFmPchtGA*~!V_i}wLuoh z*~RYVM9fLAQw_1cjDI<8_u!}qJ5}neqbs zrJpw^QoUmL2CG}b)JZjT_OJA=+nw}6EfFVFkhdxRF)^b2gBnE*<+><=wswwBmHCJL zg*Ox9;k^IA;$Y@jATbT*hc@H$jEwR+r9usvXe}K;0`EK$=;UfeQ=bbaqRxKYPKUeoNVB9|v66(3fS(~fV#FQxep)^uNqC6zDZgbjhDaJesBu)X(kGOyq`&xK_n zPKa0F2{-(UG`o(;xp`>INygaU_bcvEDFVOoWv`>sH`9Tu5scrQXOkhQ;41Z>=V0-!E_s@R)rKDS!WglB5fmNACN8le$94h*xr^D zAA5Y$P3(A_w2l?>3w=TM`h0liG9Jkikj?{l>lXzQiKj(NPM2HpydBJ!LOONwr>j@@m$>i zyU%mFJ~l3y139?7Hs|IJ>hEjlv7_b_Ntj_KT7xWm-3X|JCFkk0_DZvn!hnQpJ}f4J zt-YSlxytrmF@nnBr^CaIn*ounY2^8qX>#eo5xoor;gp&SmFg=fHMAn#5X8^jhS`ZC z`lG&t+uc(h$u#6x!avAUFy@K7bzX=ZRn|L&teDZZ$Pq=&_`_K>6soJI{2^+iy5uK+Agt(IrQVVH4sFHD*SS|eLiPyh*j>Mn_ zF-c%J3GKW^AF86d!gxBKS7=Q!$tsxIYf$PttV$jDCknpINfjkN!bYJx;zLp6I@x`K z<)~qd9Zd}4D)(k;YhpRZ+t-cosy5 z^4rdZ%rXZ+si1^^MUs$vI2@ZXU{814jvR%>s|_M%&Qt4=jRw;U)Nr}!%jfO>e`b{_ z>k`iN-?kC5e~8)tzme+se{rn;)m8r=vua};tuSdDNRQBUN~L-Mx&(I9Ucx~TU!mA8 zf`jAPua(|>8A|!n!=FidB(L%?oO3^Qbp^ac91jfSVD?QwsIg;>w~sk5Fg$0T>4BS@ zSM#cmM(f}^2}Xf21CcFL#a}r349$>rVd?AsmkY&Gu{wiQYxmL6)tXsQ-x1CTKm^aE z$p^%O1L^>v6k6RCj}OU_`H&S2Sg$HUNI3L?985Kfj;6y4QiU1{lDTbwIN5tJd!Zu@$;Wcp`v3jJ0s(2x;6 ztha>kQoR~ZxU0pxtNMfe^$YYrLRZwCcKiJIYi|Dw$_mTy-$MWI#LE9CbeVrDSCoqV zw-K}FQ!R@9T5|ry;VhpmF>TlqNi0TVf`K@s4T>Q`X8z}M2E?_sIw;7Ld)JDzq*Y!V zxZUa+gPL3aeoXyhwlnL!h zH8l~}2wCEG4-9+nPr<2(w-_~^S^NwuuoKbT<|eYX&eb=`fU!`PwiFIzTRko}%4O=r@Z{bQdXlK92QI%V{e7g|9mzN&;rQv5*-{Ev|USaMoD=_v? zigGD0YY3^L_myfAd?Jl#ibGKvwlGu=c!ah2x9 zhrc%Z)eqA8P84&PdM5{@!TAeWlZ5_J=wBLB3A5(sJ$*wEEjKkX1P^4;abTz`xMPRCS`(+GQD z`Re)pGr7I#eWq^zWY6$lvcIVLZ=CRdFB-BpFtYlGxTLZE$58&C{ZLok7Ks%X3j`nC zz9OR^?l$O!d3M5L+Mp=lSq>lew)BBhi4nNB@7L(|HG-hcFB+XjwPC2BD9^;{?=T#v zzwh|JOh2!a2h!)OzTdNY*m`v$>V zFM8myz7!NWXu{)XJrgPfZQ8f1;FiKP3Uk}=D}{fWwcDT;2(`M8owtcrZ^lqH=Tsd= zS%W*LbDGyx*y){LxWpbRAvQr%n6V9Sm>Jc;5M+d!n$IbJKYe|JX(ThT8FdZ3NFQjb zV|+DWsEGoBsIEg;d^3voUY)J{;w zJHA9t?()r&fXAZ*Ko;JoFKRQjN-LE*TLP>x8a>dLQ(xW^sXKWVzIM)o^D2|d!CgGoqU+k7CE2nBHqkVJ~<*d z$*|n?m|#A;x%8h-hP`e($oEv5suP(}^QBrafXnNh-@Oa`NAsMUrQ^k#*O2(C)r=|@vQ(aF2T1NXOGTk*(|8Rpp{rjTV)guR{;FSf?WoBojo`J)o zi#py0@p94d21TWdm74kBaMwj8tV7Exq*WCZ)02h7j(*cD;JxuA1YoSmC@2B;rfzri6>p;qCR2ULr&BrzvCvLe4qchKX!_ZvZ zWVr6{jQINRukro;o7i}WyE_>lIB4=B-UD28DfSQEDG~<5Yy$qVb6ZzeKYo6G3GvsHbM?qe3y~?o+TL@`c)5#1VVv5tqLraWbFZa7OV@mE9R}2&2+gmy(!ZM z8>zcms(lNqXImx@VRBPA`jT7Aw)B%5aex(hxOcBhW>kwC6G8x>O~P%vn5a83ku8@-~dXZRLXe}D@ckN4`< ztsZF_64nfIc*n;}OB_IWdGZ%I{>Y?M6$0?ffy0T~ z69){i724&ViuLlvII@(or>pNC^QL+u%SPLxheea!!X;!Or$@Km#!b+CsawEgK~L|U zjhy`9;?g0|rsvCzXd_|a8Ew3xS|UCpvUH2Vk+q%gP#z;@Q44-#@^1U>cY4 z*}miGqqVGH@-@u41M4rw&6up?;@xxIcCOe&(qz%4u*D|=#yFNoQV zgxc$Spjp@)=z1a~v#H|AqazeOUFl1{xO0dWk#at!6l+}yAdKk28pZe|1Vw%umMa#2 zC}uD>lYe%CoRCULn#(*#r&tCp+bs(LyCRjc9UC@qao;u;>D~`w7U$2j_lU9)O~nJA z(Z9LHS9B8O)V^6XwH|MQdVxt|oO&tfJk-#@SS#4sfbiZ>hXyo-%M+0)23WjH^Y#X> zkSb6kbI?myjWh9voG;kF(l7u+>X7KD;)2ynY3YFgjD5+t#j+Gg&>4)7aP!uZ4V{$| z%-`fMJO|opX=7lR7s=4>YuLfMm+saz0q>FQqn3?%f*>r5(5YyvW5rT2cGxbNplkHS&qn`Hc)4kE$vqh@`R{{@yhpaQu&{FG6{tm`fPE zWP>F`gc4c9Lf#9M5HzvSWw{(mCxk6UanM9`!?mB>1u5N#U_4eHR)09BMV`-A(%ocp zI~}achqOMgcNgUkyu9HCKJCPL+~07%tv+Wf>HLYVQzH4z0UAC{d1kB`(;kS0Zw;Bi z;WFNJ5aUe@ki>Fui2T|^MbErG8J4&0pn>$nopwiWpdMFPn|7zr&)2J zPO~i-Mi#HeL_Ue`6k*8E3z>{rxn5dX{Xmex<0Q4pP0y~@o@jXEj~cxn3&tD?=l8~c zRq)w`*z+^BOA|>_`{0vx3YY}nJdF0&RE=M+ayp5H`YaCCpw~o6-R|;ucun-gUH}M& zpY7A}8roelB?(}^=D9~wO0cI5Xav2y6)_13=~GXk%>tP<$S9w!WA8ttY&D%W%C?O} zp}o5C`*pU@xM<8|Z$%6lNJ{UJG@7DR4xK`)${};S2@MX`gKjvecoLbKx|Lnq_Kxa; z9@_Ca$RPE}AM>fDVnsa9VE>+hNe&zo9Sn{;w$Sko8g%f5z7wOLb+xZ zJ8M}{?!HTS>1rq&kBx3V(-Ox6D00W6oiz7R{^QMo6pG=u*c3do5m&YmZ$a>6`+!u@ zUR7sD*o>|jn4_&DkMvQm6Si2~fabe8 z4lHjhFvO0jjUc|FMA*Y*6hkko%)M1?Jmrn@gwV`Y83kBssFu&b3$X7xxxraf&V`{; zIRMSFH+U^92v)`gfe`{}t$=)y$SJIjIF-U~_~!|CkvzSO{fW&7T*IkfDE^mrc#7=&$uCY#b1;U+1xF}o>{2VpST-#_!CYxI#bQ06X=;s#~l=6*% zVXYBtNdUcmafb2V0KdY|alDE;e5H;ByGK|Vcche}cM~e+zvp#%b5Wqr*MT>}&8Beg z->Z5Y2_%Rp$5WVw2P^D4yUDP$_!;%9p2*t>7dAp6V5Uk@7qoWMrQPYqZ-tU9TUGSd zKvjgcojIM?(X83XR-kw{X4N(>Gb>W6d^oZ?c-xfEio3g>*+}Zwm=kV`{iqzh(^pK# zk2cl}xv)1H?)suphV>S?e(baFM6?9A1Os^oG*PT0h=Gtj11EMjTm zY}g6maIGUPRL_~5Fx0L}a=4Yr7B(0TOI@gd-X0wpkCO?TXST_$l0Z~}`S_nlfi$RpdlslUkE#Uou zKlak_3??1A^xixG!p5j@nqE2s^vxEILDGme7$zp*p606V!VH_9Ep}bSHMj!WXQ;bJ ztFp+B7M5}sXDucXn%iXe(S=WlhSXPkaNK~U8;-h`a()vzwoML=lO5vB>&!#nJ%1AE z1A@8NF<4k=EdL~OFrY}5@Kv~6!{1;R5If}~CV_4`v)_&@REi7y9mL!xIeNB&(EP}# z(J)+3SxluYXa7Bsb;i7V=T&Y;KJqLQp&h~BAJ*p6O{Q{F9s7Gkz4EGsa;(9;62xZR zMzFllw-Ezg4APz75khoi4y z^%qN+JeUn>cNL}bN{rNwFWls>6;nH4VxG_A{{dw{n!lik$!k7e0VCNHrxD3)h_J$; z&`?I!ejOHyBOh5pS+uQZ#}4wkqICw5B7M3^rLWxnurbu&SgC^!8N1i-gn9`KdL3nL zQtr$b`w&zut*V0(XQ99-0m`j{_+(Yl=8rarZp}CXp;CQwm`LXyT?E+2E%bch9=Y9EWKzaHX2e@Tvr*h#T zHRNAVMutw|efQ3nJl}-xed&>ux#mq4@OTDgJx&)-R&4wk=J!R^9HB}8tyV-ZtWcd{ zG}o&x+ynLm#{Ad@n@;|pwQ8I}oEKYBt42#4v~1A|cA?yenjor$aCJ8a_e%nNZFljd zATXZoFYj!u7a(V(54S}&ReI!(CwScudA#io2iDXe>b1!C$(H{ylg9OCd&tN7DjH>z zF|he3Hq$rE^zq;c+2S9m-#B*+&)md9-R1_Zjt1a}0|*A(+Vs}bcBR8WIxv7xEtYqY zCDW@;0*?l8z!*0bQ>j{QVx^D>zglh9TcWiKm;s4w=lyzEeY_=S5{G}joL!diH3wK^T z*ybOkz1`SlA1Df6&6!VMJ=%XBA(FLt?!I^4a~?pp>}{Eg5AGy~&%44q$BN`RgNx5` zvHUy);GM1Q7EC%3uOAfI-ZXwXHaXwJbxUgMn9@b9!B~TKL2;Rp=lo~-0rdKQl#HHY z>L&^TRA57@OtB%l8!CHu{)NZ9LYNn?vYXbDvunw_o=3~)2wn*xZn&r zb2NwZ1zpYNu!7y)M>n<^G>Q%5l zLq+_?G68?E%pr{4Md-nFynKuwGtd`2&3WLHJpKFcZ%_X_bMllqAraDT?{@6JhC|ul z4<_Y|Uliw8ve}pw)uN}mF!P79yF=<-BMO4{kjFcvMWoZ4&Jb?Y_!YS})Lz@BTy$Y~ zF?6QjyuC7J^JN$7vCA4NE{7C__f&ADueup2kmqms5Vx;QbJz#?EOG(&AL8*B&90xeY^?Y_dEzkjS+uiBK?T4LzSxgH9dw$XcK)b+8G! z9Yh&7#|wd8&U8`Yh81vB@hD*3`y2AMI9szMvLgn$+4_~Ex6I6v1}-0+m1-bqer4{C zS~J{{Y@3XFW}h0ep5xa_lf|MU)SMo&qZ%bts?k;}Bstt{;5xmdwsj z8avwW8Q&f+7DI=Dypn@=s7@ymxfgU@&EmXR|JudcTtca5)@tYtB7Oyx5b^7?@&QC% zDw4~2O9vr?6n4@C=+@fwur-&b)uG=p`NcRGi|}NJ!&8f|I>K@_YBnKzLh@C$6HK6u z>c9}}LgT$w5m~ubvRu%vvF#VA=y8G+W8rX?|16*?RYzYn#(e>l7GJq}Qa%iy+m%R! zLz-+V9=*V6ctf>;%Ffw?_;g!$lG@ zxxUC->)Nn7T#E}9jd*U}>%#3OvK9c!CYL;c*SY;13v6UM_T|OS7l<0W7&IyxsZk?O zkJ|j)fhWC@$f2cCox?2w`CPdDcSFz}2gMgR;6VY+G_|A~fmn|5Hw=4wwxDFHin3-H zWskECd%d!%bMxL~gg6Yol)glvnimlzesgevUUTR*C!~bFR%Qt+Z7>()Zap z1HGIS`UTLX$k*vf`7nI$P`4eaL5=0S0bm~2rA=~5Xu?RI>h88*ku{rX&d_zW;mZt* zj$yJ3jO3Nv#r45VH|IpZ-j_k&(i?lX<<>h5&aNpdM*LiA`Gub8@r>s>IIc?E{gAEp z1R){+>AHx8mO(@lR_Ap}C2R1ECwk7#*11ru?~7Y#Zry#ex}{-ek#8 z(2Vn-7B}ajUI?%8?gD?5*|W{(Lfv~LoHqNUq zP= z=0^8asojhE`E=Mo>bf&OS~DFXq~?4I`G>5{+h~ z`PwA{<&NxM$ZwG|=uqYStJmIiZ1~?`W)2q1c8Ad}sj1+DTDl2&o_}Fz-9pcuA|!C8 zbaJvhu1fjpmVbtjPUYiuT9`6#1|vIL&r9@r*c_P?fg1~@g~a)#u-`8nTOz2o9!ral z^B1!!Am>K*2q3M$dALkvTr_uWshWjHLCqU%+8vKkH)KF+LeTZ}CM{{I-Z!vt&X_C1 z>|sGCSkwr=RK@LXDUcewQm3u#H~a#LR`e8+n$?ZNlRLVz_}rqsN??EF@xP8)dN6Cx zn)!or(z1Uk>T%zJpVaXxC$Y%qlGk?>Rn1bRnB@K$fqMnhk9Mo`8hw;Xlt6#1p&qLd zixO{#r&zw^nv&|j7i zlE6E70@8_5I2i;g8xxx5s0Gte37b`hVzo^;bEXHl)o;-_SETr$mU*628FdRz|6Wru zZ({`>M{K`ZE%pjVvK3zL(s=FMHDld@I^=-n8uzj3vPxGazZF(SeTQL2yFFf0OQE;- z`pZ6MTBTaU+8Ja^u8dak0YQ-dZn7S_{$yOi7K7EGV>(jkSv^MjTy(~De(i%jCo6~| zaY|(dXnd13GKcg7F3^OdHR5cE_>aU#+{5HZzYoPnq)>`2;VtA#rSaMycJ!fXY?@N3 z(e(y9K^gxC;v+t8C=v`Ud|pcYWuYw@Jzcr+&-}t#+9IRbDvc+t8rj1`YCC3Ei~sBU+J$C3WsCe0=>m z3FcsaEpIjP+0mN3>68ttWJTEh`+b@H%`@2I~CIO$Pt_r{=w~P)PB!6CW{) zZPac}5u?S|yK}Av!wt?y;MKQ0n=6{!kCK1Jo4-b^xPXiabh&v&xNs?H)DC@a3v0G8 z)%YdU(RQOn*tdV&gncu!P6y0Kx20!kLGQ$!r=zFaQj!dmJMtVVw~$)Tf^?a-OXO-h zYAoyhrcG${2r6#=Nnz)#4)yx}djWFB_o_Bj-s&2q4&SCdskWVSJzMyPG8>_DXKz_gx+*C!saD=Z*N*Usp0%^1)jBe4ta{r>=ciMSQJnqGtvf5E`>~X!WX9xh z9~>?2U*F6}`dhE{u$j{J>FwK zE@&T9+S8G9SCz-no_kZ20mpof7%0b~QtMp(&f4xPqvu%qzo& ztt!z7Sd~fyC{gOv_CR;MZES0ywJr5P0Gm~}`Xp>AdvU7j+N5Gk9MK5|qaj(X>nO;T z@Xv+J`kZ{FfByP+C2wJ4!FHlY2^ya&&;A8Y%8{EVMM|}=;9BTc2P>o63tRrc=?o#Y zLr;b?w7B;-`HIA%{45yw4gc>M#0l&4rkD>H7uF%mP$j1{LFkpi8;0UrFhOo7rHVul z3kY)?N}oX2%48~|HFpfnx)HEa4HN`TusvEB06%O|GuILnmSxtShx*me&A+rZ#EFcD zk|c$?3+J4xo|Jlw%Gz^#!|TV$1xU)T%WaVg+<^?SZN=3#O&5~fU^ilny2!HRmMgA< zd3LPo`VO~!oMMnwuqrp!7Z?fBm%F7SZs zh8LF8*r&7kJ=;vLN<3#NNii~$J37PeCKYd0?HrT<|E|4jr@#KhJXYxM3c?jFaxw1= zF=pNQI(5)wDG2A$v$h$zNvRt_*@tbrGh>@odFfTUV{qy2NEoT^l>t9>d<0sGb#gl# z)}1QMp-gq^3A#RycDSVX4Y|fOgqc-^gywd;uoSQJeVe%==SM8qjxU9xebUJvB@m{s zN1S13{%QAtKAWE={+K2%CO*(2y0*xM(55tFSXon1hrp5xO^k?Jcoqu+0iCj`g0Nj8*9s977)6?;WF zg{{W%2PD?K(9_CiHS~$B^%m;ifE|eN?Q!Zu&%3?v^(nI-FGVOqr~Q^%3L6^L3eosj zD^3o{F(prV<`sI~0C0woB7VFs!$n#rjccj^EjXY*XlS+hc*f2ZsOA~55{yp+R1b$@ zDNy?zrMa?q3xB%DV|{bTNo}))g7%~p4iSWu86Ndl0W@m2w9cMDsp6s4-wSL0(C%^z z=MZmk{iImA($QRA7z{}1b>1BiJPBa*THH>d+8Un|IumJQb*>o#O4opj3XJ#DW=+{t zdP@~55hgjSh>)jiShqg!1tZRoz+C`?(&t?M|CAQ}Tb33*P05rTe*3tDp`Gu3|*HV87vqrRADp)&}bpHbaY{V@Nwqek|1> zZ#eGG5E6V(*JY%Ln@%1eq=p8KZpT?pn{<6QWkIkZ$a7{{+rp>^>|lt)yw#ZZNnmQT zN^9pcyw)1W%OsrD7gDRcAZyH4>#ev7Rl}*7(jI?KlF2IXp4WGKr+!J6@AhtjNa_mr zRZT7!@N(ncd0gH9Rgv}rBB=;+zDcY5=N4o)Gmw@{WM6OToqELLoyl6;Ni2qWTQRbx zbq?CtGT}|?6`3-ul8NE0mZ;lhmu z(1T&i^(M;-*)?orft5Cb(J`wHz9Oy{orXy*FnNNM_Jj&F(OIKgS;5_1CqRApgDT;r z*#erA1D+S3c29bCzqMeF01~<%FN-Y}Tx`;P)0LVNDu7oFpYSx>>sl7Ff}M3q7HhiM z#zyvhivj@ID`^7NkOh#%-43Dot~d3&)AbgW`^^Y;=Cy%43CJq?(MDuxoQdY265`=} zZsLne;$bKQ_#1sSlko^4q5R>hd>k)#fDyXbjW?Y|zqzFtr^6%GK-b2d?${1vAWL&F zoEdGbGK%1d7woo!X``fI19IKy4uUO3^Gi>ikAtYT+YRQuzDO8TSX_TDz)143o2b-( z-;Etg-aIs(N#8^6gk)UdYB zwv@Ru*{bY_^aDaE0q(MjKa#Qvu|zx&E|UdcJa9;64(TnY{)OZX5W4xhM{?imu|XFQ zM;;t*(w4C~BZ4+tax<;DaHs|?yeGk3eoEsrVYa9LS`Pd>aaivz(5Uk2wal@j-A;(IMk5F$=3&-pnz8rtvV}qY!g$V~`Fmv%5uh zu5^*R$?Eaxo~OxGOr5e9TGvG{?hNR}y0OI>#*=;oNvkx@h^LeGG@Cxj=9G>Wg#4OP zQj%3HCsj;z=}B5#;){MYsPGG%blTiJNi!jHg%?8Q01+T`w-_)(4#oiz9c)Llme!#R zt^K+7kbI~dIf!J-5`{`46e$_%*uJ(a3n~|rCJFmbOHW9rrWki--XYW3vY#Z8CrZ03`KF$1mY?$EH<;ss<~N$p6fN}R zZGB^Iow`_)%~lg#OXSR`zE;^HzmO4VhWIRk?hVc13dlvgNNZ`IOM0Z-zC*@j_{-`>iUelJYd0h+ zHG#y5XpV(mf6)b-jZoHCf~~b$Rd72Ehv9lrsewYHG7St11}T_rpc7zTAJ1HMAi&k9n{-gQ;|iR&74U)VtDT)-ja5eIY)8bJe^lh6 z(5(B`?)h;&z%QHQN80Ls9X6j|``vTv2I|4DeYw9|j`s4=SuGDdYr*WMkgD2UyQV|E zm1r9Ms3Vf39Kjn`UDR2MsN$ zvm5-pXn4<`gMQN2e5w2QGwEr^@ej)_EsaD>yetrVGx?@5H>VSGtoHd*3TVOk10m|#>z(^tgN&YBy77gcq?(Qfpdk9Mob*@U7{ zTf^^a{vnej+b~t6y+y1`Caoy0vYfzs1&#j(D(XM26@NzOdAqgZKRVB!sq_33Zu(ES z>DPDv2{--w@%Eo^(|^KEGyc7%0?3>tL}kPNZtnjYO!R6X#2G?7an9FiI8pAT9=&E$ zsu2lb)0?Sq#a)IIs<-y4_Rc440R?*0N>*U4)A3|V2ZB|v#uIjjLUF~dZ`!a4)Y-KW z5)-t9v_WaQt6E5%`k*3^6ggEcb!+Yfs(dZ&b?{AQ`l}qy^QE-KTltC$_vP?FGt<(Q zrt|BL2zQ73njsz2)gM=jdNrKs1R&x4@iMIxl`EVHD$l#ChBvM)W}s~Wwxo{+)tyF8 zpxN$YWgkq<(k?wFkbBWcNu3Vum<)HQO@w@H>Qz{WxgIl*$0mjO-cEi788hU3T|Nw5 zOg6Sbp-)&fTVZ=EtUIgXDrHwE=n7rs(OF*GtFHSqJ}N~1dSv_s#9_uBZ|+uI&g>sE zY0zwUXb$|Avqq?TEQ$=tE;AT@EM%gH)*qibR%r6a4n}ul5{}&}uewDhHLM;g^H;4h z;f&zn!pq?wz3~sw8*?qgm^$IJxU$y^1|7#w7hrmo#+&3^ePgkOR7O1AtRbutQ=yAU z6Jot(X4uD8pJ5AJAbpJ+%1O8wo1|OOQ`D zMy&|u^lq>Bu|l`EX-+x&9o=ntVrqhC-=5-`=F%e(%c6FXy>of;5)N{`Ecu734 zOA?EeWA+iGJ?@Ea52|bxNuz32BJ5MuS)YDXI<(+fbK?+xP?q?f%OX>rx}Sn_|7GVG zi>g~IoP;MEp|6&=UeXdaS8~tmvGLzQrBwL(FeOB8B~jpv6+=K^2sRnkwYAV{ z!*#9IZnFW~-e_`vtJ7*fbXGJf@O^6zwFBK&fxcX!n@f}Qw)5fIV|R|enu1+5BwTQ9 zwmzpMzL#{DE9yI`3$8t%xUc%q55p&%N-v6(EL28ZzdLgqqj1~ZMSKg@>I^dsf<^Hr z376vMKeRj#;~&wqi!I09nu%(S#Q>pv3I;0MJ=)g|hOGwFqsqpG=FyqSMYguDp1;S% z!Cpl%Wx^T*&QI-#T zA)3*~Bz&gGY@DBBpIdUmL&@RhXprWxRB#C!&Tcf*)Z0AseC zE>mTxP~dX1@Bq^r+hTR+I`vYUp7f#?F@pW-WJqfSNlBy5L~@|D+gnN$OBjP@3m*Au z32m}it2UEdXJxhKz$C2pMlAtdb}g;qEhj(kpvsUr{tag|6wwVtU~&Usr91AJ;5> zH5BUvAjS4@nbs@K-zmCER{>FrbR28oZme#WSP?7{?p~-j5wp=~1AM(=NtL}fW@CA~ zuXmR5ag8+Gh_2vJH>?wA-^0gSoLJ8ns0T(ha?>x8(rr6QO+3zcWk0hx>$pMHvd@~- z)#7+kS&5v}De{TNiahV7_~h}^X1k5j_xR8fjg-d^R{PWK;0p!6FU}0Y6l@K7ue;?d zSmgUY$FuqG!dTX~-Lo3J@@=1_a6Id_QaOm#L#Z4|-+gh}xMT+e{v0lE9WkP0ND3E7 zk7Jpy2F=!jv3Eizc+TJ~K@!U+JK>ulF+VYz(+>6J)a2%86(G(2$UCyxD_{8*m%mXs z2di&779ATCy}@KbjWzcCfiZvJhWof7U^XHTO8)-DEPc>rD(m~Qx=sD`_r)@iRE~cJ zo^2eRn)$r!{{dn?=sc4Bg%1L{{&Vy8Lpj5L-r4oBBwfiV-$@8NzjU)|Du3ekbbXTl zwFl@&kw~47hQ@z)#NI>WZYP!h92$ucNwYME^Ye1!LC*IdxbQBx9lFN7B^f-jDx6>X z^QW%Dg&E;bSqQ+t@xPOba8~3FLgT&VmcD!cfX^Xus+^xBZ6$KnS+RKd2gjQ2hosE2 zIrQP5UaX+}2P2!YLA#WhM@ue|t3# z@jLeY^u0fC9^UQ~dBVCaIi{+5$&|ad=#Fn++`tbTNqvt?eK_t_70K-Wc;`1$D`yhN z&Zm7QuETHMm=3qA>dnZ#|J?SfCCxlz!63+oMUu=4|FvkmHMx^sp59e6&#b`B)4!Yv zDTB)Y4uG~a&n zDG@&B*J(MqjQqtydA`s0%W`NKsX$V`*rfgx(K+9gJOsWchuz5m^!7QY`KJ!me*_&~ zVeR#vmT$xUVKpMBb@`iZ{2;~R@31qaMOFgT`He4z%<5mchZNH8;SBHat6%rFkZ~u619OoR+D{h_v@5F@RlV1C151a5`zBfY4j!& zu5IKwI$xi+lY|ZTw~O@M^V~gbV-K|jE5_>ADFpQKsE%27I6*%jCdu~xFp4eyi$m)B zVf2UidBU%Y$noes&Gb0=h+B3F<@sG-GB@W_@`=_IaEBM)oVHFrS?3Y4|G?RL4z$WF z^L_#8OV;MsDN6V~O2(7zLWjSt59!OA$r*0)H`>Q;4OBS{<+qH@%(6KB%RN)F>T8^T zf3xcTR<`nt(6wLxhMt|-54<=3ek72me|++PB_YcAV=s{}1!dl_1^t-O{_nSa_+RY_ ze{GOau21~xtjag%{y8Ww*dG`U6k`#X&fgx1gSe1O zy8kWPRfO zx6(IrW=ovk&%@}e4}Q$>^NY`>?djk5%_jS4<~0A7VvuLW-cO4A1Lypg$l_!!KMiHM z1gG3>%y@bG>a%V$OzL4m@k=}PM$b+Zpw{OtsmbuRf^@#aDqECH^n8}v`_Xmoy2g7&1bN#Q4 z8qN3lCqrqTDN^|p<*F~%h`+6TcpKW9FMi-pTo1Paw||6+n)g`0O%TghdH7B+PmVv% z2sD06`TKS}|B1QLZ*eF~VtJcnXBPYsF_t;)!`I2-t)zI6Q~oOM88hdb zy7EVyU$3lzo3xaCC&AxHQOZo~d5iOBC&ORM@m$|_nc{z~Sor-)6QYwogcQQO|s_sjyV`OWIms8r<%G4E9T&7>D{8b91E zMxAEQYz+8mNO&M4LtSlXJ1wTx*P3f>*&ukC@t!oo>iyZY4L&UEmPxmy3%d|A zI@XGh#o2zQM(7tfG3~xQDOMd62{3OqwIzEcFDEUry0m-EF-&%JZRE8z)@uptO>+U8 z_R+Tt>2VXL(>s!`Bd=tHy7Y!H=tf!}mhae%0!R}kKCM)%aTj|YE(r7j4Hapn1!8Y%8s`Pv)pbU%C`;FF;`l=1E9Wv>aUU3kgmgemd*lo30 zu;c8s%8K4e=1A`8dVTx7F5Sx&O><^k=F7BvnqiqUv+{X9Q|?U4>;ov}qr-VpMpn)3 zUhsNh@hcdonRB=+Bl(MrTc!thS8#t&>()jT(`GzyJe2j;jzd3I963*s_mteRgl=)> zE2Pe`?PBke`m*m{?#ftxQVZ0gV>AYPtTJh@mjiDc5MYDZ;fVBT<1Iw$D<|mPW*}Gg z{X4ykZYS>prX{gbX~7Wj!r{9M-1bDtOADcM;*ok!x*t2C>6{9`-pi!BQ%)>9U?YCn zv^P>Y@Hov#WOrYR(d4e1b=_-`{aW5ESN-9X^4nzl$}pbY+QDD1 zL3|D5G@FmNbn}S)=WwGlpnerw!#!Ujae2bxq{F z$6Q^9eh_Qryd7SSj(aoxZu^6rQ-CwdrY(j>24fbtCW7DHJCrU% zP|F!K!!5YlulHtvHc)o8T@Qp7UcraMjVG%+q1WVHaO?PrGjMm#F4#3SqJ@${tA;Sx zVm#xUu-%Foj`N?J2uIW$Pm;CWq89YBsYYm=74gKIwTM6A$wDAUQ_0l^xrNlJ;FsSa}HYNl%V!Su!WD zx2kq7co?57xwVe>60(%#6GJ}rjrS${QX44i6x&{aC& z%qXsphQ{MQUGMbDO9oHSjDHmAk7q1a{;~lFm9AIXbU9JS%R*3(904aW1ZCyI6t4S z=25w@ysPsJF=pcV`mPc1Jo@+b%4~K$s|s(_CeW{y1Uy_se%qwC?$&;((PtKQ3@yy- z+J2D9oR=~Qw1g_j&vH6qF^W*ivcV$mn4g#|S?Tv}eA1sc?MizJ{`9o`3+lwhbN=%B z+b;X74fahxeSuRc0eCu@;>+SKJd=%UybITzj@YjP1FSuVtzoDb_>$YJrq`y{rZ$s@ zU2h&>RS$<)g6nlBI7B<3;&i8_Cgu*@od8^f4-Z??TL|Nf^eRo zMi0-mt5-cPD*KoA)lZ9i=k0iX^(Sd<=_|`f(uej56eo)H7TbB;TkZV*b<6XE?Ef%b zF_}e|m!C#Z2a*@-P#0{U1ZG|JN_@IB4NVSg`IK7zBtRjxaK{41L&@gyc9?eE6YVf3 zYZDxUsH}QP>+yVl;z^E?l<+B(d2|T;EGzMJ2qZtA7+j$FvX&SL&)tWgl6g~2S}gkc zs2rU_(^Ko`o5iAjsEAh1z3>kFcx$}#o4Yoh3rgQkL%f3S2CXXDva07l(^WwdL` zn>zEY9o2c1KexV@?U$4OzBvo4Jj^}KCvKks##}jHm(ziZ@u5Amc2d}tKyYDiq&ewN zL4{b>tIhtmmU-t|FdDaIhV;b(3lI?w|5O;XBZjc;c_F-(Y?TOU8}MM zRa%iXzh~|mHRh)o@pq36PVHz%1M^?DOI`zw*?)ce%6=GP%c|RIvD#`1Fth*@9TYc| zj^F*>73@4p;XtdrNv3!ad%zv~q|jo*q(9ThgMt*{FlLGExOp>@A<&+pm{KpT=S>!5 zz8SPKDDvKdxYE0Gl;J)pqRFdIGC4&l9b4O9WRQnq#rL?W9J2ZKX_UNv|FlV8PyMEj zu9QP3-}px&CO(Q-3bnoH*U2}U>(9)j+joM^jZ6MX#iQGz9M475J28}xRM^{HB*#7$ zK~?L__UF=JIqfrkZCZR|&-*fBo&=}&_q=PM=cRqPO&z=iS9k})hvWh%H3YG=8pv&4 z->)VBskZGrHlmNO@VwmkAK7Ss&~H{MAT-{LXIU`pYpwCEjBs&wCbt;oG4nNT)_({{rt+2fA%o zdp80mwd9{S!+gg6w>#h7ppd8L$o&FHxkcYI$VBix-;~p_i(1SGomgXv)<-5KtLA!3 ztub9xl*kVZs&9?wmGw&M_h?7LxKJuhJX&Z~X3K53R_8Sz6_*HPQZ0YiAU%4F*=?*Q zPZvIy%VPHO(#|T(^|APg!}!Og9A6dbEsNT_{#a~C5soigpF}BsGxO$N zZ0FH`m>2#vGYZW;gD2o&X{(OS7RQ%nKm}Ub5I2y3hfS~xaU-$srIx1>O~DiJdKwmPmz z@exrx=F?S1B$P(jeoz$8i0%5B*r~68lC|;WQT~W3s5~XYs%FhQ<`DO45@gToH5h7% zcF@~?YK5elTRF*#-QG3C-Xp4?#%60lS+ivOAx)Eto3GRK22M)Snv#bt!s| zDf2nR%inwguTH(^X)<@~VrI|CyKQ}*we!hO(*uB%riaTkLLgT@6;xjCx4u#uawC@| zYLl^9*CzEEK@dyvQM~INRKLeXJnIdVA4@GoP%EdS}C zb8=3htOao}w_VxT2$5JHa|i~uHXEo)t^j2m(p?Siv%r?EETC0$FD_*ou35U)U-?bM zbkIQuq0z{$F}rFV2-q{cPNYwb887;=klMF7b3 zLu3x+|K-yz6Wo!3-+z&s1#+H*u0;7hhV@lgu<)>ojsQ*37J*>)KNfX-t$$=x`1o1< zBXL~3>j(d?f25-p3>TGb)!9$5kPo-jXl%lrLFkMt-C^t7ws=K~zk~jfOu{4pPV>Kq zCfu%o?>?j=E8qy@IPH&j<#g11b6u>O%Tcp~xr1ou_8dn-8~WUGC!F&wJ~hW)&1)9t zMdi%K*`Lz5ZowQdzj{za+Y;rbIr1j;>Qb^OL1CLJFm<}3G4DLeo+z}?k6)H%(k9p! zOhvh#rjKQtH}=s3gd-)>>r}SMwOb}9UtbXGy{)s*r)Fif+3-4UZwKsTGut$}q|zN$ z0BI{PsJ&&5nzE0s#wKSCq;6xn9?#Y~hm4wbA6s-vwI;$&T$y&K99wxo4otpYGXl-J z7Zp-iVt7EZYd|N`T|X-#FwN?-2n1``cGr^E2v3r|El(?b48T8@7I*t`#b=?&1zeG1 z{cDO`f$8`K)PcBP9;U}Rnvc2!gqssm8}!;sLJ6g5bvfJMWOdtu{yEP7InMJQ=YNez z`)%64AiySDGPfa@9ynFtO;+}a6zi2fx!#iISyeP z;TT#&@D*D)mf%w1=w~WD9mhZ5o$|jxg(nG{haIAcHoCj5K!+imJ-Db$qEG^kW9YYd8lwUOy=!`*UNW>WD65ND>t+Sl)p5kUavze(=hAI{UtV zre5F~!V%{~PECPoft?|w)wwa+8?w!%po}`OSCz-T1-1HEsM0^O`2Y2?xML*2`n&>s0!;HUvlAaE^bkIZ$Q!7J9S?F^u5Rhu4!7RD$G(IXibaU02Sq(RAQWbpH zbk>ck(`jl=Oj(t9wlt60K;$m8=D1>tJzrV&xuH}IIU8d)wZSJP@^9ItZ!Vjw5#KCB zpPOMBHf||SSN+HO!r@dyl2G{(sZc^I7Z*QaaVzc384jaj4zvk#9#FXL#PRGXv zAWpkHjiA7y(PVgqL^YBlDA3C02A(_OI%XL>DXCW5k$&*wdP=1+o+(!?~X zWASUUxl(I@WU6CQXw9c$IFQJAgNZ@>>FHV|@AF3SF zu=|}EHtP-*VKUuO#qpGO&x@SDj%7T0ievnS+y7OOh%7!On#IP1La-Qnr3vwa7nP+-PolO zxr6YiFsyj4q@sw^Vyc4)2KUIV-6h7hw5+eu0O)q=L8F7N1%KA12Ez`t?klJb`CX0I zk(D)LKUbPDEvI`p;cCBkSq6MT_b z?`lv6)lX9(Px@jlzgguDaS~t&S<*7j>43!u;<;jfVbYCK$502rst21qyF;rRaFM5y zTP}i}W_%ukyj@Ht1(uYyOMaHY;zeZGmAOU)kfAr|dQ)FFd_vkT7re5|RlMRY6VvVL z%F$BzIvMfTzrklkpl)lG{QK>ajs=_YWqG#F@8#p}1>&(v&Ee**YwJAxcRmj!%~_Ae z{pM(;xTT4yw7sFw3-D<5P4GF7@}@x~ZQJJur$YRir5poHsS@|Ge7EEqk4+8!4dyj=B!Bd@A=5kMeop|7L`+*S6)5|w zA}trCO@37uJ<%KuBV|6c8svKDe=8IAa@OWejprl@FbO-zNxNs05qy($m+6;GI50oq zdh`Uwb$T`Ivb+SjAvR>mn*Azxn4n4 zqSe&#S)|Y?II_D#cBIZx3HCM&=xtdS465xBIoK{IQm+d_Yz-W&_l>D3!6Uc0u5NHK zr@ZicE5=W?!#e?p>2$ix-vkdTk9orx`AwXrEm}}bV$QqlptM0F<70csu_H%0MJNo8 zINvV~F8Nq_D{=a{@CckYx5D7|Q7-fJ>nrgBA|?3grpOwsIfjf56=g7~se}2(Hd>v! zgo`_F@Uf0W+3k72uO7xbR6LX({2}_qgC~@We-xn^)Akq-BdQb9MpyU*u6o93Y0%@4 z{Fp=hI%BMWN5qIp{d3fc2T!P#6d@}>Eq*txm}{vtaFB&MoONanY3StG#Pvr;=|a?! zjnG%i+Ze2LTUj_~&!tP@-AC5F?*(~tQ|>T+LcGIOIUOw@{n~ZiY2l23*-L)2BdqPr zwxf+GFw)1;%k%UMljCzQbjl|S(ES}Veo?w4sb|)5N~-lLX&*4(;kMV6T{B+(9y@RV zp54^%(0A#yS>GMhlLXb)PSL1XcC(oycYmEiBJf;u$&Qyts)giepPIund1pr5KuIRn z&4VH?N@K1!g*LPddM>!tmV9G4ml?sFip(Pm^4o%YCdChR4iYquY`)X4>)aFW?ksdP zOV^~NY`CfU(&Kjzsy1(%SFhc2y09tH$x=7YzrER3va{;b_i}D8&O!G`ew5Sk3Kn=C zk2ub6kS=Ap^Y&y}sYSLwW474n+Xiz*fwyc0NzuzddhW}9$E9)wBV8ZoyCUwDF2waZ z2JRcwF0kr|v#o`Ar1aVS@?%*(PWkX{Pv&#-;nFTf@_zT3JERu5Ckc)5a>Rc_uhTgJ zkdipLC?7}5s~WM=dMlBTL)we5R41!&#h7m$bkzzbTg7r#J09tfGmXS2!FseW^?3j@ zz#3xg(7_0l?bf_MwgsqW&Lh0B@0Hkk7uIGEW2_#K>31&WIkAdV-=fy$fx z0;@@BO*;dAOs;4B#$<(H17hJ6j@&;$=z^}p5Zj7(1_G&H$8Ih zQX98rE!RZ!D#A%S)+ZRhA>3bJTu@H#%4mKeA0#?c0mER{MH-uSPdA!O#icsX7%7ai z$q9BEDJW&Nqx#h8dIKfK`{q9X37a~-2?klUB)7dcJR0xrmfe!vnF{8yweF$(QAn%DP*jb^gVM!bT#f@WT;;xT1$Wt@m zpYdDVKuPI#bziKHqqEb(g$imj%Ef04-euaVUr~0xyd%OL%#NLa9dQdA)mE#{u2J7l zhl3skH$rnz5qWvGbOE)|X*R|H2boRM9PBFfmif70f$NxlEUzY>)TR|UL4B4*_B~=h zKLd^sQsN)4(;&N?+tW63Yea1|S*-kKQ=jA0i1QbM*(LeHhi(FYqxstN`eLsy(<6i< zw&`^d>kZzI?CP{hRZMah@KB>Vse+Pd_Dkr;++oK^pc5eqn7gieApO)XcL0!5?{HZ} zd)RII?S7YB!qvfECgf1Vqe!MjXij`gd&q5;F*PC9g-ee-3=+y~)6hfWdkXY4L3b8Vl zNM)ont-dRiz+S+Q`#Wp4MW>6+dW6GUE9})eBY|ot3%yuV zH^594%GBO+UUMH!`7x!R3(JqkPFAE;C=`DYK$D=o=+dkDu%c@-wmDeY{gS>wK2}n~ z)Z$fEmhZNzx<@Hbk>Dr9f?qC&co;sVS8`EK$I2^XC?d;3&F#7(IjHU!TfvlLs?2Sf zY6h4gJG$;6Y83;C1z&H}1VnA|l?pZJ!JMIiQ?X)8{O12}@6DRj<(hrL`|~Mwytjs1 z5k$G@j&KA)0TofWI30|F%%foJvp;(a&gBG_)#vRv&p+aM3MgtNnQO|G!!MWh0Z;+w zer4geRx07nKG4ms7q8a|wjbLuE;KS(oo}j#MvDq;veb>WiP*>l+*U+4;6O}ik1Jb5 z86qIqPG)9%)S;TO-q&~A`EI8V2kBzxG!ox8oh}S@`XZyYqfR@Xd0rUy8OoBR@1=|h zzF(Df^%_L^!Sa5Hv(C;iM}+M9lOl@$60gx%Jq5``h0dB2;_6? zaG9?}g(ucVZ9`GA+v<@%VhNoZyDDe2NC;-;X*&`b$F^*2y;E?nPt-IT+t_ikW81cE z+qRQmY}>YNC;!;CZCl@dPt~dOy;Wzfo}0N^PxY+n)zcj!Y_vN(7JI!?wp~9jn@U5Z zY+$Q=&SfKB4JC_q^6`X{&B7>^OQU~+#*4f}%JlA<{8h$TZ4T2>9=qz9?X%y#j5fM< zE+Eb8)orjsxL_OfL=~8ppC^#SF>>%uWQJ>gZHLz^Pg|POd^>xwHU&*hxt!#!LLJzQ zenz*9#Fn~Udt~`M{EG7PAX-#OQfrV0rnc2*b{=7;Zh9QEg2;J z0}qvL2W5ZOLj#+dCw2cQQa3udh-cEhUV4TV5k=w7;BYCu5{; z&NvrKkB;CQs(!ppJt-KNWttH8KcJCrn+%i4$?x7wwu8>j4LI3J#{9^g*eUF87E!mF zzlCg;g2~bg%3gtVm}LYvRR2ik~sHqi}m7-Ol{ujUiTl{sS2MM-MaWpk~!;}b^d6c8jTPbxx8mGZ*dqv z>|e=0`FSH^!%I5SnyB19!)95|oK4bn<~w!BG4m0_r_-?8WZdL6TChxn>M`U1T{Oqx zH7F6u1X+{9x0W1|M)6?>_#$}Hl*8rAtM1gK#trVnL|w=bp{~52SW0Xef8vq0>Hbkk z0;c>pH{jE2A{G^Z)@P$m=)Z=X$Yy1OAzcy3H?zl7UkEC#S24Ah&0HHJFTa<`UZdhA zvb6da%PuBts=Bjh$=yq8GF(VogNc-Gn}EOC&l0!!q{oz5eer!9RA8;&XS%sGajk z@=roHN6fr>of!d4&;Y@?kG!=w6|f}Ats$eq~K2#?vaFl04u}XL?8tftPFvY;To4pTk-smYv zjJW^kl`(R)N3VtUzd}Bt5IBTl{;$DnYG!k*za_8*H`%JI1xa#QboLsz* zT0v^U5ysPr64=b_*d9ws;bN)RoH*!B?Mm`n0QGqe`fBPT*% z+U2*J?0tTP1T3HzP@^o+x1$}WGGoNEqh3(>X&oDwZqR-(AeOeqvY8rII)!$QXqieb?SC#t9&IS! zUL4tHIuQRhWiaqh)aGAqckhVqwNStb=jbE^Gl5$TtS&tVF=`Lzm@=Dd2&^`*~+1)uflpfaPR^V|E4^)O&nVDMB zow8zK)m-0La387DNIt+?pKc(4OsUH%T8$_ciU%*kMyPqGY<#35^iF9jc&f!H&?0oGKK%p26AKr@pGz znqN(aX9onp-otm4_U0Zdmhh1#i{JJfD+-&hf6{H_HFZw9d@N+G85AVDd&TT}%}jhl z3sq!B1QD3-AmWPevpjtZ<0T(ma=3wDX0;fgWYD(u5B!sY@&9YcX}^8LVM)+3ghRCn zYZzsbPw4D`{?m$fnHlI(hOmhP_KbyynF?bFA>_)Nr0xjd3{)5(>%}O~Cy6A%t)Z8N$f zW=WbFKs-2LHZUj3sNv`w5IXf>!I#1YS9kDn-xr&LYTiG=TtD#`iU#7;t=A4@5_3?) z{pfWL&FY+CygQP^{amIE6!sjcy^it>u>2xG{K^o5dU5KeL3`zEcdaNadAc*Kfju*9 zxw<0VCheqqw21KTuPoKHiKWgi|2sAQi8xgqpV@Gd9BFC-9U;X(0E>A_&GRsLfQduA zHfuI0sIX%MPDF?V2zhZNe`h6zI#2ANn>GQzW{qlS2T3`+>?mdC2=?3(?;wPSo-ylJ zOnN0D`L4k5cO3h}hoC=K{O~r!8j%x%s!ERwC9t82BeBD}}@6*0>839NDg#1p`FL{%W{~Dh1tqdD-DM z6Q*2yd^CC;5S8s|i&~K6Rk6@)T>6IlS_pD@uZ#nIWq~HCVIzdw_mLZ?7&ZroVBS%^ zha6*_ZQ!%6v9m4+W^Yz|{@KdTc#c=eSm0HPOigf=1jW9cYvz0GtV(RFJvJ~eifNeW zrqMLgb~&CZx0-`QO!RVWV;DmQI8*n9Yh+>5EJzp1mPDiN>)qP5F1*x zR!>?hV}x2^Y_h756vF-PPfk-3RJhg-MFG*mz-vq^Ff}b7*5$}Afd;k`C^)U%8g{71 z+eDCTI)qTIevt59vPU$XL$;LV3T#Fv5SQ3B^LmQeC@P5IVX1p8CF+zL@@oh$Awer!*wOUC!(DOQaT4+mc#*Kpn!g z{*j{2XK|WQ{cp)S=1sl&7CKvFNB;!dQBbX{i3Lu5YEJVB%RPGLBZ_Y|Z|zy{y9pTp za^bN(duN|MEt$Q>TfOI*CHl(kVy7r${MYCw{Hk)yXXWA<@~|eNjT>|UsLU;D0Uo3= zOotq#LcvnSA=bor=o+r{kB0Hc5fH(PHFTW4n`I+J#7*Kx&(nW=7^{k!pH;5E68j|8 zSDjOp_E@#d*>Bs|U~381akgbW0I7~OnXgR9lLy^4RytTKJ^tUfmcM>2SvqH1;g9i? ziEVleGc7$yY!^&e(oq6+i@>6V#b_?0JB=Z!& zuYc%j5L8H$o>!A5urWQUN6t4B8yr6fLDlLXHVfE0_z(! z!#rEO+oZE#`0#1(@friPgqcYQ+@PBz9JOnX0`}#Cx-z1H`y#@&p-mhx zEPcZA$gRsug|<2Joe%?5P2ffzm=r@AkW!fANNqgD;b%@?r;?p9d}0w|-X+=r2?8!pxjoj2Zf zMpguq!|H4*(xicB-(KuL6Zepnh9NJd5R?oa2K1)V=Vf@Lduch2 zDxDM0KR7$*pL6z@atJjUOJe;$*AJR$uYvS$A$+WYFrEr~rHE zL}(H0ZHY_!3aoiG;8bMS;vEf_&6t2}x0dHWqGK*R#^app2-L?(POsiQ#bAQ0(pUbSBnq_6%Oblsn$$9t{h`}vRz_?iSXnXLy_APDa{@$>cdtD&ZeBHel{bAtj= zx~nW9F+cw+zcD%T5wqe3Pj&YTCJjLRjoFU7^Bk;7!H z$*r1BC0`R3*n>qJa2PLdc>UMfi=G)cxA^q{=p6HkQ~J7Z?6l`Obo?!9$IpZZ=Px8b zn)*8cEe5)Pl7?h;uAZ*7P9$xK z?##fH)0GKsH^|4x)QjopJO zbCrWPi6DTMCiV|U?o`A#3}mwi{<)}Y?ji(UGQyc?B+`kA;c&Q2HMU$8tG0%oG`M<} zB9Wc4%jETc+h~~V;rV#cK7v1bNI|$ArHR=HKYMyEX)f+YQFyuHlC3M}9n{5#;XZwh-+G#Z zG%bu?+7UNA$pldyPnOq0t!t9kZ5`R-UZ1rbddJKqCUj--gIi7p#(F>b@tluObs8Wy)chy!CF~8I>OQ{6egpz#ylUvvN+2e%=luv8<Nd26;fts$kN(7mDHFG(yp{X*n)}5(~KOxc%PpW>|s6DWZg}b@l`N6UdM~R zqJ=y-(wv&>Xy{)}t)gDdcK|y%@2af!H3oxw-P~s5V^~d2h)xS7-8Rb=9)hy@^r=vN zHO;UXs2kunclI<;|H!Ys*wtZLsCAM4eNVq8jn|~}Qc1A@*^mc@bNg{EaP88O>KKF( zZOZ?&Q?D$QGC{@#0#BLC zVh8yS>>^@aHAQ~O6fR?xcI^3cQ=}a%N8$Y{paYRXZRH~+hnH~v=o^zwwHqQXATUO` zBhN8%Y>&wW_HXu^jBV3YUuD%9kv^{%I8FAVFjw`DUwX zjnfMjo7X*|=>U_kb*8x+wt}M4)3Y}*e)Pg_*mtv}0HLb8>4<$_?*>8BW^ z%AMRiYh;VtIHaT!#5KH>&CA-A@1@oR9P>N~pugRUn+Im`PhcE;sh;V<|8shLx=KV` zmKpp3Ui?T|3HQ0$eHT1sijbGD^t=>J)3atY{1@(hnzQfJaPTr=$N<_&#+`LAnaP|| zvtOUrXd@EmiNvW-XFMT0QXM-p? z5V5o#9yAtlC1+mTBDaRj1)X1jwpGK|CcO~nZg6&+-06y`BVJ6XZzqXVcy3M~Akz(K?=h@FGE(X1b8K&Uq1fuEw&%LHY=fD zX^W;8HbGa6&Tya~X39#cSp&yF7=2rd1$37d=)k)w13=jm(do7c!VyHlYLRhaYd9c( z5Je+@5UMUAbEwA&@{$!P$h|d{l-Q5l(K47Oiu=G;9^zjwrdFBMj0U1#c2Csh88X$$ zGEj_SzE;JL#8v$!B3*tyiybW;1xmM$zdshZx9CVbHB~BFIruZ2w8VvI{|RuU5>u0y-H+mDW(QENJ0F z+8axJSFbv*OfYTTspl0)wlMaQPk}xZs%H~0ZCWzpRrTI`S=V{f6dy4t9n@J~3OhTi z*rG~%k55fI8uq$8b~Q3|VA1bI;32Lv@lZ#M>VXvMX@LXe29>e@AY}@Y{aLXsYQ>Ro zwho-lG4z&+`KreoZ=uEG%3|?XXn!d9Z|4;5$4vI$y>9$+FP*XhMHYIY(H*#SW)Hk4 z{k(OAsK2}^Vv#QHo@}NC6U6>-=3GK1(!-|I!a?XuGcDF8q0}2$a&^87)`t`fokNx7qJIODtsSqM zj=kiJ`9`Bp{#{4tOcmCfXZA_KyA0pEXp1J9RMN|qT;T`kbT)mebqTG#I33!T7T68@0l6GHyHNAb~Sl z`gYlUGMUd7#4@i?ok}j{J!dF!vG~e8N*?fucV+H@&Hw4qYF?<6H;wLF zqQ|_(?s>ueJuS(hgBV98t!S!~{jZ*)A(l%o*oqdFEh`J6&P!wB+#?@&!v`Vp-^4qB zAYX1^ocJe3xOzV7#~z2;EBaZVsi_Z*r%o2+!ntQ6Jqi4@&puPH09#vp9+`xW$lKe= znov-Kv_3n^9hB9gj!R3Xgp#QryO3pkHxG58Y!I15HyDRD`%Pe$QU~) z*dy(BE1x;_s}joUPHQH8MshTjCn<6+6I32hW`D%LJ`CO|CdwIhF|e^#)4F(?%M4Vs z%L8*{g$(N1f;r08b! zF^6i)$Jug6;WcV8<(Ty{ivR>WoUq-jdaeHw+TFdcD{SnHOvThm@}7on)Z8JWOtpfJ zBq`k3@g&?O9=*8>JOa0C_^CJnHk#2Zqdiy98pahU=B8}B-t}XnicWGz(iz|%DA;!t zH-{HJ7p_mnyy~0;-2^@TBy>Hjc}E&1;-SB&@5iy(%9B;K*M4e`eE`Ip4H6@ChTn#A^wp@LiHrAO#&+Mx=@|P1-SB4-I#4MOkzv$+kb)@KzQ0Y=4VzpjpC4HXGToAa}EvMqD zw$&GLh51`F%TOSb>1bq4m&uwzjNCM?p0hzWkX?%uD~rfW)^}Sz+DEag@2O$0+{8E%zvi#j19pXEh8;?*WwW26YGuGE$KDw}_R3z$ zhR+F#sKp5e*KnD7c1PBA1m)4aha_=wHjvM{a?w42y08oBs;@2_+BY|=3Gwq=%J(Dq zG1teB4_Il#acq?eC_s11-Z8VPUkN{MRXlnQgH_B=?jfoj6ObrqCXi`Hx)lHrK*zY2 z@qzK+>db~Vr35=x6HI^%6oUai?`o$K)D_ISA6@qK}TaLuRu?Kx@GSB#2Yh zNQITT?%KI~`&w-bmv$R^|1o^noy_j4vGdbUDs0wzmWO`+pScFKUSI77C1iT2h%deNp*7!?%h2x6J#vntAtPJ8*|c z>q$$rk&;ahK^eP6Jfx)JG}FWO)1;a5*6?((PrQ(x&NRf{~C^P z;Wo32RIdOBsZO`n8FvlXXfdOyru!k!v%36O6!2Ez$Q9&UF4mhnip23kxOpsUSg;vB zq-=F#ZG3;c{kc)_-sSy4dcSk4LR=N;`BMMO3|7UB~wZ1<-oJvWbF^ zu^5y7=-N^viyaiTNg4FQl|~bWn6LRPC$e>1`@eRwM-ZH$NVBMca1_;$$`8rpXkr{- z@cA>~bT7^|hMu5fkhbZx5tce-sh53!-%X(CSY{u#)W5a=DeJ>xZL8jn%n56WJaZXI zUpo}qsRkB?@7Rk{8H|&TDvS5RIaV(JHd4Q?ebsEo@Jj?FIg_5){)zE0p;Y#PUw0+A zo@df>bS+SE;pFh_mcR-4OF;>4G~%ZW`2v}vOrV#WTm=n_41}f8yRHqy(X02i@0HJB zQ%Pp4wuc5hkl?tLL7EvJVsmEUqM(ha*ql*{L_~G&V;oENk4Gt}z_1nj637uI+xq-l z|19bL4Ie!$Y=t4Y!$%KkK2WpI*Y0HQJH|i}<#^oEJ_q?0uVKxh2C3QusnBf6)}qCm zZ=gMojbp!J&S(Y0*>W#}e6inY9-j2=VtHXFTOku|`oW8F_f5fj)#k@aX!rYpnAS`! zR2JLqrDA7ktRhuHig4|gCCFcBtDx3tDP)~mSqt7!Tu%&HyB48k#U zzE;L=i!S@;OPu?=2aO=#kbn!5m{7vlTfvq`i|W3n8p3@bL~HbKdiu_v1uacXv=Bo3!VBD> z&F}%y<);WMAzR@Ys46f^vmgtEEanSXaucS^nZ{yjAOUdW7CA%IXjie?ul&UqTlJby zq^3I2A}NPE*sl%(DV)!{&IHBI8D(K-cxd)Q=3$nhtcT{TPE zr-q3XKw8DE?w%hpOtU$MyFIM!T0UkEDfL5Vbr3!3e|c}!>GqfP)Id#0$qkz_PtWiW zFyFL0aD%cnB*I7CNnD0sJOA5lSUYkQ&eX%oVpGfqDx(pw?$VvUJyAK>)=FD|armv) z%+}ksdu!f~opBP-uw`?^)#(ep=vRGrQ?jqtl*#b!J;xp&_yEHkH2!!)xe$RaS?-7!~tQ1EI@?6M~ zBMh!xrGh80C#We`B#7bW9A3n{C_?|UNoS1&w&aA>P#=n^)J^&0Do% z)QrbW7q58pdUX91E9dFhPcEMSL=seux813v&5ID-9Z4`LwWJiY)xE;@Hm4=#zxd}3)?s3Gz*0;+2k zRxDb7PjD4Bhqy|-Q@{}dC}?{Eo2gDo+VLJkE;Vs6QF7ed5Be6!5zuB1CgZ84i{YIz zkL$7dZx7aDLtIGY%+g26(G5Ras?YN%N=QY@cpSO`is;-598q?Dx?<2#7cMc!uCP0` z9I*A9&mA#!?m=R!^f4uFSp^@RPSc}bdKM#9C2)6N7%6zIYFsadpSbP1ceeg}#jc z(a^JY%HIH)@^-~8Oe;FG4!2zWJ2-oZy#@32nqTz02lty7!<@ZZ11GdEThX=qS58O5 zBnQw-8AMEoQ_Fx9Pg#Yf)j!weFt@}au1lR-~ z4iGeEiLAX~*{y~wQpBtnGK9Lex1yjovc}pquZWV#BEg?pq z;`dA5DrSrnFMPA*8Gr%iMqSy(KnX|e(n0SiBPqs4qK7UeaKt6Xm4}ZW>O0|0Nhjo)?dwa;hsXK5g{u*;O2ef|d zvSxeL>jpFR5;umjyS)1rQJfQjN9Qr-P$~ZWa65xxjsodOU_X&fWyOK)<-mU2(2ly{ zziW9HJVft6^^+O&p0_~qi;LCkYa*d5%7=dKjo10mT6hpOhz5x=I*1mQ#bZ~ZKq#7D zxz0CY!vZ=ClA%}LeNL%DWXi2(Io6Dk!U?EUB&ge!r*iZ+g?Y1WrR{8}vaAC;X$7+n zpyZ=YL$uvqk0QS-C`;v6%_||D>MCjr!Gb# zBPJ`f>Z@E-Q@W`S;|#F92`xFKC+5b%xt-_tJM`=-On3zJQXl$i8*1cX(HjcvyekZ6 zEQu4-F!4^m_Nw)=WI4aDeqSExc}2hbfv0(;lOQGxNag!Lu+y4BtMsXj{{pjoyn?ZK z#kP0@j>U6#h{-n-!t@PpPiWIFp;WKt*_2lW;Q}(F`!-vVlH=SiVtc8-9qf*!@f1P! zZU+VS-`&5-5$E0Xf97-Uxro64>=IUeRGx|hh0l3;9CqcnY8R8f|GYi~T+dxUy8d)a zEWuDAWJ2AFND7G=&b?(4wLrgQNg(AS40QIaEVFyazUrNz6!3a$nkfC5vO>FZw>A8( zh1jwG5{V1P`#8LDbo84i%yz>uo@9iW&^1gG<93`Y;+_u2OLVF-t~K^$9a>?gP%U^_ zS{zcmnrLNtOo|vwLQN}$yzqit5tksD=$}|{+=j*c^$xI>Q{Y|6qDo+QPMt6W`dV(d z5IX84e`ygl^vGh%)qL zgY?Ja z#BnMuPbtQ--je>H z{WisXQKs2*U($swZT;7g|;FzX?>Z~=Jk_##D z)VQb@QC6sa6m?a62w2tqvud^m9~nC)4oXt|(5DypmixVNZCdT4EWO`_>nB?LdIzHA zoesM6#6RL*F6tCKeYxdU)iH{s#BqwL&y=eR`;2C*6%5A@6ixn_P2O%3{M!f38yVX` z@IHG0Ebe)*F*9r>r|x{xa$Y_XQn>%T!oWReX~%pjOpqnFx3M&G%D^h7W5kH-O+*35 zYC$)w4Qr*QLA8nE5hlqZfX3rDx|H)2TbB&3y#!mAHcB zz?1-N!l^2oYK!pcrqwxP@$@I+;8DS!Vl*e*DLDegl5W9`!CajT{AM`FLE5>!nh{R~ zrg=vIwrC~1-`bAZ;cf%lmAytIIt&n2MM=D!G5Bo@O2XDXQuCa!I8qK&Uly}g$4Ot5 zNFYr%RK00m)l1ZagVHzd*h88$et9BzkE@=~l?7r_*{MC3yQYIX3mn+L3afG^FJ%s6 zLQoJE=Ms_Ujo2=u zt=tOm@Z~{`zPx7R*GkGMN{+&G?QH>z^~3cu|xGDYYfAm?cb2e{eRr>tXoD0B?o0>GH-COlu10#ZX^H zClS`5CU;3<$5Z-kFWsju)THlubH$%jYlkt~C9NJ2sv|Y23YCq}J9~&=)^=mX-@gpS zD79|xxu_Yp%wqp^Ly@g1X|)`@E3HXXpa-#TC$$pXwX9Hre9Z@%$F3Q8HChMcJM|33 zc>!~(R+rtvT>Z!zP2rUY=k4%O=Td>HH0+@1MWn_-$;yuM)#Bx=@34~*=}_zXt;I_xHpOQIkq$91|Cf{g`lWwj zq9;P_20c^R13+!}Q2v`mEg4(E8|0L+1plrSpVJW^p~?d-V6IpG)QVO!T#+nH7LjG2dVy_zpzssoNu5GF`uNS8RkNWgvq-wkP)5<`Ctg6lz zxM43&8CyLsKY^2ft3gDIESp3@r5!S~z50W(WJPhC+g!(CL8c7HL_zJ4OLyZG@HL#w z7V^TP;x#Oi{k5@ySghde4J8{Dh_{N=ohPh9zEz+umVBOiK%4O?A|3+Dt5S)@Pj*vg zd&!*seC@Z&*hvao8viA2tEL3zyo1QSt>;rwrp2Vjo9kM(U0;XrHub4HLaWySOuf_Q zM89wT>p+EDYS$XI0$FtA&nuQJSPBP{8%&__sCBKm$VP_})LuU!);19;YU}LKT)X)_ z;Z-JcJg#H4nykxtRRlwnaa zzQaI^rq2A_`8UuQ%qz!&8H)YB;jyW}X~?T}zxGrBSuqeqsc_nqmWo=~8p zjHU;j0U3^r%MyDW$9MO9t)+N#PWk>4FS|axqk8D-%nU=;9sBpPa;zm=2j8{xSCf}T z)9t?&wWa@dS~$6ZSIU(^Tara(!idk0!2;MQG=Q<xK@EozDWpz6R)=iN(= zU_aA8+Wd`ms%7k8Ta}fYftI}phunPt?ZR##&{ZU5)2J`>c`%;>AU7>Sg&%V7{Rn|p z*xcHv!@Jv8Kd&exP=^V&jL1-FTYeyOZm2TBo0Ou`Y`o7ux=$e`*N`wL>QY90VTUwo zJ=d_J@A&ilOOD=8S@Ke*t(gi!1=oC5ZIZpW!p6m%vY}R68CwMaoroLmF0I@G-D#&5 z@XsL4ClgGbkRsl`=VL1Gx;;zj)iuycP&&1=IXNw;;O(syR-2lOfiZy&_sGINV?+>Dj-r13lrBOeNpLRf}B~~7QBabLcx9ZYX4cgLSs9iZP zaXuJodx7u!KPH?kch34bKajC79sG@5XV3O>d~9kjF(r_l5zp*}d#pxXlq8nOQ_#O5 zpL)()Q4Rwy%_IyBq3JRPoG2`bbq1(y>?@th$?X53XJ4sagY99%*!`o=AiWTReHxBp z*8B0Dpy;!9E~E)LZ?eiumX1AkEmOTk zZjMn$dPdZ|M-1Q_x7nL{Ws@c`x9^hxH2De0$^)C_2QeA(rfUSC!6LGDl@(^FD$Ek& zk%gYt>b`()`!Ax){WZYI(LU8G8!TPA28MNPJKIPMjc^LaBTUlOY<^%+%4oGb_^+%2 zlEN6io2Wm41^m@sWo|O z!k2HAcWHGQZit$TG_+45Cgnxgw6D10BPHs`FiK8=HRpSC_0MY9$wT%~WwrSLV{Be7 z|9%AI?_Fog@x3X5;|zrt0Bzl`rTrJ}FqrZQrStd1c5aNPi#E9$C#QuFGG1Gd#%$mGH@3jMwfWxxi~1p z#$mmJrsOPyb&0fK<8HJkl=@3Q+@IgRpV41f1!+hqjAMhtwjdxNx;_vf1!+()G$1G_ zD4?U3Kv|&wYyJ86ZR+7-YUgZeZ%6N7Xl!k0Zc1n6Y;V`1u4sM8fdsg%L*iX4YgsJb z?y@tCbFxL4pfxR+bab#0Xc%q9)?AQsYAtx`+m&ckrf$jc?GT{MeK#YS^?8&8@DaXo zqc?{xQag3BW=s(>qC4bb4kUwE%k4rc%tRl!xbGVMnw1u0^Q@7X|4Z7z^>lDN+GjwJ zDa~kvWYQWTh-`s0oT-x^}V?%wpTs?39@0>atqN zHe|czX#={D^QkdWR%;cmrwMMzOf@jGwyHGgZTA`MQ;BE{N=bH}>*6m*;#+TG_f{wC zczXBi=-?UB$2stA4OGa6P>ubicG^X~9ulyJNVFr2x3q|_~U@NCQoUz9)DQ;cm z>_tXp>sFjFA=t7&tf^K#v10QEjbR(o41IpJ=BG(Jdfc9V_%W2cxf#E9dN1+4vH~tN z0g>r`7C=ukV3j{jvs8hY?*#n1?02Eo6qqq20Pd)qiUb z#e$@Ix!9=U2;dV%01WE(ivKy9H9 zyQZZ;;tY?*i=1qks@`JYUbOAvc#gTG^}g<4)3$yGT_1?tCZVaK$bygvfNP3Kh?)5- zNSGab+E4yXns#X^uo?LHl!t5|s4eu)mq{u}n7&gj-av%AXMXbUxpO2VkI|euRwgOpPN82)uz(2q zbDK0@P8@MRD#xaqq25Y%-C~MjM}0jLf3Bn@+crfK0vE|1>0SALFz@c>nyUAod!idv z0;Sl)_0I{DJO*g_{5l?i*3;c|_$4`{r%NC#Rio~pDdzzjv|f3O{qKeP(UXsarn*La zJBeX&2O2RRFV};(Sr7Y>v0Qg>Eb`IX8^P2!)L;BJC0{b2;)qRnqDo zar2a<&R_iwGf^%-+FWrH{3V2ojSMA_s6uY00M zbG|G2>g4XE(nrh|QzQ04+S`i+jsmHBWLqu;eiI{?F3S?y-eoj|+uPJ05vQ>=K$wT~ znD>Lz1Hu15ny1whcpMlIkN^_U{{?A+vb_Hb(y;#*q$!CCipYx6nV6b7NUG4;nxrI7 zM{Y9w3*hyNvfC-eP~k`iXf5b9zW6Ft~fZ@55dJY+DNBJE~@ zS1tBlI~+$PPIhR2kzFLYln@N1M@zi2ZFx0|T6<%$xKNHkJhZ^8yQNMHy1uXvC2F8G zlsV;+T$(sf<-O9#pj#H^@O;Kkl9!)=uy}ygbmDLX4 z{hzYkzeTj#0|NnpgZ{r|`*#!pp|uCfTFJyJc7p%`i9-Sbq5l7s&DNwvRa^dFy#Tp> z!xP-j&)SUA<- zQl%YrO2r{v7If0MI%{{j*f|GA*Mvo1^O|TmUd|O$Z&4W1;BJfh=L(Gh2UfRJUE#~% zq;MCcfNum%$COh#RKibf;@fNn@iQ0_=#4V!Z3(+?#_Y73lERxy-6s(HA3 zsp21-o2em>L7I}zHUXVsW|HUm`MsELIztPxvmCmDPysNm}{_~ zu<-+mx+w=`^ENYpfv}EJtdN@+-PKJJcYqF&M@pBGr!F=Dep({D76cTy9Wy8|~wae=T@D39i22s3p~N7k3C?x(;zv!D;?e z4$Q(bX=i7*)j0BEhPCsq4JAIPCgtNpQSF@^J@1c#&^fN{p+!#sx99iwo6!Pot)f|Q z&0|fVZ@dh0jo#^_2{YjrJ2*oqIyyLWok2a&)M;=Ut|GoXi-pt9=(bd$>#m1A?)!EeK z|LMb05_j#h7?4JHKh?95&?63-P2%SMdG1sYx$+zt(mRL1r5nK81WzZ1-}lY3ZD-n{ zSwcb2ybk5vZa=H%6Ox}eexu)AKL4eRDzNIWoKWhdJM8O;M4E{O?LlL=HTYmPq_ zQ4R;P0#-Wmld$;HTQ53)nKq>(u})U~q0NS%FKImjAnp5yK{grF#lTl_^of||c9tn^ zgRCQ%6kS=QJ@CPltfj`D6lE!6SHw)VR2cidG}%q2nPG;qm9bZ3-^r*6El7kE66MoE zjEspAzFbMLw5+QaMk?GuIev>U1XR2aUkMJ-(}4->m={DfpIeS3$~aJY_5#stP+$PGdz}{dJ7DdA{F1q>0Vbo##-RM#cF8yiz<@lZNJ&k zp-(q$?vChYLDkr#Q!>KgUFzVUOVj-VoQI#yrwJL{bJw+L7LqlJ)=t-UO8uTG`#l?7 zb6j@dYkZ9+bb`k;GfFR;H#jft%@dq_&f%-^NpCU4syc~szf4)fTi-|B0-IEIjJ{c1 z3japq>Zd&w6$vd-#mVpmF6e#PxyniEiq;n$bT6|`e2_%kF6nbuKrPTlkjuZE5Dmsc zlEHy zC>T()jg$-pe^C6d3SA58Q3IqRRY8>ZqOxPxf$>Q=wT6z6Z4T0PUo8sebloU$^*? zky53$F1X>;bUU0)gm`D}X>mOU+#;-9>wmczb3#M?I z(vu7;t#I?1`a`UpB}ckJsqC5#re31wCxp(Jn#k=K?z7YGjbyQd*qI2Cyg?R2bupQ0 zEuy!N!X&@8I2I?(IwUCAzHBf>c$^qMLc4k3f>wf28|j6_VB2twD_9Fn#{n{nlqFZY-EE#VPUBToxjeUTqx4&L%UT$wb4yC67x)$aAhYr8Ms zlH2C@qBLL+GMnLmucHtnd+OyCzfNH6uI@!UWf{7 zyO%8>JOMQ#VtOKWC+_Q&lDHgxylZj!1xGlTMj^6syniT(Oie5*)o{9UdaQ0RR+fk> zl1ggMQ@Wy6Iq=WZ&FOohakgc+z3IO(HygnsG?U7b~B15UlC zK>vN}wWl#h#+^*+BjDYz7*CWJ6zhlbT08En6BAAA=dT$Mr zva&cko%+oDvoQ%ZbtUCV?4!T*~!6&YL=N@8WV+ zYm@7Z1nERHG2hB6tzd7NkP2lWPKzd;8Zppvyyv*_SLyeKAKI@yS`g=Vn-a1a5<4%u zQWL?7r{wLl?J|~iI5*XFSYrFiR8z-jCazOpwVXqfQTMKAWCAW^T2w2*R zI110a1R*HjoI44K134zVcfV5Xzs72~q~x*V9ud-)V~gfq4Ug$1%+l84Ly^YiS04a9 z+-A~L{{~G7{#8?JO3JfsywZ1Y8|-X@Zu`wm>5~Gq0y`3v0@k>HqGMP9YBJYl>paLCKv*3}u(ObFn7Jiu3m%u;5_l4KL6}A_QNC|RW zNWT>09wejt?%^PR9J>lc%-2~f)BOic^`cvQcZ9$<_=CGCzMRV$H=@yvT-_;&@sOh` zLHaR$y3dcHf6P4`%s^h=_W5I#q5xm{cz-`vXr|=*k=k3NE($-HzWkij&Y2?g;Nwvu+BIOMV$b zE=_7P+@-{pVan2FSVau29Z!ub6tkyBq)*>`HKo`nNi9vb8=6oqGc7$h7)!}gbGmo0 znI-v1ac3uTb){wU=}nQ^RP6`R_dlGh^q}g$D0#%%T&&#h5nxx=Y9=d^uQ;|_O$AoU z3w0{zGD?zFi*K-5Hd{%LX_8`jslnpW%0FogD-O{OGP?w$xM0zF{`3N2*?YodK z_cV`|hc2DQ0yWLqq-NU{bWQ0I@C~!KDpz#7t4OTwZ{pIRm&IQHWCJU%G>~wup)5_- zE&Mx6Y4&Wc?<@2rj8@{BMW{wXRB31ySxuCr;sP{x@7Zq7uvb5r$@+81r#23Wt)Xd8Wxcm?fnx zM&KVM1mBDMC&5_*U(g_qre&Ea^AJjCi@C&$WaZ#!4tYa0$i+K55{ss}Bj>TmI%nYD zXLidOj)(EaG}30?DxxL!V5(EbTE1^d*AA*1KOjr(;Jay@q`M^!;3?@@^*bsP@%5 z;wJWd<;m|05V+t%hl|eZ^shYZyLfKN@85sg+oq8ntBn_iESg!dhX_gyvQZvho2@@P zpVKNJ7Et_UTgdk!2vxmvp*8sNiV5k#Qak~(yL$2CnD~XI)yM|UN6+^f6$-~>b3K_Z zQlBEdouO7whDa)%d(ad{syQF$=r>;YjdV@w)%H$X%>GI(eQX@N++*Lx8{#@Ju?Bo# zi)_@+2tgnBbUQbgfdhGuBp$Ylf6ps?!f?Z-&a|1}Pd1r5D=`yl!uVnF;X_{VeA~v4 zq!jzYp;pg8o-J~HZiI%#QQ&7S;xB%B)}y}(1X|{!hb$J>BWytE|F3r8R$X$v7pPs# zZ2^JkRrK{%Nu>YwtEMg=fJdD>54^Mdxijc>0KJs|@CppEmm);T0HQ=Z@Nx0=*}zC9Dgn90FCi4dzT)?Q)4=2lK&Jz^)C_X66Eja0mY$k9%vNCLq3q%biRgg1n^Bc+7G};ynrO4 z>lk1p6Ww_jNqVOGN0FumNMN+qqgODQ7HI%S=-HC{w*#P0fX1bmK*ie`LHfFSNXvgK z4M;OT>}d}-0#X<2;^)4BNdSZcS5G~W0hsdulhHA0L|(u%e*2X>$_0(}lE-^93MHxs zN1Pg|&Tj*RaRiLGi$N$F@hq@d2EdvtLD$^V!w&#$U~P_uA$m$HdT#@aEdYzzrIG*> z{ATH|u{=>|CZ}A!7mna2binrm`?v?#$BcWGMm!IA*lz;hlmCjcL5gEqFvN6ycL06+ zp9VU;e6!xj#Lp6p4AdFm1r4v@>Vo%%Dk-a<13L1oH;UjPkHdH|s)-I&pZXNiCIkX` z34=g;)``GKCh8yhf1n$2qp2_ihuqtv(SW)uqd*{jCY*~IBhJvp$Ahk?4TnIsIt-zb zJIU(_IJY!leL%2ZjZEB6539eP3XMXQFuD(!*t+-^&>sx?3k72loc=W4ZoD`p@#4fJjG= RU1A_v;Bvsn2W$e+{{RZ&mGl4r diff --git a/vscode-shell-snippets-0.3.0.vsix b/vscode-shell-snippets-0.3.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..268c73a080fa457cb432aea291c9d549f9b696fb GIT binary patch literal 23640 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