From 936c533ff809147e057ad3ece41626c05a07790d Mon Sep 17 00:00:00 2001 From: Benj Date: Wed, 6 Jul 2022 17:27:59 +0800 Subject: [PATCH] Starting work on brand new patcher (Wooo) Oh god my sanity is fading again. Please help. oh god. oh god. oh god. Please help me. --- src-tauri/Cargo.lock | 12 ++ src-tauri/Cargo.toml | 4 + src-tauri/mhycrypto.dll | Bin 0 -> 59392 bytes src-tauri/src/main.rs | 4 +- src-tauri/src/metadata.rs | 129 +++++++++++++ src-tauri/tauri.conf.json | 3 +- src/ui/components/ServerLaunchSection.tsx | 9 +- src/utils/patcher.ts | 6 + yarn.lock | 220 +++++++++++----------- 9 files changed, 271 insertions(+), 116 deletions(-) create mode 100644 src-tauri/mhycrypto.dll create mode 100644 src-tauri/src/metadata.rs create mode 100644 src/utils/patcher.ts diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 2063b7f..4cfa550 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -748,8 +748,10 @@ dependencies = [ "hudsucker", "is_elevated", "lazy_static", + "libloading", "open", "rcgen", + "regex", "registry", "reqwest", "runas", @@ -1962,6 +1964,16 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if 1.0.0", + "winapi", +] + [[package]] name = "lock_api" version = "0.4.7" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index e3ec2a2..db254ba 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -57,6 +57,10 @@ reqwest = { version = "0.11.3", features = ["stream"] } futures-util = "0.3.14" rcgen = { version = "0.9", features = ["x509-parser"] } +# metadata stuff +libloading = "0.7" +regex = "1" + [features] # by default Tauri runs in production mode # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL diff --git a/src-tauri/mhycrypto.dll b/src-tauri/mhycrypto.dll new file mode 100644 index 0000000000000000000000000000000000000000..111a2e4c4a9e2781102a42bd0af563c59767ba79 GIT binary patch literal 59392 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index b65ad7a..1126ecc 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -19,6 +19,7 @@ mod downloader; mod lang; mod proxy; mod web; +mod metadata; lazy_static! { static ref WATCH_GAME_PROCESS: Mutex = { @@ -62,7 +63,8 @@ fn main() { downloader::stop_download, lang::get_lang, lang::get_languages, - web::valid_url + web::valid_url, + metadata::patch_metadata ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/src/metadata.rs b/src-tauri/src/metadata.rs new file mode 100644 index 0000000..bcdec5f --- /dev/null +++ b/src-tauri/src/metadata.rs @@ -0,0 +1,129 @@ +use core::ffi::c_void; +use std::fs::File; +use std::io::Read; +use std::io::Write; +use libloading::os::windows::Library; +use libloading::os::windows::Symbol; +use regex::Regex; + +fn dll_decrypt_global_metadata(data : *mut u8, size : u64) -> Result<*const c_void, Box> { + unsafe { + // Load DLL + let lib = Library::new("mhycrypto.dll")?; + + // Load function and call it + let func : Symbol *const c_void> = lib.get_ordinal(0x1)?; + let decrypted_data = func(data, size); + + // Close DLL and return result + lib.close()?; + Ok(decrypted_data) + } +} + +fn dll_encrypt_global_metadata(data : *mut u8, size : u64) -> Result<*const c_void, Box> { + unsafe { + // Load DLL + let lib = Library::new("mhycrypto.dll")?; + + // Load function and call it + let func : Symbol *const c_void> = lib.get_ordinal(0x2)?; + let encrypted_data = func(data, size); + + // Close DLL and return result + lib.close()?; + Ok(encrypted_data) + } +} + +#[tauri::command] +pub fn patch_metadata(metadata_folder: &str) { + let metadata_file = &(metadata_folder.to_owned() + "\\global-metadata.dat"); + println!("Patching metadata file: {}", metadata_file); + let decrypted : Vec = decrypt_metadata(metadata_file); + + //write decrypted to file + let mut file = File::create(&(metadata_folder.to_owned() + "\\decrypted-metadata.dat")).unwrap(); + file.write_all(&decrypted).unwrap(); + + replace_rsa_key(&decrypted); + + /*if decrypted != Vec::new() { + + } else { + // error + }*/ +} + +fn decrypt_metadata(file_path: &str) -> Vec{ + let mut file = match File::open(file_path) { + Ok(file) => file, + Err(e) => { + println!("Failed to open global-metadata: {}", e); + return Vec::new(); + } + }; + let mut data = Vec::new(); + match file.read_to_end(&mut data) { + Ok(_) => { + match dll_decrypt_global_metadata(data.as_mut_ptr(), data.len().try_into().unwrap()) { + Ok(_) => { + println!("Successfully decrypted global-metadata"); + return data; + } + Err(e) => { + println!("Failed to decrypt global-metadata: {}", e); + return Vec::new(); + } + }; + } + Err(e) => { + println!("Failed to read global-metadata: {}", e); + return Vec::new(); + } + } +} + +fn replace_rsa_key(data: &Vec) { + unsafe { + let data_str = String::from_utf8_unchecked(data.to_vec()); + + let re = Regex::new(r"((.|\n|\r)*?)").unwrap(); + let matches = re.find_iter(&data_str); + + // dispatch key is index 3 + // password key is index 2 + + //println!("Found {} RSA Key(s)", matches.count()); + for (i, rmatch) in matches.enumerate() { + let key = rmatch.as_str(); + + println!("{} - RSA Key {}", i, key); + println!("\n"); + } + } + + + + /*if matches.count() < 1 { + println!("No RSA keys found"); + return Vec::new(); + }*/ +} + +/*let mut file = match OpenOptions::new().write(true).create(true).open(&(file_location.to_owned() + "\\decrypted_metadata.dat")) { + Ok(file) => file, + Err(e) => { + println!("Failed to open file: {}", e); + return; + } + }; + match file.write_all(&data) { + Ok(_) => { + println!("Successfully decrypted metadata"); + } + Err(e) => { + println!("Failed to write to file: {}", e); + return; + } + }*/ \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 58af5c8..8daae45 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -55,7 +55,8 @@ "signingIdentity": null }, "resources": [ - "lang/*.json" + "lang/*.json", + "./mhycrypto.dll" ], "targets": "all", "windows": { diff --git a/src/ui/components/ServerLaunchSection.tsx b/src/ui/components/ServerLaunchSection.tsx index 3644310..cf9d734 100644 --- a/src/ui/components/ServerLaunchSection.tsx +++ b/src/ui/components/ServerLaunchSection.tsx @@ -4,6 +4,7 @@ import BigButton from './common/BigButton' import TextInput from './common/TextInput' import HelpButton from './common/HelpButton' import { getConfig, saveConfig, setConfigOption } from '../../utils/configuration' +import { patchMetadata } from '../../utils/patcher' import { translate } from '../../utils/language' import { invoke } from '@tauri-apps/api/tauri' @@ -85,6 +86,10 @@ export default class ServerLaunchSection extends React.Component await saveConfig(config) } + async patchMetadata() { + await patchMetadata() + } + async playGame() { const config = await getConfig() @@ -196,7 +201,7 @@ export default class ServerLaunchSection extends React.Component { this.state.grasscutterEnabled && (
-
+
Compiled with problems:
- {this.state.buttonLabel} + Patch Metadata diff --git a/src/utils/patcher.ts b/src/utils/patcher.ts new file mode 100644 index 0000000..5f08dd7 --- /dev/null +++ b/src/utils/patcher.ts @@ -0,0 +1,6 @@ +import { invoke } from '@tauri-apps/api' + +export async function patchMetadata() { + console.log('patching') + await invoke('patch_metadata', {metadataFolder: 'C:\\Users\\benja\\Desktop'}) +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e24b835..ef81234 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1647,30 +1647,26 @@ dependencies: "type-fest" "2.12.2" -"@tauri-apps/cli-win32-x64-msvc@1.0.0-rc.13": - "integrity" "sha512-ifOTrJVQoBAQUYX+EVnE4XJ/FCMHs4FQ8qxGNszqkSxrU24mmT7La6tzj77352q80KnxRa05xjjLL6GGhmzXRg==" - "resolved" "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.0.0-rc.13.tgz" - "version" "1.0.0-rc.13" +"@tauri-apps/cli-win32-x64-msvc@1.0.0-rc.12": + "version" "1.0.0-rc.12" "@tauri-apps/cli@^1.0.0-rc.11": - "integrity" "sha512-q7i45Mi1SMv5XllNoX09QS4Q/fYVFwD6piVYmqMSrKY/T5RwedQhytiVH60TxC2xk6o0akVHa7BdYiyJvXNR8A==" - "resolved" "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.0.0-rc.13.tgz" - "version" "1.0.0-rc.13" + "version" "1.0.0-rc.12" optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "1.0.0-rc.13" - "@tauri-apps/cli-darwin-x64" "1.0.0-rc.13" - "@tauri-apps/cli-linux-arm-gnueabihf" "1.0.0-rc.13" - "@tauri-apps/cli-linux-arm64-gnu" "1.0.0-rc.13" - "@tauri-apps/cli-linux-arm64-musl" "1.0.0-rc.13" - "@tauri-apps/cli-linux-x64-gnu" "1.0.0-rc.13" - "@tauri-apps/cli-linux-x64-musl" "1.0.0-rc.13" - "@tauri-apps/cli-win32-ia32-msvc" "1.0.0-rc.13" - "@tauri-apps/cli-win32-x64-msvc" "1.0.0-rc.13" + "@tauri-apps/cli-darwin-arm64" "1.0.0-rc.12" + "@tauri-apps/cli-darwin-x64" "1.0.0-rc.12" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.0.0-rc.12" + "@tauri-apps/cli-linux-arm64-gnu" "1.0.0-rc.12" + "@tauri-apps/cli-linux-arm64-musl" "1.0.0-rc.12" + "@tauri-apps/cli-linux-x64-gnu" "1.0.0-rc.12" + "@tauri-apps/cli-linux-x64-musl" "1.0.0-rc.12" + "@tauri-apps/cli-win32-ia32-msvc" "1.0.0-rc.12" + "@tauri-apps/cli-win32-x64-msvc" "1.0.0-rc.12" "@testing-library/dom@^8.5.0", "@testing-library/dom@>=7.21.4": - "integrity" "sha512-m8FOdUo77iMTwVRCyzWcqxlEIk+GnopbrRI15a0EaLbpZSCinIVI4kSQzWhkShK83GogvEFJSsHF3Ws0z1vrqA==" - "resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.14.0.tgz" - "version" "8.14.0" + "integrity" "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==" + "resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz" + "version" "8.13.0" dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -1887,7 +1883,7 @@ "version" "7.0.11" "@types/json5@^0.0.29": - "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4= sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" "version" "0.0.29" @@ -2471,7 +2467,7 @@ "version" "2.1.2" "array-flatten@1.1.1": - "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" "version" "1.1.1" @@ -2512,12 +2508,12 @@ "es-shim-unscopables" "^1.0.0" "asap@~2.0.6": - "integrity" "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "integrity" "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" "version" "2.0.6" "ast-types-flow@^0.0.7": - "integrity" "sha1-9wtzXGvKGlycItmCw+Oef+ujva0= sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "integrity" "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" "version" "0.0.7" @@ -2527,7 +2523,7 @@ "version" "3.2.3" "asynckit@^0.4.0": - "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" "version" "0.4.0" @@ -2712,7 +2708,7 @@ "version" "1.0.2" "batch@0.6.1": - "integrity" "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity" "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" "resolved" "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" "version" "0.6.1" @@ -2770,7 +2766,7 @@ "multicast-dns" "^7.2.4" "boolbase@^1.0.0", "boolbase@~1.0.0": - "integrity" "sha1-aN/1++YMUes3cl6p4+0xDcwed24= sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity" "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" "resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" "version" "1.0.0" @@ -2830,7 +2826,7 @@ "version" "3.2.0" "bytes@3.0.0": - "integrity" "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + "integrity" "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" "version" "3.0.0" @@ -2996,7 +2992,7 @@ "wrap-ansi" "^7.0.0" "co@^4.6.0": - "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" "version" "4.6.0" @@ -3034,7 +3030,7 @@ "version" "1.1.4" "color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" "version" "1.1.3" @@ -3081,7 +3077,7 @@ "version" "1.8.2" "commondir@^1.0.1": - "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" "version" "1.0.1" @@ -3106,7 +3102,7 @@ "vary" "~1.1.2" "concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" "version" "0.0.1" @@ -3140,7 +3136,7 @@ "safe-buffer" "~5.1.1" "cookie-signature@1.0.6": - "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw= sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" "version" "1.0.6" @@ -3326,7 +3322,7 @@ "version" "6.1.0" "css.escape@^1.5.1": - "integrity" "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + "integrity" "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" "resolved" "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz" "version" "1.5.1" @@ -3482,12 +3478,12 @@ "version" "10.3.1" "decode-uri-component@^0.2.0": - "integrity" "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" + "integrity" "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" "version" "0.2.0" "dedent@^0.7.0": - "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" "version" "0.7.0" @@ -3522,17 +3518,17 @@ "object-keys" "^1.1.1" "defined@^1.0.0": - "integrity" "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" + "integrity" "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" "version" "1.0.0" "delayed-stream@~1.0.0": - "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "version" "1.0.0" "depd@~1.1.2": - "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" "version" "1.1.2" @@ -3596,7 +3592,7 @@ "version" "1.1.3" "dns-equal@^1.0.0": - "integrity" "sha1-s55/HabrCnW6nBcySzR1PEfgZU0= sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + "integrity" "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" "resolved" "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" "version" "1.0.0" @@ -3715,7 +3711,7 @@ "version" "0.1.2" "ee-first@1.1.1": - "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" "version" "1.1.1" @@ -3757,7 +3753,7 @@ "version" "3.0.0" "encodeurl@~1.0.2": - "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" "version" "1.0.2" @@ -3844,12 +3840,12 @@ "version" "3.1.1" "escape-html@~1.0.3": - "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" "version" "1.0.3" "escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" "version" "1.0.5" @@ -4134,7 +4130,7 @@ "version" "2.0.3" "etag@~1.8.1": - "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" "version" "1.8.1" @@ -4164,7 +4160,7 @@ "strip-final-newline" "^2.0.0" "exit@^0.1.2": - "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" "version" "0.1.2" @@ -4237,7 +4233,7 @@ "version" "2.1.0" "fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": - "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" "version" "2.0.6" @@ -4319,7 +4315,7 @@ "pkg-dir" "^4.1.0" "find-up@^2.1.0": - "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c= sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==" + "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" "version" "2.1.0" dependencies: @@ -4413,7 +4409,7 @@ "version" "4.2.0" "fresh@0.5.2": - "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" "version" "0.5.2" @@ -4452,7 +4448,7 @@ "version" "1.0.3" "fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "version" "1.0.0" @@ -4472,7 +4468,7 @@ "functions-have-names" "^1.2.2" "functional-red-black-tree@^1.0.1": - "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" "version" "1.0.1" @@ -4629,7 +4625,7 @@ "version" "1.0.2" "has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" "version" "3.0.0" @@ -4675,7 +4671,7 @@ "version" "0.1.4" "hpack.js@^2.1.6": - "integrity" "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==" + "integrity" "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=" "resolved" "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" "version" "2.1.6" dependencies: @@ -4736,12 +4732,12 @@ "entities" "^2.0.0" "http-deceiver@^1.2.7": - "integrity" "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity" "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" "resolved" "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" "version" "1.2.7" "http-errors@~1.6.2": - "integrity" "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==" + "integrity" "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=" "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" "version" "1.6.3" dependencies: @@ -4833,7 +4829,7 @@ "version" "6.1.5" "identity-obj-proxy@^3.0.0": - "integrity" "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==" + "integrity" "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=" "resolved" "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz" "version" "3.0.0" dependencies: @@ -4866,7 +4862,7 @@ "resolve-cwd" "^3.0.0" "imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" "version" "0.1.4" @@ -4876,7 +4872,7 @@ "version" "4.0.0" "inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" "version" "1.0.6" dependencies: @@ -4889,7 +4885,7 @@ "version" "2.0.4" "inherits@2.0.3": - "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "version" "2.0.3" @@ -4918,7 +4914,7 @@ "version" "1.9.1" "is-arrayish@^0.2.1": - "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" "version" "0.2.1" @@ -4969,7 +4965,7 @@ "version" "2.2.1" "is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" "version" "2.1.1" @@ -4991,7 +4987,7 @@ "is-extglob" "^2.1.1" "is-module@^1.0.0": - "integrity" "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + "integrity" "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" "resolved" "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz" "version" "1.0.0" @@ -5013,7 +5009,7 @@ "version" "7.0.0" "is-obj@^1.0.1": - "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8= sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" "version" "1.0.1" @@ -5036,7 +5032,7 @@ "has-tostringtag" "^1.0.0" "is-regexp@^1.0.0": - "integrity" "sha1-/S2INUXEa6xaYz57mgnof6LLUGk= sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + "integrity" "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" "resolved" "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" "version" "1.0.0" @@ -5072,7 +5068,7 @@ "has-symbols" "^1.0.2" "is-typedarray@^1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" "version" "1.0.0" @@ -5091,12 +5087,12 @@ "is-docker" "^2.0.0" "isarray@~1.0.0": - "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" "version" "1.0.0" "isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" "version" "2.0.0" @@ -5684,7 +5680,7 @@ "version" "2.5.2" "jsesc@~0.5.0": - "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" "version" "0.5.0" @@ -5714,7 +5710,7 @@ "version" "0.4.0" "json-stable-stringify-without-jsonify@^1.0.1": - "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" "version" "1.0.1" @@ -5773,7 +5769,7 @@ "version" "0.3.21" "language-tags@^1.0.5": - "integrity" "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==" + "integrity" "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=" "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" "version" "1.0.5" dependencies: @@ -5793,7 +5789,7 @@ "type-check" "~0.4.0" "levn@~0.3.0": - "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==" + "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" "version" "0.3.0" dependencies: @@ -5830,7 +5826,7 @@ "version" "3.2.0" "locate-path@^2.0.0": - "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==" + "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -5860,12 +5856,12 @@ "p-locate" "^5.0.0" "lodash.debounce@^4.0.8": - "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168= sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" "version" "4.0.8" "lodash.memoize@^4.1.2": - "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" "version" "4.1.2" @@ -5875,12 +5871,12 @@ "version" "4.6.2" "lodash.sortby@^4.7.0": - "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" "resolved" "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" "version" "4.7.0" "lodash.uniq@^4.5.0": - "integrity" "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "integrity" "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" "resolved" "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" "version" "4.5.0" @@ -5911,7 +5907,7 @@ "yallist" "^4.0.0" "lz-string@^1.4.4": - "integrity" "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" + "integrity" "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" "resolved" "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz" "version" "1.4.4" @@ -5947,7 +5943,7 @@ "version" "2.0.4" "media-typer@0.3.0": - "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" "version" "0.3.0" @@ -5959,7 +5955,7 @@ "fs-monkey" "1.0.3" "merge-descriptors@1.0.1": - "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" "version" "1.0.1" @@ -5974,7 +5970,7 @@ "version" "1.4.1" "methods@~1.1.2": - "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" "version" "1.1.2" @@ -6064,7 +6060,7 @@ "version" "2.1.2" "ms@2.0.0": - "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" "version" "2.0.0" @@ -6087,7 +6083,7 @@ "version" "3.3.4" "natural-compare@^1.4.0": - "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" "version" "1.4.0" @@ -6115,7 +6111,7 @@ "version" "1.3.1" "node-int64@^0.4.0": - "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" "version" "0.4.0" @@ -6130,7 +6126,7 @@ "version" "3.0.0" "normalize-range@^0.1.2": - "integrity" "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + "integrity" "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" "version" "0.1.2" @@ -6166,7 +6162,7 @@ "version" "2.2.0" "object-assign@^4.1.1": - "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "version" "4.1.1" @@ -6257,7 +6253,7 @@ "version" "1.0.2" "once@^1.3.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" "version" "1.4.0" dependencies: @@ -6332,7 +6328,7 @@ "yocto-queue" "^0.1.0" "p-locate@^2.0.0": - "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==" + "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -6368,7 +6364,7 @@ "retry" "^0.13.1" "p-try@^1.0.0": - "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" + "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" "version" "1.0.0" @@ -6421,7 +6417,7 @@ "tslib" "^2.0.3" "path-exists@^3.0.0": - "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" "version" "3.0.0" @@ -6431,7 +6427,7 @@ "version" "4.0.0" "path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" "version" "1.0.1" @@ -6446,7 +6442,7 @@ "version" "1.0.7" "path-to-regexp@0.1.7": - "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" "version" "0.1.7" @@ -6456,7 +6452,7 @@ "version" "4.0.0" "performance-now@^2.1.0": - "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" "version" "2.1.0" @@ -7033,7 +7029,7 @@ "version" "1.2.1" "prelude-ls@~1.1.2": - "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" "version" "1.1.2" @@ -7117,7 +7113,7 @@ "version" "2.1.1" "q@^1.1.2": - "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" "version" "1.5.1" @@ -7416,7 +7412,7 @@ "jsesc" "~0.5.0" "relateurl@^0.2.7": - "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" "resolved" "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" "version" "0.2.7" @@ -7432,7 +7428,7 @@ "strip-ansi" "^6.0.1" "require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" "version" "2.1.1" @@ -7442,7 +7438,7 @@ "version" "2.0.2" "requires-port@^1.0.0": - "integrity" "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity" "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" "version" "1.0.0" @@ -7659,7 +7655,7 @@ "ajv-keywords" "^3.4.1" "select-hose@^2.0.0": - "integrity" "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity" "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" "resolved" "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" "version" "2.0.0" @@ -7736,7 +7732,7 @@ "randombytes" "^2.1.0" "serve-index@^1.9.1": - "integrity" "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==" + "integrity" "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=" "resolved" "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" "version" "1.9.1" dependencies: @@ -7911,7 +7907,7 @@ "spdy-transport" "^3.0.0" "sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" "version" "1.0.3" @@ -7933,7 +7929,7 @@ "version" "1.2.1" "statuses@>= 1.4.0 < 2": - "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" "version" "1.5.0" @@ -8042,7 +8038,7 @@ "ansi-regex" "^6.0.1" "strip-bom@^3.0.0": - "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" "version" "3.0.0" @@ -8253,7 +8249,7 @@ "minimatch" "^3.0.4" "text-table@^0.2.0": - "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" "version" "0.2.0" @@ -8273,7 +8269,7 @@ "version" "1.0.5" "to-fast-properties@^2.0.0": - "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" "version" "2.0.0" @@ -8299,7 +8295,7 @@ "universalify" "^0.1.2" "tr46@^1.0.1": - "integrity" "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==" + "integrity" "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=" "resolved" "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" "version" "1.0.1" dependencies: @@ -8352,7 +8348,7 @@ "prelude-ls" "^1.2.1" "type-check@~0.3.2": - "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==" + "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" "version" "0.3.2" dependencies: @@ -8454,12 +8450,12 @@ "version" "2.0.0" "unpipe@~1.0.0", "unpipe@1.0.0": - "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" "version" "1.0.0" "unquote@~1.1.1": - "integrity" "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + "integrity" "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" "resolved" "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" "version" "1.1.1" @@ -8476,7 +8472,7 @@ "punycode" "^2.1.0" "util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" @@ -8491,12 +8487,12 @@ "object.getownpropertydescriptors" "^2.1.0" "utila@~0.4": - "integrity" "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + "integrity" "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" "resolved" "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" "version" "0.4.0" "utils-merge@1.0.1": - "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" "version" "1.0.1" @@ -8520,7 +8516,7 @@ "source-map" "^0.7.3" "vary@~1.1.2": - "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" "version" "1.1.2" @@ -8942,7 +8938,7 @@ "strip-ansi" "^6.0.0" "wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "version" "1.0.2"