Add config, static files and web server

[?]
Feb 17, 2021, 11:43 AM
BCXEUKX6RVE4UQE46ITSQY2NXYK3MJT7HHL7CJOM7T4OOOCADMIAC

Dependencies

Change contents

  • replacement in src/main.rs at line 1
    [2.17][2.18:61]()
    fn main() {
    println!("Hello, world!");
    [2.17]
    [2.61]
    use actix_files::Files;
    use actix_web::{middleware, App, HttpServer};
    mod config;
    use crate::config::Config;
    #[actix_web::main]
    async fn main() -> std::io::Result<()> {
    std::env::set_var("RUST_LOG", "actix_web=info");
    env_logger::init();
    let args = clap::App::new("FreeOrion Test Web")
    .version("0.1.0")
    .author("O01eg <o01eg@yandex.ru>")
    .arg(
    clap::Arg::with_name("config")
    .short("c")
    .long("config")
    .value_name("CONFIG")
    .help("File with configuration")
    .takes_value(true),
    )
    .get_matches();
    let config = Config::read(args.value_of("config").expect("Mandatory option config"))?;
    let Config { http, public } = config;
    HttpServer::new(move || {
    App::new()
    // Enable the logger.
    .wrap(middleware::Logger::default())
    // Serve a tree of static files at the web root and specify the index file.
    // Note that the root path should always be defined as the last item. The paths are
    // resolved in the order they are defined. If this would be placed before the `/images`
    // path then the service for the static images would never be reached.
    .service(Files::new("/", &public).index_file("index.html"))
    })
    .bind(http)?
    .run()
    .await
  • file addition: config.rs (-xw-x--x--)
    [2.6]
    use std::fs::File;
    use std::io;
    use std::path::Path;
    use serde_derive::Deserialize;
    #[derive(Debug, Deserialize)]
    pub struct Config {
    pub http: std::net::SocketAddr,
    pub public: std::path::PathBuf,
    }
    impl Config {
    pub fn read<P: AsRef<Path>>(path: P) -> io::Result<Self> {
    use std::io::Read;
    let mut f = File::open(path)?;
    let mut buffer = String::new();
    f.read_to_string(&mut buffer)?;
    Ok(toml::from_str(&buffer)?)
    }
    }
  • file addition: public (dxwrx-rx-r)
    [1.0]
  • file addition: valid-rss-rogers.png (-xw-x--x--)
    [0.1901]
  • file addition: index.html (-xw-x--x--)
    [0.1901]
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="alternate" type="application/rss+xml" href="rss.xml" title="Multiplayer FreeOrion server news" />
    <title>Welcome to public multiplayer FreeOrion server!</title>
    <style>
    body {
    width: 40em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
    }
    </style>
    </head>
    <body>
    <h1>Welcome to FreeOrion!</h1>
    <p>There is a first public multiplayer FreeOrion server!</p>
    <p>Join to <b>freeorion-test.dedyn.io</b> at default port and wait for the other players to play.</p>
    <p>Server updates to the latest stable version. Current version: <b>0.4.10.1</b>.<br/>
    Subscribe to <a href="rss.xml">RSS</a> <a href="http://www.feedvalidator.org/check.cgi?url=https%3A//freeorion-test.dedyn.io/rss.xml"><img src="valid-rss-rogers.png" alt="[Valid RSS]" title="Validate my RSS feed" /></a> to get updates.
    <ul>
    <li>There are should be at least 2 human players to start the game.
    <li>4 AI allowed.
    <li>Sends notification about entered player, notifications about started game, and chat messages to <a href="xmpp:freeorion@conference.bitcheese.net?join">FreeOrion jabber conference (freeorion@conference.bitcheese.net)</a>.
    <li>Only Player client type allowed.
    <li>Autosaves are saved to folders based on Game UID.
    <li>Network messages restricted by size 10 MiB.
    <li>By default Random species are selected.
    <li>Cookies are alive 2 hours.
    <li>AIs re-populate lobby from save game.
    <li>Empire statistics disabled.
    <li>Introduced in-game lobby for non-participant of current playing game.
    <li>Chat history shows 500 latest messages.
    <li>The server doesn't disclosure information about other empire's research and production. Player could only see other empires research if he researched it as well.
    <li>The server disallows to take over eliminated empire.
    <li>User authentication with OTP via XMPP (no registration yet).</ul></p>
    <p>Rules changes:
    <ul>
    <li>Super Tester disabled.
    <li>Latest alive human player wins game.
    <li>Any player is allowed to concede.
    </ul>
    </p>
    <p>You can get the game here
    <a href="http://freeorion.org/">http://freeorion.org/</a>.<br/>
    Information, updates and support for this server
    <a href="http://freeorion.org/forum/viewtopic.php?f=2&t=10706">http://freeorion.org/forum/viewtopic.php?f=2&t=10706</a>.
    </p>
    <p><em>Thank you for playing FreeOrion with us.</em><br/>
    <em>Donates are welcome <u>BTC: 14XLekD9ifwqLtZX4iteepvbLQNYVG87zK</u></em></p>
    <p><em>or via Clanpay <a href="https://evolution-host.com/clanpay.php">https://evolution-host.com/clanpay.php</a><br/></em>
    <strong>Client username:</strong><u>O01eg</u></p>
    </p>
    </body>
    </html>
  • edit in Cargo.toml at line 6
    [2.189][2.189:287]()
    # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  • edit in Cargo.toml at line 8
    [2.303]
    clap = "2.33.3"
    serde = "1.0"
    serde_derive = "1.0"
    toml = "0.5"
    actix-web = "4.0.0-beta.3"
    actix-files = "0.6.0-beta.2"
    env_logger = "0.8"
  • file addition: Cargo.lock (-xw-x--x--)
    [1.0]
    # This file is automatically @generated by Cargo.
    # It is not intended for manual editing.
    [[package]]
    name = "actix-codec"
    version = "0.4.0-beta.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "90673465c6187bd0829116b02be465dc0195a74d7719f76ffff0effef934a92e"
    dependencies = [
    "bitflags",
    "bytes",
    "futures-core",
    "futures-sink",
    "log",
    "pin-project-lite",
    "tokio",
    "tokio-util",
    ]
    [[package]]
    name = "actix-files"
    version = "0.6.0-beta.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "4ccb1b8bc3f0cc933d551c34f7484d3c7af9733aacb5f3c28f3998f058959f3a"
    dependencies = [
    "actix-service",
    "actix-web",
    "askama_escape",
    "bitflags",
    "bytes",
    "derive_more",
    "futures-core",
    "futures-util",
    "log",
    "mime",
    "mime_guess",
    "percent-encoding",
    ]
    [[package]]
    name = "actix-http"
    version = "3.0.0-beta.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8a12706e793a92377f85cec219514b72625b3b89f9b4912d8bfb53ab6a615bf0"
    dependencies = [
    "actix-codec",
    "actix-rt",
    "actix-service",
    "actix-tls",
    "actix-utils",
    "ahash",
    "base64",
    "bitflags",
    "brotli2",
    "bytes",
    "bytestring",
    "cookie",
    "derive_more",
    "encoding_rs",
    "flate2",
    "futures-channel",
    "futures-core",
    "futures-util",
    "h2",
    "http",
    "httparse",
    "indexmap",
    "itoa",
    "language-tags",
    "lazy_static",
    "log",
    "mime",
    "percent-encoding",
    "pin-project",
    "rand",
    "regex",
    "serde",
    "serde_json",
    "serde_urlencoded",
    "sha-1",
    "slab",
    "smallvec",
    "time",
    ]
    [[package]]
    name = "actix-macros"
    version = "0.2.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "dbcb2b608f0accc2f5bcf3dd872194ce13d94ee45b571487035864cf966b04ef"
    dependencies = [
    "quote",
    "syn",
    ]
    [[package]]
    name = "actix-router"
    version = "0.2.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c"
    dependencies = [
    "bytestring",
    "http",
    "log",
    "regex",
    "serde",
    ]
    [[package]]
    name = "actix-rt"
    version = "2.0.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c88cf46527e27f66efcd5831f60b3d9c2dac795b6d255ed17791752d6c36a8ea"
    dependencies = [
    "actix-macros",
    "futures-core",
    "tokio",
    ]
    [[package]]
    name = "actix-server"
    version = "2.0.0-beta.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a99198727204a48f82559c18e4b0ba3197b97d5f4576a32bdbef371f3b4599c1"
    dependencies = [
    "actix-codec",
    "actix-rt",
    "actix-service",
    "actix-utils",
    "futures-core",
    "log",
    "mio",
    "num_cpus",
    "slab",
    "tokio",
    ]
    [[package]]
    name = "actix-service"
    version = "2.0.0-beta.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ca9756f4d32984ac454ae3155a276f6be69b424197bd3f0ca3c87cde72f41d63"
    dependencies = [
    "futures-core",
    "pin-project-lite",
    ]
    [[package]]
    name = "actix-tls"
    version = "3.0.0-beta.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "322b22e9238d065f331af0585089de8c36978fcc56f888054add4e4365b9916b"
    dependencies = [
    "actix-codec",
    "actix-rt",
    "actix-service",
    "actix-utils",
    "derive_more",
    "futures-core",
    "http",
    "log",
    "tokio-util",
    ]
    [[package]]
    name = "actix-utils"
    version = "3.0.0-beta.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "458795e09a29bc5557604f9ff6f32236fd0ee457d631672e4ec8f6a0103bb292"
    dependencies = [
    "actix-codec",
    "actix-rt",
    "actix-service",
    "futures-core",
    "futures-sink",
    "log",
    "pin-project-lite",
    ]
    [[package]]
    name = "actix-web"
    version = "4.0.0-beta.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "bc9683dc8c3037ea524e0fec6032d34e1cb1ee72c4eb8689f428a60c2a544ea3"
    dependencies = [
    "actix-codec",
    "actix-http",
    "actix-macros",
    "actix-router",
    "actix-rt",
    "actix-server",
    "actix-service",
    "actix-utils",
    "actix-web-codegen",
    "ahash",
    "awc",
    "bytes",
    "derive_more",
    "either",
    "encoding_rs",
    "futures-core",
    "futures-util",
    "log",
    "mime",
    "pin-project",
    "regex",
    "serde",
    "serde_json",
    "serde_urlencoded",
    "smallvec",
    "socket2",
    "time",
    "url",
    ]
    [[package]]
    name = "actix-web-codegen"
    version = "0.5.0-beta.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8313dc4cbcae1785a7f14c3dfb7dfeb25fe96a03b20e5c38fe026786def5aa70"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    ]
    [[package]]
    name = "adler"
    version = "0.2.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
    [[package]]
    name = "ahash"
    version = "0.7.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "efa60d2eadd8b12a996add391db32bd1153eac697ba4869660c0016353611426"
    dependencies = [
    "getrandom",
    "once_cell",
    "version_check",
    ]
    [[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",
    ]
    [[package]]
    name = "askama_escape"
    version = "0.10.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
    [[package]]
    name = "atty"
    version = "0.2.14"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
    dependencies = [
    "hermit-abi",
    "libc",
    "winapi",
    ]
    [[package]]
    name = "autocfg"
    version = "1.0.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
    [[package]]
    name = "awc"
    version = "3.0.0-beta.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "da7225ad81fbad09ef56ccc61e0688abe8494a68722c5d0df5e2fc8b724a200b"
    dependencies = [
    "actix-codec",
    "actix-http",
    "actix-rt",
    "actix-service",
    "base64",
    "bytes",
    "cfg-if",
    "derive_more",
    "futures-core",
    "log",
    "mime",
    "percent-encoding",
    "rand",
    "serde",
    "serde_json",
    "serde_urlencoded",
    ]
    [[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.6.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9"
    [[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",
    ]
    [[package]]
    name = "cc"
    version = "1.0.66"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
    [[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 = "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",
    ]
    [[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.28"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
    dependencies = [
    "cfg-if",
    ]
    [[package]]
    name = "env_logger"
    version = "0.8.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
    dependencies = [
    "atty",
    "humantime",
    "log",
    "regex",
    "termcolor",
    ]
    [[package]]
    name = "flate2"
    version = "1.0.20"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
    dependencies = [
    "cfg-if",
    "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 = "form_urlencoded"
    version = "1.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
    dependencies = [
    "matches",
    "percent-encoding",
    ]
    [[package]]
    name = "freeorion-test-web"
    version = "0.1.0"
    dependencies = [
    "actix-files",
    "actix-web",
    "clap",
    "env_logger",
    "serde",
    "serde_derive",
    "toml",
    ]
    [[package]]
    name = "futures-channel"
    version = "0.3.12"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846"
    dependencies = [
    "futures-core",
    ]
    [[package]]
    name = "futures-core"
    version = "0.3.12"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65"
    [[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"
    [[package]]
    name = "futures-util"
    version = "0.3.12"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b"
    dependencies = [
    "futures-core",
    "futures-sink",
    "futures-task",
    "pin-project-lite",
    "pin-utils",
    ]
    [[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.2.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
    dependencies = [
    "cfg-if",
    "libc",
    "wasi",
    ]
    [[package]]
    name = "h2"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "6b67e66362108efccd8ac053abafc8b7a8d86a37e6e48fc4f6f7485eb5e9e6a5"
    dependencies = [
    "bytes",
    "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 = "hermit-abi"
    version = "0.1.18"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
    dependencies = [
    "libc",
    ]
    [[package]]
    name = "http"
    version = "0.2.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
    dependencies = [
    "bytes",
    "fnv",
    "itoa",
    ]
    [[package]]
    name = "httparse"
    version = "1.3.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
    [[package]]
    name = "humantime"
    version = "2.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
    [[package]]
    name = "idna"
    version = "0.2.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "de910d521f7cc3135c4de8db1cb910e0b5ed1dc6f57c381cd07e8e661ce10094"
    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",
    ]
    [[package]]
    name = "itoa"
    version = "0.4.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
    [[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.86"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
    [[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",
    ]
    [[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.7.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7"
    dependencies = [
    "libc",
    "log",
    "miow",
    "ntapi",
    "winapi",
    ]
    [[package]]
    name = "miow"
    version = "0.3.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
    dependencies = [
    "socket2",
    "winapi",
    ]
    [[package]]
    name = "ntapi"
    version = "0.3.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
    dependencies = [
    "winapi",
    ]
    [[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 = "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 = "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.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
    dependencies = [
    "cfg-if",
    "instant",
    "libc",
    "redox_syscall",
    "smallvec",
    "winapi",
    ]
    [[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 = "1.0.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63"
    dependencies = [
    "pin-project-internal",
    ]
    [[package]]
    name = "pin-project-internal"
    version = "1.0.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    ]
    [[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 = "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-macro2"
    version = "1.0.24"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
    dependencies = [
    "unicode-xid",
    ]
    [[package]]
    name = "quote"
    version = "1.0.9"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
    dependencies = [
    "proc-macro2",
    ]
    [[package]]
    name = "rand"
    version = "0.8.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
    dependencies = [
    "libc",
    "rand_chacha",
    "rand_core",
    "rand_hc",
    ]
    [[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",
    ]
    [[package]]
    name = "rand_core"
    version = "0.6.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
    dependencies = [
    "getrandom",
    ]
    [[package]]
    name = "rand_hc"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
    dependencies = [
    "rand_core",
    ]
    [[package]]
    name = "redox_syscall"
    version = "0.2.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
    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 = "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 = "scopeguard"
    version = "1.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
    [[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.62"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
    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.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f"
    dependencies = [
    "block-buffer",
    "cfg-if",
    "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",
    "libc",
    "winapi",
    ]
    [[package]]
    name = "standback"
    version = "0.2.15"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a2beb4d1860a61f571530b3f855a1b538d0200f7871c63331ecd6f17b1f014f8"
    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 = "termcolor"
    version = "1.1.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
    dependencies = [
    "winapi-util",
    ]
    [[package]]
    name = "textwrap"
    version = "0.11.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
    dependencies = [
    "unicode-width",
    ]
    [[package]]
    name = "thread_local"
    version = "1.1.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
    dependencies = [
    "once_cell",
    ]
    [[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",
    ]
    [[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 = "1.2.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e8190d04c665ea9e6b6a0dc45523ade572c088d2e6566244c1122671dbf4ae3a"
    dependencies = [
    "autocfg",
    "bytes",
    "libc",
    "memchr",
    "mio",
    "once_cell",
    "parking_lot",
    "pin-project-lite",
    "signal-hook-registry",
    "winapi",
    ]
    [[package]]
    name = "tokio-util"
    version = "0.6.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ebb7cb2f00c5ae8df755b252306272cd1790d39728363936e01827e11f0b017b"
    dependencies = [
    "bytes",
    "futures-core",
    "futures-sink",
    "log",
    "pin-project-lite",
    "tokio",
    ]
    [[package]]
    name = "toml"
    version = "0.5.8"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
    dependencies = [
    "serde",
    ]
    [[package]]
    name = "tracing"
    version = "0.1.23"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f7d40a22fd029e33300d8d89a5cc8ffce18bb7c587662f54629e94c9de5487f3"
    dependencies = [
    "cfg-if",
    "pin-project-lite",
    "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.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
    dependencies = [
    "pin-project",
    "tracing",
    ]
    [[package]]
    name = "typenum"
    version = "1.12.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
    [[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.17"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
    dependencies = [
    "tinyvec",
    ]
    [[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 = "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 = "wasi"
    version = "0.10.2+wasi-snapshot-preview1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
    [[package]]
    name = "wasm-bindgen"
    version = "0.2.70"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
    dependencies = [
    "cfg-if",
    "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-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 = "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-i686-pc-windows-gnu"
    version = "0.4.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
    [[package]]
    name = "winapi-util"
    version = "0.1.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
    dependencies = [
    "winapi",
    ]
    [[package]]
    name = "winapi-x86_64-pc-windows-gnu"
    version = "0.4.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
  • file addition: .ignore (-xw-x--x--)
    [1.0]
    /target