From 71495bc257a8ae84d39d9e06651df7c59076cb2b Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 28 Jan 2021 01:04:49 +0100 Subject: [PATCH] pulsebert: double-proxy the espCam --- hosts/pulsebert/configuration.nix | 27 +- lib/pkgs/httpbounder.nix | 18 + lib/pkgs/httpbounder.patch | 2325 +++++++++++++++++++++++++++++ 3 files changed, 2366 insertions(+), 4 deletions(-) create mode 100644 lib/pkgs/httpbounder.nix create mode 100644 lib/pkgs/httpbounder.patch diff --git a/hosts/pulsebert/configuration.nix b/hosts/pulsebert/configuration.nix index f4e8cee1..91ff4fe4 100644 --- a/hosts/pulsebert/configuration.nix +++ b/hosts/pulsebert/configuration.nix @@ -6,6 +6,7 @@ let octoprintPort = 8080; + espCam = "http://172.20.78.164:81"; in { imports = [ # Include the results of the hardware scan. @@ -148,6 +149,14 @@ in client_max_body_size 200M; ''; }; + locations."/cam/stream" = { + proxyPass = "http://localhost:8081/video.mjpg"; + extraConfig = "proxy_pass_request_headers off;"; + }; + locations."/cam/capture" = { + proxyPass = "${espCam}/capture"; + extraConfig = "proxy_pass_request_headers off;"; + }; }; }; }; @@ -181,10 +190,20 @@ in # Allow access to printer serial port and GPIO users.users.${config.services.octoprint.user}.extraGroups = [ "dialout" "gpio" ]; - # services.mjpg-streamer = { - # enable = true; - # inputPlugin = "input_uvc.so -r 1280x720"; - # }; + systemd.services.mjpeg-stream = + let + httpbounder = pkgs.callPackage {}; + in { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + User = "nobody"; + Group = "nogroup"; + Restart = "always"; + RestartSec = 60; + }; + script = "exec ${httpbounder}/bin/httpbounder -b 127.0.0.1:8081 -i ${espCam}/stream"; + }; # Allow gpio group to access GPIO devices users.groups.gpio = { }; diff --git a/lib/pkgs/httpbounder.nix b/lib/pkgs/httpbounder.nix new file mode 100644 index 00000000..89fa169c --- /dev/null +++ b/lib/pkgs/httpbounder.nix @@ -0,0 +1,18 @@ +{ fetchFromGitHub, rustPlatform, pkg-config, openssl }: + +rustPlatform.buildRustPackage rec { + pname = "httpbounder"; + version = "unstable-2020-10-23"; + + src = fetchFromGitHub { + owner = "Szperak"; + repo = "httpbounder"; + rev = "540d8e8beea5b75c2761ab3500464f1ebdebbc4f"; + sha256 = "0m0q3835055xr2pq6726f9pp9ws1q6mwhfmgkylsagzzkrcpmnar"; + }; + cargoPatches = [ ./httpbounder.patch ]; + + cargoSha256 = "137zl2d2pr5p4zr6a8rrbc52izz25yh6cgilvag4fvnhgwv986c0"; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ]; +} diff --git a/lib/pkgs/httpbounder.patch b/lib/pkgs/httpbounder.patch new file mode 100644 index 00000000..6a3649c2 --- /dev/null +++ b/lib/pkgs/httpbounder.patch @@ -0,0 +1,2325 @@ +From 641baef88aabe977e1e52b55b4f07701c44a8abd Mon Sep 17 00:00:00 2001 +From: Astro +Date: Wed, 27 Jan 2021 20:47:00 +0100 +Subject: [PATCH] add Cargo.lock + +--- + Cargo.lock | 2306 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 2306 insertions(+) + create mode 100644 Cargo.lock + +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..37cbc94 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,2306 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "actix-codec" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570" ++dependencies = [ ++ "bitflags", ++ "bytes 0.5.6", ++ "futures-core", ++ "futures-sink", ++ "log", ++ "pin-project 0.4.27", ++ "tokio", ++ "tokio-util", ++] ++ ++[[package]] ++name = "actix-connect" ++version = "2.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc" ++dependencies = [ ++ "actix-codec", ++ "actix-rt", ++ "actix-service", ++ "actix-utils", ++ "derive_more", ++ "either", ++ "futures-util", ++ "http", ++ "log", ++ "trust-dns-proto", ++ "trust-dns-resolver", ++] ++ ++[[package]] ++name = "actix-http" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "452299e87817ae5673910e53c243484ca38be3828db819b6011736fc6982e874" ++dependencies = [ ++ "actix-codec", ++ "actix-connect", ++ "actix-rt", ++ "actix-service", ++ "actix-threadpool", ++ "actix-utils", ++ "base64", ++ "bitflags", ++ "brotli2", ++ "bytes 0.5.6", ++ "cookie", ++ "copyless", ++ "derive_more", ++ "either", ++ "encoding_rs", ++ "flate2", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "fxhash", ++ "h2", ++ "http", ++ "httparse", ++ "indexmap", ++ "itoa", ++ "language-tags", ++ "lazy_static", ++ "log", ++ "mime", ++ "percent-encoding", ++ "pin-project 1.0.4", ++ "rand 0.7.3", ++ "regex", ++ "serde", ++ "serde_json", ++ "serde_urlencoded", ++ "sha-1", ++ "slab", ++ "time", ++] ++ ++[[package]] ++name = "actix-macros" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" ++dependencies = [ ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "actix-router" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b8be584b3b6c705a18eabc11c4059cf83b255bdd8511673d1d569f4ce40c69de" ++dependencies = [ ++ "bytestring", ++ "http", ++ "log", ++ "regex", ++ "serde", ++] ++ ++[[package]] ++name = "actix-rt" ++version = "1.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" ++dependencies = [ ++ "actix-macros", ++ "actix-threadpool", ++ "copyless", ++ "futures-channel", ++ "futures-util", ++ "smallvec", ++ "tokio", ++] ++ ++[[package]] ++name = "actix-server" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e" ++dependencies = [ ++ "actix-codec", ++ "actix-rt", ++ "actix-service", ++ "actix-utils", ++ "futures-channel", ++ "futures-util", ++ "log", ++ "mio", ++ "mio-uds", ++ "num_cpus", ++ "slab", ++ "socket2", ++] ++ ++[[package]] ++name = "actix-service" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" ++dependencies = [ ++ "futures-util", ++ "pin-project 0.4.27", ++] ++ ++[[package]] ++name = "actix-testing" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" ++dependencies = [ ++ "actix-macros", ++ "actix-rt", ++ "actix-server", ++ "actix-service", ++ "log", ++ "socket2", ++] ++ ++[[package]] ++name = "actix-threadpool" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30" ++dependencies = [ ++ "derive_more", ++ "futures-channel", ++ "lazy_static", ++ "log", ++ "num_cpus", ++ "parking_lot", ++ "threadpool", ++] ++ ++[[package]] ++name = "actix-tls" ++version = "2.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb" ++dependencies = [ ++ "actix-codec", ++ "actix-service", ++ "actix-utils", ++ "futures-util", ++] ++ ++[[package]] ++name = "actix-utils" ++version = "2.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a" ++dependencies = [ ++ "actix-codec", ++ "actix-rt", ++ "actix-service", ++ "bitflags", ++ "bytes 0.5.6", ++ "either", ++ "futures-channel", ++ "futures-sink", ++ "futures-util", ++ "log", ++ "pin-project 0.4.27", ++ "slab", ++] ++ ++[[package]] ++name = "actix-web" ++version = "3.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e641d4a172e7faa0862241a20ff4f1f5ab0ab7c279f00c2d4587b77483477b86" ++dependencies = [ ++ "actix-codec", ++ "actix-http", ++ "actix-macros", ++ "actix-router", ++ "actix-rt", ++ "actix-server", ++ "actix-service", ++ "actix-testing", ++ "actix-threadpool", ++ "actix-tls", ++ "actix-utils", ++ "actix-web-codegen", ++ "awc", ++ "bytes 0.5.6", ++ "derive_more", ++ "encoding_rs", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "fxhash", ++ "log", ++ "mime", ++ "pin-project 1.0.4", ++ "regex", ++ "serde", ++ "serde_json", ++ "serde_urlencoded", ++ "socket2", ++ "time", ++ "tinyvec", ++ "url", ++] ++ ++[[package]] ++name = "actix-web-codegen" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "addr2line" ++version = "0.14.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" ++dependencies = [ ++ "gimli", ++] ++ ++[[package]] ++name = "adler" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" ++ ++[[package]] ++name = "aho-corasick" ++version = "0.7.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" ++dependencies = [ ++ "memchr", ++] ++ ++[[package]] ++name = "ansi_term" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "anyhow" ++version = "1.0.38" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" ++ ++[[package]] ++name = "async-trait" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "atty" ++version = "0.2.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" ++dependencies = [ ++ "hermit-abi", ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "autocfg" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" ++ ++[[package]] ++name = "awc" ++version = "2.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691" ++dependencies = [ ++ "actix-codec", ++ "actix-http", ++ "actix-rt", ++ "actix-service", ++ "base64", ++ "bytes 0.5.6", ++ "cfg-if 1.0.0", ++ "derive_more", ++ "futures-core", ++ "log", ++ "mime", ++ "percent-encoding", ++ "rand 0.7.3", ++ "serde", ++ "serde_json", ++ "serde_urlencoded", ++] ++ ++[[package]] ++name = "backtrace" ++version = "0.3.56" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc" ++dependencies = [ ++ "addr2line", ++ "cfg-if 1.0.0", ++ "libc", ++ "miniz_oxide", ++ "object", ++ "rustc-demangle", ++] ++ ++[[package]] ++name = "base-x" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" ++ ++[[package]] ++name = "base64" ++version = "0.13.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++ ++[[package]] ++name = "block-buffer" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" ++dependencies = [ ++ "generic-array", ++] ++ ++[[package]] ++name = "brotli-sys" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd" ++dependencies = [ ++ "cc", ++ "libc", ++] ++ ++[[package]] ++name = "brotli2" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e" ++dependencies = [ ++ "brotli-sys", ++ "libc", ++] ++ ++[[package]] ++name = "bumpalo" ++version = "3.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f07aa6688c702439a1be0307b6a94dffe1168569e45b9500c1372bc580740d59" ++ ++[[package]] ++name = "byteorder" ++version = "1.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" ++ ++[[package]] ++name = "bytes" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" ++ ++[[package]] ++name = "bytes" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" ++ ++[[package]] ++name = "bytestring" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90706ba19e97b90786e19dc0d5e2abd80008d99d4c0c5d1ad0b5e72cec7c494d" ++dependencies = [ ++ "bytes 1.0.1", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.66" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" ++ ++[[package]] ++name = "cfg-if" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" ++ ++[[package]] ++name = "clap" ++version = "2.33.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" ++dependencies = [ ++ "ansi_term", ++ "atty", ++ "bitflags", ++ "strsim", ++ "textwrap", ++ "unicode-width", ++ "vec_map", ++] ++ ++[[package]] ++name = "const_fn" ++version = "0.4.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" ++ ++[[package]] ++name = "cookie" ++version = "0.14.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f" ++dependencies = [ ++ "percent-encoding", ++ "time", ++ "version_check", ++] ++ ++[[package]] ++name = "copyless" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" ++ ++[[package]] ++name = "core-foundation" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" ++dependencies = [ ++ "core-foundation-sys", ++ "libc", ++] ++ ++[[package]] ++name = "core-foundation-sys" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" ++ ++[[package]] ++name = "cpuid-bool" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" ++ ++[[package]] ++name = "crc32fast" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "derive_more" ++version = "0.99.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "digest" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" ++dependencies = [ ++ "generic-array", ++] ++ ++[[package]] ++name = "discard" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" ++ ++[[package]] ++name = "either" ++version = "1.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" ++ ++[[package]] ++name = "encoding_rs" ++version = "0.8.26" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "enum-as-inner" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" ++dependencies = [ ++ "heck", ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "flate2" ++version = "1.0.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "crc32fast", ++ "libc", ++ "miniz_oxide", ++] ++ ++[[package]] ++name = "fnv" ++version = "1.0.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" ++ ++[[package]] ++name = "foreign-types" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" ++dependencies = [ ++ "foreign-types-shared", ++] ++ ++[[package]] ++name = "foreign-types-shared" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" ++ ++[[package]] ++name = "form_urlencoded" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" ++dependencies = [ ++ "matches", ++ "percent-encoding", ++] ++ ++[[package]] ++name = "fuchsia-zircon" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" ++dependencies = [ ++ "bitflags", ++ "fuchsia-zircon-sys", ++] ++ ++[[package]] ++name = "fuchsia-zircon-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" ++ ++[[package]] ++name = "futures" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" ++dependencies = [ ++ "futures-channel", ++ "futures-core", ++ "futures-executor", ++ "futures-io", ++ "futures-sink", ++ "futures-task", ++ "futures-util", ++] ++ ++[[package]] ++name = "futures-channel" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" ++dependencies = [ ++ "futures-core", ++ "futures-sink", ++] ++ ++[[package]] ++name = "futures-core" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" ++ ++[[package]] ++name = "futures-executor" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" ++dependencies = [ ++ "futures-core", ++ "futures-task", ++ "futures-util", ++] ++ ++[[package]] ++name = "futures-io" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" ++ ++[[package]] ++name = "futures-macro" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" ++dependencies = [ ++ "proc-macro-hack", ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "futures-sink" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" ++ ++[[package]] ++name = "futures-task" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" ++dependencies = [ ++ "once_cell", ++] ++ ++[[package]] ++name = "futures-util" ++version = "0.3.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" ++dependencies = [ ++ "futures-channel", ++ "futures-core", ++ "futures-io", ++ "futures-macro", ++ "futures-sink", ++ "futures-task", ++ "memchr", ++ "pin-project-lite 0.2.4", ++ "pin-utils", ++ "proc-macro-hack", ++ "proc-macro-nested", ++ "slab", ++] ++ ++[[package]] ++name = "fxhash" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" ++dependencies = [ ++ "byteorder", ++] ++ ++[[package]] ++name = "generic-array" ++version = "0.14.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" ++dependencies = [ ++ "typenum", ++ "version_check", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.1.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "wasi 0.9.0+wasi-snapshot-preview1", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "wasi 0.10.1+wasi-snapshot-preview1", ++] ++ ++[[package]] ++name = "gimli" ++version = "0.23.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" ++ ++[[package]] ++name = "h2" ++version = "0.2.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" ++dependencies = [ ++ "bytes 0.5.6", ++ "fnv", ++ "futures-core", ++ "futures-sink", ++ "futures-util", ++ "http", ++ "indexmap", ++ "slab", ++ "tokio", ++ "tokio-util", ++ "tracing", ++ "tracing-futures", ++] ++ ++[[package]] ++name = "hashbrown" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" ++ ++[[package]] ++name = "heck" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" ++dependencies = [ ++ "unicode-segmentation", ++] ++ ++[[package]] ++name = "hermit-abi" ++version = "0.1.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "hostname" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" ++dependencies = [ ++ "libc", ++ "match_cfg", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "http" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" ++dependencies = [ ++ "bytes 1.0.1", ++ "fnv", ++ "itoa", ++] ++ ++[[package]] ++name = "http-body" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" ++dependencies = [ ++ "bytes 0.5.6", ++ "http", ++] ++ ++[[package]] ++name = "httparse" ++version = "1.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" ++ ++[[package]] ++name = "httpbounder" ++version = "0.1.0" ++dependencies = [ ++ "actix-rt", ++ "actix-web", ++ "anyhow", ++ "base64", ++ "clap", ++ "derive_more", ++ "futures", ++ "reqwest", ++ "serde", ++ "serde_derive", ++ "tokio", ++ "toml", ++ "twoway", ++] ++ ++[[package]] ++name = "httpdate" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" ++ ++[[package]] ++name = "hyper" ++version = "0.13.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" ++dependencies = [ ++ "bytes 0.5.6", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "h2", ++ "http", ++ "http-body", ++ "httparse", ++ "httpdate", ++ "itoa", ++ "pin-project 1.0.4", ++ "socket2", ++ "tokio", ++ "tower-service", ++ "tracing", ++ "want", ++] ++ ++[[package]] ++name = "hyper-tls" ++version = "0.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" ++dependencies = [ ++ "bytes 0.5.6", ++ "hyper", ++ "native-tls", ++ "tokio", ++ "tokio-tls", ++] ++ ++[[package]] ++name = "idna" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" ++dependencies = [ ++ "matches", ++ "unicode-bidi", ++ "unicode-normalization", ++] ++ ++[[package]] ++name = "indexmap" ++version = "1.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" ++dependencies = [ ++ "autocfg", ++ "hashbrown", ++] ++ ++[[package]] ++name = "instant" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "iovec" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "ipconfig" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" ++dependencies = [ ++ "socket2", ++ "widestring", ++ "winapi 0.3.9", ++ "winreg 0.6.2", ++] ++ ++[[package]] ++name = "ipnet" ++version = "2.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" ++ ++[[package]] ++name = "itoa" ++version = "0.4.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" ++ ++[[package]] ++name = "js-sys" ++version = "0.3.47" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65" ++dependencies = [ ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "kernel32-sys" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++dependencies = [ ++ "winapi 0.2.8", ++ "winapi-build", ++] ++ ++[[package]] ++name = "language-tags" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++ ++[[package]] ++name = "libc" ++version = "0.2.82" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" ++ ++[[package]] ++name = "linked-hash-map" ++version = "0.5.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" ++ ++[[package]] ++name = "lock_api" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" ++dependencies = [ ++ "scopeguard", ++] ++ ++[[package]] ++name = "log" ++version = "0.4.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "lru-cache" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" ++dependencies = [ ++ "linked-hash-map", ++] ++ ++[[package]] ++name = "match_cfg" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" ++ ++[[package]] ++name = "matches" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" ++ ++[[package]] ++name = "memchr" ++version = "2.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" ++ ++[[package]] ++name = "mime" ++version = "0.3.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" ++ ++[[package]] ++name = "mime_guess" ++version = "2.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" ++dependencies = [ ++ "mime", ++ "unicase", ++] ++ ++[[package]] ++name = "miniz_oxide" ++version = "0.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" ++dependencies = [ ++ "adler", ++ "autocfg", ++] ++ ++[[package]] ++name = "mio" ++version = "0.6.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" ++dependencies = [ ++ "cfg-if 0.1.10", ++ "fuchsia-zircon", ++ "fuchsia-zircon-sys", ++ "iovec", ++ "kernel32-sys", ++ "libc", ++ "log", ++ "miow", ++ "net2", ++ "slab", ++ "winapi 0.2.8", ++] ++ ++[[package]] ++name = "mio-uds" ++version = "0.6.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" ++dependencies = [ ++ "iovec", ++ "libc", ++ "mio", ++] ++ ++[[package]] ++name = "miow" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" ++dependencies = [ ++ "kernel32-sys", ++ "net2", ++ "winapi 0.2.8", ++ "ws2_32-sys", ++] ++ ++[[package]] ++name = "native-tls" ++version = "0.2.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" ++dependencies = [ ++ "lazy_static", ++ "libc", ++ "log", ++ "openssl", ++ "openssl-probe", ++ "openssl-sys", ++ "schannel", ++ "security-framework", ++ "security-framework-sys", ++ "tempfile", ++] ++ ++[[package]] ++name = "net2" ++version = "0.2.37" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" ++dependencies = [ ++ "cfg-if 0.1.10", ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "num_cpus" ++version = "1.13.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" ++dependencies = [ ++ "hermit-abi", ++ "libc", ++] ++ ++[[package]] ++name = "object" ++version = "0.23.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" ++ ++[[package]] ++name = "once_cell" ++version = "1.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" ++ ++[[package]] ++name = "opaque-debug" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" ++ ++[[package]] ++name = "openssl" ++version = "0.10.32" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70" ++dependencies = [ ++ "bitflags", ++ "cfg-if 1.0.0", ++ "foreign-types", ++ "lazy_static", ++ "libc", ++ "openssl-sys", ++] ++ ++[[package]] ++name = "openssl-probe" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" ++ ++[[package]] ++name = "openssl-sys" ++version = "0.9.60" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6" ++dependencies = [ ++ "autocfg", ++ "cc", ++ "libc", ++ "pkg-config", ++ "vcpkg", ++] ++ ++[[package]] ++name = "parking_lot" ++version = "0.11.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" ++dependencies = [ ++ "instant", ++ "lock_api", ++ "parking_lot_core", ++] ++ ++[[package]] ++name = "parking_lot_core" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "instant", ++ "libc", ++ "redox_syscall 0.1.57", ++ "smallvec", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "percent-encoding" ++version = "2.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" ++ ++[[package]] ++name = "pin-project" ++version = "0.4.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" ++dependencies = [ ++ "pin-project-internal 0.4.27", ++] ++ ++[[package]] ++name = "pin-project" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" ++dependencies = [ ++ "pin-project-internal 1.0.4", ++] ++ ++[[package]] ++name = "pin-project-internal" ++version = "0.4.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "pin-project-internal" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "pin-project-lite" ++version = "0.1.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" ++ ++[[package]] ++name = "pin-project-lite" ++version = "0.2.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" ++ ++[[package]] ++name = "pin-utils" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" ++ ++[[package]] ++name = "proc-macro-hack" ++version = "0.5.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" ++ ++[[package]] ++name = "proc-macro-nested" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" ++dependencies = [ ++ "unicode-xid", ++] ++ ++[[package]] ++name = "quick-error" ++version = "1.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" ++ ++[[package]] ++name = "quote" ++version = "1.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" ++dependencies = [ ++ "proc-macro2", ++] ++ ++[[package]] ++name = "rand" ++version = "0.7.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" ++dependencies = [ ++ "getrandom 0.1.16", ++ "libc", ++ "rand_chacha 0.2.2", ++ "rand_core 0.5.1", ++ "rand_hc 0.2.0", ++] ++ ++[[package]] ++name = "rand" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" ++dependencies = [ ++ "libc", ++ "rand_chacha 0.3.0", ++ "rand_core 0.6.1", ++ "rand_hc 0.3.0", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" ++dependencies = [ ++ "ppv-lite86", ++ "rand_core 0.5.1", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" ++dependencies = [ ++ "ppv-lite86", ++ "rand_core 0.6.1", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" ++dependencies = [ ++ "getrandom 0.1.16", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" ++dependencies = [ ++ "getrandom 0.2.2", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" ++dependencies = [ ++ "rand_core 0.5.1", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" ++dependencies = [ ++ "rand_core 0.6.1", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.1.57" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" ++ ++[[package]] ++name = "redox_syscall" ++version = "0.2.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570" ++dependencies = [ ++ "bitflags", ++] ++ ++[[package]] ++name = "regex" ++version = "1.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" ++dependencies = [ ++ "aho-corasick", ++ "memchr", ++ "regex-syntax", ++ "thread_local", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.22" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" ++ ++[[package]] ++name = "remove_dir_all" ++version = "0.5.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "reqwest" ++version = "0.10.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" ++dependencies = [ ++ "base64", ++ "bytes 0.5.6", ++ "encoding_rs", ++ "futures-core", ++ "futures-util", ++ "http", ++ "http-body", ++ "hyper", ++ "hyper-tls", ++ "ipnet", ++ "js-sys", ++ "lazy_static", ++ "log", ++ "mime", ++ "mime_guess", ++ "native-tls", ++ "percent-encoding", ++ "pin-project-lite 0.2.4", ++ "serde", ++ "serde_urlencoded", ++ "tokio", ++ "tokio-tls", ++ "url", ++ "wasm-bindgen", ++ "wasm-bindgen-futures", ++ "web-sys", ++ "winreg 0.7.0", ++] ++ ++[[package]] ++name = "resolv-conf" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" ++dependencies = [ ++ "hostname", ++ "quick-error", ++] ++ ++[[package]] ++name = "rustc-demangle" ++version = "0.1.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" ++ ++[[package]] ++name = "rustc_version" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" ++dependencies = [ ++ "semver", ++] ++ ++[[package]] ++name = "ryu" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" ++ ++[[package]] ++name = "schannel" ++version = "0.1.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" ++dependencies = [ ++ "lazy_static", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "scopeguard" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" ++ ++[[package]] ++name = "security-framework" ++version = "2.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" ++dependencies = [ ++ "bitflags", ++ "core-foundation", ++ "core-foundation-sys", ++ "libc", ++ "security-framework-sys", ++] ++ ++[[package]] ++name = "security-framework-sys" ++version = "2.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" ++dependencies = [ ++ "core-foundation-sys", ++ "libc", ++] ++ ++[[package]] ++name = "semver" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" ++dependencies = [ ++ "semver-parser", ++] ++ ++[[package]] ++name = "semver-parser" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" ++ ++[[package]] ++name = "serde" ++version = "1.0.123" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" ++dependencies = [ ++ "serde_derive", ++] ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.123" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "serde_json" ++version = "1.0.61" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" ++dependencies = [ ++ "itoa", ++ "ryu", ++ "serde", ++] ++ ++[[package]] ++name = "serde_urlencoded" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" ++dependencies = [ ++ "form_urlencoded", ++ "itoa", ++ "ryu", ++ "serde", ++] ++ ++[[package]] ++name = "sha-1" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" ++dependencies = [ ++ "block-buffer", ++ "cfg-if 1.0.0", ++ "cpuid-bool", ++ "digest", ++ "opaque-debug", ++] ++ ++[[package]] ++name = "sha1" ++version = "0.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" ++ ++[[package]] ++name = "signal-hook-registry" ++version = "1.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "slab" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" ++ ++[[package]] ++name = "smallvec" ++version = "1.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" ++ ++[[package]] ++name = "socket2" ++version = "0.3.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "standback" ++version = "0.2.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c66a8cff4fa24853fdf6b51f75c6d7f8206d7c75cab4e467bcd7f25c2b1febe0" ++dependencies = [ ++ "version_check", ++] ++ ++[[package]] ++name = "stdweb" ++version = "0.4.20" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" ++dependencies = [ ++ "discard", ++ "rustc_version", ++ "stdweb-derive", ++ "stdweb-internal-macros", ++ "stdweb-internal-runtime", ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "stdweb-derive" ++version = "0.5.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "serde", ++ "serde_derive", ++ "syn", ++] ++ ++[[package]] ++name = "stdweb-internal-macros" ++version = "0.2.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" ++dependencies = [ ++ "base-x", ++ "proc-macro2", ++ "quote", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "sha1", ++ "syn", ++] ++ ++[[package]] ++name = "stdweb-internal-runtime" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" ++ ++[[package]] ++name = "strsim" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" ++ ++[[package]] ++name = "syn" ++version = "1.0.60" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-xid", ++] ++ ++[[package]] ++name = "tempfile" ++version = "3.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "rand 0.8.3", ++ "redox_syscall 0.2.4", ++ "remove_dir_all", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "textwrap" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" ++dependencies = [ ++ "unicode-width", ++] ++ ++[[package]] ++name = "thiserror" ++version = "1.0.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" ++dependencies = [ ++ "thiserror-impl", ++] ++ ++[[package]] ++name = "thiserror-impl" ++version = "1.0.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "thread_local" ++version = "1.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d8208a331e1cb318dd5bd76951d2b8fc48ca38a69f5f4e4af1b6a9f8c6236915" ++dependencies = [ ++ "once_cell", ++] ++ ++[[package]] ++name = "threadpool" ++version = "1.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" ++dependencies = [ ++ "num_cpus", ++] ++ ++[[package]] ++name = "time" ++version = "0.2.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1195b046942c221454c2539395f85413b33383a067449d78aab2b7b052a142f7" ++dependencies = [ ++ "const_fn", ++ "libc", ++ "standback", ++ "stdweb", ++ "time-macros", ++ "version_check", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "time-macros" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" ++dependencies = [ ++ "proc-macro-hack", ++ "time-macros-impl", ++] ++ ++[[package]] ++name = "time-macros-impl" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" ++dependencies = [ ++ "proc-macro-hack", ++ "proc-macro2", ++ "quote", ++ "standback", ++ "syn", ++] ++ ++[[package]] ++name = "tinyvec" ++version = "1.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" ++dependencies = [ ++ "tinyvec_macros", ++] ++ ++[[package]] ++name = "tinyvec_macros" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" ++ ++[[package]] ++name = "tokio" ++version = "0.2.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" ++dependencies = [ ++ "bytes 0.5.6", ++ "fnv", ++ "futures-core", ++ "iovec", ++ "lazy_static", ++ "libc", ++ "memchr", ++ "mio", ++ "mio-uds", ++ "pin-project-lite 0.1.11", ++ "signal-hook-registry", ++ "slab", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "tokio-tls" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" ++dependencies = [ ++ "native-tls", ++ "tokio", ++] ++ ++[[package]] ++name = "tokio-util" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" ++dependencies = [ ++ "bytes 0.5.6", ++ "futures-core", ++ "futures-sink", ++ "log", ++ "pin-project-lite 0.1.11", ++ "tokio", ++] ++ ++[[package]] ++name = "toml" ++version = "0.5.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "tower-service" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" ++ ++[[package]] ++name = "tracing" ++version = "0.1.22" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "log", ++ "pin-project-lite 0.2.4", ++ "tracing-core", ++] ++ ++[[package]] ++name = "tracing-core" ++version = "0.1.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" ++dependencies = [ ++ "lazy_static", ++] ++ ++[[package]] ++name = "tracing-futures" ++version = "0.2.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" ++dependencies = [ ++ "pin-project 0.4.27", ++ "tracing", ++] ++ ++[[package]] ++name = "trust-dns-proto" ++version = "0.19.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b" ++dependencies = [ ++ "async-trait", ++ "backtrace", ++ "enum-as-inner", ++ "futures", ++ "idna", ++ "lazy_static", ++ "log", ++ "rand 0.7.3", ++ "smallvec", ++ "thiserror", ++ "tokio", ++ "url", ++] ++ ++[[package]] ++name = "trust-dns-resolver" ++version = "0.19.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e" ++dependencies = [ ++ "backtrace", ++ "cfg-if 0.1.10", ++ "futures", ++ "ipconfig", ++ "lazy_static", ++ "log", ++ "lru-cache", ++ "resolv-conf", ++ "smallvec", ++ "thiserror", ++ "tokio", ++ "trust-dns-proto", ++] ++ ++[[package]] ++name = "try-lock" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" ++ ++[[package]] ++name = "twoway" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc" ++dependencies = [ ++ "memchr", ++ "unchecked-index", ++] ++ ++[[package]] ++name = "typenum" ++version = "1.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" ++ ++[[package]] ++name = "unchecked-index" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c" ++ ++[[package]] ++name = "unicase" ++version = "2.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" ++dependencies = [ ++ "version_check", ++] ++ ++[[package]] ++name = "unicode-bidi" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" ++dependencies = [ ++ "matches", ++] ++ ++[[package]] ++name = "unicode-normalization" ++version = "0.1.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" ++dependencies = [ ++ "tinyvec", ++] ++ ++[[package]] ++name = "unicode-segmentation" ++version = "1.7.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" ++ ++[[package]] ++name = "url" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" ++dependencies = [ ++ "form_urlencoded", ++ "idna", ++ "matches", ++ "percent-encoding", ++] ++ ++[[package]] ++name = "vcpkg" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" ++ ++[[package]] ++name = "vec_map" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" ++ ++[[package]] ++name = "version_check" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" ++ ++[[package]] ++name = "want" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" ++dependencies = [ ++ "log", ++ "try-lock", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.9.0+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" ++ ++[[package]] ++name = "wasi" ++version = "0.10.1+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" ++ ++[[package]] ++name = "wasm-bindgen" ++version = "0.2.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "serde", ++ "serde_json", ++ "wasm-bindgen-macro", ++] ++ ++[[package]] ++name = "wasm-bindgen-backend" ++version = "0.2.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7" ++dependencies = [ ++ "bumpalo", ++ "lazy_static", ++ "log", ++ "proc-macro2", ++ "quote", ++ "syn", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-futures" ++version = "0.4.20" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "js-sys", ++ "wasm-bindgen", ++ "web-sys", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro" ++version = "0.2.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" ++dependencies = [ ++ "quote", ++ "wasm-bindgen-macro-support", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro-support" ++version = "0.2.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++ "wasm-bindgen-backend", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-shared" ++version = "0.2.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64" ++ ++[[package]] ++name = "web-sys" ++version = "0.3.47" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3" ++dependencies = [ ++ "js-sys", ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "widestring" ++version = "0.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" ++ ++[[package]] ++name = "winapi" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" ++ ++[[package]] ++name = "winapi" ++version = "0.3.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", ++] ++ ++[[package]] ++name = "winapi-build" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++ ++[[package]] ++name = "winreg" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "winreg" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "ws2_32-sys" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" ++dependencies = [ ++ "winapi 0.2.8", ++ "winapi-build", ++] +-- +2.30.0 +