libosu 0.0.28

General-purpose osu! library.
Documentation

# This file was @generated by crate2nix 0.10.0 with the command:
#   "generate"
# See https://github.com/kolloch/crate2nix for more info.

{ nixpkgs ? <nixpkgs>
, pkgs ? import nixpkgs { config = {}; }
, lib ? pkgs.lib
, stdenv ? pkgs.stdenv
, buildRustCrateForPkgs ? if buildRustCrate != null
    then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate)
    else pkgs: pkgs.buildRustCrate
  # Deprecated
, buildRustCrate ? null
  # This is used as the `crateOverrides` argument for `buildRustCrate`.
, defaultCrateOverrides ? pkgs.defaultCrateOverrides
  # The features to enable for the root_crate or the workspace_members.
, rootFeatures ? [ "default" ]
  # If true, throw errors instead of issueing deprecation warnings.
, strictDeprecation ? false
  # Used for conditional compilation based on CPU feature detection.
, targetFeatures ? []
  # Whether to perform release builds: longer compile times, faster binaries.
, release ? true
  # Additional crate2nix configuration if it exists.
, crateConfig
  ? if builtins.pathExists ./crate-config.nix
    then pkgs.callPackage ./crate-config.nix {}
    else {}
}:

rec {
  #
  # "public" attributes that we attempt to keep stable with new versions of crate2nix.
  #

  rootCrate = rec {
    packageId = "libosu";

    # Use this attribute to refer to the derivation building your root crate package.
    # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
    build = internal.buildRustCrateWithFeatures {
      inherit packageId;
    };

    # Debug support which might change between releases.
    # File a bug if you depend on any for non-debug work!
    debug = internal.debugCrate { inherit packageId; };
  };
  # Refer your crate build derivation by name here.
  # You can override the features with
  # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
  workspaceMembers = {
    "libosu" = rec {
      packageId = "libosu";
      build = internal.buildRustCrateWithFeatures {
        packageId = "libosu";
      };

      # Debug support which might change between releases.
      # File a bug if you depend on any for non-debug work!
      debug = internal.debugCrate { inherit packageId; };
    };
  };

  # A derivation that joins the outputs of all workspace members together.
  allWorkspaceMembers = pkgs.symlinkJoin {
      name = "all-workspace-members";
      paths =
        let members = builtins.attrValues workspaceMembers;
        in builtins.map (m: m.build) members;
  };

  #
  # "internal" ("private") attributes that may change in every new version of crate2nix.
  #

  internal = rec {
    # Build and dependency information for crates.
    # Many of the fields are passed one-to-one to buildRustCrate.
    #
    # Noteworthy:
    # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate.
    #   but with additional information which is used during dependency/feature resolution.
    # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging.
    # * `devDependencies` as of now not used by `buildRustCrate` but used to
    #   inject test dependencies into the build

    crates = {
      "aho-corasick" = rec {
        crateName = "aho-corasick";
        version = "0.7.18";
        edition = "2018";
        sha256 = "0vv50b3nvkhyy7x7ip19qnsq11bqlnffkmj2yx2xlyk5wzawydqy";
        libName = "aho_corasick";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        dependencies = [
          {
            name = "memchr";
            packageId = "memchr";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "memchr/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "anyhow" = rec {
        crateName = "anyhow";
        version = "1.0.58";
        edition = "2018";
        sha256 = "014pw61axl4idagjdh9x96b06cy12vqs5599mzi11gnd7h2x41xv";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "backtrace" = [ "dep:backtrace" ];
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "autocfg" = rec {
        crateName = "autocfg";
        version = "1.1.0";
        edition = "2015";
        sha256 = "1ylp3cb47ylzabimazvbz9ms6ap784zhb6syaz6c1jqpmcmq0s6l";
        authors = [
          "Josh Stone <cuviper@gmail.com>"
        ];

      };
      "base64" = rec {
        crateName = "base64";
        version = "0.13.0";
        edition = "2018";
        sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch";
        authors = [
          "Alice Maz <alice@alicemaz.com>"
          "Marshall Pierce <marshall@mpierce.org>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bit-set" = rec {
        crateName = "bit-set";
        version = "0.5.3";
        edition = "2015";
        sha256 = "1wcm9vxi00ma4rcxkl3pzzjli6ihrpn9cfdi0c5b4cvga2mxs007";
        authors = [
          "Alexis Beingessner <a.beingessner@gmail.com>"
        ];
        dependencies = [
          {
            name = "bit-vec";
            packageId = "bit-vec";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "bit-vec/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bit-vec" = rec {
        crateName = "bit-vec";
        version = "0.6.3";
        edition = "2015";
        sha256 = "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl";
        authors = [
          "Alexis Beingessner <a.beingessner@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
          "serde_no_std" = [ "serde/alloc" ];
          "serde_std" = [ "std" "serde/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "bitflags" = rec {
        crateName = "bitflags";
        version = "1.3.2";
        edition = "2018";
        sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "build_const" = rec {
        crateName = "build_const";
        version = "0.2.2";
        edition = "2015";
        sha256 = "1dryhsf4vfi1plljgv069sgfr8m1rsg04qy76x36kh6swqsl5bml";
        authors = [
          "Garrett Berg <vitiral@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bumpalo" = rec {
        crateName = "bumpalo";
        version = "3.10.0";
        edition = "2018";
        sha256 = "1qrx6sg13yxljk1yr705j5wg34iiy3531by1hqrpiihl8qhvvk1p";
        authors = [
          "Nick Fitzgerald <fitzgen@gmail.com>"
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "byteorder" = rec {
        crateName = "byteorder";
        version = "1.4.3";
        edition = "2018";
        sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bytes" = rec {
        crateName = "bytes";
        version = "1.2.1";
        edition = "2018";
        sha256 = "1nsni0jbx1048inbrarn3hz6zxd000pp0rac2mr07s7xf1m7p2pc";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "cc" = rec {
        crateName = "cc";
        version = "1.0.73";
        edition = "2018";
        crateBin = [];
        sha256 = "04ccylrjq94jssh8f7d7hxv64gs9f1m1jrsxb7wqgfxk4xljmzrg";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "jobserver" = [ "dep:jobserver" ];
          "parallel" = [ "jobserver" ];
        };
      };
      "cfg-if" = rec {
        crateName = "cfg-if";
        version = "1.0.0";
        edition = "2018";
        sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
      };
      "chrono" = rec {
        crateName = "chrono";
        version = "0.4.19";
        edition = "2015";
        sha256 = "0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7";
        authors = [
          "Kang Seonghoon <public+rust@mearie.org>"
          "Brandon W Maister <quodlibetor@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            optional = true;
          }
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "time";
            packageId = "time";
            optional = true;
          }
          {
            name = "winapi";
            packageId = "winapi";
            optional = true;
            target = { target, features }: (target."windows" or false);
            features = [ "std" "minwinbase" "minwindef" "timezoneapi" ];
          }
        ];
        features = {
          "clock" = [ "libc" "std" "winapi" ];
          "default" = [ "clock" "std" "oldtime" ];
          "js-sys" = [ "dep:js-sys" ];
          "libc" = [ "dep:libc" ];
          "oldtime" = [ "time" ];
          "pure-rust-locales" = [ "dep:pure-rust-locales" ];
          "rustc-serialize" = [ "dep:rustc-serialize" ];
          "serde" = [ "dep:serde" ];
          "time" = [ "dep:time" ];
          "unstable-locales" = [ "pure-rust-locales" "alloc" ];
          "wasm-bindgen" = [ "dep:wasm-bindgen" ];
          "wasmbind" = [ "wasm-bindgen" "js-sys" ];
          "winapi" = [ "dep:winapi" ];
        };
        resolvedDefaultFeatures = [ "clock" "default" "libc" "oldtime" "serde" "std" "time" "winapi" ];
      };
      "convert_case" = rec {
        crateName = "convert_case";
        version = "0.4.0";
        edition = "2018";
        sha256 = "03jaf1wrsyqzcaah9jf8l1iznvdw5mlsca2qghhzr9w27sddaib2";
        authors = [
          "David Purdum <purdum41@gmail.com>"
        ];
        features = {
          "rand" = [ "dep:rand" ];
          "random" = [ "rand" ];
        };
      };
      "crc" = rec {
        crateName = "crc";
        version = "1.8.1";
        edition = "2015";
        sha256 = "1sqal6gm6lbj7f45iv3rw2s9w3pvvha8v970y51s7k7mwy6m8qyn";
        authors = [
          "Rui Hu <code@mrhooray.com>"
        ];
        buildDependencies = [
          {
            name = "build_const";
            packageId = "build_const";
          }
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "derive_more" = rec {
        crateName = "derive_more";
        version = "0.99.17";
        edition = "2018";
        sha256 = "0883jr0gdf9mi8rn7qbz1p0z7hqzfd275pil2gwm66bw1b9i1f2g";
        procMacro = true;
        authors = [
          "Jelte Fennema <github-tech@jeltef.nl>"
        ];
        dependencies = [
          {
            name = "convert_case";
            packageId = "convert_case";
            optional = true;
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
          }
        ];
        buildDependencies = [
          {
            name = "rustc_version";
            packageId = "rustc_version";
            optional = true;
          }
        ];
        features = {
          "convert_case" = [ "dep:convert_case" ];
          "default" = [ "add_assign" "add" "as_mut" "as_ref" "constructor" "deref" "deref_mut" "display" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "iterator" "mul_assign" "mul" "not" "sum" "try_into" "is_variant" "unwrap" ];
          "display" = [ "syn/extra-traits" ];
          "error" = [ "syn/extra-traits" ];
          "from" = [ "syn/extra-traits" ];
          "generate-parsing-rs" = [ "peg" ];
          "into" = [ "syn/extra-traits" ];
          "is_variant" = [ "convert_case" ];
          "mul" = [ "syn/extra-traits" ];
          "mul_assign" = [ "syn/extra-traits" ];
          "not" = [ "syn/extra-traits" ];
          "peg" = [ "dep:peg" ];
          "rustc_version" = [ "dep:rustc_version" ];
          "testing-helpers" = [ "rustc_version" ];
          "try_into" = [ "syn/extra-traits" ];
          "unwrap" = [ "convert_case" "rustc_version" ];
        };
        resolvedDefaultFeatures = [ "add" "add_assign" "as_mut" "as_ref" "constructor" "convert_case" "default" "deref" "deref_mut" "display" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "is_variant" "iterator" "mul" "mul_assign" "not" "rustc_version" "sum" "try_into" "unwrap" ];
      };
      "difference" = rec {
        crateName = "difference";
        version = "2.0.0";
        edition = "2015";
        crateBin = [];
        sha256 = "1621wx4k8h452p6xzmzzvm7mz87kxh4yqz0kzxfjj9xmjxlbyk2j";
        authors = [
          "Johann Hofmann <mail@johann-hofmann.com>"
        ];
        features = {
          "bin" = [ "getopts" ];
          "getopts" = [ "dep:getopts" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "encoding_rs" = rec {
        crateName = "encoding_rs";
        version = "0.8.31";
        edition = "2018";
        sha256 = "0azc6rblf75vd862ymjahdfch27j1sshb7zynshrx7ywi5an6llq";
        authors = [
          "Henri Sivonen <hsivonen@hsivonen.fi>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
        ];
        features = {
          "default" = [ "alloc" ];
          "fast-legacy-encode" = [ "fast-hangul-encode" "fast-hanja-encode" "fast-kanji-encode" "fast-gb-hanzi-encode" "fast-big5-hanzi-encode" ];
          "packed_simd" = [ "dep:packed_simd" ];
          "serde" = [ "dep:serde" ];
          "simd-accel" = [ "packed_simd" "packed_simd/into_bits" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" ];
      };
      "fastrand" = rec {
        crateName = "fastrand";
        version = "1.8.0";
        edition = "2018";
        sha256 = "16b4z2rig7zmyxw1hsiydv89h9wcshilds13dfpc919kmb7hg957";
        authors = [
          "Stjepan Glavina <stjepang@gmail.com>"
        ];
        dependencies = [
          {
            name = "instant";
            packageId = "instant";
            target = { target, features }: (target."arch" == "wasm32");
          }
        ];
        devDependencies = [
          {
            name = "instant";
            packageId = "instant";
            target = {target, features}: (target."arch" == "wasm32");
            features = [ "wasm-bindgen" ];
          }
        ];

      };
      "fnv" = rec {
        crateName = "fnv";
        version = "1.0.7";
        edition = "2015";
        sha256 = "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz";
        libPath = "lib.rs";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "form_urlencoded" = rec {
        crateName = "form_urlencoded";
        version = "1.0.1";
        edition = "2018";
        sha256 = "1491fmakavcmsjbm3q6iy0bhmn9l422jasdhzx5hkljgza3mmhjz";
        authors = [
          "The rust-url developers"
        ];
        dependencies = [
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
          }
        ];

      };
      "futures" = rec {
        crateName = "futures";
        version = "0.3.21";
        edition = "2018";
        sha256 = "17id2zvn2acny759indn6yj2acfa6lhkwzaidxr2pqfiaigycgzp";
        dependencies = [
          {
            name = "futures-channel";
            packageId = "futures-channel";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-executor";
            packageId = "futures-executor";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" "futures-task/alloc" "futures-sink/alloc" "futures-channel/alloc" "futures-util/alloc" ];
          "async-await" = [ "futures-util/async-await" "futures-util/async-await-macro" ];
          "bilock" = [ "futures-util/bilock" ];
          "compat" = [ "std" "futures-util/compat" ];
          "default" = [ "std" "async-await" "executor" ];
          "executor" = [ "std" "futures-executor/std" ];
          "futures-executor" = [ "dep:futures-executor" ];
          "io-compat" = [ "compat" "futures-util/io-compat" ];
          "std" = [ "alloc" "futures-core/std" "futures-task/std" "futures-io/std" "futures-sink/std" "futures-util/std" "futures-util/io" "futures-util/channel" ];
          "thread-pool" = [ "executor" "futures-executor/thread-pool" ];
          "unstable" = [ "futures-core/unstable" "futures-task/unstable" "futures-channel/unstable" "futures-io/unstable" "futures-util/unstable" ];
          "write-all-vectored" = [ "futures-util/write-all-vectored" ];
        };
        resolvedDefaultFeatures = [ "alloc" "async-await" "default" "executor" "futures-executor" "std" ];
      };
      "futures-channel" = rec {
        crateName = "futures-channel";
        version = "0.3.21";
        edition = "2018";
        sha256 = "0420lz2fmxa356ax1rp2sqi7b27ykfhvq4w9f1sla4hlp7j3q263";
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" ];
          "default" = [ "std" ];
          "futures-sink" = [ "dep:futures-sink" ];
          "sink" = [ "futures-sink" ];
          "std" = [ "alloc" "futures-core/std" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "futures-sink" "sink" "std" ];
      };
      "futures-core" = rec {
        crateName = "futures-core";
        version = "0.3.21";
        edition = "2018";
        sha256 = "1lqhc6mqklh5bmkpr77p42lqwjj8gaskk5ba2p3kl1z4nw2gs28c";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-executor" = rec {
        crateName = "futures-executor";
        version = "0.3.21";
        edition = "2018";
        sha256 = "19mq96kwgf06axgdc2fbrjhqzdnxww9vw6cz8b82gqr9z86bj84l";
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "num_cpus" = [ "dep:num_cpus" ];
          "std" = [ "futures-core/std" "futures-task/std" "futures-util/std" ];
          "thread-pool" = [ "std" "num_cpus" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-io" = rec {
        crateName = "futures-io";
        version = "0.3.21";
        edition = "2018";
        sha256 = "0swn29fysas36ikk5aw55104fi98117amvgxw9g96pjs5ab4ah7w";
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-macro" = rec {
        crateName = "futures-macro";
        version = "0.3.21";
        edition = "2018";
        sha256 = "04pmj5xfk5rdhlj69wc7w3zvdg3xardg8srig96lszrk00wf3h9k";
        procMacro = true;
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
            features = [ "full" ];
          }
        ];

      };
      "futures-sink" = rec {
        crateName = "futures-sink";
        version = "0.3.21";
        edition = "2018";
        sha256 = "0s58gx5yw1a21xviw2qgc0wzk225vgn4kbzddrp141m3kw9kw5i1";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-task" = rec {
        crateName = "futures-task";
        version = "0.3.21";
        edition = "2018";
        sha256 = "0skpiz2ljisywajv79p70yapfwhkqhb39wxy3f09v47mdfbnmijp";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "std" ];
      };
      "futures-util" = rec {
        crateName = "futures-util";
        version = "0.3.21";
        edition = "2018";
        sha256 = "0sh3wqi8p36csjffy0irq8nlx9shqxp7z4dsih6bknarsvaspdyq";
        dependencies = [
          {
            name = "futures-channel";
            packageId = "futures-channel";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-macro";
            packageId = "futures-macro";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "pin-utils";
            packageId = "pin-utils";
          }
          {
            name = "slab";
            packageId = "slab";
            optional = true;
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" "futures-task/alloc" ];
          "async-await-macro" = [ "async-await" "futures-macro" ];
          "channel" = [ "std" "futures-channel" ];
          "compat" = [ "std" "futures_01" ];
          "default" = [ "std" "async-await" "async-await-macro" ];
          "futures-channel" = [ "dep:futures-channel" ];
          "futures-io" = [ "dep:futures-io" ];
          "futures-macro" = [ "dep:futures-macro" ];
          "futures-sink" = [ "dep:futures-sink" ];
          "futures_01" = [ "dep:futures_01" ];
          "io" = [ "std" "futures-io" "memchr" ];
          "io-compat" = [ "io" "compat" "tokio-io" ];
          "memchr" = [ "dep:memchr" ];
          "sink" = [ "futures-sink" ];
          "slab" = [ "dep:slab" ];
          "std" = [ "alloc" "futures-core/std" "futures-task/std" "slab" ];
          "tokio-io" = [ "dep:tokio-io" ];
          "unstable" = [ "futures-core/unstable" "futures-task/unstable" ];
          "write-all-vectored" = [ "io" ];
        };
        resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "futures-channel" "futures-io" "futures-macro" "futures-sink" "io" "memchr" "sink" "slab" "std" ];
      };
      "getrandom" = rec {
        crateName = "getrandom";
        version = "0.2.7";
        edition = "2018";
        sha256 = "1ilfnp4yfgb2vjfqwip8l6xfwlbs7dcmmhgnxn8rcqh1lmjaicaf";
        authors = [
          "The Rand Project Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "wasi";
            packageId = "wasi 0.11.0+wasi-snapshot-preview1";
            target = { target, features }: (target."os" == "wasi");
          }
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "js" = [ "wasm-bindgen" "js-sys" ];
          "js-sys" = [ "dep:js-sys" ];
          "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ];
          "wasm-bindgen" = [ "dep:wasm-bindgen" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "h2" = rec {
        crateName = "h2";
        version = "0.3.13";
        edition = "2018";
        sha256 = "0msasdyv0n7avs5i1csjrs0rvdsp4k5z3fwl8rd53jbzcdnjra1p";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "indexmap";
            packageId = "indexmap";
            features = [ "std" ];
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "io-util" ];
          }
          {
            name = "tokio-util";
            packageId = "tokio-util";
            features = [ "codec" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "rt-multi-thread" "macros" "sync" "net" ];
          }
        ];
        features = {
        };
      };
      "hashbrown" = rec {
        crateName = "hashbrown";
        version = "0.12.3";
        edition = "2021";
        sha256 = "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la";
        authors = [
          "Amanieu d'Antras <amanieu@gmail.com>"
        ];
        features = {
          "ahash" = [ "dep:ahash" ];
          "ahash-compile-time-rng" = [ "ahash/compile-time-rng" ];
          "alloc" = [ "dep:alloc" ];
          "bumpalo" = [ "dep:bumpalo" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "ahash" "inline-more" ];
          "rayon" = [ "dep:rayon" ];
          "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "raw" ];
      };
      "http" = rec {
        crateName = "http";
        version = "0.2.8";
        edition = "2018";
        sha256 = "1693pkg43czk26fima0l0l5h2h9rvm8n84pff5zc35b9w90kvx3m";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
        ];

      };
      "http-body" = rec {
        crateName = "http-body";
        version = "0.4.5";
        edition = "2018";
        sha256 = "1l967qwwlvhp198xdrnc0p5d7jwfcp6q2lm510j6zqw4s4b8zwym";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Lucio Franco <luciofranco14@gmail.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
        ];

      };
      "httparse" = rec {
        crateName = "httparse";
        version = "1.7.1";
        edition = "2015";
        sha256 = "0k60q1hx96cvmjn6k3yjkff87fz0ga2a4z0g9ss8a9x5nndy4v29";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "httpdate" = rec {
        crateName = "httpdate";
        version = "1.0.2";
        edition = "2018";
        sha256 = "08bln7b1ibdw26gl8h4dr6rlybvlkyhlha309xbh9ghxh9nf78f4";
        authors = [
          "Pyfisch <pyfisch@posteo.org>"
        ];

      };
      "hyper" = rec {
        crateName = "hyper";
        version = "0.14.20";
        edition = "2018";
        sha256 = "1b7vm9dzs3hg5a6dk401n4hhg1hqh5r94lj07jh3bqrrbkf2kj82";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "futures-channel";
            packageId = "futures-channel";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "h2";
            packageId = "h2";
            optional = true;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
          }
          {
            name = "httparse";
            packageId = "httparse";
          }
          {
            name = "httpdate";
            packageId = "httpdate";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "socket2";
            packageId = "socket2";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "sync" ];
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "want";
            packageId = "want";
          }
        ];
        devDependencies = [
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "fs" "macros" "io-std" "io-util" "rt" "rt-multi-thread" "sync" "time" "test-util" ];
          }
        ];
        features = {
          "ffi" = [ "libc" ];
          "full" = [ "client" "http1" "http2" "server" "stream" "runtime" ];
          "h2" = [ "dep:h2" ];
          "http2" = [ "h2" ];
          "libc" = [ "dep:libc" ];
          "runtime" = [ "tcp" "tokio/rt" "tokio/time" ];
          "socket2" = [ "dep:socket2" ];
          "tcp" = [ "socket2" "tokio/net" "tokio/rt" "tokio/time" ];
        };
        resolvedDefaultFeatures = [ "client" "default" "h2" "http1" "http2" "runtime" "socket2" "stream" "tcp" ];
      };
      "hyper-rustls" = rec {
        crateName = "hyper-rustls";
        version = "0.23.0";
        edition = "2018";
        sha256 = "1b2wi75qrmwfpw3pqwcg1xjndl4z0aris15296wf7i8d5v04hz6q";
        authors = [
          "Joseph Birr-Pixton <jpixton@gmail.com>"
        ];
        dependencies = [
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            features = [ "client" ];
          }
          {
            name = "rustls";
            packageId = "rustls";
            usesDefaultFeatures = false;
          }
          {
            name = "tokio";
            packageId = "tokio";
          }
          {
            name = "tokio-rustls";
            packageId = "tokio-rustls";
            usesDefaultFeatures = false;
          }
        ];
        devDependencies = [
          {
            name = "hyper";
            packageId = "hyper";
            features = [ "full" ];
          }
          {
            name = "rustls";
            packageId = "rustls";
            usesDefaultFeatures = false;
            features = [ "tls12" ];
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "io-std" "macros" "net" "rt-multi-thread" ];
          }
        ];
        features = {
          "default" = [ "native-tokio" "http1" "tls12" "logging" ];
          "http1" = [ "hyper/http1" ];
          "http2" = [ "hyper/http2" ];
          "log" = [ "dep:log" ];
          "logging" = [ "log" "tokio-rustls/logging" "rustls/logging" ];
          "native-tokio" = [ "tokio-runtime" "rustls-native-certs" ];
          "rustls-native-certs" = [ "dep:rustls-native-certs" ];
          "tls12" = [ "tokio-rustls/tls12" "rustls/tls12" ];
          "tokio-runtime" = [ "hyper/runtime" ];
          "webpki-roots" = [ "dep:webpki-roots" ];
          "webpki-tokio" = [ "tokio-runtime" "webpki-roots" ];
        };
      };
      "idna" = rec {
        crateName = "idna";
        version = "0.2.3";
        edition = "2018";
        sha256 = "1y7ca2w5qp9msgl57n03zqp78gq1bk2crqzg6kv7a542mdphm2j1";
        authors = [
          "The rust-url developers"
        ];
        dependencies = [
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "unicode-bidi";
            packageId = "unicode-bidi";
          }
          {
            name = "unicode-normalization";
            packageId = "unicode-normalization";
          }
        ];

      };
      "indexmap" = rec {
        crateName = "indexmap";
        version = "1.9.1";
        edition = "2021";
        sha256 = "07nli1wcz7m81svvig8l5j6vjycjnv9va46lwblgy803ffbmm8qh";
        dependencies = [
          {
            name = "hashbrown";
            packageId = "hashbrown";
            usesDefaultFeatures = false;
            features = [ "raw" ];
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "rayon" = [ "dep:rayon" ];
          "rustc-rayon" = [ "dep:rustc-rayon" ];
          "serde" = [ "dep:serde" ];
          "serde-1" = [ "serde" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "instant" = rec {
        crateName = "instant";
        version = "0.1.12";
        edition = "2018";
        sha256 = "0b2bx5qdlwayriidhrag8vhy10kdfimfhmb3jnjmsz2h9j1bwnvs";
        authors = [
          "sebcrozet <developer@crozet.re>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
        ];
        features = {
          "js-sys" = [ "dep:js-sys" ];
          "stdweb" = [ "dep:stdweb" ];
          "wasm-bindgen" = [ "js-sys" "wasm-bindgen_rs" "web-sys" ];
          "wasm-bindgen_rs" = [ "dep:wasm-bindgen_rs" ];
          "web-sys" = [ "dep:web-sys" ];
        };
      };
      "ipnet" = rec {
        crateName = "ipnet";
        version = "2.5.0";
        edition = "2018";
        sha256 = "0asr5bwhbfxgxwappmvs0rvb0ncc5adnhfi9yiz4axlc9j1m97c7";
        authors = [
          "Kris Price <kris@krisprice.nz>"
        ];
        features = {
          "json" = [ "serde" "schemars" ];
          "schemars" = [ "dep:schemars" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "itoa" = rec {
        crateName = "itoa";
        version = "1.0.2";
        edition = "2018";
        sha256 = "13ap85z7slvma9c36bzi7h5j66dm5sxm4a2g7wiwxbsh826nfb0i";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];

      };
      "js-sys" = rec {
        crateName = "js-sys";
        version = "0.3.59";
        edition = "2018";
        sha256 = "1ciq26qw03j7b5ni78cj1igq0bn2famzvl8n6ksqlkxk22mm3115";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
          }
        ];

      };
      "lazy_static" = rec {
        crateName = "lazy_static";
        version = "1.4.0";
        edition = "2015";
        sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2";
        authors = [
          "Marvin Löbel <loebel.marvin@gmail.com>"
        ];
        features = {
          "spin" = [ "dep:spin" ];
          "spin_no_std" = [ "spin" ];
        };
      };
      "libc" = rec {
        crateName = "libc";
        version = "0.2.126";
        edition = "2015";
        sha256 = "0diqlpap4pq81284368vffjwvp9jg9hp2x03s7hlk2yj3icmm79l";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
          "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "libosu" = rec {
        crateName = "libosu";
        version = "0.0.28";
        edition = "2021";
        src = lib.cleanSourceWith { filter = sourceFilter;  src = ./.; };
        authors = [
          "Michael Zhang <mail@mzhang.io>"
          "Nobbele <realnobbele@gmail.com>"
          "Ian <IanShehadeh2020@gmail.com>"
        ];
        dependencies = [
          {
            name = "anyhow";
            packageId = "anyhow";
            optional = true;
          }
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "byteorder";
            packageId = "byteorder";
          }
          {
            name = "chrono";
            packageId = "chrono";
            optional = true;
          }
          {
            name = "derive_more";
            packageId = "derive_more";
          }
          {
            name = "futures";
            packageId = "futures";
            optional = true;
          }
          {
            name = "http";
            packageId = "http";
            optional = true;
          }
          {
            name = "hyper";
            packageId = "hyper";
            optional = true;
            features = [ "stream" "http2" "client" "tcp" ];
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "lzma-rs";
            packageId = "lzma-rs";
            optional = true;
          }
          {
            name = "num";
            packageId = "num";
          }
          {
            name = "num-derive";
            packageId = "num-derive";
          }
          {
            name = "num-traits";
            packageId = "num-traits";
          }
          {
            name = "ordered-float";
            packageId = "ordered-float";
            features = [ "serde" ];
          }
          {
            name = "regex";
            packageId = "regex";
          }
          {
            name = "reqwest";
            packageId = "reqwest";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "json" "rustls-tls" ];
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            features = [ "derive" ];
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            optional = true;
          }
          {
            name = "static_assertions";
            packageId = "static_assertions";
          }
          {
            name = "thiserror";
            packageId = "thiserror";
          }
          {
            name = "tokio";
            packageId = "tokio";
            optional = true;
          }
          {
            name = "url";
            packageId = "url";
            optional = true;
          }
          {
            name = "xz2";
            packageId = "xz2";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "anyhow";
            packageId = "anyhow";
          }
          {
            name = "difference";
            packageId = "difference";
          }
          {
            name = "proptest";
            packageId = "proptest";
          }
          {
            name = "proptest-derive";
            packageId = "proptest-derive";
          }
          {
            name = "serde_json";
            packageId = "serde_json";
          }
        ];
        features = {
          "apiv1" = [ "dep:hyper" "dep:tokio" "dep:http" "dep:futures" "dep:reqwest" "dep:url" "dep:serde" "dep:serde_json" ];
          "apiv2" = [ "dep:reqwest" "dep:serde" "dep:chrono" "chrono?/serde" ];
          "examples" = [ "dep:anyhow" "dep:serde" "dep:serde_json" ];
          "replay-data" = [ "dep:lzma-rs" ];
          "replay-data-xz2" = [ "dep:xz2" ];
        };
        resolvedDefaultFeatures = [ "apiv1" "apiv2" "clippy" "default" "examples" "experimental-diff-calc" "replay-data" "replay-data-xz2" ];
      };
      "log" = rec {
        crateName = "log";
        version = "0.4.17";
        edition = "2015";
        sha256 = "0biqlaaw1lsr8bpnmbcc0fvgjj34yy79ghqzyi0ali7vgil2xcdb";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
        ];
        features = {
          "kv_unstable" = [ "value-bag" ];
          "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ];
          "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ];
          "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ];
          "serde" = [ "dep:serde" ];
          "sval" = [ "dep:sval" ];
          "value-bag" = [ "dep:value-bag" ];
        };
      };
      "lzma-rs" = rec {
        crateName = "lzma-rs";
        version = "0.2.0";
        edition = "2018";
        sha256 = "1cbz5pdsjkjn71ba1bgp467zxpvm1bnmw23jmpjbryhd8nqfra5b";
        authors = [
          "Guillaume Endignoux <ggendx@gmail.com>"
        ];
        dependencies = [
          {
            name = "byteorder";
            packageId = "byteorder";
          }
          {
            name = "crc";
            packageId = "crc";
          }
        ];
        features = {
          "enable_logging" = [ "env_logger" "log" ];
          "env_logger" = [ "dep:env_logger" ];
          "log" = [ "dep:log" ];
        };
      };
      "lzma-sys" = rec {
        crateName = "lzma-sys";
        version = "0.1.19";
        edition = "2018";
        sha256 = "0wl7ibvqw56x3vakpv8mlg6m3242zflmqrnm4z3ljzglmk258rz0";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
        ];
        buildDependencies = [
          {
            name = "cc";
            packageId = "cc";
          }
          {
            name = "pkg-config";
            packageId = "pkg-config";
          }
        ];
        features = {
        };
      };
      "matches" = rec {
        crateName = "matches";
        version = "0.1.9";
        edition = "2015";
        sha256 = "0gw5ib38jfgyyah8nyyxr036grqv1arkf1srgfa4h386dav7iqx3";
        libPath = "lib.rs";
        authors = [
          "Simon Sapin <simon.sapin@exyr.org>"
        ];

      };
      "memchr" = rec {
        crateName = "memchr";
        version = "2.5.0";
        edition = "2018";
        sha256 = "0vanfk5mzs1g1syqnj03q8n0syggnhn55dq535h2wxr7rwpfbzrd";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
          "bluss"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "libc" = [ "dep:libc" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "mime" = rec {
        crateName = "mime";
        version = "0.3.16";
        edition = "2015";
        sha256 = "13dcm9lh01hdwfjcg74ppljyjfj1c6w3a3cwkhxf0w8wa37cfq1a";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];

      };
      "mio" = rec {
        crateName = "mio";
        version = "0.8.4";
        edition = "2018";
        sha256 = "1byahxxpnm42djgip44b545i2pr5d7fgyff3a290qfy6qwiirvjp";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Thomas de Zeeuw <thomasdezeeuw@gmail.com>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."os" == "wasi");
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "wasi";
            packageId = "wasi 0.11.0+wasi-snapshot-preview1";
            target = { target, features }: (target."os" == "wasi");
          }
          {
            name = "windows-sys";
            packageId = "windows-sys";
            target = { target, features }: (target."windows" or false);
            features = [ "Win32_Storage_FileSystem" "Win32_Foundation" "Win32_Networking_WinSock" "Win32_System_IO" "Win32_System_WindowsProgramming" ];
          }
        ];
        features = {
          "os-ext" = [ "os-poll" "windows-sys/Win32_System_Pipes" "windows-sys/Win32_Security" ];
        };
        resolvedDefaultFeatures = [ "default" "net" "os-ext" "os-poll" ];
      };
      "num" = rec {
        crateName = "num";
        version = "0.4.0";
        edition = "2018";
        sha256 = "01j6k8kjad0a96297j3qjhdhrc6cgmzhf52i0sd7yd0d2z8ndns3";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-bigint";
            packageId = "num-bigint";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "num-complex";
            packageId = "num-complex";
            usesDefaultFeatures = false;
          }
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
          {
            name = "num-iter";
            packageId = "num-iter";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
          {
            name = "num-rational";
            packageId = "num-rational";
            usesDefaultFeatures = false;
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
        ];
        features = {
          "alloc" = [ "num-bigint" "num-rational/num-bigint" ];
          "default" = [ "std" ];
          "libm" = [ "num-complex/libm" "num-traits/libm" ];
          "num-bigint" = [ "dep:num-bigint" ];
          "rand" = [ "num-bigint/rand" "num-complex/rand" ];
          "serde" = [ "num-bigint/serde" "num-complex/serde" "num-rational/serde" ];
          "std" = [ "num-bigint/std" "num-complex/std" "num-integer/std" "num-iter/std" "num-rational/std" "num-rational/num-bigint-std" "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "default" "num-bigint" "std" ];
      };
      "num-bigint" = rec {
        crateName = "num-bigint";
        version = "0.4.3";
        edition = "2018";
        sha256 = "0py73wsa5j4izhd39nkqzqv260r0ma08vy30ky54ld3vkhlbcfpr";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "arbitrary" = [ "dep:arbitrary" ];
          "default" = [ "std" ];
          "quickcheck" = [ "dep:quickcheck" ];
          "rand" = [ "dep:rand" ];
          "serde" = [ "dep:serde" ];
          "std" = [ "num-integer/std" "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "num-complex" = rec {
        crateName = "num-complex";
        version = "0.4.2";
        edition = "2018";
        sha256 = "06ac87jsgdh845q4czdj5bypll83by9aj9y781zvspxwr1497qvs";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
        ];
        features = {
          "bytemuck" = [ "dep:bytemuck" ];
          "default" = [ "std" ];
          "libm" = [ "num-traits/libm" ];
          "rand" = [ "dep:rand" ];
          "serde" = [ "dep:serde" ];
          "std" = [ "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "num-derive" = rec {
        crateName = "num-derive";
        version = "0.3.3";
        edition = "2018";
        sha256 = "0gbl94ckzqjdzy4j8b1p55mz01g6n1l9bckllqvaj0wfz7zm6sl7";
        procMacro = true;
        libName = "num_derive";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
          }
        ];
        features = {
          "full-syntax" = [ "syn/full" ];
        };
      };
      "num-integer" = rec {
        crateName = "num-integer";
        version = "0.1.45";
        edition = "2015";
        sha256 = "1ncwavvwdmsqzxnn65phv6c6nn72pnv9xhpmjd6a429mzf4k6p92";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "std" ];
          "i128" = [ "num-traits/i128" ];
          "std" = [ "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "i128" "std" ];
      };
      "num-iter" = rec {
        crateName = "num-iter";
        version = "0.1.43";
        edition = "2015";
        sha256 = "0lp22isvzmmnidbq9n5kbdh8gj0zm3yhxv1ddsn5rp65530fc0vx";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "std" ];
          "i128" = [ "num-integer/i128" "num-traits/i128" ];
          "std" = [ "num-integer/std" "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "i128" "std" ];
      };
      "num-rational" = rec {
        crateName = "num-rational";
        version = "0.4.1";
        edition = "2018";
        sha256 = "1c0rb8x4avxy3jvvzv764yk7afipzxncfnqlb10r3h53s34s2f06";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "num-bigint";
            packageId = "num-bigint";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
            features = [ "i128" ];
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "num-bigint-std" "std" ];
          "num-bigint" = [ "dep:num-bigint" ];
          "num-bigint-std" = [ "num-bigint/std" ];
          "serde" = [ "dep:serde" ];
          "std" = [ "num-integer/std" "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "num-bigint" "num-bigint-std" "std" ];
      };
      "num-traits" = rec {
        crateName = "num-traits";
        version = "0.2.15";
        edition = "2015";
        sha256 = "1kfdqqw2ndz0wx2j75v9nbjx7d3mh3150zs4p5595y02rwsdx3jp";
        authors = [
          "The Rust Project Developers"
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "std" ];
          "libm" = [ "dep:libm" ];
        };
        resolvedDefaultFeatures = [ "default" "i128" "std" ];
      };
      "once_cell" = rec {
        crateName = "once_cell";
        version = "1.13.0";
        edition = "2018";
        sha256 = "1qfqvgnwfzzwxd13ybvplzshaqwnjnna9ghcn0zgijaq0zixp9hq";
        authors = [
          "Aleksey Kladov <aleksey.kladov@gmail.com>"
        ];
        features = {
          "alloc" = [ "race" ];
          "atomic-polyfill" = [ "dep:atomic-polyfill" ];
          "default" = [ "std" ];
          "parking_lot" = [ "parking_lot_core" ];
          "parking_lot_core" = [ "dep:parking_lot_core" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
      };
      "ordered-float" = rec {
        crateName = "ordered-float";
        version = "3.0.0";
        edition = "2018";
        sha256 = "1qiafdfbq47k0kbldd3fx9mykqy438d22izyq315jypapysbmg4n";
        authors = [
          "Jonathan Reem <jonathan.reem@gmail.com>"
          "Matt Brubeck <mbrubeck@limpet.net>"
        ];
        dependencies = [
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "arbitrary" = [ "dep:arbitrary" ];
          "default" = [ "std" ];
          "proptest" = [ "dep:proptest" ];
          "rand" = [ "dep:rand" ];
          "randtest" = [ "rand/std" "rand/std_rng" ];
          "rkyv" = [ "dep:rkyv" ];
          "schemars" = [ "dep:schemars" ];
          "serde" = [ "dep:serde" ];
          "std" = [ "num-traits/std" ];
        };
        resolvedDefaultFeatures = [ "default" "serde" "std" ];
      };
      "percent-encoding" = rec {
        crateName = "percent-encoding";
        version = "2.1.0";
        edition = "2015";
        sha256 = "0bp3zrsk3kr47fbpipyczidbbx4g54lzxdm77ni1i3qws10mdzfl";
        libPath = "lib.rs";
        authors = [
          "The rust-url developers"
        ];

      };
      "pin-project-lite" = rec {
        crateName = "pin-project-lite";
        version = "0.2.9";
        edition = "2018";
        sha256 = "05n1z851l356hpgqadw4ar64mjanaxq1qlwqsf2k05ziq8xax9z0";

      };
      "pin-utils" = rec {
        crateName = "pin-utils";
        version = "0.1.0";
        edition = "2018";
        sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb";
        authors = [
          "Josef Brandl <mail@josefbrandl.de>"
        ];

      };
      "pkg-config" = rec {
        crateName = "pkg-config";
        version = "0.3.25";
        edition = "2015";
        sha256 = "1bh3vij79cshj884py4can1f8rvk52niaii1vwxya9q69gnc9y0x";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];

      };
      "ppv-lite86" = rec {
        crateName = "ppv-lite86";
        version = "0.2.16";
        edition = "2018";
        sha256 = "0wkqwnvnfcgqlrahphl45vdlgi2f1bs7nqcsalsllp1y4dp9x7zb";
        authors = [
          "The CryptoCorrosion Contributors"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "simd" "std" ];
      };
      "proc-macro2 0.4.30" = rec {
        crateName = "proc-macro2";
        version = "0.4.30";
        edition = "2015";
        sha256 = "0nd71fl24sys066jrha6j7i34nfkjv44yzw8yww9742wmc8j0gfg";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "unicode-xid";
            packageId = "unicode-xid";
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "proc-macro2 1.0.42" = rec {
        crateName = "proc-macro2";
        version = "1.0.42";
        edition = "2018";
        sha256 = "16y8maaixxaij77xk1krws51f4lpwz9y6vg9w3b35kyqy5jyjy62";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "unicode-ident";
            packageId = "unicode-ident";
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "proptest" = rec {
        crateName = "proptest";
        version = "1.0.0";
        edition = "2018";
        sha256 = "1rdhjnf0xma5rmsq04d31n2vq1pgbm42pjc6jn3jsj8qgz09q38y";
        authors = [
          "Jason Lingle"
        ];
        dependencies = [
          {
            name = "bit-set";
            packageId = "bit-set";
            optional = true;
          }
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "byteorder";
            packageId = "byteorder";
            usesDefaultFeatures = false;
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
          {
            name = "quick-error";
            packageId = "quick-error 2.0.1";
            optional = true;
          }
          {
            name = "rand";
            packageId = "rand";
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "rand_chacha";
            packageId = "rand_chacha";
            usesDefaultFeatures = false;
          }
          {
            name = "rand_xorshift";
            packageId = "rand_xorshift";
          }
          {
            name = "regex-syntax";
            packageId = "regex-syntax";
            optional = true;
          }
          {
            name = "rusty-fork";
            packageId = "rusty-fork";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "tempfile";
            packageId = "tempfile";
            optional = true;
          }
        ];
        features = {
          "bit-set" = [ "dep:bit-set" ];
          "default" = [ "std" "fork" "timeout" "bit-set" "break-dead-code" ];
          "default-code-coverage" = [ "std" "fork" "timeout" "bit-set" ];
          "fork" = [ "std" "rusty-fork" "tempfile" ];
          "hardware-rng" = [ "x86" ];
          "lazy_static" = [ "dep:lazy_static" ];
          "quick-error" = [ "dep:quick-error" ];
          "regex-syntax" = [ "dep:regex-syntax" ];
          "rusty-fork" = [ "dep:rusty-fork" ];
          "std" = [ "rand/std" "byteorder/std" "lazy_static" "quick-error" "regex-syntax" "num-traits/std" ];
          "tempfile" = [ "dep:tempfile" ];
          "timeout" = [ "fork" "rusty-fork/timeout" ];
          "x86" = [ "dep:x86" ];
        };
        resolvedDefaultFeatures = [ "bit-set" "break-dead-code" "default" "fork" "lazy_static" "quick-error" "regex-syntax" "rusty-fork" "std" "tempfile" "timeout" ];
      };
      "proptest-derive" = rec {
        crateName = "proptest-derive";
        version = "0.3.0";
        edition = "2018";
        sha256 = "1p4x6k1zxq9lrpk46npdnzj6894mjx5bpwkwrdk63ird72an5d4h";
        procMacro = true;
        authors = [
          "Mazdak Farrokhzad <twingoow@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 0.4.30";
          }
          {
            name = "quote";
            packageId = "quote 0.6.13";
          }
          {
            name = "syn";
            packageId = "syn 0.15.44";
            features = [ "visit" "extra-traits" "full" ];
          }
        ];

      };
      "quick-error 1.2.3" = rec {
        crateName = "quick-error";
        version = "1.2.3";
        edition = "2015";
        sha256 = "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51";
        authors = [
          "Paul Colomiets <paul@colomiets.name>"
          "Colin Kiegel <kiegel@gmx.de>"
        ];

      };
      "quick-error 2.0.1" = rec {
        crateName = "quick-error";
        version = "2.0.1";
        edition = "2018";
        sha256 = "18z6r2rcjvvf8cn92xjhm2qc3jpd1ljvcbf12zv0k9p565gmb4x9";
        authors = [
          "Paul Colomiets <paul@colomiets.name>"
          "Colin Kiegel <kiegel@gmx.de>"
        ];

      };
      "quote 0.6.13" = rec {
        crateName = "quote";
        version = "0.6.13";
        edition = "2015";
        sha256 = "1qgqq48jymp5h4y082aanf25hrw6bpb678xh3zw993qfhxmkpqkc";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 0.4.30";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
          "proc-macro" = [ "proc-macro2/proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "quote 1.0.20" = rec {
        crateName = "quote";
        version = "1.0.20";
        edition = "2018";
        sha256 = "015qrb5jf9q0pajx38mfn431gfqn0hv2kc1ssarbqvvpx49g5k9v";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
          "proc-macro" = [ "proc-macro2/proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "rand" = rec {
        crateName = "rand";
        version = "0.8.5";
        edition = "2018";
        sha256 = "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "rand_chacha";
            packageId = "rand_chacha";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "alloc" = [ "rand_core/alloc" ];
          "default" = [ "std" "std_rng" ];
          "getrandom" = [ "rand_core/getrandom" ];
          "libc" = [ "dep:libc" ];
          "log" = [ "dep:log" ];
          "packed_simd" = [ "dep:packed_simd" ];
          "rand_chacha" = [ "dep:rand_chacha" ];
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" "rand_core/serde1" ];
          "simd_support" = [ "packed_simd" ];
          "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ];
          "std_rng" = [ "rand_chacha" ];
        };
        resolvedDefaultFeatures = [ "alloc" "getrandom" "libc" "rand_chacha" "std" ];
      };
      "rand_chacha" = rec {
        crateName = "rand_chacha";
        version = "0.3.1";
        edition = "2018";
        sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
          "The CryptoCorrosion Contributors"
        ];
        dependencies = [
          {
            name = "ppv-lite86";
            packageId = "ppv-lite86";
            usesDefaultFeatures = false;
            features = [ "simd" ];
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" ];
          "std" = [ "ppv-lite86/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "rand_core" = rec {
        crateName = "rand_core";
        version = "0.6.3";
        edition = "2018";
        sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "getrandom";
            packageId = "getrandom";
            optional = true;
          }
        ];
        features = {
          "getrandom" = [ "dep:getrandom" ];
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" ];
          "std" = [ "alloc" "getrandom" "getrandom/std" ];
        };
        resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ];
      };
      "rand_xorshift" = rec {
        crateName = "rand_xorshift";
        version = "0.3.0";
        edition = "2018";
        sha256 = "13vcag7gmqspzyabfl1gr9ykvxd2142q2agrj8dkyjmfqmgg4nyj";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" ];
        };
      };
      "redox_syscall" = rec {
        crateName = "redox_syscall";
        version = "0.2.16";
        edition = "2018";
        sha256 = "16jicm96kjyzm802cxdd1k9jmcph0db1a4lhslcnhjsvhp0mhnpv";
        libName = "syscall";
        authors = [
          "Jeremy Soller <jackpot51@gmail.com>"
        ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
        ];

      };
      "regex" = rec {
        crateName = "regex";
        version = "1.6.0";
        edition = "2018";
        sha256 = "12wqvyh4i75j7pc8sgvmqh4yy3qaj4inc4alyv1cdf3lf4kb6kjc";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "aho-corasick";
            packageId = "aho-corasick";
            optional = true;
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "regex-syntax";
            packageId = "regex-syntax";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "aho-corasick" = [ "dep:aho-corasick" ];
          "default" = [ "std" "perf" "unicode" "regex-syntax/default" ];
          "memchr" = [ "dep:memchr" ];
          "perf" = [ "perf-cache" "perf-dfa" "perf-inline" "perf-literal" ];
          "perf-literal" = [ "aho-corasick" "memchr" ];
          "unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "regex-syntax/unicode" ];
          "unicode-age" = [ "regex-syntax/unicode-age" ];
          "unicode-bool" = [ "regex-syntax/unicode-bool" ];
          "unicode-case" = [ "regex-syntax/unicode-case" ];
          "unicode-gencat" = [ "regex-syntax/unicode-gencat" ];
          "unicode-perl" = [ "regex-syntax/unicode-perl" ];
          "unicode-script" = [ "regex-syntax/unicode-script" ];
          "unicode-segment" = [ "regex-syntax/unicode-segment" ];
          "unstable" = [ "pattern" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "aho-corasick" "default" "memchr" "perf" "perf-cache" "perf-dfa" "perf-inline" "perf-literal" "std" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
      };
      "regex-syntax" = rec {
        crateName = "regex-syntax";
        version = "0.6.27";
        edition = "2018";
        sha256 = "0i32nnvyzzkvz1rqp2qyfxrp2170859z8ck37jd63c8irrrppy53";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "default" = [ "unicode" ];
          "unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
        };
        resolvedDefaultFeatures = [ "default" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
      };
      "remove_dir_all" = rec {
        crateName = "remove_dir_all";
        version = "0.5.3";
        edition = "2015";
        sha256 = "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s";
        authors = [
          "Aaronepower <theaaronepower@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi";
            target = { target, features }: (target."windows" or false);
            features = [ "std" "errhandlingapi" "winerror" "fileapi" "winbase" ];
          }
        ];

      };
      "reqwest" = rec {
        crateName = "reqwest";
        version = "0.11.11";
        edition = "2018";
        sha256 = "14mz9w3jf2jq1kv3606an637lvrw4npz4fp3xmkcrfq67ydacnmp";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "base64";
            packageId = "base64";
          }
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "encoding_rs";
            packageId = "encoding_rs";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "h2";
            packageId = "h2";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "tcp" "http1" "http2" "client" "runtime" ];
          }
          {
            name = "hyper-rustls";
            packageId = "hyper-rustls";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "ipnet";
            packageId = "ipnet";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "js-sys";
            packageId = "js-sys";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "log";
            packageId = "log";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "mime";
            packageId = "mime";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "rustls";
            packageId = "rustls";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "dangerous_configuration" ];
          }
          {
            name = "rustls-pemfile";
            packageId = "rustls-pemfile";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            optional = true;
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "serde_urlencoded";
            packageId = "serde_urlencoded";
          }
          {
            name = "tokio";
            packageId = "tokio";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "net" "time" ];
          }
          {
            name = "tokio-rustls";
            packageId = "tokio-rustls";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "url";
            packageId = "url";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "wasm-bindgen-futures";
            packageId = "wasm-bindgen-futures";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "web-sys";
            packageId = "web-sys";
            target = { target, features }: (target."arch" == "wasm32");
            features = [ "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" "ServiceWorkerGlobalScope" "RequestCredentials" "File" ];
          }
          {
            name = "webpki-roots";
            packageId = "webpki-roots";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "winreg";
            packageId = "winreg";
            target = { target, features }: (target."windows" or false);
          }
        ];
        devDependencies = [
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            target = {target, features}: (!(target."arch" == "wasm32"));
            features = [ "tcp" "stream" "http1" "http2" "client" "server" "runtime" ];
          }
          {
            name = "serde";
            packageId = "serde";
            target = {target, features}: (!(target."arch" == "wasm32"));
            features = [ "derive" ];
          }
          {
            name = "tokio";
            packageId = "tokio";
            usesDefaultFeatures = false;
            target = {target, features}: (!(target."arch" == "wasm32"));
            features = [ "macros" "rt-multi-thread" ];
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
            target = {target, features}: (target."arch" == "wasm32");
            features = [ "serde-serialize" ];
          }
        ];
        features = {
          "__rustls" = [ "hyper-rustls" "tokio-rustls" "rustls" "__tls" "rustls-pemfile" ];
          "async-compression" = [ "dep:async-compression" ];
          "blocking" = [ "futures-util/io" "tokio/rt-multi-thread" "tokio/sync" ];
          "brotli" = [ "async-compression" "async-compression/brotli" "tokio-util" ];
          "cookie_crate" = [ "dep:cookie_crate" ];
          "cookie_store" = [ "dep:cookie_store" ];
          "cookies" = [ "cookie_crate" "cookie_store" "proc-macro-hack" ];
          "default" = [ "default-tls" ];
          "default-tls" = [ "hyper-tls" "native-tls-crate" "__tls" "tokio-native-tls" ];
          "deflate" = [ "async-compression" "async-compression/zlib" "tokio-util" ];
          "gzip" = [ "async-compression" "async-compression/gzip" "tokio-util" ];
          "hyper-rustls" = [ "dep:hyper-rustls" ];
          "hyper-tls" = [ "dep:hyper-tls" ];
          "json" = [ "serde_json" ];
          "mime_guess" = [ "dep:mime_guess" ];
          "multipart" = [ "mime_guess" ];
          "native-tls" = [ "default-tls" ];
          "native-tls-alpn" = [ "native-tls" "native-tls-crate/alpn" ];
          "native-tls-crate" = [ "dep:native-tls-crate" ];
          "native-tls-vendored" = [ "native-tls" "native-tls-crate/vendored" ];
          "proc-macro-hack" = [ "dep:proc-macro-hack" ];
          "rustls" = [ "dep:rustls" ];
          "rustls-native-certs" = [ "dep:rustls-native-certs" ];
          "rustls-pemfile" = [ "dep:rustls-pemfile" ];
          "rustls-tls" = [ "rustls-tls-webpki-roots" ];
          "rustls-tls-manual-roots" = [ "__rustls" ];
          "rustls-tls-native-roots" = [ "rustls-native-certs" "__rustls" ];
          "rustls-tls-webpki-roots" = [ "webpki-roots" "__rustls" ];
          "serde_json" = [ "dep:serde_json" ];
          "socks" = [ "tokio-socks" ];
          "stream" = [ "tokio/fs" "tokio-util" ];
          "tokio-native-tls" = [ "dep:tokio-native-tls" ];
          "tokio-rustls" = [ "dep:tokio-rustls" ];
          "tokio-socks" = [ "dep:tokio-socks" ];
          "tokio-util" = [ "dep:tokio-util" ];
          "trust-dns" = [ "trust-dns-resolver" ];
          "trust-dns-resolver" = [ "dep:trust-dns-resolver" ];
          "webpki-roots" = [ "dep:webpki-roots" ];
        };
        resolvedDefaultFeatures = [ "__rustls" "__tls" "hyper-rustls" "json" "rustls" "rustls-pemfile" "rustls-tls" "rustls-tls-webpki-roots" "serde_json" "tokio-rustls" "webpki-roots" ];
      };
      "ring" = rec {
        crateName = "ring";
        version = "0.16.20";
        edition = "2018";
        sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh";
        authors = [
          "Brian Smith <brian@briansmith.org>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
          }
          {
            name = "once_cell";
            packageId = "once_cell";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
            features = [ "std" ];
          }
          {
            name = "once_cell";
            packageId = "once_cell";
            usesDefaultFeatures = false;
            target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris"));
            features = [ "std" ];
          }
          {
            name = "spin";
            packageId = "spin";
            usesDefaultFeatures = false;
            target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux"))));
          }
          {
            name = "untrusted";
            packageId = "untrusted";
          }
          {
            name = "web-sys";
            packageId = "web-sys";
            usesDefaultFeatures = false;
            target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == ""));
            features = [ "Crypto" "Window" ];
          }
          {
            name = "winapi";
            packageId = "winapi";
            usesDefaultFeatures = false;
            target = { target, features }: (target."os" == "windows");
            features = [ "ntsecapi" "wtypesbase" ];
          }
        ];
        buildDependencies = [
          {
            name = "cc";
            packageId = "cc";
            usesDefaultFeatures = false;
          }
        ];
        devDependencies = [
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = {target, features}: ((target."unix" or false) || (target."windows" or false));
          }
        ];
        features = {
          "default" = [ "alloc" "dev_urandom_fallback" ];
          "dev_urandom_fallback" = [ "once_cell" ];
          "once_cell" = [ "dep:once_cell" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ];
      };
      "rustc_version" = rec {
        crateName = "rustc_version";
        version = "0.4.0";
        edition = "2018";
        sha256 = "0rpk9rcdk405xhbmgclsh4pai0svn49x35aggl4nhbkd4a2zb85z";
        authors = [
          "Dirkjan Ochtman <dirkjan@ochtman.nl>"
          "Marvin Löbel <loebel.marvin@gmail.com>"
        ];
        dependencies = [
          {
            name = "semver";
            packageId = "semver";
          }
        ];

      };
      "rustls" = rec {
        crateName = "rustls";
        version = "0.20.6";
        edition = "2018";
        sha256 = "0cz0kh7ywl6vf4sqpwfm9ddc1l0q4jk8gha3gw2xczh9qzk8xass";
        dependencies = [
          {
            name = "log";
            packageId = "log";
            optional = true;
          }
          {
            name = "ring";
            packageId = "ring";
          }
          {
            name = "sct";
            packageId = "sct";
          }
          {
            name = "webpki";
            packageId = "webpki";
            features = [ "alloc" "std" ];
          }
        ];
        devDependencies = [
          {
            name = "log";
            packageId = "log";
          }
        ];
        features = {
          "default" = [ "logging" "tls12" ];
          "log" = [ "dep:log" ];
          "logging" = [ "log" ];
          "read_buf" = [ "rustversion" ];
          "rustversion" = [ "dep:rustversion" ];
        };
        resolvedDefaultFeatures = [ "dangerous_configuration" "default" "log" "logging" "tls12" ];
      };
      "rustls-pemfile" = rec {
        crateName = "rustls-pemfile";
        version = "1.0.0";
        edition = "2018";
        sha256 = "1afrjj5l8gw8qm7njwf55nrgb8whqyfq56pyb0a0dzw7wyfjqlp7";
        authors = [
          "Joseph Birr-Pixton <jpixton@gmail.com>"
        ];
        dependencies = [
          {
            name = "base64";
            packageId = "base64";
          }
        ];

      };
      "rusty-fork" = rec {
        crateName = "rusty-fork";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0kxwq5c480gg6q0j3bg4zzyfh2kwmc3v2ba94jw8ncjc8mpcqgfb";
        authors = [
          "Jason Lingle"
        ];
        dependencies = [
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "quick-error";
            packageId = "quick-error 1.2.3";
          }
          {
            name = "tempfile";
            packageId = "tempfile";
          }
          {
            name = "wait-timeout";
            packageId = "wait-timeout";
            optional = true;
          }
        ];
        features = {
          "default" = [ "timeout" ];
          "timeout" = [ "wait-timeout" ];
          "wait-timeout" = [ "dep:wait-timeout" ];
        };
        resolvedDefaultFeatures = [ "timeout" "wait-timeout" ];
      };
      "ryu" = rec {
        crateName = "ryu";
        version = "1.0.10";
        edition = "2018";
        sha256 = "15960rzj6jkjhxrjfr3kid2hbnia84s6h8l1ga7vkla9rwmgkxpk";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "no-panic" = [ "dep:no-panic" ];
        };
      };
      "sct" = rec {
        crateName = "sct";
        version = "0.7.0";
        edition = "2018";
        sha256 = "193w3dg2pcn7138ab4c586pl76nkryn4h6wqlwvqj5gqr6vwsgfm";
        authors = [
          "Joseph Birr-Pixton <jpixton@gmail.com>"
        ];
        dependencies = [
          {
            name = "ring";
            packageId = "ring";
          }
          {
            name = "untrusted";
            packageId = "untrusted";
          }
        ];

      };
      "semver" = rec {
        crateName = "semver";
        version = "1.0.12";
        edition = "2018";
        sha256 = "1qb4hmpsm0c0j6pi0g2hdr55yk1b7j2rz0kl34mqynfnyrnkwcx2";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "serde" = rec {
        crateName = "serde";
        version = "1.0.140";
        edition = "2015";
        sha256 = "00rvf8c4wq1a3wac2z0cqa0ny7zgciqhz1mmkqv7qywnqx15m1gw";
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "serde_derive";
            packageId = "serde_derive";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "serde_derive";
            packageId = "serde_derive";
          }
        ];
        features = {
          "default" = [ "std" ];
          "derive" = [ "serde_derive" ];
          "serde_derive" = [ "dep:serde_derive" ];
        };
        resolvedDefaultFeatures = [ "default" "derive" "serde_derive" "std" ];
      };
      "serde_derive" = rec {
        crateName = "serde_derive";
        version = "1.0.140";
        edition = "2015";
        sha256 = "1nh59a45hcbidkal0nfln76l5xfkyby9jl5j3hgviqwzddij48bg";
        procMacro = true;
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
          }
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "serde_json" = rec {
        crateName = "serde_json";
        version = "1.0.82";
        edition = "2018";
        sha256 = "19vz3xw0yfaz8al3fskwpngjxr15whv9lnrcanc10zc0rpyw3hl2";
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "itoa";
            packageId = "itoa";
          }
          {
            name = "ryu";
            packageId = "ryu";
          }
          {
            name = "serde";
            packageId = "serde";
            usesDefaultFeatures = false;
          }
        ];
        devDependencies = [
          {
            name = "serde";
            packageId = "serde";
            features = [ "derive" ];
          }
        ];
        features = {
          "alloc" = [ "serde/alloc" ];
          "default" = [ "std" ];
          "indexmap" = [ "dep:indexmap" ];
          "preserve_order" = [ "indexmap" "std" ];
          "std" = [ "serde/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "serde_urlencoded" = rec {
        crateName = "serde_urlencoded";
        version = "0.7.1";
        edition = "2018";
        sha256 = "1zgklbdaysj3230xivihs30qi5vkhigg323a9m62k8jwf4a1qjfk";
        authors = [
          "Anthony Ramine <n.oxyde@gmail.com>"
        ];
        dependencies = [
          {
            name = "form_urlencoded";
            packageId = "form_urlencoded";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
          {
            name = "ryu";
            packageId = "ryu";
          }
          {
            name = "serde";
            packageId = "serde";
          }
        ];

      };
      "slab" = rec {
        crateName = "slab";
        version = "0.4.7";
        edition = "2018";
        sha256 = "1vyw3rkdfdfkzfa1mh83s237sll8v5kazfwxma60bq4b59msf526";
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "socket2" = rec {
        crateName = "socket2";
        version = "0.4.4";
        edition = "2018";
        sha256 = "1q71bsw7sqr3nq71gszywgymxxfv311a3w1aia4k5binjisjpmv6";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Thomas de Zeeuw <thomasdezeeuw@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "winapi";
            packageId = "winapi";
            target = { target, features }: (target."windows" or false);
            features = [ "handleapi" "ws2ipdef" "ws2tcpip" ];
          }
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "all" ];
      };
      "spin" = rec {
        crateName = "spin";
        version = "0.5.2";
        edition = "2015";
        sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf";
        authors = [
          "Mathijs van de Nes <git@mathijs.vd-nes.nl>"
          "John Ericson <git@JohnEricson.me>"
        ];

      };
      "static_assertions" = rec {
        crateName = "static_assertions";
        version = "1.1.0";
        edition = "2015";
        sha256 = "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2";
        authors = [
          "Nikolai Vazquez"
        ];
        features = {
        };
      };
      "syn 0.15.44" = rec {
        crateName = "syn";
        version = "0.15.44";
        edition = "2015";
        sha256 = "1id5g6x6zihv3j7hwrw3m1jp636bg8dpi671r7zy3jvpkavb794w";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 0.4.30";
            usesDefaultFeatures = false;
          }
          {
            name = "quote";
            packageId = "quote 0.6.13";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "unicode-xid";
            packageId = "unicode-xid";
          }
        ];
        features = {
          "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
          "printing" = [ "quote" ];
          "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
          "quote" = [ "dep:quote" ];
        };
        resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" ];
      };
      "syn 1.0.98" = rec {
        crateName = "syn";
        version = "1.0.98";
        edition = "2018";
        sha256 = "1pbklw6fnwwgrkj8qz3wcjfggmn7vmyln44gg0yc5r2dj25fy2n5";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
            usesDefaultFeatures = false;
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "unicode-ident";
            packageId = "unicode-ident";
          }
        ];
        features = {
          "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
          "printing" = [ "quote" ];
          "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
          "quote" = [ "dep:quote" ];
          "test" = [ "syn-test-suite/all-features" ];
        };
        resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" ];
      };
      "tempfile" = rec {
        crateName = "tempfile";
        version = "3.3.0";
        edition = "2018";
        sha256 = "1r3rdp66f7w075mz6blh244syr3h0lbm07ippn7xrbgfxbs1xnsw";
        authors = [
          "Steven Allen <steven@stebalien.com>"
          "The Rust Project Developers"
          "Ashley Mannix <ashleymannix@live.com.au>"
          "Jason White <jasonaw0@gmail.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
          {
            name = "fastrand";
            packageId = "fastrand";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: ((target."unix" or false) || (target."os" == "wasi"));
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall";
            target = { target, features }: (target."os" == "redox");
          }
          {
            name = "remove_dir_all";
            packageId = "remove_dir_all";
          }
          {
            name = "winapi";
            packageId = "winapi";
            target = { target, features }: (target."windows" or false);
            features = [ "fileapi" "handleapi" "winbase" ];
          }
        ];
        features = {
        };
      };
      "thiserror" = rec {
        crateName = "thiserror";
        version = "1.0.31";
        edition = "2018";
        sha256 = "16h6d602kmjilbfw28zma22wnh03klqba82n4rv7zlkk4girz0mx";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "thiserror-impl";
            packageId = "thiserror-impl";
          }
        ];

      };
      "thiserror-impl" = rec {
        crateName = "thiserror-impl";
        version = "1.0.31";
        edition = "2018";
        sha256 = "16npm1s1cv9kxkk7is7blnayfnf41hny46gqprc4c916ws4vr5h3";
        procMacro = true;
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
          }
        ];

      };
      "time" = rec {
        crateName = "time";
        version = "0.1.44";
        edition = "2015";
        sha256 = "0m9jwy2pcmk232r3b9r80fs12mkckfjffjha4qfaxcdq9a8ydfbd";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "wasi";
            packageId = "wasi 0.10.0+wasi-snapshot-preview1";
            target = { target, features }: (target."os" == "wasi");
          }
          {
            name = "winapi";
            packageId = "winapi";
            target = { target, features }: (target."windows" or false);
            features = [ "std" "minwinbase" "minwindef" "ntdef" "profileapi" "sysinfoapi" "timezoneapi" ];
          }
        ];
        devDependencies = [
          {
            name = "winapi";
            packageId = "winapi";
            features = [ "std" "processthreadsapi" "winbase" ];
          }
        ];
        features = {
          "rustc-serialize" = [ "dep:rustc-serialize" ];
        };
      };
      "tinyvec" = rec {
        crateName = "tinyvec";
        version = "1.6.0";
        edition = "2018";
        sha256 = "0l6bl2h62a5m44jdnpn7lmj14rd44via8180i7121fvm73mmrk47";
        authors = [
          "Lokathor <zefria@gmail.com>"
        ];
        dependencies = [
          {
            name = "tinyvec_macros";
            packageId = "tinyvec_macros";
            optional = true;
          }
        ];
        features = {
          "alloc" = [ "tinyvec_macros" ];
          "arbitrary" = [ "dep:arbitrary" ];
          "real_blackbox" = [ "criterion/real_blackbox" ];
          "rustc_1_55" = [ "rustc_1_40" ];
          "rustc_1_57" = [ "rustc_1_55" ];
          "serde" = [ "dep:serde" ];
          "std" = [ "alloc" ];
          "tinyvec_macros" = [ "dep:tinyvec_macros" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "tinyvec_macros" ];
      };
      "tinyvec_macros" = rec {
        crateName = "tinyvec_macros";
        version = "0.1.0";
        edition = "2018";
        sha256 = "0p5zvgbas5nh403fbxica819mf3g83n8g2hzpfazfr56w6klv9yd";
        authors = [
          "Soveu <marx.tomasz@gmail.com>"
        ];

      };
      "tokio" = rec {
        crateName = "tokio";
        version = "1.20.1";
        edition = "2018";
        sha256 = "10d5n2r6dw0xcrg7jrzqs2xmq77d14j3ndhy0kfp8ivx7bv2b0vs";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
            optional = true;
          }
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "mio";
            packageId = "mio";
            optional = true;
          }
          {
            name = "once_cell";
            packageId = "once_cell";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "socket2";
            packageId = "socket2";
            optional = true;
            features = [ "all" ];
          }
          {
            name = "winapi";
            packageId = "winapi";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."windows" or false);
            features = [ "std" ];
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        devDependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = {target, features}: (target."unix" or false);
          }
          {
            name = "socket2";
            packageId = "socket2";
            target = {target, features}: (!(target."arch" == "wasm32"));
          }
        ];
        features = {
          "bytes" = [ "dep:bytes" ];
          "full" = [ "fs" "io-util" "io-std" "macros" "net" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "sync" "time" ];
          "io-util" = [ "memchr" "bytes" ];
          "libc" = [ "dep:libc" ];
          "macros" = [ "tokio-macros" ];
          "memchr" = [ "dep:memchr" ];
          "mio" = [ "dep:mio" ];
          "net" = [ "libc" "mio/os-poll" "mio/os-ext" "mio/net" "socket2" "winapi/fileapi" "winapi/handleapi" "winapi/namedpipeapi" "winapi/winbase" "winapi/winnt" "winapi/minwindef" ];
          "num_cpus" = [ "dep:num_cpus" ];
          "once_cell" = [ "dep:once_cell" ];
          "parking_lot" = [ "dep:parking_lot" ];
          "process" = [ "bytes" "once_cell" "libc" "mio/os-poll" "mio/os-ext" "mio/net" "signal-hook-registry" "winapi/handleapi" "winapi/processthreadsapi" "winapi/threadpoollegacyapiset" "winapi/winbase" "winapi/winnt" "winapi/minwindef" ];
          "rt" = [ "once_cell" ];
          "rt-multi-thread" = [ "num_cpus" "rt" ];
          "signal" = [ "once_cell" "libc" "mio/os-poll" "mio/net" "mio/os-ext" "signal-hook-registry" "winapi/consoleapi" "winapi/wincon" "winapi/minwindef" ];
          "signal-hook-registry" = [ "dep:signal-hook-registry" ];
          "socket2" = [ "dep:socket2" ];
          "test-util" = [ "rt" "sync" "time" ];
          "tokio-macros" = [ "dep:tokio-macros" ];
          "tracing" = [ "dep:tracing" ];
          "winapi" = [ "dep:winapi" ];
        };
        resolvedDefaultFeatures = [ "bytes" "default" "io-util" "libc" "memchr" "mio" "net" "once_cell" "rt" "socket2" "sync" "time" "winapi" ];
      };
      "tokio-rustls" = rec {
        crateName = "tokio-rustls";
        version = "0.23.4";
        edition = "2018";
        sha256 = "0nfsmmi8l1lgpbfy6079d5i13984djzcxrdr9jc06ghi0cwyhgn4";
        authors = [
          "quininer kel <quininer@live.com>"
        ];
        dependencies = [
          {
            name = "rustls";
            packageId = "rustls";
            usesDefaultFeatures = false;
          }
          {
            name = "tokio";
            packageId = "tokio";
          }
          {
            name = "webpki";
            packageId = "webpki";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "full" ];
          }
        ];
        features = {
          "dangerous_configuration" = [ "rustls/dangerous_configuration" ];
          "default" = [ "logging" "tls12" ];
          "logging" = [ "rustls/logging" ];
          "tls12" = [ "rustls/tls12" ];
        };
        resolvedDefaultFeatures = [ "default" "logging" "tls12" ];
      };
      "tokio-util" = rec {
        crateName = "tokio-util";
        version = "0.7.3";
        edition = "2018";
        sha256 = "0igzhn80k8l9w6r5qj0bci70kxhbsm1j31gr406pghyxvvc3qinc";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "sync" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "full" ];
          }
        ];
        features = {
          "__docs_rs" = [ "futures-util" ];
          "codec" = [ "tracing" ];
          "compat" = [ "futures-io" ];
          "full" = [ "codec" "compat" "io-util" "time" "net" "rt" ];
          "futures-io" = [ "dep:futures-io" ];
          "futures-util" = [ "dep:futures-util" ];
          "hashbrown" = [ "dep:hashbrown" ];
          "io-util" = [ "io" "tokio/rt" "tokio/io-util" ];
          "net" = [ "tokio/net" ];
          "rt" = [ "tokio/rt" "tokio/sync" "futures-util" "hashbrown" ];
          "slab" = [ "dep:slab" ];
          "time" = [ "tokio/time" "slab" ];
          "tracing" = [ "dep:tracing" ];
        };
        resolvedDefaultFeatures = [ "codec" "default" "tracing" ];
      };
      "tower-service" = rec {
        crateName = "tower-service";
        version = "0.3.2";
        edition = "2018";
        sha256 = "0lmfzmmvid2yp2l36mbavhmqgsvzqf7r2wiwz73ml4xmwaf1rg5n";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];

      };
      "tracing" = rec {
        crateName = "tracing";
        version = "0.1.36";
        edition = "2018";
        sha256 = "01s3qsm1jfz4h4l401lhy8j2yfds45kpb234l447v9k0pmkrbkig";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "attributes" = [ "tracing-attributes" ];
          "default" = [ "std" "attributes" ];
          "log" = [ "dep:log" ];
          "log-always" = [ "log" ];
          "std" = [ "tracing-core/std" ];
          "tracing-attributes" = [ "dep:tracing-attributes" ];
          "valuable" = [ "tracing-core/valuable" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "tracing-core" = rec {
        crateName = "tracing-core";
        version = "0.1.29";
        edition = "2018";
        sha256 = "1xr2dqar64fj4y43vy0xvaxs6n3xssd3z0jbf408lmbn60qa9vjs";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "once_cell";
            packageId = "once_cell";
            optional = true;
          }
        ];
        features = {
          "default" = [ "std" "valuable/std" ];
          "once_cell" = [ "dep:once_cell" ];
          "std" = [ "once_cell" ];
          "valuable" = [ "dep:valuable" ];
        };
        resolvedDefaultFeatures = [ "once_cell" "std" ];
      };
      "try-lock" = rec {
        crateName = "try-lock";
        version = "0.2.3";
        edition = "2015";
        sha256 = "0hkn1ksmg5hdqgqdw1ahy5qk69f4crh2psf0v61qphyrf777nm2r";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];

      };
      "unicode-bidi" = rec {
        crateName = "unicode-bidi";
        version = "0.3.8";
        edition = "2018";
        sha256 = "14p95n9kw9p7psp0vsp0j9yfkfg6sn1rlnymvmwmya0x60l736q9";
        libName = "unicode_bidi";
        authors = [
          "The Servo Project Developers"
        ];
        features = {
          "default" = [ "std" "hardcoded-data" ];
          "flame" = [ "dep:flame" ];
          "flame_it" = [ "flame" "flamer" ];
          "flamer" = [ "dep:flamer" ];
          "serde" = [ "dep:serde" ];
          "with_serde" = [ "serde" ];
        };
        resolvedDefaultFeatures = [ "default" "hardcoded-data" "std" ];
      };
      "unicode-ident" = rec {
        crateName = "unicode-ident";
        version = "1.0.2";
        edition = "2018";
        sha256 = "19zf5lzhzix2s35lp5lckdy90sw0kfi5a0ii49d24dcj7yk1pihm";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];

      };
      "unicode-normalization" = rec {
        crateName = "unicode-normalization";
        version = "0.1.21";
        edition = "2018";
        sha256 = "1rk0zci96pc26sk21nwk5cdkxb3p6bfani0dhaff2smwyz2bsk45";
        authors = [
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        dependencies = [
          {
            name = "tinyvec";
            packageId = "tinyvec";
            features = [ "alloc" ];
          }
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "unicode-xid" = rec {
        crateName = "unicode-xid";
        version = "0.1.0";
        edition = "2015";
        sha256 = "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw";
        authors = [
          "erick.tryzelaar <erick.tryzelaar@gmail.com>"
          "kwantam <kwantam@gmail.com>"
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "untrusted" = rec {
        crateName = "untrusted";
        version = "0.7.1";
        edition = "2018";
        sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1";
        libPath = "src/untrusted.rs";
        authors = [
          "Brian Smith <brian@briansmith.org>"
        ];

      };
      "url" = rec {
        crateName = "url";
        version = "2.2.2";
        edition = "2018";
        sha256 = "132pzpvfvpw33gjlzqd55n5iag9qddzffq8qbp1myfykna1w61x5";
        authors = [
          "The rust-url developers"
        ];
        dependencies = [
          {
            name = "form_urlencoded";
            packageId = "form_urlencoded";
          }
          {
            name = "idna";
            packageId = "idna";
          }
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
          }
        ];
        features = {
          "serde" = [ "dep:serde" ];
        };
      };
      "wait-timeout" = rec {
        crateName = "wait-timeout";
        version = "0.2.0";
        edition = "2015";
        crateBin = [];
        sha256 = "1xpkk0j5l9pfmjfh1pi0i89invlavfrd9av5xp0zhxgb29dhy84z";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
        ];

      };
      "want" = rec {
        crateName = "want";
        version = "0.3.0";
        edition = "2018";
        sha256 = "181b2zmwfq389x9n2g1n37cvcvvdand832zz6v8i1l8wrdlaks0w";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "try-lock";
            packageId = "try-lock";
          }
        ];

      };
      "wasi 0.10.0+wasi-snapshot-preview1" = rec {
        crateName = "wasi";
        version = "0.10.0+wasi-snapshot-preview1";
        edition = "2018";
        sha256 = "07y3l8mzfzzz4cj09c8y90yak4hpsi9g7pllyzpr6xvwrabka50s";
        authors = [
          "The Cranelift Project Developers"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
          "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "wasi 0.11.0+wasi-snapshot-preview1" = rec {
        crateName = "wasi";
        version = "0.11.0+wasi-snapshot-preview1";
        edition = "2018";
        sha256 = "08z4hxwkpdpalxjps1ai9y7ihin26y9f476i53dv98v45gkqg3cw";
        authors = [
          "The Cranelift Project Developers"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
          "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "wasm-bindgen" = rec {
        crateName = "wasm-bindgen";
        version = "0.2.82";
        edition = "2018";
        sha256 = "0zaz3wfbzkycsmad2frcdqrvbffclk234j6mkj6nqw64yvim4xpw";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
          {
            name = "wasm-bindgen-macro";
            packageId = "wasm-bindgen-macro";
          }
        ];
        features = {
          "default" = [ "spans" "std" ];
          "enable-interning" = [ "std" ];
          "serde" = [ "dep:serde" ];
          "serde-serialize" = [ "serde" "serde_json" "std" ];
          "serde_json" = [ "dep:serde_json" ];
          "spans" = [ "wasm-bindgen-macro/spans" ];
          "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ];
          "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ];
        };
        resolvedDefaultFeatures = [ "default" "spans" "std" ];
      };
      "wasm-bindgen-backend" = rec {
        crateName = "wasm-bindgen-backend";
        version = "0.2.82";
        edition = "2018";
        sha256 = "0gxcqr6k772m867lvvz42a8vvnswz0fnnn5rf4lxassq0m4d8b36";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "bumpalo";
            packageId = "bumpalo";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "once_cell";
            packageId = "once_cell";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
            features = [ "full" ];
          }
          {
            name = "wasm-bindgen-shared";
            packageId = "wasm-bindgen-shared";
          }
        ];
        features = {
          "extra-traits" = [ "syn/extra-traits" ];
        };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-futures" = rec {
        crateName = "wasm-bindgen-futures";
        version = "0.4.32";
        edition = "2018";
        sha256 = "1badc8xgs3spnh1sbiqscsnq0sb029cyib2lbggwv2hz38ignxps";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if";
          }
          {
            name = "js-sys";
            packageId = "js-sys";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
          }
          {
            name = "web-sys";
            packageId = "web-sys";
            target = { target, features }: (builtins.elem "atomics" targetFeatures);
            features = [ "MessageEvent" "Worker" ];
          }
        ];
        features = {
          "futures-core" = [ "dep:futures-core" ];
          "futures-core-03-stream" = [ "futures-core" ];
        };
      };
      "wasm-bindgen-macro" = rec {
        crateName = "wasm-bindgen-macro";
        version = "0.2.82";
        edition = "2018";
        sha256 = "00n6abwrvh0j63nqr95fff1h698r7c1rr10j2pxis1qj60yz2q5j";
        procMacro = true;
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "wasm-bindgen-macro-support";
            packageId = "wasm-bindgen-macro-support";
          }
        ];
        features = {
          "spans" = [ "wasm-bindgen-macro-support/spans" ];
          "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ];
        };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-macro-support" = rec {
        crateName = "wasm-bindgen-macro-support";
        version = "0.2.82";
        edition = "2018";
        sha256 = "1nl0gcsm2zsfvj5z1ka8bkvgm0ma443vk6ljq8b95dyrpmafds2v";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2 1.0.42";
          }
          {
            name = "quote";
            packageId = "quote 1.0.20";
          }
          {
            name = "syn";
            packageId = "syn 1.0.98";
            features = [ "visit" "full" ];
          }
          {
            name = "wasm-bindgen-backend";
            packageId = "wasm-bindgen-backend";
          }
          {
            name = "wasm-bindgen-shared";
            packageId = "wasm-bindgen-shared";
          }
        ];
        features = {
          "extra-traits" = [ "syn/extra-traits" ];
          "spans" = [ "wasm-bindgen-backend/spans" ];
        };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-shared" = rec {
        crateName = "wasm-bindgen-shared";
        version = "0.2.82";
        edition = "2018";
        sha256 = "02hlb8hvfxzvgbqdhc2fh20xrb027sraacb5zyai1mf7sc5xv635";
        authors = [
          "The wasm-bindgen Developers"
        ];

      };
      "web-sys" = rec {
        crateName = "web-sys";
        version = "0.3.59";
        edition = "2018";
        sha256 = "189m6gbnxk1fmhn0ipq40pj3q6hbf8sj0sxqgqcj654lgyr5l1gd";
        authors = [
          "The wasm-bindgen Developers"
        ];
        dependencies = [
          {
            name = "js-sys";
            packageId = "js-sys";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
          }
        ];
        features = {
          "AbortSignal" = [ "EventTarget" ];
          "AnalyserNode" = [ "AudioNode" "EventTarget" ];
          "Animation" = [ "EventTarget" ];
          "AnimationEvent" = [ "Event" ];
          "AnimationPlaybackEvent" = [ "Event" ];
          "Attr" = [ "EventTarget" "Node" ];
          "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "AudioContext" = [ "BaseAudioContext" "EventTarget" ];
          "AudioDestinationNode" = [ "AudioNode" "EventTarget" ];
          "AudioNode" = [ "EventTarget" ];
          "AudioProcessingEvent" = [ "Event" ];
          "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ];
          "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
          "AudioTrackList" = [ "EventTarget" ];
          "AudioWorklet" = [ "Worklet" ];
          "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ];
          "AudioWorkletNode" = [ "AudioNode" "EventTarget" ];
          "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ];
          "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ];
          "BaseAudioContext" = [ "EventTarget" ];
          "BatteryManager" = [ "EventTarget" ];
          "BeforeUnloadEvent" = [ "Event" ];
          "BiquadFilterNode" = [ "AudioNode" "EventTarget" ];
          "BlobEvent" = [ "Event" ];
          "Bluetooth" = [ "EventTarget" ];
          "BluetoothAdvertisingEvent" = [ "Event" ];
          "BluetoothDevice" = [ "EventTarget" ];
          "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ];
          "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ];
          "BluetoothRemoteGattService" = [ "EventTarget" ];
          "BroadcastChannel" = [ "EventTarget" ];
          "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ];
          "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ];
          "ChannelMergerNode" = [ "AudioNode" "EventTarget" ];
          "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ];
          "CharacterData" = [ "EventTarget" "Node" ];
          "ChromeWorker" = [ "EventTarget" "Worker" ];
          "Clipboard" = [ "EventTarget" ];
          "ClipboardEvent" = [ "Event" ];
          "CloseEvent" = [ "Event" ];
          "Comment" = [ "CharacterData" "EventTarget" "Node" ];
          "CompositionEvent" = [ "Event" "UiEvent" ];
          "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "ConvolverNode" = [ "AudioNode" "EventTarget" ];
          "CssAnimation" = [ "Animation" "EventTarget" ];
          "CssConditionRule" = [ "CssGroupingRule" "CssRule" ];
          "CssCounterStyleRule" = [ "CssRule" ];
          "CssFontFaceRule" = [ "CssRule" ];
          "CssFontFeatureValuesRule" = [ "CssRule" ];
          "CssGroupingRule" = [ "CssRule" ];
          "CssImportRule" = [ "CssRule" ];
          "CssKeyframeRule" = [ "CssRule" ];
          "CssKeyframesRule" = [ "CssRule" ];
          "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
          "CssNamespaceRule" = [ "CssRule" ];
          "CssPageRule" = [ "CssRule" ];
          "CssStyleRule" = [ "CssRule" ];
          "CssStyleSheet" = [ "StyleSheet" ];
          "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
          "CssTransition" = [ "Animation" "EventTarget" ];
          "CustomEvent" = [ "Event" ];
          "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "DelayNode" = [ "AudioNode" "EventTarget" ];
          "DeviceLightEvent" = [ "Event" ];
          "DeviceMotionEvent" = [ "Event" ];
          "DeviceOrientationEvent" = [ "Event" ];
          "DeviceProximityEvent" = [ "Event" ];
          "Document" = [ "EventTarget" "Node" ];
          "DocumentFragment" = [ "EventTarget" "Node" ];
          "DocumentTimeline" = [ "AnimationTimeline" ];
          "DocumentType" = [ "EventTarget" "Node" ];
          "DomMatrix" = [ "DomMatrixReadOnly" ];
          "DomPoint" = [ "DomPointReadOnly" ];
          "DomRect" = [ "DomRectReadOnly" ];
          "DomRequest" = [ "EventTarget" ];
          "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ];
          "Element" = [ "EventTarget" "Node" ];
          "ErrorEvent" = [ "Event" ];
          "EventSource" = [ "EventTarget" ];
          "ExtendableEvent" = [ "Event" ];
          "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ];
          "FetchEvent" = [ "Event" "ExtendableEvent" ];
          "FetchObserver" = [ "EventTarget" ];
          "File" = [ "Blob" ];
          "FileReader" = [ "EventTarget" ];
          "FileSystemDirectoryEntry" = [ "FileSystemEntry" ];
          "FileSystemFileEntry" = [ "FileSystemEntry" ];
          "FocusEvent" = [ "Event" "UiEvent" ];
          "FontFaceSet" = [ "EventTarget" ];
          "FontFaceSetLoadEvent" = [ "Event" ];
          "GainNode" = [ "AudioNode" "EventTarget" ];
          "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
          "GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
          "GamepadEvent" = [ "Event" ];
          "GpuDevice" = [ "EventTarget" ];
          "GpuOutOfMemoryError" = [ "GpuError" ];
          "GpuUncapturedErrorEvent" = [ "Event" ];
          "GpuValidationError" = [ "GpuError" ];
          "HashChangeEvent" = [ "Event" ];
          "Hid" = [ "EventTarget" ];
          "HidConnectionEvent" = [ "Event" ];
          "HidDevice" = [ "EventTarget" ];
          "HidInputReportEvent" = [ "Event" ];
          "HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
          "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDocument" = [ "Document" "EventTarget" "Node" ];
          "HtmlElement" = [ "Element" "EventTarget" "Node" ];
          "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFormControlsCollection" = [ "HtmlCollection" ];
          "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptionsCollection" = [ "HtmlCollection" ];
          "HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
          "IdbCursorWithValue" = [ "IdbCursor" ];
          "IdbDatabase" = [ "EventTarget" ];
          "IdbFileHandle" = [ "EventTarget" ];
          "IdbFileRequest" = [ "DomRequest" "EventTarget" ];
          "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
          "IdbMutableFile" = [ "EventTarget" ];
          "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
          "IdbRequest" = [ "EventTarget" ];
          "IdbTransaction" = [ "EventTarget" ];
          "IdbVersionChangeEvent" = [ "Event" ];
          "IirFilterNode" = [ "AudioNode" "EventTarget" ];
          "ImageCaptureErrorEvent" = [ "Event" ];
          "ImageTrack" = [ "EventTarget" ];
          "InputEvent" = [ "Event" "UiEvent" ];
          "KeyboardEvent" = [ "Event" "UiEvent" ];
          "KeyframeEffect" = [ "AnimationEffect" ];
          "LocalMediaStream" = [ "EventTarget" "MediaStream" ];
          "MediaDevices" = [ "EventTarget" ];
          "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ];
          "MediaEncryptedEvent" = [ "Event" ];
          "MediaKeyError" = [ "Event" ];
          "MediaKeyMessageEvent" = [ "Event" ];
          "MediaKeySession" = [ "EventTarget" ];
          "MediaQueryList" = [ "EventTarget" ];
          "MediaQueryListEvent" = [ "Event" ];
          "MediaRecorder" = [ "EventTarget" ];
          "MediaRecorderErrorEvent" = [ "Event" ];
          "MediaSource" = [ "EventTarget" ];
          "MediaStream" = [ "EventTarget" ];
          "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ];
          "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ];
          "MediaStreamEvent" = [ "Event" ];
          "MediaStreamTrack" = [ "EventTarget" ];
          "MediaStreamTrackEvent" = [ "Event" ];
          "MediaStreamTrackGenerator" = [ "EventTarget" "MediaStreamTrack" ];
          "MessageEvent" = [ "Event" ];
          "MessagePort" = [ "EventTarget" ];
          "MidiAccess" = [ "EventTarget" ];
          "MidiConnectionEvent" = [ "Event" ];
          "MidiInput" = [ "EventTarget" "MidiPort" ];
          "MidiMessageEvent" = [ "Event" ];
          "MidiOutput" = [ "EventTarget" "MidiPort" ];
          "MidiPort" = [ "EventTarget" ];
          "MouseEvent" = [ "Event" "UiEvent" ];
          "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "MutationEvent" = [ "Event" ];
          "NetworkInformation" = [ "EventTarget" ];
          "Node" = [ "EventTarget" ];
          "Notification" = [ "EventTarget" ];
          "NotificationEvent" = [ "Event" "ExtendableEvent" ];
          "OfflineAudioCompletionEvent" = [ "Event" ];
          "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ];
          "OfflineResourceList" = [ "EventTarget" ];
          "OffscreenCanvas" = [ "EventTarget" ];
          "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "PageTransitionEvent" = [ "Event" ];
          "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ];
          "PannerNode" = [ "AudioNode" "EventTarget" ];
          "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ];
          "PaymentRequestUpdateEvent" = [ "Event" ];
          "Performance" = [ "EventTarget" ];
          "PerformanceMark" = [ "PerformanceEntry" ];
          "PerformanceMeasure" = [ "PerformanceEntry" ];
          "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ];
          "PerformanceResourceTiming" = [ "PerformanceEntry" ];
          "PermissionStatus" = [ "EventTarget" ];
          "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "PopStateEvent" = [ "Event" ];
          "PopupBlockedEvent" = [ "Event" ];
          "PresentationAvailability" = [ "EventTarget" ];
          "PresentationConnection" = [ "EventTarget" ];
          "PresentationConnectionAvailableEvent" = [ "Event" ];
          "PresentationConnectionCloseEvent" = [ "Event" ];
          "PresentationConnectionList" = [ "EventTarget" ];
          "PresentationRequest" = [ "EventTarget" ];
          "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ];
          "ProgressEvent" = [ "Event" ];
          "PromiseRejectionEvent" = [ "Event" ];
          "PublicKeyCredential" = [ "Credential" ];
          "PushEvent" = [ "Event" "ExtendableEvent" ];
          "RadioNodeList" = [ "NodeList" ];
          "RtcDataChannel" = [ "EventTarget" ];
          "RtcDataChannelEvent" = [ "Event" ];
          "RtcPeerConnection" = [ "EventTarget" ];
          "RtcPeerConnectionIceEvent" = [ "Event" ];
          "RtcTrackEvent" = [ "Event" ];
          "RtcdtmfSender" = [ "EventTarget" ];
          "RtcdtmfToneChangeEvent" = [ "Event" ];
          "Screen" = [ "EventTarget" ];
          "ScreenOrientation" = [ "EventTarget" ];
          "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
          "ScrollAreaEvent" = [ "Event" "UiEvent" ];
          "SecurityPolicyViolationEvent" = [ "Event" ];
          "ServiceWorker" = [ "EventTarget" ];
          "ServiceWorkerContainer" = [ "EventTarget" ];
          "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "ServiceWorkerRegistration" = [ "EventTarget" ];
          "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ];
          "SharedWorker" = [ "EventTarget" ];
          "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "SourceBuffer" = [ "EventTarget" ];
          "SourceBufferList" = [ "EventTarget" ];
          "SpeechRecognition" = [ "EventTarget" ];
          "SpeechRecognitionError" = [ "Event" ];
          "SpeechRecognitionEvent" = [ "Event" ];
          "SpeechSynthesis" = [ "EventTarget" ];
          "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ];
          "SpeechSynthesisEvent" = [ "Event" ];
          "SpeechSynthesisUtterance" = [ "EventTarget" ];
          "StereoPannerNode" = [ "AudioNode" "EventTarget" ];
          "StorageEvent" = [ "Event" ];
          "SubmitEvent" = [ "Event" ];
          "SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
          "SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
          "SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
          "SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgElement" = [ "Element" "EventTarget" "Node" ];
          "SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
          "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgPathSegArcAbs" = [ "SvgPathSeg" ];
          "SvgPathSegArcRel" = [ "SvgPathSeg" ];
          "SvgPathSegClosePath" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ];
          "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ];
          "SvgPathSegMovetoRel" = [ "SvgPathSeg" ];
          "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
          "SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
          "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
          "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
          "SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
          "SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
          "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
          "SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
          "SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
          "SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
          "SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
          "SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
          "TcpServerSocket" = [ "EventTarget" ];
          "TcpServerSocketEvent" = [ "Event" ];
          "TcpSocket" = [ "EventTarget" ];
          "TcpSocketErrorEvent" = [ "Event" ];
          "TcpSocketEvent" = [ "Event" ];
          "Text" = [ "CharacterData" "EventTarget" "Node" ];
          "TextTrack" = [ "EventTarget" ];
          "TextTrackCue" = [ "EventTarget" ];
          "TextTrackList" = [ "EventTarget" ];
          "TimeEvent" = [ "Event" ];
          "TouchEvent" = [ "Event" "UiEvent" ];
          "TrackEvent" = [ "Event" ];
          "TransitionEvent" = [ "Event" ];
          "UiEvent" = [ "Event" ];
          "Usb" = [ "EventTarget" ];
          "UsbConnectionEvent" = [ "Event" ];
          "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
          "UserProximityEvent" = [ "Event" ];
          "ValueEvent" = [ "Event" ];
          "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
          "VideoTrackList" = [ "EventTarget" ];
          "VrDisplay" = [ "EventTarget" ];
          "VttCue" = [ "EventTarget" "TextTrackCue" ];
          "WakeLockSentinel" = [ "EventTarget" ];
          "WaveShaperNode" = [ "AudioNode" "EventTarget" ];
          "WebGlContextEvent" = [ "Event" ];
          "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
          "WebSocket" = [ "EventTarget" ];
          "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "Window" = [ "EventTarget" ];
          "WindowClient" = [ "Client" ];
          "Worker" = [ "EventTarget" ];
          "WorkerDebuggerGlobalScope" = [ "EventTarget" ];
          "WorkerGlobalScope" = [ "EventTarget" ];
          "XmlDocument" = [ "Document" "EventTarget" "Node" ];
          "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
          "XmlHttpRequestEventTarget" = [ "EventTarget" ];
          "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
          "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
          "XrInputSourceEvent" = [ "Event" ];
          "XrInputSourcesChangeEvent" = [ "Event" ];
          "XrLayer" = [ "EventTarget" ];
          "XrPermissionStatus" = [ "EventTarget" "PermissionStatus" ];
          "XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
          "XrReferenceSpaceEvent" = [ "Event" ];
          "XrSession" = [ "EventTarget" ];
          "XrSessionEvent" = [ "Event" ];
          "XrSpace" = [ "EventTarget" ];
          "XrSystem" = [ "EventTarget" ];
          "XrViewerPose" = [ "XrPose" ];
          "XrWebGlLayer" = [ "EventTarget" "XrLayer" ];
        };
        resolvedDefaultFeatures = [ "Blob" "BlobPropertyBag" "Crypto" "Event" "EventTarget" "File" "FormData" "Headers" "MessageEvent" "Request" "RequestCredentials" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "Worker" "WorkerGlobalScope" ];
      };
      "webpki" = rec {
        crateName = "webpki";
        version = "0.22.0";
        edition = "2018";
        sha256 = "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh";
        authors = [
          "Brian Smith <brian@briansmith.org>"
        ];
        dependencies = [
          {
            name = "ring";
            packageId = "ring";
            usesDefaultFeatures = false;
          }
          {
            name = "untrusted";
            packageId = "untrusted";
          }
        ];
        features = {
          "alloc" = [ "ring/alloc" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "std" ];
      };
      "webpki-roots" = rec {
        crateName = "webpki-roots";
        version = "0.22.4";
        edition = "2018";
        crateBin = [];
        sha256 = "1bsdn08zs1k0hdgd350z5695s7v97vi1cy7d095c59k6sgq61izi";
        authors = [
          "Joseph Birr-Pixton <jpixton@gmail.com>"
        ];
        dependencies = [
          {
            name = "webpki";
            packageId = "webpki";
          }
        ];

      };
      "winapi" = rec {
        crateName = "winapi";
        version = "0.3.9";
        edition = "2015";
        sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi-i686-pc-windows-gnu";
            packageId = "winapi-i686-pc-windows-gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu");
          }
          {
            name = "winapi-x86_64-pc-windows-gnu";
            packageId = "winapi-x86_64-pc-windows-gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
          }
        ];
        features = {
          "debug" = [ "impl-debug" ];
        };
        resolvedDefaultFeatures = [ "errhandlingapi" "fileapi" "handleapi" "impl-debug" "impl-default" "minwinbase" "minwindef" "namedpipeapi" "ntdef" "ntsecapi" "profileapi" "std" "sysinfoapi" "timezoneapi" "winbase" "winerror" "winnt" "winreg" "ws2ipdef" "ws2tcpip" "wtypesbase" ];
      };
      "winapi-i686-pc-windows-gnu" = rec {
        crateName = "winapi-i686-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "winapi-x86_64-pc-windows-gnu" = rec {
        crateName = "winapi-x86_64-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "windows-sys" = rec {
        crateName = "windows-sys";
        version = "0.36.1";
        edition = "2018";
        sha256 = "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a";
        authors = [
          "Microsoft"
        ];
        dependencies = [
          {
            name = "windows_aarch64_msvc";
            packageId = "windows_aarch64_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "aarch64-pc-windows-msvc");
          }
          {
            name = "windows_aarch64_msvc";
            packageId = "windows_aarch64_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "aarch64-uwp-windows-msvc");
          }
          {
            name = "windows_i686_gnu";
            packageId = "windows_i686_gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu");
          }
          {
            name = "windows_i686_gnu";
            packageId = "windows_i686_gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "i686-uwp-windows-gnu");
          }
          {
            name = "windows_i686_msvc";
            packageId = "windows_i686_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-msvc");
          }
          {
            name = "windows_i686_msvc";
            packageId = "windows_i686_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "i686-uwp-windows-msvc");
          }
          {
            name = "windows_x86_64_gnu";
            packageId = "windows_x86_64_gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
          }
          {
            name = "windows_x86_64_gnu";
            packageId = "windows_x86_64_gnu";
            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-uwp-windows-gnu");
          }
          {
            name = "windows_x86_64_msvc";
            packageId = "windows_x86_64_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-msvc");
          }
          {
            name = "windows_x86_64_msvc";
            packageId = "windows_x86_64_msvc";
            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-uwp-windows-msvc");
          }
        ];
        features = {
          "AI_MachineLearning" = [ "AI" ];
          "AI_MachineLearning_Preview" = [ "AI_MachineLearning" ];
          "ApplicationModel_Activation" = [ "ApplicationModel" ];
          "ApplicationModel_AppExtensions" = [ "ApplicationModel" ];
          "ApplicationModel_AppService" = [ "ApplicationModel" ];
          "ApplicationModel_Appointments" = [ "ApplicationModel" ];
          "ApplicationModel_Appointments_AppointmentsProvider" = [ "ApplicationModel_Appointments" ];
          "ApplicationModel_Appointments_DataProvider" = [ "ApplicationModel_Appointments" ];
          "ApplicationModel_Background" = [ "ApplicationModel" ];
          "ApplicationModel_Calls" = [ "ApplicationModel" ];
          "ApplicationModel_Calls_Background" = [ "ApplicationModel_Calls" ];
          "ApplicationModel_Calls_Provider" = [ "ApplicationModel_Calls" ];
          "ApplicationModel_Chat" = [ "ApplicationModel" ];
          "ApplicationModel_CommunicationBlocking" = [ "ApplicationModel" ];
          "ApplicationModel_Contacts" = [ "ApplicationModel" ];
          "ApplicationModel_Contacts_DataProvider" = [ "ApplicationModel_Contacts" ];
          "ApplicationModel_Contacts_Provider" = [ "ApplicationModel_Contacts" ];
          "ApplicationModel_ConversationalAgent" = [ "ApplicationModel" ];
          "ApplicationModel_Core" = [ "ApplicationModel" ];
          "ApplicationModel_DataTransfer" = [ "ApplicationModel" ];
          "ApplicationModel_DataTransfer_DragDrop" = [ "ApplicationModel_DataTransfer" ];
          "ApplicationModel_DataTransfer_DragDrop_Core" = [ "ApplicationModel_DataTransfer_DragDrop" ];
          "ApplicationModel_DataTransfer_ShareTarget" = [ "ApplicationModel_DataTransfer" ];
          "ApplicationModel_Email" = [ "ApplicationModel" ];
          "ApplicationModel_Email_DataProvider" = [ "ApplicationModel_Email" ];
          "ApplicationModel_ExtendedExecution" = [ "ApplicationModel" ];
          "ApplicationModel_ExtendedExecution_Foreground" = [ "ApplicationModel_ExtendedExecution" ];
          "ApplicationModel_Holographic" = [ "ApplicationModel" ];
          "ApplicationModel_LockScreen" = [ "ApplicationModel" ];
          "ApplicationModel_Payments" = [ "ApplicationModel" ];
          "ApplicationModel_Payments_Provider" = [ "ApplicationModel_Payments" ];
          "ApplicationModel_Preview" = [ "ApplicationModel" ];
          "ApplicationModel_Preview_Holographic" = [ "ApplicationModel_Preview" ];
          "ApplicationModel_Preview_InkWorkspace" = [ "ApplicationModel_Preview" ];
          "ApplicationModel_Preview_Notes" = [ "ApplicationModel_Preview" ];
          "ApplicationModel_Resources" = [ "ApplicationModel" ];
          "ApplicationModel_Resources_Core" = [ "ApplicationModel_Resources" ];
          "ApplicationModel_Resources_Management" = [ "ApplicationModel_Resources" ];
          "ApplicationModel_Search" = [ "ApplicationModel" ];
          "ApplicationModel_Search_Core" = [ "ApplicationModel_Search" ];
          "ApplicationModel_SocialInfo" = [ "ApplicationModel" ];
          "ApplicationModel_SocialInfo_Provider" = [ "ApplicationModel_SocialInfo" ];
          "ApplicationModel_Store" = [ "ApplicationModel" ];
          "ApplicationModel_Store_LicenseManagement" = [ "ApplicationModel_Store" ];
          "ApplicationModel_Store_Preview" = [ "ApplicationModel_Store" ];
          "ApplicationModel_Store_Preview_InstallControl" = [ "ApplicationModel_Store_Preview" ];
          "ApplicationModel_UserActivities" = [ "ApplicationModel" ];
          "ApplicationModel_UserActivities_Core" = [ "ApplicationModel_UserActivities" ];
          "ApplicationModel_UserDataAccounts" = [ "ApplicationModel" ];
          "ApplicationModel_UserDataAccounts_Provider" = [ "ApplicationModel_UserDataAccounts" ];
          "ApplicationModel_UserDataAccounts_SystemAccess" = [ "ApplicationModel_UserDataAccounts" ];
          "ApplicationModel_UserDataTasks" = [ "ApplicationModel" ];
          "ApplicationModel_UserDataTasks_DataProvider" = [ "ApplicationModel_UserDataTasks" ];
          "ApplicationModel_VoiceCommands" = [ "ApplicationModel" ];
          "ApplicationModel_Wallet" = [ "ApplicationModel" ];
          "ApplicationModel_Wallet_System" = [ "ApplicationModel_Wallet" ];
          "Data_Html" = [ "Data" ];
          "Data_Json" = [ "Data" ];
          "Data_Pdf" = [ "Data" ];
          "Data_Text" = [ "Data" ];
          "Data_Xml" = [ "Data" ];
          "Data_Xml_Dom" = [ "Data_Xml" ];
          "Data_Xml_Xsl" = [ "Data_Xml" ];
          "Devices_Adc" = [ "Devices" ];
          "Devices_Adc_Provider" = [ "Devices_Adc" ];
          "Devices_AllJoyn" = [ "Devices" ];
          "Devices_Background" = [ "Devices" ];
          "Devices_Bluetooth" = [ "Devices" ];
          "Devices_Bluetooth_Advertisement" = [ "Devices_Bluetooth" ];
          "Devices_Bluetooth_Background" = [ "Devices_Bluetooth" ];
          "Devices_Bluetooth_GenericAttributeProfile" = [ "Devices_Bluetooth" ];
          "Devices_Bluetooth_Rfcomm" = [ "Devices_Bluetooth" ];
          "Devices_Custom" = [ "Devices" ];
          "Devices_Display" = [ "Devices" ];
          "Devices_Display_Core" = [ "Devices_Display" ];
          "Devices_Enumeration" = [ "Devices" ];
          "Devices_Enumeration_Pnp" = [ "Devices_Enumeration" ];
          "Devices_Geolocation" = [ "Devices" ];
          "Devices_Geolocation_Geofencing" = [ "Devices_Geolocation" ];
          "Devices_Gpio" = [ "Devices" ];
          "Devices_Gpio_Provider" = [ "Devices_Gpio" ];
          "Devices_Haptics" = [ "Devices" ];
          "Devices_HumanInterfaceDevice" = [ "Devices" ];
          "Devices_I2c" = [ "Devices" ];
          "Devices_I2c_Provider" = [ "Devices_I2c" ];
          "Devices_Input" = [ "Devices" ];
          "Devices_Input_Preview" = [ "Devices_Input" ];
          "Devices_Lights" = [ "Devices" ];
          "Devices_Lights_Effects" = [ "Devices_Lights" ];
          "Devices_Midi" = [ "Devices" ];
          "Devices_Perception" = [ "Devices" ];
          "Devices_Perception_Provider" = [ "Devices_Perception" ];
          "Devices_PointOfService" = [ "Devices" ];
          "Devices_PointOfService_Provider" = [ "Devices_PointOfService" ];
          "Devices_Portable" = [ "Devices" ];
          "Devices_Power" = [ "Devices" ];
          "Devices_Printers" = [ "Devices" ];
          "Devices_Printers_Extensions" = [ "Devices_Printers" ];
          "Devices_Pwm" = [ "Devices" ];
          "Devices_Pwm_Provider" = [ "Devices_Pwm" ];
          "Devices_Radios" = [ "Devices" ];
          "Devices_Scanners" = [ "Devices" ];
          "Devices_Sensors" = [ "Devices" ];
          "Devices_Sensors_Custom" = [ "Devices_Sensors" ];
          "Devices_SerialCommunication" = [ "Devices" ];
          "Devices_SmartCards" = [ "Devices" ];
          "Devices_Sms" = [ "Devices" ];
          "Devices_Spi" = [ "Devices" ];
          "Devices_Spi_Provider" = [ "Devices_Spi" ];
          "Devices_Usb" = [ "Devices" ];
          "Devices_WiFi" = [ "Devices" ];
          "Devices_WiFiDirect" = [ "Devices" ];
          "Devices_WiFiDirect_Services" = [ "Devices_WiFiDirect" ];
          "Embedded_DeviceLockdown" = [ "Embedded" ];
          "Foundation_Collections" = [ "Foundation" ];
          "Foundation_Diagnostics" = [ "Foundation" ];
          "Foundation_Metadata" = [ "Foundation" ];
          "Foundation_Numerics" = [ "Foundation" ];
          "Gaming_Input" = [ "Gaming" ];
          "Gaming_Input_Custom" = [ "Gaming_Input" ];
          "Gaming_Input_ForceFeedback" = [ "Gaming_Input" ];
          "Gaming_Input_Preview" = [ "Gaming_Input" ];
          "Gaming_Preview" = [ "Gaming" ];
          "Gaming_Preview_GamesEnumeration" = [ "Gaming_Preview" ];
          "Gaming_UI" = [ "Gaming" ];
          "Gaming_XboxLive" = [ "Gaming" ];
          "Gaming_XboxLive_Storage" = [ "Gaming_XboxLive" ];
          "Globalization_Collation" = [ "Globalization" ];
          "Globalization_DateTimeFormatting" = [ "Globalization" ];
          "Globalization_Fonts" = [ "Globalization" ];
          "Globalization_NumberFormatting" = [ "Globalization" ];
          "Globalization_PhoneNumberFormatting" = [ "Globalization" ];
          "Graphics_Capture" = [ "Graphics" ];
          "Graphics_DirectX" = [ "Graphics" ];
          "Graphics_DirectX_Direct3D11" = [ "Graphics_DirectX" ];
          "Graphics_Display" = [ "Graphics" ];
          "Graphics_Display_Core" = [ "Graphics_Display" ];
          "Graphics_Effects" = [ "Graphics" ];
          "Graphics_Holographic" = [ "Graphics" ];
          "Graphics_Imaging" = [ "Graphics" ];
          "Graphics_Printing" = [ "Graphics" ];
          "Graphics_Printing3D" = [ "Graphics" ];
          "Graphics_Printing_OptionDetails" = [ "Graphics_Printing" ];
          "Graphics_Printing_PrintSupport" = [ "Graphics_Printing" ];
          "Graphics_Printing_PrintTicket" = [ "Graphics_Printing" ];
          "Graphics_Printing_Workflow" = [ "Graphics_Printing" ];
          "Management_Core" = [ "Management" ];
          "Management_Deployment" = [ "Management" ];
          "Management_Deployment_Preview" = [ "Management_Deployment" ];
          "Management_Policies" = [ "Management" ];
          "Management_Update" = [ "Management" ];
          "Management_Workplace" = [ "Management" ];
          "Media_AppBroadcasting" = [ "Media" ];
          "Media_AppRecording" = [ "Media" ];
          "Media_Audio" = [ "Media" ];
          "Media_Capture" = [ "Media" ];
          "Media_Capture_Core" = [ "Media_Capture" ];
          "Media_Capture_Frames" = [ "Media_Capture" ];
          "Media_Casting" = [ "Media" ];
          "Media_ClosedCaptioning" = [ "Media" ];
          "Media_ContentRestrictions" = [ "Media" ];
          "Media_Control" = [ "Media" ];
          "Media_Core" = [ "Media" ];
          "Media_Core_Preview" = [ "Media_Core" ];
          "Media_Devices" = [ "Media" ];
          "Media_Devices_Core" = [ "Media_Devices" ];
          "Media_DialProtocol" = [ "Media" ];
          "Media_Editing" = [ "Media" ];
          "Media_Effects" = [ "Media" ];
          "Media_FaceAnalysis" = [ "Media" ];
          "Media_Import" = [ "Media" ];
          "Media_MediaProperties" = [ "Media" ];
          "Media_Miracast" = [ "Media" ];
          "Media_Ocr" = [ "Media" ];
          "Media_PlayTo" = [ "Media" ];
          "Media_Playback" = [ "Media" ];
          "Media_Playlists" = [ "Media" ];
          "Media_Protection" = [ "Media" ];
          "Media_Protection_PlayReady" = [ "Media_Protection" ];
          "Media_Render" = [ "Media" ];
          "Media_SpeechRecognition" = [ "Media" ];
          "Media_SpeechSynthesis" = [ "Media" ];
          "Media_Streaming" = [ "Media" ];
          "Media_Streaming_Adaptive" = [ "Media_Streaming" ];
          "Media_Transcoding" = [ "Media" ];
          "Networking_BackgroundTransfer" = [ "Networking" ];
          "Networking_Connectivity" = [ "Networking" ];
          "Networking_NetworkOperators" = [ "Networking" ];
          "Networking_Proximity" = [ "Networking" ];
          "Networking_PushNotifications" = [ "Networking" ];
          "Networking_ServiceDiscovery" = [ "Networking" ];
          "Networking_ServiceDiscovery_Dnssd" = [ "Networking_ServiceDiscovery" ];
          "Networking_Sockets" = [ "Networking" ];
          "Networking_Vpn" = [ "Networking" ];
          "Networking_XboxLive" = [ "Networking" ];
          "Perception_Automation" = [ "Perception" ];
          "Perception_Automation_Core" = [ "Perception_Automation" ];
          "Perception_People" = [ "Perception" ];
          "Perception_Spatial" = [ "Perception" ];
          "Perception_Spatial_Preview" = [ "Perception_Spatial" ];
          "Perception_Spatial_Surfaces" = [ "Perception_Spatial" ];
          "Phone_ApplicationModel" = [ "Phone" ];
          "Phone_Devices" = [ "Phone" ];
          "Phone_Devices_Notification" = [ "Phone_Devices" ];
          "Phone_Devices_Power" = [ "Phone_Devices" ];
          "Phone_Management" = [ "Phone" ];
          "Phone_Management_Deployment" = [ "Phone_Management" ];
          "Phone_Media" = [ "Phone" ];
          "Phone_Media_Devices" = [ "Phone_Media" ];
          "Phone_Notification" = [ "Phone" ];
          "Phone_Notification_Management" = [ "Phone_Notification" ];
          "Phone_PersonalInformation" = [ "Phone" ];
          "Phone_PersonalInformation_Provisioning" = [ "Phone_PersonalInformation" ];
          "Phone_Speech" = [ "Phone" ];
          "Phone_Speech_Recognition" = [ "Phone_Speech" ];
          "Phone_StartScreen" = [ "Phone" ];
          "Phone_System" = [ "Phone" ];
          "Phone_System_Power" = [ "Phone_System" ];
          "Phone_System_Profile" = [ "Phone_System" ];
          "Phone_System_UserProfile" = [ "Phone_System" ];
          "Phone_System_UserProfile_GameServices" = [ "Phone_System_UserProfile" ];
          "Phone_System_UserProfile_GameServices_Core" = [ "Phone_System_UserProfile_GameServices" ];
          "Phone_UI" = [ "Phone" ];
          "Phone_UI_Input" = [ "Phone_UI" ];
          "Security_Authentication" = [ "Security" ];
          "Security_Authentication_Identity" = [ "Security_Authentication" ];
          "Security_Authentication_Identity_Core" = [ "Security_Authentication_Identity" ];
          "Security_Authentication_Identity_Provider" = [ "Security_Authentication_Identity" ];
          "Security_Authentication_OnlineId" = [ "Security_Authentication" ];
          "Security_Authentication_Web" = [ "Security_Authentication" ];
          "Security_Authentication_Web_Core" = [ "Security_Authentication_Web" ];
          "Security_Authentication_Web_Provider" = [ "Security_Authentication_Web" ];
          "Security_Authorization" = [ "Security" ];
          "Security_Authorization_AppCapabilityAccess" = [ "Security_Authorization" ];
          "Security_Credentials" = [ "Security" ];
          "Security_Credentials_UI" = [ "Security_Credentials" ];
          "Security_Cryptography" = [ "Security" ];
          "Security_Cryptography_Certificates" = [ "Security_Cryptography" ];
          "Security_Cryptography_Core" = [ "Security_Cryptography" ];
          "Security_Cryptography_DataProtection" = [ "Security_Cryptography" ];
          "Security_DataProtection" = [ "Security" ];
          "Security_EnterpriseData" = [ "Security" ];
          "Security_ExchangeActiveSyncProvisioning" = [ "Security" ];
          "Security_Isolation" = [ "Security" ];
          "Services_Cortana" = [ "Services" ];
          "Services_Maps" = [ "Services" ];
          "Services_Maps_Guidance" = [ "Services_Maps" ];
          "Services_Maps_LocalSearch" = [ "Services_Maps" ];
          "Services_Maps_OfflineMaps" = [ "Services_Maps" ];
          "Services_Store" = [ "Services" ];
          "Services_TargetedContent" = [ "Services" ];
          "Storage_AccessCache" = [ "Storage" ];
          "Storage_BulkAccess" = [ "Storage" ];
          "Storage_Compression" = [ "Storage" ];
          "Storage_FileProperties" = [ "Storage" ];
          "Storage_Pickers" = [ "Storage" ];
          "Storage_Pickers_Provider" = [ "Storage_Pickers" ];
          "Storage_Provider" = [ "Storage" ];
          "Storage_Search" = [ "Storage" ];
          "Storage_Streams" = [ "Storage" ];
          "System_Diagnostics" = [ "System" ];
          "System_Diagnostics_DevicePortal" = [ "System_Diagnostics" ];
          "System_Diagnostics_Telemetry" = [ "System_Diagnostics" ];
          "System_Diagnostics_TraceReporting" = [ "System_Diagnostics" ];
          "System_Display" = [ "System" ];
          "System_Implementation" = [ "System" ];
          "System_Implementation_FileExplorer" = [ "System_Implementation" ];
          "System_Inventory" = [ "System" ];
          "System_Power" = [ "System" ];
          "System_Power_Diagnostics" = [ "System_Power" ];
          "System_Preview" = [ "System" ];
          "System_Profile" = [ "System" ];
          "System_Profile_SystemManufacturers" = [ "System_Profile" ];
          "System_RemoteDesktop" = [ "System" ];
          "System_RemoteDesktop_Input" = [ "System_RemoteDesktop" ];
          "System_RemoteSystems" = [ "System" ];
          "System_Threading" = [ "System" ];
          "System_Threading_Core" = [ "System_Threading" ];
          "System_Update" = [ "System" ];
          "System_UserProfile" = [ "System" ];
          "UI_Accessibility" = [ "UI" ];
          "UI_ApplicationSettings" = [ "UI" ];
          "UI_Composition" = [ "UI" ];
          "UI_Composition_Core" = [ "UI_Composition" ];
          "UI_Composition_Desktop" = [ "UI_Composition" ];
          "UI_Composition_Diagnostics" = [ "UI_Composition" ];
          "UI_Composition_Effects" = [ "UI_Composition" ];
          "UI_Composition_Interactions" = [ "UI_Composition" ];
          "UI_Composition_Scenes" = [ "UI_Composition" ];
          "UI_Core" = [ "UI" ];
          "UI_Core_AnimationMetrics" = [ "UI_Core" ];
          "UI_Core_Preview" = [ "UI_Core" ];
          "UI_Input" = [ "UI" ];
          "UI_Input_Core" = [ "UI_Input" ];
          "UI_Input_Inking" = [ "UI_Input" ];
          "UI_Input_Inking_Analysis" = [ "UI_Input_Inking" ];
          "UI_Input_Inking_Core" = [ "UI_Input_Inking" ];
          "UI_Input_Inking_Preview" = [ "UI_Input_Inking" ];
          "UI_Input_Preview" = [ "UI_Input" ];
          "UI_Input_Preview_Injection" = [ "UI_Input_Preview" ];
          "UI_Input_Spatial" = [ "UI_Input" ];
          "UI_Notifications" = [ "UI" ];
          "UI_Notifications_Management" = [ "UI_Notifications" ];
          "UI_Popups" = [ "UI" ];
          "UI_Shell" = [ "UI" ];
          "UI_StartScreen" = [ "UI" ];
          "UI_Text" = [ "UI" ];
          "UI_Text_Core" = [ "UI_Text" ];
          "UI_UIAutomation" = [ "UI" ];
          "UI_UIAutomation_Core" = [ "UI_UIAutomation" ];
          "UI_ViewManagement" = [ "UI" ];
          "UI_ViewManagement_Core" = [ "UI_ViewManagement" ];
          "UI_WebUI" = [ "UI" ];
          "UI_WebUI_Core" = [ "UI_WebUI" ];
          "UI_WindowManagement" = [ "UI" ];
          "UI_WindowManagement_Preview" = [ "UI_WindowManagement" ];
          "UI_Xaml" = [ "UI" ];
          "UI_Xaml_Automation" = [ "UI_Xaml" ];
          "UI_Xaml_Automation_Peers" = [ "UI_Xaml_Automation" ];
          "UI_Xaml_Automation_Provider" = [ "UI_Xaml_Automation" ];
          "UI_Xaml_Automation_Text" = [ "UI_Xaml_Automation" ];
          "UI_Xaml_Controls" = [ "UI_Xaml" ];
          "UI_Xaml_Controls_Maps" = [ "UI_Xaml_Controls" ];
          "UI_Xaml_Controls_Primitives" = [ "UI_Xaml_Controls" ];
          "UI_Xaml_Core" = [ "UI_Xaml" ];
          "UI_Xaml_Core_Direct" = [ "UI_Xaml_Core" ];
          "UI_Xaml_Data" = [ "UI_Xaml" ];
          "UI_Xaml_Documents" = [ "UI_Xaml" ];
          "UI_Xaml_Hosting" = [ "UI_Xaml" ];
          "UI_Xaml_Input" = [ "UI_Xaml" ];
          "UI_Xaml_Interop" = [ "UI_Xaml" ];
          "UI_Xaml_Markup" = [ "UI_Xaml" ];
          "UI_Xaml_Media" = [ "UI_Xaml" ];
          "UI_Xaml_Media_Animation" = [ "UI_Xaml_Media" ];
          "UI_Xaml_Media_Imaging" = [ "UI_Xaml_Media" ];
          "UI_Xaml_Media_Media3D" = [ "UI_Xaml_Media" ];
          "UI_Xaml_Navigation" = [ "UI_Xaml" ];
          "UI_Xaml_Printing" = [ "UI_Xaml" ];
          "UI_Xaml_Resources" = [ "UI_Xaml" ];
          "UI_Xaml_Shapes" = [ "UI_Xaml" ];
          "Web_AtomPub" = [ "Web" ];
          "Web_Http" = [ "Web" ];
          "Web_Http_Diagnostics" = [ "Web_Http" ];
          "Web_Http_Filters" = [ "Web_Http" ];
          "Web_Http_Headers" = [ "Web_Http" ];
          "Web_Syndication" = [ "Web" ];
          "Web_UI" = [ "Web" ];
          "Web_UI_Interop" = [ "Web_UI" ];
          "Win32_AI" = [ "Win32" ];
          "Win32_AI_MachineLearning" = [ "Win32_AI" ];
          "Win32_AI_MachineLearning_DirectML" = [ "Win32_AI_MachineLearning" ];
          "Win32_AI_MachineLearning_WinML" = [ "Win32_AI_MachineLearning" ];
          "Win32_Data" = [ "Win32" ];
          "Win32_Data_HtmlHelp" = [ "Win32_Data" ];
          "Win32_Data_RightsManagement" = [ "Win32_Data" ];
          "Win32_Data_Xml" = [ "Win32_Data" ];
          "Win32_Data_Xml_MsXml" = [ "Win32_Data_Xml" ];
          "Win32_Data_Xml_XmlLite" = [ "Win32_Data_Xml" ];
          "Win32_Devices" = [ "Win32" ];
          "Win32_Devices_AllJoyn" = [ "Win32_Devices" ];
          "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ];
          "Win32_Devices_Bluetooth" = [ "Win32_Devices" ];
          "Win32_Devices_Communication" = [ "Win32_Devices" ];
          "Win32_Devices_DeviceAccess" = [ "Win32_Devices" ];
          "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ];
          "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ];
          "Win32_Devices_Display" = [ "Win32_Devices" ];
          "Win32_Devices_Enumeration" = [ "Win32_Devices" ];
          "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ];
          "Win32_Devices_Fax" = [ "Win32_Devices" ];
          "Win32_Devices_FunctionDiscovery" = [ "Win32_Devices" ];
          "Win32_Devices_Geolocation" = [ "Win32_Devices" ];
          "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ];
          "Win32_Devices_ImageAcquisition" = [ "Win32_Devices" ];
          "Win32_Devices_PortableDevices" = [ "Win32_Devices" ];
          "Win32_Devices_Properties" = [ "Win32_Devices" ];
          "Win32_Devices_Pwm" = [ "Win32_Devices" ];
          "Win32_Devices_Sensors" = [ "Win32_Devices" ];
          "Win32_Devices_SerialCommunication" = [ "Win32_Devices" ];
          "Win32_Devices_Tapi" = [ "Win32_Devices" ];
          "Win32_Devices_Usb" = [ "Win32_Devices" ];
          "Win32_Devices_WebServicesOnDevices" = [ "Win32_Devices" ];
          "Win32_Foundation" = [ "Win32" ];
          "Win32_Gaming" = [ "Win32" ];
          "Win32_Globalization" = [ "Win32" ];
          "Win32_Graphics" = [ "Win32" ];
          "Win32_Graphics_CompositionSwapchain" = [ "Win32_Graphics" ];
          "Win32_Graphics_DXCore" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct2D" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct2D_Common" = [ "Win32_Graphics_Direct2D" ];
          "Win32_Graphics_Direct3D" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D10" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D11" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D11on12" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D12" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D9" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D9on12" = [ "Win32_Graphics" ];
          "Win32_Graphics_Direct3D_Dxc" = [ "Win32_Graphics_Direct3D" ];
          "Win32_Graphics_Direct3D_Fxc" = [ "Win32_Graphics_Direct3D" ];
          "Win32_Graphics_DirectComposition" = [ "Win32_Graphics" ];
          "Win32_Graphics_DirectDraw" = [ "Win32_Graphics" ];
          "Win32_Graphics_DirectManipulation" = [ "Win32_Graphics" ];
          "Win32_Graphics_DirectWrite" = [ "Win32_Graphics" ];
          "Win32_Graphics_Dwm" = [ "Win32_Graphics" ];
          "Win32_Graphics_Dxgi" = [ "Win32_Graphics" ];
          "Win32_Graphics_Dxgi_Common" = [ "Win32_Graphics_Dxgi" ];
          "Win32_Graphics_Gdi" = [ "Win32_Graphics" ];
          "Win32_Graphics_Hlsl" = [ "Win32_Graphics" ];
          "Win32_Graphics_Imaging" = [ "Win32_Graphics" ];
          "Win32_Graphics_Imaging_D2D" = [ "Win32_Graphics_Imaging" ];
          "Win32_Graphics_OpenGL" = [ "Win32_Graphics" ];
          "Win32_Graphics_Printing" = [ "Win32_Graphics" ];
          "Win32_Graphics_Printing_PrintTicket" = [ "Win32_Graphics_Printing" ];
          "Win32_Management" = [ "Win32" ];
          "Win32_Management_MobileDeviceManagementRegistration" = [ "Win32_Management" ];
          "Win32_Media" = [ "Win32" ];
          "Win32_Media_Audio" = [ "Win32_Media" ];
          "Win32_Media_Audio_Apo" = [ "Win32_Media_Audio" ];
          "Win32_Media_Audio_DirectMusic" = [ "Win32_Media_Audio" ];
          "Win32_Media_Audio_DirectSound" = [ "Win32_Media_Audio" ];
          "Win32_Media_Audio_Endpoints" = [ "Win32_Media_Audio" ];
          "Win32_Media_Audio_XAudio2" = [ "Win32_Media_Audio" ];
          "Win32_Media_DeviceManager" = [ "Win32_Media" ];
          "Win32_Media_DirectShow" = [ "Win32_Media" ];
          "Win32_Media_DirectShow_Xml" = [ "Win32_Media_DirectShow" ];
          "Win32_Media_DxMediaObjects" = [ "Win32_Media" ];
          "Win32_Media_KernelStreaming" = [ "Win32_Media" ];
          "Win32_Media_LibrarySharingServices" = [ "Win32_Media" ];
          "Win32_Media_MediaFoundation" = [ "Win32_Media" ];
          "Win32_Media_MediaPlayer" = [ "Win32_Media" ];
          "Win32_Media_Multimedia" = [ "Win32_Media" ];
          "Win32_Media_PictureAcquisition" = [ "Win32_Media" ];
          "Win32_Media_Speech" = [ "Win32_Media" ];
          "Win32_Media_Streaming" = [ "Win32_Media" ];
          "Win32_Media_WindowsMediaFormat" = [ "Win32_Media" ];
          "Win32_NetworkManagement" = [ "Win32" ];
          "Win32_NetworkManagement_Dhcp" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_Dns" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_InternetConnectionWizard" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_IpHelper" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_MobileBroadband" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_Multicast" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_Ndis" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_NetBios" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_NetManagement" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_NetShell" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_NetworkDiagnosticsFramework" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_NetworkPolicyServer" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_P2P" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_QoS" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_Rras" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_Snmp" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WNet" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WebDav" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WiFi" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WindowsConnectNow" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WindowsConnectionManager" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WindowsFilteringPlatform" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WindowsFirewall" = [ "Win32_NetworkManagement" ];
          "Win32_NetworkManagement_WindowsNetworkVirtualization" = [ "Win32_NetworkManagement" ];
          "Win32_Networking" = [ "Win32" ];
          "Win32_Networking_ActiveDirectory" = [ "Win32_Networking" ];
          "Win32_Networking_BackgroundIntelligentTransferService" = [ "Win32_Networking" ];
          "Win32_Networking_Clustering" = [ "Win32_Networking" ];
          "Win32_Networking_HttpServer" = [ "Win32_Networking" ];
          "Win32_Networking_Ldap" = [ "Win32_Networking" ];
          "Win32_Networking_NetworkListManager" = [ "Win32_Networking" ];
          "Win32_Networking_RemoteDifferentialCompression" = [ "Win32_Networking" ];
          "Win32_Networking_WebSocket" = [ "Win32_Networking" ];
          "Win32_Networking_WinHttp" = [ "Win32_Networking" ];
          "Win32_Networking_WinInet" = [ "Win32_Networking" ];
          "Win32_Networking_WinSock" = [ "Win32_Networking" ];
          "Win32_Networking_WindowsWebServices" = [ "Win32_Networking" ];
          "Win32_Security" = [ "Win32" ];
          "Win32_Security_AppLocker" = [ "Win32_Security" ];
          "Win32_Security_Authentication" = [ "Win32_Security" ];
          "Win32_Security_Authentication_Identity" = [ "Win32_Security_Authentication" ];
          "Win32_Security_Authentication_Identity_Provider" = [ "Win32_Security_Authentication_Identity" ];
          "Win32_Security_Authorization" = [ "Win32_Security" ];
          "Win32_Security_Authorization_UI" = [ "Win32_Security_Authorization" ];
          "Win32_Security_ConfigurationSnapin" = [ "Win32_Security" ];
          "Win32_Security_Credentials" = [ "Win32_Security" ];
          "Win32_Security_Cryptography" = [ "Win32_Security" ];
          "Win32_Security_Cryptography_Catalog" = [ "Win32_Security_Cryptography" ];
          "Win32_Security_Cryptography_Certificates" = [ "Win32_Security_Cryptography" ];
          "Win32_Security_Cryptography_Sip" = [ "Win32_Security_Cryptography" ];
          "Win32_Security_Cryptography_UI" = [ "Win32_Security_Cryptography" ];
          "Win32_Security_DiagnosticDataQuery" = [ "Win32_Security" ];
          "Win32_Security_DirectoryServices" = [ "Win32_Security" ];
          "Win32_Security_EnterpriseData" = [ "Win32_Security" ];
          "Win32_Security_ExtensibleAuthenticationProtocol" = [ "Win32_Security" ];
          "Win32_Security_Isolation" = [ "Win32_Security" ];
          "Win32_Security_LicenseProtection" = [ "Win32_Security" ];
          "Win32_Security_NetworkAccessProtection" = [ "Win32_Security" ];
          "Win32_Security_Tpm" = [ "Win32_Security" ];
          "Win32_Security_WinTrust" = [ "Win32_Security" ];
          "Win32_Security_WinWlx" = [ "Win32_Security" ];
          "Win32_Storage" = [ "Win32" ];
          "Win32_Storage_Cabinets" = [ "Win32_Storage" ];
          "Win32_Storage_CloudFilters" = [ "Win32_Storage" ];
          "Win32_Storage_Compression" = [ "Win32_Storage" ];
          "Win32_Storage_DataDeduplication" = [ "Win32_Storage" ];
          "Win32_Storage_DistributedFileSystem" = [ "Win32_Storage" ];
          "Win32_Storage_EnhancedStorage" = [ "Win32_Storage" ];
          "Win32_Storage_FileHistory" = [ "Win32_Storage" ];
          "Win32_Storage_FileServerResourceManager" = [ "Win32_Storage" ];
          "Win32_Storage_FileSystem" = [ "Win32_Storage" ];
          "Win32_Storage_Imapi" = [ "Win32_Storage" ];
          "Win32_Storage_IndexServer" = [ "Win32_Storage" ];
          "Win32_Storage_InstallableFileSystems" = [ "Win32_Storage" ];
          "Win32_Storage_IscsiDisc" = [ "Win32_Storage" ];
          "Win32_Storage_Jet" = [ "Win32_Storage" ];
          "Win32_Storage_OfflineFiles" = [ "Win32_Storage" ];
          "Win32_Storage_OperationRecorder" = [ "Win32_Storage" ];
          "Win32_Storage_Packaging" = [ "Win32_Storage" ];
          "Win32_Storage_Packaging_Appx" = [ "Win32_Storage_Packaging" ];
          "Win32_Storage_Packaging_Opc" = [ "Win32_Storage_Packaging" ];
          "Win32_Storage_ProjectedFileSystem" = [ "Win32_Storage" ];
          "Win32_Storage_StructuredStorage" = [ "Win32_Storage" ];
          "Win32_Storage_Vhd" = [ "Win32_Storage" ];
          "Win32_Storage_VirtualDiskService" = [ "Win32_Storage" ];
          "Win32_Storage_Vss" = [ "Win32_Storage" ];
          "Win32_Storage_Xps" = [ "Win32_Storage" ];
          "Win32_Storage_Xps_Printing" = [ "Win32_Storage_Xps" ];
          "Win32_System" = [ "Win32" ];
          "Win32_System_AddressBook" = [ "Win32_System" ];
          "Win32_System_Antimalware" = [ "Win32_System" ];
          "Win32_System_ApplicationInstallationAndServicing" = [ "Win32_System" ];
          "Win32_System_ApplicationVerifier" = [ "Win32_System" ];
          "Win32_System_AssessmentTool" = [ "Win32_System" ];
          "Win32_System_Com" = [ "Win32_System" ];
          "Win32_System_Com_CallObj" = [ "Win32_System_Com" ];
          "Win32_System_Com_ChannelCredentials" = [ "Win32_System_Com" ];
          "Win32_System_Com_Events" = [ "Win32_System_Com" ];
          "Win32_System_Com_Marshal" = [ "Win32_System_Com" ];
          "Win32_System_Com_StructuredStorage" = [ "Win32_System_Com" ];
          "Win32_System_Com_UI" = [ "Win32_System_Com" ];
          "Win32_System_Com_Urlmon" = [ "Win32_System_Com" ];
          "Win32_System_ComponentServices" = [ "Win32_System" ];
          "Win32_System_Console" = [ "Win32_System" ];
          "Win32_System_Contacts" = [ "Win32_System" ];
          "Win32_System_CorrelationVector" = [ "Win32_System" ];
          "Win32_System_DataExchange" = [ "Win32_System" ];
          "Win32_System_DeploymentServices" = [ "Win32_System" ];
          "Win32_System_DesktopSharing" = [ "Win32_System" ];
          "Win32_System_DeveloperLicensing" = [ "Win32_System" ];
          "Win32_System_Diagnostics" = [ "Win32_System" ];
          "Win32_System_Diagnostics_Ceip" = [ "Win32_System_Diagnostics" ];
          "Win32_System_Diagnostics_Debug" = [ "Win32_System_Diagnostics" ];
          "Win32_System_Diagnostics_Debug_WebApp" = [ "Win32_System_Diagnostics_Debug" ];
          "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ];
          "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ];
          "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ];
          "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ];
          "Win32_System_Environment" = [ "Win32_System" ];
          "Win32_System_ErrorReporting" = [ "Win32_System" ];
          "Win32_System_EventCollector" = [ "Win32_System" ];
          "Win32_System_EventLog" = [ "Win32_System" ];
          "Win32_System_EventNotificationService" = [ "Win32_System" ];
          "Win32_System_GroupPolicy" = [ "Win32_System" ];
          "Win32_System_HostCompute" = [ "Win32_System" ];
          "Win32_System_HostComputeNetwork" = [ "Win32_System" ];
          "Win32_System_HostComputeSystem" = [ "Win32_System" ];
          "Win32_System_Hypervisor" = [ "Win32_System" ];
          "Win32_System_IO" = [ "Win32_System" ];
          "Win32_System_Iis" = [ "Win32_System" ];
          "Win32_System_Ioctl" = [ "Win32_System" ];
          "Win32_System_JobObjects" = [ "Win32_System" ];
          "Win32_System_Js" = [ "Win32_System" ];
          "Win32_System_Kernel" = [ "Win32_System" ];
          "Win32_System_LibraryLoader" = [ "Win32_System" ];
          "Win32_System_Mailslots" = [ "Win32_System" ];
          "Win32_System_Mapi" = [ "Win32_System" ];
          "Win32_System_Memory" = [ "Win32_System" ];
          "Win32_System_Memory_NonVolatile" = [ "Win32_System_Memory" ];
          "Win32_System_MessageQueuing" = [ "Win32_System" ];
          "Win32_System_MixedReality" = [ "Win32_System" ];
          "Win32_System_Mmc" = [ "Win32_System" ];
          "Win32_System_Ole" = [ "Win32_System" ];
          "Win32_System_ParentalControls" = [ "Win32_System" ];
          "Win32_System_PasswordManagement" = [ "Win32_System" ];
          "Win32_System_Performance" = [ "Win32_System" ];
          "Win32_System_Performance_HardwareCounterProfiling" = [ "Win32_System_Performance" ];
          "Win32_System_Pipes" = [ "Win32_System" ];
          "Win32_System_Power" = [ "Win32_System" ];
          "Win32_System_ProcessStatus" = [ "Win32_System" ];
          "Win32_System_RealTimeCommunications" = [ "Win32_System" ];
          "Win32_System_Recovery" = [ "Win32_System" ];
          "Win32_System_Registry" = [ "Win32_System" ];
          "Win32_System_RemoteAssistance" = [ "Win32_System" ];
          "Win32_System_RemoteDesktop" = [ "Win32_System" ];
          "Win32_System_RemoteManagement" = [ "Win32_System" ];
          "Win32_System_RestartManager" = [ "Win32_System" ];
          "Win32_System_Restore" = [ "Win32_System" ];
          "Win32_System_Rpc" = [ "Win32_System" ];
          "Win32_System_Search" = [ "Win32_System" ];
          "Win32_System_Search_Common" = [ "Win32_System_Search" ];
          "Win32_System_SecurityCenter" = [ "Win32_System" ];
          "Win32_System_ServerBackup" = [ "Win32_System" ];
          "Win32_System_Services" = [ "Win32_System" ];
          "Win32_System_SettingsManagementInfrastructure" = [ "Win32_System" ];
          "Win32_System_SetupAndMigration" = [ "Win32_System" ];
          "Win32_System_Shutdown" = [ "Win32_System" ];
          "Win32_System_SideShow" = [ "Win32_System" ];
          "Win32_System_StationsAndDesktops" = [ "Win32_System" ];
          "Win32_System_SubsystemForLinux" = [ "Win32_System" ];
          "Win32_System_SystemInformation" = [ "Win32_System" ];
          "Win32_System_SystemServices" = [ "Win32_System" ];
          "Win32_System_TaskScheduler" = [ "Win32_System" ];
          "Win32_System_Threading" = [ "Win32_System" ];
          "Win32_System_Time" = [ "Win32_System" ];
          "Win32_System_TpmBaseServices" = [ "Win32_System" ];
          "Win32_System_TransactionServer" = [ "Win32_System" ];
          "Win32_System_UpdateAgent" = [ "Win32_System" ];
          "Win32_System_UpdateAssessment" = [ "Win32_System" ];
          "Win32_System_UserAccessLogging" = [ "Win32_System" ];
          "Win32_System_VirtualDosMachines" = [ "Win32_System" ];
          "Win32_System_WinRT" = [ "Win32_System" ];
          "Win32_System_WinRT_AllJoyn" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Composition" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_CoreInputView" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Direct3D11" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Display" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Graphics" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Graphics_Capture" = [ "Win32_System_WinRT_Graphics" ];
          "Win32_System_WinRT_Graphics_Direct2D" = [ "Win32_System_WinRT_Graphics" ];
          "Win32_System_WinRT_Graphics_Imaging" = [ "Win32_System_WinRT_Graphics" ];
          "Win32_System_WinRT_Holographic" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Isolation" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_ML" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Media" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Pdf" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Printing" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Shell" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Storage" = [ "Win32_System_WinRT" ];
          "Win32_System_WinRT_Xaml" = [ "Win32_System_WinRT" ];
          "Win32_System_WindowsProgramming" = [ "Win32_System" ];
          "Win32_System_WindowsSync" = [ "Win32_System" ];
          "Win32_System_Wmi" = [ "Win32_System" ];
          "Win32_UI" = [ "Win32" ];
          "Win32_UI_Accessibility" = [ "Win32_UI" ];
          "Win32_UI_Animation" = [ "Win32_UI" ];
          "Win32_UI_ColorSystem" = [ "Win32_UI" ];
          "Win32_UI_Controls" = [ "Win32_UI" ];
          "Win32_UI_Controls_Dialogs" = [ "Win32_UI_Controls" ];
          "Win32_UI_Controls_RichEdit" = [ "Win32_UI_Controls" ];
          "Win32_UI_HiDpi" = [ "Win32_UI" ];
          "Win32_UI_Input" = [ "Win32_UI" ];
          "Win32_UI_Input_Ime" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_Ink" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_KeyboardAndMouse" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_Pointer" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_Radial" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_Touch" = [ "Win32_UI_Input" ];
          "Win32_UI_Input_XboxController" = [ "Win32_UI_Input" ];
          "Win32_UI_InteractionContext" = [ "Win32_UI" ];
          "Win32_UI_LegacyWindowsEnvironmentFeatures" = [ "Win32_UI" ];
          "Win32_UI_Magnification" = [ "Win32_UI" ];
          "Win32_UI_Notifications" = [ "Win32_UI" ];
          "Win32_UI_Ribbon" = [ "Win32_UI" ];
          "Win32_UI_Shell" = [ "Win32_UI" ];
          "Win32_UI_Shell_Common" = [ "Win32_UI_Shell" ];
          "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ];
          "Win32_UI_TabletPC" = [ "Win32_UI" ];
          "Win32_UI_TextServices" = [ "Win32_UI" ];
          "Win32_UI_WindowsAndMessaging" = [ "Win32_UI" ];
          "Win32_UI_Wpf" = [ "Win32_UI" ];
          "Win32_UI_Xaml" = [ "Win32_UI" ];
          "Win32_UI_Xaml_Diagnostics" = [ "Win32_UI_Xaml" ];
          "Win32_Web" = [ "Win32" ];
          "Win32_Web_MsHtml" = [ "Win32_Web" ];
        };
        resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_WindowsProgramming" "default" ];
      };
      "windows_aarch64_msvc" = rec {
        crateName = "windows_aarch64_msvc";
        version = "0.36.1";
        edition = "2018";
        sha256 = "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v";
        authors = [
          "Microsoft"
        ];

      };
      "windows_i686_gnu" = rec {
        crateName = "windows_i686_gnu";
        version = "0.36.1";
        edition = "2018";
        sha256 = "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq";
        authors = [
          "Microsoft"
        ];

      };
      "windows_i686_msvc" = rec {
        crateName = "windows_i686_msvc";
        version = "0.36.1";
        edition = "2018";
        sha256 = "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2";
        authors = [
          "Microsoft"
        ];

      };
      "windows_x86_64_gnu" = rec {
        crateName = "windows_x86_64_gnu";
        version = "0.36.1";
        edition = "2018";
        sha256 = "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad";
        authors = [
          "Microsoft"
        ];

      };
      "windows_x86_64_msvc" = rec {
        crateName = "windows_x86_64_msvc";
        version = "0.36.1";
        edition = "2018";
        sha256 = "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8";
        authors = [
          "Microsoft"
        ];

      };
      "winreg" = rec {
        crateName = "winreg";
        version = "0.10.1";
        edition = "2015";
        sha256 = "17c6h02z88ijjba02bnxi5k94q5cz490nf3njh9yypf8fbig9l40";
        authors = [
          "Igor Shaula <gentoo90@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi";
            features = [ "impl-default" "impl-debug" "minwindef" "minwinbase" "timezoneapi" "winerror" "winnt" "winreg" "handleapi" ];
          }
        ];
        features = {
          "chrono" = [ "dep:chrono" ];
          "serde" = [ "dep:serde" ];
          "serialization-serde" = [ "transactions" "serde" ];
          "transactions" = [ "winapi/ktmw32" ];
        };
      };
      "xz2" = rec {
        crateName = "xz2";
        version = "0.1.7";
        edition = "2018";
        sha256 = "1qk7nzpblizvayyq4xzi4b0zacmmbqr6vb9fc0v1avyp17f4931q";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "lzma-sys";
            packageId = "lzma-sys";
          }
        ];
        features = {
          "futures" = [ "dep:futures" ];
          "static" = [ "lzma-sys/static" ];
          "tokio" = [ "tokio-io" "futures" ];
          "tokio-io" = [ "dep:tokio-io" ];
        };
      };
    };

    #
# crate2nix/default.nix (excerpt start)
#

  /* Target (platform) data for conditional dependencies.
    This corresponds roughly to what buildRustCrate is setting.
  */
  defaultTarget = {
    unix = true;
    windows = false;
    fuchsia = true;
    test = false;

    # This doesn't appear to be officially documented anywhere yet.
    # See https://github.com/rust-lang-nursery/rust-forge/issues/101.
    os =
      if stdenv.hostPlatform.isDarwin
      then "macos"
      else stdenv.hostPlatform.parsed.kernel.name;
    arch = stdenv.hostPlatform.parsed.cpu.name;
    family = "unix";
    env = "gnu";
    endian =
      if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian"
      then "little" else "big";
    pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits;
    vendor = stdenv.hostPlatform.parsed.vendor.name;
    debug_assertions = false;
  };

  /* Filters common temp files and build files. */
  # TODO(pkolloch): Substitute with gitignore filter
  sourceFilter = name: type:
    let
      baseName = builtins.baseNameOf (builtins.toString name);
    in
      ! (
        # Filter out git
        baseName == ".gitignore"
        || (type == "directory" && baseName == ".git")

        # Filter out build results
        || (
          type == "directory" && (
            baseName == "target"
            || baseName == "_site"
            || baseName == ".sass-cache"
            || baseName == ".jekyll-metadata"
            || baseName == "build-artifacts"
          )
        )

        # Filter out nix-build result symlinks
        || (
          type == "symlink" && lib.hasPrefix "result" baseName
        )

        # Filter out IDE config
        || (
          type == "directory" && (
            baseName == ".idea" || baseName == ".vscode"
          )
        ) || lib.hasSuffix ".iml" baseName

        # Filter out nix build files
        || baseName == "Cargo.nix"

        # Filter out editor backup / swap files.
        || lib.hasSuffix "~" baseName
        || builtins.match "^\\.sw[a-z]$$" baseName != null
        || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
        || lib.hasSuffix ".tmp" baseName
        || lib.hasSuffix ".bak" baseName
        || baseName == "tests.nix"
      );

  /* Returns a crate which depends on successful test execution
    of crate given as the second argument.

    testCrateFlags: list of flags to pass to the test exectuable
    testInputs: list of packages that should be available during test execution
  */
  crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }:
    assert builtins.typeOf testCrateFlags == "list";
    assert builtins.typeOf testInputs == "list";
    assert builtins.typeOf testPreRun == "string";
    assert builtins.typeOf testPostRun == "string";
    let
      # override the `crate` so that it will build and execute tests instead of
      # building the actual lib and bin targets We just have to pass `--test`
      # to rustc and it will do the right thing.  We execute the tests and copy
      # their log and the test executables to $out for later inspection.
      test =
        let
          drv = testCrate.override
            (
              _: {
                buildTests = true;
              }
            );
          # If the user hasn't set any pre/post commands, we don't want to
          # insert empty lines. This means that any existing users of crate2nix
          # don't get a spurious rebuild unless they set these explicitly.
          testCommand = pkgs.lib.concatStringsSep "\n"
            (pkgs.lib.filter (s: s != "") [
              testPreRun
              "$f $testCrateFlags 2>&1 | tee -a $out"
              testPostRun
            ]);
        in
        pkgs.runCommand "run-tests-${testCrate.name}"
          {
            inherit testCrateFlags;
            buildInputs = testInputs;
          } ''
          set -ex

          export RUST_BACKTRACE=1

          # recreate a file hierarchy as when running tests with cargo

          # the source for test data
          ${pkgs.xorg.lndir}/bin/lndir ${crate.src}

          # build outputs
          testRoot=target/debug
          mkdir -p $testRoot

          # executables of the crate
          # we copy to prevent std::env::current_exe() to resolve to a store location
          for i in ${crate}/bin/*; do
            cp "$i" "$testRoot"
          done
          chmod +w -R .

          # test harness executables are suffixed with a hash, like cargo does
          # this allows to prevent name collision with the main
          # executables of the crate
          hash=$(basename $out)
          for file in ${drv}/tests/*; do
            f=$testRoot/$(basename $file)-$hash
            cp $file $f
            ${testCommand}
          done
        '';
    in
    pkgs.runCommand "${crate.name}-linked"
      {
        inherit (crate) outputs crateName;
        passthru = (crate.passthru or { }) // {
          inherit test;
        };
      } ''
      echo tested by ${test}
      ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
    '';

  /* A restricted overridable version of builtRustCratesWithFeatures. */
  buildRustCrateWithFeatures =
    { packageId
    , features ? rootFeatures
    , crateOverrides ? defaultCrateOverrides
    , buildRustCrateForPkgsFunc ? null
    , runTests ? false
    , testCrateFlags ? [ ]
    , testInputs ? [ ]
      # Any command to run immediatelly before a test is executed.
    , testPreRun ? ""
      # Any command run immediatelly after a test is executed.
    , testPostRun ? ""
    }:
    lib.makeOverridable
      (
        { features
        , crateOverrides
        , runTests
        , testCrateFlags
        , testInputs
        , testPreRun
        , testPostRun
        }:
        let
          buildRustCrateForPkgsFuncOverriden =
            if buildRustCrateForPkgsFunc != null
            then buildRustCrateForPkgsFunc
            else
              (
                if crateOverrides == pkgs.defaultCrateOverrides
                then buildRustCrateForPkgs
                else
                  pkgs: (buildRustCrateForPkgs pkgs).override {
                    defaultCrateOverrides = crateOverrides;
                  }
              );
          builtRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = false;
          };
          builtTestRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = true;
          };
          drv = builtRustCrates.crates.${packageId};
          testDrv = builtTestRustCrates.crates.${packageId};
          derivation =
            if runTests then
              crateWithTest
                {
                  crate = drv;
                  testCrate = testDrv;
                  inherit testCrateFlags testInputs testPreRun testPostRun;
                }
            else drv;
        in
        derivation
      )
      { inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; };

  /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
    for the corresponding crate.
  */
  builtRustCratesWithFeatures =
    { packageId
    , features
    , crateConfigs ? crates
    , buildRustCrateForPkgsFunc
    , runTests
    , target ? defaultTarget
    } @ args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isList features);
      assert (builtins.isAttrs target);
      assert (builtins.isBool runTests);
      let
        rootPackageId = packageId;
        mergedFeatures = mergePackageFeatures
          (
            args // {
              inherit rootPackageId;
              target = target // { test = runTests; };
            }
          );
        # Memoize built packages so that reappearing packages are only built once.
        builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
        mkBuiltByPackageIdByPkgs = pkgs:
          let
            self = {
              crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
              build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
            };
          in
          self;
        buildByPackageIdForPkgsImpl = self: pkgs: packageId:
          let
            features = mergedFeatures."${packageId}" or [ ];
            crateConfig' = crateConfigs."${packageId}";
            crateConfig =
              builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ];
            devDependencies =
              lib.optionals
                (runTests && packageId == rootPackageId)
                (crateConfig'.devDependencies or [ ]);
            dependencies =
              dependencyDerivations {
                inherit features target;
                buildByPackageId = depPackageId:
                  # proc_macro crates must be compiled for the build architecture
                  if crateConfigs.${depPackageId}.procMacro or false
                  then self.build.crates.${depPackageId}
                  else self.crates.${depPackageId};
                dependencies =
                  (crateConfig.dependencies or [ ])
                  ++ devDependencies;
              };
            buildDependencies =
              dependencyDerivations {
                inherit features target;
                buildByPackageId = depPackageId:
                  self.build.crates.${depPackageId};
                dependencies = crateConfig.buildDependencies or [ ];
              };
            filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies {
              inherit dependencies features target;
            };
            dependenciesWithRenames =
              lib.filter (d: d ? "rename")
                (
                  filterEnabledDependenciesForThis
                    (
                      (crateConfig.buildDependencies or [ ])
                      ++ (crateConfig.dependencies or [ ])
                      ++ devDependencies
                    )
                );
            # Crate renames have the form:
            #
            # {
            #    crate_name = [
            #       { version = "1.2.3"; rename = "crate_name01"; }
            #    ];
            #    # ...
            # }
            crateRenames =
              let
                grouped =
                  lib.groupBy
                    (dependency: dependency.name)
                    dependenciesWithRenames;
                versionAndRename = dep:
                  let
                    package = crateConfigs."${dep.packageId}";
                  in
                  { inherit (dep) rename; version = package.version; };
              in
              lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped;
          in
          buildRustCrateForPkgsFunc pkgs
            (
              crateConfig // {
                src = crateConfig.src or (
                  pkgs.fetchurl rec {
                    name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
                    # https://www.pietroalbini.org/blog/downloading-crates-io/
                    # Not rate-limited, CDN URL.
                    url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate";
                    sha256 =
                      assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}");
                      crateConfig.sha256;
                  }
                );
                extraRustcOpts = lib.lists.optional (targetFeatures != [ ]) "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}";
                inherit features dependencies buildDependencies crateRenames release;
              }
            );
      in
      builtByPackageIdByPkgs;

  /* Returns the actual derivations for the given dependencies. */
  dependencyDerivations =
    { buildByPackageId
    , features
    , dependencies
    , target
    }:
      assert (builtins.isList features);
      assert (builtins.isList dependencies);
      assert (builtins.isAttrs target);
      let
        enabledDependencies = filterEnabledDependencies {
          inherit dependencies features target;
        };
        depDerivation = dependency: buildByPackageId dependency.packageId;
      in
      map depDerivation enabledDependencies;

  /* Returns a sanitized version of val with all values substituted that cannot
    be serialized as JSON.
  */
  sanitizeForJson = val:
    if builtins.isAttrs val
    then lib.mapAttrs (n: v: sanitizeForJson v) val
    else if builtins.isList val
    then builtins.map sanitizeForJson val
    else if builtins.isFunction val
    then "function"
    else val;

  /* Returns various tools to debug a crate. */
  debugCrate = { packageId, target ? defaultTarget }:
    assert (builtins.isString packageId);
    let
      debug = rec {
        # The built tree as passed to buildRustCrate.
        buildTree = buildRustCrateWithFeatures {
          buildRustCrateForPkgsFunc = _: lib.id;
          inherit packageId;
        };
        sanitizedBuildTree = sanitizeForJson buildTree;
        dependencyTree = sanitizeForJson
          (
            buildRustCrateWithFeatures {
              buildRustCrateForPkgsFunc = _: crate: {
                "01_crateName" = crate.crateName or false;
                "02_features" = crate.features or [ ];
                "03_dependencies" = crate.dependencies or [ ];
              };
              inherit packageId;
            }
          );
        mergedPackageFeatures = mergePackageFeatures {
          features = rootFeatures;
          inherit packageId target;
        };
        diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
          inherit packageId target;
        };
      };
    in
    { internal = debug; };

  /* Returns differences between cargo default features and crate2nix default
    features.

    This is useful for verifying the feature resolution in crate2nix.
  */
  diffDefaultPackageFeatures =
    { crateConfigs ? crates
    , packageId
    , target
    }:
      assert (builtins.isAttrs crateConfigs);
      let
        prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
        mergedFeatures =
          prefixValues
            "crate2nix"
            (mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
        configs = prefixValues "cargo" crateConfigs;
        combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
        onlyInCargo =
          builtins.attrNames
            (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
        onlyInCrate2Nix =
          builtins.attrNames
            (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
        differentFeatures = lib.filterAttrs
          (
            n: v:
              (v ? "crate2nix")
              && (v ? "cargo")
              && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
          )
          combined;
      in
      builtins.toJSON {
        inherit onlyInCargo onlyInCrate2Nix differentFeatures;
      };

  /* Returns an attrset mapping packageId to the list of enabled features.

    If multiple paths to a dependency enable different features, the
    corresponding feature sets are merged. Features in rust are additive.
  */
  mergePackageFeatures =
    { crateConfigs ? crates
    , packageId
    , rootPackageId ? packageId
    , features ? rootFeatures
    , dependencyPath ? [ crates.${packageId}.crateName ]
    , featuresByPackageId ? { }
    , target
      # Adds devDependencies to the crate with rootPackageId.
    , runTests ? false
    , ...
    } @ args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isString rootPackageId);
      assert (builtins.isList features);
      assert (builtins.isList dependencyPath);
      assert (builtins.isAttrs featuresByPackageId);
      assert (builtins.isAttrs target);
      assert (builtins.isBool runTests);
      let
        crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
        expandedFeatures = expandFeatures (crateConfig.features or { }) features;
        enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures;
        depWithResolvedFeatures = dependency:
          let
            packageId = dependency.packageId;
            features = dependencyFeatures enabledFeatures dependency;
          in
          { inherit packageId features; };
        resolveDependencies = cache: path: dependencies:
          assert (builtins.isAttrs cache);
          assert (builtins.isList dependencies);
          let
            enabledDependencies = filterEnabledDependencies {
              inherit dependencies target;
              features = enabledFeatures;
            };
            directDependencies = map depWithResolvedFeatures enabledDependencies;
            foldOverCache = op: lib.foldl op cache directDependencies;
          in
          foldOverCache
            (
              cache: { packageId, features }:
                let
                  cacheFeatures = cache.${packageId} or [ ];
                  combinedFeatures = sortedUnique (cacheFeatures ++ features);
                in
                if cache ? ${packageId} && cache.${packageId} == combinedFeatures
                then cache
                else
                  mergePackageFeatures {
                    features = combinedFeatures;
                    featuresByPackageId = cache;
                    inherit crateConfigs packageId target runTests rootPackageId;
                  }
            );
        cacheWithSelf =
          let
            cacheFeatures = featuresByPackageId.${packageId} or [ ];
            combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures);
          in
          featuresByPackageId // {
            "${packageId}" = combinedFeatures;
          };
        cacheWithDependencies =
          resolveDependencies cacheWithSelf "dep"
            (
              crateConfig.dependencies or [ ]
              ++ lib.optionals
                (runTests && packageId == rootPackageId)
                (crateConfig.devDependencies or [ ])
            );
        cacheWithAll =
          resolveDependencies
            cacheWithDependencies "build"
            (crateConfig.buildDependencies or [ ]);
      in
      cacheWithAll;

  /* Returns the enabled dependencies given the enabled features. */
  filterEnabledDependencies = { dependencies, features, target }:
    assert (builtins.isList dependencies);
    assert (builtins.isList features);
    assert (builtins.isAttrs target);

    lib.filter
      (
        dep:
        let
          targetFunc = dep.target or (features: true);
        in
        targetFunc { inherit features target; }
        && (
          !(dep.optional or false)
          || builtins.any (doesFeatureEnableDependency dep) features
        )
      )
      dependencies;

  /* Returns whether the given feature should enable the given dependency. */
  doesFeatureEnableDependency = { name, rename ? null, ... }: feature:
    let
      prefix = "${name}/";
      len = builtins.stringLength prefix;
      startsWithPrefix = builtins.substring 0 len feature == prefix;
    in
    (rename == null && feature == name)
    || (rename != null && rename == feature)
    || startsWithPrefix;

  /* Returns the expanded features for the given inputFeatures by applying the
    rules in featureMap.

    featureMap is an attribute set which maps feature names to lists of further
    feature names to enable in case this feature is selected.
  */
  expandFeatures = featureMap: inputFeatures:
    assert (builtins.isAttrs featureMap);
    assert (builtins.isList inputFeatures);
    let
      expandFeature = feature:
        assert (builtins.isString feature);
        [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
      outFeatures = lib.concatMap expandFeature inputFeatures;
    in
    sortedUnique outFeatures;

  /* This function adds optional dependencies as features if they are enabled
    indirectly by dependency features. This function mimics Cargo's behavior
    described in a note at:
    https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
  */
  enableFeatures = dependencies: features:
    assert (builtins.isList features);
    assert (builtins.isList dependencies);
    let
      additionalFeatures = lib.concatMap
        (
          dependency:
            assert (builtins.isAttrs dependency);
            let
              enabled = builtins.any (doesFeatureEnableDependency dependency) features;
            in
            if (dependency.optional or false) && enabled then [ dependency.name ] else [ ]
        )
        dependencies;
    in
    sortedUnique (features ++ additionalFeatures);

  /*
    Returns the actual features for the given dependency.

    features: The features of the crate that refers this dependency.
  */
  dependencyFeatures = features: dependency:
    assert (builtins.isList features);
    assert (builtins.isAttrs dependency);
    let
      defaultOrNil =
        if dependency.usesDefaultFeatures or true
        then [ "default" ]
        else [ ];
      explicitFeatures = dependency.features or [ ];
      additionalDependencyFeatures =
        let
          dependencyPrefix = (dependency.rename or dependency.name) + "/";
          dependencyFeatures =
            builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
        in
        builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
    in
    defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;

  /* Sorts and removes duplicates from a list of strings. */
  sortedUnique = features:
    assert (builtins.isList features);
    assert (builtins.all builtins.isString features);
    let
      outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
      outFeaturesUnique = builtins.attrNames outFeaturesSet;
    in
    builtins.sort (a: b: a < b) outFeaturesUnique;

  deprecationWarning = message: value:
    if strictDeprecation
    then builtins.throw "strictDeprecation enabled, aborting: ${message}"
    else builtins.trace message value;

  #
  # crate2nix/default.nix (excerpt end)
  #
  };
}