summaryrefslogtreecommitdiffstats
path: root/build/rust
diff options
context:
space:
mode:
Diffstat (limited to 'build/rust')
-rw-r--r--build/rust/backtrace/Cargo.toml8
-rw-r--r--build/rust/backtrace/lib.rs0
-rw-r--r--build/rust/base64/Cargo.toml11
-rw-r--r--build/rust/base64/lib.rs42
-rw-r--r--build/rust/bindgen-0.63/Cargo.toml18
-rw-r--r--build/rust/bindgen-0.63/lib.rs26
-rw-r--r--build/rust/bitflags/Cargo.toml11
-rw-r--r--build/rust/bitflags/lib.rs61
-rw-r--r--build/rust/cfg-if/Cargo.toml11
-rw-r--r--build/rust/cfg-if/lib.rs5
-rw-r--r--build/rust/cmake/Cargo.toml8
-rw-r--r--build/rust/cmake/lib.rs3
-rw-r--r--build/rust/derive_more/Cargo.toml37
-rw-r--r--build/rust/derive_more/lib.rs5
-rw-r--r--build/rust/dummy-web/js-sys/Cargo.toml8
-rw-r--r--build/rust/dummy-web/js-sys/lib.rs3
-rw-r--r--build/rust/dummy-web/wasm-bindgen/Cargo.toml8
-rw-r--r--build/rust/dummy-web/wasm-bindgen/lib.rs3
-rw-r--r--build/rust/dummy-web/web-sys/Cargo.toml1423
-rw-r--r--build/rust/dummy-web/web-sys/lib.rs3
-rw-r--r--build/rust/goblin/Cargo.toml11
-rw-r--r--build/rust/goblin/lib.rs11
-rw-r--r--build/rust/indexmap/Cargo.toml16
-rw-r--r--build/rust/indexmap/lib.rs5
-rw-r--r--build/rust/memmap2-0.5/Cargo.toml11
-rw-r--r--build/rust/memmap2-0.5/lib.rs5
-rw-r--r--build/rust/memmap2/Cargo.toml11
-rw-r--r--build/rust/memmap2/lib.rs5
-rw-r--r--build/rust/memoffset/Cargo.toml11
-rw-r--r--build/rust/memoffset/lib.rs11
-rw-r--r--build/rust/mozbuild/Cargo.toml8
-rw-r--r--build/rust/mozbuild/build.rs20
-rw-r--r--build/rust/mozbuild/generate_buildconfig.py95
-rw-r--r--build/rust/mozbuild/lib.rs20
-rw-r--r--build/rust/mozbuild/moz.build9
-rw-r--r--build/rust/nix/Cargo.toml30
-rw-r--r--build/rust/nix/lib.rs5
-rw-r--r--build/rust/oslog/Cargo.toml15
-rw-r--r--build/rust/oslog/LICENSE21
-rw-r--r--build/rust/oslog/lib.rs25
-rw-r--r--build/rust/redox_syscall/Cargo.toml8
-rw-r--r--build/rust/redox_syscall/lib.rs3
-rw-r--r--build/rust/redox_users/Cargo.toml8
-rw-r--r--build/rust/redox_users/lib.rs3
-rw-r--r--build/rust/terminal_size/Cargo.toml8
-rw-r--r--build/rust/terminal_size/lib.rs26
-rw-r--r--build/rust/tinyvec/Cargo.toml16
-rw-r--r--build/rust/tinyvec/lib.rs6
-rw-r--r--build/rust/vcpkg/Cargo.toml8
-rw-r--r--build/rust/vcpkg/lib.rs23
-rw-r--r--build/rust/wasi/Cargo.toml17
-rw-r--r--build/rust/wasi/lib.rs5
-rw-r--r--build/rust/windows-sys/Cargo.toml232
-rw-r--r--build/rust/windows-sys/lib.rs5
-rw-r--r--build/rust/windows-targets-0.48/Cargo.toml11
-rw-r--r--build/rust/windows-targets-0.48/lib.rs5
-rw-r--r--build/rust/windows-targets/Cargo.toml13
-rw-r--r--build/rust/windows-targets/lib.rs86
-rw-r--r--build/rust/windows/Cargo.toml736
-rw-r--r--build/rust/windows/src/lib.rs24
60 files changed, 3282 insertions, 0 deletions
diff --git a/build/rust/backtrace/Cargo.toml b/build/rust/backtrace/Cargo.toml
new file mode 100644
index 0000000000..a251228e71
--- /dev/null
+++ b/build/rust/backtrace/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "backtrace"
+version = "0.3.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/backtrace/lib.rs b/build/rust/backtrace/lib.rs
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/build/rust/backtrace/lib.rs
diff --git a/build/rust/base64/Cargo.toml b/build/rust/base64/Cargo.toml
new file mode 100644
index 0000000000..ce9fdc2836
--- /dev/null
+++ b/build/rust/base64/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "base64"
+version = "0.13.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.base64]
+version = "0.21.0"
diff --git a/build/rust/base64/lib.rs b/build/rust/base64/lib.rs
new file mode 100644
index 0000000000..d5d4ce6af4
--- /dev/null
+++ b/build/rust/base64/lib.rs
@@ -0,0 +1,42 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use base64::engine::general_purpose::*;
+pub use base64::DecodeError;
+use base64::Engine;
+
+// Re-implement some of the 0.13 APIs on top of 0.21
+
+pub fn decode<T: AsRef<[u8]>>(input: T) -> Result<Vec<u8>, DecodeError> {
+ STANDARD.decode(input)
+}
+
+pub fn encode<T: AsRef<[u8]>>(input: T) -> String {
+ STANDARD.encode(input)
+}
+
+pub fn decode_config<T: AsRef<[u8]>>(
+ input: T,
+ engine: GeneralPurpose,
+) -> Result<Vec<u8>, DecodeError> {
+ engine.decode(input)
+}
+
+pub fn encode_config<T: AsRef<[u8]>>(input: T, engine: GeneralPurpose) -> String {
+ engine.encode(input)
+}
+
+pub fn encode_config_slice<T: AsRef<[u8]>>(
+ input: T,
+ engine: GeneralPurpose,
+ output: &mut [u8],
+) -> usize {
+ engine
+ .encode_slice(input, output)
+ .expect("Output buffer too small")
+}
+
+pub fn encode_config_buf<T: AsRef<[u8]>>(input: T, engine: GeneralPurpose, buf: &mut String) {
+ engine.encode_string(input, buf)
+}
diff --git a/build/rust/bindgen-0.63/Cargo.toml b/build/rust/bindgen-0.63/Cargo.toml
new file mode 100644
index 0000000000..200ff7a961
--- /dev/null
+++ b/build/rust/bindgen-0.63/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+name = "bindgen"
+version = "0.63.999"
+edition = "2018"
+license = "BSD-3-Clause"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.bindgen]
+version = "0.69"
+default-features = false
+
+[features]
+logging = ["bindgen/logging"]
+runtime = ["bindgen/runtime"]
+static = ["bindgen/static"]
+which-rustfmt = ["bindgen/which-rustfmt"]
diff --git a/build/rust/bindgen-0.63/lib.rs b/build/rust/bindgen-0.63/lib.rs
new file mode 100644
index 0000000000..6828a430d5
--- /dev/null
+++ b/build/rust/bindgen-0.63/lib.rs
@@ -0,0 +1,26 @@
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+pub use bindgen::*;
diff --git a/build/rust/bitflags/Cargo.toml b/build/rust/bitflags/Cargo.toml
new file mode 100644
index 0000000000..7595f3b5bb
--- /dev/null
+++ b/build/rust/bitflags/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "bitflags"
+version = "1.999.999"
+edition = "2018"
+license = "MIT/Apache-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.bitflags]
+version = "2"
diff --git a/build/rust/bitflags/lib.rs b/build/rust/bitflags/lib.rs
new file mode 100644
index 0000000000..3a3c67e4fd
--- /dev/null
+++ b/build/rust/bitflags/lib.rs
@@ -0,0 +1,61 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+pub use bitflags::bitflags as bitflags2;
+pub use bitflags::parser;
+
+// Copy of the macro from bitflags 1.3.2, with the implicit derives
+// removed, because in 2.0, they're expected to be explicitly given
+// in the macro invocation. And because bitflags 1.3.2 itself always
+// adds an impl Debug, we need to remove #[derive(Debug)] from what
+// is passed in, which is what the __impl_bitflags_remove_derive_debug
+// macro does.
+#[macro_export(local_inner_macros)]
+macro_rules! bitflags {
+ (
+ $(#[$($outer:tt)+])*
+ $vis:vis struct $BitFlags:ident: $T:ty {
+ $(
+ $(#[$inner:ident $($args:tt)*])*
+ const $Flag:ident = $value:expr;
+ )*
+ }
+
+ $($t:tt)*
+ ) => {
+ $(#[$($outer)+])*
+ #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
+ $vis struct $BitFlags($T);
+
+ impl core::fmt::Debug for $BitFlags {
+ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
+ if self.is_empty() {
+ core::write!(f, "{:#x}", Self::empty().bits())
+ } else {
+ $crate::parser::to_writer(self, f)
+ }
+ }
+ }
+
+ bitflags2! {
+ impl $BitFlags: $T {
+ $(
+ $(#[$inner $($args)*])*
+ const $Flag = $value;
+ )*
+ }
+ }
+
+ bitflags! {
+ $($t)*
+ }
+ };
+ () => {};
+}
diff --git a/build/rust/cfg-if/Cargo.toml b/build/rust/cfg-if/Cargo.toml
new file mode 100644
index 0000000000..fff5b54155
--- /dev/null
+++ b/build/rust/cfg-if/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "cfg-if"
+version = "0.1.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+cfg-if = "1.0"
diff --git a/build/rust/cfg-if/lib.rs b/build/rust/cfg-if/lib.rs
new file mode 100644
index 0000000000..70c009f840
--- /dev/null
+++ b/build/rust/cfg-if/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use cfg_if::*;
diff --git a/build/rust/cmake/Cargo.toml b/build/rust/cmake/Cargo.toml
new file mode 100644
index 0000000000..8bae1af5eb
--- /dev/null
+++ b/build/rust/cmake/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "cmake"
+version = "0.1.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/cmake/lib.rs b/build/rust/cmake/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/cmake/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/derive_more/Cargo.toml b/build/rust/derive_more/Cargo.toml
new file mode 100644
index 0000000000..6df64025d9
--- /dev/null
+++ b/build/rust/derive_more/Cargo.toml
@@ -0,0 +1,37 @@
+[package]
+name = "derive_more"
+version = "0.99.999"
+edition = "2021"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.derive_more]
+version = "1.0.0-beta.2"
+
+[features]
+add = ["derive_more/add"]
+add_assign = ["derive_more/add_assign"]
+as_mut = ["derive_more/as_mut"]
+as_ref = ["derive_more/as_ref"]
+constructor = ["derive_more/constructor"]
+debug = ["derive_more/debug"]
+default = ["derive_more/default"]
+deref = ["derive_more/deref"]
+deref_mut = ["derive_more/deref_mut"]
+display = ["derive_more/display"]
+error = ["derive_more/error"]
+from = ["derive_more/from"]
+from_str = ["derive_more/from_str"]
+full = ["derive_more/full"]
+index = ["derive_more/index"]
+index_mut = ["derive_more/index_mut"]
+into = ["derive_more/into"]
+into_iterator = ["derive_more/into_iterator"]
+is_variant = ["derive_more/is_variant"]
+iterator = ["derive_more/iterator"]
+mul = ["derive_more/mul"]
+mul_assign = ["derive_more/mul_assign"]
+not = ["derive_more/not"]
+std = ["derive_more/std"]
diff --git a/build/rust/derive_more/lib.rs b/build/rust/derive_more/lib.rs
new file mode 100644
index 0000000000..1df30b23ca
--- /dev/null
+++ b/build/rust/derive_more/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use derive_more::*;
diff --git a/build/rust/dummy-web/js-sys/Cargo.toml b/build/rust/dummy-web/js-sys/Cargo.toml
new file mode 100644
index 0000000000..b0d3999ef2
--- /dev/null
+++ b/build/rust/dummy-web/js-sys/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "js-sys"
+version = "0.3.100"
+edition = "2018"
+license = "MIT OR Apache-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/dummy-web/js-sys/lib.rs b/build/rust/dummy-web/js-sys/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/dummy-web/js-sys/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/dummy-web/wasm-bindgen/Cargo.toml b/build/rust/dummy-web/wasm-bindgen/Cargo.toml
new file mode 100644
index 0000000000..a4a421466e
--- /dev/null
+++ b/build/rust/dummy-web/wasm-bindgen/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "wasm-bindgen"
+version = "0.2.100"
+edition = "2018"
+license = "MIT OR Apache-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/dummy-web/wasm-bindgen/lib.rs b/build/rust/dummy-web/wasm-bindgen/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/dummy-web/wasm-bindgen/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/dummy-web/web-sys/Cargo.toml b/build/rust/dummy-web/web-sys/Cargo.toml
new file mode 100644
index 0000000000..4251c3e73d
--- /dev/null
+++ b/build/rust/dummy-web/web-sys/Cargo.toml
@@ -0,0 +1,1423 @@
+[package]
+name = "web-sys"
+version = "0.3.100"
+edition = "2018"
+license = "MIT OR Apache-2.0"
+
+[lib]
+path = "lib.rs"
+
+# This list is taken from web-sys 0.3.55's Cargo.toml
+[features]
+AbortController = []
+AbortSignal = ["EventTarget"]
+AddEventListenerOptions = []
+AesCbcParams = []
+AesCtrParams = []
+AesDerivedKeyParams = []
+AesGcmParams = []
+AesKeyAlgorithm = []
+AesKeyGenParams = []
+Algorithm = []
+AlignSetting = []
+AllowedBluetoothDevice = []
+AllowedUsbDevice = []
+AnalyserNode = ["AudioNode", "EventTarget"]
+AnalyserOptions = []
+AngleInstancedArrays = []
+Animation = ["EventTarget"]
+AnimationEffect = []
+AnimationEvent = ["Event"]
+AnimationEventInit = []
+AnimationPlayState = []
+AnimationPlaybackEvent = ["Event"]
+AnimationPlaybackEventInit = []
+AnimationPropertyDetails = []
+AnimationPropertyValueDetails = []
+AnimationTimeline = []
+AssignedNodesOptions = []
+AttestationConveyancePreference = []
+Attr = ["EventTarget", "Node"]
+AttributeNameValue = []
+AudioBuffer = []
+AudioBufferOptions = []
+AudioBufferSourceNode = ["AudioNode", "AudioScheduledSourceNode", "EventTarget"]
+AudioBufferSourceOptions = []
+AudioConfiguration = []
+AudioContext = ["BaseAudioContext", "EventTarget"]
+AudioContextOptions = []
+AudioContextState = []
+AudioDestinationNode = ["AudioNode", "EventTarget"]
+AudioListener = []
+AudioNode = ["EventTarget"]
+AudioNodeOptions = []
+AudioParam = []
+AudioParamMap = []
+AudioProcessingEvent = ["Event"]
+AudioScheduledSourceNode = ["AudioNode", "EventTarget"]
+AudioStreamTrack = ["EventTarget", "MediaStreamTrack"]
+AudioTrack = []
+AudioTrackList = ["EventTarget"]
+AudioWorklet = ["Worklet"]
+AudioWorkletGlobalScope = ["WorkletGlobalScope"]
+AudioWorkletNode = ["AudioNode", "EventTarget"]
+AudioWorkletNodeOptions = []
+AudioWorkletProcessor = []
+AuthenticationExtensionsClientInputs = []
+AuthenticationExtensionsClientOutputs = []
+AuthenticatorAssertionResponse = ["AuthenticatorResponse"]
+AuthenticatorAttachment = []
+AuthenticatorAttestationResponse = ["AuthenticatorResponse"]
+AuthenticatorResponse = []
+AuthenticatorSelectionCriteria = []
+AuthenticatorTransport = []
+AutoKeyword = []
+AutocompleteInfo = []
+BarProp = []
+BaseAudioContext = ["EventTarget"]
+BaseComputedKeyframe = []
+BaseKeyframe = []
+BasePropertyIndexedKeyframe = []
+BasicCardRequest = []
+BasicCardResponse = []
+BasicCardType = []
+BatteryManager = ["EventTarget"]
+BeforeUnloadEvent = ["Event"]
+BinaryType = []
+BiquadFilterNode = ["AudioNode", "EventTarget"]
+BiquadFilterOptions = []
+BiquadFilterType = []
+Blob = []
+BlobEvent = ["Event"]
+BlobEventInit = []
+BlobPropertyBag = []
+BlockParsingOptions = []
+Bluetooth = ["EventTarget"]
+BluetoothAdvertisingEvent = ["Event"]
+BluetoothAdvertisingEventInit = []
+BluetoothCharacteristicProperties = []
+BluetoothDataFilterInit = []
+BluetoothDevice = ["EventTarget"]
+BluetoothLeScanFilterInit = []
+BluetoothManufacturerDataMap = []
+BluetoothPermissionDescriptor = []
+BluetoothPermissionResult = ["EventTarget", "PermissionStatus"]
+BluetoothPermissionStorage = []
+BluetoothRemoteGattCharacteristic = ["EventTarget"]
+BluetoothRemoteGattDescriptor = []
+BluetoothRemoteGattServer = []
+BluetoothRemoteGattService = ["EventTarget"]
+BluetoothServiceDataMap = []
+BluetoothUuid = []
+BoxQuadOptions = []
+BroadcastChannel = ["EventTarget"]
+BrowserElementDownloadOptions = []
+BrowserElementExecuteScriptOptions = []
+BrowserFeedWriter = []
+BrowserFindCaseSensitivity = []
+BrowserFindDirection = []
+Cache = []
+CacheBatchOperation = []
+CacheQueryOptions = []
+CacheStorage = []
+CacheStorageNamespace = []
+CanvasCaptureMediaStream = ["EventTarget", "MediaStream"]
+CanvasGradient = []
+CanvasPattern = []
+CanvasRenderingContext2d = []
+CanvasWindingRule = []
+CaretChangedReason = []
+CaretPosition = []
+CaretStateChangedEventInit = []
+CdataSection = ["CharacterData", "EventTarget", "Node", "Text"]
+ChannelCountMode = []
+ChannelInterpretation = []
+ChannelMergerNode = ["AudioNode", "EventTarget"]
+ChannelMergerOptions = []
+ChannelPixelLayout = []
+ChannelPixelLayoutDataType = []
+ChannelSplitterNode = ["AudioNode", "EventTarget"]
+ChannelSplitterOptions = []
+CharacterData = ["EventTarget", "Node"]
+CheckerboardReason = []
+CheckerboardReport = []
+CheckerboardReportService = []
+ChromeFilePropertyBag = []
+ChromeWorker = ["EventTarget", "Worker"]
+Client = []
+ClientQueryOptions = []
+ClientRectsAndTexts = []
+ClientType = []
+Clients = []
+Clipboard = ["EventTarget"]
+ClipboardEvent = ["Event"]
+ClipboardEventInit = []
+ClipboardItem = []
+ClipboardItemOptions = []
+ClipboardPermissionDescriptor = []
+CloseEvent = ["Event"]
+CloseEventInit = []
+CollectedClientData = []
+Comment = ["CharacterData", "EventTarget", "Node"]
+CompositeOperation = []
+CompositionEvent = ["Event", "UiEvent"]
+CompositionEventInit = []
+ComputedEffectTiming = []
+ConnStatusDict = []
+ConnectionType = []
+ConsoleCounter = []
+ConsoleCounterError = []
+ConsoleEvent = []
+ConsoleInstance = []
+ConsoleInstanceOptions = []
+ConsoleLevel = []
+ConsoleLogLevel = []
+ConsoleProfileEvent = []
+ConsoleStackEntry = []
+ConsoleTimerError = []
+ConsoleTimerLogOrEnd = []
+ConsoleTimerStart = []
+ConstantSourceNode = ["AudioNode", "AudioScheduledSourceNode", "EventTarget"]
+ConstantSourceOptions = []
+ConstrainBooleanParameters = []
+ConstrainDomStringParameters = []
+ConstrainDoubleRange = []
+ConstrainLongRange = []
+ContextAttributes2d = []
+ConvertCoordinateOptions = []
+ConvolverNode = ["AudioNode", "EventTarget"]
+ConvolverOptions = []
+Coordinates = []
+Credential = []
+CredentialCreationOptions = []
+CredentialRequestOptions = []
+CredentialsContainer = []
+Crypto = []
+CryptoKey = []
+CryptoKeyPair = []
+Csp = []
+CspPolicies = []
+CspReport = []
+CspReportProperties = []
+CssAnimation = ["Animation", "EventTarget"]
+CssBoxType = []
+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"]
+CssPseudoElement = []
+CssRule = []
+CssRuleList = []
+CssStyleDeclaration = []
+CssStyleRule = ["CssRule"]
+CssStyleSheet = ["StyleSheet"]
+CssStyleSheetParsingMode = []
+CssSupportsRule = ["CssConditionRule", "CssGroupingRule", "CssRule"]
+CssTransition = ["Animation", "EventTarget"]
+CustomElementRegistry = []
+CustomEvent = ["Event"]
+CustomEventInit = []
+DataTransfer = []
+DataTransferItem = []
+DataTransferItemList = []
+DateTimeValue = []
+DecoderDoctorNotification = []
+DecoderDoctorNotificationType = []
+DedicatedWorkerGlobalScope = ["EventTarget", "WorkerGlobalScope"]
+DelayNode = ["AudioNode", "EventTarget"]
+DelayOptions = []
+DeviceAcceleration = []
+DeviceAccelerationInit = []
+DeviceLightEvent = ["Event"]
+DeviceLightEventInit = []
+DeviceMotionEvent = ["Event"]
+DeviceMotionEventInit = []
+DeviceOrientationEvent = ["Event"]
+DeviceOrientationEventInit = []
+DeviceProximityEvent = ["Event"]
+DeviceProximityEventInit = []
+DeviceRotationRate = []
+DeviceRotationRateInit = []
+DhKeyDeriveParams = []
+DirectionSetting = []
+Directory = []
+DisplayMediaStreamConstraints = []
+DisplayNameOptions = []
+DisplayNameResult = []
+DistanceModelType = []
+DnsCacheDict = []
+DnsCacheEntry = []
+DnsLookupDict = []
+Document = ["EventTarget", "Node"]
+DocumentFragment = ["EventTarget", "Node"]
+DocumentTimeline = ["AnimationTimeline"]
+DocumentTimelineOptions = []
+DocumentType = ["EventTarget", "Node"]
+DomError = []
+DomException = []
+DomImplementation = []
+DomMatrix = ["DomMatrixReadOnly"]
+DomMatrixReadOnly = []
+DomParser = []
+DomPoint = ["DomPointReadOnly"]
+DomPointInit = []
+DomPointReadOnly = []
+DomQuad = []
+DomQuadInit = []
+DomQuadJson = []
+DomRect = ["DomRectReadOnly"]
+DomRectInit = []
+DomRectList = []
+DomRectReadOnly = []
+DomRequest = ["EventTarget"]
+DomRequestReadyState = []
+DomStringList = []
+DomStringMap = []
+DomTokenList = []
+DomWindowResizeEventDetail = []
+DragEvent = ["Event", "MouseEvent", "UiEvent"]
+DragEventInit = []
+DynamicsCompressorNode = ["AudioNode", "EventTarget"]
+DynamicsCompressorOptions = []
+EcKeyAlgorithm = []
+EcKeyGenParams = []
+EcKeyImportParams = []
+EcdhKeyDeriveParams = []
+EcdsaParams = []
+EffectTiming = []
+Element = ["EventTarget", "Node"]
+ElementCreationOptions = []
+ElementDefinitionOptions = []
+EndingTypes = []
+ErrorCallback = []
+ErrorEvent = ["Event"]
+ErrorEventInit = []
+Event = []
+EventInit = []
+EventListener = []
+EventListenerOptions = []
+EventModifierInit = []
+EventSource = ["EventTarget"]
+EventSourceInit = []
+EventTarget = []
+Exception = []
+ExtBlendMinmax = []
+ExtColorBufferFloat = []
+ExtColorBufferHalfFloat = []
+ExtDisjointTimerQuery = []
+ExtFragDepth = []
+ExtSRgb = []
+ExtShaderTextureLod = []
+ExtTextureFilterAnisotropic = []
+ExtendableEvent = ["Event"]
+ExtendableEventInit = []
+ExtendableMessageEvent = ["Event", "ExtendableEvent"]
+ExtendableMessageEventInit = []
+External = []
+FakePluginMimeEntry = []
+FakePluginTagInit = []
+FetchEvent = ["Event", "ExtendableEvent"]
+FetchEventInit = []
+FetchObserver = ["EventTarget"]
+FetchReadableStreamReadDataArray = []
+FetchReadableStreamReadDataDone = []
+FetchState = []
+File = ["Blob"]
+FileCallback = []
+FileList = []
+FilePropertyBag = []
+FileReader = ["EventTarget"]
+FileReaderSync = []
+FileSystem = []
+FileSystemDirectoryEntry = ["FileSystemEntry"]
+FileSystemDirectoryReader = []
+FileSystemEntriesCallback = []
+FileSystemEntry = []
+FileSystemEntryCallback = []
+FileSystemFileEntry = ["FileSystemEntry"]
+FileSystemFlags = []
+FillMode = []
+FlashClassification = []
+FlexLineGrowthState = []
+FocusEvent = ["Event", "UiEvent"]
+FocusEventInit = []
+FontFace = []
+FontFaceDescriptors = []
+FontFaceLoadStatus = []
+FontFaceSet = ["EventTarget"]
+FontFaceSetIterator = []
+FontFaceSetIteratorResult = []
+FontFaceSetLoadEvent = ["Event"]
+FontFaceSetLoadEventInit = []
+FontFaceSetLoadStatus = []
+FormData = []
+FrameType = []
+FuzzingFunctions = []
+GainNode = ["AudioNode", "EventTarget"]
+GainOptions = []
+Gamepad = []
+GamepadAxisMoveEvent = ["Event", "GamepadEvent"]
+GamepadAxisMoveEventInit = []
+GamepadButton = []
+GamepadButtonEvent = ["Event", "GamepadEvent"]
+GamepadButtonEventInit = []
+GamepadEvent = ["Event"]
+GamepadEventInit = []
+GamepadHand = []
+GamepadHapticActuator = []
+GamepadHapticActuatorType = []
+GamepadMappingType = []
+GamepadPose = []
+GamepadServiceTest = []
+Geolocation = []
+GetNotificationOptions = []
+GetRootNodeOptions = []
+GetUserMediaRequest = []
+Gpu = []
+GpuAdapter = []
+GpuAddressMode = []
+GpuBindGroup = []
+GpuBindGroupDescriptor = []
+GpuBindGroupEntry = []
+GpuBindGroupLayout = []
+GpuBindGroupLayoutDescriptor = []
+GpuBindGroupLayoutEntry = []
+GpuBlendComponent = []
+GpuBlendFactor = []
+GpuBlendOperation = []
+GpuBlendState = []
+GpuBuffer = []
+GpuBufferBinding = []
+GpuBufferBindingLayout = []
+GpuBufferBindingType = []
+GpuBufferDescriptor = []
+GpuBufferUsage = []
+GpuCanvasCompositingAlphaMode = []
+GpuCanvasConfiguration = []
+GpuCanvasContext = []
+GpuColorDict = []
+GpuColorTargetState = []
+GpuColorWrite = []
+GpuCommandBuffer = []
+GpuCommandBufferDescriptor = []
+GpuCommandEncoder = []
+GpuCommandEncoderDescriptor = []
+GpuCompareFunction = []
+GpuCompilationInfo = []
+GpuCompilationMessage = []
+GpuCompilationMessageType = []
+GpuComputePassDescriptor = []
+GpuComputePassEncoder = []
+GpuComputePipeline = []
+GpuComputePipelineDescriptor = []
+GpuCullMode = []
+GpuDepthStencilState = []
+GpuDevice = ["EventTarget"]
+GpuDeviceDescriptor = []
+GpuDeviceLostInfo = []
+GpuDeviceLostReason = []
+GpuErrorFilter = []
+GpuExtent3dDict = []
+GpuExternalTexture = []
+GpuExternalTextureBindingLayout = []
+GpuExternalTextureDescriptor = []
+GpuFeatureName = []
+GpuFilterMode = []
+GpuFragmentState = []
+GpuFrontFace = []
+GpuImageCopyBuffer = []
+GpuImageCopyExternalImage = []
+GpuImageCopyTexture = []
+GpuImageCopyTextureTagged = []
+GpuImageDataLayout = []
+GpuIndexFormat = []
+GpuLoadOp = []
+GpuMapMode = []
+GpuMultisampleState = []
+GpuObjectDescriptorBase = []
+GpuOrigin2dDict = []
+GpuOrigin3dDict = []
+GpuOutOfMemoryError = []
+GpuPipelineDescriptorBase = []
+GpuPipelineLayout = []
+GpuPipelineLayoutDescriptor = []
+GpuPipelineStatisticName = []
+GpuPowerPreference = []
+GpuPredefinedColorSpace = []
+GpuPrimitiveState = []
+GpuPrimitiveTopology = []
+GpuProgrammableStage = []
+GpuQuerySet = []
+GpuQuerySetDescriptor = []
+GpuQueryType = []
+GpuQueue = []
+GpuRenderBundle = []
+GpuRenderBundleDescriptor = []
+GpuRenderBundleEncoder = []
+GpuRenderBundleEncoderDescriptor = []
+GpuRenderPassColorAttachment = []
+GpuRenderPassDepthStencilAttachment = []
+GpuRenderPassDescriptor = []
+GpuRenderPassEncoder = []
+GpuRenderPassLayout = []
+GpuRenderPipeline = []
+GpuRenderPipelineDescriptor = []
+GpuRequestAdapterOptions = []
+GpuSampler = []
+GpuSamplerBindingLayout = []
+GpuSamplerBindingType = []
+GpuSamplerDescriptor = []
+GpuShaderModule = []
+GpuShaderModuleDescriptor = []
+GpuShaderStage = []
+GpuStencilFaceState = []
+GpuStencilOperation = []
+GpuStorageTextureAccess = []
+GpuStorageTextureBindingLayout = []
+GpuStoreOp = []
+GpuSupportedFeatures = []
+GpuSupportedLimits = []
+GpuTexture = []
+GpuTextureAspect = []
+GpuTextureBindingLayout = []
+GpuTextureDescriptor = []
+GpuTextureDimension = []
+GpuTextureFormat = []
+GpuTextureSampleType = []
+GpuTextureUsage = []
+GpuTextureView = []
+GpuTextureViewDescriptor = []
+GpuTextureViewDimension = []
+GpuUncapturedErrorEvent = ["Event"]
+GpuUncapturedErrorEventInit = []
+GpuValidationError = []
+GpuVertexAttribute = []
+GpuVertexBufferLayout = []
+GpuVertexFormat = []
+GpuVertexState = []
+GpuVertexStepMode = []
+GridDeclaration = []
+GridTrackState = []
+GroupedHistoryEventInit = []
+HalfOpenInfoDict = []
+HashChangeEvent = ["Event"]
+HashChangeEventInit = []
+Headers = []
+HeadersGuardEnum = []
+Hid = ["EventTarget"]
+HidCollectionInfo = []
+HidConnectionEvent = ["Event"]
+HidConnectionEventInit = []
+HidDevice = ["EventTarget"]
+HidDeviceFilter = []
+HidDeviceRequestOptions = []
+HidInputReportEvent = ["Event"]
+HidInputReportEventInit = []
+HidReportInfo = []
+HidReportItem = []
+HidUnitSystem = []
+HiddenPluginEventInit = []
+History = []
+HitRegionOptions = []
+HkdfParams = []
+HmacDerivedKeyParams = []
+HmacImportParams = []
+HmacKeyAlgorithm = []
+HmacKeyGenParams = []
+HtmlAllCollection = []
+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"]
+HtmlCollection = []
+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"]
+HttpConnDict = []
+HttpConnInfo = []
+HttpConnectionElement = []
+IdbCursor = []
+IdbCursorDirection = []
+IdbCursorWithValue = ["IdbCursor"]
+IdbDatabase = ["EventTarget"]
+IdbFactory = []
+IdbFileHandle = ["EventTarget"]
+IdbFileMetadataParameters = []
+IdbFileRequest = ["DomRequest", "EventTarget"]
+IdbIndex = []
+IdbIndexParameters = []
+IdbKeyRange = []
+IdbLocaleAwareKeyRange = ["IdbKeyRange"]
+IdbMutableFile = ["EventTarget"]
+IdbObjectStore = []
+IdbObjectStoreParameters = []
+IdbOpenDbOptions = []
+IdbOpenDbRequest = ["EventTarget", "IdbRequest"]
+IdbRequest = ["EventTarget"]
+IdbRequestReadyState = []
+IdbTransaction = ["EventTarget"]
+IdbTransactionMode = []
+IdbVersionChangeEvent = ["Event"]
+IdbVersionChangeEventInit = []
+IdleDeadline = []
+IdleRequestOptions = []
+IirFilterNode = ["AudioNode", "EventTarget"]
+IirFilterOptions = []
+ImageBitmap = []
+ImageBitmapFormat = []
+ImageBitmapRenderingContext = []
+ImageCapture = []
+ImageCaptureError = []
+ImageCaptureErrorEvent = ["Event"]
+ImageCaptureErrorEventInit = []
+ImageData = []
+InputEvent = ["Event", "UiEvent"]
+InputEventInit = []
+InstallTriggerData = []
+IntersectionObserver = []
+IntersectionObserverEntry = []
+IntersectionObserverEntryInit = []
+IntersectionObserverInit = []
+IntlUtils = []
+IterableKeyAndValueResult = []
+IterableKeyOrValueResult = []
+IterationCompositeOperation = []
+JsonWebKey = []
+KeyAlgorithm = []
+KeyEvent = []
+KeyIdsInitData = []
+KeyboardEvent = ["Event", "UiEvent"]
+KeyboardEventInit = []
+KeyframeEffect = ["AnimationEffect"]
+KeyframeEffectOptions = []
+L10nElement = []
+L10nValue = []
+LifecycleCallbacks = []
+LineAlignSetting = []
+ListBoxObject = []
+LocalMediaStream = ["EventTarget", "MediaStream"]
+LocaleInfo = []
+Location = []
+MediaCapabilities = []
+MediaCapabilitiesInfo = []
+MediaConfiguration = []
+MediaDecodingConfiguration = []
+MediaDecodingType = []
+MediaDeviceInfo = []
+MediaDeviceKind = []
+MediaDevices = ["EventTarget"]
+MediaElementAudioSourceNode = ["AudioNode", "EventTarget"]
+MediaElementAudioSourceOptions = []
+MediaEncodingConfiguration = []
+MediaEncodingType = []
+MediaEncryptedEvent = ["Event"]
+MediaError = []
+MediaKeyError = ["Event"]
+MediaKeyMessageEvent = ["Event"]
+MediaKeyMessageEventInit = []
+MediaKeyMessageType = []
+MediaKeyNeededEventInit = []
+MediaKeySession = ["EventTarget"]
+MediaKeySessionType = []
+MediaKeyStatus = []
+MediaKeyStatusMap = []
+MediaKeySystemAccess = []
+MediaKeySystemConfiguration = []
+MediaKeySystemMediaCapability = []
+MediaKeySystemStatus = []
+MediaKeys = []
+MediaKeysPolicy = []
+MediaKeysRequirement = []
+MediaList = []
+MediaQueryList = ["EventTarget"]
+MediaQueryListEvent = ["Event"]
+MediaQueryListEventInit = []
+MediaRecorder = ["EventTarget"]
+MediaRecorderErrorEvent = ["Event"]
+MediaRecorderErrorEventInit = []
+MediaRecorderOptions = []
+MediaSource = ["EventTarget"]
+MediaSourceEndOfStreamError = []
+MediaSourceEnum = []
+MediaSourceReadyState = []
+MediaStream = ["EventTarget"]
+MediaStreamAudioDestinationNode = ["AudioNode", "EventTarget"]
+MediaStreamAudioSourceNode = ["AudioNode", "EventTarget"]
+MediaStreamAudioSourceOptions = []
+MediaStreamConstraints = []
+MediaStreamError = []
+MediaStreamEvent = ["Event"]
+MediaStreamEventInit = []
+MediaStreamTrack = ["EventTarget"]
+MediaStreamTrackEvent = ["Event"]
+MediaStreamTrackEventInit = []
+MediaStreamTrackState = []
+MediaTrackConstraintSet = []
+MediaTrackConstraints = []
+MediaTrackSettings = []
+MediaTrackSupportedConstraints = []
+MessageChannel = []
+MessageEvent = ["Event"]
+MessageEventInit = []
+MessagePort = ["EventTarget"]
+MidiAccess = ["EventTarget"]
+MidiConnectionEvent = ["Event"]
+MidiConnectionEventInit = []
+MidiInput = ["EventTarget", "MidiPort"]
+MidiInputMap = []
+MidiMessageEvent = ["Event"]
+MidiMessageEventInit = []
+MidiOptions = []
+MidiOutput = ["EventTarget", "MidiPort"]
+MidiOutputMap = []
+MidiPort = ["EventTarget"]
+MidiPortConnectionState = []
+MidiPortDeviceState = []
+MidiPortType = []
+MimeType = []
+MimeTypeArray = []
+MouseEvent = ["Event", "UiEvent"]
+MouseEventInit = []
+MouseScrollEvent = ["Event", "MouseEvent", "UiEvent"]
+MozDebug = []
+MutationEvent = ["Event"]
+MutationObserver = []
+MutationObserverInit = []
+MutationObservingInfo = []
+MutationRecord = []
+NamedNodeMap = []
+NativeOsFileReadOptions = []
+NativeOsFileWriteAtomicOptions = []
+NavigationType = []
+Navigator = []
+NavigatorAutomationInformation = []
+NetworkCommandOptions = []
+NetworkInformation = ["EventTarget"]
+NetworkResultOptions = []
+Node = ["EventTarget"]
+NodeFilter = []
+NodeIterator = []
+NodeList = []
+Notification = ["EventTarget"]
+NotificationBehavior = []
+NotificationDirection = []
+NotificationEvent = ["Event", "ExtendableEvent"]
+NotificationEventInit = []
+NotificationOptions = []
+NotificationPermission = []
+ObserverCallback = []
+OesElementIndexUint = []
+OesStandardDerivatives = []
+OesTextureFloat = []
+OesTextureFloatLinear = []
+OesTextureHalfFloat = []
+OesTextureHalfFloatLinear = []
+OesVertexArrayObject = []
+OfflineAudioCompletionEvent = ["Event"]
+OfflineAudioCompletionEventInit = []
+OfflineAudioContext = ["BaseAudioContext", "EventTarget"]
+OfflineAudioContextOptions = []
+OfflineResourceList = ["EventTarget"]
+OffscreenCanvas = ["EventTarget"]
+OpenWindowEventDetail = []
+OptionalEffectTiming = []
+OrientationLockType = []
+OrientationType = []
+OscillatorNode = ["AudioNode", "AudioScheduledSourceNode", "EventTarget"]
+OscillatorOptions = []
+OscillatorType = []
+OverSampleType = []
+PageTransitionEvent = ["Event"]
+PageTransitionEventInit = []
+PaintRequest = []
+PaintRequestList = []
+PaintWorkletGlobalScope = ["WorkletGlobalScope"]
+PannerNode = ["AudioNode", "EventTarget"]
+PannerOptions = []
+PanningModelType = []
+Path2d = []
+PaymentAddress = []
+PaymentComplete = []
+PaymentMethodChangeEvent = ["Event", "PaymentRequestUpdateEvent"]
+PaymentMethodChangeEventInit = []
+PaymentRequestUpdateEvent = ["Event"]
+PaymentRequestUpdateEventInit = []
+PaymentResponse = []
+Pbkdf2Params = []
+PcImplIceConnectionState = []
+PcImplIceGatheringState = []
+PcImplSignalingState = []
+PcObserverStateType = []
+Performance = ["EventTarget"]
+PerformanceEntry = []
+PerformanceEntryEventInit = []
+PerformanceEntryFilterOptions = []
+PerformanceMark = ["PerformanceEntry"]
+PerformanceMeasure = ["PerformanceEntry"]
+PerformanceNavigation = []
+PerformanceNavigationTiming = ["PerformanceEntry", "PerformanceResourceTiming"]
+PerformanceObserver = []
+PerformanceObserverEntryList = []
+PerformanceObserverInit = []
+PerformanceResourceTiming = ["PerformanceEntry"]
+PerformanceServerTiming = []
+PerformanceTiming = []
+PeriodicWave = []
+PeriodicWaveConstraints = []
+PeriodicWaveOptions = []
+PermissionDescriptor = []
+PermissionName = []
+PermissionState = []
+PermissionStatus = ["EventTarget"]
+Permissions = []
+PlaybackDirection = []
+Plugin = []
+PluginArray = []
+PluginCrashedEventInit = []
+PointerEvent = ["Event", "MouseEvent", "UiEvent"]
+PointerEventInit = []
+PopStateEvent = ["Event"]
+PopStateEventInit = []
+PopupBlockedEvent = ["Event"]
+PopupBlockedEventInit = []
+Position = []
+PositionAlignSetting = []
+PositionError = []
+PositionOptions = []
+Presentation = []
+PresentationAvailability = ["EventTarget"]
+PresentationConnection = ["EventTarget"]
+PresentationConnectionAvailableEvent = ["Event"]
+PresentationConnectionAvailableEventInit = []
+PresentationConnectionBinaryType = []
+PresentationConnectionCloseEvent = ["Event"]
+PresentationConnectionCloseEventInit = []
+PresentationConnectionClosedReason = []
+PresentationConnectionList = ["EventTarget"]
+PresentationConnectionState = []
+PresentationReceiver = []
+PresentationRequest = ["EventTarget"]
+PresentationStyle = []
+ProcessingInstruction = ["CharacterData", "EventTarget", "Node"]
+ProfileTimelineLayerRect = []
+ProfileTimelineMarker = []
+ProfileTimelineMessagePortOperationType = []
+ProfileTimelineStackFrame = []
+ProfileTimelineWorkerOperationType = []
+ProgressEvent = ["Event"]
+ProgressEventInit = []
+PromiseNativeHandler = []
+PromiseRejectionEvent = ["Event"]
+PromiseRejectionEventInit = []
+PublicKeyCredential = ["Credential"]
+PublicKeyCredentialCreationOptions = []
+PublicKeyCredentialDescriptor = []
+PublicKeyCredentialEntity = []
+PublicKeyCredentialParameters = []
+PublicKeyCredentialRequestOptions = []
+PublicKeyCredentialRpEntity = []
+PublicKeyCredentialType = []
+PublicKeyCredentialUserEntity = []
+PushEncryptionKeyName = []
+PushEvent = ["Event", "ExtendableEvent"]
+PushEventInit = []
+PushManager = []
+PushMessageData = []
+PushPermissionState = []
+PushSubscription = []
+PushSubscriptionInit = []
+PushSubscriptionJson = []
+PushSubscriptionKeys = []
+PushSubscriptionOptions = []
+PushSubscriptionOptionsInit = []
+QueuingStrategy = []
+RadioNodeList = ["NodeList"]
+Range = []
+RcwnPerfStats = []
+RcwnStatus = []
+ReadableStream = []
+ReadableStreamByobReadResult = []
+ReadableStreamByobReader = []
+ReadableStreamDefaultReadResult = []
+ReadableStreamDefaultReader = []
+ReadableStreamGetReaderOptions = []
+ReadableStreamIteratorOptions = []
+ReadableStreamReaderMode = []
+ReadableWritablePair = []
+RecordingState = []
+ReferrerPolicy = []
+RegisterRequest = []
+RegisterResponse = []
+RegisteredKey = []
+RegistrationOptions = []
+Request = []
+RequestCache = []
+RequestCredentials = []
+RequestDestination = []
+RequestDeviceOptions = []
+RequestInit = []
+RequestMediaKeySystemAccessNotification = []
+RequestMode = []
+RequestRedirect = []
+ResizeObserver = []
+ResizeObserverBoxOptions = []
+ResizeObserverEntry = []
+ResizeObserverOptions = []
+ResizeObserverSize = []
+Response = []
+ResponseInit = []
+ResponseType = []
+RsaHashedImportParams = []
+RsaOaepParams = []
+RsaOtherPrimesInfo = []
+RsaPssParams = []
+RtcAnswerOptions = []
+RtcBundlePolicy = []
+RtcCertificate = []
+RtcCertificateExpiration = []
+RtcCodecStats = []
+RtcConfiguration = []
+RtcDataChannel = ["EventTarget"]
+RtcDataChannelEvent = ["Event"]
+RtcDataChannelEventInit = []
+RtcDataChannelInit = []
+RtcDataChannelState = []
+RtcDataChannelType = []
+RtcDegradationPreference = []
+RtcFecParameters = []
+RtcIceCandidate = []
+RtcIceCandidateInit = []
+RtcIceCandidatePairStats = []
+RtcIceCandidateStats = []
+RtcIceComponentStats = []
+RtcIceConnectionState = []
+RtcIceCredentialType = []
+RtcIceGatheringState = []
+RtcIceServer = []
+RtcIceTransportPolicy = []
+RtcIdentityAssertion = []
+RtcIdentityAssertionResult = []
+RtcIdentityProvider = []
+RtcIdentityProviderDetails = []
+RtcIdentityProviderOptions = []
+RtcIdentityProviderRegistrar = []
+RtcIdentityValidationResult = []
+RtcInboundRtpStreamStats = []
+RtcLifecycleEvent = []
+RtcMediaStreamStats = []
+RtcMediaStreamTrackStats = []
+RtcOfferAnswerOptions = []
+RtcOfferOptions = []
+RtcOutboundRtpStreamStats = []
+RtcPeerConnection = ["EventTarget"]
+RtcPeerConnectionIceEvent = ["Event"]
+RtcPeerConnectionIceEventInit = []
+RtcPriorityType = []
+RtcRtcpParameters = []
+RtcRtpCodecParameters = []
+RtcRtpContributingSource = []
+RtcRtpEncodingParameters = []
+RtcRtpHeaderExtensionParameters = []
+RtcRtpParameters = []
+RtcRtpReceiver = []
+RtcRtpSender = []
+RtcRtpSourceEntry = []
+RtcRtpSourceEntryType = []
+RtcRtpSynchronizationSource = []
+RtcRtpTransceiver = []
+RtcRtpTransceiverDirection = []
+RtcRtpTransceiverInit = []
+RtcRtxParameters = []
+RtcSdpType = []
+RtcSessionDescription = []
+RtcSessionDescriptionInit = []
+RtcSignalingState = []
+RtcStats = []
+RtcStatsIceCandidatePairState = []
+RtcStatsIceCandidateType = []
+RtcStatsReport = []
+RtcStatsReportInternal = []
+RtcStatsType = []
+RtcTrackEvent = ["Event"]
+RtcTrackEventInit = []
+RtcTransportStats = []
+RtcdtmfSender = ["EventTarget"]
+RtcdtmfToneChangeEvent = ["Event"]
+RtcdtmfToneChangeEventInit = []
+RtcrtpContributingSourceStats = []
+RtcrtpStreamStats = []
+Screen = ["EventTarget"]
+ScreenColorGamut = []
+ScreenLuminance = []
+ScreenOrientation = ["EventTarget"]
+ScriptProcessorNode = ["AudioNode", "EventTarget"]
+ScrollAreaEvent = ["Event", "UiEvent"]
+ScrollBehavior = []
+ScrollBoxObject = []
+ScrollIntoViewOptions = []
+ScrollLogicalPosition = []
+ScrollOptions = []
+ScrollRestoration = []
+ScrollSetting = []
+ScrollState = []
+ScrollToOptions = []
+ScrollViewChangeEventInit = []
+SecurityPolicyViolationEvent = ["Event"]
+SecurityPolicyViolationEventDisposition = []
+SecurityPolicyViolationEventInit = []
+Selection = []
+ServerSocketOptions = []
+ServiceWorker = ["EventTarget"]
+ServiceWorkerContainer = ["EventTarget"]
+ServiceWorkerGlobalScope = ["EventTarget", "WorkerGlobalScope"]
+ServiceWorkerRegistration = ["EventTarget"]
+ServiceWorkerState = []
+ServiceWorkerUpdateViaCache = []
+ShadowRoot = ["DocumentFragment", "EventTarget", "Node"]
+ShadowRootInit = []
+ShadowRootMode = []
+SharedWorker = ["EventTarget"]
+SharedWorkerGlobalScope = ["EventTarget", "WorkerGlobalScope"]
+SignResponse = []
+SocketElement = []
+SocketOptions = []
+SocketReadyState = []
+SocketsDict = []
+SourceBuffer = ["EventTarget"]
+SourceBufferAppendMode = []
+SourceBufferList = ["EventTarget"]
+SpeechGrammar = []
+SpeechGrammarList = []
+SpeechRecognition = ["EventTarget"]
+SpeechRecognitionAlternative = []
+SpeechRecognitionError = ["Event"]
+SpeechRecognitionErrorCode = []
+SpeechRecognitionErrorInit = []
+SpeechRecognitionEvent = ["Event"]
+SpeechRecognitionEventInit = []
+SpeechRecognitionResult = []
+SpeechRecognitionResultList = []
+SpeechSynthesis = ["EventTarget"]
+SpeechSynthesisErrorCode = []
+SpeechSynthesisErrorEvent = ["Event", "SpeechSynthesisEvent"]
+SpeechSynthesisErrorEventInit = []
+SpeechSynthesisEvent = ["Event"]
+SpeechSynthesisEventInit = []
+SpeechSynthesisUtterance = ["EventTarget"]
+SpeechSynthesisVoice = []
+StereoPannerNode = ["AudioNode", "EventTarget"]
+StereoPannerOptions = []
+Storage = []
+StorageEstimate = []
+StorageEvent = ["Event"]
+StorageEventInit = []
+StorageManager = []
+StorageType = []
+StreamPipeOptions = []
+StyleRuleChangeEventInit = []
+StyleSheet = []
+StyleSheetApplicableStateChangeEventInit = []
+StyleSheetChangeEventInit = []
+StyleSheetList = []
+SubtleCrypto = []
+SupportedType = []
+SvgAngle = []
+SvgAnimateElement = ["Element", "EventTarget", "Node", "SvgAnimationElement", "SvgElement"]
+SvgAnimateMotionElement = ["Element", "EventTarget", "Node", "SvgAnimationElement", "SvgElement"]
+SvgAnimateTransformElement = ["Element", "EventTarget", "Node", "SvgAnimationElement", "SvgElement"]
+SvgAnimatedAngle = []
+SvgAnimatedBoolean = []
+SvgAnimatedEnumeration = []
+SvgAnimatedInteger = []
+SvgAnimatedLength = []
+SvgAnimatedLengthList = []
+SvgAnimatedNumber = []
+SvgAnimatedNumberList = []
+SvgAnimatedPreserveAspectRatio = []
+SvgAnimatedRect = []
+SvgAnimatedString = []
+SvgAnimatedTransformList = []
+SvgAnimationElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgBoundingBoxOptions = []
+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"]
+SvgLength = []
+SvgLengthList = []
+SvgLineElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGeometryElement", "SvgGraphicsElement"]
+SvgLinearGradientElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGradientElement"]
+SvgMarkerElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgMaskElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgMatrix = []
+SvgMetadataElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgNumber = []
+SvgNumberList = []
+SvgPathElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGeometryElement", "SvgGraphicsElement"]
+SvgPathSeg = []
+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"]
+SvgPathSegList = []
+SvgPathSegMovetoAbs = ["SvgPathSeg"]
+SvgPathSegMovetoRel = ["SvgPathSeg"]
+SvgPatternElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgPoint = []
+SvgPointList = []
+SvgPolygonElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGeometryElement", "SvgGraphicsElement"]
+SvgPolylineElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGeometryElement", "SvgGraphicsElement"]
+SvgPreserveAspectRatio = []
+SvgRadialGradientElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGradientElement"]
+SvgRect = []
+SvgRectElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGeometryElement", "SvgGraphicsElement"]
+SvgScriptElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgSetElement = ["Element", "EventTarget", "Node", "SvgAnimationElement", "SvgElement"]
+SvgStopElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgStringList = []
+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"]
+SvgTransform = []
+SvgTransformList = []
+SvgUnitTypes = []
+SvgUseElement = ["Element", "EventTarget", "Node", "SvgElement", "SvgGraphicsElement"]
+SvgViewElement = ["Element", "EventTarget", "Node", "SvgElement"]
+SvgZoomAndPan = []
+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"]
+TcpReadyState = []
+TcpServerSocket = ["EventTarget"]
+TcpServerSocketEvent = ["Event"]
+TcpServerSocketEventInit = []
+TcpSocket = ["EventTarget"]
+TcpSocketBinaryType = []
+TcpSocketErrorEvent = ["Event"]
+TcpSocketErrorEventInit = []
+TcpSocketEvent = ["Event"]
+TcpSocketEventInit = []
+Text = ["CharacterData", "EventTarget", "Node"]
+TextDecodeOptions = []
+TextDecoder = []
+TextDecoderOptions = []
+TextEncoder = []
+TextMetrics = []
+TextTrack = ["EventTarget"]
+TextTrackCue = ["EventTarget"]
+TextTrackCueList = []
+TextTrackKind = []
+TextTrackList = ["EventTarget"]
+TextTrackMode = []
+TimeEvent = ["Event"]
+TimeRanges = []
+Touch = []
+TouchEvent = ["Event", "UiEvent"]
+TouchEventInit = []
+TouchInit = []
+TouchList = []
+TrackEvent = ["Event"]
+TrackEventInit = []
+TransformStream = []
+TransitionEvent = ["Event"]
+TransitionEventInit = []
+Transport = []
+TreeBoxObject = []
+TreeCellInfo = []
+TreeView = []
+TreeWalker = []
+U2f = []
+U2fClientData = []
+UdpMessageEventInit = []
+UdpOptions = []
+UiEvent = ["Event"]
+UiEventInit = []
+Url = []
+UrlSearchParams = []
+Usb = ["EventTarget"]
+UsbAlternateInterface = []
+UsbConfiguration = []
+UsbConnectionEvent = ["Event"]
+UsbConnectionEventInit = []
+UsbControlTransferParameters = []
+UsbDevice = []
+UsbDeviceFilter = []
+UsbDeviceRequestOptions = []
+UsbDirection = []
+UsbEndpoint = []
+UsbEndpointType = []
+UsbInTransferResult = []
+UsbInterface = []
+UsbIsochronousInTransferPacket = []
+UsbIsochronousInTransferResult = []
+UsbIsochronousOutTransferPacket = []
+UsbIsochronousOutTransferResult = []
+UsbOutTransferResult = []
+UsbPermissionDescriptor = []
+UsbPermissionResult = ["EventTarget", "PermissionStatus"]
+UsbPermissionStorage = []
+UsbRecipient = []
+UsbRequestType = []
+UsbTransferStatus = []
+UserProximityEvent = ["Event"]
+UserProximityEventInit = []
+UserVerificationRequirement = []
+ValidityState = []
+ValueEvent = ["Event"]
+ValueEventInit = []
+VideoConfiguration = []
+VideoFacingModeEnum = []
+VideoPlaybackQuality = []
+VideoStreamTrack = ["EventTarget", "MediaStreamTrack"]
+VideoTrack = []
+VideoTrackList = ["EventTarget"]
+VisibilityState = []
+VoidCallback = []
+VrDisplay = ["EventTarget"]
+VrDisplayCapabilities = []
+VrEye = []
+VrEyeParameters = []
+VrFieldOfView = []
+VrFrameData = []
+VrLayer = []
+VrMockController = []
+VrMockDisplay = []
+VrPose = []
+VrServiceTest = []
+VrStageParameters = []
+VrSubmitFrameResult = []
+VttCue = ["EventTarget", "TextTrackCue"]
+VttRegion = []
+WakeLock = []
+WakeLockSentinel = ["EventTarget"]
+WakeLockType = []
+WatchAdvertisementsOptions = []
+WaveShaperNode = ["AudioNode", "EventTarget"]
+WaveShaperOptions = []
+WebGl2RenderingContext = []
+WebGlActiveInfo = []
+WebGlBuffer = []
+WebGlContextAttributes = []
+WebGlContextEvent = ["Event"]
+WebGlContextEventInit = []
+WebGlFramebuffer = []
+WebGlPowerPreference = []
+WebGlProgram = []
+WebGlQuery = []
+WebGlRenderbuffer = []
+WebGlRenderingContext = []
+WebGlSampler = []
+WebGlShader = []
+WebGlShaderPrecisionFormat = []
+WebGlSync = []
+WebGlTexture = []
+WebGlTransformFeedback = []
+WebGlUniformLocation = []
+WebGlVertexArrayObject = []
+WebKitCssMatrix = ["DomMatrix", "DomMatrixReadOnly"]
+WebSocket = ["EventTarget"]
+WebSocketDict = []
+WebSocketElement = []
+WebglColorBufferFloat = []
+WebglCompressedTextureAstc = []
+WebglCompressedTextureAtc = []
+WebglCompressedTextureEtc = []
+WebglCompressedTextureEtc1 = []
+WebglCompressedTexturePvrtc = []
+WebglCompressedTextureS3tc = []
+WebglCompressedTextureS3tcSrgb = []
+WebglDebugRendererInfo = []
+WebglDebugShaders = []
+WebglDepthTexture = []
+WebglDrawBuffers = []
+WebglLoseContext = []
+WebrtcGlobalStatisticsReport = []
+WheelEvent = ["Event", "MouseEvent", "UiEvent"]
+WheelEventInit = []
+WidevineCdmManifest = []
+Window = ["EventTarget"]
+WindowClient = ["Client"]
+Worker = ["EventTarget"]
+WorkerDebuggerGlobalScope = ["EventTarget"]
+WorkerGlobalScope = ["EventTarget"]
+WorkerLocation = []
+WorkerNavigator = []
+WorkerOptions = []
+WorkerType = []
+Worklet = []
+WorkletGlobalScope = []
+WorkletOptions = []
+WritableStream = []
+WritableStreamDefaultWriter = []
+XPathExpression = []
+XPathNsResolver = []
+XPathResult = []
+XmlDocument = ["Document", "EventTarget", "Node"]
+XmlHttpRequest = ["EventTarget", "XmlHttpRequestEventTarget"]
+XmlHttpRequestEventTarget = ["EventTarget"]
+XmlHttpRequestResponseType = []
+XmlHttpRequestUpload = ["EventTarget", "XmlHttpRequestEventTarget"]
+XmlSerializer = []
+Xr = ["EventTarget"]
+XrBoundedReferenceSpace = ["EventTarget", "XrReferenceSpace", "XrSpace"]
+XrEye = []
+XrFrame = []
+XrHandedness = []
+XrInputSource = []
+XrInputSourceArray = []
+XrInputSourceEvent = ["Event"]
+XrInputSourceEventInit = []
+XrInputSourcesChangeEvent = ["Event"]
+XrInputSourcesChangeEventInit = []
+XrPose = []
+XrReferenceSpace = ["EventTarget", "XrSpace"]
+XrReferenceSpaceEvent = ["Event"]
+XrReferenceSpaceEventInit = []
+XrReferenceSpaceType = []
+XrRenderState = []
+XrRenderStateInit = []
+XrRigidTransform = []
+XrSession = ["EventTarget"]
+XrSessionEvent = ["Event"]
+XrSessionEventInit = []
+XrSessionInit = []
+XrSessionMode = []
+XrSpace = ["EventTarget"]
+XrTargetRayMode = []
+XrView = []
+XrViewerPose = ["XrPose"]
+XrViewport = []
+XrVisibilityState = []
+XrWebGlLayer = []
+XrWebGlLayerInit = []
+XsltProcessor = []
+console = []
+css = []
diff --git a/build/rust/dummy-web/web-sys/lib.rs b/build/rust/dummy-web/web-sys/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/dummy-web/web-sys/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/goblin/Cargo.toml b/build/rust/goblin/Cargo.toml
new file mode 100644
index 0000000000..52e8dfe66d
--- /dev/null
+++ b/build/rust/goblin/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "goblin"
+version = "0.6.999"
+edition = "2018"
+license = "MIT/Apache-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.goblin]
+version = "0.7.0"
diff --git a/build/rust/goblin/lib.rs b/build/rust/goblin/lib.rs
new file mode 100644
index 0000000000..ba9ee61592
--- /dev/null
+++ b/build/rust/goblin/lib.rs
@@ -0,0 +1,11 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+pub use goblin::*;
diff --git a/build/rust/indexmap/Cargo.toml b/build/rust/indexmap/Cargo.toml
new file mode 100644
index 0000000000..de45a4f02d
--- /dev/null
+++ b/build/rust/indexmap/Cargo.toml
@@ -0,0 +1,16 @@
+[package]
+name = "indexmap"
+version = "2.999.999"
+edition = "2021"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[features]
+default = ["std"]
+serde = ["indexmap/serde-1"]
+std = ["indexmap/std"]
+
+[dependencies.indexmap]
+version = "1.9.3"
diff --git a/build/rust/indexmap/lib.rs b/build/rust/indexmap/lib.rs
new file mode 100644
index 0000000000..8142a8bd1d
--- /dev/null
+++ b/build/rust/indexmap/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use indexmap::*;
diff --git a/build/rust/memmap2-0.5/Cargo.toml b/build/rust/memmap2-0.5/Cargo.toml
new file mode 100644
index 0000000000..331e3a955e
--- /dev/null
+++ b/build/rust/memmap2-0.5/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "memmap2"
+version = "0.5.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.memmap2]
+version = "0.8.0"
diff --git a/build/rust/memmap2-0.5/lib.rs b/build/rust/memmap2-0.5/lib.rs
new file mode 100644
index 0000000000..214110099a
--- /dev/null
+++ b/build/rust/memmap2-0.5/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use memmap2::*;
diff --git a/build/rust/memmap2/Cargo.toml b/build/rust/memmap2/Cargo.toml
new file mode 100644
index 0000000000..eb9ed01134
--- /dev/null
+++ b/build/rust/memmap2/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "memmap2"
+version = "0.8.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.memmap2]
+version = "0.9"
diff --git a/build/rust/memmap2/lib.rs b/build/rust/memmap2/lib.rs
new file mode 100644
index 0000000000..214110099a
--- /dev/null
+++ b/build/rust/memmap2/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use memmap2::*;
diff --git a/build/rust/memoffset/Cargo.toml b/build/rust/memoffset/Cargo.toml
new file mode 100644
index 0000000000..24eb01a58b
--- /dev/null
+++ b/build/rust/memoffset/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "memoffset"
+version = "0.8.999"
+edition = "2018"
+license = "MIT/Apache-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.memoffset]
+version = "0.9"
diff --git a/build/rust/memoffset/lib.rs b/build/rust/memoffset/lib.rs
new file mode 100644
index 0000000000..5bc4a399a7
--- /dev/null
+++ b/build/rust/memoffset/lib.rs
@@ -0,0 +1,11 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+pub use memoffset::*;
diff --git a/build/rust/mozbuild/Cargo.toml b/build/rust/mozbuild/Cargo.toml
new file mode 100644
index 0000000000..ef9b4c6ccf
--- /dev/null
+++ b/build/rust/mozbuild/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "mozbuild"
+version = "0.1.0"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/mozbuild/build.rs b/build/rust/mozbuild/build.rs
new file mode 100644
index 0000000000..e9fb6b91b0
--- /dev/null
+++ b/build/rust/mozbuild/build.rs
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use std::path::PathBuf;
+
+fn main() {
+ let out_dir = PathBuf::from(std::env::var_os("OUT_DIR").unwrap());
+ if let Some(topobjdir) = out_dir
+ .ancestors()
+ .find(|dir| dir.join("config.status").exists())
+ {
+ println!(
+ "cargo:rustc-env=BUILDCONFIG_RS={}",
+ topobjdir
+ .join("build/rust/mozbuild/buildconfig.rs")
+ .display()
+ );
+ }
+}
diff --git a/build/rust/mozbuild/generate_buildconfig.py b/build/rust/mozbuild/generate_buildconfig.py
new file mode 100644
index 0000000000..2252276319
--- /dev/null
+++ b/build/rust/mozbuild/generate_buildconfig.py
@@ -0,0 +1,95 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import string
+import textwrap
+
+import buildconfig
+
+
+def generate_bool(name):
+ value = buildconfig.substs.get(name)
+ return f"pub const {name}: bool = {'true' if value else 'false'};\n"
+
+
+def escape_rust_string(value):
+ """escape the string into a Rust literal"""
+ # This could be more generous, but we're only escaping paths with it.
+ unescaped = string.ascii_letters + string.digits + "/$+-_~ "
+ result = ""
+ for ch in str(value):
+ if ch in unescaped:
+ result += ch
+ elif ch == "\r":
+ result += "\\r"
+ elif ch == "\n":
+ result += "\\n"
+ elif ch == "\\":
+ result += "\\\\"
+ elif ch == '"':
+ result += '\\"'
+ else:
+ result += "\\u{%x}" % ord(ch)
+ return '"%s"' % result
+
+
+def generate(output):
+ # Write out a macro which can be used within `include!`-like methods to
+ # reference the topobjdir.
+ output.write(
+ textwrap.dedent(
+ f"""
+ /// Macro used to name a path in the objdir for use with macros like `include!`
+ #[macro_export]
+ macro_rules! objdir_path {{
+ ($path:literal) => {{
+ concat!({escape_rust_string(buildconfig.topobjdir + "/")}, $path)
+ }}
+ }}
+
+ /// Macro used to name a path in the srcdir for use with macros like `include!`
+ #[macro_export]
+ macro_rules! srcdir_path {{
+ ($path:literal) => {{
+ concat!({escape_rust_string(buildconfig.topsrcdir + "/")}, $path)
+ }}
+ }}
+
+ /// The objdir path for use in build scripts
+ pub const TOPOBJDIR: &str = {escape_rust_string(buildconfig.topobjdir)};
+ /// The srcdir path for use in build scripts
+ pub const TOPSRCDIR: &str = {escape_rust_string(buildconfig.topsrcdir)};
+
+ """
+ )
+ )
+
+ windows_rs_dir = buildconfig.substs.get("MOZ_WINDOWS_RS_DIR")
+ if windows_rs_dir:
+ output.write(
+ textwrap.dedent(
+ f"""
+ /// Macro used to name a path in the srcdir for use with macros like `include!`
+ #[macro_export]
+ macro_rules! windows_rs_path {{
+ ($path:literal) => {{
+ concat!({escape_rust_string(windows_rs_dir + "/")}, $path)
+ }}
+ }}
+
+ /// The path to the windows-rs crate, for use in build scripts
+ pub const WINDOWS_RS_DIR: &str = {escape_rust_string(windows_rs_dir)};
+
+ """
+ )
+ )
+
+ # Finally, write out some useful booleans from the buildconfig.
+ output.write(generate_bool("MOZ_FOLD_LIBS"))
+ output.write(generate_bool("NIGHTLY_BUILD"))
+ output.write(generate_bool("RELEASE_OR_BETA"))
+ output.write(generate_bool("EARLY_BETA_OR_EARLIER"))
+ output.write(generate_bool("MOZ_DEV_EDITION"))
+ output.write(generate_bool("MOZ_ESR"))
+ output.write(generate_bool("MOZ_DIAGNOSTIC_ASSERT_ENABLED"))
diff --git a/build/rust/mozbuild/lib.rs b/build/rust/mozbuild/lib.rs
new file mode 100644
index 0000000000..a22b1d9176
--- /dev/null
+++ b/build/rust/mozbuild/lib.rs
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use std::path::Path;
+
+// Path::new is not const at the moment. This is a non-generic version
+// of Path::new, similar to libstd's implementation of Path::new.
+#[inline(always)]
+const fn const_path(s: &'static str) -> &'static std::path::Path {
+ unsafe { &*(s as *const str as *const std::path::Path) }
+}
+
+pub const TOPOBJDIR: &Path = const_path(config::TOPOBJDIR);
+
+pub const TOPSRCDIR: &Path = const_path(config::TOPSRCDIR);
+
+pub mod config {
+ include!(env!("BUILDCONFIG_RS"));
+}
diff --git a/build/rust/mozbuild/moz.build b/build/rust/mozbuild/moz.build
new file mode 100644
index 0000000000..3cc09a7c5a
--- /dev/null
+++ b/build/rust/mozbuild/moz.build
@@ -0,0 +1,9 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+GeneratedFile(
+ "buildconfig.rs", script="generate_buildconfig.py", entry_point="generate"
+)
diff --git a/build/rust/nix/Cargo.toml b/build/rust/nix/Cargo.toml
new file mode 100644
index 0000000000..4ecba71164
--- /dev/null
+++ b/build/rust/nix/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "nix"
+version = "0.26.99"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.nix]
+version = "0.27"
+default-features = false
+
+[features]
+acct = ["nix/acct"]
+aio = ["nix/aio"]
+default = ["nix/default"]
+dir = ["nix/dir"]
+env = ["nix/env"]
+event = ["nix/event"]
+feature = ["nix/feature"]
+fs = ["nix/fs"]
+hostname = ["nix/hostname"]
+inotify = ["nix/inotify"]
+ioctl = ["nix/ioctl"]
+kmod = ["nix/kmod"]
+mman = ["nix/mman"]
+mount = ["nix/mount"]
+mqueue = ["nix/mqueue"]
+net = ["nix/net"]
diff --git a/build/rust/nix/lib.rs b/build/rust/nix/lib.rs
new file mode 100644
index 0000000000..d1039ae71a
--- /dev/null
+++ b/build/rust/nix/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use nix::*;
diff --git a/build/rust/oslog/Cargo.toml b/build/rust/oslog/Cargo.toml
new file mode 100644
index 0000000000..fa647f9646
--- /dev/null
+++ b/build/rust/oslog/Cargo.toml
@@ -0,0 +1,15 @@
+[package]
+name = "oslog"
+version = "0.1.999"
+edition = "2018"
+license = "MIT"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.log]
+version = "0.4"
+default-features = false
+
+[features]
+logger = []
diff --git a/build/rust/oslog/LICENSE b/build/rust/oslog/LICENSE
new file mode 100644
index 0000000000..13b609c25b
--- /dev/null
+++ b/build/rust/oslog/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Steven Joruk
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/build/rust/oslog/lib.rs b/build/rust/oslog/lib.rs
new file mode 100644
index 0000000000..4a529e7afa
--- /dev/null
+++ b/build/rust/oslog/lib.rs
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub struct OsLogger;
+
+use log::{LevelFilter, SetLoggerError};
+
+impl OsLogger {
+ pub fn new(_subsystem: &str) -> Self {
+ Self
+ }
+
+ pub fn level_filter(self, _level: LevelFilter) -> Self {
+ self
+ }
+
+ pub fn category_level_filter(self, _category: &str, _level: LevelFilter) -> Self {
+ self
+ }
+
+ pub fn init(self) -> Result<(), SetLoggerError> {
+ Ok(())
+ }
+}
diff --git a/build/rust/redox_syscall/Cargo.toml b/build/rust/redox_syscall/Cargo.toml
new file mode 100644
index 0000000000..41ba6ba33d
--- /dev/null
+++ b/build/rust/redox_syscall/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "redox_syscall"
+version = "0.4.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/redox_syscall/lib.rs b/build/rust/redox_syscall/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/redox_syscall/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/redox_users/Cargo.toml b/build/rust/redox_users/Cargo.toml
new file mode 100644
index 0000000000..9ea9b4a086
--- /dev/null
+++ b/build/rust/redox_users/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "redox_users"
+version = "0.4.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/redox_users/lib.rs b/build/rust/redox_users/lib.rs
new file mode 100644
index 0000000000..e0032240a4
--- /dev/null
+++ b/build/rust/redox_users/lib.rs
@@ -0,0 +1,3 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
diff --git a/build/rust/terminal_size/Cargo.toml b/build/rust/terminal_size/Cargo.toml
new file mode 100644
index 0000000000..f787ebdd15
--- /dev/null
+++ b/build/rust/terminal_size/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "terminal_size"
+version = "0.3.999"
+edition = "2018"
+license = "MIT OR Apache-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/terminal_size/lib.rs b/build/rust/terminal_size/lib.rs
new file mode 100644
index 0000000000..e2e6512604
--- /dev/null
+++ b/build/rust/terminal_size/lib.rs
@@ -0,0 +1,26 @@
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
+pub struct Width(pub u16);
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
+pub struct Height(pub u16);
+
+pub fn terminal_size() -> Option<(Width, Height)> {
+ Some((Width(80), Height(25)))
+}
+
+#[cfg(unix)]
+pub fn terminal_size_using_fd(_fd: std::os::unix::io::RawFd) -> Option<(Width, Height)> {
+ Some((Width(80), Height(25)))
+}
+
+#[cfg(windows)]
+pub fn terminal_size_using_handle(
+ _handle: std::os::windows::io::RawHandle,
+) -> Option<(Width, Height)> {
+ Some((Width(80), Height(25)))
+}
diff --git a/build/rust/tinyvec/Cargo.toml b/build/rust/tinyvec/Cargo.toml
new file mode 100644
index 0000000000..d40a4db514
--- /dev/null
+++ b/build/rust/tinyvec/Cargo.toml
@@ -0,0 +1,16 @@
+[package]
+name = "tinyvec"
+version = "1.999.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+smallvec = "1"
+
+[features]
+alloc = []
+default = []
+std = ["alloc"]
diff --git a/build/rust/tinyvec/lib.rs b/build/rust/tinyvec/lib.rs
new file mode 100644
index 0000000000..decdb0efdc
--- /dev/null
+++ b/build/rust/tinyvec/lib.rs
@@ -0,0 +1,6 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use smallvec::SmallVec as ArrayVec;
+pub use smallvec::SmallVec as TinyVec;
diff --git a/build/rust/vcpkg/Cargo.toml b/build/rust/vcpkg/Cargo.toml
new file mode 100644
index 0000000000..2128be7ad8
--- /dev/null
+++ b/build/rust/vcpkg/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "vcpkg"
+version = "0.2.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
diff --git a/build/rust/vcpkg/lib.rs b/build/rust/vcpkg/lib.rs
new file mode 100644
index 0000000000..630f19f4be
--- /dev/null
+++ b/build/rust/vcpkg/lib.rs
@@ -0,0 +1,23 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use std::path::PathBuf;
+
+pub struct Config;
+
+pub struct Library {
+ pub include_paths: Vec<PathBuf>,
+}
+
+pub struct Error;
+
+impl Config {
+ pub fn new() -> Config {
+ Config
+ }
+
+ pub fn probe(&mut self, _: &str) -> Result<Library, Error> {
+ Err(Error)
+ }
+}
diff --git a/build/rust/wasi/Cargo.toml b/build/rust/wasi/Cargo.toml
new file mode 100644
index 0000000000..e1f392a961
--- /dev/null
+++ b/build/rust/wasi/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.wasi]
+version = "0.11"
+default-features = false
+
+[features]
+default = ["wasi/default"]
+rustc-dep-of-std = ["wasi/rustc-dep-of-std"]
+std = ["wasi/std"]
diff --git a/build/rust/wasi/lib.rs b/build/rust/wasi/lib.rs
new file mode 100644
index 0000000000..1bb1206202
--- /dev/null
+++ b/build/rust/wasi/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use wasi::*;
diff --git a/build/rust/windows-sys/Cargo.toml b/build/rust/windows-sys/Cargo.toml
new file mode 100644
index 0000000000..b668eb5f7f
--- /dev/null
+++ b/build/rust/windows-sys/Cargo.toml
@@ -0,0 +1,232 @@
+[package]
+name = "windows-sys"
+version = "0.48.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.windows-sys]
+version = "0.52"
+default-features = false
+
+[features]
+Wdk = ["windows-sys/Wdk"]
+Wdk_System = ["windows-sys/Wdk_System"]
+Wdk_System_OfflineRegistry = ["windows-sys/Wdk_System_OfflineRegistry"]
+Win32 = ["windows-sys/Win32"]
+Win32_Data = ["windows-sys/Win32_Data"]
+Win32_Data_HtmlHelp = ["windows-sys/Win32_Data_HtmlHelp"]
+Win32_Data_RightsManagement = ["windows-sys/Win32_Data_RightsManagement"]
+Win32_Devices = ["windows-sys/Win32_Devices"]
+Win32_Devices_AllJoyn = ["windows-sys/Win32_Devices_AllJoyn"]
+Win32_Devices_BiometricFramework = ["windows-sys/Win32_Devices_BiometricFramework"]
+Win32_Devices_Bluetooth = ["windows-sys/Win32_Devices_Bluetooth"]
+Win32_Devices_Communication = ["windows-sys/Win32_Devices_Communication"]
+Win32_Devices_DeviceAndDriverInstallation = ["windows-sys/Win32_Devices_DeviceAndDriverInstallation"]
+Win32_Devices_DeviceQuery = ["windows-sys/Win32_Devices_DeviceQuery"]
+Win32_Devices_Display = ["windows-sys/Win32_Devices_Display"]
+Win32_Devices_Enumeration = ["windows-sys/Win32_Devices_Enumeration"]
+Win32_Devices_Enumeration_Pnp = ["windows-sys/Win32_Devices_Enumeration_Pnp"]
+Win32_Devices_Fax = ["windows-sys/Win32_Devices_Fax"]
+Win32_Devices_HumanInterfaceDevice = ["windows-sys/Win32_Devices_HumanInterfaceDevice"]
+Win32_Devices_PortableDevices = ["windows-sys/Win32_Devices_PortableDevices"]
+Win32_Devices_Properties = ["windows-sys/Win32_Devices_Properties"]
+Win32_Devices_Pwm = ["windows-sys/Win32_Devices_Pwm"]
+Win32_Devices_Sensors = ["windows-sys/Win32_Devices_Sensors"]
+Win32_Devices_SerialCommunication = ["windows-sys/Win32_Devices_SerialCommunication"]
+Win32_Devices_Tapi = ["windows-sys/Win32_Devices_Tapi"]
+Win32_Devices_Usb = ["windows-sys/Win32_Devices_Usb"]
+Win32_Devices_WebServicesOnDevices = ["windows-sys/Win32_Devices_WebServicesOnDevices"]
+Win32_Foundation = ["windows-sys/Win32_Foundation"]
+Win32_Gaming = ["windows-sys/Win32_Gaming"]
+Win32_Globalization = ["windows-sys/Win32_Globalization"]
+Win32_Graphics = ["windows-sys/Win32_Graphics"]
+Win32_Graphics_Dwm = ["windows-sys/Win32_Graphics_Dwm"]
+Win32_Graphics_Gdi = ["windows-sys/Win32_Graphics_Gdi"]
+Win32_Graphics_Hlsl = ["windows-sys/Win32_Graphics_Hlsl"]
+Win32_Graphics_OpenGL = ["windows-sys/Win32_Graphics_OpenGL"]
+Win32_Graphics_Printing = ["windows-sys/Win32_Graphics_Printing"]
+Win32_Graphics_Printing_PrintTicket = ["windows-sys/Win32_Graphics_Printing_PrintTicket"]
+Win32_Management = ["windows-sys/Win32_Management"]
+Win32_Management_MobileDeviceManagementRegistration = ["windows-sys/Win32_Management_MobileDeviceManagementRegistration"]
+Win32_Media = ["windows-sys/Win32_Media"]
+Win32_Media_Audio = ["windows-sys/Win32_Media_Audio"]
+Win32_Media_DxMediaObjects = ["windows-sys/Win32_Media_DxMediaObjects"]
+Win32_Media_KernelStreaming = ["windows-sys/Win32_Media_KernelStreaming"]
+Win32_Media_Multimedia = ["windows-sys/Win32_Media_Multimedia"]
+Win32_Media_Streaming = ["windows-sys/Win32_Media_Streaming"]
+Win32_Media_WindowsMediaFormat = ["windows-sys/Win32_Media_WindowsMediaFormat"]
+Win32_NetworkManagement = ["windows-sys/Win32_NetworkManagement"]
+Win32_NetworkManagement_Dhcp = ["windows-sys/Win32_NetworkManagement_Dhcp"]
+Win32_NetworkManagement_Dns = ["windows-sys/Win32_NetworkManagement_Dns"]
+Win32_NetworkManagement_InternetConnectionWizard = ["windows-sys/Win32_NetworkManagement_InternetConnectionWizard"]
+Win32_NetworkManagement_IpHelper = ["windows-sys/Win32_NetworkManagement_IpHelper"]
+Win32_NetworkManagement_Multicast = ["windows-sys/Win32_NetworkManagement_Multicast"]
+Win32_NetworkManagement_Ndis = ["windows-sys/Win32_NetworkManagement_Ndis"]
+Win32_NetworkManagement_NetBios = ["windows-sys/Win32_NetworkManagement_NetBios"]
+Win32_NetworkManagement_NetManagement = ["windows-sys/Win32_NetworkManagement_NetManagement"]
+Win32_NetworkManagement_NetShell = ["windows-sys/Win32_NetworkManagement_NetShell"]
+Win32_NetworkManagement_NetworkDiagnosticsFramework = ["windows-sys/Win32_NetworkManagement_NetworkDiagnosticsFramework"]
+Win32_NetworkManagement_P2P = ["windows-sys/Win32_NetworkManagement_P2P"]
+Win32_NetworkManagement_QoS = ["windows-sys/Win32_NetworkManagement_QoS"]
+Win32_NetworkManagement_Rras = ["windows-sys/Win32_NetworkManagement_Rras"]
+Win32_NetworkManagement_Snmp = ["windows-sys/Win32_NetworkManagement_Snmp"]
+Win32_NetworkManagement_WNet = ["windows-sys/Win32_NetworkManagement_WNet"]
+Win32_NetworkManagement_WebDav = ["windows-sys/Win32_NetworkManagement_WebDav"]
+Win32_NetworkManagement_WiFi = ["windows-sys/Win32_NetworkManagement_WiFi"]
+Win32_NetworkManagement_WindowsConnectionManager = ["windows-sys/Win32_NetworkManagement_WindowsConnectionManager"]
+Win32_NetworkManagement_WindowsFilteringPlatform = ["windows-sys/Win32_NetworkManagement_WindowsFilteringPlatform"]
+Win32_NetworkManagement_WindowsFirewall = ["windows-sys/Win32_NetworkManagement_WindowsFirewall"]
+Win32_NetworkManagement_WindowsNetworkVirtualization = ["windows-sys/Win32_NetworkManagement_WindowsNetworkVirtualization"]
+Win32_Networking = ["windows-sys/Win32_Networking"]
+Win32_Networking_ActiveDirectory = ["windows-sys/Win32_Networking_ActiveDirectory"]
+Win32_Networking_Clustering = ["windows-sys/Win32_Networking_Clustering"]
+Win32_Networking_HttpServer = ["windows-sys/Win32_Networking_HttpServer"]
+Win32_Networking_Ldap = ["windows-sys/Win32_Networking_Ldap"]
+Win32_Networking_WebSocket = ["windows-sys/Win32_Networking_WebSocket"]
+Win32_Networking_WinHttp = ["windows-sys/Win32_Networking_WinHttp"]
+Win32_Networking_WinInet = ["windows-sys/Win32_Networking_WinInet"]
+Win32_Networking_WinSock = ["windows-sys/Win32_Networking_WinSock"]
+Win32_Networking_WindowsWebServices = ["windows-sys/Win32_Networking_WindowsWebServices"]
+Win32_Security = ["windows-sys/Win32_Security"]
+Win32_Security_AppLocker = ["windows-sys/Win32_Security_AppLocker"]
+Win32_Security_Authentication = ["windows-sys/Win32_Security_Authentication"]
+Win32_Security_Authentication_Identity = ["windows-sys/Win32_Security_Authentication_Identity"]
+Win32_Security_Authorization = ["windows-sys/Win32_Security_Authorization"]
+Win32_Security_Credentials = ["windows-sys/Win32_Security_Credentials"]
+Win32_Security_Cryptography = ["windows-sys/Win32_Security_Cryptography"]
+Win32_Security_Cryptography_Catalog = ["windows-sys/Win32_Security_Cryptography_Catalog"]
+Win32_Security_Cryptography_Certificates = ["windows-sys/Win32_Security_Cryptography_Certificates"]
+Win32_Security_Cryptography_Sip = ["windows-sys/Win32_Security_Cryptography_Sip"]
+Win32_Security_Cryptography_UI = ["windows-sys/Win32_Security_Cryptography_UI"]
+Win32_Security_DiagnosticDataQuery = ["windows-sys/Win32_Security_DiagnosticDataQuery"]
+Win32_Security_DirectoryServices = ["windows-sys/Win32_Security_DirectoryServices"]
+Win32_Security_EnterpriseData = ["windows-sys/Win32_Security_EnterpriseData"]
+Win32_Security_ExtensibleAuthenticationProtocol = ["windows-sys/Win32_Security_ExtensibleAuthenticationProtocol"]
+Win32_Security_Isolation = ["windows-sys/Win32_Security_Isolation"]
+Win32_Security_LicenseProtection = ["windows-sys/Win32_Security_LicenseProtection"]
+Win32_Security_NetworkAccessProtection = ["windows-sys/Win32_Security_NetworkAccessProtection"]
+Win32_Security_WinTrust = ["windows-sys/Win32_Security_WinTrust"]
+Win32_Security_WinWlx = ["windows-sys/Win32_Security_WinWlx"]
+Win32_Storage = ["windows-sys/Win32_Storage"]
+Win32_Storage_Cabinets = ["windows-sys/Win32_Storage_Cabinets"]
+Win32_Storage_CloudFilters = ["windows-sys/Win32_Storage_CloudFilters"]
+Win32_Storage_Compression = ["windows-sys/Win32_Storage_Compression"]
+Win32_Storage_DistributedFileSystem = ["windows-sys/Win32_Storage_DistributedFileSystem"]
+Win32_Storage_FileHistory = ["windows-sys/Win32_Storage_FileHistory"]
+Win32_Storage_FileSystem = ["windows-sys/Win32_Storage_FileSystem"]
+Win32_Storage_Imapi = ["windows-sys/Win32_Storage_Imapi"]
+Win32_Storage_IndexServer = ["windows-sys/Win32_Storage_IndexServer"]
+Win32_Storage_InstallableFileSystems = ["windows-sys/Win32_Storage_InstallableFileSystems"]
+Win32_Storage_IscsiDisc = ["windows-sys/Win32_Storage_IscsiDisc"]
+Win32_Storage_Jet = ["windows-sys/Win32_Storage_Jet"]
+Win32_Storage_OfflineFiles = ["windows-sys/Win32_Storage_OfflineFiles"]
+Win32_Storage_OperationRecorder = ["windows-sys/Win32_Storage_OperationRecorder"]
+Win32_Storage_Packaging = ["windows-sys/Win32_Storage_Packaging"]
+Win32_Storage_Packaging_Appx = ["windows-sys/Win32_Storage_Packaging_Appx"]
+Win32_Storage_ProjectedFileSystem = ["windows-sys/Win32_Storage_ProjectedFileSystem"]
+Win32_Storage_StructuredStorage = ["windows-sys/Win32_Storage_StructuredStorage"]
+Win32_Storage_Vhd = ["windows-sys/Win32_Storage_Vhd"]
+Win32_Storage_Xps = ["windows-sys/Win32_Storage_Xps"]
+Win32_System = ["windows-sys/Win32_System"]
+Win32_System_AddressBook = ["windows-sys/Win32_System_AddressBook"]
+Win32_System_Antimalware = ["windows-sys/Win32_System_Antimalware"]
+Win32_System_ApplicationInstallationAndServicing = ["windows-sys/Win32_System_ApplicationInstallationAndServicing"]
+Win32_System_ApplicationVerifier = ["windows-sys/Win32_System_ApplicationVerifier"]
+Win32_System_ClrHosting = ["windows-sys/Win32_System_ClrHosting"]
+Win32_System_Com = ["windows-sys/Win32_System_Com"]
+Win32_System_Com_Marshal = ["windows-sys/Win32_System_Com_Marshal"]
+Win32_System_Com_StructuredStorage = ["windows-sys/Win32_System_Com_StructuredStorage"]
+Win32_System_Com_Urlmon = ["windows-sys/Win32_System_Com_Urlmon"]
+Win32_System_ComponentServices = ["windows-sys/Win32_System_ComponentServices"]
+Win32_System_Console = ["windows-sys/Win32_System_Console"]
+Win32_System_CorrelationVector = ["windows-sys/Win32_System_CorrelationVector"]
+Win32_System_DataExchange = ["windows-sys/Win32_System_DataExchange"]
+Win32_System_DeploymentServices = ["windows-sys/Win32_System_DeploymentServices"]
+Win32_System_DeveloperLicensing = ["windows-sys/Win32_System_DeveloperLicensing"]
+Win32_System_Diagnostics = ["windows-sys/Win32_System_Diagnostics"]
+Win32_System_Diagnostics_Ceip = ["windows-sys/Win32_System_Diagnostics_Ceip"]
+Win32_System_Diagnostics_Debug = ["windows-sys/Win32_System_Diagnostics_Debug"]
+Win32_System_Diagnostics_Debug_Extensions = ["windows-sys/Win32_System_Diagnostics_Debug_Extensions"]
+Win32_System_Diagnostics_Etw = ["windows-sys/Win32_System_Diagnostics_Etw"]
+Win32_System_Diagnostics_ProcessSnapshotting = ["windows-sys/Win32_System_Diagnostics_ProcessSnapshotting"]
+Win32_System_Diagnostics_ToolHelp = ["windows-sys/Win32_System_Diagnostics_ToolHelp"]
+Win32_System_DistributedTransactionCoordinator = ["windows-sys/Win32_System_DistributedTransactionCoordinator"]
+Win32_System_Environment = ["windows-sys/Win32_System_Environment"]
+Win32_System_ErrorReporting = ["windows-sys/Win32_System_ErrorReporting"]
+Win32_System_EventCollector = ["windows-sys/Win32_System_EventCollector"]
+Win32_System_EventLog = ["windows-sys/Win32_System_EventLog"]
+Win32_System_EventNotificationService = ["windows-sys/Win32_System_EventNotificationService"]
+Win32_System_GroupPolicy = ["windows-sys/Win32_System_GroupPolicy"]
+Win32_System_HostCompute = ["windows-sys/Win32_System_HostCompute"]
+Win32_System_HostComputeNetwork = ["windows-sys/Win32_System_HostComputeNetwork"]
+Win32_System_HostComputeSystem = ["windows-sys/Win32_System_HostComputeSystem"]
+Win32_System_Hypervisor = ["windows-sys/Win32_System_Hypervisor"]
+Win32_System_IO = ["windows-sys/Win32_System_IO"]
+Win32_System_Iis = ["windows-sys/Win32_System_Iis"]
+Win32_System_Ioctl = ["windows-sys/Win32_System_Ioctl"]
+Win32_System_JobObjects = ["windows-sys/Win32_System_JobObjects"]
+Win32_System_Js = ["windows-sys/Win32_System_Js"]
+Win32_System_Kernel = ["windows-sys/Win32_System_Kernel"]
+Win32_System_LibraryLoader = ["windows-sys/Win32_System_LibraryLoader"]
+Win32_System_Mailslots = ["windows-sys/Win32_System_Mailslots"]
+Win32_System_Mapi = ["windows-sys/Win32_System_Mapi"]
+Win32_System_Memory = ["windows-sys/Win32_System_Memory"]
+Win32_System_Memory_NonVolatile = ["windows-sys/Win32_System_Memory_NonVolatile"]
+Win32_System_MessageQueuing = ["windows-sys/Win32_System_MessageQueuing"]
+Win32_System_MixedReality = ["windows-sys/Win32_System_MixedReality"]
+Win32_System_Ole = ["windows-sys/Win32_System_Ole"]
+Win32_System_PasswordManagement = ["windows-sys/Win32_System_PasswordManagement"]
+Win32_System_Performance = ["windows-sys/Win32_System_Performance"]
+Win32_System_Performance_HardwareCounterProfiling = ["windows-sys/Win32_System_Performance_HardwareCounterProfiling"]
+Win32_System_Pipes = ["windows-sys/Win32_System_Pipes"]
+Win32_System_Power = ["windows-sys/Win32_System_Power"]
+Win32_System_ProcessStatus = ["windows-sys/Win32_System_ProcessStatus"]
+Win32_System_Recovery = ["windows-sys/Win32_System_Recovery"]
+Win32_System_Registry = ["windows-sys/Win32_System_Registry"]
+Win32_System_RemoteDesktop = ["windows-sys/Win32_System_RemoteDesktop"]
+Win32_System_RemoteManagement = ["windows-sys/Win32_System_RemoteManagement"]
+Win32_System_RestartManager = ["windows-sys/Win32_System_RestartManager"]
+Win32_System_Restore = ["windows-sys/Win32_System_Restore"]
+Win32_System_Rpc = ["windows-sys/Win32_System_Rpc"]
+Win32_System_Search = ["windows-sys/Win32_System_Search"]
+Win32_System_Search_Common = ["windows-sys/Win32_System_Search_Common"]
+Win32_System_SecurityCenter = ["windows-sys/Win32_System_SecurityCenter"]
+Win32_System_Services = ["windows-sys/Win32_System_Services"]
+Win32_System_SetupAndMigration = ["windows-sys/Win32_System_SetupAndMigration"]
+Win32_System_Shutdown = ["windows-sys/Win32_System_Shutdown"]
+Win32_System_StationsAndDesktops = ["windows-sys/Win32_System_StationsAndDesktops"]
+Win32_System_SubsystemForLinux = ["windows-sys/Win32_System_SubsystemForLinux"]
+Win32_System_SystemInformation = ["windows-sys/Win32_System_SystemInformation"]
+Win32_System_SystemServices = ["windows-sys/Win32_System_SystemServices"]
+Win32_System_Threading = ["windows-sys/Win32_System_Threading"]
+Win32_System_Time = ["windows-sys/Win32_System_Time"]
+Win32_System_TpmBaseServices = ["windows-sys/Win32_System_TpmBaseServices"]
+Win32_System_UserAccessLogging = ["windows-sys/Win32_System_UserAccessLogging"]
+Win32_System_VirtualDosMachines = ["windows-sys/Win32_System_VirtualDosMachines"]
+Win32_System_WindowsProgramming = ["windows-sys/Win32_System_WindowsProgramming"]
+Win32_System_Wmi = ["windows-sys/Win32_System_Wmi"]
+Win32_UI = ["windows-sys/Win32_UI"]
+Win32_UI_Accessibility = ["windows-sys/Win32_UI_Accessibility"]
+Win32_UI_ColorSystem = ["windows-sys/Win32_UI_ColorSystem"]
+Win32_UI_Controls = ["windows-sys/Win32_UI_Controls"]
+Win32_UI_Controls_Dialogs = ["windows-sys/Win32_UI_Controls_Dialogs"]
+Win32_UI_HiDpi = ["windows-sys/Win32_UI_HiDpi"]
+Win32_UI_Input = ["windows-sys/Win32_UI_Input"]
+Win32_UI_Input_Ime = ["windows-sys/Win32_UI_Input_Ime"]
+Win32_UI_Input_KeyboardAndMouse = ["windows-sys/Win32_UI_Input_KeyboardAndMouse"]
+Win32_UI_Input_Pointer = ["windows-sys/Win32_UI_Input_Pointer"]
+Win32_UI_Input_Touch = ["windows-sys/Win32_UI_Input_Touch"]
+Win32_UI_Input_XboxController = ["windows-sys/Win32_UI_Input_XboxController"]
+Win32_UI_InteractionContext = ["windows-sys/Win32_UI_InteractionContext"]
+Win32_UI_Magnification = ["windows-sys/Win32_UI_Magnification"]
+Win32_UI_Shell = ["windows-sys/Win32_UI_Shell"]
+Win32_UI_Shell_PropertiesSystem = ["windows-sys/Win32_UI_Shell_PropertiesSystem"]
+Win32_UI_TabletPC = ["windows-sys/Win32_UI_TabletPC"]
+Win32_UI_TextServices = ["windows-sys/Win32_UI_TextServices"]
+Win32_UI_WindowsAndMessaging = ["windows-sys/Win32_UI_WindowsAndMessaging"]
+Win32_Web = ["windows-sys/Win32_Web"]
+Win32_Web_InternetExplorer = ["windows-sys/Win32_Web_InternetExplorer"]
+default = ["windows-sys/default"]
diff --git a/build/rust/windows-sys/lib.rs b/build/rust/windows-sys/lib.rs
new file mode 100644
index 0000000000..15c89411fe
--- /dev/null
+++ b/build/rust/windows-sys/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use windows_sys::*;
diff --git a/build/rust/windows-targets-0.48/Cargo.toml b/build/rust/windows-targets-0.48/Cargo.toml
new file mode 100644
index 0000000000..2649448d0a
--- /dev/null
+++ b/build/rust/windows-targets-0.48/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "windows-targets"
+version = "0.48.999"
+edition = "2018"
+license = "MPL-2.0"
+
+[lib]
+path = "lib.rs"
+
+[dependencies.windows-targets]
+version = "0.52"
diff --git a/build/rust/windows-targets-0.48/lib.rs b/build/rust/windows-targets-0.48/lib.rs
new file mode 100644
index 0000000000..d3fd808887
--- /dev/null
+++ b/build/rust/windows-targets-0.48/lib.rs
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub use windows_targets::*;
diff --git a/build/rust/windows-targets/Cargo.toml b/build/rust/windows-targets/Cargo.toml
new file mode 100644
index 0000000000..5d3f665d7b
--- /dev/null
+++ b/build/rust/windows-targets/Cargo.toml
@@ -0,0 +1,13 @@
+[package]
+name = "windows-targets"
+version = "0.52.999"
+edition = "2018"
+license = "MIT OR Apache-2.0"
+
+[lib]
+proc-macro = true
+path = "lib.rs"
+
+[dependencies]
+syn = { version = "2", features = ["full"] }
+quote = "1"
diff --git a/build/rust/windows-targets/lib.rs b/build/rust/windows-targets/lib.rs
new file mode 100644
index 0000000000..439bc46946
--- /dev/null
+++ b/build/rust/windows-targets/lib.rs
@@ -0,0 +1,86 @@
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use proc_macro::TokenStream;
+use quote::quote;
+use syn::parse::{Parse, ParseStream, Result};
+use syn::{parse_macro_input, Attribute, LitStr, Signature};
+
+/* Proc macro equivalent to the following rust macro:
+ * ```
+ * macro_rules! link {
+ * ($library:literal $abi:literal $($link_name:literal)? $(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => (
+ * extern $abi {
+ * #[link(name = $library)]
+ * $(#[link_name=$link_name])?
+ * pub fn $name($($arg: $argty),*) -> $ret;
+ * }
+ * )
+ * }
+ * ```
+ * with the additional feature of removing ".dll" from the $library literal.
+ *
+ * The macro is derived from the equivalent macro in the real windows-targets crate,
+ * with the difference that it uses #[link] with the name of the library rather than
+ * a single "windows.$version" library, so as to avoid having to vendor all the fake
+ * "windows.$version" import libraries. We can do that because we also require MSVC
+ * to build, so we do have the real import libraries available.
+ *
+ * As the library name is there in the original for raw-dylib support, it contains
+ * a suffixed name, but plain #[link] expects a non-suffixed name, which is why we
+ * remove the suffix (and why this had to be a proc-macro).
+ *
+ * Once raw-dylib is more widely available and tested, we'll be able to use the
+ * raw-dylib variants directly.
+ */
+
+struct LinkMacroInput {
+ library: LitStr,
+ abi: LitStr,
+ link_name: Option<LitStr>,
+ function: Signature,
+}
+
+impl Parse for LinkMacroInput {
+ fn parse(input: ParseStream) -> Result<Self> {
+ let library: LitStr = input.parse()?;
+ let abi: LitStr = input.parse()?;
+ let link_name: Option<LitStr> = input.parse().ok();
+ let _doc_comments = Attribute::parse_outer(input)?;
+ let function: Signature = input.parse()?;
+ Ok(LinkMacroInput {
+ library,
+ abi,
+ link_name,
+ function,
+ })
+ }
+}
+
+#[proc_macro]
+pub fn link(input: TokenStream) -> TokenStream {
+ let LinkMacroInput {
+ library,
+ abi,
+ link_name,
+ function,
+ } = parse_macro_input!(input as LinkMacroInput);
+
+ let link_name_attr = link_name.map(|lit| quote! { #[link_name = #lit] });
+
+ let library = library.value();
+ let library = library.strip_suffix(".dll").unwrap_or(&library);
+
+ let generated = quote! {
+ extern #abi {
+ #[link(name = #library)]
+ #link_name_attr
+ pub #function;
+ }
+ };
+
+ TokenStream::from(generated)
+}
diff --git a/build/rust/windows/Cargo.toml b/build/rust/windows/Cargo.toml
new file mode 100644
index 0000000000..491a053d53
--- /dev/null
+++ b/build/rust/windows/Cargo.toml
@@ -0,0 +1,736 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+rust-version = "1.56"
+name = "windows"
+version = "0.52.0"
+authors = ["Microsoft"]
+description = "Rust for Windows"
+documentation = "https://microsoft.github.io/windows-docs-rs/"
+readme = "readme.md"
+categories = ["os::windows-apis"]
+license = "MIT OR Apache-2.0"
+repository = "https://github.com/microsoft/windows-rs"
+
+[package.metadata.docs.rs]
+default-target = "x86_64-pc-windows-msvc"
+rustdoc-args = [
+ "--cfg",
+ "docsrs",
+]
+targets = []
+
+[dependencies.windows-core]
+version = "0.52.0"
+
+[dependencies.windows-implement]
+version = "0.52.0"
+optional = true
+
+[dependencies.windows-interface]
+version = "0.52.0"
+optional = true
+
+[dependencies.windows-targets]
+version = "0.52.0"
+
+[features]
+AI = []
+AI_MachineLearning = ["AI"]
+ApplicationModel = []
+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_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 = []
+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 = []
+Devices_Adc = ["Devices"]
+Devices_Adc_Provider = ["Devices_Adc"]
+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_Geolocation_Provider = ["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_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 = []
+Embedded_DeviceLockdown = ["Embedded"]
+Foundation = []
+Foundation_Collections = ["Foundation"]
+Foundation_Diagnostics = ["Foundation"]
+Foundation_Metadata = ["Foundation"]
+Foundation_Numerics = ["Foundation"]
+Gaming = []
+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 = []
+Globalization_Collation = ["Globalization"]
+Globalization_DateTimeFormatting = ["Globalization"]
+Globalization_Fonts = ["Globalization"]
+Globalization_NumberFormatting = ["Globalization"]
+Globalization_PhoneNumberFormatting = ["Globalization"]
+Graphics = []
+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 = []
+Management_Core = ["Management"]
+Management_Deployment = ["Management"]
+Management_Deployment_Preview = ["Management_Deployment"]
+Management_Policies = ["Management"]
+Management_Update = ["Management"]
+Management_Workplace = ["Management"]
+Media = []
+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 = []
+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 = []
+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 = []
+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 = []
+Security_Authentication = ["Security"]
+Security_Authentication_Identity = ["Security_Authentication"]
+Security_Authentication_Identity_Core = ["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 = []
+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 = []
+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 = []
+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_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 = []
+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"]
+Wdk = []
+Wdk_Foundation = ["Wdk"]
+Wdk_Graphics = ["Wdk"]
+Wdk_Graphics_Direct3D = ["Wdk_Graphics"]
+Wdk_Storage = ["Wdk"]
+Wdk_Storage_FileSystem = ["Wdk_Storage"]
+Wdk_Storage_FileSystem_Minifilters = ["Wdk_Storage_FileSystem"]
+Wdk_System = ["Wdk"]
+Wdk_System_IO = ["Wdk_System"]
+Wdk_System_OfflineRegistry = ["Wdk_System"]
+Wdk_System_Registry = ["Wdk_System"]
+Wdk_System_SystemInformation = ["Wdk_System"]
+Wdk_System_SystemServices = ["Wdk_System"]
+Wdk_System_Threading = ["Wdk_System"]
+Web = []
+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 = []
+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_GdiPlus = ["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_Tv = ["Win32_Media_DirectShow"]
+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_Nvme = ["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_ClrHosting = ["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_ClrProfiling = ["Win32_System_Diagnostics"]
+Win32_System_Diagnostics_Debug = ["Win32_System_Diagnostics"]
+Win32_System_Diagnostics_Debug_ActiveScript = ["Win32_System_Diagnostics_Debug"]
+Win32_System_Diagnostics_Debug_Extensions = ["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_Variant = ["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_Metadata = ["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_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_Web = ["Win32"]
+Win32_Web_InternetExplorer = ["Win32_Web"]
+default = []
+deprecated = []
+docs = []
+implement = [
+ "windows-implement",
+ "windows-interface",
+ "windows-core/implement",
+]
+
+[dependencies.mozbuild]
+version = "0.1"
diff --git a/build/rust/windows/src/lib.rs b/build/rust/windows/src/lib.rs
new file mode 100644
index 0000000000..9c5c49d089
--- /dev/null
+++ b/build/rust/windows/src/lib.rs
@@ -0,0 +1,24 @@
+#![allow(warnings)]
+#![cfg_attr(docsrs, doc = "This is a stub. The latest API documentation is here: <https://microsoft.github.io/windows-docs-rs/>")]
+#![cfg_attr(docsrs, doc = "")]
+/*!
+Learn more about Rust for Windows here: <https://github.com/microsoft/windows-rs>
+*/
+
+#![doc(html_no_source)]
+#![allow(non_snake_case, clashing_extern_declarations, non_upper_case_globals, non_camel_case_types, clippy::all)]
+#![cfg_attr(not(feature = "docs"), doc(hidden))]
+
+extern crate self as windows;
+
+pub mod core {
+ pub use windows_core::*;
+
+ #[cfg(feature = "implement")]
+ pub use windows_implement::implement;
+
+ #[cfg(feature = "implement")]
+ pub use windows_interface::interface;
+}
+
+include!(mozbuild::windows_rs_path!("src/Windows/mod.rs"));