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 0000000..111a2e4 Binary files /dev/null and b/src-tauri/mhycrypto.dll differ 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"