library;
//
// Problems in library:
//
// pkg/front_end/testcases/dartdevc/conditional_export.dart:10:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
//  - 'HttpRequest' is from 'dart:html'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
//   request.certificate; // Error (from dart:io)
//           ^^^^^^^^^^^
//
// pkg/front_end/testcases/dartdevc/conditional_export.dart:17:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
//  - 'HttpRequest' is from 'dart:html'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
//   request.certificate; // Error (from dart:io)
//           ^^^^^^^^^^^
//
// pkg/front_end/testcases/dartdevc/conditional_export.dart:24:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
//  - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
//   request.certificate; // Error
//           ^^^^^^^^^^^
//
// pkg/front_end/testcases/dartdevc/conditional_export.dart:25:11: Error: The getter 'response' isn't defined for the type 'HttpRequest'.
//  - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'response'.
//   request.response; // Error
//           ^^^^^^^^
//
// pkg/front_end/testcases/dartdevc/conditional_export.dart:26:11: Error: The getter 'readyState' isn't defined for the type 'HttpRequest'.
//  - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'readyState'.
//   request.readyState; // Error
//           ^^^^^^^^^^
//
import self as self;
import "dart:html" as html;
import "dart:core" as core;
import "conditional_export_lib4.dart" as con;

import "org-dartlang-testcase:///conditional_export_lib1.dart" as a;
import "org-dartlang-testcase:///conditional_export_lib2.dart" as b;
import "org-dartlang-testcase:///conditional_export_lib3.dart" as c;

static method testA(html::HttpRequest request) → dynamic {
  invalid-expression "pkg/front_end/testcases/dartdevc/conditional_export.dart:10:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
 - 'HttpRequest' is from 'dart:html'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
  request.certificate; // Error (from dart:io)
          ^^^^^^^^^^^" in request{<unresolved>}.certificate;
  request.{html::HttpRequest::response}{dynamic};
  request.{html::HttpRequest::readyState}{core::int};
  request.{core::Object::hashCode}{core::int};
}
static method testB(html::HttpRequest request) → dynamic {
  invalid-expression "pkg/front_end/testcases/dartdevc/conditional_export.dart:17:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
 - 'HttpRequest' is from 'dart:html'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
  request.certificate; // Error (from dart:io)
          ^^^^^^^^^^^" in request{<unresolved>}.certificate;
  request.{html::HttpRequest::response}{dynamic};
  request.{html::HttpRequest::readyState}{core::int};
  request.{core::Object::hashCode}{core::int};
}
static method testC(con::HttpRequest request) → dynamic {
  invalid-expression "pkg/front_end/testcases/dartdevc/conditional_export.dart:24:11: Error: The getter 'certificate' isn't defined for the type 'HttpRequest'.
 - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'certificate'.
  request.certificate; // Error
          ^^^^^^^^^^^" in request{<unresolved>}.certificate;
  invalid-expression "pkg/front_end/testcases/dartdevc/conditional_export.dart:25:11: Error: The getter 'response' isn't defined for the type 'HttpRequest'.
 - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'response'.
  request.response; // Error
          ^^^^^^^^" in request{<unresolved>}.response;
  invalid-expression "pkg/front_end/testcases/dartdevc/conditional_export.dart:26:11: Error: The getter 'readyState' isn't defined for the type 'HttpRequest'.
 - 'HttpRequest' is from 'pkg/front_end/testcases/dartdevc/conditional_export_lib4.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'readyState'.
  request.readyState; // Error
          ^^^^^^^^^^" in request{<unresolved>}.readyState;
  request.{core::Object::hashCode}{core::int};
}
static method main() → void {
  self::expect(false, #C1);
  self::expect(true, #C2);
  self::expect(false, #C1);
}
static method expect(dynamic expected, dynamic actual) → dynamic {
  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
    throw "Expected ${expected}, actual ${actual}";
}

library;
import self as self2;
import "dart:html" as html;
import "dart:_internal" as _in;
import "dart:_native_typed_data" as imp;
import "dart:math" as math;
import "dart:js_util" as js_;
additionalExports = (html::HtmlElement,
  html::AbortPaymentEvent,
  html::AbsoluteOrientationSensor,
  html::AbstractWorker,
  html::Accelerometer,
  html::AccessibleNode,
  html::AccessibleNodeList,
  html::AmbientLightSensor,
  html::AnchorElement,
  html::Animation,
  html::AnimationEffectReadOnly,
  html::AnimationEffectTiming,
  html::AnimationEffectTimingReadOnly,
  html::AnimationEvent,
  html::AnimationPlaybackEvent,
  html::AnimationTimeline,
  html::AnimationWorkletGlobalScope,
  html::ApplicationCache,
  html::ApplicationCacheErrorEvent,
  html::AreaElement,
  html::AudioElement,
  html::AuthenticatorAssertionResponse,
  html::AuthenticatorAttestationResponse,
  html::AuthenticatorResponse,
  html::BRElement,
  html::BackgroundFetchClickEvent,
  html::BackgroundFetchEvent,
  html::BackgroundFetchFailEvent,
  html::BackgroundFetchFetch,
  html::BackgroundFetchManager,
  html::BackgroundFetchRegistration,
  html::BackgroundFetchSettledFetch,
  html::BackgroundFetchedEvent,
  html::BarProp,
  html::BarcodeDetector,
  html::BaseElement,
  html::BatteryManager,
  html::BeforeInstallPromptEvent,
  html::BeforeUnloadEvent,
  html::Blob,
  html::BlobEvent,
  html::BluetoothRemoteGattDescriptor,
  html::Body,
  html::BodyElement,
  html::BroadcastChannel,
  html::BudgetState,
  html::ButtonElement,
  html::CDataSection,
  html::CacheStorage,
  html::CanMakePaymentEvent,
  html::CanvasCaptureMediaStreamTrack,
  html::CanvasElement,
  html::CanvasGradient,
  html::CanvasPattern,
  html::CanvasRenderingContext,
  html::CanvasRenderingContext2D,
  html::CharacterData,
  html::ChildNode,
  html::Client,
  html::Clients,
  html::ClipboardEvent,
  html::CloseEvent,
  html::Comment,
  html::CompositionEvent,
  html::ContentElement,
  html::CookieStore,
  html::Coordinates,
  html::Credential,
  html::CredentialUserData,
  html::CredentialsContainer,
  html::Crypto,
  html::CryptoKey,
  html::Css,
  html::CssCharsetRule,
  html::CssConditionRule,
  html::CssFontFaceRule,
  html::CssGroupingRule,
  html::CssImageValue,
  html::CssImportRule,
  html::CssKeyframeRule,
  html::CssKeyframesRule,
  html::CssKeywordValue,
  html::CssMatrixComponent,
  html::CssMediaRule,
  html::CssNamespaceRule,
  html::CssNumericValue,
  html::CssPageRule,
  html::CssPerspective,
  html::CssPositionValue,
  html::CssResourceValue,
  html::CssRotation,
  html::CssRule,
  html::CssScale,
  html::CssSkew,
  html::CssStyleDeclaration,
  html::CssStyleDeclarationBase,
  html::CssStyleRule,
  html::CssStyleSheet,
  html::CssStyleValue,
  html::CssSupportsRule,
  html::CssTransformComponent,
  html::CssTransformValue,
  html::CssTranslation,
  html::CssUnitValue,
  html::CssUnparsedValue,
  html::CssVariableReferenceValue,
  html::CssViewportRule,
  html::CssurlImageValue,
  html::CustomElementRegistry,
  html::CustomEvent,
  html::DListElement,
  html::DataElement,
  html::DataListElement,
  html::DataTransfer,
  html::DataTransferItem,
  html::DataTransferItemList,
  html::DedicatedWorkerGlobalScope,
  html::DeprecatedStorageInfo,
  html::DeprecatedStorageQuota,
  html::DeprecationReport,
  html::DetailsElement,
  html::DetectedBarcode,
  html::DetectedFace,
  html::DetectedText,
  html::DeviceAcceleration,
  html::DeviceMotionEvent,
  html::DeviceOrientationEvent,
  html::DeviceRotationRate,
  html::DialogElement,
  html::DirectoryEntry,
  html::DirectoryReader,
  html::DivElement,
  html::Document,
  html::DocumentFragment,
  html::DocumentOrShadowRoot,
  html::DocumentTimeline,
  html::DomError,
  html::DomException,
  html::DomImplementation,
  html::DomIterator,
  html::DomMatrix,
  html::DomMatrixReadOnly,
  html::DomParser,
  html::DomPoint,
  html::DomPointReadOnly,
  html::DomQuad,
  html::DomRectList,
  html::DomRectReadOnly,
  html::DomStringList,
  html::DomStringMap,
  html::DomTokenList,
  html::ElementList,
  html::Element,
  html::ScrollAlignment,
  html::EmbedElement,
  html::Entry,
  html::ErrorEvent,
  html::Event,
  html::EventSource,
  html::Events,
  html::ElementEvents,
  html::EventTarget,
  html::ExtendableEvent,
  html::ExtendableMessageEvent,
  html::External,
  html::FaceDetector,
  html::FederatedCredential,
  html::FetchEvent,
  html::FieldSetElement,
  html::File,
  html::FileEntry,
  html::FileList,
  html::FileReader,
  html::FileSystem,
  html::FileWriter,
  html::FocusEvent,
  html::FontFace,
  html::FontFaceSet,
  html::FontFaceSetLoadEvent,
  html::FontFaceSource,
  html::ForeignFetchEvent,
  html::FormData,
  html::FormElement,
  html::Gamepad,
  html::GamepadButton,
  html::GamepadEvent,
  html::GamepadPose,
  html::Geolocation,
  html::Geoposition,
  html::GlobalEventHandlers,
  html::Gyroscope,
  html::HRElement,
  html::HashChangeEvent,
  html::HeadElement,
  html::Headers,
  html::HeadingElement,
  html::History,
  html::HtmlCollection,
  html::HtmlDocument,
  html::HtmlFormControlsCollection,
  html::HtmlHtmlElement,
  html::HtmlHyperlinkElementUtils,
  html::HtmlOptionsCollection,
  html::HttpRequest,
  html::HttpRequestEventTarget,
  html::HttpRequestUpload,
  html::IFrameElement,
  html::IdleDeadline,
  html::ImageBitmap,
  html::ImageBitmapRenderingContext,
  html::ImageCapture,
  html::ImageData,
  html::ImageElement,
  html::InputDeviceCapabilities,
  html::InputElement,
  html::InputElementBase,
  html::HiddenInputElement,
  html::TextInputElementBase,
  html::SearchInputElement,
  html::TextInputElement,
  html::UrlInputElement,
  html::TelephoneInputElement,
  html::EmailInputElement,
  html::PasswordInputElement,
  html::RangeInputElementBase,
  html::DateInputElement,
  html::MonthInputElement,
  html::WeekInputElement,
  html::TimeInputElement,
  html::LocalDateTimeInputElement,
  html::NumberInputElement,
  html::RangeInputElement,
  html::CheckboxInputElement,
  html::RadioButtonInputElement,
  html::FileUploadInputElement,
  html::SubmitButtonInputElement,
  html::ImageButtonInputElement,
  html::ResetButtonInputElement,
  html::ButtonInputElement,
  html::InstallEvent,
  html::IntersectionObserver,
  html::IntersectionObserverEntry,
  html::InterventionReport,
  html::KeyboardEvent,
  html::KeyframeEffect,
  html::KeyframeEffectReadOnly,
  html::LIElement,
  html::LabelElement,
  html::LegendElement,
  html::LinearAccelerationSensor,
  html::LinkElement,
  html::Location,
  html::Magnetometer,
  html::MapElement,
  html::MathMLElement,
  html::MediaCapabilities,
  html::MediaCapabilitiesInfo,
  html::MediaDeviceInfo,
  html::MediaDevices,
  html::MediaElement,
  html::MediaEncryptedEvent,
  html::MediaError,
  html::MediaKeyMessageEvent,
  html::MediaKeySession,
  html::MediaKeyStatusMap,
  html::MediaKeySystemAccess,
  html::MediaKeys,
  html::MediaKeysPolicy,
  html::MediaList,
  html::MediaMetadata,
  html::MediaQueryList,
  html::MediaQueryListEvent,
  html::MediaRecorder,
  html::MediaSession,
  html::MediaSettingsRange,
  html::MediaSource,
  html::MediaStream,
  html::MediaStreamEvent,
  html::MediaStreamTrack,
  html::MediaStreamTrackEvent,
  html::MemoryInfo,
  html::MenuElement,
  html::MessageChannel,
  html::MessageEvent,
  html::MessagePort,
  html::MetaElement,
  html::Metadata,
  html::MeterElement,
  html::MidiAccess,
  html::MidiConnectionEvent,
  html::MidiInput,
  html::MidiInputMap,
  html::MidiMessageEvent,
  html::MidiOutput,
  html::MidiOutputMap,
  html::MidiPort,
  html::MimeType,
  html::MimeTypeArray,
  html::ModElement,
  html::MouseEvent,
  html::MutationEvent,
  html::MutationObserver,
  html::MutationRecord,
  html::NavigationPreloadManager,
  html::Navigator,
  html::NavigatorAutomationInformation,
  html::NavigatorConcurrentHardware,
  html::NavigatorCookies,
  html::NavigatorID,
  html::NavigatorLanguage,
  html::NavigatorOnLine,
  html::NavigatorUserMediaError,
  html::NetworkInformation,
  html::Node,
  html::NodeFilter,
  html::NodeIterator,
  html::NodeList,
  html::NonDocumentTypeChildNode,
  html::NonElementParentNode,
  html::NoncedElement,
  html::Notification,
  html::NotificationEvent,
  html::OListElement,
  html::ObjectElement,
  html::OffscreenCanvas,
  html::OffscreenCanvasRenderingContext2D,
  html::OptGroupElement,
  html::OptionElement,
  html::OrientationSensor,
  html::OutputElement,
  html::OverconstrainedError,
  html::PageTransitionEvent,
  html::PaintRenderingContext2D,
  html::PaintSize,
  html::PaintWorkletGlobalScope,
  html::ParagraphElement,
  html::ParamElement,
  html::ParentNode,
  html::PasswordCredential,
  html::Path2D,
  html::PaymentAddress,
  html::PaymentInstruments,
  html::PaymentManager,
  html::PaymentRequest,
  html::PaymentRequestEvent,
  html::PaymentRequestUpdateEvent,
  html::PaymentResponse,
  html::Performance,
  html::PerformanceEntry,
  html::PerformanceLongTaskTiming,
  html::PerformanceMark,
  html::PerformanceMeasure,
  html::PerformanceNavigation,
  html::PerformanceNavigationTiming,
  html::PerformanceObserver,
  html::PerformanceObserverEntryList,
  html::PerformancePaintTiming,
  html::PerformanceResourceTiming,
  html::PerformanceServerTiming,
  html::PerformanceTiming,
  html::PermissionStatus,
  html::Permissions,
  html::PhotoCapabilities,
  html::PictureElement,
  html::Plugin,
  html::PluginArray,
  html::PointerEvent,
  html::PopStateEvent,
  html::PositionError,
  html::PreElement,
  html::Presentation,
  html::PresentationAvailability,
  html::PresentationConnection,
  html::PresentationConnectionAvailableEvent,
  html::PresentationConnectionCloseEvent,
  html::PresentationConnectionList,
  html::PresentationReceiver,
  html::PresentationRequest,
  html::ProcessingInstruction,
  html::ProgressElement,
  html::ProgressEvent,
  html::PromiseRejectionEvent,
  html::PublicKeyCredential,
  html::PushEvent,
  html::PushManager,
  html::PushMessageData,
  html::PushSubscription,
  html::PushSubscriptionOptions,
  html::QuoteElement,
  html::Range,
  html::RelatedApplication,
  html::RelativeOrientationSensor,
  html::RemotePlayback,
  html::ReportBody,
  html::ReportingObserver,
  html::ResizeObserver,
  html::ResizeObserverEntry,
  html::RtcCertificate,
  html::RtcDataChannel,
  html::RtcDataChannelEvent,
  html::RtcDtmfSender,
  html::RtcDtmfToneChangeEvent,
  html::RtcIceCandidate,
  html::RtcLegacyStatsReport,
  html::RtcPeerConnection,
  html::RtcPeerConnectionIceEvent,
  html::RtcRtpContributingSource,
  html::RtcRtpReceiver,
  html::RtcRtpSender,
  html::RtcSessionDescription,
  html::RtcStatsReport,
  html::RtcStatsResponse,
  html::RtcTrackEvent,
  html::Screen,
  html::ScreenOrientation,
  html::ScriptElement,
  html::ScrollState,
  html::ScrollTimeline,
  html::SecurityPolicyViolationEvent,
  html::SelectElement,
  html::Selection,
  html::Sensor,
  html::SensorErrorEvent,
  html::ServiceWorker,
  html::ServiceWorkerContainer,
  html::ServiceWorkerGlobalScope,
  html::ServiceWorkerRegistration,
  html::ShadowElement,
  html::ShadowRoot,
  html::SharedWorker,
  html::SharedWorkerGlobalScope,
  html::SlotElement,
  html::SourceBuffer,
  html::SourceBufferList,
  html::SourceElement,
  html::SpanElement,
  html::SpeechGrammar,
  html::SpeechGrammarList,
  html::SpeechRecognition,
  html::SpeechRecognitionAlternative,
  html::SpeechRecognitionError,
  html::SpeechRecognitionEvent,
  html::SpeechRecognitionResult,
  html::SpeechSynthesis,
  html::SpeechSynthesisEvent,
  html::SpeechSynthesisUtterance,
  html::SpeechSynthesisVoice,
  html::StaticRange,
  html::Storage,
  html::StorageEvent,
  html::StorageManager,
  html::StyleElement,
  html::StyleMedia,
  html::StylePropertyMap,
  html::StylePropertyMapReadonly,
  html::StyleSheet,
  html::SyncEvent,
  html::SyncManager,
  html::TableCaptionElement,
  html::TableCellElement,
  html::TableColElement,
  html::TableElement,
  html::TableRowElement,
  html::TableSectionElement,
  html::TaskAttributionTiming,
  html::TemplateElement,
  html::Text,
  html::TextAreaElement,
  html::TextDetector,
  html::TextEvent,
  html::TextMetrics,
  html::TextTrack,
  html::TextTrackCue,
  html::TextTrackCueList,
  html::TextTrackList,
  html::TimeElement,
  html::TimeRanges,
  html::TitleElement,
  html::Touch,
  html::TouchEvent,
  html::TouchList,
  html::TrackDefault,
  html::TrackDefaultList,
  html::TrackElement,
  html::TrackEvent,
  html::TransitionEvent,
  html::TreeWalker,
  html::TrustedHtml,
  html::TrustedScriptUrl,
  html::TrustedUrl,
  html::UIEvent,
  html::UListElement,
  html::UnderlyingSourceBase,
  html::UnknownElement,
  html::Url,
  html::UrlSearchParams,
  html::UrlUtilsReadOnly,
  html::VR,
  html::VRCoordinateSystem,
  html::VRDevice,
  html::VRDeviceEvent,
  html::VRDisplay,
  html::VRDisplayCapabilities,
  html::VRDisplayEvent,
  html::VREyeParameters,
  html::VRFrameData,
  html::VRFrameOfReference,
  html::VRPose,
  html::VRSession,
  html::VRSessionEvent,
  html::VRStageBounds,
  html::VRStageBoundsPoint,
  html::VRStageParameters,
  html::ValidityState,
  html::VideoElement,
  html::VideoPlaybackQuality,
  html::VideoTrack,
  html::VideoTrackList,
  html::VisualViewport,
  html::VttCue,
  html::VttRegion,
  html::WebSocket,
  html::WheelEvent,
  html::Window,
  html::NullWindowException,
  html::WindowBase64,
  html::WindowClient,
  html::WindowEventHandlers,
  html::Worker,
  html::WorkerGlobalScope,
  html::WorkerPerformance,
  html::WorkletAnimation,
  html::WorkletGlobalScope,
  html::XPathEvaluator,
  html::XPathExpression,
  html::XPathNSResolver,
  html::XPathResult,
  html::XmlDocument,
  html::XmlSerializer,
  html::XsltProcessor,
  html::CanvasImageSource,
  html::WindowBase,
  html::LocationBase,
  html::HistoryBase,
  html::CssClassSet,
  html::CssRect,
  html::Dimension,
  html::EventStreamProvider,
  html::ElementStream,
  html::CustomStream,
  html::ImmutableListMixin,
  html::KeyCode,
  html::KeyLocation,
  html::KeyboardEventStream,
  html::NodeValidatorBuilder,
  html::ReadyState,
  html::FixedSizeListIterator,
  html::Console,
  html::KeyEvent,
  html::Platform,
  html::ElementUpgrader,
  html::NodeValidator,
  html::NodeTreeSanitizer,
  html::UriPolicy,
  html::window,
  html::document,
  html::promiseToFutureAsMap,
  html::querySelector,
  html::querySelectorAll,
  html::FontFaceSetForEachCallback,
  html::BlobCallback,
  html::CustomElementConstructor,
  html::DecodeErrorCallback,
  html::DecodeSuccessCallback,
  html::FrameRequestCallback,
  html::FunctionStringCallback,
  html::IdleRequestCallback,
  html::IntersectionObserverCallback,
  html::MediaSessionActionHandler,
  html::MessageCallback,
  html::MetadataCallback,
  html::MojoWatchCallback,
  html::MutationCallback,
  html::PerformanceObserverCallback,
  html::RtcPeerConnectionErrorCallback,
  html::RtcStatsCallback,
  html::RemotePlaybackAvailabilityCallback,
  html::ReportingObserverCallback,
  html::RequestAnimationFrameCallback,
  html::ResizeObserverCallback,
  html::ScrollStateCallback,
  html::StorageErrorCallback,
  html::StorageQuotaCallback,
  html::StorageUsageCallback,
  html::TimeoutHandler,
  html::VoidCallback,
  html::EventListener,
  _in::HttpStatus,
  imp::SharedArrayBuffer,
  math::Point,
  math::Rectangle,
  js_::promiseToFuture)

export "dart:html";


library;
import self as self3;
import "dart:html" as html;
import "dart:_internal" as _in;
import "dart:_native_typed_data" as imp;
import "dart:math" as math;
import "dart:js_util" as js_;
additionalExports = (html::HtmlElement,
  html::AbortPaymentEvent,
  html::AbsoluteOrientationSensor,
  html::AbstractWorker,
  html::Accelerometer,
  html::AccessibleNode,
  html::AccessibleNodeList,
  html::AmbientLightSensor,
  html::AnchorElement,
  html::Animation,
  html::AnimationEffectReadOnly,
  html::AnimationEffectTiming,
  html::AnimationEffectTimingReadOnly,
  html::AnimationEvent,
  html::AnimationPlaybackEvent,
  html::AnimationTimeline,
  html::AnimationWorkletGlobalScope,
  html::ApplicationCache,
  html::ApplicationCacheErrorEvent,
  html::AreaElement,
  html::AudioElement,
  html::AuthenticatorAssertionResponse,
  html::AuthenticatorAttestationResponse,
  html::AuthenticatorResponse,
  html::BRElement,
  html::BackgroundFetchClickEvent,
  html::BackgroundFetchEvent,
  html::BackgroundFetchFailEvent,
  html::BackgroundFetchFetch,
  html::BackgroundFetchManager,
  html::BackgroundFetchRegistration,
  html::BackgroundFetchSettledFetch,
  html::BackgroundFetchedEvent,
  html::BarProp,
  html::BarcodeDetector,
  html::BaseElement,
  html::BatteryManager,
  html::BeforeInstallPromptEvent,
  html::BeforeUnloadEvent,
  html::Blob,
  html::BlobEvent,
  html::BluetoothRemoteGattDescriptor,
  html::Body,
  html::BodyElement,
  html::BroadcastChannel,
  html::BudgetState,
  html::ButtonElement,
  html::CDataSection,
  html::CacheStorage,
  html::CanMakePaymentEvent,
  html::CanvasCaptureMediaStreamTrack,
  html::CanvasElement,
  html::CanvasGradient,
  html::CanvasPattern,
  html::CanvasRenderingContext,
  html::CanvasRenderingContext2D,
  html::CharacterData,
  html::ChildNode,
  html::Client,
  html::Clients,
  html::ClipboardEvent,
  html::CloseEvent,
  html::Comment,
  html::CompositionEvent,
  html::ContentElement,
  html::CookieStore,
  html::Coordinates,
  html::Credential,
  html::CredentialUserData,
  html::CredentialsContainer,
  html::Crypto,
  html::CryptoKey,
  html::Css,
  html::CssCharsetRule,
  html::CssConditionRule,
  html::CssFontFaceRule,
  html::CssGroupingRule,
  html::CssImageValue,
  html::CssImportRule,
  html::CssKeyframeRule,
  html::CssKeyframesRule,
  html::CssKeywordValue,
  html::CssMatrixComponent,
  html::CssMediaRule,
  html::CssNamespaceRule,
  html::CssNumericValue,
  html::CssPageRule,
  html::CssPerspective,
  html::CssPositionValue,
  html::CssResourceValue,
  html::CssRotation,
  html::CssRule,
  html::CssScale,
  html::CssSkew,
  html::CssStyleDeclaration,
  html::CssStyleDeclarationBase,
  html::CssStyleRule,
  html::CssStyleSheet,
  html::CssStyleValue,
  html::CssSupportsRule,
  html::CssTransformComponent,
  html::CssTransformValue,
  html::CssTranslation,
  html::CssUnitValue,
  html::CssUnparsedValue,
  html::CssVariableReferenceValue,
  html::CssViewportRule,
  html::CssurlImageValue,
  html::CustomElementRegistry,
  html::CustomEvent,
  html::DListElement,
  html::DataElement,
  html::DataListElement,
  html::DataTransfer,
  html::DataTransferItem,
  html::DataTransferItemList,
  html::DedicatedWorkerGlobalScope,
  html::DeprecatedStorageInfo,
  html::DeprecatedStorageQuota,
  html::DeprecationReport,
  html::DetailsElement,
  html::DetectedBarcode,
  html::DetectedFace,
  html::DetectedText,
  html::DeviceAcceleration,
  html::DeviceMotionEvent,
  html::DeviceOrientationEvent,
  html::DeviceRotationRate,
  html::DialogElement,
  html::DirectoryEntry,
  html::DirectoryReader,
  html::DivElement,
  html::Document,
  html::DocumentFragment,
  html::DocumentOrShadowRoot,
  html::DocumentTimeline,
  html::DomError,
  html::DomException,
  html::DomImplementation,
  html::DomIterator,
  html::DomMatrix,
  html::DomMatrixReadOnly,
  html::DomParser,
  html::DomPoint,
  html::DomPointReadOnly,
  html::DomQuad,
  html::DomRectList,
  html::DomRectReadOnly,
  html::DomStringList,
  html::DomStringMap,
  html::DomTokenList,
  html::ElementList,
  html::Element,
  html::ScrollAlignment,
  html::EmbedElement,
  html::Entry,
  html::ErrorEvent,
  html::Event,
  html::EventSource,
  html::Events,
  html::ElementEvents,
  html::EventTarget,
  html::ExtendableEvent,
  html::ExtendableMessageEvent,
  html::External,
  html::FaceDetector,
  html::FederatedCredential,
  html::FetchEvent,
  html::FieldSetElement,
  html::File,
  html::FileEntry,
  html::FileList,
  html::FileReader,
  html::FileSystem,
  html::FileWriter,
  html::FocusEvent,
  html::FontFace,
  html::FontFaceSet,
  html::FontFaceSetLoadEvent,
  html::FontFaceSource,
  html::ForeignFetchEvent,
  html::FormData,
  html::FormElement,
  html::Gamepad,
  html::GamepadButton,
  html::GamepadEvent,
  html::GamepadPose,
  html::Geolocation,
  html::Geoposition,
  html::GlobalEventHandlers,
  html::Gyroscope,
  html::HRElement,
  html::HashChangeEvent,
  html::HeadElement,
  html::Headers,
  html::HeadingElement,
  html::History,
  html::HtmlCollection,
  html::HtmlDocument,
  html::HtmlFormControlsCollection,
  html::HtmlHtmlElement,
  html::HtmlHyperlinkElementUtils,
  html::HtmlOptionsCollection,
  html::HttpRequest,
  html::HttpRequestEventTarget,
  html::HttpRequestUpload,
  html::IFrameElement,
  html::IdleDeadline,
  html::ImageBitmap,
  html::ImageBitmapRenderingContext,
  html::ImageCapture,
  html::ImageData,
  html::ImageElement,
  html::InputDeviceCapabilities,
  html::InputElement,
  html::InputElementBase,
  html::HiddenInputElement,
  html::TextInputElementBase,
  html::SearchInputElement,
  html::TextInputElement,
  html::UrlInputElement,
  html::TelephoneInputElement,
  html::EmailInputElement,
  html::PasswordInputElement,
  html::RangeInputElementBase,
  html::DateInputElement,
  html::MonthInputElement,
  html::WeekInputElement,
  html::TimeInputElement,
  html::LocalDateTimeInputElement,
  html::NumberInputElement,
  html::RangeInputElement,
  html::CheckboxInputElement,
  html::RadioButtonInputElement,
  html::FileUploadInputElement,
  html::SubmitButtonInputElement,
  html::ImageButtonInputElement,
  html::ResetButtonInputElement,
  html::ButtonInputElement,
  html::InstallEvent,
  html::IntersectionObserver,
  html::IntersectionObserverEntry,
  html::InterventionReport,
  html::KeyboardEvent,
  html::KeyframeEffect,
  html::KeyframeEffectReadOnly,
  html::LIElement,
  html::LabelElement,
  html::LegendElement,
  html::LinearAccelerationSensor,
  html::LinkElement,
  html::Location,
  html::Magnetometer,
  html::MapElement,
  html::MathMLElement,
  html::MediaCapabilities,
  html::MediaCapabilitiesInfo,
  html::MediaDeviceInfo,
  html::MediaDevices,
  html::MediaElement,
  html::MediaEncryptedEvent,
  html::MediaError,
  html::MediaKeyMessageEvent,
  html::MediaKeySession,
  html::MediaKeyStatusMap,
  html::MediaKeySystemAccess,
  html::MediaKeys,
  html::MediaKeysPolicy,
  html::MediaList,
  html::MediaMetadata,
  html::MediaQueryList,
  html::MediaQueryListEvent,
  html::MediaRecorder,
  html::MediaSession,
  html::MediaSettingsRange,
  html::MediaSource,
  html::MediaStream,
  html::MediaStreamEvent,
  html::MediaStreamTrack,
  html::MediaStreamTrackEvent,
  html::MemoryInfo,
  html::MenuElement,
  html::MessageChannel,
  html::MessageEvent,
  html::MessagePort,
  html::MetaElement,
  html::Metadata,
  html::MeterElement,
  html::MidiAccess,
  html::MidiConnectionEvent,
  html::MidiInput,
  html::MidiInputMap,
  html::MidiMessageEvent,
  html::MidiOutput,
  html::MidiOutputMap,
  html::MidiPort,
  html::MimeType,
  html::MimeTypeArray,
  html::ModElement,
  html::MouseEvent,
  html::MutationEvent,
  html::MutationObserver,
  html::MutationRecord,
  html::NavigationPreloadManager,
  html::Navigator,
  html::NavigatorAutomationInformation,
  html::NavigatorConcurrentHardware,
  html::NavigatorCookies,
  html::NavigatorID,
  html::NavigatorLanguage,
  html::NavigatorOnLine,
  html::NavigatorUserMediaError,
  html::NetworkInformation,
  html::Node,
  html::NodeFilter,
  html::NodeIterator,
  html::NodeList,
  html::NonDocumentTypeChildNode,
  html::NonElementParentNode,
  html::NoncedElement,
  html::Notification,
  html::NotificationEvent,
  html::OListElement,
  html::ObjectElement,
  html::OffscreenCanvas,
  html::OffscreenCanvasRenderingContext2D,
  html::OptGroupElement,
  html::OptionElement,
  html::OrientationSensor,
  html::OutputElement,
  html::OverconstrainedError,
  html::PageTransitionEvent,
  html::PaintRenderingContext2D,
  html::PaintSize,
  html::PaintWorkletGlobalScope,
  html::ParagraphElement,
  html::ParamElement,
  html::ParentNode,
  html::PasswordCredential,
  html::Path2D,
  html::PaymentAddress,
  html::PaymentInstruments,
  html::PaymentManager,
  html::PaymentRequest,
  html::PaymentRequestEvent,
  html::PaymentRequestUpdateEvent,
  html::PaymentResponse,
  html::Performance,
  html::PerformanceEntry,
  html::PerformanceLongTaskTiming,
  html::PerformanceMark,
  html::PerformanceMeasure,
  html::PerformanceNavigation,
  html::PerformanceNavigationTiming,
  html::PerformanceObserver,
  html::PerformanceObserverEntryList,
  html::PerformancePaintTiming,
  html::PerformanceResourceTiming,
  html::PerformanceServerTiming,
  html::PerformanceTiming,
  html::PermissionStatus,
  html::Permissions,
  html::PhotoCapabilities,
  html::PictureElement,
  html::Plugin,
  html::PluginArray,
  html::PointerEvent,
  html::PopStateEvent,
  html::PositionError,
  html::PreElement,
  html::Presentation,
  html::PresentationAvailability,
  html::PresentationConnection,
  html::PresentationConnectionAvailableEvent,
  html::PresentationConnectionCloseEvent,
  html::PresentationConnectionList,
  html::PresentationReceiver,
  html::PresentationRequest,
  html::ProcessingInstruction,
  html::ProgressElement,
  html::ProgressEvent,
  html::PromiseRejectionEvent,
  html::PublicKeyCredential,
  html::PushEvent,
  html::PushManager,
  html::PushMessageData,
  html::PushSubscription,
  html::PushSubscriptionOptions,
  html::QuoteElement,
  html::Range,
  html::RelatedApplication,
  html::RelativeOrientationSensor,
  html::RemotePlayback,
  html::ReportBody,
  html::ReportingObserver,
  html::ResizeObserver,
  html::ResizeObserverEntry,
  html::RtcCertificate,
  html::RtcDataChannel,
  html::RtcDataChannelEvent,
  html::RtcDtmfSender,
  html::RtcDtmfToneChangeEvent,
  html::RtcIceCandidate,
  html::RtcLegacyStatsReport,
  html::RtcPeerConnection,
  html::RtcPeerConnectionIceEvent,
  html::RtcRtpContributingSource,
  html::RtcRtpReceiver,
  html::RtcRtpSender,
  html::RtcSessionDescription,
  html::RtcStatsReport,
  html::RtcStatsResponse,
  html::RtcTrackEvent,
  html::Screen,
  html::ScreenOrientation,
  html::ScriptElement,
  html::ScrollState,
  html::ScrollTimeline,
  html::SecurityPolicyViolationEvent,
  html::SelectElement,
  html::Selection,
  html::Sensor,
  html::SensorErrorEvent,
  html::ServiceWorker,
  html::ServiceWorkerContainer,
  html::ServiceWorkerGlobalScope,
  html::ServiceWorkerRegistration,
  html::ShadowElement,
  html::ShadowRoot,
  html::SharedWorker,
  html::SharedWorkerGlobalScope,
  html::SlotElement,
  html::SourceBuffer,
  html::SourceBufferList,
  html::SourceElement,
  html::SpanElement,
  html::SpeechGrammar,
  html::SpeechGrammarList,
  html::SpeechRecognition,
  html::SpeechRecognitionAlternative,
  html::SpeechRecognitionError,
  html::SpeechRecognitionEvent,
  html::SpeechRecognitionResult,
  html::SpeechSynthesis,
  html::SpeechSynthesisEvent,
  html::SpeechSynthesisUtterance,
  html::SpeechSynthesisVoice,
  html::StaticRange,
  html::Storage,
  html::StorageEvent,
  html::StorageManager,
  html::StyleElement,
  html::StyleMedia,
  html::StylePropertyMap,
  html::StylePropertyMapReadonly,
  html::StyleSheet,
  html::SyncEvent,
  html::SyncManager,
  html::TableCaptionElement,
  html::TableCellElement,
  html::TableColElement,
  html::TableElement,
  html::TableRowElement,
  html::TableSectionElement,
  html::TaskAttributionTiming,
  html::TemplateElement,
  html::Text,
  html::TextAreaElement,
  html::TextDetector,
  html::TextEvent,
  html::TextMetrics,
  html::TextTrack,
  html::TextTrackCue,
  html::TextTrackCueList,
  html::TextTrackList,
  html::TimeElement,
  html::TimeRanges,
  html::TitleElement,
  html::Touch,
  html::TouchEvent,
  html::TouchList,
  html::TrackDefault,
  html::TrackDefaultList,
  html::TrackElement,
  html::TrackEvent,
  html::TransitionEvent,
  html::TreeWalker,
  html::TrustedHtml,
  html::TrustedScriptUrl,
  html::TrustedUrl,
  html::UIEvent,
  html::UListElement,
  html::UnderlyingSourceBase,
  html::UnknownElement,
  html::Url,
  html::UrlSearchParams,
  html::UrlUtilsReadOnly,
  html::VR,
  html::VRCoordinateSystem,
  html::VRDevice,
  html::VRDeviceEvent,
  html::VRDisplay,
  html::VRDisplayCapabilities,
  html::VRDisplayEvent,
  html::VREyeParameters,
  html::VRFrameData,
  html::VRFrameOfReference,
  html::VRPose,
  html::VRSession,
  html::VRSessionEvent,
  html::VRStageBounds,
  html::VRStageBoundsPoint,
  html::VRStageParameters,
  html::ValidityState,
  html::VideoElement,
  html::VideoPlaybackQuality,
  html::VideoTrack,
  html::VideoTrackList,
  html::VisualViewport,
  html::VttCue,
  html::VttRegion,
  html::WebSocket,
  html::WheelEvent,
  html::Window,
  html::NullWindowException,
  html::WindowBase64,
  html::WindowClient,
  html::WindowEventHandlers,
  html::Worker,
  html::WorkerGlobalScope,
  html::WorkerPerformance,
  html::WorkletAnimation,
  html::WorkletGlobalScope,
  html::XPathEvaluator,
  html::XPathExpression,
  html::XPathNSResolver,
  html::XPathResult,
  html::XmlDocument,
  html::XmlSerializer,
  html::XsltProcessor,
  html::CanvasImageSource,
  html::WindowBase,
  html::LocationBase,
  html::HistoryBase,
  html::CssClassSet,
  html::CssRect,
  html::Dimension,
  html::EventStreamProvider,
  html::ElementStream,
  html::CustomStream,
  html::ImmutableListMixin,
  html::KeyCode,
  html::KeyLocation,
  html::KeyboardEventStream,
  html::NodeValidatorBuilder,
  html::ReadyState,
  html::FixedSizeListIterator,
  html::Console,
  html::KeyEvent,
  html::Platform,
  html::ElementUpgrader,
  html::NodeValidator,
  html::NodeTreeSanitizer,
  html::UriPolicy,
  html::window,
  html::document,
  html::promiseToFutureAsMap,
  html::querySelector,
  html::querySelectorAll,
  html::FontFaceSetForEachCallback,
  html::BlobCallback,
  html::CustomElementConstructor,
  html::DecodeErrorCallback,
  html::DecodeSuccessCallback,
  html::FrameRequestCallback,
  html::FunctionStringCallback,
  html::IdleRequestCallback,
  html::IntersectionObserverCallback,
  html::MediaSessionActionHandler,
  html::MessageCallback,
  html::MetadataCallback,
  html::MojoWatchCallback,
  html::MutationCallback,
  html::PerformanceObserverCallback,
  html::RtcPeerConnectionErrorCallback,
  html::RtcStatsCallback,
  html::RemotePlaybackAvailabilityCallback,
  html::ReportingObserverCallback,
  html::RequestAnimationFrameCallback,
  html::ResizeObserverCallback,
  html::ScrollStateCallback,
  html::StorageErrorCallback,
  html::StorageQuotaCallback,
  html::StorageUsageCallback,
  html::TimeoutHandler,
  html::VoidCallback,
  html::EventListener,
  _in::HttpStatus,
  imp::SharedArrayBuffer,
  math::Point,
  math::Rectangle,
  js_::promiseToFuture)

export "dart:html";


library;
import self as self4;
import "conditional_export_lib4.dart" as con;
additionalExports = (con::HttpRequest)

export "org-dartlang-testcase:///conditional_export_lib4.dart";


library;
import self as con;
import "dart:core" as core;

class HttpRequest extends core::Object {
  synthetic constructor •() → con::HttpRequest
    : super core::Object::•()
    ;
  static synthetic method _#new#tearOff() → con::HttpRequest
    return new con::HttpRequest::•();
}

constants  {
  #C1 = false
  #C2 = true
}
